Fix importi riepilogo FE

This commit is contained in:
Thomas Zilio 2019-02-14 18:33:25 +01:00
parent 2b4fa03747
commit da28516e67
3 changed files with 38 additions and 20 deletions

View File

@ -326,10 +326,10 @@ switch (post('op')) {
$riga->id_iva = post('idiva');
$riga->idconto = post('idconto');
$articolo->calcolo_ritenuta_acconto = post('calcolo_ritenuta_acconto') ?: null;
$articolo->id_ritenuta_acconto = post('id_ritenuta_acconto') ?: null;
$riga->calcolo_ritenuta_acconto = post('calcolo_ritenuta_acconto') ?: null;
$riga->id_ritenuta_acconto = post('id_ritenuta_acconto') ?: null;
$articolo->id_rivalsa_inps = post('id_rivalsa_inps') ?: null;
$riga->id_rivalsa_inps = post('id_rivalsa_inps') ?: null;
if (post('prezzo_acquisto')) {
$riga->prezzo_unitario_acquisto = post('prezzo_acquisto');

View File

@ -1015,17 +1015,27 @@ class FatturaElettronica
}
// Riepiloghi per IVA per percentuale
$riepiloghi_percentuale = $database->fetchArray('SELECT SUM(`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`) as totale, SUM(`co_righe_documenti`.`iva`) as iva, `co_iva`.`esigibilita`, `co_iva`.`percentuale`, `co_iva`.`dicitura` FROM `co_righe_documenti` INNER JOIN `co_iva` ON `co_iva`.`id` = `co_righe_documenti`.`idiva` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND
`co_iva`.`codice_natura_fe` IS NULL AND sconto_globale=0 GROUP BY `co_iva`.`percentuale`');
$righe = $documento->getRighe();
$riepiloghi_percentuale = $righe->filter(function ($item, $key) {
return $item->aliquota->codice_natura_fe == null;
})->groupBy(function ($item, $key) {
return $item->aliquota->percentuale;
});
foreach ($riepiloghi_percentuale as $riepilogo) {
$totale = round($riepilogo->sum('imponibile') + $riepilogo->sum('rivalsa_inps'), 2);
$imposta = round($riepilogo->sum('iva') + $riepilogo->sum('iva_rivalsa_inps'), 2);
$dati = $riepilogo->first()->aliquota;
$iva = [
'AliquotaIVA' => $riepilogo['percentuale'],
'ImponibileImporto' => abs($riepilogo['totale']),
'Imposta' => abs($riepilogo['iva']),
'EsigibilitaIVA' => $riepilogo['esigibilita'],
'AliquotaIVA' => $dati['percentuale'],
'ImponibileImporto' => abs($totale),
'Imposta' => abs($imposta),
'EsigibilitaIVA' => $dati['esigibilita'],
];
//Con split payment EsigibilitaIVA sempre a S
// Con split payment EsigibilitaIVA sempre a S
if ($documento['split_payment']) {
$iva['EsigibilitaIVA'] = 'S';
}
@ -1036,30 +1046,38 @@ class FatturaElettronica
// $iva['RiferimentoNormativo'] = $riepilogo['dicitura'];
}
//2.2.2
// 2.2.2
$result[] = [
'DatiRiepilogo' => $iva,
];
}
// Riepiloghi per IVA per natura
$riepiloghi_natura = $database->fetchArray('SELECT SUM(`co_righe_documenti`.`subtotale` - `co_righe_documenti`.`sconto`) as totale, SUM(`co_righe_documenti`.`iva`) as iva, `co_iva`.`esigibilita`, `co_iva`.`codice_natura_fe` FROM `co_righe_documenti` INNER JOIN `co_iva` ON `co_iva`.`id` = `co_righe_documenti`.`idiva` WHERE `co_righe_documenti`.`iddocumento` = '.prepare($documento['id']).' AND
`co_iva`.`codice_natura_fe` IS NOT NULL GROUP BY `co_iva`.`codice_natura_fe`');
$riepiloghi_natura = $righe->filter(function ($item, $key) {
return $item->aliquota->codice_natura_fe != null;
})->groupBy(function ($item, $key) {
return $item->aliquota->codice_natura_fe;
});
foreach ($riepiloghi_natura as $riepilogo) {
$totale = round($riepilogo->sum('imponibile') + $riepilogo->sum('rivalsa_inps'), 2);
$imposta = round($riepilogo->sum('iva') + $riepilogo->sum('iva_rivalsa_inps'), 2);
$dati = $riepilogo->first()->aliquota;
$iva = [
'AliquotaIVA' => 0,
'Natura' => $riepilogo['codice_natura_fe'],
'ImponibileImporto' => abs($riepilogo['totale']),
'Imposta' => abs($riepilogo['iva']),
'EsigibilitaIVA' => $riepilogo['esigibilita'],
'Natura' => $dati['codice_natura_fe'],
'ImponibileImporto' => abs($totale),
'Imposta' => abs($imposta),
'EsigibilitaIVA' => $dati['esigibilita'],
];
//Con split payment EsigibilitaIVA sempre a S
// Con split payment EsigibilitaIVA sempre a S
if ($documento['split_payment']) {
$iva['EsigibilitaIVA'] = 'S';
}
//2.2.2
// 2.2.2
$result[] = [
'DatiRiepilogo' => $iva,
];

View File

@ -12,7 +12,7 @@ ALTER TABLE `co_statipreventivi` ADD `fatturabile` BOOLEAN NOT NULL DEFAULT FALS
UPDATE `co_statipreventivi` SET `fatturabile` = 1 WHERE `descrizione` IN('Parzialmente fatturato', 'Concluso', 'Pagato', 'In lavorazione', 'Accettato', 'In attesa di conferma');
-- Inserisco due nuovi stati contratti
UPDATE `co_statipreventivi` SET `descrizione` = 'Fatturato', `pianificabile` = 0, `annullato` = 0, `icona` = 'fa fa-file-text-o text-success' WHERE `descrizione` = 'In attesa di pagamento';
UPDATE `co_staticontratti` SET `descrizione` = 'Fatturato', `pianificabile` = 0, `annullato` = 0, `icona` = 'fa fa-file-text-o text-success' WHERE `descrizione` = 'In attesa di pagamento';
INSERT INTO `co_staticontratti` (`id`, `descrizione`, `pianificabile`, `fatturabile`, `icona`) VALUES
(NULL, 'Parzialmente fatturato', 0, 1, 'fa fa-file-text-o text-warning');