From 3a98f6903e8920ceaeaa9d8aac33b527701bf05b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 27 Sep 2012 20:54:04 +0200 Subject: [PATCH] Fix: If a customer has 2000 invoices, creating next one make 2000 requests instead of 1. --- htdocs/compta/facture.php | 15 ++++++++++----- htdocs/compta/facture/class/facture.class.php | 8 ++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index f6a326d4a67..60b9ba8ad4c 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -1851,15 +1851,20 @@ if ($action == 'create') exit; } $optionsav=""; - foreach ($facids as $key => $value) + $newinvoice_static=new Facture($db); + foreach ($facids as $key => $valarray) { - $newinvoice=new Facture($db); - $newinvoice->fetch($key); + $newinvoice_static->id=$key; + $newinvoice_static->ref=$valarray['ref']; + $newinvoice_static->statut=$valarray['status']; + $newinvoice_static->type=$valarray['type']; + $newinvoice_static->paye=$valarray['paye']; + $optionsav.=''; } diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 004ca90fcc4..6db8f202fd4 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2618,7 +2618,7 @@ class Facture extends CommonInvoice * (validee + paiement en cours) ou classee (payee completement ou payee partiellement) + pas deja remplacee + pas deja avoir * * @param int $socid Id societe - * @return array Tableau des factures ($id => $ref) + * @return array Tableau des factures ($id => array('ref'=>,'paymentornot'=>,'status'=>,'paye'=>) */ function list_qualified_avoir_invoices($socid=0) { @@ -2626,7 +2626,7 @@ class Facture extends CommonInvoice $return = array(); - $sql = "SELECT f.rowid as rowid, f.facnumber, f.fk_statut, pf.fk_paiement"; + $sql = "SELECT f.rowid as rowid, f.facnumber, f.fk_statut, f.type, f.paye, pf.fk_paiement"; $sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf ON f.rowid = pf.fk_facture"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as ff ON (f.rowid = ff.fk_facture_source AND ff.type=1)"; @@ -2640,7 +2640,7 @@ class Facture extends CommonInvoice if ($socid > 0) $sql.=" AND f.fk_soc = ".$socid; $sql.= " ORDER BY f.facnumber"; - dol_syslog(get_class($this)."::list_qualified_avoir_invoices sql=$sql"); + dol_syslog(get_class($this)."::list_qualified_avoir_invoices sql=".$sql); $resql=$this->db->query($sql); if ($resql) { @@ -2653,7 +2653,7 @@ class Facture extends CommonInvoice { //$ref=$obj->facnumber; $paymentornot=($obj->fk_paiement?1:0); - $return[$obj->rowid]=$paymentornot; + $return[$obj->rowid]=array('ref'=>$obj->facnumber,'status'=>$obj->fk_statut,'type'=>$obj->type,'paye'=>$obj->paye,'paymentornot'=>$paymentornot); } }