Complete getOutstandingBills()

This commit is contained in:
Laurent Destailleur 2021-09-09 02:18:50 +02:00
parent 39dd1e2dd1
commit 89ed156d7e

View File

@ -4470,6 +4470,7 @@ class Societe extends CommonObject
$outstandingTotal = 0; $outstandingTotal = 0;
$outstandingTotalIncTax = 0; $outstandingTotalIncTax = 0;
$arrayofref = array(); $arrayofref = array();
$arrayofrefopened = array();
if ($mode == 'supplier') { if ($mode == 'supplier') {
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
$tmpobject = new FactureFournisseur($this->db); $tmpobject = new FactureFournisseur($this->db);
@ -4487,6 +4488,9 @@ class Societe extends CommonObject
$outstandingTotal += $obj->total_ht; $outstandingTotal += $obj->total_ht;
$outstandingTotalIncTax += $obj->total_ttc; $outstandingTotalIncTax += $obj->total_ttc;
} }
$remaintopay = 0;
if ($obj->paye == 0 if ($obj->paye == 0
&& $obj->status != $tmpobject::STATUS_DRAFT // Not a draft && $obj->status != $tmpobject::STATUS_DRAFT // Not a draft
&& $obj->status != $tmpobject::STATUS_ABANDONED // Not abandonned && $obj->status != $tmpobject::STATUS_ABANDONED // Not abandonned
@ -4496,16 +4500,23 @@ class Societe extends CommonObject
$creditnotes = $tmpobject->getSumCreditNotesUsed(); $creditnotes = $tmpobject->getSumCreditNotesUsed();
$deposits = $tmpobject->getSumDepositsUsed(); $deposits = $tmpobject->getSumDepositsUsed();
$outstandingOpened += ($obj->total_ttc - $paiement - $creditnotes - $deposits); $remaintopay = ($obj->total_ttc - $paiement - $creditnotes - $deposits);
$outstandingOpened += $remaintopay;
} }
//if credit note is converted but not used //if credit note is converted but not used
// TODO Do this also for customer ? // TODO Do this also for customer ?
if ($mode == 'supplier' && $obj->type == FactureFournisseur::TYPE_CREDIT_NOTE && $tmpobject->isCreditNoteUsed()) { if ($mode == 'supplier' && $obj->type == FactureFournisseur::TYPE_CREDIT_NOTE && $tmpobject->isCreditNoteUsed()) {
$outstandingOpened -= $tmpobject->getSumFromThisCreditNotesNotUsed(); $remainingcreditnote = $tmpobject->getSumFromThisCreditNotesNotUsed();
$remaintopay -= $remainingcreditnote;
$outstandingOpened -= $remainingcreditnote;
}
if ($remaintopay) {
$arrayofrefopened[$obj->rowid] = $obj->ref;
} }
} }
return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax, 'refs'=>$arrayofref); // 'opened' is 'incl taxes' return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax, 'refs'=>$arrayofref, 'refsopened'=>$arrayofrefopened); // 'opened' is 'incl taxes'
} else { } else {
dol_syslog("Sql error ".$this->db->lasterror, LOG_ERR); dol_syslog("Sql error ".$this->db->lasterror, LOG_ERR);
return array(); return array();