Skip to content

Commit 852bd76

Browse files
feat: convert import dati aggiuntivi FE
1 parent 87345b5 commit 852bd76

1 file changed

Lines changed: 54 additions & 5 deletions

File tree

plugins/importFE/src/FatturaElettronica.php

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)