From 6366bf29bcbefe2dc853f1812c189c2cd175a919 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Wed, 9 Jan 2019 17:09:43 +0100 Subject: [PATCH] Aggiunta eccezione per XML --- modules/fatture/row-list.php | 58 ++++++++++----------- modules/interventi/edit.php | 28 +++++----- modules/my_impianti/actions.php | 2 +- modules/primanota/add.php | 6 ++- plugins/exportFE/src/FatturaElettronica.php | 11 ++-- plugins/importFE/src/FatturaElettronica.php | 9 ++-- src/Util/XML.php | 11 +++- 7 files changed, 67 insertions(+), 58 deletions(-) diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index 3356f2573..e52cf7fd5 100644 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -32,15 +32,16 @@ foreach ($righe as $riga) { $riga['sconto_unitario'] = abs($riga['sconto_unitario']); $riga['sconto'] = abs($riga['sconto']); $riga['iva'] = abs($riga['iva']); - - if (empty($riga['is_descrizione'])) - $riga['descrizione_conto'] = $dbo->fetchOne("SELECT descrizione FROM co_pianodeiconti3 WHERE id = ".prepare($riga['idconto']))['descrizione']; + + if (empty($riga['is_descrizione'])) { + $riga['descrizione_conto'] = $dbo->fetchOne('SELECT descrizione FROM co_pianodeiconti3 WHERE id = '.prepare($riga['idconto']))['descrizione']; + } $extra = ''; $ref_modulo = null; $ref_id = null; - + // Articoli if ($riga instanceof Articolo) { $ref_modulo = Modules::get('Articoli')['id']; @@ -52,33 +53,30 @@ foreach ($righe as $riga) { $extra = ''; $mancanti = 0; - } - // Intervento + // Intervento elseif (!empty($riga['idintervento'])) { - //$ref_modulo = Modules::get('Interventi')['id']; - //$ref_id = $riga['idintervento']; + //$ref_modulo = Modules::get('Interventi')['id']; + //$ref_id = $riga['idintervento']; $delete = 'unlink_intervento'; } // Preventivi elseif (!empty($riga['idpreventivo'])) { - //$ref_modulo = Modules::get('Preventivi')['id']; - //$ref_id = $riga['idpreventivo']; + //$ref_modulo = Modules::get('Preventivi')['id']; + //$ref_id = $riga['idpreventivo']; $delete = 'unlink_preventivo'; } // Contratti elseif (!empty($riga['idcontratto'])) { - - //$ref_modulo = Modules::get('Contratti')['id']; - //$ref_id = $riga['idcontratto']; - - $contratto = $dbo->fetchOne("SELECT codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = ".prepare($riga['idcontratto'])); - $riga['codice_cig'] = $contratto['codice_cig']; - $riga['codice_cup'] = $contratto['codice_cup']; - $riga['id_documento_fe'] = $contratto['id_documento_fe']; - - $delete = 'unlink_contratto'; - + //$ref_modulo = Modules::get('Contratti')['id']; + //$ref_id = $riga['idcontratto']; + + $contratto = $dbo->fetchOne('SELECT codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = '.prepare($riga['idcontratto'])); + $riga['codice_cig'] = $contratto['codice_cig']; + $riga['codice_cup'] = $contratto['codice_cup']; + $riga['id_documento_fe'] = $contratto['id_documento_fe']; + + $delete = 'unlink_contratto'; } // Righe generiche else { @@ -96,15 +94,15 @@ foreach ($righe as $riga) { $mancanti = 0; } } - - $extra_riga = ''; - $extra_riga = tr('_DESCRIZIONE_CONTO_ _CODICE_CIG_ _CODICE_CUP_ _ID_DOCUMENTO_', [ - '_DESCRIZIONE_CONTO_' => $riga['descrizione_conto'] ?: null, - '_CODICE_CIG_' => $riga['codice_cig'] ? '
CIG: '.$riga['codice_cig'] : null, - '_CODICE_CUP_' => $riga['codice_cup'] ? '
CUP: '.$riga['codice_cup'] : null, - '_ID_DOCUMENTO_' => $riga['id_documento_fe'] ? '
DOC: '.$riga['id_documento_fe'] : null, - ]); - + + $extra_riga = ''; + $extra_riga = tr('_DESCRIZIONE_CONTO_ _CODICE_CIG_ _CODICE_CUP_ _ID_DOCUMENTO_', [ + '_DESCRIZIONE_CONTO_' => $riga['descrizione_conto'] ?: null, + '_CODICE_CIG_' => $riga['codice_cig'] ? '
CIG: '.$riga['codice_cig'] : null, + '_CODICE_CUP_' => $riga['codice_cup'] ? '
CUP: '.$riga['codice_cup'] : null, + '_ID_DOCUMENTO_' => $riga['id_documento_fe'] ? '
DOC: '.$riga['id_documento_fe'] : null, + ]); + echo ' diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index 809c4a66e..9fca11578 100644 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -141,37 +141,39 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica']; fetchOne("SELECT codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = ".prepare($record['idcontratto'])); - $record['id_documento_fe'] = $contratto['id_documento_fe']; - $record['codice_cup'] = $contratto['codice_cup']; - $record['codice_cig'] = $contratto['codice_cig']; - } - + // Visualizzo solo se l'anagrafica cliente è un ente pubblico + if (!empty($record['idcontratto'])) { + $contratto = $dbo->fetchOne('SELECT codice_cig,codice_cup,id_documento_fe FROM co_contratti WHERE id = '.prepare($record['idcontratto'])); + $record['id_documento_fe'] = $contratto['id_documento_fe']; + $record['codice_cup'] = $contratto['codice_cup']; + $record['codice_cig'] = $contratto['codice_cig']; + } + ?>

- +

- +
- {[ "type": "", "label": "", "name": "id_documento_fe", "required": 0, "value": "", "maxlength": 20, "readonly": "", "extra": "" ]} + {[ "type": "", "label": "", "name": "id_documento_fe", "required": 0, "value": "", "maxlength": 20, "readonly": "", "extra": "" ]}
- {[ "type": "", "label": "", "name": "codice_cig", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]} + {[ "type": "", "label": "", "name": "codice_cig", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]}
- {[ "type": "", "label": "", "name": "codice_cup", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]} + {[ "type": "", "label": "", "name": "codice_cup", "required": 0, "value": "", "maxlength": 15, "readonly": "", "extra": "" ]}
diff --git a/modules/my_impianti/actions.php b/modules/my_impianti/actions.php index 062ae040b..6f0ce0c57 100644 --- a/modules/my_impianti/actions.php +++ b/modules/my_impianti/actions.php @@ -77,7 +77,7 @@ switch ($op) { $idanagrafica = post('idanagrafica'); $nome = post('nome'); $idtecnico = post('idtecnico'); - $idsede = post('idsede'); + $idsede = post('idsede'); if (!empty($matricola)) { $dbo->query('INSERT INTO my_impianti(matricola, idanagrafica, nome, data, idtecnico, idsede) VALUES ('.prepare($matricola).', '.prepare($idanagrafica).', '.prepare($nome).', NOW(), '.prepare($idtecnico).', '.prepare($idsede).')'); diff --git a/modules/primanota/add.php b/modules/primanota/add.php index 941ea9505..0511232e9 100644 --- a/modules/primanota/add.php +++ b/modules/primanota/add.php @@ -351,9 +351,11 @@ include_once __DIR__.'/../../core.php'; var causale = $(this).find('option:selected').text(); //aggiornava erroneamente anche la causale ed eventuale numero di fattura e data - + $('#bs-popup #desc').val(causale); - + $.get('/ajax_complete.php?op=get_conti&idmastrino='+idmastrino, function(data){ var conti = data.split(','); diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 618a8f801..2bc6110ef 100644 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -657,7 +657,7 @@ class FatturaElettronica public function getRighe() { if (empty($this->righe)) { - //AND is_descrizione = 0 + //AND is_descrizione = 0 $this->righe = database()->fetchArray('SELECT * FROM `co_righe_documenti` WHERE `sconto_globale` = 0 AND `iddocumento` = '.prepare($this->getDocumento()['id'])); } @@ -1388,9 +1388,9 @@ class FatturaElettronica $riga['subtotale'] = abs($riga['subtotale']); $riga['qta'] = abs($riga['qta']); $riga['sconto'] = abs($riga['sconto']); - - $riga['qta'] = (!empty($riga['qta'])) ? $riga['qta'] : 1; - + + $riga['qta'] = (!empty($riga['qta'])) ? $riga['qta'] : 1; + $prezzo_unitario = $riga['subtotale'] / $riga['qta']; $prezzo_totale = $riga['subtotale'] - $riga['sconto']; @@ -1560,11 +1560,10 @@ class FatturaElettronica $pagamento['BIC'] = $co_banche['bic']; } } - + $result[]['DettaglioPagamento'] = $pagamento; } - return $result; } diff --git a/plugins/importFE/src/FatturaElettronica.php b/plugins/importFE/src/FatturaElettronica.php index b6654ae4d..3fbeb61da 100644 --- a/plugins/importFE/src/FatturaElettronica.php +++ b/plugins/importFE/src/FatturaElettronica.php @@ -137,11 +137,10 @@ class FatturaElettronica // Informazioni sull'anagrafica $REA = $xml['IscrizioneREA']; if (!empty($REA)) { - - if (!empty($REA['Ufficio']) and !empty($REA['NumeroREA'])) { - $anagrafica->codicerea = $REA['Ufficio'].'-'.$REA['NumeroREA']; - } - + if (!empty($REA['Ufficio']) and !empty($REA['NumeroREA'])) { + $anagrafica->codicerea = $REA['Ufficio'].'-'.$REA['NumeroREA']; + } + if (!empty($REA['CapitaleSociale'])) { $anagrafica->capitale_sociale = $REA['CapitaleSociale']; } diff --git a/src/Util/XML.php b/src/Util/XML.php index 0feff8f00..04219e289 100644 --- a/src/Util/XML.php +++ b/src/Util/XML.php @@ -2,6 +2,8 @@ namespace Util; +use UnexpectedValueException; + /** * Classe dedicata all'interpretazione dei file XML. * @@ -19,9 +21,16 @@ class XML public static function read($string) { $content = static::stripP7MData($string); - $content = static::sanitizeXML($content); + + libxml_use_internal_errors(true); $xml = simplexml_load_string($content, 'SimpleXMLElement', LIBXML_NOCDATA); + if ($xml === false) { + $message = libxml_get_last_error()->message; + + throw new UnexpectedValueException($message); + } + $result = json_decode(json_encode($xml), true); return $result;