Fix: on pouvait supprimer une facture valide autre que la dernire

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
* 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;
}