2005-09-09 23:18:12 +02:00
< ? php
/* Copyright ( C ) 2005 Laurent Destailleur < eldy @ users . sourceforge . net >
*
* 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 .
*
* $Id $
* $Source $
*/
/**
\file htdocs / includes / triggers / interface_webcal . class . php
\ingroup webcalendar
\brief Fichier de demo de personalisation des actions du workflow
\remarks Son propre fichier d ' actions peut etre cr<EFBFBD> <EFBFBD> par recopie de celui - ci :
- Le nom du fichier doit etre interface_xxx . class . php
- Le fichier doit rester stock<EFBFBD> dans includes / triggers
- Le nom de la classe doit etre InterfaceXxx
*/
include_once ( DOL_DOCUMENT_ROOT . '/lib/webcal.class.php' );
/**
\class InterfaceWebCal
2005-09-09 23:24:13 +02:00
\brief Classe des fonctions triggers des actions webcalendar
2005-09-09 23:18:12 +02:00
*/
class InterfaceWebCal
{
var $db ;
var $error ;
2005-10-01 17:57:05 +02:00
var $date ;
var $duree ;
var $texte ;
var $desc ;
2005-09-09 23:18:12 +02:00
/**
* \brief Constructeur .
2005-09-09 23:24:13 +02:00
* \param DB Handler d ' acc<EFBFBD> s base
2005-09-09 23:18:12 +02:00
*/
function InterfaceWebCal ( $DB )
{
$this -> db = $DB ;
$this -> name = " WebCal " ;
$this -> family = " webcal " ;
$this -> description = " Les triggers de ce composant permettent d'ins<6E> rer un <20> v<EFBFBD> nement dans le calendrier webcalendar pour chaque grand <20> v<EFBFBD> nement Dolibarr. " ;
$this -> version = 'dolibarr' ; // 'experimental' or 'dolibarr' or version
}
/**
* \brief Renvoi nom du lot de triggers
* \return string Nom du lot de triggers
*/
function getName ()
{
return $this -> name ;
}
/**
* \brief Renvoi descriptif du lot de triggers
* \return string Descriptif du lot de triggers
*/
function getDesc ()
{
return $this -> description ;
}
/**
* \brief Renvoi version du lot de triggers
* \return string Version du lot de triggers
*/
function getVersion ()
{
global $langs ;
$langs -> load ( " admin " );
if ( $this -> version == 'experimental' ) return $langs -> trans ( " Experimental " );
elseif ( $this -> version == 'dolibarr' ) return DOL_VERSION ;
elseif ( $this -> version ) return $this -> version ;
else return $langs -> trans ( " Unknown " );
}
/**
* \brief Fonction appel<EFBFBD> e lors du d<EFBFBD> clenchement d ' un <EFBFBD> v<EFBFBD> nement Dolibarr .
* D ' autres fonctions run_trigger peuvent etre pr<EFBFBD> sentes dans includes / triggers
* \param action Code de l ' evenement
* \param object Objet concern<EFBFBD>
* \param user Objet user
* \param lang Objet lang
* \param conf Objet conf
2005-09-09 23:24:13 +02:00
* \return int < 0 si ko , 0 si aucune action faite , > 0 si ok
2005-09-09 23:18:12 +02:00
*/
function run_trigger ( $action , $object , $user , $langs , $conf )
{
// Mettre ici le code <20> ex<65> cuter en r<> action de l'action
// Les donn<6E> es de l'action sont stock<63> es dans $object
if ( ! $conf -> webcal -> enabled ) return 0 ; // Module non actif
if ( ! $object -> use_webcal ) return 0 ; // Option syncro webcal non active
// Actions
if ( $action == 'ACTION_CREATE' )
{
dolibarr_syslog ( " Trigger ' " . $this -> name . " ' for action ' $action ' launched. id= " . $object -> id );
2005-10-01 19:03:34 +02:00
$langs -> load ( " other " );
2005-09-09 23:18:12 +02:00
2005-10-01 19:03:34 +02:00
// Initialisation donnees (date,duree,texte,desc)
2005-09-09 23:18:12 +02:00
if ( $object -> type_id == 5 && $object -> contact -> fullname )
{
$libellecal = $langs -> trans ( " TaskRDVWith " , $object -> contact -> fullname ) . " \n " ;
$libellecal .= $object -> note ;
}
else
{
$libellecal = " " ;
if ( $langs -> trans ( " Action " . $object -> type_code ) != " Action " . $object -> type_code )
{
$libellecal .= $langs -> trans ( " Action " . $object -> type_code ) . " \n " ;
}
$libellecal .= ( $object -> label != $libellecal ? $object -> label . " \n " : " " );
$libellecal .= ( $object -> note ? $object -> note : " " );
}
2005-10-01 17:57:05 +02:00
$this -> date = $object -> date ;
$this -> duree = $object -> duree ;
$this -> texte = $object -> societe -> nom ;
$this -> desc = $libellecal ;
}
if ( $action == 'COMPANY_CREATE' )
{
dolibarr_syslog ( " Trigger ' " . $this -> name . " ' for action ' $action ' launched. id= " . $object -> id );
2005-10-01 19:03:34 +02:00
$langs -> load ( " other " );
// Initialisation donnees (date,duree,texte,desc)
2005-10-01 17:57:05 +02:00
$this -> date = time ();
$this -> duree = 0 ;
$this -> texte = $langs -> trans ( " NewCompanyToDolibarr " , $object -> nom );
$this -> desc = $langs -> trans ( " NewCompanyToDolibarr " , $object -> nom );
$this -> desc .= " \n " . $langs -> trans ( " Prefix " ) . ': ' . $object -> prefix ;
//$this->desc.="\n".$langs->trans("Customer").': '.yn($object->client);
//$this->desc.="\n".$langs->trans("Supplier").': '.yn($object->fournisseur);
2005-10-30 18:45:08 +01:00
$this -> desc .= " \n " . $langs -> trans ( " Author " ) . ': ' . $user -> code ;
2005-10-01 17:57:05 +02:00
}
if ( $action == 'CONTRACT_VALIDATE' )
{
dolibarr_syslog ( " Trigger ' " . $this -> name . " ' for action ' $action ' launched. id= " . $object -> id );
2005-10-01 19:03:34 +02:00
$langs -> load ( " other " );
// Initialisation donnees (date,duree,texte,desc)
$this -> date = time ();
$this -> duree = 0 ;
$this -> texte = $langs -> trans ( " ContractValidatedInDolibarr " , $object -> ref );
$this -> desc = $langs -> trans ( " ContractValidatedInDolibarr " , $object -> ref );
2005-10-30 18:45:08 +01:00
$this -> desc .= " \n " . $langs -> trans ( " Author " ) . ': ' . $user -> code ;
2005-10-01 17:57:05 +02:00
}
if ( $action == 'CONTRACT_CANCEL' )
{
dolibarr_syslog ( " Trigger ' " . $this -> name . " ' for action ' $action ' launched. id= " . $object -> id );
2005-10-01 19:03:34 +02:00
$langs -> load ( " other " );
$this -> date = time ();
$this -> duree = 0 ;
$this -> texte = $langs -> trans ( " ContractCanceledInDolibarr " , $object -> ref );
$this -> desc = $langs -> trans ( " ContractCanceledInDolibarr " , $object -> ref );
2005-10-30 18:45:08 +01:00
$this -> desc .= " \n " . $langs -> trans ( " Author " ) . ': ' . $user -> code ;
2005-10-01 17:57:05 +02:00
}
if ( $action == 'CONTRACT_CLOSE' )
{
dolibarr_syslog ( " Trigger ' " . $this -> name . " ' for action ' $action ' launched. id= " . $object -> id );
2005-10-01 19:03:34 +02:00
$langs -> load ( " other " );
$this -> date = time ();
$this -> duree = 0 ;
$this -> texte = $langs -> trans ( " ContractClosedInDolibarr " , $object -> ref );
$this -> desc = $langs -> trans ( " ContractClosedInDolibarr " , $object -> ref );
2005-10-30 18:45:08 +01:00
$this -> desc .= " \n " . $langs -> trans ( " Author " ) . ': ' . $user -> code ;
2005-10-01 17:57:05 +02:00
}
if ( $action == 'BILL_VALIDATE' )
{
dolibarr_syslog ( " Trigger ' " . $this -> name . " ' for action ' $action ' launched. id= " . $object -> id );
2005-10-01 19:03:34 +02:00
$langs -> load ( " other " );
$this -> date = time ();
$this -> duree = 0 ;
2005-10-04 19:50:03 +02:00
$this -> texte = $langs -> trans ( " InvoiceValidatedInDolibarr " , $object -> ref );
$this -> desc = $langs -> trans ( " InvoiceValidatedInDolibarr " , $object -> ref );
2005-10-30 18:45:08 +01:00
$this -> desc .= " \n " . $langs -> trans ( " Author " ) . ': ' . $user -> code ;
2005-10-01 17:57:05 +02:00
}
if ( $action == 'BILL_PAYED' )
{
dolibarr_syslog ( " Trigger ' " . $this -> name . " ' for action ' $action ' launched. id= " . $object -> id );
2005-10-01 19:03:34 +02:00
$langs -> load ( " other " );
$this -> date = time ();
$this -> duree = 0 ;
2005-10-04 19:50:03 +02:00
$this -> texte = $langs -> trans ( " InvoicePayedInDolibarr " , $object -> ref );
$this -> desc = $langs -> trans ( " InvoicePayedInDolibarr " , $object -> ref );
2005-10-30 18:45:08 +01:00
$this -> desc .= " \n " . $langs -> trans ( " Author " ) . ': ' . $user -> code ;
2005-10-01 17:57:05 +02:00
}
if ( $action == 'BILL_CANCELED' )
{
dolibarr_syslog ( " Trigger ' " . $this -> name . " ' for action ' $action ' launched. id= " . $object -> id );
2005-10-01 19:03:34 +02:00
$langs -> load ( " other " );
$this -> date = time ();
$this -> duree = 0 ;
2005-10-04 19:50:03 +02:00
$this -> texte = $langs -> trans ( " InvoiceCanceledInDolibarr " , $object -> ref );
$this -> desc = $langs -> trans ( " InvoiceCanceledInDolibarr " , $object -> ref );
2005-10-30 18:45:08 +01:00
$this -> desc .= " \n " . $langs -> trans ( " Author " ) . ': ' . $user -> code ;
2005-10-01 17:57:05 +02:00
}
// Ajoute entr<74> e dans webcal
if ( $this -> date )
{
// Cr<43> e objet webcal et connexion avec params $conf->webcal->db->xxx
$webcal = new Webcal ();
if ( ! $webcal -> localdb -> ok )
{
// Si la creation de l'objet n'as pu se connecter
$error = " Dolibarr n'a pu se connecter <20> la base Webcalendar avec les identifiants d<> finis (host= " . $conf -> webcal -> db -> host . " dbname= " . $conf -> webcal -> db -> name . " user= " . $conf -> webcal -> db -> user . " ). " ;
$error .= " L'option de mise a jour Webcalendar a <20> t<EFBFBD> ignor<6F> e. " ;
$this -> error = $error ;
dolibarr_syslog ( " interface_webcal.class.php: " . $this -> error );
return - 1 ;
}
$webcal -> date = $this -> date ;
$webcal -> duree = $this -> duree ;
$webcal -> texte = $this -> texte ;
$webcal -> desc = $this -> desc ;
2005-09-09 23:18:12 +02:00
$result = $webcal -> add ( $user );
2005-10-01 17:57:05 +02:00
if ( $result > 0 )
2005-09-09 23:18:12 +02:00
{
return 1 ;
}
else
{
$this -> error = " Echec insertion dans webcal: " . $webcal -> error ;
return - 1 ;
}
}
2005-10-01 17:57:05 +02:00
2005-09-09 23:24:13 +02:00
return 0 ;
2005-09-09 23:18:12 +02:00
}
}
?>