Fix: L'objet user n'tait pas intgralement pass sur les fonctions de changement etat facture

This commit is contained in:
Laurent Destailleur 2005-10-30 17:32:09 +00:00
parent 8a0e6cf691
commit 46a8b91622
5 changed files with 110 additions and 63 deletions

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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);

View File

@ -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')

View File

@ -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);
}
}