';
print '';
- print '| '.$langs->trans("DateStart").' | ';
+ print ''.$langs->trans("DateStart").' | ';
print '';
$form->select_date($date_start?$date_start:-1,'date_debut',0,0,0,'',1,1);
print ' | ';
@@ -1211,7 +1216,7 @@ else
$linkback = ''.$langs->trans("BackToList").'';
// Ref
- print '
| '.$langs->trans("Ref").' | ';
+ print ' |
| '.$langs->trans("Ref").' | ';
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '');
print ' |
';
@@ -1374,7 +1379,7 @@ else
$linkback = ''.$langs->trans("BackToList").'';
// Ref
- print '| '.$langs->trans("Ref").' | ';
+ print ' |
| '.$langs->trans("Ref").' | ';
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '');
print ' |
';
@@ -1683,7 +1688,8 @@ else
}
print '';
}
- print ''.$langs->trans("TF_".strtoupper(empty($objp->type_fees_libelle)?'OTHER':$objp->type_fees_libelle)).' | ';
+ // print ''.$langs->trans("TF_".strtoupper(empty($objp->type_fees_libelle)?'OTHER':$objp->type_fees_libelle)).' | ';
+ print ''.($langs->trans(($objp->type_fees_code)) == $objp->type_fees_code ? $objp->type_fees_libelle : $langs->trans(($objp->type_fees_code))).' | ';
print ''.$objp->comments.' | ';
print ''.vatrate($objp->vatrate,true).' | ';
print ''.price($objp->value_unit).' | ';
@@ -1789,7 +1795,7 @@ else
print ''.$langs->trans('Date').' | ';
if (! empty($conf->projet->enabled)) print ''.$langs->trans('Project').' | ';
print ''.$langs->trans('Type').' | ';
- print ''.$langs->trans('Description').' | ';
+ print ''.$langs->trans('Description').' | ';
print ''.$langs->trans('VAT').' | ';
print ''.$langs->trans('PriceUTTC').' | ';
print ''.$langs->trans('Qty').' | ';
@@ -1818,7 +1824,7 @@ else
print '';
// Add comments
- print '';
+ print ' | ';
print '';
print ' | ';
diff --git a/htdocs/expensereport/info.php b/htdocs/expensereport/info.php
index b4302631c78..a5a3c830975 100644
--- a/htdocs/expensereport/info.php
+++ b/htdocs/expensereport/info.php
@@ -40,7 +40,7 @@ $result = restrictedArea($user, 'expensereport', $id, '');
* View
*/
-llxHeader();
+llxHeader('', $langs->trans("ExpenseReport"));
if ($id)
{
diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php
index 54241a36eee..6b73e5a7477 100644
--- a/htdocs/fourn/class/fournisseur.commande.class.php
+++ b/htdocs/fourn/class/fournisseur.commande.class.php
@@ -1081,6 +1081,7 @@ class CommandeFournisseur extends CommonOrder
$sql.= ", note_public";
$sql.= ", entity";
$sql.= ", fk_soc";
+ $sql.= ", fk_projet";
$sql.= ", date_creation";
$sql.= ", date_livraison";
$sql.= ", fk_user_author";
@@ -1102,6 +1103,7 @@ class CommandeFournisseur extends CommonOrder
$sql.= ", '".$this->db->escape($this->note_public)."'";
$sql.= ", ".$conf->entity;
$sql.= ", ".$this->socid;
+ $sql.= ", ".($this->fk_project > 0 ? $this->fk_project : "null");
$sql.= ", '".$this->db->idate($now)."'";
$sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null");
$sql.= ", ".$user->id;
diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php
index 2afc7df171f..430b9a6903f 100644
--- a/htdocs/fourn/commande/card.php
+++ b/htdocs/fourn/commande/card.php
@@ -971,7 +971,8 @@ if (empty($reshook))
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
$object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int');
-
+ $object->fk_project = GETPOST('projectid');
+
// Fill array 'array_options' with data from add form
if (! $error)
{
diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php
index 8ffd81c8ea4..574501276be 100644
--- a/htdocs/fourn/facture/list.php
+++ b/htdocs/fourn/facture/list.php
@@ -546,19 +546,7 @@ if ($resql)
if (! empty($arrayfields['f.tms']['checked'])) print_liste_field_titre($arrayfields['f.tms']['label'],$_SERVER["PHP_SELF"],"f.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
if (! empty($arrayfields['f.fk_statut']['checked'])) print_liste_field_titre($arrayfields['f.fk_statut']['label'],$_SERVER["PHP_SELF"],"fk_statut,paye","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
-/*
- print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.ref,f.rowid","",$param,"",$sortfield,$sortorder);
- if (empty($conf->global->SUPPLIER_INVOICE_HIDE_REF_SUPPLIER)) print_liste_field_titre($langs->trans("RefSupplier"),$_SERVER["PHP_SELF"],"ref_supplier","",$param,"",$sortfield,$sortorder);
- print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"f.datef,f.rowid","",$param,'align="center"',$sortfield,$sortorder);
- print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"f.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder);
- print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"f.libelle","",$param,"",$sortfield,$sortorder);
- print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
- if (! empty($conf->global->PROJECT_SHOW_REF_INTO_LISTS)) print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"p.ref","",$param,'',$sortfield,$sortorder);
- print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"f.total_ht","",$param,'align="right"',$sortfield,$sortorder);
- print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder);
- print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye","",$param,'align="right"',$sortfield,$sortorder);
- print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
-*/ print "\n";
+ print "\n";
// Line for filters
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index afd205e6a61..9b62f7f4a3b 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -179,7 +179,7 @@ FeatureDisabledInDemo=Feature disabled in demo
Rights=Permissions
BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
OnlyActiveElementsAreShown=Only elements from enabled modules are shown.
-ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off in column "Status" to enable a module/feature.
+ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature.
ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
ModulesMarketPlaces=More modules...
DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index b57cfd6179c..9cd397fe47f 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -256,6 +256,7 @@ DurationDays=days
Year=Year
Month=Month
Week=Week
+WeekShort=Week
Day=Day
Hour=Hour
Minute=Minute
diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
index fe21b3558ba..8c23135ddbd 100644
--- a/htdocs/langs/en_US/projects.lang
+++ b/htdocs/langs/en_US/projects.lang
@@ -174,7 +174,7 @@ ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
ProjectsStatistics=Statistics on projects/leads
TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
IdTaskTime=Id task time
-YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label.
+YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
OpenedProjectsByThirdparties=Open projects by thirdparties
OnlyOpportunitiesShort=Only opportunities
OpenedOpportunitiesShort=Open opportunities
diff --git a/htdocs/margin/tabs/thirdpartyMargins.php b/htdocs/margin/tabs/thirdpartyMargins.php
index 29bdd16b21e..1d4d1f8f0ca 100644
--- a/htdocs/margin/tabs/thirdpartyMargins.php
+++ b/htdocs/margin/tabs/thirdpartyMargins.php
@@ -50,6 +50,7 @@ if (! $sortorder) $sortorder="DESC";
if (! $sortfield) $sortfield="f.datef";
$object = new Societe($db);
+if ($socid > 0) $object->fetch($socid);
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('thirdpartymargins','globalcard'));
@@ -72,8 +73,10 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
$invoicestatic=new Facture($db);
$form = new Form($db);
+$title=$langs->trans("ThirdParty").' - '.$langs->trans("Margins");
+if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name.' - '.$langs->trans("Files");
$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
-llxHeader('',$langs->trans("ThirdParty").' - '.$langs->trans("Margins"),$help_url);
+llxHeader('',$title,$help_url);
if ($socid > 0)
{
diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php
index 44462bb8594..cb525842f61 100644
--- a/htdocs/projet/activity/perweek.php
+++ b/htdocs/projet/activity/perweek.php
@@ -292,7 +292,7 @@ $param=($mode?'&mode='.$mode:'');
// Show navigation bar
$nav ="".img_previous($langs->trans("Previous"))."\n";
-$nav.=" ".dol_print_date(dol_mktime(0,0,0,$first_month,$first_day,$first_year),"%Y").", ".$langs->trans("Week")." ".$week." \n";
+$nav.=" ".dol_print_date(dol_mktime(0,0,0,$first_month,$first_day,$first_year),"%Y").", ".$langs->trans("WeekShort")." ".$week." \n";
$nav.="".img_next($langs->trans("Next"))."\n";
$nav.=" (".$langs->trans("Today").")";
$nav.='
'.$form->select_date(-1,'',0,0,2,"addtime",1,0,1).' ';
diff --git a/htdocs/projet/admin/project.php b/htdocs/projet/admin/project.php
index 5233832ea05..fca5eeb22f6 100644
--- a/htdocs/projet/admin/project.php
+++ b/htdocs/projet/admin/project.php
@@ -1,6 +1,6 @@
- * Copyright (C) 2011 Laurent Destailleur
+ * Copyright (C) 2011-2016 Laurent Destailleur
* Copyright (C) 2011-2012 Juanjo Menent
* Copyright (C) 2011-2015 Philippe Grand
* Copyright (C) 2013 Florian Henry
@@ -373,7 +373,7 @@ print '
';
* Projects Numbering model
*/
-print load_fiche_titre($langs->trans("ProjectsNumberingModules"));
+print load_fiche_titre($langs->trans("ProjectsNumberingModules"), '', '');
print '';
print '';
@@ -477,7 +477,7 @@ print '
';
if (empty($conf->global->PROJECT_HIDE_TASKS))
{
// Task numbering module
- print load_fiche_titre($langs->trans("TasksNumberingModules"));
+ print load_fiche_titre($langs->trans("TasksNumberingModules"), '', '');
print '';
print '';
@@ -583,7 +583,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS))
* Document templates generators
*/
-print load_fiche_titre($langs->trans("ProjectsModelModule"));
+print load_fiche_titre($langs->trans("ProjectsModelModule"), '', '');
// Defini tableau def de modele
$type='project';
@@ -742,7 +742,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS))
* Modeles documents for Task
*/
- print load_fiche_titre($langs->trans("TaskModelModule"));
+ print load_fiche_titre($langs->trans("TaskModelModule"), '', '');
// Defini tableau def de modele
$type='project_task';
@@ -894,7 +894,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS))
}
-print load_fiche_titre($langs->trans("Other"));
+print load_fiche_titre($langs->trans("Other"), '', '');
// Other options
$form=new Form($db);
diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php
index fe60f86b66a..fa89e06f398 100644
--- a/htdocs/projet/card.php
+++ b/htdocs/projet/card.php
@@ -1,6 +1,6 @@
- * Copyright (C) 2004-2015 Laurent Destailleur
+ * Copyright (C) 2004-2016 Laurent Destailleur
* Copyright (C) 2005-2012 Regis Houssin
*
* This program is free software; you can redistribute it and/or modify
@@ -499,7 +499,7 @@ if ($action == 'create' && $user->rights->projet->creer)
// Public
print '| '.$langs->trans("Visibility").' | ';
$array=array(0 => $langs->trans("PrivateProject"),1 => $langs->trans("SharedProject"));
- print $form->selectarray('public',$array,$object->public);
+ print $form->selectarray('public',$array,GETPOST('public')?GETPOST('public'):(isset($conf->global->PROJECT_DEFAULT_PUBLIC)?$conf->global->PROJECT_DEFAULT_PUBLIC:$object->public));
print ' |
';
// Date start
@@ -517,7 +517,7 @@ if ($action == 'create' && $user->rights->projet->creer)
// Opportunity status
print '| '.$langs->trans("OpportunityStatus").' | ';
print '';
- print $formproject->selectOpportunityStatus('opp_status',$object->opp_status);
+ print $formproject->selectOpportunityStatus('opp_status', GETPOST('opp_status')?GETPOST('opp_status'):$object->opp_status);
print ' |
';
// Opportunity probability
diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php
index 4608675f829..e8a5ee57386 100644
--- a/htdocs/projet/element.php
+++ b/htdocs/projet/element.php
@@ -888,7 +888,7 @@ foreach ($listofreferent as $key => $value)
if (canApplySubtotalOn($tablename))
{
- $breakline='';
+ $breakline='
';
$breakline.='| ';
$breakline.=' | ';
$breakline.='';
diff --git a/htdocs/societe/note.php b/htdocs/societe/note.php
index 156a4620634..5c9bc15328f 100644
--- a/htdocs/societe/note.php
+++ b/htdocs/societe/note.php
@@ -57,8 +57,10 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include,
$form = new Form($db);
+$title=$langs->trans("ThirdParty").' - '.$langs->trans("Notes");
+if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name.' - '.$langs->trans("Files");
$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
-llxHeader('',$langs->trans("ThirdParty").' - '.$langs->trans("Notes"),$help_url);
+llxHeader('',$title,$help_url);
if ($id > 0)
{
diff --git a/htdocs/theme/eldy/img/puce.png b/htdocs/theme/eldy/img/puce.png
index 8c116b0dc42..55046304094 100644
Binary files a/htdocs/theme/eldy/img/puce.png and b/htdocs/theme/eldy/img/puce.png differ
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index cddf7d19324..b052a18fdf7 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -2763,6 +2763,9 @@ input.liste_titre {
form.liste_total div {
border-top: 1px solid #DDDDDD;
}
+tr.liste_sub_total, tr.liste_sub_total td {
+ border-bottom: 2px solid #aaa;
+}
.tableforservicepart1 .impair, .tableforservicepart1 .pair, .tableforservicepart2 .impair, .tableforservicepart2 .pair {
background: #FFF;
diff --git a/htdocs/theme/md/img/puce.png b/htdocs/theme/md/img/puce.png
index 9bd70dccb73..55046304094 100644
Binary files a/htdocs/theme/md/img/puce.png and b/htdocs/theme/md/img/puce.png differ
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 7fe283df6c3..bdfd10fc23d 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -2645,7 +2645,9 @@ input.liste_titre {
padding: 4px;
height: 20px;
}
-
+tr.liste_sub_total, tr.liste_sub_total td {
+ border-bottom: 2px solid #aaa;
+}
.tableforservicepart1 .impair, .tableforservicepart1 .pair, .tableforservicepart2 .impair, .tableforservicepart2 .pair {
background: #FFF;
|