diff --git a/dev/skeletons/skeleton_class.class.php b/dev/skeletons/skeleton_class.class.php index b7c4807781a7cf296d3258749183ece17bbef1ce..92471c55f843396a441c23e23247c4e5ae3151b1 100644 --- a/dev/skeletons/skeleton_class.class.php +++ b/dev/skeletons/skeleton_class.class.php @@ -108,9 +108,9 @@ class Skeleton_class // extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_CREATE',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } @@ -217,9 +217,9 @@ class Skeleton_class // extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_MODIFY',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } @@ -272,9 +272,9 @@ class Skeleton_class // extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_DELETE',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } diff --git a/htdocs/adherents/adherent.class.php b/htdocs/adherents/adherent.class.php index 68cd384e51efad62682f3d4eb4be02e3c28d8b2d..04c3a9a2beeaa366f78439e1e00c86e5b0a7d25e 100644 --- a/htdocs/adherents/adherent.class.php +++ b/htdocs/adherents/adherent.class.php @@ -327,9 +327,9 @@ class Adherent extends CommonObject if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MEMBER_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MEMBER_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -546,9 +546,9 @@ class Adherent extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MEMBER_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MEMBER_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -670,9 +670,9 @@ class Adherent extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MEMBER_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MEMBER_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -795,9 +795,9 @@ class Adherent extends CommonObject if (! $error && ! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MEMBER_NEW_PASSWORD',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MEMBER_NEW_PASSWORD',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1239,9 +1239,9 @@ class Adherent extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MEMBER_SUBSCRIPTION',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MEMBER_SUBSCRIPTION',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -1294,9 +1294,9 @@ class Adherent extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MEMBER_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MEMBER_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -1342,9 +1342,9 @@ class Adherent extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MEMBER_RESILIATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MEMBER_RESILIATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/business/class/business.class.php b/htdocs/business/class/business.class.php new file mode 100644 index 0000000000000000000000000000000000000000..ae11aab5637e970000ec52f82889c261dcd35bb4 --- /dev/null +++ b/htdocs/business/class/business.class.php @@ -0,0 +1,707 @@ +<?php +/* Copyright (C) 2010 Regis Houssin <regis@dolibarr.fr> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/** + * \file htdocs/business/class/business.class.php + * \ingroup business + * \brief Fichier de la classe de gestion des affaires + * \version $Id$ + */ +require_once(DOL_DOCUMENT_ROOT ."/core/commonobject.class.php"); + +/** + * \class Business + * \brief Class to manage business + */ +class Business extends CommonObject +{ + var $db; //!< To store db handler + var $error; //!< To return error code (or message) + var $errors=array(); //!< To return several error codes (or messages) + var $element='business'; //!< Id that identify managed objects + var $table_element='business'; //!< Name of table without prefix where object is stored + var $table_element_line='business_phase'; + var $fk_element='fk_business'; + + var $id; + var $ref; + var $description; + var $statut; + var $label; + var $date_c; + var $date_m; + var $date_start; + var $date_end; + var $socid; + var $user_author_id; //!< Id of business creator. Not defined if shared business. + var $public; //!< Tell if this is a public or private business + var $note_private; + var $note_public; + + var $statuts_short; + var $statuts; + + /** + * \brief Constructeur de la classe + * \param DB handler acces base de donnees + */ + function Business($DB) + { + $this->db = $DB; + $this->societe = new Societe($DB); + + $this->statuts_short=array(0=>'Draft',1=>'Validated',2=>'Closed'); + $this->statuts=array(0=>'Draft',1=>'Validated',2=>'Closed'); + } + + /** + * \brief Create a business into database + * \param user Id utilisateur qui cree + * \return int <0 si ko, id du projet cree si ok + */ + function create($user, $notrigger=0) + { + global $conf; + + $ret=0; + + // Clean parameters + $this->label = trim($this->label); + $this->description = trim($this->description); + + // Check parameters + if (! trim($this->ref)) + { + $this->error='ErrorFieldsRequired'; + dol_syslog("Business::Create error -1 ref null", LOG_ERR); + return -1; + } + + $sql = "INSERT INTO ".MAIN_DB_PREFIX."business ("; + $sql.= "ref"; + $sql.= ", label"; + $sql.= ", description"; + $sql.= ", fk_soc"; + $sql.= ", fk_user_creat"; + $sql.= ", public"; + $sql.= ", datec"; + $sql.= ", dateo"; + $sql.= ", datee"; + $sql.= ") VALUES ("; + $sql.= "'".addslashes($this->ref)."'"; + $sql.= ", '".addslashes($this->label)."'"; + $sql.= ", '".addslashes($this->description)."'"; + $sql.= ", ".($this->socid > 0?$this->socid:"null"); + $sql.= ", ".$user->id; + $sql.= ", ".($this->public?1:0); + $sql.= ", ".($this->date_c!=''?$this->db->idate($this->date_c):'null'); + $sql.= ", ".($this->date_start!=''?$this->db->idate($this->date_start):'null'); + $sql.= ", ".($this->date_end!=''?$this->db->idate($this->date_end):'null'); + $sql.= ")"; + + dol_syslog("Business::create sql=".$sql,LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."business"); + $ret = $this->id; + + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('BUSINESS_CREATE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + } + else + { + $this->error=$this->db->lasterror(); + dol_syslog("Business::Create error -2 ".$this->error, LOG_ERR); + $ret = -2; + } + + return $ret; + } + + + /** + * Update a business + * + * @param unknown_type $user + * @return unknown + */ + function update($user, $notrigger=0) + { + global $conf; + + // Clean parameters + $this->label = trim($this->label); + $this->description = trim($this->description); + + if (strlen(trim($this->ref)) > 0) + { + $sql = "UPDATE ".MAIN_DB_PREFIX."business SET"; + $sql.= " ref='".$this->ref."'"; + $sql.= ", label = '".addslashes($this->label)."'"; + $sql.= ", description = '".addslashes($this->description)."'"; + $sql.= ", fk_soc = ".($this->socid > 0?$this->socid:"null"); + $sql.= ", fk_statut = ".$this->statut; + $sql.= ", public = ".($this->public?1:0); + $sql.= ", datec=".($this->date_c!=''?$this->db->idate($this->date_c):'null'); + $sql.= ", dateo=".($this->date_start!=''?$this->db->idate($this->date_start):'null'); + $sql.= ", datee=".($this->date_end!=''?$this->db->idate($this->date_end):'null'); + $sql.= " WHERE rowid = ".$this->id; + + dol_syslog("Business::Update sql=".$sql,LOG_DEBUG); + if ($this->db->query($sql) ) + { + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('BUSINESS_MODIFY',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + + $result = 1; + } + else + { + $this->error=$this->db->lasterror(); + dol_syslog("Business::Update error -2 ".$this->error, LOG_ERR); + $result = -2; + } + } + else + { + dol_syslog("Business::Update ref null"); + $result = -1; + } + + return $result; + } + + + /** + * \brief Get object and lines from database + * \param rowid id of object to load + * \param ref Ref of business + * \return int >0 if OK, <0 if KO + */ + function fetch($id,$ref='') + { + if (empty($id) && empty($ref)) return -1; + + $sql = "SELECT rowid, ref, label, description, public, datec"; + $sql.= ", tms, dateo, datee, fk_soc, fk_user_creat, fk_statut, note_private, note_public"; + $sql.= " FROM ".MAIN_DB_PREFIX."business"; + if ($ref) $sql.= " WHERE ref='".$ref."'"; + else $sql.= " WHERE rowid=".$id; + + dol_syslog("Business::fetch sql=".$sql, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) + { + if ($this->db->num_rows($resql)) + { + $obj = $this->db->fetch_object($resql); + + $this->id = $obj->rowid; + $this->ref = $obj->ref; + $this->label = $obj->label; + $this->description = $obj->description; + $this->date_c = $this->db->jdate($obj->datec); + $this->date_m = $this->db->jdate($obj->tms); + $this->date_start = $this->db->jdate($obj->dateo); + $this->date_end = $this->db->jdate($obj->datee); + $this->note_private = $obj->note_private; + $this->note_public = $obj->note_public; + $this->socid = $obj->fk_soc; + $this->user_author_id = $obj->fk_user_creat; + $this->public = $obj->public; + $this->statut = $obj->fk_statut; + + $this->db->free($resql); + + return 1; + } + else + { + return -1; + } + } + else + { + $this->error=$this->db->lasterror(); + dol_syslog("Business::fetch ".$this->error, LOG_ERR); + return -2; + } + } + + /** + * \brief Return list of business + * \param socid To filter on a particular third party + * \return array Business list + */ + function liste_array($socid='') + { + global $conf; + + $business = array(); + + $sql = "SELECT rowid, label"; + $sql.= " FROM ".MAIN_DB_PREFIX."business"; + $sql.= " WHERE entity = ".$conf->entity; + if (! empty($socid)) $sql.= " AND fk_soc = ".$socid; + + $resql=$this->db->query($sql); + if ($resql) + { + $nump = $this->db->num_rows($resql); + + if ($nump) + { + $i = 0; + while ($i < $nump) + { + $obj = $this->db->fetch_object($resql); + + $business[$obj->rowid] = $obj->label; + $i++; + } + } + return $business; + } + else + { + print $this->db->lasterror(); + } + + } + + /** + * \brief Delete business in database + * \param User + */ + function delete($user, $notrigger=0) + { + global $conf; + + $this->db->begin(); + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."business"; + $sql.= " WHERE rowid=".$this->id; + + $resql = $this->db->query($sql); + if ($resql) + { + // We remove directory + $businessref = dol_sanitizeFileName($this->ref); + if ($conf->business->dir_output) + { + $dir = $conf->business->dir_output . "/" . $businessref; + if (file_exists($dir)) + { + $res=@dol_delete_dir($dir); + if (! $res) + { + $this->error='ErrorFailToDeleteDir'; + $this->db->rollback(); + return 0; + } + } + } + + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('BUSINESS_DELETE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + + dol_syslog("Business::delete sql=".$sql, LOG_DEBUG); + $this->db->commit(); + return 1; + } + else + { + $this->error=$this->db->lasterror(); + dol_syslog("Business::delete ".$this->error, LOG_ERR); + $this->db->rollback(); + return -1; + } + } + + /** + * \brief Validate a business + * \param user User that validate + * \return int <0 if KO, >0 if OK + */ + function setValid($user, $outputdir) + { + global $langs, $conf; + + if ($this->statut != 1) + { + $this->db->begin(); + + $sql = "UPDATE ".MAIN_DB_PREFIX."business"; + $sql.= " SET fk_statut = 1"; + $sql.= " WHERE rowid = ".$this->id; + $sql.= " AND entity = ".$conf->entity; + + dol_syslog("Business::setValid sql=".$sql); + $resql=$this->db->query($sql); + if ($resql) + { + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('BUSINESS_VALIDATE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // Fin appel triggers + + if (! $error) + { + $this->db->commit(); + return 1; + } + else + { + $this->db->rollback(); + $this->error=join(',',$this->errors); + dol_syslog("Business::setValid ".$this->error,LOG_ERR); + return -1; + } + } + else + { + $this->db->rollback(); + $this->error=$this->db->lasterror(); + dol_syslog("Business::setValid ".$this->error,LOG_ERR); + return -1; + } + } + } + + /** + * \brief Close a business + * \param user User that validate + * \return int <0 if KO, >0 if OK + */ + function setClose($user, $outputdir) + { + global $langs, $conf; + + if ($this->statut != 2) + { + $this->db->begin(); + + $sql = "UPDATE ".MAIN_DB_PREFIX."business"; + $sql.= " SET fk_statut = 2"; + $sql.= " WHERE rowid = ".$this->id; + $sql.= " AND entity = ".$conf->entity; + $sql.= " AND fk_statut = 1"; + + dol_syslog("Business::setClose sql=".$sql); + $resql=$this->db->query($sql); + if ($resql) + { + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('BUSINESS_CLOSE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // Fin appel triggers + + if (! $error) + { + $this->db->commit(); + return 1; + } + else + { + $this->db->rollback(); + $this->error=join(',',$this->errors); + dol_syslog("Business::setClose ".$this->error,LOG_ERR); + return -1; + } + } + else + { + $this->db->rollback(); + $this->error=$this->db->lasterror(); + dol_syslog("Business::setClose ".$this->error,LOG_ERR); + return -1; + } + } + } + + /** + * \brief Return status label of object + * \param mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto + * \return string Label + */ + function getLibStatut($mode=0) + { + return $this->LibStatut($this->statut,$mode); + } + + /** + * \brief Return status label of object + * \param statut id statut + * \param mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto + * \return string Label + */ + function LibStatut($statut,$mode=0) + { + global $langs; + + if ($mode == 0) + { + return $langs->trans($this->statuts[$statut]); + } + if ($mode == 1) + { + return $langs->trans($this->statuts_short[$statut]); + } + if ($mode == 2) + { + if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]); + } + if ($mode == 3) + { + if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0'); + if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4'); + if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6'); + } + if ($mode == 4) + { + if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]); + } + if ($mode == 5) + { + if ($statut==0) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut0'); + if ($statut==1) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut1'); + if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]); + } + } + + /** + * \brief Renvoie nom clicable (avec eventuellement le picto) + * \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul + * \param option Sur quoi pointe le lien + * \return string Chaine avec URL + */ + function getNomUrl($withpicto=0,$option='') + { + global $langs; + + $result=''; + + $lien = '<a href="'.DOL_URL_ROOT.'/business/fiche.php?id='.$this->id.'">'; + $lienfin='</a>'; + + $picto='businesspub@business'; + if (! $this->public) $picto='business@business'; + + $label=$langs->trans("ShowBusiness").': '.$this->ref.($this->label?' - '.$this->label:''); + + if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin); + if ($withpicto && $withpicto != 2) $result.=' '; + if ($withpicto != 2) $result.=$lien.$this->ref.$lienfin; + return $result; + } + + /** + * \brief Check permissions + */ + function restrictedBusinessArea($user,$list=0) + { + // To verify role of users + $userAccess = 0; + if ((!empty($this->user_author_id) && $this->user_author_id == $user->id) || $user->rights->business->all->read) + { + $userAccess = 1; + } + else if ($this->public && $user->rights->business->read) + { + $userAccess = 1; + } + else + { + foreach(array('internal','external') as $source) + { + $userRole = $this->liste_contact(4,$source); + $num=sizeof($userRole); + + $i = 0; + while ($i < $num) + { + if ($userRole[$i]['code'] == 'ACCOUNTMANAGER' && $user->id == $userRole[$i]['id']) + { + $userAccess++; + } + $i++; + } + } + } + + if (!$userAccess && !$this->public) + { + if (!$list) + { + accessforbidden('',0); + } + else + { + return -1; + } + + } + + return $userAccess; + } + + /** + * Return array of business authorized for a user + * + * @param unknown_type $user + * @return unknown + */ + function getBusinessAuthorizedForUser($user,$mine=0,$list=0) + { + global $conf; + + $business = array(); + $temp = array(); + + $sql = "SELECT DISTINCT b.rowid, b.ref"; + $sql.= " FROM ".MAIN_DB_PREFIX."business as b"; + $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec"; + $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc"; + $sql.= " WHERE b.entity = ".$conf->entity; + + if ($mine) + { + $sql.= " AND ec.element_id = b.rowid"; + $sql.= " AND ctc.rowid = ec.fk_c_type_contact"; + $sql.= " AND ctc.element = '".$this->element."'"; + $sql.= " AND ec.fk_socpeople = ".$user->id; + } + else + { + $sql.= " AND ( b.public = 1"; + $sql.= " OR b.fk_user_creat = ".$user->id; + $sql.= " OR ( ec.element_id = b.rowid"; + $sql.= " AND ctc.rowid = ec.fk_c_type_contact"; + $sql.= " AND ctc.element = '".$this->element."'"; + $sql.= " AND ec.fk_socpeople = ".$user->id." ) )"; + } + + $resql = $this->db->query($sql); + if ($resql) + { + $num = $this->db->num_rows($resql); + $i = 0; + while ($i < $num) + { + $row = $this->db->fetch_row($resql); + $business[$row[0]] = $row[1]; + $temp[] = $row[0]; + $i++; + } + + $this->db->free($resql); + + if ($list) + { + if (empty($temp)) return 0; + $result = implode(',',$temp); + return $result; + } + } + else + { + dol_print_error($this->db); + } + + return $business; + } + + /** + * Return list of roles for a user for each projects or each tasks (or a particular project or task) + * @param user + * @param businessid Business id to filter on a business + * @return array Array (businessid => 'list of roles for business') + */ + function getUserRolesForBusiness($user,$businessid=0) + { + $businessrole = array(); + + dol_syslog("Phase::getUserRolesForBusiness user=".is_object($user)." businessid=".$businessid); + + $sql = "SELECT b.rowid as businessid, ec.element_id, ctc.code"; + $sql.= " FROM ".MAIN_DB_PREFIX."business as b"; + $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec"; + $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc"; + $sql.= " WHERE b.rowid = ec.element_id"; + $sql.= " AND ctc.element = 'business'"; + $sql.= " AND ctc.rowid = ec.fk_c_type_contact"; + if (is_object($user)) $sql.= " AND ec.fk_socpeople = ".$user->id; + $sql.= " AND ec.statut = 4"; + if ($businessid) $sql.= " AND b.rowid = ".$businessid; + + print $sql.'<br>'; + dol_syslog("Phase::getUserRolesForBusiness sql=".$sql); + $resql = $this->db->query($sql); + if ($resql) + { + $num = $this->db->num_rows($resql); + $i = 0; + while ($i < $num) + { + $obj = $this->db->fetch_object($resql); + if (empty($businessrole[$obj->businessid])) $businessrole[$obj->businessid] = $obj->code; + else $businessrole[$obj->businessid].=','.$obj->code; + $i++; + } + $this->db->free($resql); + } + else + { + dol_print_error($this->db); + } + + return $businessrole; + } + +} +?> diff --git a/htdocs/business/class/phase.class.php b/htdocs/business/class/phase.class.php new file mode 100644 index 0000000000000000000000000000000000000000..c55561cfd3d2c40ab78d0648533d45faa4d8b36a --- /dev/null +++ b/htdocs/business/class/phase.class.php @@ -0,0 +1,890 @@ +<?php +/* Copyright (C) 2010 Regis Houssin <regis@dolibarr.fr> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/** + * \file htdocs/business/class/phase.class.php + * \ingroup business + * \brief This file is a class to manage phases of business + * \version $Id$ + */ + + +/** + * \class Phase + * \brief Class to manage phases of business + */ +class Phase extends CommonObject +{ + var $db; //!< To store db handler + var $error; //!< To return error code (or message) + var $errors=array(); //!< To return several error codes (or messages) + var $element='business_phase'; //!< Id that identify managed objects + var $table_element='business_phase'; //!< Name of table without prefix where object is stored + + var $id; + + var $fk_business; + var $fk_milestone; + var $label; + var $description; + var $date_c; + var $date_start; + var $date_end; + var $progress; + var $priority; + var $fk_user_creat; + var $fk_user_valid; + var $statut; + var $note_private; + var $note_public; + + var $total_ht; // Total net of tax + var $total_tva; // Total VAT + var $total_ttc; // Total with tax + var $tva_tx; + + /** + * \brief Constructor + * \param DB Database handler + */ + function Phase($DB) + { + $this->db = $DB; + + $this->statuts_short=array(0=>'Draft',1=>'Validated',2=>'ActionRunningShort',5=>'ToBill'); + $this->statuts=array(0=>'Draft',1=>'Validated',2=>'ActionRunningShort',5=>'ToBill'); + } + + + /** + * \brief Create in database + * \param user User that create + * \param notrigger 0=launch triggers after, 1=disable triggers + * \return int <0 if KO, Id of created object if OK + */ + function create($user, $notrigger=0) + { + global $conf, $langs; + + include_once(DOL_DOCUMENT_ROOT.'/lib/price.lib.php'); + + $error=0; + + // Clean parameters + $this->label = trim($this->label); + $this->description = trim($this->description); + + $total_ht = price2num($this->total_ht); + $tva_tx = price2num($this->tva_tx); + + $tabprice=calcul_price_total(1, $total_ht, 0, $tva_tx); + $total_ht = $tabprice[0]; + $total_tva = $tabprice[1]; + $total_ttc = $tabprice[2]; + + // Check parameters + // Put here code to add control on parameters values + + // Insert request + $sql = "INSERT INTO ".MAIN_DB_PREFIX."business_phase ("; + $sql.= "fk_business"; + //$sql.= ", fk_milestone"; + $sql.= ", label"; + $sql.= ", description"; + $sql.= ", datec"; + $sql.= ", fk_user_creat"; + $sql.= ", dateo"; + $sql.= ", datee"; + $sql.= ", total_ht"; + $sql.= ", total_tva"; + $sql.= ", total_ttc"; + $sql.= ", tva_tx"; + $sql.= ", progress"; + $sql.= ") VALUES ("; + $sql.= $this->fk_business; + //$sql.= ", ".$this->fk_milestone; + $sql.= ", '".addslashes($this->label)."'"; + $sql.= ", '".addslashes($this->description)."'"; + $sql.= ", ".$this->db->idate($this->date_c); + $sql.= ", ".$user->id; + $sql.= ", ".($this->date_start!=''?$this->db->idate($this->date_start):'null'); + $sql.= ", ".($this->date_end!=''?$this->db->idate($this->date_end):'null'); + $sql.= ", '".$total_ht."'"; + $sql.= ", '".$total_tva."'"; + $sql.= ", '".$total_ttc."'"; + $sql.= ", '".$tva_tx."'"; + $sql.= ", ".($this->progress!=''?$this->progress:0); + $sql.= ")"; + + $this->db->begin(); + + dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG); + $resql=$this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + + if (! $error) + { + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."business_phase"); + + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('PHASE_CREATE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + } + + // Commit or rollback + if ($error) + { + foreach($this->errors as $errmsg) + { + dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR); + $this->error.=($this->error?', '.$errmsg:$errmsg); + } + $this->db->rollback(); + return -1*$error; + } + else + { + $this->db->commit(); + return $this->id; + } + } + + + /** + * \brief Load object in memory from database + * \param id id object + * \return int <0 if KO, >0 if OK + */ + function fetch($id) + { + global $langs; + + $sql = "SELECT "; + $sql.= "p.rowid"; + $sql.= ", p.fk_business"; + $sql.= ", p.label"; + $sql.= ", p.description"; + //$sql.= ", p.duration_effective"; + $sql.= ", p.dateo"; + $sql.= ", p.datee"; + $sql.= ", p.fk_user_creat"; + $sql.= ", p.fk_user_valid"; + $sql.= ", p.fk_statut"; + $sql.= ", p.progress"; + $sql.= ", p.priority"; + $sql.= ", p.note_private"; + $sql.= ", p.note_public"; + $sql.= ", p.total_ht"; + $sql.= ", p.total_tva"; + $sql.= ", p.total_ttc"; + $sql.= ", p.tva_tx"; + $sql.= " FROM ".MAIN_DB_PREFIX."business_phase as p"; + $sql.= " WHERE p.rowid = ".$id; + + dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + if ($this->db->num_rows($resql)) + { + $obj = $this->db->fetch_object($resql); + + $this->id = $obj->rowid; + $this->ref = $obj->rowid; + $this->fk_business = $obj->fk_business; + //$this->fk_milestone = $obj->fk_milestone; + $this->label = $obj->label; + $this->description = $obj->description; + //$this->duration_effective = $obj->duration_effective; + $this->date_c = $this->db->jdate($obj->datec); + $this->date_start = $this->db->jdate($obj->dateo); + $this->date_end = $this->db->jdate($obj->datee); + $this->fk_user_creat = $obj->fk_user_creat; + $this->fk_user_valid = $obj->fk_user_valid; + $this->statut = $obj->fk_statut; + $this->progress = $obj->progress; + $this->priority = $obj->priority; + $this->note_private = $obj->note_private; + $this->note_public = $obj->note_public; + $this->total_ht = $obj->total_ht; + $this->total_tva = $obj->total_tva; + $this->total_ttc = $obj->total_ttc; + $this->tva_tx = $obj->tva_tx; + } + + $this->db->free($resql); + + return 1; + } + else + { + $this->error="Error ".$this->db->lasterror(); + dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR); + return -1; + } + } + + + /** + * \brief Update database + * \param user User that modify + * \param notrigger 0=launch triggers after, 1=disable triggers + * \return int <0 if KO, >0 if OK + */ + function update($user=0, $notrigger=0) + { + global $conf, $langs; + + include_once(DOL_DOCUMENT_ROOT.'/lib/price.lib.php'); + + $error=0; + + // Clean parameters + if (isset($this->label)) $this->label=trim($this->label); + if (isset($this->description)) $this->description=trim($this->description); + //if (isset($this->duration_effective)) $this->duration_effective=trim($this->duration_effective); + + // Check parameters + $total_ht = price2num($this->total_ht); + $tva_tx = price2num($this->tva_tx); + + $tabprice=calcul_price_total(1, $total_ht, 0, $tva_tx); + $total_ht = $tabprice[0]; + $total_tva = $tabprice[1]; + $total_ttc = $tabprice[2]; + + // Update request + $sql = "UPDATE ".MAIN_DB_PREFIX."business_phase SET"; + $sql.= " label=".(isset($this->label)?"'".addslashes($this->label)."'":"null").","; + $sql.= " description=".(isset($this->description)?"'".addslashes($this->description)."'":"null").","; + //$sql.= " duration_effective=".(isset($this->duration_effective)?$this->duration_effective:"null").","; + $sql.= " dateo=".($this->date_start!=''?$this->db->idate($this->date_start):'null').","; + $sql.= " datee=".($this->date_end!=''?$this->db->idate($this->date_end):'null').","; + $sql.= " total_ht='".$total_ht."',"; + $sql.= " total_tva='".$total_tva."',"; + $sql.= " total_ttc='".$total_ttc."',"; + $sql.= " tva_tx='".$tva_tx."',"; + $sql.= " progress=".$this->progress; + $sql.= " WHERE rowid=".$this->id; + + $this->db->begin(); + + dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG); + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + + if (! $error) + { + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('PHASE_MODIFY',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + } + + // Commit or rollback + if ($error) + { + foreach($this->errors as $errmsg) + { + dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR); + $this->error.=($this->error?', '.$errmsg:$errmsg); + } + $this->db->rollback(); + return -1*$error; + } + else + { + $this->db->commit(); + return 1; + } + } + + + /** + * \brief Delete object in database + * \param user User that delete + * \param notrigger 0=launch triggers after, 1=disable triggers + * \return int <0 if KO, >0 if OK + */ + function delete($user, $notrigger=0) + { + global $conf, $langs; + + $error=0; + + $this->db->begin(); + + if ($this->hasChildren() > 0) + { + dol_syslog(get_class($this)."::delete Can't delete record as it has some child", LOG_WARNING); + $this->error='ErrorRecordHasChildren'; + $this->db->rollback(); + return 0; + } + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task"; + $sql.= " WHERE rowid=".$this->id; + + dol_syslog(get_class($this)."::delete sql=".$sql); + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + + if (! $error) + { + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('TASK_DELETE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + } + + // Commit or rollback + if ($error) + { + foreach($this->errors as $errmsg) + { + dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); + $this->error.=($this->error?', '.$errmsg:$errmsg); + } + $this->db->rollback(); + return -1*$error; + } + else + { + $this->db->commit(); + return 1; + } + } + + /** + * \brief Return nb of children + * \return <0 if KO, 0 if no children, >0 if OK + */ + function hasChildren() + { + $ret=0; + + $sql = "SELECT COUNT(*) as nb"; + $sql.= " FROM ".MAIN_DB_PREFIX."projet_task"; + $sql.= " WHERE fk_task_parent=".$this->id; + + dol_syslog(get_class($this)."::hasChildren sql=".$sql, LOG_DEBUG); + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + else + { + $obj=$this->db->fetch_object($resql); + if ($obj) $ret=$obj->nb; + } + + if (! $error) + { + return $ret; + } + else + { + return -1; + } + } + + + /** + * \brief Renvoie nom clicable (avec eventuellement le picto) + * \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul + * \param option Sur quoi pointe le lien + * \return string Chaine avec URL + */ + function getNomUrl($withpicto=0,$option='') + { + global $langs; + + $result=''; + + $lien = '<a href="'.DOL_URL_ROOT.'/business/phases/phase.php?id='.$this->id.'">'; + $lienfin='</a>'; + + $picto='projecttask'; + + $label=$langs->trans("ShowPhase").': '.$this->ref.($this->label?' - '.$this->label:''); + + if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin); + if ($withpicto && $withpicto != 2) $result.=' '; + if ($withpicto != 2) $result.=$lien.$this->ref.$lienfin; + return $result; + } + + /** + * \brief Initialise object with example values + * \remarks id must be 0 if object instance is a specimen. + */ + function initAsSpecimen() + { + $this->id=0; + + $this->fk_projet=''; + $this->fk_task_parent=''; + $this->title=''; + $this->duration_effective=''; + $this->fk_user_creat=''; + $this->statut=''; + $this->note=''; + } + + /** + * Return list of phases for a business + * Sort order is on business + * @param user Object user to limit phase affected to a particular user + * @param businessid Business id + * @param socid Third party id + * @return array Array of tasks + */ + function getPhasesArray($user=0, $businessid=0, $socid=0) + { + global $conf; + + $phases = array(); + + $sql = "SELECT b.rowid as businessid, b.ref, b.label as business_label, b.public"; + $sql.= ", p.rowid as phaseid, p.label as phase_label, p.progress, p.total_ht, p.total_ttc, p.fk_statut"; + $sql.= " FROM ".MAIN_DB_PREFIX."business as b"; + $sql.= " RIGHT JOIN ".MAIN_DB_PREFIX."business_phase as p on p.fk_business = b.rowid"; + $sql.= " WHERE b.entity = ".$conf->entity; + if ($socid) $sql.= " AND b.fk_soc = ".$socid; + if ($businessid) $sql.= " AND b.rowid =".$businessid; + $sql.= " ORDER BY p.rang ASC, p.rowid"; + + //print $sql; + + dol_syslog("Phase::getPhasesArray sql=".$sql, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) + { + $num = $this->db->num_rows($resql); + $i = 0; + // Loop on each record found, so each couple (project id, task id) + while ($i < $num) + { + $error=0; + + $obj = $this->db->fetch_object($resql); + + if ((! $obj->public) && is_object($user)) // If not public and we ask a filter on user + { + if (! $this->getUserRolesForPhase($user, $obj->phaseid) && ! $user->rights->business->all->read) + { + $error++; + //print '<br>error<br>'; + } + } + + if (! $error) + { + $phases[$i]->id = $obj->phaseid; + $phases[$i]->businessid = $obj->businessid; + $phases[$i]->businessref = $obj->ref; + $phases[$i]->businesslabel = $obj->business_label; + $phases[$i]->label = $obj->phase_label; + $phases[$i]->description = $obj->description; + $phases[$i]->total_ht = $obj->total_ht; + $phases[$i]->total_ttc = $obj->total_ttc; + //$phases[$i]->fk_milestone = $obj->fk_milestone; + //$phases[$i]->duration = $obj->duration_effective; + $phases[$i]->statut = $obj->fk_statut; + $phases[$i]->progress = $obj->progress; + $phases[$i]->public = $obj->public; + } + + $i++; + } + $this->db->free($resql); + } + else + { + dol_print_error($this->db); + } + + return $phases; + } + + /** + * Return list of roles for a user for each projects or each tasks (or a particular project or task) + * @param user + * @param businessid Business id to filter on a business + * @return array Array (businessid => 'list of roles for business') + */ + function getUserRolesForPhase($user,$phaseid=0) + { + $phaserole = array(); + + dol_syslog("Phase::getUserRolesForPhase user=".is_object($user)." phaseid=".$phaseid); + + $sql = "SELECT p.rowid as phaseid, ec.element_id, ctc.code"; + $sql.= " FROM ".MAIN_DB_PREFIX."business_phase as p"; + $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec"; + $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc"; + $sql.= " WHERE p.rowid = ec.element_id"; + $sql.= " AND ctc.element = 'business_phase'"; + $sql.= " AND ctc.rowid = ec.fk_c_type_contact"; + if (is_object($user)) $sql.= " AND ec.fk_socpeople = ".$user->id; + $sql.= " AND ec.statut = 4"; + if ($phaseid) $sql.= " AND p.rowid = ".$phaseid; + + //print $sql.'<br>'; + dol_syslog("Phase::getUserRolesForPhase sql=".$sql); + $resql = $this->db->query($sql); + if ($resql) + { + $num = $this->db->num_rows($resql); + $i = 0; + while ($i < $num) + { + $obj = $this->db->fetch_object($resql); + if (empty($phaserole[$obj->phaseid])) $phaserole[$obj->phaseid] = $obj->code; + else $phaserole[$obj->phaseid].=','.$obj->code; + $i++; + } + $this->db->free($resql); + } + else + { + dol_print_error($this->db); + } + + return $phaserole; + } + + /** + * \brief Add time spent + * \param user user id + * \param notrigger 0=launch triggers after, 1=disable triggers + */ + function addTimeSpent($user, $notrigger=0) + { + $ret = 0; + + // Clean parameters + if (isset($this->timespent_note)) $this->timespent_note = trim($this->timespent_note); + + $sql = "INSERT INTO ".MAIN_DB_PREFIX."projet_task_time ("; + $sql.= "fk_task"; + $sql.= ", task_date"; + $sql.= ", task_duration"; + $sql.= ", fk_user"; + $sql.= ", note"; + $sql.= ") VALUES ("; + $sql.= $this->id; + $sql.= ", '".$this->db->idate($this->timespent_date)."'"; + $sql.= ", ".$this->timespent_duration; + $sql.= ", ".$this->timespent_fk_user; + $sql.= ", ".(isset($this->timespent_note)?"'".addslashes($this->timespent_note)."'":"null"); + $sql.= ")"; + + dol_syslog(get_class($this)."::addTimeSpent sql=".$sql, LOG_DEBUG); + if ($this->db->query($sql) ) + { + $task_id = $this->db->last_insert_id(MAIN_DB_PREFIX."projet_task_time"); + $ret = $task_id; + + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('TASK_TIMESPENT_CREATE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + } + else + { + $this->error=$this->db->lasterror(); + dol_syslog(get_class($this)."::addTimeSpent error -1 ".$this->error,LOG_ERR); + $ret = -1; + } + + if ($ret >= 0) + { + $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task"; + $sql.= " SET duration_effective = duration_effective + '".price2num($this->timespent_duration)."'"; + $sql.= " WHERE rowid = ".$this->id; + + dol_syslog(get_class($this)."::addTimeSpent sql=".$sql, LOG_DEBUG); + if (! $this->db->query($sql) ) + { + $this->error=$this->db->lasterror(); + dol_syslog(get_class($this)."::addTimeSpent error -2 ".$this->error, LOG_ERR); + $ret = -2; + } + } + + return $ret; + } + + /** + * \brief Load object in memory from database + * \param id id object + * \return int <0 if KO, >0 if OK + */ + function fetchTimeSpent($id) + { + global $langs; + + $sql = "SELECT"; + $sql.= " t.rowid,"; + $sql.= " t.fk_task,"; + $sql.= " t.task_date,"; + $sql.= " t.task_duration,"; + $sql.= " t.fk_user,"; + $sql.= " t.note"; + $sql.= " FROM ".MAIN_DB_PREFIX."projet_task_time as t"; + $sql.= " WHERE t.rowid = ".$id; + + dol_syslog(get_class($this)."::fetchTimeSpent sql=".$sql, LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + if ($this->db->num_rows($resql)) + { + $obj = $this->db->fetch_object($resql); + + $this->timespent_id = $obj->rowid; + $this->id = $obj->fk_task; + $this->timespent_date = $obj->task_date; + $this->timespent_duration = $obj->task_duration; + $this->timespent_user = $obj->fk_user; + $this->timespent_note = $obj->note; + } + + $this->db->free($resql); + + return 1; + } + else + { + $this->error="Error ".$this->db->lasterror(); + dol_syslog(get_class($this)."::fetchTimeSpent ".$this->error, LOG_ERR); + return -1; + } + } + + /** + * \brief Update time spent + * \param user User id + * \param notrigger 0=launch triggers after, 1=disable triggers + */ + function updateTimeSpent($user, $notrigger=0) + { + $ret = 0; + + // Clean parameters + if (isset($this->timespent_note)) $this->timespent_note = trim($this->timespent_note); + + $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task_time SET"; + $sql.= " task_date = '".$this->db->idate($this->timespent_date)."',"; + $sql.= " task_duration = ".$this->timespent_duration.","; + $sql.= " fk_user = ".$this->timespent_fk_user.","; + $sql.= " note = ".(isset($this->timespent_note)?"'".addslashes($this->timespent_note)."'":"null"); + $sql.= " WHERE rowid = ".$this->timespent_id; + + dol_syslog(get_class($this)."::updateTimeSpent sql=".$sql, LOG_DEBUG); + if ($this->db->query($sql) ) + { + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('TASK_TIMESPENT_MODIFY',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + $ret = 1; + } + else + { + $this->error=$this->db->lasterror(); + dol_syslog(get_class($this)."::updateTimeSpent error -1 ".$this->error,LOG_ERR); + $ret = -1; + } + + if ($ret == 1 && ($this->timespent_old_duration != $this->timespent_duration)) + { + $newDuration = $this->timespent_duration - $this->timespent_old_duration; + + $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task"; + $sql.= " SET duration_effective = duration_effective + '".$newDuration."'"; + $sql.= " WHERE rowid = ".$this->id; + + dol_syslog(get_class($this)."::updateTimeSpent sql=".$sql, LOG_DEBUG); + if (! $this->db->query($sql) ) + { + $this->error=$this->db->lasterror(); + dol_syslog(get_class($this)."::addTimeSpent error -2 ".$this->error, LOG_ERR); + $ret = -2; + } + } + + return $ret; + } + + /** + * \brief Delete time spent + * \param user User that delete + * \param notrigger 0=launch triggers after, 1=disable triggers + * \return int <0 if KO, >0 if OK + */ + function delTimeSpent($user, $notrigger=0) + { + global $conf, $langs; + + $error=0; + + $this->db->begin(); + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."projet_task_time"; + $sql.= " WHERE rowid = ".$this->timespent_id; + + dol_syslog(get_class($this)."::delTimeSpent sql=".$sql); + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + + if (! $error) + { + if (! $notrigger) + { + // Call triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('TASK_TIMESPENT_DELETE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // End call triggers + } + } + + if (! $error) + { + $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task"; + $sql.= " SET duration_effective = duration_effective - '".$this->timespent_duration."'"; + $sql.= " WHERE rowid = ".$this->id; + + dol_syslog(get_class($this)."::delTimeSpent sql=".$sql, LOG_DEBUG); + if ($this->db->query($sql) ) + { + $result = 0; + } + else + { + $this->error=$this->db->lasterror(); + dol_syslog(get_class($this)."::addTimeSpent error -3 ".$this->error, LOG_ERR); + $result = -2; + } + } + + // Commit or rollback + if ($error) + { + foreach($this->errors as $errmsg) + { + dol_syslog(get_class($this)."::delTimeSpent ".$errmsg, LOG_ERR); + $this->error.=($this->error?', '.$errmsg:$errmsg); + } + $this->db->rollback(); + return -1*$error; + } + else + { + $this->db->commit(); + return 1; + } + } + + /** + * \brief Return status label of object + * \param mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto + * \return string Label + */ + function getLibStatut($mode=0) + { + return $this->LibStatut($this->statut,$mode); + } + + /** + * \brief Return status label of object + * \param statut id statut + * \param mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto + * \return string Label + */ + function LibStatut($statut,$mode=0) + { + global $langs; + + if ($mode == 0) + { + return $langs->trans($this->statuts[$statut]); + } + if ($mode == 1) + { + return $langs->trans($this->statuts_short[$statut]); + } + if ($mode == 2) + { + if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]); + } + if ($mode == 3) + { + if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0'); + if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1'); + if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3'); + if ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4'); + } + if ($mode == 4) + { + if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3').' '.$langs->trans($this->statuts_short[$statut]); + if ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]); + } + if ($mode == 5) + { + if ($statut==0) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut0'); + if ($statut==1) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut1'); + if ($statut==2) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut3'); + if ($statut==5) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut4'); + } + } + +} +?> \ No newline at end of file diff --git a/htdocs/categories/categorie.class.php b/htdocs/categories/categorie.class.php index 1d6bee7270c337d4104508529b3f976c56663dfc..99a462afb9dba9a99e3875dee2332923b09f014f 100644 --- a/htdocs/categories/categorie.class.php +++ b/htdocs/categories/categorie.class.php @@ -169,9 +169,9 @@ class Categorie } // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CATEGORY_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CATEGORY_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -249,9 +249,9 @@ class Categorie $this->db->commit(); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CATEGORY_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CATEGORY_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -303,9 +303,9 @@ class Categorie else { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CATEGORY_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CATEGORY_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/comm/action/actioncomm.class.php b/htdocs/comm/action/actioncomm.class.php index 00007655c6e51afb2f2e911df5287df8917d278c..bd7a4b2c51a8224016a0016cec1e3c0f20839ffd 100644 --- a/htdocs/comm/action/actioncomm.class.php +++ b/htdocs/comm/action/actioncomm.class.php @@ -189,9 +189,9 @@ class ActionComm if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ACTION_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ACTION_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index ac21a5575714d8c2a79f777ec345c20b2055b42b..a7cf0850a277dc750443aeb9aa89bda716e07bf7 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -549,9 +549,9 @@ if ($_POST['action'] == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] $propal->propalrowid=$propal->id; // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->call_workflow('PROPAL_SENTBYMAIL',$propal,$user,$langs,$conf); + $result=$interface->run_triggers('PROPAL_SENTBYMAIL',$propal,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/comm/propal/propal.class.php b/htdocs/comm/propal/propal.class.php index b5bd23e0f96820bfc194494cb698ac73c4374b05..9c755309ae697de6aaf4401c83f4ecbecd857237 100644 --- a/htdocs/comm/propal/propal.class.php +++ b/htdocs/comm/propal/propal.class.php @@ -459,9 +459,9 @@ class Propal extends CommonObject if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result = $interface->call_workflow('LINEPROPAL_UPDATE',$this,$user,$langs,$conf); + $result = $interface->run_triggers('LINEPROPAL_UPDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -665,9 +665,9 @@ class Propal extends CommonObject if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROPAL_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROPAL_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -976,9 +976,9 @@ class Propal extends CommonObject if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROPAL_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROPAL_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1249,9 +1249,9 @@ class Propal extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_PROPALSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROPAL_CLOSE_SIGNED',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROPAL_CLOSE_SIGNED',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1260,9 +1260,9 @@ class Propal extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_PROPALSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROPAL_CLOSE_REFUSED',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROPAL_CLOSE_REFUSED',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1623,9 +1623,9 @@ class Propal extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROPAL_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROPAL_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -2309,9 +2309,9 @@ class PropaleLigne if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result = $interface->call_workflow('LINEPROPAL_INSERT',$this,$user,$langs,$conf); + $result = $interface->run_triggers('LINEPROPAL_INSERT',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/commande/commande.class.php b/htdocs/commande/commande.class.php index 373eb33bcf15ceaea9b266624b69485558efd9db..d43d1dea657c43dbfe8354a9a079562d32fa240a 100644 --- a/htdocs/commande/commande.class.php +++ b/htdocs/commande/commande.class.php @@ -328,9 +328,9 @@ class Commande extends CommonObject if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -451,9 +451,9 @@ class Commande extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_BILLSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_REOPEN',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_REOPEN',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -700,9 +700,9 @@ class Commande extends CommonObject } // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -1893,9 +1893,9 @@ class Commande extends CommonObject $this->update_price(); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('LINEORDER_UPDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('LINEORDER_UPDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -1987,9 +1987,9 @@ class Commande extends CommonObject if ($err == 0) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -2484,9 +2484,9 @@ class OrderLine if ($resql) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('LINEORDER_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('LINEORDER_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -2583,9 +2583,9 @@ class OrderLine if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('LINEORDER_INSERT',$this,$user,$langs,$conf); + $result=$interface->run_triggers('LINEORDER_INSERT',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index 420185c8cc954033154e80a1f65b80040f048ad5..b05a943ced845c063cf212d3b43226207cbfffd6 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -944,9 +944,9 @@ if ($_POST['action'] == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] $commande->orderrowid=$commande->id; // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->call_workflow('ORDER_SENTBYMAIL',$commande,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_SENTBYMAIL',$commande,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/compta/bank/bankcateg.class.php b/htdocs/compta/bank/bankcateg.class.php index 289c0d00d4cebf734566ef6ce8f4ec3df9c8d367..93f902061d53608007be977acd866a5485b4a65f 100644 --- a/htdocs/compta/bank/bankcateg.class.php +++ b/htdocs/compta/bank/bankcateg.class.php @@ -103,9 +103,9 @@ class BankCateg // extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_CREATE',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } @@ -207,9 +207,9 @@ class BankCateg // extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_MODIFY',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } @@ -263,9 +263,9 @@ class BankCateg // extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_DELETE',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } diff --git a/htdocs/compta/chargesociales.class.php b/htdocs/compta/chargesociales.class.php index f1ad616ac53dd209c015b7e9510567a837620f42..e86a9733fe2c84f009eb9811cea46f2bcfbf9d38 100644 --- a/htdocs/compta/chargesociales.class.php +++ b/htdocs/compta/chargesociales.class.php @@ -584,9 +584,9 @@ class PaiementCharge extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_MODIFY',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } @@ -639,9 +639,9 @@ class PaiementCharge extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_DELETE',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 92e999dfae02f0429ae718b55dc88464535e9b93..9007e0413b15efd02f1ed291bc009a126e9fccae 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -1365,9 +1365,9 @@ if (($_POST['action'] == 'send' || $_POST['action'] == 'relance') && ! $_POST['a $fac->facid=$fac->id; // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->call_workflow('BILL_SENTBYMAIL',$fac,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_SENTBYMAIL',$fac,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/compta/facture/facture.class.php b/htdocs/compta/facture/facture.class.php index f9e3fd14a48be3f3eca8ff0d4df7adc0d11b7803..a8f8d09caeae75cb3b45881175ef82dce2e2d5cb 100644 --- a/htdocs/compta/facture/facture.class.php +++ b/htdocs/compta/facture/facture.class.php @@ -340,9 +340,9 @@ class Facture extends CommonObject if ($resql) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -823,9 +823,9 @@ class Facture extends CommonObject // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_MODIFY',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } @@ -1014,9 +1014,9 @@ class Facture extends CommonObject if ($resql) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -1140,9 +1140,9 @@ class Facture extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_BILLSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_PAYED',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_PAYED',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1196,9 +1196,9 @@ class Facture extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_BILLSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_UNPAYED',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_UNPAYED',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1258,9 +1258,9 @@ class Facture extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_BILLSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_CANCEL',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_CANCEL',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -1466,9 +1466,9 @@ class Facture extends CommonObject if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1839,9 +1839,9 @@ class Facture extends CommonObject $result=$this->update_price(); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result = $interface->call_workflow('LINEBILL_DELETE',$this,$user,$langs,$conf); + $result = $interface->run_triggers('LINEBILL_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -3097,9 +3097,9 @@ class FactureLigne if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result = $interface->call_workflow('LINEBILL_INSERT',$this,$user,$langs,$conf); + $result = $interface->run_triggers('LINEBILL_INSERT',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -3166,9 +3166,9 @@ class FactureLigne if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result = $interface->call_workflow('LINEBILL_UPDATE',$this,$user,$langs,$conf); + $result = $interface->run_triggers('LINEBILL_UPDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/compta/tva/tva.class.php b/htdocs/compta/tva/tva.class.php index 9843c39d7763ce366d7af37552007e01b56af1d6..210380f6ac91effc922b4ef6a2d13c65955f7369 100644 --- a/htdocs/compta/tva/tva.class.php +++ b/htdocs/compta/tva/tva.class.php @@ -125,9 +125,9 @@ class Tva extends CommonObject $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."tva"); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MYOBJECT_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -193,9 +193,9 @@ class Tva extends CommonObject if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MYOBJECT_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -291,9 +291,9 @@ class Tva extends CommonObject } // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MYOBJECT_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/contact/contact.class.php b/htdocs/contact/contact.class.php index d7a4c24629a704a592ed8059a362a3419c85d741..987bcc6065448a222c767f9d9dd131c74f4444e0 100644 --- a/htdocs/contact/contact.class.php +++ b/htdocs/contact/contact.class.php @@ -120,9 +120,9 @@ class Contact extends CommonObject } // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTACT_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTACT_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -193,9 +193,9 @@ class Contact extends CommonObject if (! $error && ! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTACT_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTACT_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -628,9 +628,9 @@ class Contact extends CommonObject if (! $error && ! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTACT_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTACT_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/contrat/contrat.class.php b/htdocs/contrat/contrat.class.php index 7121bf3d4d15ff6659be846fcf204129857a2162..c9851ba42c99506a174c39753936c4e706c4ab8b 100644 --- a/htdocs/contrat/contrat.class.php +++ b/htdocs/contrat/contrat.class.php @@ -116,9 +116,9 @@ class Contrat extends CommonObject if ($resql) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTRACT_SERVICE_ACTIVATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTRACT_SERVICE_ACTIVATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -161,9 +161,9 @@ class Contrat extends CommonObject if ($resql) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTRACT_SERVICE_CLOSE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTRACT_SERVICE_CLOSE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -247,9 +247,9 @@ class Contrat extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_CONTRACTSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTRACT_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTRACT_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -570,9 +570,9 @@ class Contrat extends CommonObject if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTRACT_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTRACT_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -747,9 +747,9 @@ class Contrat extends CommonObject if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTRACT_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTRACT_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -994,9 +994,9 @@ class Contrat extends CommonObject } // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('CONTRACTLINE_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('CONTRACTLINE_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -1699,9 +1699,9 @@ class ContratLigne if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MYOBJECT_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/workflow/class/interfaces.class.php b/htdocs/core/interfaces.class.php similarity index 96% rename from htdocs/workflow/class/interfaces.class.php rename to htdocs/core/interfaces.class.php index deb8f8dfbc68bd77cc1b1a8b9406bb201b73197d..6dfc7807b9e3a6f6d89c2a9dcc8a7cd0829ac6fa 100644 --- a/htdocs/workflow/class/interfaces.class.php +++ b/htdocs/core/interfaces.class.php @@ -19,21 +19,19 @@ */ /** - * \file htdocs/workflow/class/interfaces.class.php + * \file htdocs/core/interfaces.class.php * \ingroup workflow * \brief Fichier de la classe de gestion des triggers * \version $Id$ */ -require_once(DOL_DOCUMENT_ROOT ."/workflow/class/workflow.class.php"); - /** * \class Interfaces * \brief Classe de la gestion des triggers */ -class Interfaces extends Workflow +class Interfaces { var $dir; // Directory with all core and external triggers files var $errors = array(); // Array for errors diff --git a/htdocs/ecm/ecmdirectory.class.php b/htdocs/ecm/ecmdirectory.class.php index 324908e85158bdf9d0f96bf396fa4539a6f5524a..27b2aa4558fa85a2a1ef23d3db156818dc86c423 100644 --- a/htdocs/ecm/ecmdirectory.class.php +++ b/htdocs/ecm/ecmdirectory.class.php @@ -147,9 +147,9 @@ class EcmDirectory // extends CommonObject $result=create_exdir($dir); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MYECMDIR_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MYECMDIR_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -215,9 +215,9 @@ class EcmDirectory // extends CommonObject if (! $error && ! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MYECMDIR_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MYECMDIR_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -361,9 +361,9 @@ class EcmDirectory // extends CommonObject if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('MYECMDIR_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('MYECMDIR_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/expedition/expedition.class.php b/htdocs/expedition/expedition.class.php index f7fbfc71d255f9f8a2cd2a97c5fbf5c0439bb0f2..146d8ee154b75c31d8b75a9c84247d2bbfc0f93b 100644 --- a/htdocs/expedition/expedition.class.php +++ b/htdocs/expedition/expedition.class.php @@ -447,9 +447,9 @@ class Expedition extends CommonObject if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_SHIPPING',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_SHIPPING',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/exports/export.class.php b/htdocs/exports/export.class.php index 25659f1b3b954922f973eeffacb4730c88779263..f3a70a53f68c2abada6ad623dc3e30f812207775 100644 --- a/htdocs/exports/export.class.php +++ b/htdocs/exports/export.class.php @@ -401,9 +401,9 @@ class Export // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_DELETE',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } diff --git a/htdocs/fichinter/fichinter.class.php b/htdocs/fichinter/fichinter.class.php index f2cb9a0f5e0506ff9e7e417b647b4ca38191d537..0baaf7b4f22de5bf5af21f0faa81a2cd229e5ba8 100644 --- a/htdocs/fichinter/fichinter.class.php +++ b/htdocs/fichinter/fichinter.class.php @@ -287,9 +287,9 @@ class Fichinter extends CommonObject if ($resql) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('FICHEINTER_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('FICHEINTER_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/fourn/facture/paiementfourn.class.php b/htdocs/fourn/facture/paiementfourn.class.php index b5506de38a0c7c05ba6d7b274489a45189ca802b..fa336cfbce95ef8bf35dc9a97f1319f51d2bee02 100644 --- a/htdocs/fourn/facture/paiementfourn.class.php +++ b/htdocs/fourn/facture/paiementfourn.class.php @@ -175,9 +175,9 @@ class PaiementFourn if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PAYMENT_SUPPLIER_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PAYMENT_SUPPLIER_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/fourn/fournisseur.commande.class.php b/htdocs/fourn/fournisseur.commande.class.php index 948ee6a5f3bd7dec48b086224097ed1ad9620e2f..30a1a9110d968848f22f2a4ae85079d998f1993b 100644 --- a/htdocs/fourn/fournisseur.commande.class.php +++ b/htdocs/fourn/fournisseur.commande.class.php @@ -303,9 +303,9 @@ class CommandeFournisseur extends Commande if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_SUPPLIER_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_SUPPLIER_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -357,9 +357,9 @@ class CommandeFournisseur extends Commande $this->log($user, $statut, time()); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_SUPPLIER_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_SUPPLIER_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -585,9 +585,9 @@ class CommandeFournisseur extends Commande if ($error == 0) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_SUPPLIER_APPROVE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_SUPPLIER_APPROVE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -643,9 +643,9 @@ class CommandeFournisseur extends Commande if ($error == 0) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_SUPPLIER_REFUSE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_SUPPLIER_REFUSE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -745,9 +745,9 @@ class CommandeFournisseur extends Commande $this->log($user, 0, time()); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -1057,9 +1057,9 @@ class CommandeFournisseur extends Commande if ($err == 0) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('ORDER_SUPPLIER_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_SUPPLIER_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/fourn/fournisseur.facture.class.php b/htdocs/fourn/fournisseur.facture.class.php index c1dfa32a9bea9a246dd531289294182a1fb56ab5..8f15623fecdc633e8e71a5b82cd5e5b034dfba94 100644 --- a/htdocs/fourn/fournisseur.facture.class.php +++ b/htdocs/fourn/fournisseur.facture.class.php @@ -465,9 +465,9 @@ class FactureFournisseur extends Facture $this->use_webcal=($conf->global->PHPWEBCALENDAR_BILLSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_SUPPLIER_PAYED',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_SUPPLIER_PAYED',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -517,9 +517,9 @@ class FactureFournisseur extends Facture $this->use_webcal=($conf->global->PHPWEBCALENDAR_BILLSTATUS=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_SUPPLIER_UNPAYED',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_SUPPLIER_UNPAYED',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -591,9 +591,9 @@ class FactureFournisseur extends Facture if ($error == 0) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('BILL_SUPPLIER_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_SUPPLIER_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/imports/import.class.php b/htdocs/imports/import.class.php index ce27f548e8e676ad914ec0cbf158f1ee8e70d811..90b1e8f37e54562630131c15a27019450079920d 100644 --- a/htdocs/imports/import.class.php +++ b/htdocs/imports/import.class.php @@ -313,9 +313,9 @@ class Import // want this action call a trigger. //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + //include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); //$interface=new Interfaces($this->db); - //$result=$interface->call_workflow('MYOBJECT_DELETE',$this,$user,$langs,$conf); + //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); //if ($result < 0) { $error++; $this->errors=$interface->errors; } //// End call triggers } diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index b68bf5cc37fed0fe40ab519cae8e26a102429d09..1e119116244726de0ffb3dc7ec8cf0e6762878a3 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -328,9 +328,9 @@ if (! defined('NOLOGIN')) $test=false; // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->call_workflow('USER_LOGIN_FAILED',$user,$user,$langs,$conf,$_POST["entity"]); + $result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,$_POST["entity"]); if ($result < 0) { $error++; } // Fin appel triggers } @@ -386,9 +386,9 @@ if (! defined('NOLOGIN')) $_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword"); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->call_workflow('USER_LOGIN_FAILED',$user,$user,$langs,$conf,$_POST["entity"]); + $result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,$_POST["entity"]); if ($result < 0) { $error++; } // Fin appel triggers } @@ -426,9 +426,9 @@ if (! defined('NOLOGIN')) } // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->call_workflow('USER_LOGIN_FAILED',$user,$user,$langs,$conf,$_POST["entity"]); + $result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,$_POST["entity"]); if ($result < 0) { $error++; } // End call triggers @@ -466,9 +466,9 @@ if (! defined('NOLOGIN')) } // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->call_workflow('USER_LOGIN_FAILED',$user,$user,$langs,$conf,(isset($_POST["entity"])?$_POST["entity"]:0)); + $result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf,(isset($_POST["entity"])?$_POST["entity"]:0)); if ($result < 0) { $error++; } // End call triggers @@ -494,9 +494,9 @@ if (! defined('NOLOGIN')) $user->update_last_login_date(); // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($db); - $result=$interface->call_workflow('USER_LOGIN',$user,$user,$langs,$conf,$_POST["entity"]); + $result=$interface->run_triggers('USER_LOGIN',$user,$user,$langs,$conf,$_POST["entity"]); if ($result < 0) { $error++; } // End call triggers diff --git a/htdocs/milestone/class/milestone.class.php b/htdocs/milestone/class/milestone.class.php new file mode 100644 index 0000000000000000000000000000000000000000..d18fe333c2ed94034db84603ca0e661bfedcc27a --- /dev/null +++ b/htdocs/milestone/class/milestone.class.php @@ -0,0 +1,518 @@ +<?php +/* Copyright (C) 2010 Regis Houssin <regis@dolibarr.fr> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/** + * \file htdocs/milestone/milestone.class.php + * \ingroup milestone + * \brief Fichier de la classe des jalons + * \version $Id$ + */ + + +/** + * \class Milestone + * \brief Classe permettant la gestion des jalons + */ +class Milestone +{ + var $error; + var $db; + + var $id; + var $label; + var $description; + var $statut; + var $fk_element; + var $elementtype; + + var $cats=array(); // Tableau en memoire des categories + + + /** + * Constructor + * @param DB acces base de donnees + * @param id milestone id + */ + function Milestone($DB) + { + $this->db = $DB; + } + + /** + * Charge le jalon + * @param id id du jalon a charger + */ + function fetch($id) + { + $sql = "SELECT rowid, label, description, visible, type"; + $sql.= " FROM ".MAIN_DB_PREFIX."milestone"; + $sql.= " WHERE rowid = ".$id; + + dol_syslog("Milestone::fetch sql=".$sql); + $resql = $this->db->query ($sql); + if ($resql) + { + $res = $this->db->fetch_array($resql); + + $this->id = $res['rowid']; + $this->label = $res['label']; + $this->description = $res['description']; + $this->type = $res['type']; + + $this->db->free($resql); + } + else + { + dol_print_error ($this->db); + return -1; + } + } + + /** + * Ajoute le jalon dans la base de donnees + * @return int -1 : erreur SQL + * -2 : nouvel ID inconnu + * -3 : jalon invalide + */ + function create($user) + { + global $conf,$langs; + + $langs->load('milestone'); + + // Clean parameters + $this->label=trim($this->label); + $this->description=trim($this->description); + + if ($this->already_exists()) + { + $this->error = $langs->trans("ImpossibleAddMilestone"); + $this->error.=" : ".$langs->trans("MilestoneAlreadyExists"); + return -1; + } + + $sql = "INSERT INTO ".MAIN_DB_PREFIX."milestone ("; + $sql.= "label"; + $sql.= ", description"; + $sql.= ", type"; + $sql.= ") VALUES ("; + $sql.= "'".addslashes($this->label)."'"; + $sql.= ", '".addslashes($this->description)."'"; + $sql.= ", ".$this->type; + $sql.= ")"; + + + $res = $this->db->query ($sql); + if ($res) + { + $id = $this->db->last_insert_id (MAIN_DB_PREFIX."milestone"); + + if ($id > 0) + { + $this->id = $id; + + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('MILESTONE_CREATE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // Fin appel triggers + + return $id; + } + else + { + return -2; + } + } + else + { + dol_print_error ($this->db); + return -1; + } + } + + /** + * Update milestone + * @return int 1 : OK + * -1 : SQL error + * -2 : invalid milestone + */ + function update($user) + { + global $conf; + + // Clean parameters + $this->label=trim($this->label); + $this->description=trim($this->description); + + $this->db->begin(); + + $sql = "UPDATE ".MAIN_DB_PREFIX."milestone SET"; + $sql.= " label = '".addslashes($this->label)."'"; + $sql.= ", description = '".addslashes($this->description)."'"; + $sql.= " WHERE rowid = ".$this->id; + + dol_syslog("Milestone::update sql=".$sql); + if ($this->db->query($sql)) + { + $this->db->commit(); + + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('MILESTONE_MODIFY',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // Fin appel triggers + + return 1; + } + else + { + $this->db->rollback(); + dol_print_error($this->db); + return -1; + } + } + + /** + * Delete milestone + */ + function remove() + { + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."element_milestone"; + $sql.= " WHERE fk_categorie = ".$this->id; + + if (!$this->db->query($sql)) + { + dol_print_error($this->db); + return -1; + } + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."milestone"; + $sql.= " WHERE rowid = ".$this->id; + + if (!$this->db->query($sql)) + { + dol_print_error($this->db); + return -1; + } + else + { + // Appel des triggers + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); + $interface=new Interfaces($this->db); + $result=$interface->run_triggers('MILESTONE_DELETE',$this,$user,$langs,$conf); + if ($result < 0) { $error++; $this->errors=$interface->errors; } + // Fin appel triggers + + return 1; + } + + } + + /** + * \brief Link an object to the category + * \param obj Object to link to category + * \param type Type of category + * \return int 1 : OK, -1 : erreur SQL, -2 : id non renseign, -3 : Already linked + */ + function add_type($obj,$type) + { + if ($this->id == -1) + { + return -2; + } + + $sql = "INSERT INTO ".MAIN_DB_PREFIX."categorie_".$type." (fk_categorie, fk_".($type=='fournisseur'?'societe':$type).")"; + $sql .= " VALUES (".$this->id.", ".$obj->id.")"; + + if ($this->db->query($sql)) + { + return 1; + } + else + { + if ($this->db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') + { + $this->error=$this->db->lasterrno(); + return -3; + } + else + { + $this->error=$this->db->error().' sql='.$sql; + } + return -1; + } + } + + /** + * Suppresion d'un produit de la categorie + * @param $prod est un objet de type produit + * retour : 1 : OK + * -1 : erreur SQL + */ + function del_type($obj,$type) + { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_".$type; + $sql .= " WHERE fk_categorie = ".$this->id; + $sql .= " AND fk_".($type=='fournisseur'?'societe':$type)." = ".$obj->id; + + if ($this->db->query($sql)) + { + return 1; + } + else + { + $this->error=$this->db->error().' sql='.$sql; + return -1; + } + } + + /** + * \brief Return list of contents of a category + * \param field Field name for select in table. Full field name will be fk_field. + * \param class PHP Class of object to store entity + * \param table Table name for select in table. Full table name will be PREFIX_categorie_table. + */ + function get_type($field,$classname,$table='') + { + $objs = array(); + + // Clean parameters + if (empty($table)) $table=$field; + + $sql = "SELECT fk_".$field." FROM ".MAIN_DB_PREFIX."categorie_".$table; + $sql.= " WHERE fk_categorie = ".$this->id; + + dol_syslog("Categorie::get_type sql=".$sql); + $resql = $this->db->query($sql); + if ($resql) + { + while ($rec = $this->db->fetch_array($resql)) + { + $obj = new $classname($this->db); + $obj->fetch($rec['fk_'.$field]); + $objs[] = $obj; + } + return $objs; + } + else + { + $this->error=$this->db->error().' sql='.$sql; + dol_syslog("Categorie::get_type ".$this->error, LOG_ERR); + return -1; + } + } + + /** + * retourne la description d'une categorie + */ + function get_desc ($cate) + { + $sql = "SELECT description FROM ".MAIN_DB_PREFIX."categorie "; + $sql .= "WHERE rowid = '".$cate."'"; + + $res = $this->db->query ($sql); + $n = $this->db->fetch_array ($res); + + return ($n[0]); + } + + + /** + * \brief Retourne toutes les categories + * \return array Tableau d'objet Categorie + */ + function get_all_categories () + { + $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."categorie"; + + $res = $this->db->query ($sql); + if ($res) + { + $cats = array (); + while ($record = $this->db->fetch_array ($res)) + { + $cat = new Categorie ($this->db, $record['rowid']); + $cats[$record['rowid']] = $cat; + } + return $cats; + } + else + { + dol_print_error ($this->db); + return -1; + } + } + + /** + * \brief Retourne le nombre total de categories + * \return int Nombre de categories + */ + function get_nb_categories () + { + $sql = "SELECT count(rowid)"; + $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; + $res = $this->db->query ($sql); + if ($res) + { + $res = $this->db->fetch_array($res); + return $res[0]; + } + else + { + dol_print_error ($this->db); + return -1; + } + } + + /** + * \brief Check if no category with same label already exists + * \return boolean 1 if already exist, 0 otherwise, -1 if error + */ + function already_exists() + { + $sql = "SELECT count(c.rowid)"; + $sql.= " FROM ".MAIN_DB_PREFIX."categorie as c, ".MAIN_DB_PREFIX."categorie_association as ca"; + $sql.= " WHERE c.label = '".addslashes($this -> label)."' AND type=".$this->type; + dol_syslog("Categorie::already_exists sql=".$sql); + $res = $this->db->query($sql); + if ($res) + { + $obj = $this->db->fetch_array($res); + if($obj[0] > 0) return 1; + else return 0; + } + else + { + dol_print_error ($this->db); + return -1; + } + } + + /** + * Return list of categories linked to element of type $type with id $typeid + * @param id Id of element + * @param typeid Type id of link (0,1,2,3...) + * @return array List of category objects + */ + function containing($id,$typeid) + { + $cats = array (); + + $table=''; $type=''; + if ($typeid == 0) { $table='product'; $type='product'; } + if ($typeid == 1) { $table='societe'; $type='fournisseur'; } + if ($typeid == 2) { $table='societe'; $type='societe'; } + if ($typeid == 3) { $table='member'; $type='member'; } + + $sql = "SELECT ct.fk_categorie"; + $sql.= " FROM ".MAIN_DB_PREFIX."categorie_".$type." as ct"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON ct.fk_categorie = c.rowid"; + $sql.= " WHERE ct.fk_".$table." = ".$id." AND c.type = ".$typeid; + + $res = $this->db->query ($sql); + if ($res) + { + while ($cat = $this->db->fetch_array ($res)) + { + $cats[] = new Categorie ($this->db, $cat['fk_categorie']); + } + + return $cats; + } + else + { + dol_print_error ($this->db); + return -1; + } + } + + + /** + * \brief Retourne les categories dont l'id ou le nom correspond + * ajoute des wildcards au nom sauf si $exact = true + */ + function rechercher($id, $nom, $type, $exact = false) + { + $cats = array (); + + // Generation requete recherche + $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."categorie "; + $sql .= "WHERE type = ".$type." "; + if ($nom) + { + if (! $exact) + { + $nom = '%'.str_replace ('*', '%', $nom).'%'; + } + $sql.= "AND label LIKE '".$nom."'"; + } + if ($id) + { + $sql.="AND rowid = '".$id."'"; + } + + $res = $this->db->query ($sql); + if ($res) + { + while ($id = $this->db->fetch_array ($res)) + { + $cats[] = new Categorie ($this->db, $id['rowid']); + } + + return $cats; + } + else + { + $this->error=$this->db->error().' sql='.$sql; + dol_syslog("Categorie::rechercher ".$this->error, LOG_ERR); + return -1; + } + } + + /** + * \brief Return name and link of category (with picto) + * \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul + * \param option Sur quoi pointe le lien ('', 'xyz') + * \param maxlength Max length of text + * \return string Chaine avec URL + */ + function getNomUrl($withpicto=0,$option='',$maxlength=0) + { + global $langs; + + $result=''; + + $lien = '<a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$this->id.'&type='.$this->type.'">'; + $label=$langs->trans("ShowCategory").': '.$this->label; + $lienfin='</a>'; + + $picto='category'; + + + if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin); + if ($withpicto && $withpicto != 2) $result.=' '; + if ($withpicto != 2) $result.=$lien.dol_trunc($this->ref,$maxlength).$lienfin; + return $result; + } + +} +?> diff --git a/htdocs/paiement.class.php b/htdocs/paiement.class.php index 0c819c34f9c9d9124f784a216f2d381c5e555d8d..09ff8890bede937656f44e170842623604392923 100644 --- a/htdocs/paiement.class.php +++ b/htdocs/paiement.class.php @@ -180,9 +180,9 @@ class Paiement if (! $error) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PAYMENT_CUSTOMER_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PAYMENT_CUSTOMER_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/product/product.class.php b/htdocs/product/product.class.php index 8ced98b5caf323f7aec02d4ebd4db4f6f4e281b6..86098e25d9ab42ee7de113a732a56cecb7fffb06 100644 --- a/htdocs/product/product.class.php +++ b/htdocs/product/product.class.php @@ -557,9 +557,9 @@ class Product extends CommonObject } // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PRODUCT_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PRODUCT_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/projet/project.class.php b/htdocs/projet/project.class.php index f6dd8508b7e51da5cf4b32cd1eeef18ec9aa3317..b7d1837066e21764fb3be8e7a0ee55bdd42e5d2b 100644 --- a/htdocs/projet/project.class.php +++ b/htdocs/projet/project.class.php @@ -118,9 +118,9 @@ class Project extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROJECT_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROJECT_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -168,9 +168,9 @@ class Project extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROJECT_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROJECT_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -393,9 +393,9 @@ class Project extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROJECT_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROJECT_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -436,9 +436,9 @@ class Project extends CommonObject if ($resql) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROJECT_VALIDATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROJECT_VALIDATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -489,9 +489,9 @@ class Project extends CommonObject if ($resql) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('PROJECT_CLOSE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('PROJECT_CLOSE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/projet/tasks/task.class.php b/htdocs/projet/tasks/task.class.php index a250c9978386b6d52be587f0625deaa77fd9a474..c184c1a21b6cda3c001aefd8a961a955c4dca74a 100644 --- a/htdocs/projet/tasks/task.class.php +++ b/htdocs/projet/tasks/task.class.php @@ -133,9 +133,9 @@ class Task extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('TASK_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('TASK_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -272,9 +272,9 @@ class Task extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('TASK_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('TASK_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -333,9 +333,9 @@ class Task extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('TASK_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('TASK_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -627,9 +627,9 @@ class Task extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('TASK_TIMESPENT_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('TASK_TIMESPENT_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -731,9 +731,9 @@ class Task extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('TASK_TIMESPENT_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('TASK_TIMESPENT_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } @@ -792,9 +792,9 @@ class Task extends CommonObject if (! $notrigger) { // Call triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('TASK_TIMESPENT_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('TASK_TIMESPENT_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // End call triggers } diff --git a/htdocs/societe/societe.class.php b/htdocs/societe/societe.class.php index 5a2bc1395286331faa621df33466e9b2b51dc5f1..06a73fb407d68a0e8365e9f3ac6d6e88aac12da4 100644 --- a/htdocs/societe/societe.class.php +++ b/htdocs/societe/societe.class.php @@ -213,9 +213,9 @@ class Societe extends CommonObject $this->use_webcal=($conf->global->PHPWEBCALENDAR_COMPANYCREATE=='always'?1:0); // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('COMPANY_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('COMPANY_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -489,9 +489,9 @@ class Societe extends CommonObject if ($call_trigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('COMPANY_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('COMPANY_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -889,9 +889,9 @@ class Societe extends CommonObject if ($sqr == 4) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('COMPANY_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('COMPANY_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers diff --git a/htdocs/user/group/usergroup.class.php b/htdocs/user/group/usergroup.class.php index 8dbdc01ace17c02d9171a4840a6c1b8e7397832d..37118d7adda8149d3374cf47f613f396c410f22e 100644 --- a/htdocs/user/group/usergroup.class.php +++ b/htdocs/user/group/usergroup.class.php @@ -465,9 +465,9 @@ class UserGroup extends CommonObject if ($result) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('USER_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('USER_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -502,9 +502,9 @@ class UserGroup extends CommonObject if ($this->update(1) < 0) return -2; // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('GROUP_CREATE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('GROUP_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -541,9 +541,9 @@ class UserGroup extends CommonObject if (!$error && ! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('GROUP_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('GROUP_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } diff --git a/htdocs/user/user.class.php b/htdocs/user/user.class.php index 56631e3027315a9b1919ffd50ea3a1e421d8d654..654afce40aad9a019b0a93a0b9dbca5de9d94fc8 100644 --- a/htdocs/user/user.class.php +++ b/htdocs/user/user.class.php @@ -614,9 +614,9 @@ class User extends CommonObject if ($result) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('USER_ENABLEDISABLE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('USER_ENABLEDISABLE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -670,9 +670,9 @@ class User extends CommonObject if ($result) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('USER_DELETE',$this,$user,$langs,$conf); + $result=$interface->run_triggers('USER_DELETE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers @@ -771,9 +771,9 @@ class User extends CommonObject if (! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface = new Interfaces($this->db); - $result = $interface->call_workflow('USER_CREATE',$this,$user,$langs,$conf); + $result = $interface->run_triggers('USER_CREATE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1109,9 +1109,9 @@ class User extends CommonObject if (! $error && ! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('USER_MODIFY',$this,$user,$langs,$conf); + $result=$interface->run_triggers('USER_MODIFY',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -1254,9 +1254,9 @@ class User extends CommonObject if (! $error && ! $notrigger) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/workflow/class/interfaces.class.php"); + include_once(DOL_DOCUMENT_ROOT . "/core/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->call_workflow('USER_NEW_PASSWORD',$this,$user,$langs,$conf); + $result=$interface->run_triggers('USER_NEW_PASSWORD',$this,$user,$langs,$conf); if ($result < 0) $this->errors=$interface->errors; // Fin appel triggers } diff --git a/htdocs/workflow/class/workflow.class.php b/htdocs/workflow/class/workflow.class.php index d46605748b82522bff74f2fb1282379cf5c91b4a..8fb050972a53c32bd9e1900e8fa5677230a217c6 100644 --- a/htdocs/workflow/class/workflow.class.php +++ b/htdocs/workflow/class/workflow.class.php @@ -42,15 +42,5 @@ class Workflow $this->db = $DB ; } - /** - * \brief Fonction appelee lors du declenchement d'un evenement Dolibarr. - * Cette fonction declenche la gestion du workflow. - * TODO under construction - */ - function call_workflow($action,$object,$user,$langs,$conf) - { - $this->run_triggers($action,$object,$user,$langs,$conf); - } - } ?>