Miglioramenti secondari negli importi FE

This commit is contained in:
Thomas Zilio 2019-03-15 11:35:40 +01:00
parent 240ec58909
commit 27b365dccb
3 changed files with 43 additions and 8 deletions

View File

@ -63,7 +63,7 @@ switch (post('op')) {
// Query di aggiornamento
$dbo->update('co_documenti', array_merge([
'data' => post('data'),
'data_ricezione' => post('data_ricezione'),
'data_ricezione' => post('data_ricezione'),
'numero_esterno' => post('numero_esterno'),
'note' => post('note'),
'note_aggiuntive' => post('note_aggiuntive'),
@ -182,6 +182,9 @@ switch (post('op')) {
$dbo->query("UPDATE in_interventi SET idstatointervento='OK' WHERE id=".prepare($rs[$i]['idintervento']));
}
elimina_scadenza($id_record);
elimina_movimento($id_record);
$dbo->query('DELETE FROM co_documenti WHERE id='.prepare($id_record));
$dbo->query('DELETE FROM co_scadenziario WHERE iddocumento='.prepare($id_record));
$dbo->query('DELETE FROM co_movimenti WHERE iddocumento='.prepare($id_record));
@ -189,9 +192,6 @@ switch (post('op')) {
// Azzeramento collegamento della rata contrattuale alla pianificazione
$dbo->query('UPDATE co_ordiniservizio_pianificazionefatture SET iddocumento=0 WHERE iddocumento='.prepare($id_record));
elimina_scadenza($id_record);
elimina_movimento($id_record);
flash()->info(tr('Fattura eliminata!'));
break;

View File

@ -219,13 +219,23 @@ class FatturaElettronica
$obj->descrizione = $riga['Descrizione'];
$obj->id_iva = $iva[$key];
$obj->idconto = $conto[$key];
$obj->prezzo_unitario_vendita = $riga['PrezzoUnitario'];
$obj->qta = $riga['Quantita'] ?: 1;
// Nel caso il prezzo sia negativo viene gestito attraverso l'inversione della quantità (come per le note di credito)
// TODO: per migliorare la visualizzazione, sarebbe da lasciare negativo il prezzo e invertire gli sconti.
$prezzo = $riga['PrezzoUnitario'];
$prezzo = $riga['PrezzoUnitario'] < 0 ? -$prezzo : $prezzo;
$qta = $riga['Quantita'] ?: 1;
$qta = $riga['PrezzoUnitario'] < 0 ? -$qta : $qta;
// Prezzo e quantità
$obj->prezzo_unitario_vendita = $prezzo;
$obj->qta = $qta;
if (!empty($riga['UnitaMisura'])) {
$obj->um = $riga['UnitaMisura'];
}
// Sconti e maggiorazioni
$sconti = $riga['ScontoMaggiorazione'];
if (!empty($sconti)) {
$sconti = $sconti[0] ? $sconti : [$sconti];
@ -265,8 +275,13 @@ class FatturaElettronica
}
// Arrotondamenti differenti nella fattura XML
$totali = array_column($righe, 'PrezzoTotale');
$diff = sum($totali) - $fattura->imponibile_scontato;
$totali_righe = array_column($righe, 'PrezzoTotale');
$totale_righe = sum($totali_righe);
$dati_generali = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento'];
$totale_documento = isset($dati_generali['ImportoTotaleDocumento']) ? $dati_generali['ImportoTotaleDocumento'] : sum($totali);
$diff = $totale_documento ? $totale_documento - $fattura->totale : $totale_righe - $fattura->imponibile_scontato;
if (!empty($diff)) {
$obj = Riga::build($fattura);

20
update/2_4_9.php Normal file
View File

@ -0,0 +1,20 @@
<?php
// File e cartelle deprecate
$files = [
'plugins/xml/AT_v1.0.xml',
'plugins/xml/DT_v1.0.xml',
'plugins/xml/EC_v1.0.xml',
'plugins/xml/MC_v1.0.xml',
'plugins/xml/MT_v1.0.xml',
'plugins/xml/NE_v1.0.xml',
'plugins/xml/NS_v1.0.xml',
'plugins/xml/RC_v1.0.xml',
'plugins/xml/SE_v1.0.xml',
];
foreach ($files as $key => $value) {
$files[$key] = realpath(DOCROOT.'/'.$value);
}
delete($files);