diff --git a/htdocs/bon-prelevement.class.php b/htdocs/bon-prelevement.class.php index 7ba491e84a9..eb8e3a0aa9b 100644 --- a/htdocs/bon-prelevement.class.php +++ b/htdocs/bon-prelevement.class.php @@ -255,6 +255,8 @@ class BonPrelevement */ function set_credite() { + global $user; + $error == 0; if ($this->db->begin()) @@ -277,11 +279,11 @@ class BonPrelevement for ($i = 0 ; $i < sizeof($facs) ; $i++) { - $fac = new Facture($this->db); - /* Tag la facture comme impayée */ dolibarr_syslog("BonPrelevement::set_credite set_payed fac ".$facs[$i]); - $fac->set_payed($facs[$i]); + $fac = new Facture($this->db); + $fac->fetch($facs[$i]); + $result = $fac->set_payed($user); } } diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 596a8b3c04c..2d4d4c51a08 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -304,15 +304,15 @@ if ($_POST['action'] == 'confirm_valid' && $_POST['confirm'] == 'yes' && $user-> if ($_POST['action'] == 'confirm_payed' && $_POST['confirm'] == 'yes' && $user->rights->facture->paiement) { $fac = new Facture($db); - $result = $fac->set_payed($_GET['facid']); + $fac->fetch($_GET['facid']); + $result = $fac->set_payed($user); } if ($_POST['action'] == 'setremise' && $user->rights->facture->creer) { $fac = new Facture($db); $fac->fetch($_GET['facid']); - - $fac->set_remise($user, $_POST['remise']); + $result = $fac->set_remise($user, $_POST['remise']); } if ($_POST['action'] == 'addligne' && $user->rights->facture->creer) @@ -391,7 +391,7 @@ if ($_POST['action'] == 'confirm_delete' && $_POST['confirm'] == 'yes') if ($user->rights->facture->supprimer ) { $fac = new Facture($db); - $fac->delete($_GET['facid']); + $result = $fac->delete($_GET['facid']); $_GET['facid'] = 0 ; Header('Location: facture.php'); exit; @@ -403,7 +403,8 @@ if ($_POST['action'] == 'confirm_canceled' && $_POST['confirm'] == 'yes') if ($user->rights->facture->supprimer ) { $fac = new Facture($db); - $result = $fac->set_canceled($_GET['facid']); + $fac->fetch($_GET['facid']); + $result = $fac->set_canceled(); $_GET['facid'] = 0 ; Header('Location: facture.php'); exit; diff --git a/htdocs/facture.class.php b/htdocs/facture.class.php index 7513287c334..d48b4c1001e 100644 --- a/htdocs/facture.class.php +++ b/htdocs/facture.class.php @@ -692,13 +692,18 @@ class Facture } /** - * \brief Tag la facture comme payée complètement - * \param rowid id de la facture à modifier + * \brief Tag la facture comme payée complètement + appel trigger BILL_PAYED + * \param user Objet utilisateur qui modifie + * \return int <0 si ok, >0 si ok */ - function set_payed($rowid) + function set_payed($user) { - $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture set paye=1 WHERE rowid = '.$rowid ; - $resql = $this->db->query( $sql); + global $conf,$langs; + + dolibarr_syslog("Facture.class.php::set_payed rowid=".$this->id); + $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture'; + $sql.= ' SET paye=1 WHERE rowid = '.$this->id ; + $resql = $this->db->query($sql); if ($resql) { @@ -710,17 +715,36 @@ class Facture $result=$interface->run_triggers('BILL_PAYED',$this,$user,$langs,$conf); // Fin appel triggers } + + return 1; } /** - * \brief Tag la facture comme non payée complètement - * \param rowid id de la facture à modifier - */ - function set_unpayed($rowid) + * \brief Tag la facture comme non payée complètement + appel trigger BILL_UNPAYED + * \param user Objet utilisateur qui modifie + * \return int <0 si ok, >0 si ok + */ + function set_unpayed($user) { - dolibarr_syslog("Facture.class.php::set_unpayed rowid=".$rowid); - $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture set paye=0 WHERE rowid = '.$rowid ; - $resql = $this->db->query( $sql); + global $conf,$langs; + + dolibarr_syslog("Facture.class.php::set_unpayed rowid=".$this->id); + $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture'; + $sql.= ' SET paye=0 WHERE rowid = '.$this->id; + $resql = $this->db->query($sql); + + if ($resql) + { + $this->use_webcal=($conf->global->PHPWEBCALENDAR_BILLSTATUS=='always'?1:0); + + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('BILL_UNPAYED',$this,$user,$langs,$conf); + // Fin appel triggers + } + + return 1; } /** @@ -734,12 +758,17 @@ class Facture } /** - * \brief Tag la facture comme abandonnée + appel trigger BILL_CANCEL - * \param rowid id de la facture à modifier - */ - function set_canceled($rowid) + * \brief Tag la facture comme abandonnée + appel trigger BILL_CANCEL + * \param user Objet utilisateur qui modifie + * \return int <0 si ok, >0 si ok + */ + function set_canceled($user) { - $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture set fk_statut=3 WHERE rowid = '.$rowid; + global $conf,$langs; + + dolibarr_syslog("Facture.class.php::set_canceled rowid=".$this->id); + $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture'; + $sql.= ' SET fk_statut=3 WHERE rowid = '.$this->id; $resql = $this->db->query( $sql); if ($resql) @@ -752,14 +781,16 @@ class Facture $result=$interface->run_triggers('BILL_CANCEL',$this,$user,$langs,$conf); // Fin appel triggers } + + return 1; } /** * \brief Tag la facture comme validée + appel trigger BILL_VALIDATE - * \param rowid id de la facture à valider - * \param user utilisateur qui valide la facture - * \param soc societe - * \param force_number force le numéro de facture + * \param rowid Id de la facture à valider + * \param user Utilisateur qui valide la facture + * \param soc Objet societe + * \param force_number Référence à forcer de la facture */ function set_valid($rowid, $user, $soc, $force_number='') { @@ -817,7 +848,7 @@ class Facture /* Validation de la facture */ $sql = 'UPDATE '.MAIN_DB_PREFIX.'facture '; - $sql .= " SET facnumber='$numfa', fk_statut = 1, fk_user_valid = $user->id"; + $sql.= " SET facnumber='".$numfa."', fk_statut = 1, fk_user_valid = ".$user->id; /* Si l'option est activée on force la date de facture */ if ($conf->global->FAC_FORCE_DATE_VALIDATION) @@ -829,7 +860,11 @@ class Facture } $sql .= ' WHERE rowid = '.$rowid; $resql = $this->db->query($sql); - if (! $resql) + if ($resql) + { + $this->facnumber=$numfa; + } + else { dolibarr_syslog("Facture::set_valid() Echec - 10"); dolibarr_print_error($this->db); diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 8e3272f6200..0a611c0199c 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -53,22 +53,22 @@ $action=isset($_GET['action'])?$_GET['action']:$_POST['action']; if ($_POST['action'] == 'confirm_valid' && $_POST['confirm'] == yes && $user->rights->fournisseur->facture->valider) { - $facturefourn=new FactureFournisseur($db); - $facturefourn->fetch($_GET['facid']); - - $facturefourn->set_valid($user->id); - - Header('Location: fiche.php?facid='.$_GET['facid']); - exit; + $facturefourn=new FactureFournisseur($db); + $facturefourn->fetch($_GET['facid']); + + $facturefourn->set_valid($user->id); + + Header('Location: fiche.php?facid='.$_GET['facid']); + exit; } if ($_GET['action'] == 'payed') { - $facturefourn=new FactureFournisseur($db); - $facturefourn->fetch($_GET['facid']); - - $facturefourn->set_payed($user->id); + $facturefourn=new FactureFournisseur($db); + $facturefourn->fetch($_GET['facid']); + + $facturefourn->set_payed($user); } if($_GET['action'] == 'deletepaiement') diff --git a/htdocs/fourn/fournisseur.facture.class.php b/htdocs/fourn/fournisseur.facture.class.php index 928ec2d1863..e89357bc46a 100644 --- a/htdocs/fourn/fournisseur.facture.class.php +++ b/htdocs/fourn/fournisseur.facture.class.php @@ -268,30 +268,39 @@ class FactureFournisseur } } - /** - * \brief Tag la facture comme payée complètement - * \param userid utilisateur qui modifie l'état - */ - function set_payed($userid) + /** + * \brief Tag la facture comme payée complètement + * \param user Objet utilisateur qui modifie + * \return int <0 si ko, >0 si ok + */ + function set_payed($user) { - $sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn set paye = 1 WHERE rowid = ".$this->id; - $result = $this->db->query( $sql); - if (! $result) { - dolibarr_print_error($this->db); - } + $sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn"; + $sql.= " SET paye = 1"; + $sql.= " WHERE rowid = ".$this->id; + $result = $this->db->query($sql); + if (! $result) + { + dolibarr_print_error($this->db); + return -1; + } + return 1; } - - /** - * \brief Tag la facture comme validée et valide la facture - * \param userid utilisateur qui valide la facture - */ - function set_valid($userid) + + /** + * \brief Tag la facture comme validée et valide la facture + * \param user Objet utilisateur qui modifie + * \return int <0 si ko, >0 si ok + */ + function set_valid($user) { - $sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn set fk_statut = 1, fk_user_valid = $userid WHERE rowid = ".$this->id; - $result = $this->db->query( $sql); - if (! $result) { - dolibarr_print_error($this->db); - } + $sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn"; + $sql.= " SET fk_statut = 1, fk_user_valid = ".$user->id; + $sql.= " WHERE rowid = ".$this->id; + $result = $this->db->query( $sql); + if (! $result) { + dolibarr_print_error($this->db); + } }