diff --git a/ChangeLog b/ChangeLog
index e75a2d82d7b..00aab1d3d59 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -24,7 +24,9 @@ For users:
- Add juridical status and number of employees in third party
export definition.
- A lot of enhancements and translation in withdraw module.
-
+- Full support of Mysql option mode=strict.
+- Added new event from member module to possible agenda tracked events.
+
For translators:
- The errors language file contains only error or warning messages with
prefix Error or Warning.
@@ -33,6 +35,7 @@ For translators:
For developers:
- Update skeletons.
- Add an experimental Cash Desk module.
+- Added new triggers events in agenda module.
- All submodules are moved in the includes directory.
- Removed some deprecated files.
diff --git a/htdocs/actioncomm.class.php b/htdocs/actioncomm.class.php
index ccd41ce7b17..b6dffd15f19 100644
--- a/htdocs/actioncomm.class.php
+++ b/htdocs/actioncomm.class.php
@@ -18,19 +18,17 @@
*/
/**
- \file htdocs/actioncomm.class.php
- \ingroup commercial
- \brief Fichier de la classe des actions commerciales
- \version $Id$
-*/
-
+ * \file htdocs/actioncomm.class.php
+ * \ingroup commercial
+ * \brief Fichier de la classe des actions commerciales
+ * \version $Id$
+ */
require_once(DOL_DOCUMENT_ROOT.'/cactioncomm.class.php');
/** \class ActionComm
- \brief Classe permettant la gestion des actions commerciales
-*/
-
+ * \brief Classe permettant la gestion des actions commerciales
+ */
class ActionComm
{
var $db;
@@ -133,7 +131,7 @@ class ActionComm
}
- $this->db->begin();
+ $this->db->begin("ActionComm::add");
$sql = "INSERT INTO ".MAIN_DB_PREFIX."actioncomm";
$sql.= "(datec,";
@@ -143,7 +141,9 @@ class ActionComm
$sql.= "datea2,";
$sql.= "durationp,";
$sql.= "durationa,";
- $sql.= "fk_action,fk_soc,note,";
+ $sql.= "fk_action,";
+ $sql.= "fk_soc,";
+ $sql.= "note,";
$sql.= "fk_contact,";
$sql.= "fk_user_author,";
$sql.= "fk_user_action,";
@@ -158,7 +158,9 @@ class ActionComm
$sql.= (strval($this->dateend)!=''?"'".$this->db->idate($this->dateend)."'":"null").",";
$sql.= ($this->durationp >= 0 && $this->durationp != ''?"'".$this->durationp."'":"null").",";
$sql.= ($this->durationa >= 0 && $this->durationa != ''?"'".$this->durationa."'":"null").",";
- $sql.= "'".$this->type_id."', '".$this->societe->id."' ,'".addslashes($this->note)."',";
+ $sql.= " '".$this->type_id."',";
+ $sql.= ($this->societe->id>0?" '".$this->societe->id."'":"null").",";
+ $sql.= " '".addslashes($this->note)."',";
$sql.= ($this->contact->id > 0?"'".$this->contact->id."'":"null").",";
$sql.= ($user->id > 0 ? "'".$user->id."'":"null").",";
$sql.= ($this->usertodo->id > 0?"'".$this->usertodo->id."'":"null").",";
@@ -185,13 +187,13 @@ class ActionComm
// Fin appel triggers
}
- $this->db->commit();
+ $this->db->commit("ActionComm::add");
return $this->id;
}
else
{
$this->error=$this->db->lasterror().' sql='.$sql;
- $this->db->rollback();
+ $this->db->rollback("ActionComm::add");
return -1;
}
diff --git a/htdocs/adherents/adherent.class.php b/htdocs/adherents/adherent.class.php
index e61ff31545b..7b274ae6f8f 100644
--- a/htdocs/adherents/adherent.class.php
+++ b/htdocs/adherents/adherent.class.php
@@ -21,25 +21,25 @@
*/
/**
- \file htdocs/adherents/adherent.class.php
- \ingroup adherent
- \brief Fichier de la classe permettant la gestion d'un adherent
- \author Rodolphe Qiedeville
- \author Jean-Louis Bergamo
- \author Laurent Destailleur
- \author Sebastien Di Cintio
- \author Benoit Mortier
- \version $Id$
-*/
+ \file htdocs/adherents/adherent.class.php
+ \ingroup adherent
+ \brief Fichier de la classe permettant la gestion d'un adherent
+ \author Rodolphe Qiedeville
+ \author Jean-Louis Bergamo
+ \author Laurent Destailleur
+ \author Sebastien Di Cintio
+ \author Benoit Mortier
+ \version $Id$
+ */
require_once(DOL_DOCUMENT_ROOT."/commonobject.class.php");
require_once(DOL_DOCUMENT_ROOT."/adherents/cotisation.class.php");
/**
- \class Adherent
- \brief Classe permettant la gestion d'un adherent
-*/
+ * \class Adherent
+ * \brief Classe permettant la gestion d'un adherent
+ */
class Adherent extends CommonObject
{
@@ -48,7 +48,7 @@ class Adherent extends CommonObject
var $errors=array();
var $element='member';
var $table_element='adherent';
-
+
var $id;
var $ref;
var $prenom;
@@ -100,10 +100,10 @@ class Adherent extends CommonObject
/**
- \brief Adherent
- \param DB base de donnees
- \param id id de l'adherent
- */
+ \brief Adherent
+ \param DB base de donnees
+ \param id id de l'adherent
+ */
function Adherent($DB)
{
$this->db = $DB ;
@@ -134,10 +134,10 @@ class Adherent extends CommonObject
\remarks %INFOS% : l'ensemble des attributs de cet adherent
\remarks %SERVEUR% : URL du serveur web
\remarks etc..
- */
+ */
function send_an_email($text,$subject,
- $filename_list=array(),$mimetype_list=array(),$mimefilename_list=array(),
- $addr_cc="",$addr_bcc="",$deliveryreceipt=0,$msgishtml=-1, $errors_to='')
+ $filename_list=array(),$mimetype_list=array(),$mimefilename_list=array(),
+ $addr_cc="",$addr_bcc="",$deliveryreceipt=0,$msgishtml=-1, $errors_to='')
{
global $conf,$langs;
@@ -145,27 +145,27 @@ class Adherent extends CommonObject
if ($msgishtml == -1)
{
$msgishtml = 0;
- if (dol_textishtml($text,1)) $msgishtml = 1;
+ if (dol_textishtml($text,1)) $msgishtml = 1;
}
$infos='';
- $infos.= $langs->trans("Lastname").": $this->nom\n";
- $infos.= $langs->trans("Firstname").": $this->prenom\n";
- $infos.= $langs->trans("Company").": $this->societe\n";
- $infos.= $langs->trans("Address").": $this->adresse\n";
- $infos.= $langs->trans("Zip").": $this->cp\n";
- $infos.= $langs->trans("Town").": $this->ville\n";
- $infos.= $langs->trans("Country").": $this->pays\n";
- $infos.= $langs->trans("EMail").": $this->email\n";
- $infos.= $langs->trans("Login").": $this->login\n";
- $infos.= $langs->trans("Password").": $this->pass\n";
- $infos.= $langs->trans("Birthday").": $this->naiss\n";
- $infos.= $langs->trans("Photo").": $this->photo\n";
+ $infos.= $langs->trans("Lastname").": $this->nom\n";
+ $infos.= $langs->trans("Firstname").": $this->prenom\n";
+ $infos.= $langs->trans("Company").": $this->societe\n";
+ $infos.= $langs->trans("Address").": $this->adresse\n";
+ $infos.= $langs->trans("Zip").": $this->cp\n";
+ $infos.= $langs->trans("Town").": $this->ville\n";
+ $infos.= $langs->trans("Country").": $this->pays\n";
+ $infos.= $langs->trans("EMail").": $this->email\n";
+ $infos.= $langs->trans("Login").": $this->login\n";
+ $infos.= $langs->trans("Password").": $this->pass\n";
+ $infos.= $langs->trans("Birthday").": $this->naiss\n";
+ $infos.= $langs->trans("Photo").": $this->photo\n";
$infos.= $langs->trans("Public").": ".yn($this->public)."\n";
if ($msgishtml) $infos = dol_htmlentitiesbr($infos);
// Substitutions
- $patterns = array (
+ $patterns = array (
'/%PRENOM%/',
'/%NOM%/',
'/%INFOS%/',
@@ -181,180 +181,78 @@ class Adherent extends CommonObject
'/%LOGIN%/',
'/%PASSWORD%/'
);
- $replace = array (
- $this->prenom,
- $this->nom,
- $infos,
- DOL_MAIN_URL_ROOT,
- $this->societe,
- $this->adresse,
- $this->cp,
- $this->ville,
- $this->pays,
- $this->email,
- $this->naiss,
- $this->photo,
- $this->login,
- $this->pass
- );
- $texttosend = preg_replace ($patterns, $replace, $text);
- $subjectosend = preg_replace ($patterns, $replace, $subject);
+ $replace = array (
+ $this->prenom,
+ $this->nom,
+ $infos,
+ DOL_MAIN_URL_ROOT,
+ $this->societe,
+ $this->adresse,
+ $this->cp,
+ $this->ville,
+ $this->pays,
+ $this->email,
+ $this->naiss,
+ $this->photo,
+ $this->login,
+ $this->pass
+ );
+ $texttosend = preg_replace ($patterns, $replace, $text);
+ $subjectosend = preg_replace ($patterns, $replace, $subject);
- // Envoi mail confirmation
- $from=$conf->email_from;
- if ($conf->global->ADHERENT_MAIL_FROM) $from=$conf->global->ADHERENT_MAIL_FROM;
+ // Envoi mail confirmation
+ $from=$conf->email_from;
+ if ($conf->global->ADHERENT_MAIL_FROM) $from=$conf->global->ADHERENT_MAIL_FROM;
- include_once(DOL_DOCUMENT_ROOT."/lib/CMailFile.class.php");
- $mailfile = new CMailFile($subjectosend,$this->email,$from,$texttosend,
+ include_once(DOL_DOCUMENT_ROOT."/lib/CMailFile.class.php");
+ $mailfile = new CMailFile($subjectosend,$this->email,$from,$texttosend,
$filename_list,$mimetype_list,$mimefilename_list,
$addr_cc, $addr_bcc, $deliveryreceipt, $msgishtml);
- if ($mailfile->sendfile())
- {
- return 1;
- }
- else
- {
- $this->error=$langs->trans("ErrorFailedToSendMail",$from,$this->email).'. '.$mailfile->error;
- return -1;
- }
+ if ($mailfile->sendfile())
+ {
+ return 1;
+ }
+ else
+ {
+ $this->error=$langs->trans("ErrorFailedToSendMail",$from,$this->email).'. '.$mailfile->error;
+ return -1;
+ }
}
-/**
- \brief imprime une liste d'erreur.
-*/
-
- function print_error_list()
- {
- $num = sizeof($this->error);
- for ($i = 0 ; $i < $num ; $i++)
- {
- print "
" . $this->error[$i];
- }
- }
-
-
-/**
- \brief Renvoie le libelle traduit de la nature d'un adherent (physique ou morale)
- \param morphy Nature physique ou morale de l'adherent
-*/
-
- function getmorphylib($morphy='')
- {
- global $langs;
- if (! $morphy) { $morphy=$this->morphy; }
- if ($morphy == 'phy') { return $langs->trans("Physical"); }
- if ($morphy == 'mor') { return $langs->trans("Moral"); }
- return $morphy;
- }
-
-/**
- \brief Verifie les donnees entrees
- \param minimum
-*/
-
- function check($minimum=0)
- {
- $err = 0;
-
- if (strlen(trim($this->societe)) == 0)
- {
- if ((strlen(trim($this->nom)) + strlen(trim($this->prenom))) == 0)
- {
- $error_string[$err] = "Vous devez saisir vos nom et prenom ou le nom de votre societe.";
- $err++;
- }
- }
-
- if (strlen(trim($this->adresse)) == 0)
- {
- $error_string[$err] = "L'adresse saisie est invalide";
- $err++;
- }
-
- if (strlen(trim($this->cp)) == 0)
- {
- $error_string[$err] = "Le code postal saisi est invalide";
- $err++;
- }
-
- if (strlen(trim($this->ville)) == 0)
- {
- $error_string[$err] = "La ville saisie est invalide";
- $err++;
- }
-
- if (strlen(trim($this->email)) == 0)
- {
- $error_string[$err] = "L'email saisi est invalide";
- $err++;
- }
-
- if (strlen(trim($this->login)) == 0)
- {
- $error_string[$err] = "Le login saisi est invalide";
- $err++;
- }
-
- if (strlen(trim($this->pass)) == 0)
- {
- $error_string[$err] = "Le pass saisi est invalide";
- $err++;
- }
- $this->amount = trim($this->amount);
-
- $map = range(0,9);
- for ($i = 0; $i < strlen($this->amount) ; $i++)
- {
- if (!isset($map[substr($this->amount, $i, 1)] ))
- {
- $error_string[$err] = "Le montant du don contient un/des caractere(s) invalide(s)";
- $err++;
- $amount_invalid = 1;
- break;
- }
- }
-
- if (! $amount_invalid)
- {
- if ($this->amount == 0)
- {
- $error_string[$err] = "Le montant du don est null";
- $err++;
- }
- else
- {
- if ($this->amount < $minimum && $minimum > 0)
- {
- $error_string[$err] = "Le montant minimum du don est de $minimum";
- $err++;
- }
- }
- }
-
- /*
- * Return errors
- */
-
- if ($err)
- {
- $this->error = $error_string;
- return 0;
- }
- else
- {
- return 1;
- }
-
- }
-
/**
- \brief Fonction qui cree l'adherent
- \param user Objet user qui demande la creation
- \param notrigger 1 ne declenche pas les triggers, 0 sinon
- \return int <0 si ko, >0 si ok
- */
+ * \brief imprime une liste d'erreur.
+ */
+ function print_error_list()
+ {
+ $num = sizeof($this->error);
+ for ($i = 0 ; $i < $num ; $i++)
+ {
+ print "" . $this->error[$i];
+ }
+ }
+
+
+ /**
+ * \brief Renvoie le libelle traduit de la nature d'un adherent (physique ou morale)
+ * \param morphy Nature physique ou morale de l'adherent
+ */
+ function getmorphylib($morphy='')
+ {
+ global $langs;
+ if (! $morphy) { $morphy=$this->morphy; }
+ if ($morphy == 'phy') { return $langs->trans("Physical"); }
+ if ($morphy == 'mor') { return $langs->trans("Moral"); }
+ return $morphy;
+ }
+
+ /**
+ * \brief Fonction qui cree l'adherent
+ * \param user Objet user qui demande la creation
+ * \param notrigger 1 ne declenche pas les triggers, 0 sinon
+ * \return int <0 si ko, >0 si ok
+ */
function create($user,$notrigger=0)
{
global $conf,$langs;
@@ -366,16 +264,16 @@ class Adherent extends CommonObject
return -1;
}
if (! $this->datec) $this->datec=time();
-
+
$this->db->begin();
-
+
// Insertion membre
$sql = "INSERT INTO ".MAIN_DB_PREFIX."adherent";
- $sql.= " (datec,login,fk_user_author,fk_user_mod,fk_user_valid)";
+ $sql.= " (datec,login,fk_user_author,fk_user_mod,fk_user_valid,morphy)";
$sql.= " VALUES (";
$sql.= " '".$this->db->idate($this->datec)."',";
$sql.= " '".addslashes($this->login)."',";
- $sql.= " '".$user->id."',null,null";
+ $sql.= " '".$user->id."',null,null,'".$this->morphy."'";
$sql.= ")";
dolibarr_syslog("Adherent::create sql=".$sql);
@@ -386,7 +284,7 @@ class Adherent extends CommonObject
if ($id > 0)
{
$this->id=$id;
-
+
// Update minor fields
$result=$this->update($user,1,1);
if ($result < 0)
@@ -394,19 +292,19 @@ class Adherent extends CommonObject
$this->db->rollback();
return -1;
}
-
+
$this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0);
if (! $notrigger)
{
- // Appel des triggers
- include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
- $interface=new Interfaces($this->db);
- $result=$interface->run_triggers('MEMBER_CREATE',$this,$user,$langs,$conf);
+ // Appel des triggers
+ include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
+ $interface=new Interfaces($this->db);
+ $result=$interface->run_triggers('MEMBER_CREATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
- // Fin appel triggers
+ // Fin appel triggers
}
-
+
if (sizeof($this->errors))
{
$this->db->rollback();
@@ -423,7 +321,7 @@ class Adherent extends CommonObject
$this->error='Failed to get last insert id';
$this->db->rollback();
return -2;
- }
+ }
}
else
{
@@ -435,19 +333,19 @@ class Adherent extends CommonObject
/**
- \brief Fonction qui met a jour l'adherent (sauf mot de passe)
- \param user Utilisateur qui realise la mise a jour
- \param notrigger 1=desactive le trigger UPDATE (quand appele par creation)
- \param nosyncuser Do not synchronize linked user
- \return int <0 si KO, >0 si OK
- */
+ \brief Fonction qui met a jour l'adherent (sauf mot de passe)
+ \param user Utilisateur qui realise la mise a jour
+ \param notrigger 1=desactive le trigger UPDATE (quand appele par creation)
+ \param nosyncuser Do not synchronize linked user
+ \return int <0 si KO, >0 si OK
+ */
function update($user,$notrigger=0,$nosyncuser=0)
{
global $conf, $langs;
-
+
$nbrowsaffected=0;
$error=0;
-
+
dolibarr_syslog("Adherent::update notrigger=".$notrigger.", nosyncuser=".$nosyncuser);
// Verification parametres
@@ -487,7 +385,7 @@ class Adherent extends CommonObject
$resql = $this->db->query($sql);
if ($resql)
{
- $nbrowsaffected+=$this->db->affected_rows($resql);
+ $nbrowsaffected+=$this->db->affected_rows($resql);
if (sizeof($this->array_options) > 0)
{
@@ -498,14 +396,22 @@ class Adherent extends CommonObject
$sql = "INSERT INTO ".MAIN_DB_PREFIX."adherent_options (adhid";
foreach($this->array_options as $key => $value)
{
- // recupere le nom de l'attribut
+ // Add field o fattribut
$attr=substr($key,8);
$sql.=",$attr";
}
$sql .= ") VALUES (".$this->id;
foreach($this->array_options as $key => $value)
{
- $sql.=",'".$this->array_options[$key]."'";
+ // Add field o fattribut
+ if ($this->array_options[$key] != '')
+ {
+ $sql.=",'".$this->array_options[$key]."'";
+ }
+ else
+ {
+ $sql.=",null";
+ }
}
$sql.=")";
@@ -524,19 +430,19 @@ class Adherent extends CommonObject
}
}
- // Mise a jour mot de passe
- if ($this->pass)
- {
- if ($this->pass != $this->pass_indatabase && $this->pass != $this->pass_indatabase_crypted)
- {
- // Si mot de passe saisi et different de celui en base
- $result=$this->setPassword($user,$this->pass,0,$notrigger);
-
- if (! $nbrowsaffected) $nbrowsaffected++;
- }
- }
-
- if ($nbrowsaffected)
+ // Mise a jour mot de passe
+ if ($this->pass)
+ {
+ if ($this->pass != $this->pass_indatabase && $this->pass != $this->pass_indatabase_crypted)
+ {
+ // Si mot de passe saisi et different de celui en base
+ $result=$this->setPassword($user,$this->pass,0,$notrigger);
+
+ if (! $nbrowsaffected) $nbrowsaffected++;
+ }
+ }
+
+ if ($nbrowsaffected)
{
if ($this->user_id && ! $nosyncuser)
{
@@ -559,7 +465,7 @@ class Adherent extends CommonObject
$luser->email=$this->email;
$luser->office_phone=$this->phone;
$luser->user_mobile=$this->phone_mobile;
-
+
$luser->note=$this->note;
$luser->fk_member=$this->id;
@@ -577,23 +483,23 @@ class Adherent extends CommonObject
$this->error=$luser->error;
$error++;
}
- }
-
+ }
+
$this->fullname=trim($this->nom.' '.$this->prenom);
-
+
if (! $error && ! $notrigger)
{
$this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0);
// Appel des triggers
- include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
- $interface=new Interfaces($this->db);
- $result=$interface->run_triggers('MEMBER_MODIFY',$this,$user,$langs,$conf);
- if ($result < 0) { $error++; $this->errors=$interface->errors; }
- // Fin appel triggers
+ include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
+ $interface=new Interfaces($this->db);
+ $result=$interface->run_triggers('MEMBER_MODIFY',$this,$user,$langs,$conf);
+ if ($result < 0) { $error++; $this->errors=$interface->errors; }
+ // Fin appel triggers
}
}
-
+
if (! $error)
{
$this->db->commit();
@@ -602,7 +508,7 @@ class Adherent extends CommonObject
{
$this->db->rollback();
}
-
+
return $nbrowsaffected;
}
else
@@ -617,16 +523,16 @@ class Adherent extends CommonObject
/**
- \brief Fonction qui met a jour le chp denormalise date fin adhésion
- \param user Utilisateur qui realise la mise a jour
- \return int <0 si KO, >0 si OK
- */
+ \brief Fonction qui met a jour le chp denormalise date fin adhésion
+ \param user Utilisateur qui realise la mise a jour
+ \return int <0 si KO, >0 si OK
+ */
function update_end_date($user)
{
global $conf, $langs;
-
+
$error=0;
-
+
$this->db->begin();
// Search for last subscription id and end date
@@ -641,7 +547,7 @@ class Adherent extends CommonObject
{
$obj=$this->db->fetch_object($resql);
$datefin=$obj->datef;
-
+
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET";
$sql.= " datefin=".($datefin != '' ? "'".$this->db->idate($datefin)."'" : "null");
$sql.= " WHERE rowid = ".$this->id;
@@ -666,14 +572,14 @@ class Adherent extends CommonObject
$this->db->rollback();
return -1;
}
-
+
}
-
+
/**
- \brief Fonction qui supprime l'adherent et les donnees associees
- \param rowid Id de l'adherent a effacer
- \return int <0 si KO, 0=rien a effacer, >0 si OK
- */
+ \brief Fonction qui supprime l'adherent et les donnees associees
+ \param rowid Id de l'adherent a effacer
+ \return int <0 si KO, 0=rien a effacer, >0 si OK
+ */
function delete($rowid)
{
global $conf, $langs, $user;
@@ -683,7 +589,7 @@ class Adherent extends CommonObject
// Suppression options
$sql = "DELETE FROM ".MAIN_DB_PREFIX."adherent_options WHERE adhid = ".$rowid;
-
+
dolibarr_syslog("Adherent::delete sql=".$sql);
$resql=$this->db->query($sql);
if ($resql)
@@ -703,11 +609,11 @@ class Adherent extends CommonObject
$this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0);
// Appel des triggers
- include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
- $interface=new Interfaces($this->db);
- $result=$interface->run_triggers('MEMBER_DELETE',$this,$user,$langs,$conf);
+ include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
+ $interface=new Interfaces($this->db);
+ $result=$interface->run_triggers('MEMBER_DELETE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
- // Fin appel triggers
+ // Fin appel triggers
$this->db->commit();
return 1;
@@ -739,13 +645,13 @@ class Adherent extends CommonObject
$this->db->rollback();
return -1;
}
-
+
return $result;
-
+
}
-
- /**
+
+ /**
* \brief Change le mot de passe d'un utilisateur
* \param user Object user de l'utilisateur qui fait la modification
* \param password Nouveau mot de passe (e generer si non communique)
@@ -754,49 +660,49 @@ class Adherent extends CommonObject
* \param nosyncuser Do not synchronize linked user
* \return string If OK return clear password, 0 if no change, < 0 if error
*/
- function setPassword($user, $password='', $isencrypted=0, $notrigger=0, $nosyncuser=0)
- {
- global $conf, $langs;
+ function setPassword($user, $password='', $isencrypted=0, $notrigger=0, $nosyncuser=0)
+ {
+ global $conf, $langs;
$error=0;
- dolibarr_syslog("Adherent::Password user=".$user->id." password=".eregi_replace('.','*',$password)." isencrypted=".$isencrypted);
+ dolibarr_syslog("Adherent::Password user=".$user->id." password=".eregi_replace('.','*',$password)." isencrypted=".$isencrypted);
- // Si nouveau mot de passe non communique, on genere par module
- if (! $password)
- {
- // TODO Mettre appel au module de generation de mot de passe
- $password=creer_pass_aleatoire_1('');
- //$password=creer_pass_aleatoire_2('');
- }
+ // Si nouveau mot de passe non communique, on genere par module
+ if (! $password)
+ {
+ // TODO Mettre appel au module de generation de mot de passe
+ $password=creer_pass_aleatoire_1('');
+ //$password=creer_pass_aleatoire_2('');
+ }
// Cryptage mot de passe
- if ($isencrypted)
- {
- // Crypte avec systeme encodage par defaut du PHP
- //$sqlpass = crypt($password, makesalt());
- $password_indatabase = md5($password);
- }
- else
- {
- $password_indatabase = $password;
- }
+ if ($isencrypted)
+ {
+ // Crypte avec systeme encodage par defaut du PHP
+ //$sqlpass = crypt($password, makesalt());
+ $password_indatabase = md5($password);
+ }
+ else
+ {
+ $password_indatabase = $password;
+ }
// Mise a jour
- $sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET pass = '".addslashes($password_indatabase)."'";
- $sql.= " WHERE rowid = ".$this->id;
+ $sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET pass = '".addslashes($password_indatabase)."'";
+ $sql.= " WHERE rowid = ".$this->id;
//dolibarr_syslog("Adherent::Password sql=hidden");
dolibarr_syslog("Adherent::Password sql=".$sql);
- $result = $this->db->query($sql);
- if ($result)
- {
- $nbaffectedrows=$this->db->affected_rows();
+ $result = $this->db->query($sql);
+ if ($result)
+ {
+ $nbaffectedrows=$this->db->affected_rows();
if ($nbaffectedrows)
- {
- $this->pass=$password;
- $this->pass_indatabase=$password_indatabase;
+ {
+ $this->pass=$password;
+ $this->pass_indatabase=$password_indatabase;
if ($this->user_id && ! $nosyncuser)
{
@@ -827,39 +733,39 @@ class Adherent extends CommonObject
if (! $error && ! $notrigger)
{
- // Appel des triggers
- include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
- $interface=new Interfaces($this->db);
- $result=$interface->run_triggers('MEMBER_NEW_PASSWORD',$this,$user,$langs,$conf);
- if ($result < 0) { $error++; $this->errors=$interface->errors; }
- // Fin appel triggers
+ // Appel des triggers
+ include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
+ $interface=new Interfaces($this->db);
+ $result=$interface->run_triggers('MEMBER_NEW_PASSWORD',$this,$user,$langs,$conf);
+ if ($result < 0) { $error++; $this->errors=$interface->errors; }
+ // Fin appel triggers
}
-
- return $this->pass;
- }
- else
+
+ return $this->pass;
+ }
+ else
{
- return 0;
- }
- }
- else
- {
- dolibarr_print_error($this->db);
- return -1;
- }
- }
-
-
+ return 0;
+ }
+ }
+ else
+ {
+ dolibarr_print_error($this->db);
+ return -1;
+ }
+ }
+
+
/**
- * \brief Fonction qui recupere l'adherent depuis son login
- * \param login login de l'adherent
- */
+ * \brief Fonction qui recupere l'adherent depuis son login
+ * \param login login de l'adherent
+ */
function fetch_login($login)
{
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."adherent WHERE login='$login'";
-
+
$resql=$this->db->query( $sql);
-
+
if ($resql)
{
if ($this->db->num_rows($resql))
@@ -875,128 +781,128 @@ class Adherent extends CommonObject
}
- /**
- \brief Fonction qui recupere l'adherent en donnant son rowid
- \param rowid
- \return int <0 si KO, >0 si OK
- */
- function fetch($rowid)
- {
- global $langs;
+ /**
+ * \brief Fonction qui recupere l'adherent en donnant son rowid
+ * \param rowid
+ * \return int <0 si KO, >0 si OK
+ */
+ function fetch($rowid)
+ {
+ global $langs;
- $sql = "SELECT d.rowid, d.prenom, d.nom, d.societe, d.statut, d.public, d.adresse, d.cp, d.ville, d.note,";
- $sql.= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.login, d.pass,";
- $sql.= " d.photo, d.fk_adherent_type, d.morphy,";
- $sql.= " ".$this->db->pdate("d.datec")." as datec,";
- $sql.= " ".$this->db->pdate("d.tms")." as datem,";
- $sql.= " ".$this->db->pdate("d.datefin")." as datefin,";
- $sql.= " d.naiss as datenaiss,";
- $sql.= " ".$this->db->pdate("d.datevalid")." as datev,";
- $sql.= " d.pays,";
- $sql.= " p.rowid as pays_id, p.code as pays_code, p.libelle as pays_lib,";
- $sql.= " t.libelle as type, t.cotisation as cotisation,";
- $sql.= " u.rowid as user_id, u.login as user_login";
- $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d";
- $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p ON d.pays = p.rowid";
- $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON d.rowid = u.fk_member";
- $sql.= " WHERE d.fk_adherent_type = t.rowid";
+ $sql = "SELECT d.rowid, d.prenom, d.nom, d.societe, d.statut, d.public, d.adresse, d.cp, d.ville, d.note,";
+ $sql.= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.login, d.pass,";
+ $sql.= " d.photo, d.fk_adherent_type, d.morphy,";
+ $sql.= " ".$this->db->pdate("d.datec")." as datec,";
+ $sql.= " ".$this->db->pdate("d.tms")." as datem,";
+ $sql.= " ".$this->db->pdate("d.datefin")." as datefin,";
+ $sql.= " d.naiss as datenaiss,";
+ $sql.= " ".$this->db->pdate("d.datevalid")." as datev,";
+ $sql.= " d.pays,";
+ $sql.= " p.rowid as pays_id, p.code as pays_code, p.libelle as pays_lib,";
+ $sql.= " t.libelle as type, t.cotisation as cotisation,";
+ $sql.= " u.rowid as user_id, u.login as user_login";
+ $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d";
+ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p ON d.pays = p.rowid";
+ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON d.rowid = u.fk_member";
+ $sql.= " WHERE d.fk_adherent_type = t.rowid";
$sql.= " AND d.rowid = ".$rowid;
dolibarr_syslog("Adherent::fetch sql=".$sql);
-
- $resql=$this->db->query($sql);
- if ($resql)
- {
- if ($this->db->num_rows($resql))
- {
- $obj = $this->db->fetch_object($resql);
+
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ if ($this->db->num_rows($resql))
+ {
+ $obj = $this->db->fetch_object($resql);
$this->ref = $obj->rowid;
- $this->id = $obj->rowid;
- $this->prenom = $obj->prenom;
- $this->nom = $obj->nom;
- $this->fullname = trim($obj->nom.' '.$obj->prenom);
- $this->login = $obj->login;
- $this->pass = $obj->pass;
- $this->societe = $obj->societe;
- $this->adresse = $obj->adresse;
- $this->cp = $obj->cp;
- $this->ville = $obj->ville;
- $this->pays_id = $obj->pays_id;
- $this->pays_code = $obj->pays_code;
- if ($langs->trans("Country".$obj->pays_code) != "Country".$obj->pays_code) $this->pays = $langs->trans("Country".$obj->pays_code);
- elseif ($obj->pays_lib) $this->pays=$obj->pays_lib;
- else $this->pays=$obj->pays;
- $this->phone = $obj->phone;
- $this->phone_perso = $obj->phone_perso;
- $this->phone_mobile = $obj->phone_mobile;
- $this->email = $obj->email;
+ $this->id = $obj->rowid;
+ $this->prenom = $obj->prenom;
+ $this->nom = $obj->nom;
+ $this->fullname = trim($obj->nom.' '.$obj->prenom);
+ $this->login = $obj->login;
+ $this->pass = $obj->pass;
+ $this->societe = $obj->societe;
+ $this->adresse = $obj->adresse;
+ $this->cp = $obj->cp;
+ $this->ville = $obj->ville;
+ $this->pays_id = $obj->pays_id;
+ $this->pays_code = $obj->pays_code;
+ if ($langs->trans("Country".$obj->pays_code) != "Country".$obj->pays_code) $this->pays = $langs->trans("Country".$obj->pays_code);
+ elseif ($obj->pays_lib) $this->pays=$obj->pays_lib;
+ else $this->pays=$obj->pays;
+ $this->phone = $obj->phone;
+ $this->phone_perso = $obj->phone_perso;
+ $this->phone_mobile = $obj->phone_mobile;
+ $this->email = $obj->email;
- $this->photo = $obj->photo;
- $this->statut = $obj->statut;
- $this->public = $obj->public;
+ $this->photo = $obj->photo;
+ $this->statut = $obj->statut;
+ $this->public = $obj->public;
- $this->datec = $obj->datec;
- $this->datem = $obj->datem;
- $this->datefin = $obj->datefin;
- $this->datevalid = $obj->datevalid;
- $this->naiss = $obj->datenaiss;
+ $this->datec = $obj->datec;
+ $this->datem = $obj->datem;
+ $this->datefin = $obj->datefin;
+ $this->datevalid = $obj->datevalid;
+ $this->naiss = $obj->datenaiss;
- $this->note = $obj->note;
- $this->morphy = $obj->morphy;
+ $this->note = $obj->note;
+ $this->morphy = $obj->morphy;
+
+ $this->typeid = $obj->fk_adherent_type;
+ $this->type = $obj->type;
+ $this->need_subscription = ($obj->cotisation=='yes'?1:0);
+
+ $this->user_id = $obj->user_id;
+ $this->user_login = $obj->user_login;
- $this->typeid = $obj->fk_adherent_type;
- $this->type = $obj->type;
- $this->need_subscription = ($obj->cotisation=='yes'?1:0);
-
- $this->user_id = $obj->user_id;
- $this->user_login = $obj->user_login;
-
// Charge autres proprietes
$result=$this->fetch_subscriptions();
return $result;
- }
+ }
else
{
return -1;
}
- }
- else
- {
- $this->error=$this->db->error();
+ }
+ else
+ {
+ $this->error=$this->db->error();
return -1;
- }
- }
+ }
+ }
- /**
- \brief Fonction qui recupere pour un adherent les parametres
- firstsubscription_date
- fistrsubscription_amount
- lastsubscription_date
- lastsubscription_amount
- \return int <0 si KO, >0 si OK
- */
- function fetch_subscriptions()
- {
- global $langs;
+ /**
+ * \brief Fonction qui recupere pour un adherent les parametres
+ * firstsubscription_date
+ * fistrsubscription_amount
+ * lastsubscription_date
+ * lastsubscription_amount
+ * \return int <0 si KO, >0 si OK
+ */
+ function fetch_subscriptions()
+ {
+ global $langs;
- $sql = "SELECT c.rowid, c.fk_adherent, c.cotisation, c.note, c.fk_bank,";
- $sql.= " ".$this->db->pdate("c.tms")." as datem,";
- $sql.= " ".$this->db->pdate("c.datec")." as datec,";
- $sql.= " ".$this->db->pdate("c.dateadh")." as dateadh";
- $sql.= " FROM ".MAIN_DB_PREFIX."cotisation as c";
- $sql.= " WHERE c.fk_adherent = ".$this->id;
- $sql.= " ORDER BY c.dateadh";
+ $sql = "SELECT c.rowid, c.fk_adherent, c.cotisation, c.note, c.fk_bank,";
+ $sql.= " ".$this->db->pdate("c.tms")." as datem,";
+ $sql.= " ".$this->db->pdate("c.datec")." as datec,";
+ $sql.= " ".$this->db->pdate("c.dateadh")." as dateadh";
+ $sql.= " FROM ".MAIN_DB_PREFIX."cotisation as c";
+ $sql.= " WHERE c.fk_adherent = ".$this->id;
+ $sql.= " ORDER BY c.dateadh";
dolibarr_syslog("Adherent::fetch_subscriptions sql=".$sql);
-
- $resql=$this->db->query($sql);
- if ($resql)
- {
- $i=0;
+
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ $i=0;
while ($obj = $this->db->fetch_object($resql))
{
- if ($i==0)
+ if ($i==0)
{
$this->firstsubscription_date=$obj->dateadh;
$this->firstsubscription_amount=$obj->cotisation;
@@ -1004,116 +910,116 @@ class Adherent extends CommonObject
$this->lastsubscription_date=$obj->dateadh;
$this->lastsubscription_amount=$obj->cotisation;
- // TODO Completer avec records
+ // TODO Add also array of subscription records
$i++;
}
return 1;
- }
- else
- {
- $this->error=$this->db->error().' sql='.$sql;
+ }
+ else
+ {
+ $this->error=$this->db->error().' sql='.$sql;
return -1;
- }
- }
-
-
+ }
+ }
+
+
/**
- \brief Fonction qui recupere les donnees optionelles de l'adherent
- \param rowid
- */
+ * \brief Fonction qui recupere les donnees optionelles de l'adherent
+ * \param rowid
+ */
function fetch_optionals($rowid)
- {
- $tab=array();
- $sql = "SELECT *";
- $sql .= " FROM ".MAIN_DB_PREFIX."adherent_options";
- $sql .= " WHERE adhid=".$rowid;
+ {
+ $tab=array();
+ $sql = "SELECT *"; // \TODO Should not use this syntax
+ $sql.= " FROM ".MAIN_DB_PREFIX."adherent_options";
+ $sql.= " WHERE adhid=".$rowid;
- $result=$this->db->query( $sql);
+ $result=$this->db->query( $sql);
- if ($result)
- {
- if ($this->db->num_rows())
- {
- $tab = $this->db->fetch_array($result);
+ if ($result)
+ {
+ if ($this->db->num_rows())
+ {
+ $tab = $this->db->fetch_array($result);
- foreach ($tab as $key => $value)
- {
- if ($key != 'optid' && $key != 'tms' && $key != 'adhid')
- {
- // we can add this attribute to adherent object
- $this->array_options["options_$key"]=$value;
- }
- }
- }
- }
- else
- {
- dolibarr_print_error($this->db);
- }
+ foreach ($tab as $key => $value)
+ {
+ if ($key != 'optid' && $key != 'tms' && $key != 'adhid')
+ {
+ // we can add this attribute to adherent object
+ $this->array_options["options_$key"]=$value;
+ }
+ }
+ }
+ }
+ else
+ {
+ dolibarr_print_error($this->db);
+ }
- }
+ }
- /*
- * fetch optional attribute name
- */
- function fetch_name_optionals()
- {
- $array_name_options=array();
- $sql = "SHOW COLUMNS FROM ".MAIN_DB_PREFIX."adherent_options";
+ /**
+ * \brief Fetch optional attribute name
+ */
+ function fetch_name_optionals()
+ {
+ $array_name_options=array();
+ $sql = "SHOW COLUMNS FROM ".MAIN_DB_PREFIX."adherent_options";
- $result=$this->db->query( $sql);
+ $result=$this->db->query( $sql);
- if ($result)
- {
- if ($this->db->num_rows())
- {
- //$array_name_options[]=$tab->Field;
- while ($tab = $this->db->fetch_object($result))
- {
- if ($tab->Field != 'optid' && $tab->Field != 'tms' && $tab->Field != 'adhid')
- {
- // we can add this attribute to adherent object
- $array_name_options[]=$tab->Field;
- }
- }
- return $array_name_options;
- }
- else
- {
- return array();
- }
- }
- else
- {
- dolibarr_print_error($this->db);
- return array() ;
- }
+ if ($result)
+ {
+ if ($this->db->num_rows())
+ {
+ //$array_name_options[]=$tab->Field;
+ while ($tab = $this->db->fetch_object($result))
+ {
+ if ($tab->Field != 'optid' && $tab->Field != 'tms' && $tab->Field != 'adhid')
+ {
+ // we can add this attribute to adherent object
+ $array_name_options[]=$tab->Field;
+ }
+ }
+ return $array_name_options;
+ }
+ else
+ {
+ return array();
+ }
+ }
+ else
+ {
+ dolibarr_print_error($this->db);
+ return array() ;
+ }
- }
+ }
- /**
- \brief Fonction qui insere la cotisation dans la base de donnees
- et eventuellement liens dans banques, mailman, etc...
- \param date Date d'effet de la cotisation
- \param montant Montant cotisation (accepte 0 pour les adherents non soumis e cotisation)
- \param account_id Id compte bancaire
- \param operation Type operation (si Id compte bancaire fourni)
- \param label Label operation (si Id compte bancaire fourni)
- \param num_chq Numero cheque (si Id compte bancaire fourni)
- \param emetteur_nom Nom emetteur cheque
- \param emetteur_banque Nom banque emetteur cheque
- \param datesubend Date fin adhesion
- \return int rowid de l'entree ajoutee, <0 si erreur
- */
- function cotisation($date, $montant, $accountid=0, $operation='', $label='', $num_chq='', $emetteur_nom='', $emetteur_banque='', $datesubend=0)
- {
- global $conf,$langs,$user;
+ /**
+ \brief Fonction qui insere la cotisation dans la base de donnees
+ et eventuellement liens dans banques, mailman, etc...
+ \param date Date d'effet de la cotisation
+ \param montant Montant cotisation (accepte 0 pour les adherents non soumis e cotisation)
+ \param account_id Id compte bancaire
+ \param operation Type operation (si Id compte bancaire fourni)
+ \param label Label operation (si Id compte bancaire fourni)
+ \param num_chq Numero cheque (si Id compte bancaire fourni)
+ \param emetteur_nom Nom emetteur cheque
+ \param emetteur_banque Nom banque emetteur cheque
+ \param datesubend Date fin adhesion
+ \return int rowid de l'entree ajoutee, <0 si erreur
+ */
+ function cotisation($date, $montant, $accountid=0, $operation='', $label='', $num_chq='', $emetteur_nom='', $emetteur_banque='', $datesubend=0)
+ {
+ global $conf,$langs,$user;
// Nettoyage parametres
if (! $montant) $montant=0;
-
- $this->db->begin();
+
+ $this->db->begin();
if ($datesubend)
{
@@ -1135,59 +1041,59 @@ class Adherent extends CommonObject
$cotisation->note=$label;
$rowid=$cotisation->create($user);
-
- if ($rowid > 0)
- {
+
+ if ($rowid > 0)
+ {
// Update denormalized subscription end date
- $result=$this->update_end_date($user);
- if ($result > 0)
- {
- // Rajout du nouveau cotisant dans les listes qui vont bien
- if ($conf->global->ADHERENT_MAILMAN_LISTS_COTISANT && ! $adh->datefin)
- {
- $result=$adh->add_to_mailman($conf->global->ADHERENT_MAILMAN_LISTS_COTISANT);
- }
+ $result=$this->update_end_date($user);
+ if ($result > 0)
+ {
+ // Rajout du nouveau cotisant dans les listes qui vont bien
+ if ($conf->global->ADHERENT_MAILMAN_LISTS_COTISANT && ! $adh->datefin)
+ {
+ $result=$adh->add_to_mailman($conf->global->ADHERENT_MAILMAN_LISTS_COTISANT);
+ }
- // Insertion dans la gestion bancaire si configure pour
- if ($conf->global->ADHERENT_BANK_USE && $accountid)
- {
- $acct=new Account($this->db);
+ // Insertion dans la gestion bancaire si configure pour
+ if ($conf->global->ADHERENT_BANK_USE && $accountid)
+ {
+ $acct=new Account($this->db);
$result=$acct->fetch($accountid);
-
- $dateop=time();
- $insertid=$acct->addline($dateop, $operation, $label, $montant, $num_chq, '', $user, $emetteur_nom, $emetteur_banque);
- if ($insertid > 0)
- {
- $inserturlid=$acct->add_url_line($insertid, $this->id, DOL_URL_ROOT.'/adherents/fiche.php?rowid=', $this->getFullname(), 'member');
- if ($inserturlid > 0)
- {
- // Met a jour la table cotisation
+ $dateop=time();
+
+ $insertid=$acct->addline($dateop, $operation, $label, $montant, $num_chq, '', $user, $emetteur_nom, $emetteur_banque);
+ if ($insertid > 0)
+ {
+ $inserturlid=$acct->add_url_line($insertid, $this->id, DOL_URL_ROOT.'/adherents/fiche.php?rowid=', $this->getFullname(), 'member');
+ if ($inserturlid > 0)
+ {
+ // Met a jour la table cotisation
$sql="UPDATE ".MAIN_DB_PREFIX."cotisation SET fk_bank=".$insertid." WHERE rowid=".$rowid;
-
+
dolibarr_syslog("Adherent::cotisation sql=".$sql);
$resql = $this->db->query($sql);
- if (! $resql)
- {
- $this->error=$this->db->error();
- $this->db->rollback();
- return -5;
- }
- }
- else
- {
- $this->error=$acct->error();
- $this->db->rollback();
- return -4;
- }
- }
- else
- {
- $this->error=$acct->error;
- $this->db->rollback();
- return -3;
- }
- }
+ if (! $resql)
+ {
+ $this->error=$this->db->error();
+ $this->db->rollback();
+ return -5;
+ }
+ }
+ else
+ {
+ $this->error=$acct->error();
+ $this->db->rollback();
+ return -4;
+ }
+ }
+ else
+ {
+ $this->error=$acct->error;
+ $this->db->rollback();
+ return -3;
+ }
+ }
// Ajout de proprietes pour le triggers
$this->last_subscription_date=$dateop;
@@ -1195,40 +1101,48 @@ class Adherent extends CommonObject
$this->last_subscription_date_end=$datefin;
$this->last_subscription_amount=$montant;
$this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0);
-
- // Appel des triggers
- include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
- $interface=new Interfaces($this->db);
- $result=$interface->run_triggers('MEMBER_SUBSCRIPTION',$this,$user,$langs,$conf);
- if ($result < 0) { $error++; $this->errors=$interface->errors; }
- // Fin appel triggers
- $this->db->commit();
- return $rowid;
- }
- else
- {
- $this->db->rollback();
- return -2;
- }
- }
- else
- {
- $this->error=$cotisation->error;
- $this->db->rollback();
- return -1;
- }
- }
+ // Appel des triggers
+ include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
+ $interface=new Interfaces($this->db);
+ $result=$interface->run_triggers('MEMBER_SUBSCRIPTION',$this,$user,$langs,$conf);
+ if ($result < 0) { $error++; $this->errors=$interface->errors; }
+ // Fin appel triggers
+
+ $this->db->commit();
+ return $rowid;
+ }
+ else
+ {
+ $this->db->rollback();
+ return -2;
+ }
+ }
+ else
+ {
+ $this->error=$cotisation->error;
+ $this->db->rollback();
+ return -1;
+ }
+ }
/**
* \brief Function that validate a member
* \param user user adherent qui valide
- * \return int <0 si ko, >0 si ok
+ * \return int <0 if KO, 0 if nothing done, >0 if OK
*/
function validate($user)
{
global $langs,$conf;
+ if ($this->statut == 1)
+ {
+ dolibarr_syslog("Adherent::validate statut of member does not allow this", LOG_WARNING);
+ return 0;
+ }
+
+ $this->db->begin();
+
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET";
$sql.= " statut=1, datevalid = ".$this->db->idate(mktime()).",";
$sql.= " fk_user_valid=".$user->id;
@@ -1241,12 +1155,12 @@ class Adherent extends CommonObject
$this->statut=1;
$this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0);
-
+
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('MEMBER_VALIDATE',$this,$user,$langs,$conf);
- if ($result < 0) { $error++; $this->errors=$interface->errors; }
+ if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
$this->db->commit();
@@ -1270,12 +1184,18 @@ class Adherent extends CommonObject
{
global $langs,$conf;
+ if ($this->statut == 0)
+ {
+ dolibarr_syslog("Adherent::resiliate statut of member does not allow this", LOG_WARNING);
+ return 0;
+ }
+
$this->db->begin();
- $sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET ";
- $sql .= "statut=0";
- $sql .= ",fk_user_valid=".$user->id;
- $sql .= " WHERE rowid = ".$this->id;
+ $sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET";
+ $sql.= " statut=0,";
+ $sql.= " fk_user_valid=".$user->id;
+ $sql.= " WHERE rowid = ".$this->id;
$result = $this->db->query($sql);
if ($result)
@@ -1284,12 +1204,12 @@ class Adherent extends CommonObject
$this->use_webcal=($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?1:0);
- // Appel des triggers
- include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
- $interface=new Interfaces($this->db);
- $result=$interface->run_triggers('MEMBER_RESILIATE',$this,$user,$langs,$conf);
- if ($result < 0) { $error++; $this->errors=$interface->errors; }
- // Fin appel triggers
+ // Appel des triggers
+ include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
+ $interface=new Interfaces($this->db);
+ $result=$interface->run_triggers('MEMBER_RESILIATE',$this,$user,$langs,$conf);
+ if ($result < 0) { $error++; $this->errors=$interface->errors; }
+ // Fin appel triggers
$this->db->commit();
return 1;
@@ -1304,11 +1224,11 @@ class Adherent extends CommonObject
/**
- \brief Fonction qui ajoute l'adherent au abonnements automatiques
- \param adht
- \remarks mailing-list, spip, etc...
- \return int <0 si KO, >=0 si OK
- */
+ \brief Fonction qui ajoute l'adherent au abonnements automatiques
+ \param adht
+ \remarks mailing-list, spip, etc...
+ \return int <0 si KO, >=0 si OK
+ */
function add_to_abo($adht)
{
$err=0;
@@ -1322,7 +1242,7 @@ class Adherent extends CommonObject
$err+=1;
}
}
-
+
// spip
if (
defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP ==1 &&
@@ -1348,10 +1268,10 @@ class Adherent extends CommonObject
/**
- \brief fonction qui supprime l'adherent des abonnements automatiques
- \param adht
- \remarks mailing-list, spip, etc...
- */
+ \brief fonction qui supprime l'adherent des abonnements automatiques
+ \param adht
+ \remarks mailing-list, spip, etc...
+ */
function del_to_abo($adht)
{
$err=0;
@@ -1375,16 +1295,16 @@ class Adherent extends CommonObject
if ($err>0){
// error
return 0;
- }else{
- return 1;
- }
+ }else{
+ return 1;
}
+ }
/**
- \brief fonction qui donne les droits redacteurs dans spip
- \return int =0 si KO, >0 si OK
- */
+ \brief fonction qui donne les droits redacteurs dans spip
+ \return int =0 si KO, >0 si OK
+ */
function add_to_spip()
{
require_once(DOL_DOCUMENT_ROOT.'/lib/security.lib.php');
@@ -1392,11 +1312,11 @@ class Adherent extends CommonObject
dolibarr_syslog("Adherent::add_to_spip");
if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP ==1 &&
- defined('ADHERENT_SPIP_SERVEUR') && ADHERENT_SPIP_SERVEUR != '' &&
- defined('ADHERENT_SPIP_USER') && ADHERENT_SPIP_USER != '' &&
- defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
- defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != ''
- ){
+ defined('ADHERENT_SPIP_SERVEUR') && ADHERENT_SPIP_SERVEUR != '' &&
+ defined('ADHERENT_SPIP_USER') && ADHERENT_SPIP_USER != '' &&
+ defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
+ defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != ''
+ ){
$mdpass=md5($this->pass);
$htpass=crypt($this->pass,makesalt());
$query = "INSERT INTO spip_auteurs (nom, email, login, pass, htpass, alea_futur, statut) VALUES(\"".$this->prenom." ".$this->nom."\",\"".$this->email."\",\"".$this->login."\",\"$mdpass\",\"$htpass\",FLOOR(32000*RAND()),\"1comite\")";
@@ -1418,98 +1338,98 @@ class Adherent extends CommonObject
}
/**
- \brief fonction qui enleve les droits redacteurs dans spip
- */
+ \brief fonction qui enleve les droits redacteurs dans spip
+ */
function del_to_spip()
- {
- if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP ==1 &&
- defined('ADHERENT_SPIP_SERVEUR') && ADHERENT_SPIP_SERVEUR != '' &&
- defined('ADHERENT_SPIP_USER') && ADHERENT_SPIP_USER != '' &&
- defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
- defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != ''
- ){
- $query = "DELETE FROM spip_auteurs WHERE login='".$this->login."'";
- $mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
- $result = $mydb->query($query);
+ {
+ if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP ==1 &&
+ defined('ADHERENT_SPIP_SERVEUR') && ADHERENT_SPIP_SERVEUR != '' &&
+ defined('ADHERENT_SPIP_USER') && ADHERENT_SPIP_USER != '' &&
+ defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
+ defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != ''
+ ){
+ $query = "DELETE FROM spip_auteurs WHERE login='".$this->login."'";
+ $mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
+ $result = $mydb->query($query);
- if ($result)
+ if ($result)
{
- $mydb->close();
- return 1;
+ $mydb->close();
+ return 1;
}
- else
+ else
{
- $this->error=$mydb->error();
- return 0;
+ $this->error=$mydb->error();
+ return 0;
}
- }
- }
+ }
+ }
/**
- \brief Fonction qui dit si cet utilisateur est un redacteur existant dans spip
- \return int 1=existe, 0=n'existe pas, -1=erreur
- */
+ \brief Fonction qui dit si cet utilisateur est un redacteur existant dans spip
+ \return int 1=existe, 0=n'existe pas, -1=erreur
+ */
function is_in_spip()
- {
- if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP ==1 &&
- defined('ADHERENT_SPIP_SERVEUR') && ADHERENT_SPIP_SERVEUR != '' &&
- defined('ADHERENT_SPIP_USER') && ADHERENT_SPIP_USER != '' &&
- defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
- defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != '')
- {
+ {
+ if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP ==1 &&
+ defined('ADHERENT_SPIP_SERVEUR') && ADHERENT_SPIP_SERVEUR != '' &&
+ defined('ADHERENT_SPIP_USER') && ADHERENT_SPIP_USER != '' &&
+ defined('ADHERENT_SPIP_PASS') && ADHERENT_SPIP_PASS != '' &&
+ defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != '')
+ {
- $query = "SELECT login FROM spip_auteurs WHERE login='".$this->login."'";
- $mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
+ $query = "SELECT login FROM spip_auteurs WHERE login='".$this->login."'";
+ $mydb=new DoliDb('mysql',ADHERENT_SPIP_SERVEUR,ADHERENT_SPIP_USER,ADHERENT_SPIP_PASS,ADHERENT_SPIP_DB,ADHERENT_SPIP_PORT);
- if ($mydb->ok) {
+ if ($mydb->ok) {
- $result = $mydb->query($query);
+ $result = $mydb->query($query);
- if ($result)
- {
- if ($mydb->num_rows())
- {
- # nous avons au moins une reponse
- $mydb->close();
- return 1;
- }
- else
- {
- # nous n'avons pas de reponse => n'existe pas
- $mydb->close();
- return 0;
- }
- }
- else
- {
- # error
- $this->error=$mydb->error();
- return -1;
- }
- } else {
- $this->error="Echec de connexion avec les identifiants ".ADHERENT_SPIP_SERVEUR." ".ADHERENT_SPIP_USER." ".ADHERENT_SPIP_PASS." ".ADHERENT_SPIP_DB;
- return -1;
- }
- }
- }
+ if ($result)
+ {
+ if ($mydb->num_rows())
+ {
+ # nous avons au moins une reponse
+ $mydb->close();
+ return 1;
+ }
+ else
+ {
+ # nous n'avons pas de reponse => n'existe pas
+ $mydb->close();
+ return 0;
+ }
+ }
+ else
+ {
+ # error
+ $this->error=$mydb->error();
+ return -1;
+ }
+ } else {
+ $this->error="Echec de connexion avec les identifiants ".ADHERENT_SPIP_SERVEUR." ".ADHERENT_SPIP_USER." ".ADHERENT_SPIP_PASS." ".ADHERENT_SPIP_DB;
+ return -1;
+ }
+ }
+ }
/**
- \brief Fonction qui rajoute l'utilisateur dans mailman
- \return int <0 si KO, >0 si OK
- */
+ \brief Fonction qui rajoute l'utilisateur dans mailman
+ \return int <0 si KO, >0 si OK
+ */
function add_to_mailman($listes='')
{
global $conf,$langs;
-
+
dolibarr_syslog("Adherent::add_to_mailman");
if (! function_exists("curl_init"))
{
$langs->load("errors");
$this->error=$langs->trans("ErrorFunctionNotAvailableInPHP","curl_init");
- return -1;
+ return -1;
}
-
+
if (defined("ADHERENT_MAILMAN_URL") && ADHERENT_MAILMAN_URL != '' && defined("ADHERENT_MAILMAN_LISTS") && ADHERENT_MAILMAN_LISTS != '')
{
if ($listes =='')
@@ -1518,7 +1438,7 @@ class Adherent extends CommonObject
}
else
{
- $lists=explode(',',$listes);
+ $lists=explode(',',$listes);
}
foreach ($lists as $list)
{
@@ -1573,11 +1493,11 @@ class Adherent extends CommonObject
/**
\brief Fonction qui desinscrit l'utilisateur de toutes les mailing list mailman
\remarks Utilise lors de la resiliation d'adhesion
- */
+ */
function del_to_mailman($listes='')
{
global $conf;
-
+
if (defined("ADHERENT_MAILMAN_UNSUB_URL") && ADHERENT_MAILMAN_UNSUB_URL != '' && defined("ADHERENT_MAILMAN_LISTS") && ADHERENT_MAILMAN_LISTS != '')
{
if ($listes==''){
@@ -1642,13 +1562,13 @@ class Adherent extends CommonObject
* \brief Retourne le nom complet de l'adherent
* \return string Nom complet
*/
- function getFullname()
- {
- if ($this->nom && $this->prenom) return $this->nom.' '.$this->prenom;
- if ($this->nom) return $this->nom;
- if ($this->prenom) return $this->prenom;
- return '';
- }
+ function getFullname()
+ {
+ if ($this->nom && $this->prenom) return $this->nom.' '.$this->prenom;
+ if ($this->nom) return $this->nom;
+ if ($this->prenom) return $this->prenom;
+ return '';
+ }
/**
@@ -1661,7 +1581,7 @@ class Adherent extends CommonObject
function getNomUrl($withpicto=0,$maxlen=0,$option='card')
{
global $langs;
-
+
$result='';
if ($option == 'card')
@@ -1674,10 +1594,10 @@ class Adherent extends CommonObject
$lien = '';
$lienfin='';
}
-
+
$picto='user';
$label=$langs->trans("ShowMember");
-
+
if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin);
if ($withpicto && $withpicto != 2) $result.=' ';
$result.=$lien.($maxlen?dolibarr_trunc($this->ref,$maxlen):$this->ref).$lienfin;
@@ -1690,157 +1610,157 @@ class Adherent extends CommonObject
* \param mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
* \return string Libelle
*/
- function getLibStatut($mode=0)
- {
+ function getLibStatut($mode=0)
+ {
return $this->LibStatut($this->statut,$this->need_subscription,$this->datefin,$mode);
- }
+ }
/**
- * \brief Renvoi le libelle d'un statut donne
- * \param statut Id statut
- * \param need_subscription 1 si type adherent avec cotisation, 0 sinon
- * \param date_end_subscription Date fin adhesion
- * \param mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
- * \return string Libelle
- */
- function LibStatut($statut,$need_subscription,$date_end_subscription,$mode=0)
- {
- global $langs;
- $langs->load("members");
+ * \brief Renvoi le libelle d'un statut donne
+ * \param statut Id statut
+ * \param need_subscription 1 si type adherent avec cotisation, 0 sinon
+ * \param date_end_subscription Date fin adhesion
+ * \param mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
+ * \return string Libelle
+ */
+ function LibStatut($statut,$need_subscription,$date_end_subscription,$mode=0)
+ {
+ global $langs;
+ $langs->load("members");
if ($mode == 0)
{
- if ($statut == -1) return $langs->trans("MemberStatusDraft");
- if ($statut >= 1)
- {
- if (! $date_end_subscription) return $langs->trans("MemberStatusActive");
- elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLate");
- else return $langs->trans("MemberStatusPayed");
- }
- if ($statut == 0) return $langs->trans("MemberStatusResiliated");
+ if ($statut == -1) return $langs->trans("MemberStatusDraft");
+ if ($statut >= 1)
+ {
+ if (! $date_end_subscription) return $langs->trans("MemberStatusActive");
+ elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLate");
+ else return $langs->trans("MemberStatusPayed");
+ }
+ if ($statut == 0) return $langs->trans("MemberStatusResiliated");
}
if ($mode == 1)
{
- if ($statut == -1) return $langs->trans("MemberStatusDraft");
- if ($statut >= 1)
- {
- if (! $date_end_subscription) return $langs->trans("MemberStatusActiveShort");
- elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLateShort");
- else return $langs->trans("MemberStatusPayedShort");
- }
- if ($statut == 0) return $langs->trans("MemberStatusResiliated");
+ if ($statut == -1) return $langs->trans("MemberStatusDraft");
+ if ($statut >= 1)
+ {
+ if (! $date_end_subscription) return $langs->trans("MemberStatusActiveShort");
+ elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLateShort");
+ else return $langs->trans("MemberStatusPayedShort");
+ }
+ if ($statut == 0) return $langs->trans("MemberStatusResiliated");
}
if ($mode == 2)
{
- if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0').' '.$langs->trans("MemberStatusDraft");
- if ($statut >= 1)
- {
- if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1').' '.$langs->trans("MemberStatusActiveShort");
- elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3').' '.$langs->trans("MemberStatusActiveLateShort");
- else return img_picto($langs->trans('MemberStatusPayed'),'statut4').' '.$langs->trans("MemberStatusPayedShort");
- }
- if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliated");
+ if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0').' '.$langs->trans("MemberStatusDraft");
+ if ($statut >= 1)
+ {
+ if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1').' '.$langs->trans("MemberStatusActiveShort");
+ elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3').' '.$langs->trans("MemberStatusActiveLateShort");
+ else return img_picto($langs->trans('MemberStatusPayed'),'statut4').' '.$langs->trans("MemberStatusPayedShort");
+ }
+ if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliated");
}
if ($mode == 3)
{
- if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0');
- if ($statut >= 1)
- {
- if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1');
- elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3');
- else return img_picto($langs->trans('MemberStatusPayed'),'statut4');
- }
- if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5');
+ if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0');
+ if ($statut >= 1)
+ {
+ if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1');
+ elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3');
+ else return img_picto($langs->trans('MemberStatusPayed'),'statut4');
+ }
+ if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5');
}
if ($mode == 4)
{
- if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0').' '.$langs->trans("MemberStatusDraft");
- if ($statut >= 1)
- {
- if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1').' '.$langs->trans("MemberStatusActive");
- elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3').' '.$langs->trans("MemberStatusActiveLate");
- else return img_picto($langs->trans('MemberStatusPayed'),'statut4').' '.$langs->trans("MemberStatusPayed");
- }
- if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliated");
+ if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0').' '.$langs->trans("MemberStatusDraft");
+ if ($statut >= 1)
+ {
+ if (! $date_end_subscription) return img_picto($langs->trans('MemberStatusActive'),'statut1').' '.$langs->trans("MemberStatusActive");
+ elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3').' '.$langs->trans("MemberStatusActiveLate");
+ else return img_picto($langs->trans('MemberStatusPayed'),'statut4').' '.$langs->trans("MemberStatusPayed");
+ }
+ if ($statut == 0) return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliated");
}
- if ($mode == 5)
- {
- if ($statut == -1) return $langs->trans("MemberStatusDraft").' '.img_picto($langs->trans('MemberStatusDraft'),'statut0');
- if ($statut >= 1)
- {
- if (! $date_end_subscription) return $langs->trans("MemberStatusActive").' '.img_picto($langs->trans('MemberStatusActive'),'statut1');
- elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLate").' '.img_picto($langs->trans('MemberStatusActiveLate'),'statut3');
- else return $langs->trans("MemberStatusPayed").' '.img_picto($langs->trans('MemberStatusPayed'),'statut4');
- }
- if ($statut == 0) return $langs->trans("MemberStatusResiliated").' '.img_picto($langs->trans('MemberStatusResiliated'),'statut5');
+ if ($mode == 5)
+ {
+ if ($statut == -1) return $langs->trans("MemberStatusDraft").' '.img_picto($langs->trans('MemberStatusDraft'),'statut0');
+ if ($statut >= 1)
+ {
+ if (! $date_end_subscription) return $langs->trans("MemberStatusActive").' '.img_picto($langs->trans('MemberStatusActive'),'statut1');
+ elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLate").' '.img_picto($langs->trans('MemberStatusActiveLate'),'statut3');
+ else return $langs->trans("MemberStatusPayed").' '.img_picto($langs->trans('MemberStatusPayed'),'statut4');
+ }
+ if ($statut == 0) return $langs->trans("MemberStatusResiliated").' '.img_picto($langs->trans('MemberStatusResiliated'),'statut5');
}
- }
+ }
- /**
- * \brief Charge indicateurs this->nb de tableau de bord
- * \return int <0 si ko, >0 si ok
- */
- function load_state_board()
- {
- global $conf;
+ /**
+ * \brief Charge indicateurs this->nb de tableau de bord
+ * \return int <0 si ko, >0 si ok
+ */
+ function load_state_board()
+ {
+ global $conf;
- $this->nb=array();
+ $this->nb=array();
- $sql = "SELECT count(a.rowid) as nb";
- $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
- $sql.= " WHERE a.statut > 0";
- $resql=$this->db->query($sql);
- if ($resql)
- {
- while ($obj=$this->db->fetch_object($resql))
- {
- $this->nb["members"]=$obj->nb;
- }
- return 1;
- }
- else
- {
- dolibarr_print_error($this->db);
- $this->error=$this->db->error();
- return -1;
- }
+ $sql = "SELECT count(a.rowid) as nb";
+ $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
+ $sql.= " WHERE a.statut > 0";
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ while ($obj=$this->db->fetch_object($resql))
+ {
+ $this->nb["members"]=$obj->nb;
+ }
+ return 1;
+ }
+ else
+ {
+ dolibarr_print_error($this->db);
+ $this->error=$this->db->error();
+ return -1;
+ }
- }
+ }
- /**
- * \brief Charge indicateurs this->nbtodo et this->nbtodolate de tableau de bord
- * \param user Objet user
- * \return int <0 si ko, >0 si ok
- */
- function load_board($user)
- {
- global $conf;
+ /**
+ * \brief Charge indicateurs this->nbtodo et this->nbtodolate de tableau de bord
+ * \param user Objet user
+ * \return int <0 si ko, >0 si ok
+ */
+ function load_board($user)
+ {
+ global $conf;
- if ($user->societe_id) return -1; // protection pour eviter appel par utilisateur externe
+ if ($user->societe_id) return -1; // protection pour eviter appel par utilisateur externe
+
+ $this->nbtodo=$this->nbtodolate=0;
+ $sql = "SELECT a.rowid,".$this->db->pdate("a.datefin")." as datefin";
+ $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
+ $sql.= " WHERE a.statut=1";
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ while ($obj=$this->db->fetch_object($resql))
+ {
+ $this->nbtodo++;
+ if ($obj->datefin < (time() - $conf->adherent->cotisation->warning_delay)) $this->nbtodolate++;
+ }
+ return 1;
+ }
+ else
+ {
+ dolibarr_print_error($this->db);
+ $this->error=$this->db->error();
+ return -1;
+ }
+ }
- $this->nbtodo=$this->nbtodolate=0;
- $sql = "SELECT a.rowid,".$this->db->pdate("a.datefin")." as datefin";
- $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
- $sql.= " WHERE a.statut=1";
- $resql=$this->db->query($sql);
- if ($resql)
- {
- while ($obj=$this->db->fetch_object($resql))
- {
- $this->nbtodo++;
- if ($obj->datefin < (time() - $conf->adherent->cotisation->warning_delay)) $this->nbtodolate++;
- }
- return 1;
- }
- else
- {
- dolibarr_print_error($this->db);
- $this->error=$this->db->error();
- return -1;
- }
- }
-
/**
* \brief Initialise le membre avec valeurs fictives aleatoire
*/
@@ -1876,26 +1796,26 @@ class Adherent extends CommonObject
$this->datefin=time();
$this->datevalid=time();
-
+
$this->typeid=1; // Id type adherent
$this->type='Type adherent'; // Libelle type adherent
$this->need_subscription=0;
-
+
$this->firstsubscription_date=time();
$this->firstsubscription_amount=10;
$this->lastsubscription_date=time();
$this->lastsubscription_amount=10;
}
-
-
+
+
/*
- * \brief Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
- * \param info Info string loaded by _load_ldap_info
- * \param mode 0=Return DN without key inside (ou=xxx,dc=aaa,dc=bbb)
- 1=Return full DN (uid=qqq,ou=xxx,dc=aaa,dc=bbb)
- 2=Return key only (uid=qqq)
- * \return string DN
- */
+ * \brief Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
+ * \param info Info string loaded by _load_ldap_info
+ * \param mode 0=Return DN without key inside (ou=xxx,dc=aaa,dc=bbb)
+ 1=Return full DN (uid=qqq,ou=xxx,dc=aaa,dc=bbb)
+ 2=Return key only (uid=qqq)
+ * \return string DN
+ */
function _load_ldap_dn($info,$mode=0)
{
global $conf;
@@ -1908,9 +1828,9 @@ class Adherent extends CommonObject
/*
- * \brief Initialise tableau info (tableau des attributs LDAP)
- * \return array Tableau info des attributs
- */
+ * \brief Initialise tableau info (tableau des attributs LDAP)
+ * \return array Tableau info des attributs
+ */
function _load_ldap_info()
{
global $conf,$langs;
@@ -1919,7 +1839,7 @@ class Adherent extends CommonObject
// Object classes
$info["objectclass"]=split(',',$conf->global->LDAP_MEMBER_OBJECT_CLASS);
-
+
// Member
if ($this->fullname && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = $this->fullname;
if ($this->nom && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->nom;
@@ -1946,15 +1866,15 @@ class Adherent extends CommonObject
if (isset($this->firstsubscription_amount) && $conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT) $info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT] = $this->firstsubscription_amount;
if ($this->lastsubscription_date && $conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE) $info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE] = dolibarr_print_date($this->lastsubscription_date,'dayhourldap');
if (isset($this->lastsubscription_amount) && $conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT) $info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT] = $this->lastsubscription_amount;
-
+
return $info;
- }
+ }
- /**
- * \brief Charge les informations d'ordre info dans l'objet adherent
- * \param id Id du membre a charger
- */
+ /**
+ * \brief Charge les informations d'ordre info dans l'objet adherent
+ * \param id Id du membre a charger
+ */
function info($id)
{
$sql = 'SELECT a.rowid, '.$this->db->pdate('a.datec').' as datec,';
diff --git a/htdocs/adherents/options.php b/htdocs/adherents/options.php
index b6f1390cf29..b4d42c960d7 100644
--- a/htdocs/adherents/options.php
+++ b/htdocs/adherents/options.php
@@ -130,7 +130,7 @@ if (sizeof($array_options)>0)
print "".$adho->attribute_label[$key]." | \n";
print "$key | \n";
print "$value | \n";
- print "".img_edit()."";
+ print " | ".img_edit()."";
print " ".img_delete()." | \n";
print "";
// $i++;
diff --git a/htdocs/admin/agenda.php b/htdocs/admin/agenda.php
index ea3cdd86bbf..304d01b7374 100644
--- a/htdocs/admin/agenda.php
+++ b/htdocs/admin/agenda.php
@@ -53,8 +53,10 @@ $eventstolog=array(
array('id'=>'BILL_SUPPLIER_VALIDATE', 'test'=>$conf->fournisseur->enabled),
// array('id'=>'PAYMENT_CUSTOMER_CREATE','test'=>$conf->facture->enabled),
// array('id'=>'PAYMENT_SUPPLIER_CREATE','test'=>$conf->fournisseur->enabled),
-// array('id'=>'MEMBER_VALIDATE', 'test'=>$conf->adherent->enabled),
-// array('id'=>'MEMBER_SUBSCRIPTION', 'test'=>$conf->adherent->enabled),
+ array('id'=>'MEMBER_VALIDATE', 'test'=>$conf->adherent->enabled),
+ array('id'=>'MEMBER_SUBSCRIPTION', 'test'=>$conf->adherent->enabled),
+ array('id'=>'MEMBER_RESILIATE', 'test'=>$conf->adherent->enabled),
+ array('id'=>'MEMBER_DELETE', 'test'=>$conf->adherent->enabled),
);
diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php
index abaefb42834..bf52925f70f 100644
--- a/htdocs/comm/action/index.php
+++ b/htdocs/comm/action/index.php
@@ -68,6 +68,8 @@ $day=isset($_REQUEST["day"])?$_REQUEST["day"]:0;
$langs->load("other");
+if (! isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW=3;
+
/*
* Actions
@@ -413,7 +415,7 @@ if ($_GET["action"] != 'show_day')
{
$style='cal_other_month';
echo ' ';
- show_day_events ($db, $max_day_in_prev_month + $tmpday, $prev_month, $prev_year, $style, $actionarray,3);
+ show_day_events ($db, $max_day_in_prev_month + $tmpday, $prev_month, $prev_year, $style, $actionarray, $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW);
echo " | \n";
}
/* Show days of the current month */
@@ -429,7 +431,7 @@ if ($_GET["action"] != 'show_day')
$style='cal_current_month';
echo ' ';
- show_day_events($db, $tmpday, $month, $year, $style, $actionarray, 3);
+ show_day_events($db, $tmpday, $month, $year, $style, $actionarray, $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW);
echo " | \n";
}
/* Show days after the current month (next month) */
@@ -437,7 +439,7 @@ if ($_GET["action"] != 'show_day')
{
$style='cal_other_month';
echo ' ';
- show_day_events($db, $tmpday - $max_day_in_month, $next_month, $next_year, $style, $actionarray, 3);
+ show_day_events($db, $tmpday - $max_day_in_month, $next_month, $next_year, $style, $actionarray, $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW);
echo " | \n";
}
$tmpday++;
@@ -448,6 +450,7 @@ if ($_GET["action"] != 'show_day')
}
else
{
+ // Code to show just one day
$style='cal_current_month';
$timestamp=dolibarr_mktime(12,0,0,$month,$_GET["day"],$year);
$arraytimestamp=adodb_getdate(dolibarr_mktime(12,0,0,$month,$_GET["day"],$year));
@@ -458,7 +461,7 @@ else
echo " \n";
echo " \n";
echo ' | ';
- show_day_events ($db, $_GET["day"], $month, $year, $style, $actionarray);
+ show_day_events ($db, $_GET["day"], $month, $year, $style, $actionarray, 0, 0);
echo " | \n";
echo "
\n";
echo '';
@@ -480,16 +483,17 @@ llxFooter('$Date$ - $Revision$');
* @param unknown_type $year Year
* @param unknown_type $style Style to use for this day
* @param unknown_type $actionarray Array of actions
- * @param unknown_type $maxPrint Nb of actions to show each day on month view
+ * @param unknown_type $maxPrint Nb of actions to show each day on month view (0 means non limit)
+ * @param unknown_type nbofchartoshow Nb of characters to show for event line
*/
-function show_day_events($db, $day, $month, $year, $style, $actionarray, $maxPrint=-1)
+function show_day_events($db, $day, $month, $year, $style, $actionarray, $maxPrint=0, $nbofchartoshow=14)
{
global $user, $conf, $langs;
global $filtera, $filtert, $filted;
global $theme_datacolor;
if ($_GET["action"] == 'maxPrint')
{
- $maxPrint=-1;
+ $maxPrint=0;
}
$curtime = dolibarr_mktime (0, 0, 0, $month, $day, $year);
@@ -517,7 +521,7 @@ function show_day_events($db, $day, $month, $year, $style, $actionarray, $maxPri
foreach ($actionarray[$daykey] as $index => $action)
{
- if ($i < $maxPrint || $maxPrint == -1)
+ if ($i < $maxPrint || $maxPrint == 0)
{
$ponct=($action->date_start_in_calendar == $action->date_end_in_calendar);
// Show rect of event
@@ -562,11 +566,11 @@ function show_day_events($db, $day, $month, $year, $style, $actionarray, $maxPri
print dolibarr_print_date($action->date_end_in_calendar,'%H:%M');
}
print '
';
- print $action->getNomUrl(0,14,'cal_event');
+ print $action->getNomUrl(0,$nbofchartoshow,'cal_event');
}
else // It's a birthday
{
- print $action->getNomUrl(0,14,'cal_event','birthday');
+ print $action->getNomUrl(0,$nbofchartoshow,'cal_event','birthday');
}
print '';
print '';
diff --git a/htdocs/includes/triggers/interface_all_Logevents.class.php b/htdocs/includes/triggers/interface_all_Logevents.class.php
index 871566ddfc8..3a30c02230c 100644
--- a/htdocs/includes/triggers/interface_all_Logevents.class.php
+++ b/htdocs/includes/triggers/interface_all_Logevents.class.php
@@ -402,11 +402,18 @@ class InterfaceLogevents
// Members
elseif ($action == 'MEMBER_CREATE')
{
- $this->date=time();
+ dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+ $langs->load("other");
+ $langs->load("members");
+
+ $this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("NewMemberCreated",$object->id);
- $this->desc=$langs->transnoentities("NewMemberCreated",$object->id);
- }
+ $this->texte=$langs->transnoentities("NewMemberCreated",$object->ref);
+ $this->desc=$langs->transnoentities("NewMemberCreated",$object->ref);
+ $this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
+ $this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
+ $this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
+ }
elseif ($action == 'MEMBER_VALIDATE')
{
dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
@@ -415,8 +422,8 @@ class InterfaceLogevents
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberValidatedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberValidatedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberValidatedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberValidatedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -429,8 +436,8 @@ class InterfaceLogevents
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberSubscriptionInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberSubscriptionInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Amount").': '.$object->last_subscription_amount;
@@ -445,8 +452,8 @@ class InterfaceLogevents
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberModifiedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberModifiedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberModifiedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberModifiedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -459,8 +466,8 @@ class InterfaceLogevents
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberResiliatedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberResiliatedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberResiliatedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberResiliatedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -473,8 +480,8 @@ class InterfaceLogevents
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberDeletedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberDeletedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberDeletedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberDeletedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
diff --git a/htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php b/htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php
index a1f93603bcc..06e82592435 100644
--- a/htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php
+++ b/htdocs/includes/triggers/interface_modAgenda_ActionsAuto.class.php
@@ -104,8 +104,8 @@ class InterfaceActionsAuto
// Following properties must be filled:
// $object->actiontypecode;
- // $object->actionmsg (label)
- // $object->actionmsg2 (note)
+ // $object->actionmsg (note, long text)
+ // $object->actionmsg2 (label, short text)
// $object->sendtoid
// $object->socid
// Optionnal:
@@ -328,7 +328,87 @@ class InterfaceActionsAuto
$ok=1;
}
-
+ // Members
+ elseif ($action == 'MEMBER_VALIDATE')
+ {
+ dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+ $langs->load("other");
+ $langs->load("members");
+ $langs->load("agenda");
+
+ $object->actiontypecode='AC_OTH';
+ $object->actionmsg2=$langs->transnoentities("MemberValidatedInDolibarr",$object->ref);
+ $object->actionmsg=$langs->transnoentities("MemberValidatedInDolibarr",$object->ref);
+ $object->actionmsg.="\n".$langs->transnoentities("Member").': '.$object->fullname;
+ $object->actionmsg.="\n".$langs->transnoentities("Type").': '.$object->type;
+ $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
+
+ $object->sendtoid=0;
+ $object->facid=0; // Supplier invoice not yet supported
+ $object->orderrowid=$object->propalrowid=0;
+ $ok=1;
+ }
+ elseif ($action == 'MEMBER_SUBSCRIPTION')
+ {
+ dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+ $langs->load("other");
+ $langs->load("members");
+ $langs->load("agenda");
+
+ $object->actiontypecode='AC_OTH';
+ $object->actionmsg2=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref);
+ $object->actionmsg=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref);
+ $object->actionmsg.="\n".$langs->transnoentities("Member").': '.$object->fullname;
+ $object->actionmsg.="\n".$langs->transnoentities("Type").': '.$object->type;
+ $object->actionmsg.="\n".$langs->transnoentities("Amount").': '.$object->last_subscription_amount;
+ $object->actionmsg.="\n".$langs->transnoentities("Period").': '.dolibarr_print_date($object->last_subscription_date_start,'day').' - '.dolibarr_print_date($object->last_subscription_date_end,'day');
+ $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
+
+ $object->sendtoid=0;
+ $object->facid=$object->orderrowid=$object->propalrowid=0;
+ $ok=1;
+ }
+ elseif ($action == 'MEMBER_MODIFY')
+ {
+ dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+ }
+ elseif ($action == 'MEMBER_RESILIATE')
+ {
+ dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+ $langs->load("other");
+ $langs->load("members");
+ $langs->load("agenda");
+
+ $object->actiontypecode='AC_OTH';
+ $object->actionmsg2=$langs->transnoentities("MemberResiliatedInDolibarr",$object->ref);
+ $object->actionmsg=$langs->transnoentities("MemberResiliatedInDolibarr",$object->ref);
+ $object->actionmsg.="\n".$langs->transnoentities("Member").': '.$object->fullname;
+ $object->actionmsg.="\n".$langs->transnoentities("Type").': '.$object->type;
+ $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
+
+ $object->sendtoid=0;
+ $object->facid=$object->orderrowid=$object->propalrowid=0;
+ $ok=1;
+ }
+ elseif ($action == 'MEMBER_DELETE')
+ {
+ dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+ $langs->load("other");
+ $langs->load("members");
+ $langs->load("agenda");
+
+ $object->actiontypecode='AC_OTH';
+ $object->actionmsg2=$langs->transnoentities("MemberDeletedInDolibarr",$object->ref);
+ $object->actionmsg=$langs->transnoentities("MemberDeletedInDolibarr",$object->ref);
+ $object->actionmsg.="\n".$langs->transnoentities("Member").': '.$object->fullname;
+ $object->actionmsg.="\n".$langs->transnoentities("Type").': '.$object->type;
+ $object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
+
+ $object->sendtoid=0;
+ $object->facid=$object->orderrowid=$object->propalrowid=0;
+ $ok=1;
+ }
+
// If not found
/*
else
diff --git a/htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php b/htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php
index 5a16b6eb278..85b4be52880 100644
--- a/htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php
+++ b/htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php
@@ -101,6 +101,12 @@ class InterfaceLdapsynchro
if (! $conf->ldap->enabled) return 0; // Module non actif
+ if (! function_exists('ldap_connect'))
+ {
+ dolibarr_syslog("Warning, module LDAP is enabled but LDAP functions not available in this PHP", LOG_WARNING);
+ return 0;
+ }
+
// Users
if ($action == 'USER_CREATE')
{
diff --git a/htdocs/includes/triggers/interface_modPhenix_Phenixsynchro.class.php b/htdocs/includes/triggers/interface_modPhenix_Phenixsynchro.class.php
index cd7c16f2b04..1e2037617e8 100644
--- a/htdocs/includes/triggers/interface_modPhenix_Phenixsynchro.class.php
+++ b/htdocs/includes/triggers/interface_modPhenix_Phenixsynchro.class.php
@@ -288,7 +288,18 @@ class InterfacePhenixsynchro
// Members
elseif ($action == 'MEMBER_CREATE')
{
- }
+ dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+ $langs->load("other");
+ $langs->load("members");
+
+ $this->date=time();
+ $this->duree=0;
+ $this->texte=$langs->transnoentities("NewMemberCreated",$object->ref);
+ $this->desc=$langs->transnoentities("NewMemberCreated",$object->ref);
+ $this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
+ $this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
+ $this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
+ }
elseif ($action == 'MEMBER_VALIDATE')
{
dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
@@ -297,8 +308,8 @@ class InterfacePhenixsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberValidatedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberValidatedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberValidatedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberValidatedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -311,8 +322,8 @@ class InterfacePhenixsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberSubscriptionInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberSubscriptionInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Amount").': '.$object->last_subscription_amount;
@@ -327,8 +338,8 @@ class InterfacePhenixsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberModifiedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberModifiedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberModifiedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberModifiedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -341,8 +352,8 @@ class InterfacePhenixsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberResiliatedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberResiliatedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberResiliatedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberResiliatedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -355,8 +366,8 @@ class InterfacePhenixsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberDeletedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberDeletedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberDeletedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberDeletedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
diff --git a/htdocs/includes/triggers/interface_modWebcalendar_Webcalsynchro.class.php b/htdocs/includes/triggers/interface_modWebcalendar_Webcalsynchro.class.php
index cfe2aa5bd3f..a49bcbba910 100644
--- a/htdocs/includes/triggers/interface_modWebcalendar_Webcalsynchro.class.php
+++ b/htdocs/includes/triggers/interface_modWebcalendar_Webcalsynchro.class.php
@@ -265,7 +265,18 @@ class InterfaceWebcalsynchro
// Members
elseif ($action == 'MEMBER_CREATE')
{
- }
+ dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+ $langs->load("other");
+ $langs->load("members");
+
+ $this->date=time();
+ $this->duree=0;
+ $this->texte=$langs->transnoentities("NewMemberCreated",$object->ref);
+ $this->desc=$langs->transnoentities("NewMemberCreated",$object->ref);
+ $this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
+ $this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
+ $this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
+ }
elseif ($action == 'MEMBER_VALIDATE')
{
dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
@@ -274,8 +285,8 @@ class InterfaceWebcalsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberValidatedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberValidatedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberValidatedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberValidatedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -288,8 +299,8 @@ class InterfaceWebcalsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberSubscriptionInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberSubscriptionInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Amount").': '.$object->last_subscription_amount;
@@ -304,8 +315,8 @@ class InterfaceWebcalsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberModifiedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberModifiedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberModifiedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberModifiedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -318,8 +329,8 @@ class InterfaceWebcalsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberResiliatedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberResiliatedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberResiliatedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberResiliatedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
@@ -332,8 +343,8 @@ class InterfaceWebcalsynchro
$this->date=time();
$this->duree=0;
- $this->texte=$langs->transnoentities("MemberDeletedInDolibarr",$object->id);
- $this->desc=$langs->transnoentities("MemberDeletedInDolibarr",$object->id);
+ $this->texte=$langs->transnoentities("MemberDeletedInDolibarr",$object->ref);
+ $this->desc=$langs->transnoentities("MemberDeletedInDolibarr",$object->ref);
$this->desc.="\n".$langs->transnoentities("Member").': '.$object->fullname;
$this->desc.="\n".$langs->transnoentities("Type").': '.$object->type;
$this->desc.="\n".$langs->transnoentities("Author").': '.$user->login;
diff --git a/htdocs/interfaces.class.php b/htdocs/interfaces.class.php
index 1cee0125c1c..da19f9edc26 100644
--- a/htdocs/interfaces.class.php
+++ b/htdocs/interfaces.class.php
@@ -95,7 +95,8 @@ class Interfaces
dolibarr_syslog("Interfaces::run_triggers Triggers for file '".$file."' need module to be enabled",LOG_INFO);
continue;
}
-dolibarr_syslog("Interfaces::run_triggers Launch triggers for file '".$file."'",LOG_INFO);
+
+ dolibarr_syslog("Interfaces::run_triggers Launch triggers for file '".$file."'",LOG_INFO);
include_once($this->dir."/".$file);
$objMod = new $modName($this->db);
if ($objMod)
diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang
index 19af87ba500..ae788067c15 100644
--- a/htdocs/langs/en_US/other.lang
+++ b/htdocs/langs/en_US/other.lang
@@ -118,6 +118,7 @@ SupplierPaymentDoneInDolibarr=Supplier payment %s done in Dolibarr
MemberValidatedInDolibarr=Member %s validated in Dolibarr
MemberResiliatedInDolibarr=Member %s resiliated in Dolibarr
MemberDeletedInDolibarr=Member %s deleted from Dolibarr
+MemberSubscriptionAddedInDolibarr=Subscription for member %s added in Dolibarr
##### Export #####
ExportsArea=Exports area
AvailableFormats=Available formats
diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang
index d35933c78d5..6ca19a4deef 100644
--- a/htdocs/langs/fr_FR/other.lang
+++ b/htdocs/langs/fr_FR/other.lang
@@ -120,6 +120,7 @@ SupplierPaymentDoneInDolibarr=Paiement fournisseur %s dans Dolibarr
MemberValidatedInDolibarr=Adhérent %s validé dans Dolibarr
MemberResiliatedInDolibarr=Adhérent %s résilié dans Dolibarr
MemberDeletedInDolibarr=Adhérent %s supprimé de Dolibarr
+MemberSubscriptionAddedInDolibarr=Souscription adhérent %s ajoutée dans Dolibarr
##### Export #####
ExportsArea=Espace exports
AvailableFormats=Formats disponibles
|