From 92c6a452ce36220e4e788bbc79405a73736ad20e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sun, 16 Jul 2006 11:51:11 +0000 Subject: [PATCH] =?UTF-8?q?Fix:=20on=20pouvait=20supprimer=20une=20facture?= =?UTF-8?q?=20valid=E9e=20autre=20que=20la=20derni=E8re?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/facture.class.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/htdocs/facture.class.php b/htdocs/facture.class.php index 0c3fbe31254..aac2c4fc662 100644 --- a/htdocs/facture.class.php +++ b/htdocs/facture.class.php @@ -1837,26 +1837,23 @@ class Facture extends CommonObject /** * \brief Renvoi si une facture peut etre supprimée complètement * La règle est la suivante: - * Si facture brouillon -> oui, fin de règle - * Si facture dernière, sans paiement et non exporté en compta -> oui + * Si facture dernière, non provisoire, sans paiement et non exporté en compta -> oui fin de règle + * Si facture brouillon et ptovisoire -> oui * \param user Utilisateur créant la demande * \return int <0 si ko, 0=non, 1=oui */ function is_erasable() { - global $conf; - - // Si facture brouillon - if ($this->statut == 0) - { - return 1; - } + global $conf, $db; - // Si facture non brouillon - if ($conf->compta->enabled && $conf->global->FACTURE_ENABLE_EDITDELETE) + // on vérifie si la facture est en numérotation provisoire + $facref = substr($this->ref, 1, 4); + + // Si facture non brouillon et non provisoire + if ($facref != PROV && $conf->compta->enabled && $conf->global->FACTURE_ENABLE_EDITDELETE) { // On ne peut supprimer que la dernière facture validée - // pour ne pas avoir de trou dans les numéros + // pour ne pas avoir de trou dans la numérotation $sql = "SELECT MAX(facnumber)"; $sql.= " FROM ".MAIN_DB_PREFIX."facture"; @@ -1882,6 +1879,10 @@ class Facture extends CommonObject return 1; } } + else if ($this->statut == 0 && $facref == PROV) // Si facture brouillon et provisoire + { + return 1; + } return 0; }