@@ -102,6 +102,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
102102 $ iva_vendite_esigibile = $ dbo ->fetchArray ('
103103 SELECT
104104 `id`,
105+ `id_segment`,
105106 `cod_iva`,
106107 `aliquota`,
107108 `descrizione`,
@@ -111,6 +112,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
111112 (
112113 SELECT
113114 `co_documenti`.`id` AS id,
115+ `co_documenti`.`id_segment` AS id_segment,
114116 `co_iva`.`codice_natura_fe` AS cod_iva,
115117 `co_iva`.`percentuale` AS aliquota,
116118 `co_iva_lang`.`title` AS descrizione,
@@ -136,6 +138,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
136138 UNION
137139 SELECT
138140 `vb_venditabanco`.`id` AS id,
141+ `vb_venditabanco`.`id_segment` AS id_segment,
139142 `co_iva`.`codice_natura_fe` AS cod_iva,
140143 `co_iva`.`percentuale` AS aliquota,
141144 `co_iva_lang`.`title` AS descrizione,
@@ -161,11 +164,13 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
161164 `cod_iva`,
162165 `aliquota`,
163166 `descrizione`,
164- `id` ' );
167+ `id`,
168+ `id_segment` ' );
165169
166170 $ iva_vendite = $ dbo ->fetchArray ('
167171 SELECT
168172 `id`,
173+ `id_segment`,
169174 `cod_iva`,
170175 `aliquota`,
171176 `descrizione`,
@@ -175,6 +180,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
175180 (
176181 SELECT
177182 `co_documenti`.`id` AS id,
183+ `co_documenti`.`id_segment` AS id_segment,
178184 `co_iva`.`codice_natura_fe` AS cod_iva,
179185 `co_iva`.`percentuale` AS aliquota,
180186 `co_iva_lang`.`title` AS descrizione,
@@ -200,6 +206,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
200206 UNION
201207 SELECT
202208 `vb_venditabanco`.`id` AS id,
209+ `vb_venditabanco`.`id_segment` AS id_segment,
203210 `co_iva`.`codice_natura_fe` AS cod_iva,
204211 `co_iva`.`percentuale` AS aliquota,
205212 `co_iva_lang`.`title` AS descrizione,
@@ -223,11 +230,13 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
223230 `cod_iva`,
224231 `aliquota`,
225232 `descrizione`,
226- `id` ' );
233+ `id`,
234+ `id_segment` ' );
227235 } else {
228236 // Calcolo IVA solo su fatture (senza vendite al banco)
229237 $ iva_vendite_esigibile = $ dbo ->fetchArray ('
230238 SELECT
239+ `co_documenti`.`id_segment` AS id_segment,
231240 `co_iva`.`codice_natura_fe` AS cod_iva,
232241 `co_iva`.`percentuale` AS aliquota,
233242 `co_iva_lang`.`title` AS descrizione,
@@ -254,6 +263,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
254263
255264 $ iva_vendite = $ dbo ->fetchArray ('
256265 SELECT
266+ `co_documenti`.`id_segment` AS id_segment,
257267 `co_iva`.`codice_natura_fe` AS cod_iva,
258268 `co_iva`.`percentuale` AS aliquota,
259269 `co_iva_lang`.`title` AS descrizione,
@@ -282,6 +292,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
282292 // Calcolo IVA non esigibile (split payment)
283293 $ iva_vendite_nonesigibile = $ dbo ->fetchArray ('
284294 SELECT
295+ `co_documenti`.`id_segment` AS id_segment,
285296 `co_iva`.`codice_natura_fe` AS cod_iva,
286297 `co_iva`.`percentuale` AS aliquota,
287298 `co_iva_lang`.`title` AS descrizione,
@@ -309,6 +320,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
309320 // Calcolo IVA detraibile (acquisti)
310321 $ iva_acquisti_detraibile = $ dbo ->fetchArray ('
311322 SELECT
323+ `co_documenti`.`id_segment` AS id_segment,
312324 `co_iva`.`codice_natura_fe` AS cod_iva,
313325 `co_iva`.`percentuale` AS aliquota,
314326 `co_iva_lang`.`title` AS descrizione,
@@ -336,6 +348,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
336348 // Calcolo IVA non detraibile (acquisti)
337349 $ iva_acquisti_nondetraibile = $ dbo ->fetchArray ('
338350 SELECT
351+ `co_documenti`.`id_segment` AS id_segment,
339352 `co_iva`.`codice_natura_fe` AS cod_iva,
340353 `co_iva`.`percentuale` AS aliquota,
341354 `co_iva_lang`.`title` AS descrizione,
@@ -363,6 +376,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
363376 // Calcolo IVA acquisti totale
364377 $ iva_acquisti = $ dbo ->fetchArray ('
365378 SELECT
379+ `co_documenti`.`id_segment` AS id_segment,
366380 `co_iva`.`codice_natura_fe` AS cod_iva,
367381 `co_iva`.`percentuale` AS aliquota,
368382 `co_iva_lang`.`title` AS descrizione,
@@ -398,6 +412,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
398412 // Con vendite al banco - query più complesse
399413 $ iva_vendite_anno_precedente = $ dbo ->fetchArray ('
400414 SELECT
415+ `id_segment`,
401416 `cod_iva`,
402417 `aliquota`,
403418 `descrizione`,
@@ -406,6 +421,8 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
406421 FROM
407422 (
408423 SELECT
424+ `co_documenti`.`id` AS id,
425+ `co_documenti`.`id_segment` AS id_segment,
409426 `co_iva`.`codice_natura_fe` AS cod_iva,
410427 `co_iva`.`percentuale` AS aliquota,
411428 `co_iva_lang`.`title` AS descrizione,
@@ -430,6 +447,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
430447 data_competenza_iva BETWEEN ' .prepare ($ anno_precedente_start ).' AND ' .prepare ($ anno_precedente_end ).'
431448 UNION
432449 SELECT
450+ `vb_venditabanco`.`id_segment` AS id_segment,
433451 `co_iva`.`codice_natura_fe` AS cod_iva,
434452 `co_iva`.`percentuale` AS aliquota,
435453 `co_iva_lang`.`title` AS descrizione,
@@ -452,10 +470,12 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
452470 GROUP BY
453471 `cod_iva`,
454472 `aliquota`,
455- `descrizione` ' );
473+ `descrizione`,
474+ `id_segment` ' );
456475
457476 $ iva_vendite_periodo_precedente = $ dbo ->fetchArray ('
458477 SELECT
478+ `id_segment`,
459479 `cod_iva`,
460480 `aliquota`,
461481 `descrizione`,
@@ -464,6 +484,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
464484 FROM
465485 (
466486 SELECT
487+ `co_documenti`.`id_segment` AS id_segment,
467488 `co_iva`.`codice_natura_fe` AS cod_iva,
468489 `co_iva`.`percentuale` AS aliquota,
469490 `co_iva_lang`.`title` AS descrizione,
@@ -488,6 +509,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
488509 data_competenza_iva BETWEEN ' .prepare ($ periodo_precedente_start ).' AND ' .prepare ($ periodo_precedente_end ).'
489510 UNION
490511 SELECT
512+ `vb_venditabanco`.`id_segment` AS id_segment,
491513 `co_iva`.`codice_natura_fe` AS cod_iva,
492514 `co_iva`.`percentuale` AS aliquota,
493515 `co_iva_lang`.`title` AS descrizione,
@@ -510,11 +532,13 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
510532 GROUP BY
511533 `cod_iva`,
512534 `aliquota`,
513- `descrizione` ' );
535+ `descrizione`,
536+ `id_segment` ' );
514537 } else {
515538 // Solo fatture - query semplificate
516539 $ iva_vendite_anno_precedente = $ dbo ->fetchArray ('
517540 SELECT
541+ `co_documenti`.`id_segment` AS id_segment,
518542 `co_iva`.`codice_natura_fe` AS cod_iva,
519543 `co_iva`.`percentuale` AS aliquota,
520544 `co_iva_lang`.`title` AS descrizione,
@@ -541,6 +565,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
541565
542566 $ iva_vendite_periodo_precedente = $ dbo ->fetchArray ('
543567 SELECT
568+ `co_documenti`.`id_segment` AS id_segment,
544569 `co_iva`.`codice_natura_fe` AS cod_iva,
545570 `co_iva`.`percentuale` AS aliquota,
546571 `co_iva_lang`.`title` AS descrizione,
@@ -569,6 +594,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
569594 // Query per acquisti dei periodi precedenti
570595 $ iva_acquisti_anno_precedente = $ dbo ->fetchArray ('
571596 SELECT
597+ `co_documenti`.`id_segment` AS id_segment,
572598 `co_iva`.`codice_natura_fe` AS cod_iva,
573599 `co_iva`.`percentuale` AS aliquota,
574600 `co_iva_lang`.`title` AS descrizione,
@@ -595,6 +621,7 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
595621
596622 $ iva_acquisti_periodo_precedente = $ dbo ->fetchArray ('
597623 SELECT
624+ `co_documenti`.`id_segment` AS id_segment,
598625 `co_iva`.`codice_natura_fe` AS cod_iva,
599626 `co_iva`.`percentuale` AS aliquota,
600627 `co_iva_lang`.`title` AS descrizione,
@@ -674,6 +701,64 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
674701 $ totale_iva_maggiorata = $ totale_iva + $ maggiorazione ;
675702 }
676703
704+ // Raggruppo i dati IVA per segmento (vendite)
705+ $ iva_vendite_esigibile_per_segmento = [];
706+ $ iva_vendite_per_segmento = [];
707+ $ iva_vendite_nonesigibile_per_segmento = [];
708+
709+ foreach ($ iva_vendite_esigibile as $ record ) {
710+ $ id_segment = $ record ['id_segment ' ];
711+ if (!isset ($ iva_vendite_esigibile_per_segmento [$ id_segment ])) {
712+ $ iva_vendite_esigibile_per_segmento [$ id_segment ] = [];
713+ }
714+ $ iva_vendite_esigibile_per_segmento [$ id_segment ][] = $ record ;
715+ }
716+
717+ foreach ($ iva_vendite as $ record ) {
718+ $ id_segment = $ record ['id_segment ' ];
719+ if (!isset ($ iva_vendite_per_segmento [$ id_segment ])) {
720+ $ iva_vendite_per_segmento [$ id_segment ] = [];
721+ }
722+ $ iva_vendite_per_segmento [$ id_segment ][] = $ record ;
723+ }
724+
725+ foreach ($ iva_vendite_nonesigibile as $ record ) {
726+ $ id_segment = $ record ['id_segment ' ];
727+ if (!isset ($ iva_vendite_nonesigibile_per_segmento [$ id_segment ])) {
728+ $ iva_vendite_nonesigibile_per_segmento [$ id_segment ] = [];
729+ }
730+ $ iva_vendite_nonesigibile_per_segmento [$ id_segment ][] = $ record ;
731+ }
732+
733+ // Raggruppo i dati IVA per segmento (acquisti)
734+ $ iva_acquisti_detraibile_per_segmento = [];
735+ $ iva_acquisti_nondetraibile_per_segmento = [];
736+ $ iva_acquisti_per_segmento = [];
737+
738+ foreach ($ iva_acquisti_detraibile as $ record ) {
739+ $ id_segment = $ record ['id_segment ' ];
740+ if (!isset ($ iva_acquisti_detraibile_per_segmento [$ id_segment ])) {
741+ $ iva_acquisti_detraibile_per_segmento [$ id_segment ] = [];
742+ }
743+ $ iva_acquisti_detraibile_per_segmento [$ id_segment ][] = $ record ;
744+ }
745+
746+ foreach ($ iva_acquisti_nondetraibile as $ record ) {
747+ $ id_segment = $ record ['id_segment ' ];
748+ if (!isset ($ iva_acquisti_nondetraibile_per_segmento [$ id_segment ])) {
749+ $ iva_acquisti_nondetraibile_per_segmento [$ id_segment ] = [];
750+ }
751+ $ iva_acquisti_nondetraibile_per_segmento [$ id_segment ][] = $ record ;
752+ }
753+
754+ foreach ($ iva_acquisti as $ record ) {
755+ $ id_segment = $ record ['id_segment ' ];
756+ if (!isset ($ iva_acquisti_per_segmento [$ id_segment ])) {
757+ $ iva_acquisti_per_segmento [$ id_segment ] = [];
758+ }
759+ $ iva_acquisti_per_segmento [$ id_segment ][] = $ record ;
760+ }
761+
677762 return [
678763 'iva_vendite_esigibile ' => $ iva_vendite_esigibile ,
679764 'iva_vendite ' => $ iva_vendite ,
@@ -708,6 +793,12 @@ function calcolaImportiLiquidazioneIva($date_start, $date_end)
708793 'periodo_precedente_end ' => $ periodo_precedente_end ,
709794 'anno_precedente_start ' => $ anno_precedente_start ,
710795 'anno_precedente_end ' => $ anno_precedente_end ,
796+ 'iva_vendite_esigibile_per_segmento ' => $ iva_vendite_esigibile_per_segmento ,
797+ 'iva_vendite_per_segmento ' => $ iva_vendite_per_segmento ,
798+ 'iva_vendite_nonesigibile_per_segmento ' => $ iva_vendite_nonesigibile_per_segmento ,
799+ 'iva_acquisti_detraibile_per_segmento ' => $ iva_acquisti_detraibile_per_segmento ,
800+ 'iva_acquisti_nondetraibile_per_segmento ' => $ iva_acquisti_nondetraibile_per_segmento ,
801+ 'iva_acquisti_per_segmento ' => $ iva_acquisti_per_segmento ,
711802 ];
712803}
713804
0 commit comments