diff --git a/htdocs/core/modules/mailings/contacts1.modules.php b/htdocs/core/modules/mailings/contacts1.modules.php index 5b7b04d95c1c6ca99ffb3496a94caa2dac6990c2..42e5863fa55cb58d20c8b872b48601a809c2cb2c 100755 --- a/htdocs/core/modules/mailings/contacts1.modules.php +++ b/htdocs/core/modules/mailings/contacts1.modules.php @@ -42,12 +42,25 @@ class mailing_contacts1 extends MailingTargets var $db; - function mailing_contacts1($DB) + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + function mailing_contacts1($db) { - $this->db=$DB; + $this->db=$db; } + /** + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests + */ function getSqlArrayForStats() { global $conf, $langs; diff --git a/htdocs/core/modules/mailings/contacts2.modules.php b/htdocs/core/modules/mailings/contacts2.modules.php index 17a1fd2a21794fb2db2110c8bcf5a8dfa28734fe..47c8b34a6edeb4d31675f67dc6e3505e9607374a 100755 --- a/htdocs/core/modules/mailings/contacts2.modules.php +++ b/htdocs/core/modules/mailings/contacts2.modules.php @@ -41,9 +41,14 @@ class mailing_contacts2 extends MailingTargets var $db; - function mailing_contacts2($DB) + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + function mailing_contacts2($db) { - $this->db=$DB; + $this->db=$db; } @@ -109,11 +114,12 @@ class mailing_contacts2 extends MailingTargets /** - * On the main mailing area, there is a box with statistics. - * If you want to add a line in this report you must provide an - * array of SQL request that returns two field: - * One called "label", One called "nb". - * @return array + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests */ function getSqlArrayForStats() { diff --git a/htdocs/core/modules/mailings/contacts3.modules.php b/htdocs/core/modules/mailings/contacts3.modules.php index b776bfdb796fd6ed82d54e2cba55c610810d48d5..7bbb2c0c9c5bdc556019dc3def0acbcdf108c063 100755 --- a/htdocs/core/modules/mailings/contacts3.modules.php +++ b/htdocs/core/modules/mailings/contacts3.modules.php @@ -41,12 +41,16 @@ class mailing_contacts3 extends MailingTargets var $db; - function mailing_contacts3($DB) + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + function mailing_contacts3($db) { - $this->db=$DB; + $this->db=$db; } - /** * \brief Renvoie url lien vers fiche de la source du destinataire du mailing * \return string Url lien @@ -114,13 +118,14 @@ class mailing_contacts3 extends MailingTargets /** - * On the main mailing area, there is a box with statistics. - * If you want to add a line in this report you must provide an - * array of SQL request that returns two field: - * One called "label", One called "nb". - * @return array + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests */ - function getSqlArrayForStats() + function getSqlArrayForStats() { global $conf, $langs; diff --git a/htdocs/core/modules/mailings/example.modules.php b/htdocs/core/modules/mailings/example.modules.php index d82611174d70c8d2cf8154bc45747bc6d7b82e07..c65a19e85928beb5cd2355cce6f69d333788d6a9 100644 --- a/htdocs/core/modules/mailings/example.modules.php +++ b/htdocs/core/modules/mailings/example.modules.php @@ -51,10 +51,11 @@ class mailing_example extends MailingTargets /** - * \brief This is the main function that returns the array of emails - * \param mailing_id Id of mailing. No need to use it. - * \param filterarray If you used the formFilter function. Empty otherwise. - * \return int <0 if error, number of emails added if ok + * This is the main function that returns the array of emails + * + * @param mailing_id Id of mailing. No need to use it. + * @param filterarray If you used the formFilter function. Empty otherwise. + * @return int <0 if error, number of emails added if ok */ function add_to_target($mailing_id,$filtersarray=array()) { @@ -77,11 +78,12 @@ class mailing_example extends MailingTargets /** - * \brief On the main mailing area, there is a box with statistics. - * If you want to add a line in this report you must provide an - * array of SQL request that returns two field: - * One called "label", One called "nb". - * \return array + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests */ function getSqlArrayForStats() { @@ -93,11 +95,12 @@ class mailing_example extends MailingTargets } - /* - * \brief Return here number of distinct emails returned by your selector. - * For example if this selector is used to extract 500 different - * emails from a text file, this function must return 500. - * \return int + /** + * Return here number of distinct emails returned by your selector. + * For example if this selector is used to extract 500 different + * emails from a text file, this function must return 500. + * + * @return int */ function getNbOfRecipients() { @@ -109,9 +112,10 @@ class mailing_example extends MailingTargets } /** - * \brief This is to add a form filter to provide variant of selector - * If used, the HTML select must be called "filter" - * \return string A html select zone + * This is to add a form filter to provide variant of selector + * If used, the HTML select must be called "filter" + * + * @return string A html select zone */ function formFilter() { @@ -123,9 +127,10 @@ class mailing_example extends MailingTargets /** - * \brief Can include an URL link on each record provided by selector - * shown on target page. - * \return string Url link + * Can include an URL link on each record provided by selector + * shown on target page. + * + * @return string Url link */ function url($id) { diff --git a/htdocs/core/modules/mailings/fraise.modules.php b/htdocs/core/modules/mailings/fraise.modules.php index 997522d669e0bf8ae9b34f388745e86d805168f8..381659c457a73ebc846a99dca77f3d0cf80835f1 100644 --- a/htdocs/core/modules/mailings/fraise.modules.php +++ b/htdocs/core/modules/mailings/fraise.modules.php @@ -47,13 +47,26 @@ class mailing_fraise extends MailingTargets var $db; - function mailing_fraise($DB) + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + function mailing_fraise($db) { - $this->db=$DB; + $this->db=$db; } - function getSqlArrayForStats() + /** + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests + */ + function getSqlArrayForStats() { global $langs; diff --git a/htdocs/core/modules/mailings/framboise.modules.php b/htdocs/core/modules/mailings/framboise.modules.php index 90f2cc773888c60c50968156993d3faac4e33b93..6d689d7b0811b9ed1a56eea4c5bb78d1af3ea18a 100644 --- a/htdocs/core/modules/mailings/framboise.modules.php +++ b/htdocs/core/modules/mailings/framboise.modules.php @@ -40,11 +40,11 @@ class mailing_framboise extends MailingTargets /** * Constructor * - * @param DoliDB $DB Database handler + * @param DoliDB $db Database handler */ - function mailing_framboise($DB) + function mailing_framboise($db) { - $this->db=$DB; + $this->db=$db; } @@ -117,12 +117,13 @@ class mailing_framboise extends MailingTargets } - /** - * \brief On the main mailing area, there is a box with statistics. - * If you want to add a line in this report you must provide an - * array of SQL request that returns two field: - * One called "label", One called "nb". - * \return array + /** + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests */ function getSqlArrayForStats() { diff --git a/htdocs/core/modules/mailings/modules_mailings.php b/htdocs/core/modules/mailings/modules_mailings.php index b58b2d94d0e1dd4d06aaab8c21bbb9402ca00140..1f468399cf5e5c88cf97d7fb5e674d7360c1b2f4 100644 --- a/htdocs/core/modules/mailings/modules_mailings.php +++ b/htdocs/core/modules/mailings/modules_mailings.php @@ -39,11 +39,11 @@ class MailingTargets // This can't be abstract as it is used for some method /** * Constructor * - * @param DoliDB $DB Database handler + * @param DoliDB $db Database handler */ - function MailingTargets($DB) + function MailingTargets($db) { - $this->db = $DB; + $this->db = $db; } /** diff --git a/htdocs/core/modules/mailings/peche.modules.php b/htdocs/core/modules/mailings/peche.modules.php index c0894917e17a183a14ad62e0e8ac9c526b903b33..09b5e472c410bab5711b000d37a0349941d9fefb 100644 --- a/htdocs/core/modules/mailings/peche.modules.php +++ b/htdocs/core/modules/mailings/peche.modules.php @@ -40,12 +40,25 @@ class mailing_peche extends MailingTargets var $db; - function mailing_peche($DB) + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + function mailing_peche($db) { - $this->db=$DB; + $this->db=$db; } + /** + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests + */ function getSqlArrayForStats() { global $langs; diff --git a/htdocs/core/modules/mailings/pomme.modules.php b/htdocs/core/modules/mailings/pomme.modules.php index 41dfe8514f3e0bf26b4b596cb173b66001b05c5f..560331725660385ec71835246a171fbabf7e4017 100644 --- a/htdocs/core/modules/mailings/pomme.modules.php +++ b/htdocs/core/modules/mailings/pomme.modules.php @@ -40,12 +40,25 @@ class mailing_pomme extends MailingTargets var $db; - function mailing_pomme($DB) + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + function mailing_pomme($db) { - $this->db=$DB; + $this->db=$db; } + /** + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests + */ function getSqlArrayForStats() { global $conf, $langs; diff --git a/htdocs/core/modules/mailings/thirdparties.modules.php b/htdocs/core/modules/mailings/thirdparties.modules.php index 45b6318272d80a75d2b79db80e3d80ac6ad116b7..afa6f987d354e655f1a629849f79c5986d034373 100755 --- a/htdocs/core/modules/mailings/thirdparties.modules.php +++ b/htdocs/core/modules/mailings/thirdparties.modules.php @@ -37,9 +37,14 @@ class mailing_thirdparties extends MailingTargets var $db; - function mailing_thirdparties($DB) + /** + * Constructor + * + * @param DoliDB $DB Database handler + */ + function mailing_thirdparties($db) { - $this->db=$DB; + $this->db=$db; } @@ -112,12 +117,13 @@ class mailing_thirdparties extends MailingTargets } - /** - * \brief On the main mailing area, there is a box with statistics. - * If you want to add a line in this report you must provide an - * array of SQL request that returns two field: - * One called "label", One called "nb". - * \return array + /** + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests */ function getSqlArrayForStats() { diff --git a/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php b/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php index abaee5eeca7a5b94968936e0bf459bf8077fd886..9e0304b027efa39a3ac1bd94d7f1d2dc17e2d629 100755 --- a/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php +++ b/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php @@ -1,12 +1,12 @@ <?php /* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net> * - * This file is an example to follow to add your own email selector inside - * the Dolibarr email tool. - * Follow instructions given in README file to know what to change to build - * your own emailing list selector. - * Code that need to be changed in this file are marked by "CHANGE THIS" tag. - */ +* This file is an example to follow to add your own email selector inside +* the Dolibarr email tool. +* Follow instructions given in README file to know what to change to build +* your own emailing list selector. +* Code that need to be changed in this file are marked by "CHANGE THIS" tag. +*/ /** * \file htdocs/core/modules/mailings/thirdparties_services_expired.modules.php @@ -23,71 +23,70 @@ require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php"); */ class mailing_thirdparties_services_expired extends MailingTargets { - var $name='DolibarrContractsLinesExpired'; - var $desc='Third parties with expired contract\'s lines'; - var $require_admin=0; - - var $require_module=array('contrat'); - var $picto='company'; - var $db; - var $arrayofproducts=array(); - - - /** - * Constructor - * - * @param DoliDB $DB Database handler - * @return mailing_thirdparties_services_expired - */ - function mailing_thirdparties_services_expired($DB) - { - $this->db=$DB; - - $this->arrayofproducts=array(); - - // List of services - $sql = "SELECT ref FROM ".MAIN_DB_PREFIX."product"; - $sql.= " WHERE fk_product_type = 1"; - $sql.= " ORDER BY ref"; - $result=$this->db->query($sql); - if ($result) - { - $num = $this->db->num_rows($result); - dol_syslog("dolibarr_services_expired.modules.php:mailing_dolibarr_services_expired ".$num." services found"); - - $i = 0; - while ($i < $num) - { - $obj = $this->db->fetch_object($result); - $i++; - $this->arrayofproducts[$i]=$obj->ref; - } - - } - else - { - dol_print_error($this->db); - } - } - - - /** - * \brief This is the main function that returns the array of emails - * \param mailing_id Id of mailing. No need to use it. - * \param filterarray If you used the formFilter function. Empty otherwise. - * \return int <0 if error, number of emails added if ok - */ - function add_to_target($mailing_id,$filtersarray=array()) - { - $target = array(); - - // ----- Your code start here ----- - - $cibles = array(); - $j = 0; - - $product=''; - foreach($filtersarray as $key) + var $name='DolibarrContractsLinesExpired'; + var $desc='Third parties with expired contract\'s lines'; + var $require_admin=0; + + var $require_module=array('contrat'); + var $picto='company'; + var $db; + var $arrayofproducts=array(); + + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + function mailing_thirdparties_services_expired($db) + { + $this->db=$db; + + $this->arrayofproducts=array(); + + // List of services + $sql = "SELECT ref FROM ".MAIN_DB_PREFIX."product"; + $sql.= " WHERE fk_product_type = 1"; + $sql.= " ORDER BY ref"; + $result=$this->db->query($sql); + if ($result) + { + $num = $this->db->num_rows($result); + dol_syslog("dolibarr_services_expired.modules.php:mailing_dolibarr_services_expired ".$num." services found"); + + $i = 0; + while ($i < $num) + { + $obj = $this->db->fetch_object($result); + $i++; + $this->arrayofproducts[$i]=$obj->ref; + } + + } + else + { + dol_print_error($this->db); + } + } + + + /** + * \brief This is the main function that returns the array of emails + * \param mailing_id Id of mailing. No need to use it. + * \param filterarray If you used the formFilter function. Empty otherwise. + * \return int <0 if error, number of emails added if ok + */ + function add_to_target($mailing_id,$filtersarray=array()) + { + $target = array(); + + // ----- Your code start here ----- + + $cibles = array(); + $j = 0; + + $product=''; + foreach($filtersarray as $key) { if ($key == '0') return "Error: You must choose a filter"; $product=$this->arrayofproducts[$key]; @@ -95,139 +94,140 @@ class mailing_thirdparties_services_expired extends MailingTargets $now=dol_now(); - // La requete doit retourner: id, email, name - $sql = " select s.rowid as id, s.email, s.nom as name, cd.rowid as cdid, cd.date_ouverture, cd.date_fin_validite, cd.fk_contrat"; - $sql.= " from ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c,"; - $sql.= " ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."product as p"; - $sql.= " where s.rowid = c.fk_soc AND cd.fk_contrat = c.rowid AND s.email != ''"; - $sql.= " AND cd.statut= 4 AND cd.fk_product=p.rowid AND p.ref = '".$product."'"; - $sql.= " AND cd.date_fin_validite < '".$this->db->idate($now)."'"; - $sql.= " ORDER BY s.email"; - - // Stocke destinataires dans cibles - $result=$this->db->query($sql); - if ($result) - { - $num = $this->db->num_rows($result); - $i = 0; - - dol_syslog(get_class($this)."::add_to_target ".$num." targets found"); - - $old = ''; - while ($i < $num) - { - $obj = $this->db->fetch_object($result); - if ($old <> $obj->email) - { - $cibles[$j] = array( + // La requete doit retourner: id, email, name + $sql = " select s.rowid as id, s.email, s.nom as name, cd.rowid as cdid, cd.date_ouverture, cd.date_fin_validite, cd.fk_contrat"; + $sql.= " from ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c,"; + $sql.= " ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."product as p"; + $sql.= " where s.rowid = c.fk_soc AND cd.fk_contrat = c.rowid AND s.email != ''"; + $sql.= " AND cd.statut= 4 AND cd.fk_product=p.rowid AND p.ref = '".$product."'"; + $sql.= " AND cd.date_fin_validite < '".$this->db->idate($now)."'"; + $sql.= " ORDER BY s.email"; + + // Stocke destinataires dans cibles + $result=$this->db->query($sql); + if ($result) + { + $num = $this->db->num_rows($result); + $i = 0; + + dol_syslog(get_class($this)."::add_to_target ".$num." targets found"); + + $old = ''; + while ($i < $num) + { + $obj = $this->db->fetch_object($result); + if ($old <> $obj->email) + { + $cibles[$j] = array( 'email' => $obj->email, 'name' => $obj->name, 'other' => - ('StartDate='.dol_print_date($this->db->jdate($obj->date_ouverture),'day')).';'. - ('EndDate='.dol_print_date($this->db->jdate($obj->date_fin_validite),'day')).';'. - ('Contract='.$obj->fk_contrat).';'. - ('ContactLine='.$obj->cdid), + ('StartDate='.dol_print_date($this->db->jdate($obj->date_ouverture),'day')).';'. + ('EndDate='.dol_print_date($this->db->jdate($obj->date_fin_validite),'day')).';'. + ('Contract='.$obj->fk_contrat).';'. + ('ContactLine='.$obj->cdid), 'source_url' => $this->url($obj->id), 'source_id' => $obj->id, 'source_type' => 'thirdparty' - ); - $old = $obj->email; - $j++; - } - - $i++; - } - } - else - { - dol_syslog($this->db->error()); - $this->error=$this->db->error(); - return -1; - } - - // ----- Your code end here ----- - - return parent::add_to_target($mailing_id, $cibles); - } - - - /** - * \brief On the main mailing area, there is a box with statistics. - * If you want to add a line in this report you must provide an - * array of SQL request that returns two field: - * One called "label", One called "nb". - * \return array - */ - function getSqlArrayForStats() - { - - //var $statssql=array(); - //$this->statssql[0]="SELECT field1 as label, count(distinct(email)) as nb FROM mytable WHERE email IS NOT NULL"; - - return array(); - } - - - /** - * \brief Return here number of distinct emails returned by your selector. - * For example if this selector is used to extract 500 different - * emails from a text file, this function must return 500. - * \return int - */ - function getNbOfRecipients($filter=1,$option='') - { + ); + $old = $obj->email; + $j++; + } + + $i++; + } + } + else + { + dol_syslog($this->db->error()); + $this->error=$this->db->error(); + return -1; + } + + // ----- Your code end here ----- + + return parent::add_to_target($mailing_id, $cibles); + } + + + /** + * On the main mailing area, there is a box with statistics. + * If you want to add a line in this report you must provide an + * array of SQL request that returns two field: + * One called "label", One called "nb". + * + * @return array Array with SQL requests + */ + function getSqlArrayForStats() + { + + //var $statssql=array(); + //$this->statssql[0]="SELECT field1 as label, count(distinct(email)) as nb FROM mytable WHERE email IS NOT NULL"; + + return array(); + } + + + /** + * \brief Return here number of distinct emails returned by your selector. + * For example if this selector is used to extract 500 different + * emails from a text file, this function must return 500. + * \return int + */ + function getNbOfRecipients($filter=1,$option='') + { $now=dol_now(); // Example: return parent::getNbOfRecipients("SELECT count(*) as nb from dolibarr_table"); - // Example: return 500; - $sql = " select count(*) as nb"; - $sql.= " from ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c,"; - $sql.= " ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."product as p"; - $sql.= " where s.rowid = c.fk_soc AND cd.fk_contrat = c.rowid AND s.email != ''"; - $sql.= " AND cd.statut= 4 AND cd.fk_product=p.rowid"; - $sql.= " AND p.ref in ('".join("','",$this->arrayofproducts)."')"; - $sql.= " AND cd.date_fin_validite < '".$this->db->idate($now)."'"; - //print $sql; - $a=parent::getNbOfRecipients($sql); - - return $a; - } - - /** - * \brief This is to add a form filter to provide variant of selector - * If used, the HTML select must be called "filter" - * \return string A html select zone - */ - function formFilter() - { + // Example: return 500; + $sql = " select count(*) as nb"; + $sql.= " from ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c,"; + $sql.= " ".MAIN_DB_PREFIX."contratdet as cd, ".MAIN_DB_PREFIX."product as p"; + $sql.= " where s.rowid = c.fk_soc AND cd.fk_contrat = c.rowid AND s.email != ''"; + $sql.= " AND cd.statut= 4 AND cd.fk_product=p.rowid"; + $sql.= " AND p.ref in ('".join("','",$this->arrayofproducts)."')"; + $sql.= " AND cd.date_fin_validite < '".$this->db->idate($now)."'"; + //print $sql; + $a=parent::getNbOfRecipients($sql); + + return $a; + } + + /** + * \brief This is to add a form filter to provide variant of selector + * If used, the HTML select must be called "filter" + * \return string A html select zone + */ + function formFilter() + { global $langs; - $s=''; + $s=''; $s.='<select name="filter" class="flat">'; if (count($this->arrayofproducts)) $s.='<option value="0"> </option>'; else $s.='<option value="0">'.$langs->trans("ContactsAllShort").'</option>'; foreach($this->arrayofproducts as $key => $val) { - $s.='<option value="'.$key.'">'.$val.'</option>'; + $s.='<option value="'.$key.'">'.$val.'</option>'; } $s.='</select>'; - return $s; - } - - - /** - * \brief Can include an URL link on each record provided by selector - * shown on target page. - * \return string Url link - */ - function url($id) - { - //$companystatic=new Societe($this->db); - //$companystatic->id=$id; - //$companystatic->nom=''; - //return $companystatic->getNomUrl(1); // Url too long + return $s; + } + + + /** + * \brief Can include an URL link on each record provided by selector + * shown on target page. + * \return string Url link + */ + function url($id) + { + //$companystatic=new Societe($this->db); + //$companystatic->id=$id; + //$companystatic->nom=''; + //return $companystatic->getNomUrl(1); // Url too long return '<a href="'.DOL_URL_ROOT.'/societe/soc.php?socid='.$id.'">'.img_object('',"company").'</a>'; - } + } }