mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-25 15:22:24 +01:00
Aggiunta gestione sconti multipli in import FE
This commit is contained in:
parent
139b83b983
commit
851c9ad007
@ -221,19 +221,67 @@ class FatturaElettronica
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sconti = $riga['ScontoMaggiorazione'];
|
$sconti = $riga['ScontoMaggiorazione'];
|
||||||
|
|
||||||
if (!empty($sconti)) {
|
if (!empty($sconti)) {
|
||||||
foreach ($sconti as $key => $sconto) {
|
if ($sconti['Percentuale'] || $sconti['Importo']) {
|
||||||
$tipo = !empty($sconto['Percentuale']) ? 'PRC' : 'EUR';
|
$tipo = !empty($sconti['Percentuale']) ? 'PRC' : 'EUR';
|
||||||
$unitario = $sconto['Percentuale'] ?: $sconto['Importo'];
|
$unitario = $sconti['Percentuale'] ?: $sconti['Importo'];
|
||||||
|
|
||||||
//SConto o MaGgiorazione
|
//SConto o MaGgiorazione
|
||||||
$unitario = ($sconto['Tipo'] == 'SC') ? $unitario : -$unitario;
|
$unitario = ($sconti['Tipo'] == 'SC') ? $unitario : -$unitario;
|
||||||
|
|
||||||
if (!empty($unitario)) {
|
if (!empty($unitario)) {
|
||||||
$obj->sconto_unitario = $unitario;
|
$obj->sconto_unitario = $unitario;
|
||||||
$obj->tipo_sconto = $tipo;
|
$obj->tipo_sconto = $tipo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sconti multipli
|
||||||
|
else {
|
||||||
|
$sconto = $sconti[0]['Percentuale'] ? $sconti[0]['Percentuale'] : $sconti['Percentuale'];
|
||||||
|
$tipo = !empty($sconto) ? 'PRC' : 'EUR';
|
||||||
|
|
||||||
|
$sconto_totale = 0;
|
||||||
|
if ($tipo == 'PRC') {
|
||||||
|
/**
|
||||||
|
* Trasformo un eventuale sconto percentuale combinato in più
|
||||||
|
* sconti:
|
||||||
|
* Esempio:
|
||||||
|
* 40% + 30% è uno sconto del 42%
|
||||||
|
*/
|
||||||
|
$prezzo_intero = $riga['PrezzoUnitario'] * $riga['Quantita'];
|
||||||
|
$prezzo_scontato = $prezzo_intero;
|
||||||
|
|
||||||
|
foreach ($sconti as $scontor) {
|
||||||
|
$prezzo_scontato -= $prezzo_scontato / 100 * $scontor['Percentuale'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ricavo la percentuale finale di sconto con una proporzione
|
||||||
|
$percentuale_totale = ( 1 - ($prezzo_scontato / $prezzo_intero) ) * 100;
|
||||||
|
|
||||||
|
if (!empty($percentuale_totale)) {
|
||||||
|
$obj->sconto_unitario = $percentuale_totale;
|
||||||
|
$obj->tipo_sconto = $tipo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
// Combino gli sconti tra loro
|
||||||
|
foreach ($sconti as $sconto) {
|
||||||
|
$unitario = $sconto['Percentuale'] ?: $sconto['Importo'];
|
||||||
|
|
||||||
|
//Sconto o Maggiorazione
|
||||||
|
$unitario = ($sconto['Tipo'] == 'SC') ? $unitario : -$unitario;
|
||||||
|
|
||||||
|
$sconto_totale += $unitario;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($unitario)) {
|
||||||
|
$obj->sconto_unitario = $sconto_totale;
|
||||||
|
$obj->tipo_sconto = $tipo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$obj->save();
|
$obj->save();
|
||||||
|
Loading…
Reference in New Issue
Block a user