From 294c6dc5f0565ce2bede421cab2857e9ad5b9fa1 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Mon, 23 Jan 2023 17:49:19 +0100 Subject: [PATCH] Aggiunta visualizzazione sconto in fase di importFE --- plugins/importFE/generate.php | 55 ++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index bb7b17b4e..bf1a4ae88 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -434,6 +434,53 @@ if (!empty($righe)) { $prezzo_unitario = $riga['PrezzoUnitario'] ?: $riga['Importo']; $is_descrizione = empty((float)$riga['Quantita']) && empty((float)$prezzo_unitario); + $sconto_unitario = 0; + $sconti = $riga['ScontoMaggiorazione'] ?: 0; + if (!empty($sconti)) { + $tot_sconto_calcolato = 0; + $sconto_unitario = 0; + $sconti = $sconti[0] ? $sconti : [$sconti]; + + // Determina il tipo di sconto in caso di sconti misti UNT e PRC + foreach ($sconti as $sconto) { + $tipo_sconto = !empty($sconto['Importo']) ? '€' : '%'; + if (!empty($tipo) && $tipo_sconto != $tipo) { + $tipo = '€'; + } else { + $tipo = $tipo_sconto; + } + } + + foreach ($sconti as $sconto) { + $unitario = $sconto['Importo'] ?: $sconto['Percentuale']; + + // Sconto o Maggiorazione + $sconto_riga = ($sconto['Tipo'] == 'SC') ? $unitario : -$unitario; + + $tipo_sconto = !empty($sconto['Importo']) ? '€' : '%'; + if ($tipo_sconto == '%') { + $sconto_calcolato = calcola_sconto([ + 'sconto' => $sconto_riga, + 'prezzo' => $sconto_unitario ? $obj->prezzo_unitario - ($tot_sconto_calcolato / $obj->qta) : $obj->prezzo_unitario, + 'tipo' => 'PRC', + 'qta' => $obj->qta, + ]); + + if ($tipo == '%') { + $tot_sconto = $sconto_calcolato * 100 / $obj->imponibile; + } else { + $tot_sconto = $sconto_calcolato; + } + } else { + $tot_sconto = $sconto_riga; + } + + $tot_sconto_calcolato += $sconto_calcolato; + $sconto_unitario += $tot_sconto; + } + } + + $riferimento_fe = ''; if ($dati_ddt[(int)$riga['NumeroLinea']]) { @@ -466,7 +513,13 @@ if (!empty($righe)) { - '.moneyFormat($prezzo_unitario).' + '.moneyFormat($prezzo_unitario); + if (abs($sconto_unitario) > 0) { + $text = ($prezzo_unitario >= 0 && $sconto_unitario > 0) || ($prezzo_unitario < 0 && $sconto_unitario < 0) ? tr('sconto _TOT_ _TYPE_', ['_TOT_' => Translator::numberToLocale(abs($sconto_unitario)), '_TYPE_' => $tipo]) : tr('maggiorazione _TOT__TYPE_', ['_TOT_' => Translator::numberToLocale(abs($sconto_unitario)), '_TYPE_' => $tipo]); + echo ' +
'.$text.''; + } + echo '