@@ -499,31 +499,31 @@ protected function extractDatiAggiuntiviFE()
499499 // Estrazione dati ordine acquisto
500500 if (!empty ($ dati_generali ['DatiOrdineAcquisto ' ])) {
501501 $ dati_ordini = $ this ->forceArray ($ dati_generali ['DatiOrdineAcquisto ' ]);
502- $ dati_aggiuntivi ['dati_ordine_acquisto ' ] = $ dati_ordini ;
502+ $ dati_aggiuntivi ['dati_ordine ' ] = $ this -> convertDatiAggiuntiviFE ( $ dati_ordini) ;
503503 }
504504
505505 // Estrazione dati contratto
506506 if (!empty ($ dati_generali ['DatiContratto ' ])) {
507507 $ dati_contratti = $ this ->forceArray ($ dati_generali ['DatiContratto ' ]);
508- $ dati_aggiuntivi ['dati_contratto ' ] = $ dati_contratti ;
508+ $ dati_aggiuntivi ['dati_contratto ' ] = $ this -> convertDatiAggiuntiviFE ( $ dati_contratti) ;
509509 }
510510
511511 // Estrazione dati convenzione
512512 if (!empty ($ dati_generali ['DatiConvenzione ' ])) {
513513 $ dati_convenzioni = $ this ->forceArray ($ dati_generali ['DatiConvenzione ' ]);
514- $ dati_aggiuntivi ['dati_convenzione ' ] = $ dati_convenzioni ;
514+ $ dati_aggiuntivi ['dati_convenzione ' ] = $ this -> convertDatiAggiuntiviFE ( $ dati_convenzioni) ;
515515 }
516516
517517 // Estrazione dati ricezione
518518 if (!empty ($ dati_generali ['DatiRicezione ' ])) {
519519 $ dati_ricezioni = $ this ->forceArray ($ dati_generali ['DatiRicezione ' ]);
520- $ dati_aggiuntivi ['dati_ricezione ' ] = $ dati_ricezioni ;
520+ $ dati_aggiuntivi ['dati_ricezione ' ] = $ this -> convertDatiAggiuntiviFE ( $ dati_ricezioni) ;
521521 }
522522
523523 // Estrazione dati fatture collegate
524524 if (!empty ($ dati_generali ['DatiFattureCollegate ' ])) {
525525 $ dati_fatture = $ this ->forceArray ($ dati_generali ['DatiFattureCollegate ' ]);
526- $ dati_aggiuntivi ['dati_fatture ' ] = $ dati_fatture ;
526+ $ dati_aggiuntivi ['dati_fatture ' ] = $ this -> convertDatiAggiuntiviFE ( $ dati_fatture) ;
527527 }
528528
529529 // Estrazione dati DDT
@@ -561,4 +561,53 @@ protected function hasSplitPaymentEsigibilita()
561561
562562 return false ;
563563 }
564+
565+ /**
566+ * Converte i dati dal formato XML al formato interno.
567+ * Fa la conversione inversa di exportFE.
568+ *
569+ * @param array $dati_xml Array dei dati dal XML
570+ * @return array Array convertito nel formato interno
571+ */
572+ protected function convertDatiAggiuntiviFE ($ dati_xml )
573+ {
574+ $ result = [];
575+
576+ foreach ($ dati_xml as $ dato ) {
577+ $ elemento = [];
578+
579+ // Conversione nodi XML -> campi interni
580+ if (!empty ($ dato ['IdDocumento ' ])) {
581+ $ elemento ['id_documento ' ] = $ dato ['IdDocumento ' ];
582+ }
583+
584+ if (!empty ($ dato ['Data ' ])) {
585+ $ elemento ['data ' ] = $ dato ['Data ' ];
586+ }
587+
588+ if (!empty ($ dato ['RiferimentoNumeroLinea ' ])) {
589+ $ elemento ['riferimento_linea ' ] = $ dato ['RiferimentoNumeroLinea ' ];
590+ }
591+
592+ if (!empty ($ dato ['NumItem ' ])) {
593+ $ elemento ['num_item ' ] = $ dato ['NumItem ' ];
594+ }
595+
596+ if (!empty ($ dato ['CodiceCommessaConvenzione ' ])) {
597+ $ elemento ['codice_commessa ' ] = $ dato ['CodiceCommessaConvenzione ' ];
598+ }
599+
600+ if (!empty ($ dato ['CodiceCUP ' ])) {
601+ $ elemento ['codice_cup ' ] = $ dato ['CodiceCUP ' ];
602+ }
603+
604+ if (!empty ($ dato ['CodiceCIG ' ])) {
605+ $ elemento ['codice_cig ' ] = $ dato ['CodiceCIG ' ];
606+ }
607+
608+ $ result [] = $ elemento ;
609+ }
610+
611+ return $ result ;
612+ }
564613}
0 commit comments