Correzione #724
This commit is contained in:
parent
5612641702
commit
b5f2fc6a1d
|
@ -29,36 +29,48 @@ class Pagamento extends Model
|
||||||
$results = [];
|
$results = [];
|
||||||
$count = 0;
|
$count = 0;
|
||||||
foreach ($rate as $key => $rata) {
|
foreach ($rate as $key => $rata) {
|
||||||
|
$date = new DateTime($data);
|
||||||
|
|
||||||
// X giorni esatti
|
// X giorni esatti
|
||||||
if ($rata['giorno'] == 0) {
|
if ($rata['giorno'] == 0) {
|
||||||
$scadenza = date('Y-m-d', strtotime($data.' +'.$rata['num_giorni'].' day'));
|
// Offset della rata
|
||||||
|
$date->modify('+'.($rata['num_giorni']).' day');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ultimo del mese
|
// Ultimo del mese
|
||||||
elseif ($rata['giorno'] < 0) {
|
elseif ($rata['giorno'] < 0) {
|
||||||
$date = new DateTime($data);
|
// Offset della rata in mesi
|
||||||
|
|
||||||
$add = floor($rata['num_giorni'] / 30);
|
$add = floor($rata['num_giorni'] / 30);
|
||||||
for ($c = 0; $c < $add; ++$c) {
|
for ($c = 0; $c < $add; ++$c) {
|
||||||
$date->modify('last day of next month');
|
$date->modify('last day of next month');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ultimo del mese più X giorni
|
// Opzione ultimo del mese più X giorni
|
||||||
$giorni = -$rata['giorno'] - 1;
|
$giorni = -$rata['giorno'] - 1;
|
||||||
if ($giorni > 0) {
|
if ($giorni > 0) {
|
||||||
$date->modify('+'.($giorni).' day');
|
$date->modify('+'.($giorni).' day');
|
||||||
} else {
|
} else {
|
||||||
$date->modify('last day of this month');
|
$date->modify('last day of this month');
|
||||||
}
|
}
|
||||||
|
|
||||||
$scadenza = $date->format('Y-m-d');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Giorno preciso del mese
|
// Giorno preciso del mese
|
||||||
else {
|
else {
|
||||||
$scadenza = date('Y-m-'.$rata['giorno'], strtotime($data.' +'.$rata['num_giorni'].' day'));
|
// Offset della rata
|
||||||
|
$date->modify('+'.($rata['num_giorni']).' day');
|
||||||
|
|
||||||
|
// Individuazione giorno effettivo (se il giorno indicato è eccessivamente grande, viene preso il massimo possibile)
|
||||||
|
$date->modify('last day of this month');
|
||||||
|
$last_day = $date->format('d');
|
||||||
|
$day = $rata['giorno'] > $last_day ? $last_day : $rata['giorno'];
|
||||||
|
|
||||||
|
// Correzione data
|
||||||
|
$date->setDate($date->format('Y'), $date->format('m'), $day);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Comversione della data in stringa standard
|
||||||
|
$scadenza = $date->format('Y-m-d');
|
||||||
|
|
||||||
// All'ultimo ciclo imposto come cifra da pagare il totale della fattura meno gli importi già inseriti in scadenziario per evitare di inserire cifre arrotondate "male"
|
// All'ultimo ciclo imposto come cifra da pagare il totale della fattura meno gli importi già inseriti in scadenziario per evitare di inserire cifre arrotondate "male"
|
||||||
if ($count + 1 == $number) {
|
if ($count + 1 == $number) {
|
||||||
$da_pagare = sum($importo, -$totale, 2);
|
$da_pagare = sum($importo, -$totale, 2);
|
||||||
|
|
Loading…
Reference in New Issue