FatturaElettronicaHeader->CedentePrestatore->DatiAnagrafici->Anagrafica->Denominazione; $idsecondario = $fattura->FatturaElettronicaBody->DatiGenerali->DatiGeneraliDocumento->Numero; $data_dattura = $fattura->FatturaElettronicaBody->DatiGenerali->DatiGeneraliDocumento->Data; $file_allegato = $fattura->FatturaElettronicaBody->Allegati->Attachment; $file_nome = $fattura->FatturaElettronicaBody->Allegati->NomeAttachment; $data = $fattura->FatturaElettronicaBody->DatiGenerali->DatiGeneraliDocumento->Data; $codice_ufficio = $fattura->FatturaElettronicaHeader->DatiTrasmissione->CodiceDestinatario; $codice_ufficio_trasmittente = $fattura->FatturaElettronicaHeader->DatiTrasmissione->IdTrasmittente->IdCodice; $denominazione_trasmittente = $fattura->FatturaElettronicaHeader->CedentePrestatore->DatiAnagrafici->Anagrafica->Denominazione; $denominazione_trasmittente_nome = $fattura->FatturaElettronicaHeader->CedentePrestatore->DatiAnagrafici->Anagrafica->Nome; $denominazione_trasmittente_cognome = $fattura->FatturaElettronicaHeader->CedentePrestatore->DatiAnagrafici->Anagrafica->Cognome; $denominazione_regime_fiscale = $fattura->FatturaElettronicaHeader->CedentePrestatore->DatiAnagrafici->RegimeFiscale; $denominazione_codicefiscale = $fattura->FatturaElettronicaHeader->CedentePrestatore->DatiAnagrafici->CodiceFiscale; $denominazione_piva = $fattura->FatturaElettronicaHeader->CedentePrestatore->DatiAnagrafici->IdFiscaleIVA->IdCodice; $denominazione_indirizzo = $fattura->FatturaElettronicaHeader->CedentePrestatore->Sede->Indirizzo; $denominazione_cap = $fattura->FatturaElettronicaHeader->CedentePrestatore->Sede->CAP; $denominazione_comune = $fattura->FatturaElettronicaHeader->CedentePrestatore->Sede->Comune; $denominazione_provincia = $fattura->FatturaElettronicaHeader->CedentePrestatore->Sede->Provincia; $ritenuta = $fattura->FatturaElettronicaBody->DatiGenerali->DatiGeneraliDocumento->DatiRitenuta->AliquotaRitenuta; $rivalsainps = $fattura->FatturaElettronicaBody->DatiGenerali->DatiGeneraliDocumento->DatiCassaPrevidenziale->AlCassa; $rivalsainps_iva = $fattura->FatturaElettronicaBody->DatiGenerali->DatiGeneraliDocumento->DatiCassaPrevidenziale->AliquotaIVA; $rivalsainps_ritenuta = $fattura->FatturaElettronicaBody->DatiGenerali->DatiGeneraliDocumento->DatiCassaPrevidenziale->Ritenuta; $query = "SELECT count(numero_esterno) as esiste FROM co_documenti co where co.numero_esterno='".$idsecondario."'"; $rs = $dbo->fetchArray($query); $procedi=$rs[0]['esiste']; if( $idtipodocumento == '' ) $procedi="2"; switch( $procedi){ case "2": array_push( $_SESSION['errors'], "Nessuna tipologia di documento e' stata selezionata" ); break; case "1": array_push( $_SESSION['errors'], "Errore durante l'inserimento del file ".$idsecondario.". Il documento e' giĆ  presente!" ); break; case "0": if ( $codice_ufficio == "0000000" ) $codice_ufficio = $codice_ufficio_trasmittente; // $query = "SELECT idanagrafica FROM an_anagrafiche an where an.cod_sogei='".$codice_ufficio."'"; $query = "SELECT an_anagrafiche.idanagrafica FROM an_anagrafiche inner join an_tipianagrafiche_anagrafiche on an_anagrafiche.idanagrafica = an_tipianagrafiche_anagrafiche.idanagrafica where ( codice_fiscale='".$denominazione_codicefiscale."' or piva='".$denominazione_piva."' ) and an_tipianagrafiche_anagrafiche.idtipoanagrafica='4'"; $rs = $dbo->fetchArray($query); $idanagrafica=$rs[0]['idanagrafica']; if($idanagrafica==""){ // inserisco l'anagarfica if($denominazione_trasmittente == ""){ $denominazione_trasmittente=$denominazione_trasmittente_cognome." ".$denominazione_trasmittente_nome; } $idanagrafica = nuova_anagrafica($codice_ufficio,$denominazione_trasmittente,$denominazione_regime_fiscale,$denominazione_indirizzo,$denominazione_cap,$denominazione_comune,$denominazione_provincia,$denominazione_codicefiscale,$denominazione_piva) ; } if($idanagrafica==""){ array_push( $_SESSION['errors'], "Errore, non trovo un'anagrafica con il seguente Codice Sogei: ".$codice_ufficio."!" ); }else{ $dir=get_var_tipodoc($idtipodocumento,'dir'); $idconto=get_var_tipodoc($idtipodocumento,'idconto'); $numerazione_progressiva=get_var_tipodoc($idtipodocumento,'mod_num'); if( $numerazione_progressiva==0) $numero = get_new_numerofattura( $data ); if( $numerazione_progressiva==1) $numero=get_new_numerofattura_multi($data,$idtipodocumento); if( $dir=='entrata' ){ if( $numerazione_progressiva==0) $numero_esterno = get_new_numerosecondariofattura( $data,$idtipodocumento ); if( $numerazione_progressiva==1) $numero_esterno = get_new_numerosecondariofattura_multi( $data,$idtipodocumento ); } else{ $numero_esterno = ''; } $numero_documento=$idsecondario; $note="Generato da documento elettronico ".$filename ; //Tipo di pagamento predefinito dall'anagrafica $query = "SELECT id FROM co_pagamenti WHERE id=(SELECT idpagamento FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."')"; $rs = $dbo->fetchArray($query); $idpagamento = $rs[0]['id']; $query = "INSERT INTO co_documenti ( nome_file_xml_import , note_aggiuntive , numero, numero_esterno, numero_documento , idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede ) VALUES ( \"".$filename."\", \"".$note."\", \"".$numero."\", \"".$numero_documento."\", \"".$numero_documento."\", \"".$idanagrafica."\", \"".$idconto."\", \"".$idtipodocumento."\", \"".$idpagamento."\",\"".$data_dattura."\", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=\"".$idanagrafica."\") )"; $dbo->query($query); $iddocumento = $dbo->last_inserted_id(); foreach($fattura->FatturaElettronicaBody->DatiBeniServizi->DettaglioLinee as $linea){ $descrizione = (string)$linea->Descrizione; $importo_manuale=(string)$linea->PrezzoUnitario; $qta=(string)$linea->Quantita; $aliva = (string)$linea->AliquotaIVA; $um = (string)$linea->UnitaMisura; $codice_tipo =(string)$linea->CodiceArticolo->CodiceTipo; $codicevalore =(string)$linea->CodiceArticolo->CodiceValore; $sconto=0; $sconto_extra=0; $sconto_extra1=0; $tipo_sconto = "0"; $valore_sconto = 0; $riga=0; $tipo_sconto =(string)$linea->ScontoMaggiorazione->Tipo; if ( $tipo_sconto == "SC" ) { // e' presente uno o + sconti $importo_fisso =(string)$linea_sc->Importo; if ( $importo_fisso != "" ) { // e' presente uno sconto fisso $tipo_sconto = "1"; $sconto= $importo_fisso; } else { $tipo_sconto = "2"; // e' presente uno sconto in percentuale // conto quanti sono foreach($linea->ScontoMaggiorazione as $linea_sc){ $riga=$riga + 1 ; } if ( $riga >= 4 ) { // sommo tutti gli conti in un unico sconto $riga=0; $tipo_sconto = "1"; $sconto=0; $sconto1=0; $sconto2=0; $sconto3=0; $sconto4=0; $sconto5=0; foreach($linea->ScontoMaggiorazione as $linea_sc){ if ( $riga == 0 ) { $valore_sconto =(string)$linea_sc->Percentuale; $sconto1 = ( ($importo_manuale ) * $valore_sconto)/100; $sconto=$sconto1; } if ( $riga == 1 ) { $valore_sconto =(string)$linea_sc->Percentuale; $sconto2 = ( ($importo_manuale - $sconto1) * $valore_sconto)/100; $sconto= $sconto + $sconto2; } if ( $riga == 2 ) { $valore_sconto =(string)$linea_sc->Percentuale; $sconto3 = ( ($importo_manuale - $sconto1 - $sconto2 ) * $valore_sconto)/100; $sconto=$sconto + $sconto3; } if ( $riga == 3 ) { $valore_sconto =(string)$linea_sc->Percentuale; $sconto4 = ( ($importo_manuale - $sconto1 - $sconto2 - $sconto3) * $valore_sconto)/100; $sconto=$sconto + $sconto4; } if ( $riga == 4 ) { $valore_sconto =(string)$linea_sc->Percentuale; $sconto5 = ( ($importo_manuale - $sconto1 - $sconto2 - $sconto3 - $sconto4) * $valore_sconto)/100; $sconto=$sconto + $sconto5; } $riga=$riga + 1 ; } } else { $riga=0; $tipo_sconto = "2"; $sconto=0; $sconto1=0; $sconto2=0; $sconto3=0; $sconto4=0; $sconto5=0; foreach($linea->ScontoMaggiorazione as $linea_sc){ if ( $riga == 0 ) { $valore_sconto =(string)$linea_sc->Percentuale; $sconto1 = ( ($importo_manuale ) * $valore_sconto)/100; $sconto=$sconto1; } if ( $riga == 1 ) { $sconto_extra =(string)$linea_sc->Percentuale; $sconto2 = ( ($importo_manuale - $sconto1) * $sconto_extra)/100; $sconto= $sconto + $sconto2; } if ( $riga == 2 ) { $sconto_extra1 =(string)$linea_sc->Percentuale; $sconto3 = ( ($importo_manuale - $sconto1 - $sconto2 ) * $sconto_extra1)/100; $sconto=$sconto + $sconto3; } $riga=$riga + 1 ; } } } } // $tipo_sconto =(string)$linea->ScontoMaggiorazione->Tipo; // $sconto="0"; // if ( $tipo_sconto == "SC" ) { // $tipo_sconto = "2"; // $valore_sconto =(string)$linea->ScontoMaggiorazione->Percentuale; // $sconto = ($importo_manuale * $valore_sconto)/100; // // $importo_fisso =(string)$linea->ScontoMaggiorazione->Importo; // if ( $importo_fisso != "" ) { // $tipo_sconto = "2"; // $sconto=$importo_fisso; // } // } // else // { // $tipo_sconto = "0"; // $valore_sconto = "0"; // } $idcodart ="0"; if ( ( $legg_codi =="1" ) && ( $codicevalore != '' )) { $query = "SELECT id FROM mg_articoli where cod_fornitore='".$codicevalore."'"; $rs_mag = $dbo->fetchArray($query); $idcodart = "0"; if( $rs_mag[0]['id'] != "" ){ $idcodart=$rs_mag[0]['id']; // testo se aggiornare il prezzo di acq if ( $agg_prezzo == "1" ) { $dbo->query("UPDATE mg_articoli SET prezzo_acquisto=\"".$importo_manuale."\" WHERE id=\"".$idcodart."\""); } } } if ( ( $crea_articolo =="1" ) && ( $codicevalore != '' ) & ( $idcodart == '0')) { // lo inserisco come nuovo // $query = "INSERT INTO mg_articoli(cod_fornitore,codice, descrizione, prezzo_acquisto, qta , attivo) VALUES (\"$codicevalore\",\"$codicevalore\", \"$descrizione\",\"$importo_manuale\",\"$qta\", 1)"; $query = "INSERT INTO mg_articoli(cod_fornitore,codice, descrizione, prezzo_acquisto, attivo) VALUES (\"$codicevalore\",\"$codicevalore\", \"$descrizione\",\"$importo_manuale\", 1)"; $dbo->query($query); $query = "SELECT * FROM mg_articoli WHERE cod_fornitore=\"$codicevalore\""; $rs = $dbo->fetchArray($query); $idcodart = $rs[0]['id']; } // add_articolo_infattura( $iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo*$qta, $sconto, '0', $lotto, $serial, $altro , $idconto,$idtiposconto,$sconto_prc,$sconto_extra,$sconto_extra1 ,$idmagazzino , $riga_canone ,$id_matricola,$per_agente ); addrigafatturapa($iddocumento, $descrizione, $importo_manuale, $qta, $aliva, $um, $ritenuta, $rivalsainps, $rivalsainps_iva, $rivalsainps_ritenuta,$idcodart,$tipo_sconto,$valore_sconto,$sconto,$sconto_extra,$sconto_extra1); } $module_name_path= $docroot."/files/import_xml/"; $rs = $dbo->query("INSERT INTO `zz_files`( nome, data, filename, module, externalid,categoria ) VALUES( 'File elettronico', NOW(), \"".$filename."\", 'import_xml', \"".$iddocumento."\",'Import Fattura elettronica' )"); // testo presenza alelgato $file_allegato = base64_decode($fattura->FatturaElettronicaBody->Allegati->Attachment); $file_nome = $fattura->FatturaElettronicaBody->Allegati->NomeAttachment; $estensione=$fattura->FatturaElettronicaBody->Allegati->FormatoAttachment; $extension = ''; if (!empty($estensione)) { $extension = '.'.strtolower($estensione); } file_put_contents($module_name_path.$file_nome.$extension, $file_allegato); if ($file_nome != '' ) { $rs = $dbo->query("INSERT INTO `zz_files`( nome, data, filename, module, externalid,categoria ) VALUES( 'Documento Allegato', NOW(), \"".$file_nome.$extension."\", 'import_xml', \"".$iddocumento."\",'Import Fattura elettronica' )"); } // fine test header( "Location: ".$rootdir."/editor.php?id_module=14&id_record=".$iddocumento ); array_push( $_SESSION['infos'], "Aggiunta Documento numero ".$numero.", ".$idsecondario."!" ); exit; } break; } } else { array_push( $_SESSION['errors'], "Nessun file selezionato !" ); } ?>