FIX invoice has delay
This commit is contained in:
parent
30d62e9fc5
commit
55e26dc531
@ -4238,9 +4238,81 @@ class Facture extends CommonInvoice
|
|||||||
// Paid invoices have status STATUS_CLOSED
|
// Paid invoices have status STATUS_CLOSED
|
||||||
if ($this->statut != Facture::STATUS_VALIDATED) return false;
|
if ($this->statut != Facture::STATUS_VALIDATED) return false;
|
||||||
|
|
||||||
return $this->date_lim_reglement < ($now - $conf->facture->client->warning_delay);
|
$hasDelay = $this->date_lim_reglement < ($now - $conf->facture->client->warning_delay);
|
||||||
|
|
||||||
|
if($hasDelay && !empty($this->retained_warranty) && !empty($this->retained_warranty_date_limit))
|
||||||
|
{
|
||||||
|
$totalpaye = $this->getSommePaiement();
|
||||||
|
$RetainedWarrantyAmount = $this->getRetainedWarrantyAmount();
|
||||||
|
if($totalpaye >= 0 && $RetainedWarrantyAmount>= 0)
|
||||||
|
{
|
||||||
|
if( ($totalpaye < $this->total_ttc - $RetainedWarrantyAmount) && $this->retained_warranty_date_limit < ($now - $conf->facture->client->warning_delay) )
|
||||||
|
{
|
||||||
|
$hasDelay = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$hasDelay = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $hasDelay;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return number or -1 if not available
|
||||||
|
*/
|
||||||
|
function getRetainedWarrantyAmount() {
|
||||||
|
|
||||||
|
if(empty($this->retained_warranty) ){
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$retainedWarrantyAmount = 0;
|
||||||
|
|
||||||
|
// Billed - retained warranty
|
||||||
|
if($this->type == Facture::TYPE_SITUATION)
|
||||||
|
{
|
||||||
|
$displayWarranty = true;
|
||||||
|
// Check if this situation invoice is 100% for real
|
||||||
|
if(!empty($this->lines)){
|
||||||
|
$displayWarranty = true;
|
||||||
|
foreach( $this->lines as $i => $line ){
|
||||||
|
if($line->product_type < 2 && $line->situation_percent < 100){
|
||||||
|
$displayWarranty = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($displayWarranty && !empty($this->situation_final))
|
||||||
|
{
|
||||||
|
$this->fetchPreviousNextSituationInvoice();
|
||||||
|
$TPreviousIncoice = $this->tab_previous_situation_invoice;
|
||||||
|
|
||||||
|
$total2BillWT = 0;
|
||||||
|
foreach ($TPreviousIncoice as &$fac){
|
||||||
|
$total2BillWT += $fac->total_ttc;
|
||||||
|
}
|
||||||
|
$total2BillWT += $this->total_ttc;
|
||||||
|
|
||||||
|
$retainedWarrantyAmount = $total2BillWT * $this->retained_warranty / 100;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Because one day retained warranty could be used on standard invoices
|
||||||
|
$retainedWarrantyAmount = $this->total_ttc * $this->retained_warranty / 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $retainedWarrantyAmount;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Change the retained warranty
|
* Change the retained warranty
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user