diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php
index fb7fa20533b..e606a2db5a5 100644
--- a/htdocs/core/modules/modProjet.class.php
+++ b/htdocs/core/modules/modProjet.class.php
@@ -187,8 +187,8 @@ class modProjet extends DolibarrModules
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country',
's.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode',
- 'p.rowid'=>"ProjectId",'p.ref'=>"ProjectRef",'p.datec'=>"DateCreation",'p.dateo'=>"DateDebutProjet",'p.datee'=>"DateFinProjet",'p.fk_statut'=>'ProjectStatus','p.description'=>"projectNote",
- 'pt.rowid'=>'RefTask','pt.dateo'=>"TaskDateo",'pt.datee'=>"TaskDatee",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"DurationPlanned",'pt.progress'=>"Progress",'pt.description'=>"TaskDesc",
+ 'p.rowid'=>"ProjectId",'p.ref'=>"RefProject",'p.datec'=>"DateCreation",'p.dateo'=>"DateStart",'p.datee'=>"DateEnd",'p.fk_statut'=>'Status','p.description'=>"Description",
+ 'pt.rowid'=>'RefTask','pt.dateo'=>"TaskDateStart",'pt.datee'=>"TaskDateEnd",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"PlannedWorkload",'pt.progress'=>"Progress",'pt.description'=>"TaskDescription",
'ptt.task_date'=>'TaskTimeDate','ptt.task_duration'=>"TimesSpent",'ptt.fk_user'=>"TaskTimeUser",'ptt.note'=>"TaskTimeNote");
$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','s.fk_pays'=>'List:c_pays:libelle',
@@ -197,10 +197,10 @@ class modProjet extends DolibarrModules
'pt.dateo'=>"Date",'pt.datee'=>"Date",'pt.duration_effective'=>"Duree",'pt.planned_workload'=>"Number",'pt.progress'=>"Number",'pt.description'=>"Text",
'ptt.task_date'=>'Date','ptt.task_duration'=>"Duree",'ptt.fk_user'=>"List:user:Name",'ptt.note'=>"Text");
- $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','s.fk_pays'=>'company',
- 's.tel'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company',
- 'f.rowid'=>"project",'f.ref'=>"project",'f.datec'=>"project",'f.duree'=>"project",'f.fk_statut'=>"project",'f.description'=>"project",
- 'pt.rowid'=>'task','pt.dateo'=>"task",'pt.datee'=>"task",'pt.duration_effective'=>"task",'pt.planned_workload'=>"task",'pt.progress'=>"task",'pt.description'=>"task",
+ $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company',
+ 's.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company',
+ 'p.rowid'=>"project",'p.ref'=>"project",'p.datec'=>"project",'p.dateo'=>"project",'p.datee'=>"project",'p.duree'=>"project",'p.fk_statut'=>"project",'p.description'=>"project",
+ 'pt.rowid'=>'projecttask','pt.dateo'=>"projecttask",'pt.datee'=>"projecttask",'pt.duration_effective'=>"projecttask",'pt.planned_workload'=>"projecttask",'pt.progress'=>"projecttask",'pt.description'=>"projecttask",
'ptt.task_date'=>'task_time','ptt.task_duration'=>"task_time",'ptt.fk_user'=>"task_time",'ptt.note'=>"task_time");
diff --git a/htdocs/core/modules/modUser.class.php b/htdocs/core/modules/modUser.class.php
index 257f37c5411..e0be7ece744 100644
--- a/htdocs/core/modules/modUser.class.php
+++ b/htdocs/core/modules/modUser.class.php
@@ -209,7 +209,7 @@ class modUser extends DolibarrModules
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Liste des utilisateurs Dolibarr et attributs';
$this->export_permission[$r]=array(array("user","user","export"));
- $this->export_fields_array[$r]=array('u.rowid'=>"Id",'u.login'=>"Login",'u.lastname'=>"Lastname",'u.firstname'=>"Firstname",'u.office_phone'=>'Telephone','u.office_fax'=>'Fax','u.email'=>'EMail','u.datec'=>"DateCreation",'u.tms'=>"DateLastModification",'u.admin'=>"Admin",'u.statut'=>'Status','u.note'=>"Note",'u.datelastlogin'=>'LastConnexion','u.datepreviouslogin'=>'PreviousConnexion','u.fk_socpeople'=>"IdContact",'u.fk_societe'=>"IdCompany",'u.fk_member'=>"MemberId");
+ $this->export_fields_array[$r]=array('u.rowid'=>"Id",'u.login'=>"Login",'u.lastname'=>"Lastname",'u.firstname'=>"Firstname",'u.office_phone'=>'Phone','u.office_fax'=>'Fax','u.email'=>'EMail','u.datec'=>"DateCreation",'u.tms'=>"DateLastModification",'u.admin'=>"Administrator",'u.statut'=>'Status','u.note'=>"Note",'u.datelastlogin'=>'LastConnexion','u.datepreviouslogin'=>'PreviousConnexion','u.fk_socpeople'=>"IdContact",'u.fk_societe'=>"IdCompany",'u.fk_member'=>"MemberId");
$this->export_TypeFields_array[$r]=array('u.login'=>"Text",'u.lastname'=>"Text",'u.firstname'=>"Text",'u.office_phone'=>'Text','u.office_fax'=>'Text','u.email'=>'Text','u.datec'=>"Date",'u.tms'=>"Date",'u.admin'=>"Boolean",'u.statut'=>'Status','u.note'=>"Text",'u.datelastlogin'=>'Date','u.datepreviouslogin'=>'Date','u.fk_societe'=>"List:societe:nom:rowid",'u.fk_member'=>"List:adherent:nom");
$this->export_entities_array[$r]=array('u.rowid'=>"user",'u.login'=>"user",'u.lastname'=>"user",'u.firstname'=>"user",'u.office_phone'=>'user','u.office_fax'=>'user','u.email'=>'user','u.datec'=>"user",'u.tms'=>"user",'u.admin'=>"user",'u.statut'=>'user','u.note'=>"user",'u.datelastlogin'=>'user','u.datepreviouslogin'=>'user','u.fk_socpeople'=>"contact",'u.fk_societe'=>"company",'u.fk_member'=>"member");
diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php
index 39225d26d6e..42299a755b5 100644
--- a/htdocs/exports/class/export.class.php
+++ b/htdocs/exports/class/export.class.php
@@ -430,30 +430,25 @@ class Export
*
* @param string $TypeField Type of Field to filter
* @return string html string of the input field ex : ""
- * TODO replace by translation
*/
function genDocFilter($TypeField)
{
+ global $langs;
+
$szMsg='';
$InfoFieldList = explode(":", $TypeField);
// build the input field on depend of the type of file
switch ($InfoFieldList[0]) {
case 'Text':
- $szMsg="% permet de remplacer un ou plusieurs caractères dans la chaine";
+ $szMsg= $langs->trans('ExportStringFilter');
break;
case 'Date':
- $szMsg ="'AAAA' 'AAAAMM' 'AAAAMMJJ' : filtre sur une année/mois/jour ";
- $szMsg.="'AAAA+AAAA' 'AAAAMM+AAAAMM' 'AAAAMMJJ+AAAAMMJJ': filtre sur une plage d'année/mois/jour ";
- $szMsg.="'>AAAA' '>AAAAMM' '>AAAAMMJJ' filtre sur les année/mois/jour suivants ";
- $szMsg.="'‹AAAA' '‹AAAAMM' '‹AAAAMMJJ' filtre sur les année/mois/jour précédent ";
+ $szMsg = $langs->trans('ExportDateFilter');
break;
case 'Duree':
break;
case 'Numeric':
- $szMsg ="'NNNNN' filtre sur une valeur ";
- $szMsg.="'NNNNN+NNNNN' filtre sur une plage de valeur ";
- $szMsg.="'‹NNNNN' filtre sur les valeurs inférieurs ";
- $szMsg.="'>NNNNN' filtre sur les valeurs supérieurs ";
+ $szMsg = $langs->trans('ExportNumericFilter');
break;
case 'Boolean':
break;
diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php
index aefe5490802..9d8c59f8eaa 100644
--- a/htdocs/exports/export.php
+++ b/htdocs/exports/export.php
@@ -91,7 +91,10 @@ $entitytolang = array(
'other' => 'Other',
'trip' => 'TripsAndExpenses',
'shipment' => 'Shipments',
- 'shipment_line'=> 'ShipmentLine'
+ 'shipment_line'=> 'ShipmentLine',
+ 'project' => 'Projects',
+ 'projecttask' => 'Tasks',
+ 'task_time' => 'TaskTimeSpent'
);
$array_selected=isset($_SESSION["export_selected_fields"])?$_SESSION["export_selected_fields"]:array();
diff --git a/htdocs/langs/en_US/exports.lang b/htdocs/langs/en_US/exports.lang
index f1defa94c36..38d25738a64 100644
--- a/htdocs/langs/en_US/exports.lang
+++ b/htdocs/langs/en_US/exports.lang
@@ -123,6 +123,10 @@ BankCode=Bank code
DeskCode=Desk code
BankAccountNumber=Account number
BankAccountNumberKey=Key
+SpecialCode=Special code
+ExportStringFilter=%% allows replacing one or more characters in the text
+ExportDateFilter='AAAA' 'AAAAMM' 'AAAAMMJJ': filters by one year/month/day 'AAAA+AAAA' 'AAAAMM+AAAAMM' 'AAAAMMJJ+AAAAMMJJ': filters over a range of years/months/days '>AAAA' '>AAAAMM' '>AAAAMMJJ': filters on the following years/months/days '>AAAA' '>AAAAMM' '>AAAAMMJJ': filters on the previous years/months/days
+ExportNumericFilter='NNNNN' filters by one value 'NNNNN+NNNNN' filters over a range of values '>NNNNN' filters by lower values '>NNNNN' filters by higher values
## filters
SelectFilterFields=If you want to filter on some values, just input values here.
FilterableFields=Champs Filtrables
diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
index ba0b6b6dcd2..c6355cdec95 100644
--- a/htdocs/langs/en_US/projects.lang
+++ b/htdocs/langs/en_US/projects.lang
@@ -1,4 +1,6 @@
# Dolibarr language file - Source file is en_US - projects
+RefProject=Ref. project
+ProjectId=Project Id
Project=Project
Projects=Projects
SharedProject=Everybody
@@ -30,11 +32,18 @@ TimeSpent=Time spent
TimesSpent=Time spent
RefTask=Ref. task
LabelTask=Label task
+TaskTimeSpent=Time spent on tasks
+TaskTimeUser=Task time user
+TaskTimeNote=Task time note
+TaskTimeDate=Task time date
NewTimeSpent=New time spent
MyTimeSpent=My time spent
MyTasks=My tasks
Tasks=Tasks
Task=Task
+TaskDateStart=Task start date
+TaskDateEnd=Task end date
+TaskDescription=Task description
NewTask=New task
AddTask=Add task
AddDuration=Add duration
diff --git a/htdocs/langs/es_ES/exports.lang b/htdocs/langs/es_ES/exports.lang
index 61517a81dc5..a04d2977479 100644
--- a/htdocs/langs/es_ES/exports.lang
+++ b/htdocs/langs/es_ES/exports.lang
@@ -123,6 +123,10 @@ BankCode=Código banco
DeskCode=Código oficina
BankAccountNumber=Número cuenta
BankAccountNumberKey=Dígito Control
+SpecialCode=Código especial
+ExportStringFilter=%% permite reemplazar uno o más caracteres en el texto
+ExportDateFilter='AAAA' 'AAAAMM' 'AAAAMMJJ': filtra por un año/mes/día 'AAAA+AAAA' 'AAAAMM+AAAAMM' 'AAAAMMJJ+AAAAMMJJ': filtra entre un rango de años/meses/días '>AAAA' '>AAAAMM' '>AAAAMMJJ': filtra por los siguientes años/meses/días '‹AAAA' '‹AAAAMM' '‹AAAAMMJJ': filtra por los anteriores años/meses/días
+ExportNumericFilter='NNNNN' filtra por un valor 'NNNNN+NNNNN' filtra entre un rango de valores '‹NNNNN' filtra por valores inferiores '>NNNNN' filtra por valores superiores
## filters
SelectFilterFields=Si quiere aplicar un filtro sobre algunos valores, introdúzcalos aquí.
FilterableFields=Campos filtrables
diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang
index 1df7fd8d92a..04e5723e9f2 100644
--- a/htdocs/langs/es_ES/projects.lang
+++ b/htdocs/langs/es_ES/projects.lang
@@ -1,4 +1,6 @@
# Dolibarr language file - Source file is en_US - projects
+RefProject=Ref. proyecto
+ProjectId=Id proyecto
Project=Proyecto
Projects=Proyectos
SharedProject=Proyecto compartido
@@ -30,11 +32,18 @@ TimeSpent=Tiempo dedicado
TimesSpent=Tiempos dedicados
RefTask=Ref. tarea
LabelTask=Etiqueta tarea
+TaskTimeSpent=Tiempo dedicado a tareas
+TaskTimeUser=Usuario de tiempo dedicado
+TaskTimeNote=Nota de tiempo dedicado
+TaskTimeDate=Fecha de tiempo dedicado
NewTimeSpent=Nuevo tiempo dedicado
MyTimeSpent=Mi tiempo dedicado
MyTasks=Mis tareas
Tasks=Tareas
Task=Tarea
+TaskDateStart=Fecha inicio tarea
+TaskDateEnd=Fecha fin tarea
+TaskDescription=Descripción de tarea
NewTask=Nueva tarea
AddTask=Añadir tarea
AddDuration=Indicar duración
diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang
index f16e90a5399..5dd55e14781 100644
--- a/htdocs/langs/fr_FR/exports.lang
+++ b/htdocs/langs/fr_FR/exports.lang
@@ -123,6 +123,9 @@ BankCode=Code banque
DeskCode=Code guichet
BankAccountNumber=Numéro de compte
BankAccountNumberKey=Clé RIB
+ExportStringFilter=%% permet de remplacer un ou plusieurs caractères dans la chaine
+ExportDateFilter='AAAA' 'AAAAMM' 'AAAAMMJJ': filtre sur une année/mois/jour 'AAAA+AAAA' 'AAAAMM+AAAAMM' 'AAAAMMJJ+AAAAMMJJ': filtre sur une plage d'année/mois/jour '>AAAA' '>AAAAMM' '>AAAAMMJJ': filtre sur les année/mois/jour suivants '>AAAA' '>AAAAMM' '>AAAAMMJJ' filtre sur les année/mois/jour précédent
+ExportNumericFilter='NNNNN' filtre sur une valeur 'NNNNN+NNNNN' filtre sur une plage de valeur '>NNNNN' filtre sur les valeurs inférieurs '>NNNNN' filtre sur les valeurs supérieurs
## filters
SelectFilterFields=Si vous voulez filtrer sur certaines valeurs, saisissez ces valeurs.
FilterableFields=Champs filtrables
diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index 4f00cef5f9f..f4ba0197e47 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -313,6 +313,7 @@ class Societe extends CommonObject
$contact->zip = $this->zip;
$contact->town = $this->town;
$contact->phone_pro = $this->phone;
+ $contact->state_id = $this->state_id;
$result = $contact->create($user);
if ($result < 0) {
$this->error = $contact->error;
diff --git a/htdocs/theme/eldy/img/object_task_time.png b/htdocs/theme/eldy/img/object_task_time.png
new file mode 100644
index 00000000000..8cda1f3f220
Binary files /dev/null and b/htdocs/theme/eldy/img/object_task_time.png differ