diff --git a/htdocs/commande/commande.class.php b/htdocs/commande/commande.class.php index 437a3c005ba..c732f3a2093 100644 --- a/htdocs/commande/commande.class.php +++ b/htdocs/commande/commande.class.php @@ -913,10 +913,12 @@ class Commande // -------- exp pdf // + /* * Propale associée */ - $sql = 'SELECT fk_propale FROM '.MAIN_DB_PREFIX.'co_pr WHERE fk_commande = '.$this->id; + $sql = 'SELECT cp.fk_propale'; + $sql .= 'FROM '.MAIN_DB_PREFIX.'co_pr WHERE fk_commande = '.$this->id; if ($this->db->query($sql) ) { if ($this->db->num_rows()) @@ -1537,10 +1539,18 @@ class Commande */ function classer_facturee() { + global $conf; + $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande SET facture = 1'; $sql .= ' WHERE rowid = '.$this->id.' AND fk_statut > 0 ;'; if ($this->db->query($sql) ) { + if ($this->propale_id) + { + $propal = new Propal($this->db); + $propal->fetch($this->propale_id); + $propal->classer_facturee(); + } return 1; } else diff --git a/htdocs/compta/propal.php b/htdocs/compta/propal.php index d9ddfa198f3..1d6a0b9f67f 100644 --- a/htdocs/compta/propal.php +++ b/htdocs/compta/propal.php @@ -664,7 +664,10 @@ if ($_GET["propalid"] > 0) * Factures associees */ $sql = "SELECT f.facnumber, f.total,".$db->pdate("f.datef")." as df, f.rowid as facid, f.fk_user_author, f.fk_statut, f.paye"; - $sql .= " FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."fa_pr as fp WHERE fp.fk_facture = f.rowid AND fp.fk_propal = ".$propal->id; + $sql .= " FROM ".MAIN_DB_PREFIX."facture as f"; + $sql .= "LEFT JOIN ".MAIN_DB_PREFIX."fa_pr as fp ON fp.fk_facture = f.rowid AND fp.fk_propal = ".$propal->id; + if ($conf->commande->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."co_pr as cp ON cp.fk_propale = ".$propal->id; + if ($conf->commande->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."co_fa as cf ON cf.fk_commande = cp.fk_commande AND cf.fk_facture = f.rowid"; $resql = $db->query($sql); if ($resql) diff --git a/htdocs/propal.class.php b/htdocs/propal.class.php index 32636d4f8d1..b2b29644c34 100644 --- a/htdocs/propal.class.php +++ b/htdocs/propal.class.php @@ -1228,6 +1228,24 @@ class Propal return -1; } } + + /** + * \brief Classe la propale comme facturée + * \return int <0 si ko, >0 si ok + */ + function classer_facturee() + { + $sql = 'UPDATE '.MAIN_DB_PREFIX.'propal SET fk_statut = 4'; + $sql .= ' WHERE rowid = '.$this->id.' AND fk_statut > 0 ;'; + if ($this->db->query($sql) ) + { + return 1; + } + else + { + dolibarr_print_error($this->db); + } + } /**