Correzione sconto globale in percentuale con più aliquote iva

This commit is contained in:
Fabio Lovato 2018-02-16 13:12:07 +01:00
parent b25598eae4
commit 2c7f69867a
1 changed files with 6 additions and 3 deletions

View File

@ -743,9 +743,13 @@ function aggiorna_sconto($tables, $fields, $id_record, $options = [])
$sconto[0]['sconto_globale'] = floatval($sconto[0]['sconto_globale']);
// Aggiorno l'eventuale sconto gestendolo con le righe in fattura
$iva = 0;
if (!empty($sconto[0]['sconto_globale'])) {
if ($sconto[0]['tipo_sconto_globale'] == 'PRC') {
$subtotale = $dbo->fetchArray('SELECT SUM(subtotale - sconto) AS imponibile FROM (SELECT '.$tables['row'].'.subtotale, '.$tables['row'].'.sconto FROM '.$tables['row'].' WHERE '.$fields['row'].'='.prepare($id_record).') AS t')[0]['imponibile'];
$rs = $dbo->fetchArray('SELECT SUM(subtotale - sconto) AS imponibile, SUM(iva) AS iva FROM (SELECT '.$tables['row'].'.subtotale, '.$tables['row'].'.sconto, '.$tables['row'].'.iva FROM '.$tables['row'].' WHERE '.$fields['row'].'='.prepare($id_record).') AS t');
$subtotale = $rs[0]['imponibile'];
$iva += $rs[0]['iva'] / 100 * $sconto[0]['sconto_globale'];
$subtotale = -$subtotale / 100 * $sconto[0]['sconto_globale'];
$descrizione = $descrizione.' '.Translator::numberToLocale($sconto[0]['sconto_globale']).'%';
@ -756,7 +760,6 @@ function aggiorna_sconto($tables, $fields, $id_record, $options = [])
// Calcolo dell'IVA da scontare
$idiva = get_var('Iva predefinita');
$rsi = $dbo->select('co_iva', ['descrizione', 'percentuale'], ['id' => $idiva]);
$iva = $subtotale / 100 * $rsi[0]['percentuale'];
$values = [
$fields['row'] => $id_record,
@ -765,7 +768,7 @@ function aggiorna_sconto($tables, $fields, $id_record, $options = [])
'qta' => 1,
'idiva' => $idiva,
'desc_iva' => $rsi[0]['descrizione'],
'iva' => $iva,
'iva' => -$iva,
'sconto_globale' => 1,
'#order' => '(SELECT IFNULL(MAX(`order`) + 1, 0) FROM '.$tables['row'].' AS t WHERE '.$fields['row'].'='.prepare($id_record).')',
];