diff --git a/htdocs/adherents/adherent.class.php b/htdocs/adherents/adherent.class.php index 22d03731697d8d7c1438babc0d3f10f6c657643d..16419253930e7739bb41c394a27f05d74aedd38b 100644 --- a/htdocs/adherents/adherent.class.php +++ b/htdocs/adherents/adherent.class.php @@ -85,6 +85,7 @@ class Adherent var $array_options; var $error; + var $errors=array(); /** @@ -364,25 +365,25 @@ class Adherent return -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_CREATE',$this,$user,$langs,$conf); - if ($result < 0) $error++; + if ($result < 0) $this->errors=$interface->errors; // Fin appel triggers - if ($error) + if (sizeof($this->errors)) { - $this->error=$interface->error; $this->db->rollback(); return -1; } else { $this->db->commit(); + return $this->id; } - - return $this->id; } else { @@ -486,11 +487,13 @@ class Adherent if (! $notrigger) { - // Appel des triggers + $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++; + if ($result < 0) $this->errors=$interface->errors; // Fin appel triggers } @@ -503,7 +506,7 @@ class Adherent /** \brief Fonction qui supprime l'adh�rent et les donn�es associ�es \param rowid - \return int <0 si KO, >0 si OK + \return int <0 si KO, 0 = rien a effacer, >0 si OK */ function delete($rowid) { @@ -522,38 +525,50 @@ class Adherent $resql=$this->db->query( $sql); if ($resql) { - - } - else - { - dolibarr_print_error($this->db); - return -1; - } - - $sql = "DELETE FROM ".MAIN_DB_PREFIX."adherent WHERE rowid = ".$rowid; - dolibarr_syslog("Adherent.class::delete sql=".$sql); - $resql=$this->db->query($sql); - if ($resql) - { - if ($this->db->affected_rows($resql)) + $sql = "DELETE FROM ".MAIN_DB_PREFIX."adherent WHERE rowid = ".$rowid; + dolibarr_syslog("Adherent.class::delete sql=".$sql); + $resql=$this->db->query($sql); + if ($resql) { - // 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); - if ($result < 0) $error++; - // Fin appel triggers + if ($this->db->affected_rows($resql)) + { + $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); + if ($result < 0) $this->errors=$interface->errors; + // Fin appel triggers + + $this->db->commit(); + return 1; + } + else + { + // Rien a effacer + $this->db->rollback(); + return 0; + } + } + else + { + $this->error=$this->db->error(); + $this->db->rollback(); + return -3; } } else { - dolibarr_print_error($this->db); - return -1; + $this->error=$this->db->error(); + $this->db->rollback(); + return -2; } } else { - dolibarr_print_error($this->db); + $this->error=$this->db->error(); + $this->db->rollback(); return -1; } @@ -824,11 +839,18 @@ class Adherent } } + // Ajout de propri�t�s pour le triggers + $this->last_subscription_date=$dateop; + $this->last_subscription_date_start=$date; + $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++; + if ($result < 0) $this->errors=$interface->errors; // Fin appel triggers $this->db->commit(); @@ -869,11 +891,13 @@ class Adherent $result = $this->db->query($sql); if ($result) { + $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++; + if ($result < 0) $this->errors=$interface->errors; // Fin appel triggers $this->db->commit(); @@ -907,10 +931,13 @@ class Adherent $result = $this->db->query($sql); if ($result) { + $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) $this->errors=$interface->errors; // Fin appel triggers $this->db->commit(); diff --git a/htdocs/adherents/fiche.php b/htdocs/adherents/fiche.php index f7e50ac93671f9b47c4f528c9570c640f7793956..e840b1d5a6b97b34a884ac3231b53c66d33e985b 100644 --- a/htdocs/adherents/fiche.php +++ b/htdocs/adherents/fiche.php @@ -62,7 +62,11 @@ if ($_POST["action"] == 'confirm_sendinfo' && $_POST["confirm"] == 'yes') { $adh->id = $rowid; $adh->fetch($rowid); - $adh->send_an_email($adh->email,"Voici le contenu de votre fiche\n\n%INFOS%\n\n","Contenu de votre fiche adherent"); + + if ($adh->email) + { + $result=$adh->send_an_email($adh->email,"Voici le contenu de votre fiche\n\n%INFOS%\n\n","Contenu de votre fiche adherent"); + } } if ($_POST["action"] == 'cotisation') @@ -115,7 +119,7 @@ if ($_POST["action"] == 'cotisation') $db->commit(); // Envoi mail - if ($conf->global->ADHERENT_MAIL_COTIS) + if ($adh->email && $conf->global->ADHERENT_MAIL_COTIS) { $adh->send_an_email($adh->email,$conf->global->ADHERENT_MAIL_COTIS,$conf->global->ADHERENT_MAIL_COTIS_SUBJECT); } @@ -183,14 +187,27 @@ if ($_REQUEST["action"] == 'update' && ! $_POST["cancel"]) $adh->array_options[$key]=addslashes($_POST[$key]); } } - if ($adh->update($user,0) >= 0) + $result=$adh->update($user,0); + if ($result >= 0 && ! sizeof($adh->errors)) { Header("Location: fiche.php?rowid=".$adh->id); exit; } else { - $errmsg=$adh->error; + if ($adh->error) + { + $errmsg=$adh->error; + } + else + { + + foreach($adh->errors as $error) + { + if ($errmsg) $errmsg.='<br>'; + $errmsg.=$error; + } + } $action=''; } } @@ -363,21 +380,50 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') if ($_POST["action"] == 'confirm_valid' && $_POST["confirm"] == 'yes') { $adh->id=$rowid; - $adh->validate($user); $adh->fetch($rowid); - + $adht = new AdherentType($db); $adht->fetch($adh->typeid); - if (isset($adht->mail_valid) && $adht->mail_valid) - { - $result=$adh->send_an_email($adh->email,$adht->mail_valid,$conf->adherent->email_valid_subject); - } - else - { - $result=$adh->send_an_email($adh->email,$conf->global->ADHERENT_MAIL_VALID,$conf->global->ADHERENT_MAIL_VALID_SUBJECT); - } - + $result=$adh->validate($user); + if ($result >= 0 && ! sizeof($adh->errors)) + { + + } + else + { + if ($adh->error) + { + $errmsg=$adh->error; + } + else + { + foreach($adh->errors as $error) + { + if ($errmsg) $errmsg.='<br>'; + $errmsg.=$error; + } + } + $action=''; + } + + // Envoi mail validation (selon param du type adherent sinon generique) + if ($adh->email) + { + if (isset($adht->mail_valid) && $adht->mail_valid) + { + $result=$adh->send_an_email($adh->email,$adht->mail_valid,$conf->adherent->email_valid_subject); + } + else + { + $result=$adh->send_an_email($adh->email,$conf->global->ADHERENT_MAIL_VALID,$conf->global->ADHERENT_MAIL_VALID_SUBJECT); + } + if ($result < 0) + { + $errmsg.=$adh->error; + } + } + // Rajoute l'utilisateur dans les divers abonnements (mailman, spip, etc...) if ($adh->add_to_abo($adht) < 0) { @@ -396,8 +442,11 @@ if ($_POST["action"] == 'confirm_resign' && $_POST["confirm"] == 'yes') $adht = new AdherentType($db); $adht->fetch($adh->typeid); - $adh->send_an_email($adh->email,$conf->adherent->email_resil,$conf->adherent->email_resil_subject); - + if ($adh->email) + { + $result=$adh->send_an_email($adh->email,$conf->adherent->email_resil,$conf->adherent->email_resil_subject); + } + // supprime l'utilisateur des divers abonnements .. if (! $adh->del_to_abo($adht)) { diff --git a/htdocs/admin/webcalendar.php b/htdocs/admin/webcalendar.php index db12326b537e822cbe94e4ffc7e97596ddeb1d46..b2de6d0c1a5b67fff2e45604afc1e4189ff2644e 100644 --- a/htdocs/admin/webcalendar.php +++ b/htdocs/admin/webcalendar.php @@ -1,7 +1,7 @@ <?php /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> * Copyright (C) 2003 �ric Seigne <erics@rycks.com> - * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) 2004-2007 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org> * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> * @@ -63,6 +63,7 @@ if ($actionsave) $i+=dolibarr_set_const($db,'PHPWEBCALENDAR_PROPALSTATUS',trim($_POST["phpwebcalendar_propalstatus"]),'chaine',0); $i+=dolibarr_set_const($db,'PHPWEBCALENDAR_CONTRACTSTATUS',trim($_POST["phpwebcalendar_contractstatus"]),'chaine',0); $i+=dolibarr_set_const($db,'PHPWEBCALENDAR_BILLSTATUS',trim($_POST["phpwebcalendar_billstatus"]),'chaine',0); + $i+=dolibarr_set_const($db,'PHPWEBCALENDAR_MEMBERSTATUS',trim($_POST["phpwebcalendar_memberstatus"]),'chaine',0); if ($i >= 9) { @@ -259,6 +260,18 @@ if ($conf->facture->enabled) print '</select>'; print '</td></tr>'; } +if ($conf->adherent->enabled) +{ + $var=!$var; + print '<tr '.$bc[$var].'>'; + print '<td>'.$langs->trans("WebCalAddEventOnStatusMember").'</td>'; + print '<td>'; + print '<select name="phpwebcalendar_memberstatus" class="flat">'; + print '<option value="always"'.($conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='always'?' selected="true"':'').'>'.$langs->trans("WebCalAllways").'</option>'; + print '<option value="never"'.(! $conf->global->PHPWEBCALENDAR_MEMBERSTATUS || $conf->global->PHPWEBCALENDAR_MEMBERSTATUS=='never'?' selected="true"':'').'>'.$langs->trans("WebCalNever").'</option>'; + print '</select>'; + print '</td></tr>'; +} print '</table>'; diff --git a/htdocs/comm/action/fiche.php b/htdocs/comm/action/fiche.php index f94dfec43690b8987b5600e24acda60e20d14387..cec21712ec00ad093e5213285e4a340a2af3ce5d 100644 --- a/htdocs/comm/action/fiche.php +++ b/htdocs/comm/action/fiche.php @@ -160,7 +160,7 @@ if ($_POST["action"] == 'add_action') $societe->fetch($_REQUEST["socid"]); $actioncomm->societe = $societe; } - if ($_POST["todo_webcal"] == 'on') $actioncomm->use_webcal=1; + if ($_POST["add_webcal"] == 'on') $actioncomm->use_webcal=1; // On cr�e l'action $idaction=$actioncomm->add($user); @@ -800,7 +800,7 @@ function add_row_for_webcal_link() if (! $user->webcal_login) { print '<tr><td width="25%" nowrap>'.$langs->trans("AddCalendarEntry").'</td>'; - print '<td><input type="checkbox" disabled name="todo_webcal">'; + print '<td><input type="checkbox" disabled name="add_webcal">'; print ' '.$langs->transnoentities("ErrorWebcalLoginNotDefined","<a href=\"".DOL_URL_ROOT."/user/fiche.php?id=".$user->id."\">".$user->login."</a>"); print '</td>'; print '</tr>'; @@ -810,12 +810,12 @@ function add_row_for_webcal_link() { if ($conf->global->PHPWEBCALENDAR_SYNCRO == 'always') { - print '<input type="hidden" name="todo_webcal" value="on">'; + print '<input type="hidden" name="add_webcal" value="on">'; } else { print '<tr><td width="25%" nowrap>'.$langs->trans("AddCalendarEntry").'</td>'; - print '<td><input type="checkbox" name="todo_webcal"'.(($conf->global->PHPWEBCALENDAR_SYNCRO=='always' || $conf->global->PHPWEBCALENDAR_SYNCRO=='yesbydefault')?' checked':'').'></td>'; + print '<td><input type="checkbox" name="add_webcal"'.(($conf->global->PHPWEBCALENDAR_SYNCRO=='always' || $conf->global->PHPWEBCALENDAR_SYNCRO=='yesbydefault')?' checked':'').'></td>'; print '</tr>'; $nbtr++; } diff --git a/htdocs/includes/triggers/interface_webcal.class.php b/htdocs/includes/triggers/interface_webcal.class.php index d2ae8d290573d32648b8769f33b49e0981d84f53..dafeb5ff58642c998c156ef6aba86ea02a9bb0f0 100644 --- a/htdocs/includes/triggers/interface_webcal.class.php +++ b/htdocs/includes/triggers/interface_webcal.class.php @@ -1,5 +1,5 @@ <?php -/* Copyright (C) 2005 Laurent Destailleur <eldy@users.sourceforge.net> +/* Copyright (C) 2005-2007 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 @@ -141,6 +141,7 @@ class InterfaceWebCal $this->desc=$libellecal; } + // Third parties elseif ($action == 'COMPANY_CREATE') { dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); @@ -157,6 +158,7 @@ class InterfaceWebCal $this->desc.="\n".$langs->trans("Author").': '.$user->code; } + // Contracts elseif ($action == 'CONTRACT_VALIDATE') { dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); @@ -191,6 +193,8 @@ class InterfaceWebCal $this->desc=$langs->trans("ContractClosedInDolibarr",$object->ref); $this->desc.="\n".$langs->trans("Author").': '.$user->code; } + + // Proposals elseif ($action == 'PROPAL_VALIDATE') { dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); @@ -225,7 +229,8 @@ class InterfaceWebCal $this->desc.="\n".$langs->trans("Author").': '.$user->code; } - elseif ($action == 'BILL_VALIDATE') + // Invoices + elseif ($action == 'BILL_VALIDATE') { dolibarr_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); $langs->load("other"); @@ -258,6 +263,7 @@ class InterfaceWebCal $this->desc=$langs->trans("InvoiceCanceledInDolibarr",$object->ref); $this->desc.="\n".$langs->trans("Author").': '.$user->code; } + // Payments elseif ($action == 'PAYMENT_CUSTOMER_CREATE') { @@ -283,6 +289,70 @@ class InterfaceWebCal $this->desc.="\n".$langs->trans("AmountTTC").': '.$object->total; $this->desc.="\n".$langs->trans("Author").': '.$user->code; } + + // Members + elseif ($action == 'MEMBER_CREATE') + { + } + elseif ($action == 'MEMBER_VALIDATE') + { + 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->trans("MemberValidatedInDolibarr",$object->id); + $this->desc=$langs->trans("MemberValidatedInDolibarr",$object->id); + $this->desc.="\n".$langs->trans("Name").': '.$object->fullname; + $this->desc.="\n".$langs->trans("Type").': '.$object->type; + $this->desc.="\n".$langs->trans("Author").': '.$user->code; + } + elseif ($action == 'MEMBER_SUBSCRIPTION') + { + 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->trans("MemberSubscriptionInDolibarr",$object->id); + $this->desc=$langs->trans("MemberSubscriptionInDolibarr",$object->id); + $this->desc.="\n".$langs->trans("Name").': '.$object->fullname; + $this->desc.="\n".$langs->trans("Type").': '.$object->type; + $this->desc.="\n".$langs->trans("Amount").': '.$object->last_subscription_amount; + $this->desc.="\n".$langs->trans("Period").': '.dolibarr_print_date($object->last_subscription_date_start,'day').' - '.dolibarr_print_date($object->last_subscription_date_end,'day'); + $this->desc.="\n".$langs->trans("Author").': '.$user->code; + } + elseif ($action == 'MEMBER_RESILIATE') + { + 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->trans("MemberResiliatedInDolibarr",$object->id); + $this->desc=$langs->trans("MemberResiliatedInDolibarr",$object->id); + $this->desc.="\n".$langs->trans("Name").': '.$object->fullname; + $this->desc.="\n".$langs->trans("Type").': '.$object->type; + $this->desc.="\n".$langs->trans("Author").': '.$user->code; + } + elseif ($action == 'MEMBER_DELETE') + { + 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->trans("MemberDeletedInDolibarr",$object->id); + $this->desc=$langs->trans("MemberDeletedInDolibarr",$object->id); + $this->desc.="\n".$langs->trans("Name").': '.$object->fullname; + $this->desc.="\n".$langs->trans("Type").': '.$object->type; + $this->desc.="\n".$langs->trans("Author").': '.$user->code; + } + // If not found /* else @@ -301,11 +371,11 @@ class InterfaceWebCal if (! $webcal->localdb->ok) { // Si la creation de l'objet n'as pu se connecter - $error ="Dolibarr n'a pu se connecter � 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 �t� ignor�e."; + $error ="Dolibarr n'a pu se connecter � la base Webcalendar avec les identifiants d�finis (host=".$conf->webcal->db->host." dbname=".$conf->webcal->db->name." user=".$conf->webcal->db->user."). "; + $error.="La mise a jour Webcalendar a �t� ignor�e."; $this->error=$error; - dolibarr_syslog("interface_webcal.class.php: ".$this->error); + //dolibarr_syslog("interface_webcal.class.php: ".$this->error); return -1; } @@ -321,8 +391,12 @@ class InterfaceWebCal } else { - $this->error="Echec insertion dans webcal: ".$webcal->error; - return -1; + $error ="Echec insertion dans webcal: ".$webcal->error." "; + $error.="La mise a jour Webcalendar a �t� ignor�e."; + $this->error=$error; + + //dolibarr_syslog("interface_webcal.class.php: ".$this->error); + return -2; } } diff --git a/htdocs/interfaces.class.php b/htdocs/interfaces.class.php index fcbc6b7f76d99effd51ec1ec128955496ae3bf25..c750f8048e713b2ea20a22d86e507ff86f98f5f6 100644 --- a/htdocs/interfaces.class.php +++ b/htdocs/interfaces.class.php @@ -35,7 +35,8 @@ class Interfaces { - var $dir; // Repertoire contenant les fichiers triggers + var $dir; // Directory with all trigger files + var $errors=array(); // Array for errors /** * \brief Constructeur. @@ -49,20 +50,20 @@ class Interfaces /** * \brief Fonction appel�e lors du d�clenchement d'un �v�nement Dolibarr. - * Cette fonction d�clenche tous les triggers trouv�s + * Cette fonction d�clenche tous les triggers trouv�s actifs. * \param action Code de l'evenement * \param object Objet concern * \param user Objet user * \param lang Objet lang * \param conf Objet conf - * \return int Nbre de triggers d�clench�s si pas d'erreurs. Nb en erreur sinon. + * \return int Nb triggers d�clench�s si pas d'erreurs, -Nb en erreur sinon. */ function run_triggers($action,$object,$user,$lang,$conf) { $handle=opendir($this->dir); $modules = array(); - $nbok = $nbko = 0; + $nbtotal = $nbok = $nbko = 0; while (($file = readdir($handle))!==false) { @@ -83,13 +84,24 @@ class Interfaces if ($objMod) { $modules[$i] = $modName; - if ($objMod->run_trigger($action,$object,$user,$lang,$conf) > 0) + $result=$objMod->run_trigger($action,$object,$user,$lang,$conf); + if ($result > 0) { + // Action OK + $nbtotal++; $nbok++; } - else + if ($result == 0) { + // Aucune action faite + $nbtotal++; + } + if ($result < 0) + { + // Action KO + $nbtotal++; $nbko++; + $this->errors[]=$objMod->error; } $i++; } @@ -97,8 +109,15 @@ class Interfaces } } } - if ($nbko) return $nbko; - return $nbok; + if ($nbko) + { + dolibarr_syslog("Interfaces::run_triggers Found: ".$nbtotal.", Done: ".$nbok.", Failed: ".$nbko); + return -$nbko; + } + else + { + return $nbok; + } } } ?> diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 146549602259ae9c746af1a50be6c7017df41203..a62e02e4bbc6f1f9c64946f77816479f33cd88d1 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -458,9 +458,10 @@ WebCalTestKo2=Connection to server '%s' with user '%s' failed. WebCalErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be a Webcalendar database. WebCalAddEventOnCreateActions=Add calendar event on actions create WebCalAddEventOnCreateCompany=Add calendar event on companies create -WebCalAddEventOnStatusPropal=Add calendar event on commercial proposal status change -WebCalAddEventOnStatusContract=Add calendar event on contract status change -WebCalAddEventOnStatusBill=Add calendar event on bill status change +WebCalAddEventOnStatusPropal=Add calendar event on commercial proposals status change +WebCalAddEventOnStatusContract=Add calendar event on contracts status change +WebCalAddEventOnStatusBill=Add calendar event on bills status change +WebCalAddEventOnStatusMember=Add calendar event on members status change ##### Invoices ##### BillsSetup=Invoices module setup BillsDate=Invoices date diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang index 6a397f6f1e1d87ac75a5cf0399bbec25b3c14529..002fc6d079668176dddd36a04ad1c414cb20117c 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -80,6 +80,9 @@ InvoiceCanceledInDolibarr=Invoice %s canceled in Dolibarr PaymentDoneInDolibarr=Payment %s done in Dolibarr CustomerPaymentDoneInDolibarr=Customer payment %s done in Dolibarr 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 ##### Export ##### ExportsArea=Exports area AvailableFormats=Available formats diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index ab5e5e345c94528e452c2e1c924392c7b419cadc..5d9fa8d7dfb570c9445e90d1e2ab036a0f8d7c4b 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -460,6 +460,7 @@ WebCalAddEventOnCreateCompany=Ajouter WebCalAddEventOnStatusPropal=Ajouter �v�nement dans calendrier sur changement de statut des propositions commerciales WebCalAddEventOnStatusContract=Ajouter �v�nement dans calendrier sur changement de statut des contrats WebCalAddEventOnStatusBill=Ajouter �v�nement dans calendrier sur changement de statut des factures +WebCalAddEventOnStatusMember=Ajouter �v�nement dans calendrier sur changement de statut des adh�rents ##### Invoices ##### BillsSetup=Configuration du module Factures BillsDate=Date des factures diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 2dcf00ebb5c502da464408247d76783c7b1cd80a..6252269e37b6fa0b672c64a2a8fdaf21ff473b69 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -80,6 +80,9 @@ InvoiceCanceledInDolibarr=Facture %s annul PaymentDoneInDolibarr=Paiement %s r�alis� dans Dolibarr CustomerPaymentDoneInDolibarr=Paiement client %s dans Dolibarr 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 ##### Export ##### ExportsArea=Espace exports AvailableFormats=Formats disponibles diff --git a/htdocs/lib/webcal.class.php b/htdocs/lib/webcal.class.php index 22e6cb16cac03b200c54812d6276624884527519..2d3b81d788cb6f2acbbb50fdcb6e94627c859b32 100644 --- a/htdocs/lib/webcal.class.php +++ b/htdocs/lib/webcal.class.php @@ -78,11 +78,14 @@ class Webcal { { global $langs; - dolibarr_syslog("Webcal::add user=$user"); + dolibarr_syslog("Webcal::add user=".$user); // Test si login webcal d�fini pour le user - if (! $user->webcal_login) { - $this->error=$langs->trans("ErrorWebcalLoginNotDefined","<a href=\"".DOL_URL_ROOT."/user/fiche.php?id=".$user->id."\">".$user->login."</a>"); + if (! $user->webcal_login) + { + $langs->load("other"); + $this->error=$langs->transnoentities("ErrorWebcalLoginNotDefined","<a href=\"".DOL_URL_ROOT."/user/fiche.php?id=".$user->id."\">".$user->login."</a>"); + dolibarr_syslog("Webcal::add ERROR ".$this->error); return -4; } @@ -109,12 +112,15 @@ class Webcal { $sql = "INSERT INTO webcal_entry (cal_id, cal_create_by,cal_date,cal_time,cal_mod_date, cal_mod_time,cal_duration,cal_priority,cal_type, cal_access, cal_name,cal_description)"; $sql.= " VALUES ($cal_id, '$cal_create_by', '$cal_date', '$cal_time', '$cal_mod_date', '$cal_mod_time', $cal_duration, $cal_priority, '$cal_type', '$cal_access', '$cal_name','$cal_description')"; - if ($this->localdb->query($sql)) + dolibarr_syslog("Webcal::add sql=".$sql); + $resql=$this->localdb->query($sql); + if ($resql) { $sql = "INSERT INTO webcal_entry_user (cal_id, cal_login, cal_status)"; $sql .= " VALUES ($cal_id, '$cal_create_by', 'A')"; - if ( $this->localdb->query($sql) ) + $resql=$this->localdb->query($sql); + if ($resql) { // OK $this->localdb->commit(); @@ -124,6 +130,7 @@ class Webcal { { $this->localdb->rollback(); $this->error = $this->localdb->error() . '<br>' .$sql; + dolibarr_syslog("Webcal::add ERROR ".$this->error); return -1; } } @@ -131,6 +138,7 @@ class Webcal { { $this->localdb->rollback(); $this->error = $this->localdb->error() . '<br>' .$sql; + dolibarr_syslog("Webcal::add ERROR ".$this->error); return -2; } } @@ -138,6 +146,7 @@ class Webcal { { $this->localdb->rollback(); $this->error = $this->localdb->error() . '<br>' .$sql; + dolibarr_syslog("Webcal::add ERROR ".$this->error); return -3; } }