@@ -67,20 +67,39 @@ public function __construct($name, $directory = null, $plugin = null)
6767
6868 // Verifica che il CessionarioCommittente (destinatario) corrisponda all'azienda configurata
6969 // per evitare l'importazione di fatture non indirizzate a questa azienda
70- $ cessionario = $ this ->getHeader ()['CessionarioCommittente ' ]['DatiAnagrafici ' ] ?? null ;
71- $ piva_destinatario = $ cessionario ['IdFiscaleIVA ' ]['IdCodice ' ] ?? null ;
72- $ cf_destinatario = $ cessionario ['CodiceFiscale ' ] ?? null ;
7370
74- $ azienda = Anagrafica:: find ( setting ( ' Azienda predefinita ' ));
75- if (! empty ( $ azienda ) && (! empty ( $ piva_destinatario ) || ! empty ( $ cf_destinatario ))) {
76- $ piva_match = ! empty ( $ piva_destinatario ) && $ azienda -> piva === $ piva_destinatario ;
77- $ cf_match = ! empty ( $ cf_destinatario ) && $ azienda -> codice_fiscale === $ cf_destinatario ;
71+ if ( $ directory == ' Fatture di acquisto ' ) {
72+ $ cessionario = $ this -> getHeader ()[ ' CessionarioCommittente ' ][ ' DatiAnagrafici ' ] ?? null ;
73+ $ piva_destinatario = $ cessionario [ ' IdFiscaleIVA ' ][ ' IdCodice ' ] ?? null ;
74+ $ cf_destinatario = $ cessionario [ ' CodiceFiscale ' ] ?? null ;
7875
79- if (!$ piva_match && !$ cf_match ) {
80- throw new \UnexpectedValueException ();
81- }
76+ $ azienda = Anagrafica::find (setting ('Azienda predefinita ' ));
77+ if (!empty ($ azienda ) && (!empty ($ piva_destinatario ) || !empty ($ cf_destinatario ))) {
78+ $ piva_match = !empty ($ piva_destinatario ) && $ azienda ->piva === $ piva_destinatario ;
79+ $ cf_match = !empty ($ cf_destinatario ) && $ azienda ->codice_fiscale === $ cf_destinatario ;
80+
81+ if (!$ piva_match && !$ cf_match ) {
82+ throw new \UnexpectedValueException ();
83+ }
84+ }
85+ } else {
86+ $ cedente = $ this ->getHeader ()['CedentePrestatore ' ]['DatiAnagrafici ' ] ?? null ;
87+ $ piva_destinatario = $ cedente ['IdFiscaleIVA ' ]['IdCodice ' ] ?? null ;
88+ $ cf_destinatario = $ cedente ['CodiceFiscale ' ] ?? null ;
89+
90+ $ azienda = Anagrafica::find (setting ('Azienda predefinita ' ));
91+ if (!empty ($ azienda ) && (!empty ($ piva_destinatario ) || !empty ($ cf_destinatario ))) {
92+ $ piva_match = !empty ($ piva_destinatario ) && $ azienda ->piva === $ piva_destinatario ;
93+ $ cf_match = !empty ($ cf_destinatario ) && $ azienda ->codice_fiscale === $ cf_destinatario ;
94+
95+ if (!$ piva_match && !$ cf_match ) {
96+ throw new \UnexpectedValueException ();
97+ }
98+ }
8299 }
83100
101+
102+
84103 // Individuazione fattura pre-esistente
85104 $ dati_generali = $ this ->getBody ()['DatiGenerali ' ]['DatiGeneraliDocumento ' ];
86105 $ data = $ dati_generali ['Data ' ];
0 commit comments