Qual: On supprime la methode de création des contrats depuis une facture car cette option avait été conservée pour un besoin perso et elle peut se réaliser maintenant avec le nouveau mécanisme des triggers.

This commit is contained in:
Laurent Destailleur 2005-04-27 00:32:23 +00:00
parent bb6209d3cb
commit b40cde5ab5
3 changed files with 1479 additions and 1553 deletions

View File

@ -267,59 +267,6 @@ class Contrat
} }
/**
* \brief Crée autant de contrats que de lignes de facture, pour une facture donnée
* \param factureid id de la facture
* \param user utilisateur qui crée
* \param socid id société
*/
function create_from_facture($factureid, $user, $socid)
{
$sql = "SELECT p.rowid as rowid, fd.rowid as fdrowid FROM ".MAIN_DB_PREFIX."product as p, ".MAIN_DB_PREFIX."facturedet as fd";
$sql .= " WHERE p.rowid = fd.fk_product AND p.fk_product_type = 1 AND fd.fk_facture = ".$factureid;
if ($this->db->query($sql))
{
$num = $this->db->num_rows();
if ($num > 0)
{
$i = 0;
while ($i < $num)
{
$objp = $this->db->fetch_object();
$prowid[$i] = $objp->rowid;
$fdrowid[$i] = $objp->fdrowid;
$i++;
}
$this->db->free();
while (list($i, $value) = each ($prowid))
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."contrat (fk_product, fk_facture, fk_facturedet, fk_soc, fk_user_author)";
$sql .= " VALUES (".$prowid[$i].", $factureid, ".$fdrowid[$i].", $socid, $user->id)";
if (! $this->db->query($sql))
{
dolibarr_syslog("Contrat::create_from_facture - 10");
dolibarr_print_error($this->db,"Contrat::create_from_facture - 10");
}
}
}
else
{
$this->db->free();
}
}
else
{
dolibarr_syslog("Contrat::create_from_facture - 20");
dolibarr_print_error($this->db,"Contrat::create_from_facture - 20");
}
return $result;
}
/** /**
* \brief Ajoute une ligne de commande * \brief Ajoute une ligne de commande
* \return int <0 si KO, =0 si OK * \return int <0 si KO, =0 si OK

File diff suppressed because it is too large Load Diff

View File

@ -43,17 +43,17 @@ class Interfaces
function Interfaces($DB) function Interfaces($DB)
{ {
$this->db = $DB ; $this->db = $DB ;
$this->dir = DOL_DOCUMENT_ROOT . "/includes/triggers"; $this->dir = DOL_DOCUMENT_ROOT . "/includes/triggers";
} }
/** /**
* \brief Fonction appelée lors du déclenchement d'un évènement Dolibarr. * \brief Fonction appelée lors du déclenchement d'un évènement Dolibarr.
* Cette fonction déclenche tous les triggers trouvés * Cette fonction déclenche tous les triggers trouvés
* \param action Code de l'evenement * \param action Code de l'evenement
* \param object Objet concern * \param object Objet concern
* \param user Objet user * \param user Objet user
* \param lang Objet lang * \param lang Objet lang
* \param conf Objet conf * \param conf Objet conf
* \return int Nbre de triggers déclenchés si pas d'erreurs. Nb en erreur sinon. * \return int Nbre de triggers déclenchés si pas d'erreurs. Nb en erreur sinon.
*/ */
function run_triggers($action,$object,$user,$lang,$conf) function run_triggers($action,$object,$user,$lang,$conf)
@ -62,7 +62,7 @@ class Interfaces
$handle=opendir($this->dir); $handle=opendir($this->dir);
$modules = array(); $modules = array();
$nbok = $nbko = 0; $nbok = $nbko = 0;
while (($file = readdir($handle))!==false) while (($file = readdir($handle))!==false)
{ {
if (is_readable($this->dir."/".$file) && eregi('interface_(.*).class.php',$file,$reg)) if (is_readable($this->dir."/".$file) && eregi('interface_(.*).class.php',$file,$reg))
@ -72,23 +72,23 @@ class Interfaces
if ($modName) if ($modName)
{ {
include_once($this->dir."/".$file); include_once($this->dir."/".$file);
$objMod = new $modName($db); $objMod = new $modName($this->db);
if ($objMod) if ($objMod)
{ {
if ($objMod->run_trigger($action,$object,$user,$lang,$conf) > 0) if ($objMod->run_trigger($action,$object,$user,$lang,$conf) > 0)
{ {
$nbok++; $nbok++;
} }
else else
{ {
$nbko++; $nbko++;
} }
} }
} }
} }
} }
if ($nbko) return $nbko; if ($nbko) return $nbko;
return $nbok; return $nbok;
} }
} }