Fix: on pouvait supprimer une facture validée autre que la dernière

This commit is contained in:
Regis Houssin 2006-07-16 11:51:11 +00:00
parent 105fc64197
commit 92c6a452ce

View File

@ -1837,26 +1837,23 @@ class Facture extends CommonObject
/** /**
* \brief Renvoi si une facture peut etre supprimée complètement * \brief Renvoi si une facture peut etre supprimée complètement
* La règle est la suivante: * La règle est la suivante:
* Si facture brouillon -> oui, fin de règle * Si facture dernière, non provisoire, sans paiement et non exporté en compta -> oui fin de règle
* Si facture dernière, sans paiement et non exporté en compta -> oui * Si facture brouillon et ptovisoire -> oui
* \param user Utilisateur créant la demande * \param user Utilisateur créant la demande
* \return int <0 si ko, 0=non, 1=oui * \return int <0 si ko, 0=non, 1=oui
*/ */
function is_erasable() function is_erasable()
{ {
global $conf; global $conf, $db;
// Si facture brouillon
if ($this->statut == 0)
{
return 1;
}
// Si facture non brouillon // on vérifie si la facture est en numérotation provisoire
if ($conf->compta->enabled && $conf->global->FACTURE_ENABLE_EDITDELETE) $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 // 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 = "SELECT MAX(facnumber)";
$sql.= " FROM ".MAIN_DB_PREFIX."facture"; $sql.= " FROM ".MAIN_DB_PREFIX."facture";
@ -1882,6 +1879,10 @@ class Facture extends CommonObject
return 1; return 1;
} }
} }
else if ($this->statut == 0 && $facref == PROV) // Si facture brouillon et provisoire
{
return 1;
}
return 0; return 0;
} }