diff --git a/htdocs/exports/export.class.php b/htdocs/exports/export.class.php index 85c36d54d14..c744da1d99c 100644 --- a/htdocs/exports/export.class.php +++ b/htdocs/exports/export.class.php @@ -35,7 +35,9 @@ class Export { - var $array_export_code=array(); // Tableau de "idmodule_numlot" + var $db; + + var $array_export_code=array(); // Tableau de "idmodule_numlot" var $array_export_module=array(); // Tableau de "nom de modules" var $array_export_label=array(); // Tableau de "libellé de lots" var $array_export_sql=array(); // Tableau des "requetes sql" @@ -85,7 +87,7 @@ class Export $file = $dir."/".$modulename.".class.php"; $classname = $modulename; require_once($file); - $module = new $classname($db); + $module = new $classname($this->db); if (is_array($module->export_code)) { diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 4c11202afd4..8f5b59b9b65 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -31,7 +31,6 @@ require_once("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/exports/export.class.php"); require_once(DOL_DOCUMENT_ROOT.'/includes/modules/export/modules_export.php'); - $langs->load("exports"); $user->getrights(); @@ -42,13 +41,13 @@ if (! $user->societe_id == 0) $entitytoicon=array( 'invoice'=>'bill','invoice_line'=>'bill', 'order'=>'order','order_line'=>'order', - 'member'=>'user', 'member_type'=>'group'); + 'member'=>'user', 'member_type'=>'group','subscription'=>'payment'); $entitytolang=array( 'user'=>'User', 'company'=>'Company','contact'=>'Contact', 'invoice'=>'Bill','invoice_line'=>'InvoiceLine', 'order'=>'Order','order_line'=>'OrderLine', - 'member'=>'Member','member_type'=>'MemberType'); + 'member'=>'Member','member_type'=>'MemberType','subscription'=>'Subscription'); $array_selected=isset($_SESSION["export_selected_fields"])?$_SESSION["export_selected_fields"]:array(); $datatoexport=isset($_GET["datatoexport"])? $_GET["datatoexport"] : (isset($_POST["datatoexport"])?$_POST["datatoexport"]:''); diff --git a/htdocs/includes/modules/modAdherent.class.php b/htdocs/includes/modules/modAdherent.class.php index 21872fd5700..530174fff83 100644 --- a/htdocs/includes/modules/modAdherent.class.php +++ b/htdocs/includes/modules/modAdherent.class.php @@ -50,7 +50,7 @@ class modAdherent extends DolibarrModules */ function modAdherent($DB) { - $this->db = $DB ; + $this->db = $DB; $this->id = 'member'; // Same value xxx than in file modXxx.class.php file $this->numero = 310 ; @@ -196,11 +196,23 @@ class modAdherent extends DolibarrModules $r++; $this->export_code[$r]=$this->id.'_'.$r; - $this->export_label[$r]='Adhérents et attributs'; - $this->export_fields_array[$r]=array('a.nom'=>"Lastname",'a.prenom'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'MorPhy','a.adresse'=>"Address",'a.cp'=>"Zip",'a.ville'=>"Town",'a.pays'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.naiss'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel'); - $this->export_entities_array[$r]=array('a.nom'=>"member",'a.prenom'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.adresse'=>"member",'a.cp'=>"member",'a.ville'=>"member",'a.pays'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.naiss'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type'); - $this->export_alias_array[$r]=array('a.nom'=>"lastname",'a.prenom'=>"firstname",'a.login'=>"login",'a.morphy'=>'morphy','a.adresse'=>"address",'a.cp'=>"zip",'a.ville'=>"town",'a.pays'=>"country",'a.phone'=>"phone",'a.phone_perso'=>"phone_perso",'a.phone_mobile'=>"phone_mobile",'a.email'=>"email",'a.naiss'=>"birthday",'a.statut'=>"status",'a.photo'=>'photo','a.note'=>'note','a.datec'=>'datec','a.datevalid'=>'datevalid','a.tms'=>'datem','a.datefin'=>'dateend','ta.rowid'=>'type_id','ta.libelle'=>'type_label'); - $this->export_sql[$r]="select "; + $this->export_label[$r]='Adhérents et adhésions'; + $this->export_fields_array[$r]=array('a.nom'=>"Lastname",'a.prenom'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'MorPhy','a.adresse'=>"Address",'a.cp'=>"Zip",'a.ville'=>"Town",'a.pays'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.naiss'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount'); + $this->export_entities_array[$r]=array('a.nom'=>"member",'a.prenom'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.adresse'=>"member",'a.cp'=>"member",'a.ville'=>"member",'a.pays'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.naiss'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.dateadh'=>'subscription','c.cotisation'=>'subscription'); + $this->export_alias_array[$r]=array('a.nom'=>"lastname",'a.prenom'=>"firstname",'a.login'=>"login",'a.morphy'=>'morphy','a.adresse'=>"address",'a.cp'=>"zip",'a.ville'=>"town",'a.pays'=>"country",'a.phone'=>"phone",'a.phone_perso'=>"phone_perso",'a.phone_mobile'=>"phone_mobile",'a.email'=>"email",'a.naiss'=>"birthday",'a.statut'=>"status",'a.photo'=>'photo','a.note'=>'note','a.datec'=>'datec','a.datevalid'=>'datevalid','a.tms'=>'datem','a.datefin'=>'dateend','ta.rowid'=>'type_id','ta.libelle'=>'type_label','c.dateadh'=>'date_subscription','c.cotisation'=>'amount_subscription'); + // On complète avec champs options + $sql='SELECT name, label FROM '.MAIN_DB_PREFIX.'adherent_options_label'; + $resql=$this->db->query($sql); + while ($obj=$this->db->fetch_object($resql)) + { + $fieldname='ao.'.$obj->name; + $fieldlabel=ucfirst($obj->label); + $this->export_fields_array[$r][$fieldname]=$fieldlabel; + $this->export_entities_array[$r][$fieldname]='member'; + $this->export_alias_array[$r][$fieldname]='opt_'.$obj->name; + } + // Fin complement + $this->export_sql[$r]="select distinct "; $i=0; foreach ($this->export_alias_array[$r] as $key => $value) { @@ -208,7 +220,10 @@ class modAdherent extends DolibarrModules else $i++; $this->export_sql[$r].=$key.' as '.$value; } - $this->export_sql[$r].=' from '.MAIN_DB_PREFIX.'adherent as a, '.MAIN_DB_PREFIX.'adherent_type as ta WHERE a.fk_adherent_type = ta.rowid'; + $this->export_sql[$r].=' from ('.MAIN_DB_PREFIX.'adherent as a, '.MAIN_DB_PREFIX.'adherent_type as ta)'; + $this->export_sql[$r].=' LEFT JOIN '.MAIN_DB_PREFIX.'adherent_options as ao ON a.rowid = ao.adhid'; + $this->export_sql[$r].=' LEFT JOIN '.MAIN_DB_PREFIX.'cotisation as c ON c.fk_adherent = a.rowid'; + $this->export_sql[$r].=' WHERE a.fk_adherent_type = ta.rowid'; $this->export_permission[$r]=array(array("adherent","export")); } diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index bca88925eaf..064d86c1f70 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -93,7 +93,7 @@ FollowingLinksArePublic=The following links are open pages not protected by any PublicMemberList=Public member list BlankSubscriptionForm=Subscription form MemberPublicLinks=Public links/pages -ExportDataset_member_1=Members and properties +ExportDataset_member_1=Members and subscriptions LastMembers=Last %s members LastMembersModified=Last %s modified members AttributeName=Attribute name diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 5980e495d14..64d8a5eeae6 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -93,7 +93,7 @@ FollowingLinksArePublic=Les liens suivants sont des pages accessibles PublicMemberList=Liste des membres publiques BlankSubscriptionForm=Formulaire inscription MemberPublicLinks=Liens/pages publiques -ExportDataset_member_1=Adhérentes et attributs +ExportDataset_member_1=Adhérents et adhésions LastMembers=Les %s derniers adhérents LastMembersModified=Les %s derniers adhérents modifiés AttributeName=Nom de l'attribut