Spostamento fix aggiustamenti contabili su penultimo conto
This commit is contained in:
parent
88bd9c993d
commit
04c89f8596
|
@ -228,28 +228,36 @@ class Movimenti
|
||||||
$mastrino = $this->generateMastrino();
|
$mastrino = $this->generateMastrino();
|
||||||
|
|
||||||
foreach ($movimenti as $element) {
|
foreach ($movimenti as $element) {
|
||||||
$dare = round($element['dare'], 6);
|
$dare = round($element['dare'], 8);
|
||||||
$avere = round($element['avere'], 6);
|
$avere = round($element['avere'], 8);
|
||||||
|
|
||||||
$totale_dare += $dare;
|
$totale_dare += $dare;
|
||||||
$totale_avere += $avere;
|
$totale_avere += $avere;
|
||||||
|
|
||||||
// Nell'ultimo conto del mastrino inserisco l'eventuale differenza per evitare sbilanci nel totale
|
|
||||||
$aggiustamento_dare = 0;
|
|
||||||
$aggiustamento_avere = 0;
|
|
||||||
|
|
||||||
if ($i++ == count($movimenti) - 1) {
|
|
||||||
if ($element['dare']) {
|
|
||||||
$aggiustamento_dare -= round($totale_dare - $totale_avere, 6);
|
|
||||||
} elseif ($element['avere']) {
|
|
||||||
$aggiustamento_avere -= round($totale_avere - $totale_dare, 6);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$movimento = Movimento::build($mastrino, $element['id_conto'], $this->fattura);
|
$movimento = Movimento::build($mastrino, $element['id_conto'], $this->fattura);
|
||||||
$movimento->setTotale((float) $avere + $aggiustamento_avere, (float) $dare + $aggiustamento_dare);
|
$movimento->setTotale($avere, $dare);
|
||||||
$movimento->save();
|
$movimento->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Nel penultimo conto del mastrino inserisco l'eventuale differenza per evitare sbilanci nel totale,
|
||||||
|
// evitando di mettere differenze nell'iva
|
||||||
|
$diff = round($totale_avere - $totale_dare, 4);
|
||||||
|
|
||||||
|
if ($diff) {
|
||||||
|
$movimenti = $mastrino->movimenti()->where('primanota', '=', 0)->get();
|
||||||
|
$m = 0;
|
||||||
|
foreach ($movimenti as $movimento) {
|
||||||
|
if ($m++ == $movimenti->count() - 2) {
|
||||||
|
if ($movimento->totale < 0) {
|
||||||
|
$movimento->setTotale(abs($movimento->totale) - $diff, 0);
|
||||||
|
} else {
|
||||||
|
$movimento->setTotale(0, abs($movimento->totale) + $diff);
|
||||||
|
}
|
||||||
|
|
||||||
|
$movimento->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue