From 7b356379798c947287e66b35883136b82cc30fee Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Fri, 15 Mar 2019 12:16:20 +0100 Subject: [PATCH] Aggiunto controllo sugli importi FE da modulo --- modules/fatture/actions.php | 18 ++++++++ modules/fatture/edit.php | 49 +++++++++++++++++++-- modules/fatture/src/Fattura.php | 6 +-- plugins/importFE/src/FatturaElettronica.php | 2 +- 4 files changed, 67 insertions(+), 8 deletions(-) diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 985045bfa..557621e57 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -151,6 +151,24 @@ switch (post('op')) { break; + // Ricalcolo scadenze + case 'controlla_totali': + try { + $xml = \Util\XML::read($fattura->getXML()); + + $dati_generali = $xml['FatturaElettronicaBody']['DatiGenerali']['DatiGeneraliDocumento']; + $totale_documento = $dati_generali['ImportoTotaleDocumento'] ?: null; + } catch (Exception $e) { + $totale_documento = null; + } + + echo json_encode([ + 'stored' => $totale_documento, + 'calculated' => $fattura->totale, + ]); + + break; + // eliminazione documento case 'delete': $rs = $dbo->fetchArray('SELECT id FROM co_righe_documenti WHERE iddocumento='.prepare($id_record)); diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index b1da75986..99fa8e70d 100644 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -113,7 +113,7 @@ if (empty($record['is_fiscale'])) { - {[ "type": "select", "label": "", "name": "codice_stato_fe", "required": 0, "values": "query=SELECT codice as id, CONCAT_WS(' - ',codice,descrizione) as text FROM fe_stati_documento", "value": "$codice_stato_fe$", "disabled": , "class": "unblockable", "help": "" ]} + {[ "type": "select", "label": "", "name": "codice_stato_fe", "required": 0, "values": "query=SELECT codice as id, CONCAT_WS(' - ',codice,descrizione) as text FROM fe_stati_documento", "value": "$codice_stato_fe$", "disabled": , "class": "unblockable", "help": "" ]} @@ -142,13 +142,15 @@ if (empty($record['is_fiscale'])) { {[ "type": "select", "label": "", "name": "idsede", "ajax-source": "sedi", "placeholder": "Sede legale", "value": "$idsede$" ]} - +
{[ "type": "date", "label": "", "name": "data_ricezione", "required": 0, "value": "$data_ricezione$" ]}
- + @@ -531,12 +533,51 @@ include $docroot.'/modules/fatture/row-list.php'; +isFE()) { + echo ' +
'.tr('Controllo sui totali del documento e della fattura elettronica in corso').'...
+ +'; +} +?> + {( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )} '.tr('Per allegare un documento alla fattura elettronica caricare il file PDF specificando come categoria "Fattura Elettronica"').'.'; +
'.tr('Per allegare un documento alla fattura elettronica caricare il file PDF specificando come categoria "Fattura Elettronica"').'.
'; } echo ' diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index 4f28b91a5..47dc613f5 100644 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -248,7 +248,7 @@ class Fattura extends Document public function getXML() { - if (empty($this->progressivo_invio)) { + if (empty($this->progressivo_invio) && $this->module == 'Fatture di acquisto') { $fe = new FatturaElettronica($this->id); return $fe->toXML(); @@ -261,7 +261,7 @@ class Fattura extends Document public function isFE() { - return !empty($this->progressivo_invio) && $this->module == 'Fatture di acquisto'; + return !empty($this->progressivo_invio); } /** @@ -340,7 +340,7 @@ class Fattura extends Document { $this->rimuoviScadenze(); - if (!$ignora_fe && $this->isFE()) { + if (!$ignora_fe && $this->module == 'Fatture di acquisto' && $this->isFE()) { $scadenze_fe = $this->registraScadenzeFE($is_pagato); } diff --git a/plugins/importFE/src/FatturaElettronica.php b/plugins/importFE/src/FatturaElettronica.php index 3c21ad031..d20c353ef 100644 --- a/plugins/importFE/src/FatturaElettronica.php +++ b/plugins/importFE/src/FatturaElettronica.php @@ -279,7 +279,7 @@ class FatturaElettronica $totale_righe = sum($totali_righe); $dati_generali = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento']; - $totale_documento = isset($dati_generali['ImportoTotaleDocumento']) ? $dati_generali['ImportoTotaleDocumento'] : sum($totali); + $totale_documento = $dati_generali['ImportoTotaleDocumento']; $diff = $totale_documento ? $totale_documento - $fattura->totale : $totale_righe - $fattura->imponibile_scontato; if (!empty($diff)) {