Aggiunto controllo sugli importi FE da modulo
This commit is contained in:
parent
27b365dccb
commit
7b35637979
|
@ -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));
|
||||
|
|
|
@ -113,7 +113,7 @@ if (empty($record['is_fiscale'])) {
|
|||
<?php
|
||||
if ($dir == 'entrata') {
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Stato FE'); ?>", "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": <?php echo intval(Plugins\ExportFE\Connection::isEnabled()); ?>, "class": "unblockable", "help": "<?php echo ((!empty($record['data_stato_fe'])) ? Translator::timestampToLocale($record['data_stato_fe']) : '' ); ?>" ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Stato FE'); ?>", "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": <?php echo intval(Plugins\ExportFE\Connection::isEnabled()); ?>, "class": "unblockable", "help": "<?php echo (!empty($record['data_stato_fe'])) ? Translator::timestampToLocale($record['data_stato_fe']) : ''; ?>" ]}
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
@ -142,13 +142,15 @@ if (empty($record['is_fiscale'])) {
|
|||
{[ "type": "select", "label": "<?php echo tr('Riferimento sede'); ?>", "name": "idsede", "ajax-source": "sedi", "placeholder": "Sede legale", "value": "$idsede$" ]}
|
||||
</div>
|
||||
|
||||
<?php if ($dir == 'uscita') { ?>
|
||||
<?php if ($dir == 'uscita') {
|
||||
?>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "date", "label": "<?php echo tr('Data ricezione'); ?>", "name": "data_ricezione", "required": 0, "value": "$data_ricezione$" ]}
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
<?php
|
||||
} ?>
|
||||
|
||||
<?php if ($dir == 'entrata') {
|
||||
?>
|
||||
|
@ -531,12 +533,51 @@ include $docroot.'/modules/fatture/row-list.php';
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if ($dir == 'uscita' && $fattura->isFE()) {
|
||||
echo '
|
||||
<div class="alert alert-info text-center" id="controlla_totali"><i class="fa fa-spinner fa-spin"></i> '.tr('Controllo sui totali del documento e della fattura elettronica in corso').'...</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$.ajax({
|
||||
url: globals.rootdir + "/actions.php",
|
||||
type: "post",
|
||||
data: {
|
||||
id_module: globals.id_module,
|
||||
id_record: globals.id_record,
|
||||
op: "controlla_totali",
|
||||
},
|
||||
success: function(data){
|
||||
data = JSON.parse(data);
|
||||
|
||||
var div = $("#controlla_totali");
|
||||
div.removeClass("alert-info");
|
||||
console.log(data);
|
||||
if (data.stored == null) {
|
||||
div.addClass("alert-info").html("'.tr("Il file XML non contiene il nodo ''ImportoTotaleDocumento'': controllo sui totali impossibile").'.")
|
||||
} else if (data.stored == data.calculated){
|
||||
div.addClass("alert-success").html("'.tr('Il totale del file XML corrisponde a quello calcolato dal gestionale').'.")
|
||||
} else {
|
||||
div.addClass("alert-warning").html("'.tr('Il totale del file XML non corrisponde a quello calcolato dal gestionale: previsto _XML_, calcolato _CALC_', [
|
||||
'_XML_' => '" + data.stored + "€',
|
||||
'_CALC_' => '" + data.calculated + "€',
|
||||
]).'.")
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>';
|
||||
}
|
||||
?>
|
||||
|
||||
{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
||||
|
||||
<?php
|
||||
if ($dir == 'entrata') {
|
||||
echo '
|
||||
<div class="alert alert-info text-center">'.tr('Per allegare un documento alla fattura elettronica caricare il file PDF specificando come categoria "Fattura Elettronica"').'.</div>';
|
||||
<div class="alert alert-info text-center">'.tr('Per allegare un documento alla fattura elettronica caricare il file PDF specificando come categoria "Fattura Elettronica"').'.</div>';
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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)) {
|
||||
|
|
Loading…
Reference in New Issue