From 20309665e60ea50ff3f1050ffcc91a934f21e025 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Tue, 14 Aug 2018 10:45:08 +0200 Subject: [PATCH 1/9] fix : ODT project substitution --- .../doc/doc_generic_project_odt.modules.php | 209 +++++++++++++----- .../projects/template_project.odt | Bin 29375 -> 22487 bytes 2 files changed, 153 insertions(+), 56 deletions(-) diff --git a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php index c2258f9ba97..d2f5a859197 100644 --- a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php +++ b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php @@ -160,6 +160,7 @@ class doc_generic_project_odt extends ModelePDFProjects 'task_description'=>$task->description, 'task_fk_parent'=>$task->fk_parent, 'task_duration'=>$task->duration, + 'task_duration_hour'=>convertSecondToTime($task->duration,'all'), 'task_progress'=>$task->progress, 'task_public'=>$task->public, 'task_date_start'=>dol_print_date($task->date_start,'day'), @@ -317,7 +318,10 @@ class doc_generic_project_odt extends ModelePDFProjects 'tasktime_fk_user'=>$tasktime['fk_user'], 'tasktime_user_name'=>$tasktime['name'], 'tasktime_user_first'=>$tasktime['firstname'], - 'tasktime_fullcivname'=>$tasktime['fullcivname'] + 'tasktime_fullcivname'=>$tasktime['fullcivname'], + 'tasktime_amountht'=>$tasktime['amountht'], + 'tasktime_amountttc'=>$tasktime['amountttc'], + 'tasktime_thm'=>$tasktime['thm'], ); } @@ -698,7 +702,7 @@ class doc_generic_project_odt extends ModelePDFProjects //Time ressources $sql = "SELECT t.rowid, t.task_date, t.task_duration, t.fk_user, t.note"; - $sql.= ", u.lastname, u.firstname"; + $sql.= ", u.lastname, u.firstname, t.thm"; $sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t"; $sql .= " , ".MAIN_DB_PREFIX."user as u"; $sql .= " WHERE t.fk_task =".$task->id; @@ -712,6 +716,35 @@ class doc_generic_project_odt extends ModelePDFProjects $i = 0; $tasks = array(); $listlinestasktime = $listlines->__get('taskstimes'); + if (empty($num)) { + $row['rowid']=''; + $row['task_date']=''; + $row['task_duration']=''; + $row['$tasktime']=''; + $row['note']=''; + $row['fk_user']=''; + $row['name']=''; + $row['firstname']=''; + $row['fullcivname']=''; + $row['amountht']=''; + $row['amountttc']=''; + $row['thm']=''; + $tmparray=$this->get_substitutionarray_taskstime($row,$outputlangs); + foreach($tmparray as $key => $val) + { + try + { + $listlinestasktime->setVars($key, $val, true, 'UTF-8'); + } + catch(OdfException $e) + { + } + catch(SegmentException $e) + { + } + } + $listlinestasktime->merge(); + } while ($i < $num) { $row = $this->db->fetch_array($resql); @@ -723,6 +756,16 @@ class doc_generic_project_odt extends ModelePDFProjects $row['fullcivname']=''; } + if (!empty($row['thm'])) { + $row['amountht']=($row['task_duration'] / 3600) * $row['thm']; + $defaultvat = get_default_tva($mysoc, $mysoc); + $row['amountttc']=price2num($row['amountht'] * (1 + ($defaultvat / 100)),'MT');; + } else { + $row['amountht']=0; + $row['amountttc']=0; + $row['thm']=0; + } + $tmparray=$this->get_substitutionarray_taskstime($row,$outputlangs); foreach($tmparray as $key => $val) @@ -884,60 +927,114 @@ class doc_generic_project_odt extends ModelePDFProjects //List of referent - $listofreferent=array( - 'propal'=>array( - 'title'=>"ListProposalsAssociatedProject", - 'class'=>'Propal', - 'table'=>'propal', - 'test'=>$conf->propal->enabled && $user->rights->propale->lire), - 'order'=>array( - 'title'=>"ListOrdersAssociatedProject", - 'class'=>'Commande', - 'table'=>'commande', - 'test'=>$conf->commande->enabled && $user->rights->commande->lire), - 'invoice'=>array( - 'title'=>"ListInvoicesAssociatedProject", - 'class'=>'Facture', - 'table'=>'facture', - 'test'=>$conf->facture->enabled && $user->rights->facture->lire), - 'invoice_predefined'=>array( - 'title'=>"ListPredefinedInvoicesAssociatedProject", - 'class'=>'FactureRec', - 'table'=>'facture_rec', - 'test'=>$conf->facture->enabled && $user->rights->facture->lire), - 'order_supplier'=>array( - 'title'=>"ListSupplierOrdersAssociatedProject", - 'table'=>'commande_fournisseur', - 'class'=>'CommandeFournisseur', - 'test'=>$conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire), - 'invoice_supplier'=>array( - 'title'=>"ListSupplierInvoicesAssociatedProject", - 'table'=>'facture_fourn', - 'class'=>'FactureFournisseur', - 'test'=>$conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire), - 'contract'=>array( - 'title'=>"ListContractAssociatedProject", - 'class'=>'Contrat', - 'table'=>'contrat', - 'test'=>$conf->contrat->enabled && $user->rights->contrat->lire), - 'intervention'=>array( - 'title'=>"ListFichinterAssociatedProject", - 'class'=>'Fichinter', - 'table'=>'fichinter', - 'disableamount'=>1, - 'test'=>$conf->ficheinter->enabled && $user->rights->ficheinter->lire), - 'trip'=>array( - 'title'=>"ListTripAssociatedProject", - 'class'=>'Deplacement', - 'table'=>'deplacement', - 'disableamount'=>1, - 'test'=>$conf->deplacement->enabled && $user->rights->deplacement->lire), - 'agenda'=>array( - 'title'=>"ListActionsAssociatedProject", - 'class'=>'ActionComm', - 'table'=>'actioncomm', - 'disableamount'=>1, - 'test'=>$conf->agenda->enabled && $user->rights->agenda->allactions->lire) + $listofreferent = array( + 'propal' => array( + 'title' => "ListProposalsAssociatedProject", + 'class' => 'Propal', + 'table' => 'propal', + 'test' => $conf->propal->enabled && $user->rights->propale->lire + ), + 'order' => array( + 'title' => "ListOrdersAssociatedProject", + 'class' => 'Commande', + 'table' => 'commande', + 'test' => $conf->commande->enabled && $user->rights->commande->lire + ), + 'invoice' => array( + 'title' => "ListInvoicesAssociatedProject", + 'class' => 'Facture', + 'table' => 'facture', + 'test' => $conf->facture->enabled && $user->rights->facture->lire + ), + 'invoice_predefined' => array( + 'title' => "ListPredefinedInvoicesAssociatedProject", + 'class' => 'FactureRec', + 'table' => 'facture_rec', + 'test' => $conf->facture->enabled && $user->rights->facture->lire + ), + 'proposal_supplier' => array( + 'title' => "ListSupplierProposalsAssociatedProject", + 'class' => 'SupplierProposal', + 'table' => 'supplier_proposal', + 'test' => $conf->supplier_proposal->enabled && $user->rights->supplier_proposal->lire + ), + 'order_supplier' => array( + 'title' => "ListSupplierOrdersAssociatedProject", + 'table' => 'commande_fournisseur', + 'class' => 'CommandeFournisseur', + 'test' => $conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire + ), + 'invoice_supplier' => array( + 'title' => "ListSupplierInvoicesAssociatedProject", + 'table' => 'facture_fourn', + 'class' => 'FactureFournisseur', + 'test' => $conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire + ), + 'contract' => array( + 'title' => "ListContractAssociatedProject", + 'class' => 'Contrat', + 'table' => 'contrat', + 'test' => $conf->contrat->enabled && $user->rights->contrat->lire + ), + 'intervention' => array( + 'title' => "ListFichinterAssociatedProject", + 'class' => 'Fichinter', + 'table' => 'fichinter', + 'disableamount' => 1, + 'test' => $conf->ficheinter->enabled && $user->rights->ficheinter->lire + ), + 'shipping' => array( + 'title' => "ListShippingAssociatedProject", + 'class' => 'Expedition', + 'table' => 'expedition', + 'disableamount' => 1, + 'test' => $conf->expedition->enabled && $user->rights->expedition->lire + ), + 'trip' => array( + 'title' => "ListTripAssociatedProject", + 'class' => 'Deplacement', + 'table' => 'deplacement', + 'disableamount' => 1, + 'test' => $conf->deplacement->enabled && $user->rights->deplacement->lire + ), + 'expensereport' => array( + 'title' => "ListExpenseReportsAssociatedProject", + 'class' => 'ExpenseReportLine', + 'table' => 'expensereport_det', + 'test' => $conf->expensereport->enabled && $user->rights->expensereport->lire + ), + 'donation' => array( + 'title' => "ListDonationsAssociatedProject", + 'class' => 'Don', + 'table' => 'don', + 'test' => $conf->don->enabled && $user->rights->don->lire + ), + 'loan' => array( + 'title' => "ListLoanAssociatedProject", + 'class' => 'Loan', + 'table' => 'loan', + 'test' => $conf->loan->enabled && $user->rights->loan->read + ), + 'chargesociales' => array( + 'title' => "ListSocialContributionAssociatedProject", + 'class' => 'ChargeSociales', + 'table' => 'chargesociales', + 'urlnew' => DOL_URL_ROOT . '/compta/sociales/card.php?action=create&projectid=' . $id, + 'test' => $conf->tax->enabled && $user->rights->tax->charges->lire + ), + 'stock_mouvement' => array( + 'title' => "ListMouvementStockProject", + 'class' => 'MouvementStock', + 'table' => 'stock_mouvement', + 'test' => ($conf->stock->enabled && $user->rights->stock->mouvement->lire && ! empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW)) + ), + 'agenda' => array( + 'title' => "ListActionsAssociatedProject", + 'class' => 'ActionComm', + 'table' => 'actioncomm', + 'disableamount' => 1, + 'test' => $conf->agenda->enabled && $user->rights->agenda->allactions->lire + ) ); //Insert reference diff --git a/htdocs/install/doctemplates/projects/template_project.odt b/htdocs/install/doctemplates/projects/template_project.odt index fca796a26ddcd9d7990b80782bed00a32db09aa8..b6fd0349ea43e1223bdb9ec01343dd1a3895963a 100644 GIT binary patch delta 21028 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 W?N|%a$Kvc+vDwaa6s!isBmV=yfD)Mi literal 29375 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 PHsq%O!d$mjcUS)hQNnij From 5a1a6ac095dfaf23020a06b018a1584bcd333802 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 15 Aug 2018 14:42:03 +0200 Subject: [PATCH 2/9] Fix error message --- htdocs/comm/action/card.php | 13 +++++++++++-- htdocs/comm/action/class/actioncomm.class.php | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 1d6a0286b68..cc99c41cf26 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2017 Laurent Destailleur + * Copyright (C) 2004-2018 Laurent Destailleur * Copyright (C) 2005 Simon TOSSER * Copyright (C) 2005-2017 Regis Houssin * Copyright (C) 2010-2013 Juanjo Menent @@ -927,6 +927,15 @@ if ($action == 'create') if ($id > 0) { $result1=$object->fetch($id); + if ($result1 <= 0) + { + $langs->load("errors"); + print $langs->trans("ErrorRecordNotFound"); + + llxFooter(); + exit; + } + $result2=$object->fetch_thirdparty(); $result2=$object->fetch_projet(); $result3=$object->fetch_contact(); @@ -957,7 +966,7 @@ if ($id > 0) $object->note = GETPOST("note",'none'); } - if ($result1 < 0 || $result2 < 0 || $result3 < 0 || $result4 < 0 || $result5 < 0) + if ($result2 < 0 || $result3 < 0 || $result4 < 0 || $result5 < 0) { dol_print_error($db,$object->error); exit; diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 0c7ad11cb3c..69fd352a85f 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -620,7 +620,7 @@ class ActionComm extends CommonObject $this->contact->id = $obj->fk_contact; // deprecated $this->fk_element = $obj->elementid; - $this->elementid = $obj->elementid; + $this->elementid = $obj->elementid; $this->elementtype = $obj->elementtype; $this->fetchResources(); From 15144a24731abc4d6ddf030cda413355bf5f88b9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 15 Aug 2018 14:42:34 +0200 Subject: [PATCH 3/9] Prepare 8.0.1 --- htdocs/filefunc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index 6bc7f126858..173f631c45c 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -31,7 +31,7 @@ */ if (! defined('DOL_APPLICATION_TITLE')) define('DOL_APPLICATION_TITLE','Dolibarr'); -if (! defined('DOL_VERSION')) define('DOL_VERSION','8.0.0'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c +if (! defined('DOL_VERSION')) define('DOL_VERSION','8.0.1'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c if (! defined('EURO')) define('EURO',chr(128)); From 7d6e25789c15a4fbe6af0ee371d8879fc091fc07 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 15 Aug 2018 15:07:23 +0200 Subject: [PATCH 4/9] Fix popup customer --- htdocs/contrat/services_list.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/contrat/services_list.php b/htdocs/contrat/services_list.php index de44410e505..66c56e2a162 100644 --- a/htdocs/contrat/services_list.php +++ b/htdocs/contrat/services_list.php @@ -197,7 +197,7 @@ $now=dol_now(); $form=new Form($db); $sql = "SELECT c.rowid as cid, c.ref, c.statut as cstatut,"; -$sql.= " s.rowid as socid, s.nom as name,"; +$sql.= " s.rowid as socid, s.nom as name, s.email, s.client, s.fournisseur,"; $sql.= " cd.rowid, cd.description, cd.statut,"; $sql.= " p.rowid as pid, p.ref as pref, p.label as label, p.fk_product_type as ptype, p.entity as pentity,"; if (!$user->rights->societe->client->voir && !$socid) $sql .= " sc.fk_soc, sc.fk_user,"; @@ -540,6 +540,11 @@ while ($i < min($num,$limit)) $contractstatic->id=$obj->cid; $contractstatic->ref=$obj->ref?$obj->ref:$obj->cid; + $companystatic->id=$obj->socid; + $companystatic->name=$obj->name; + $companystatic->email=$obj->email; + $companystatic->client=$obj->client; + $companystatic->fournisseur=$obj->fournisseur; print ''; @@ -555,7 +560,7 @@ while ($i < min($num,$limit)) if (! empty($arrayfields['p.description']['checked'])) { print ''; - if ($obj->pid) + if ($obj->pid > 0) { $productstatic->id=$obj->pid; $productstatic->type=$obj->ptype; @@ -625,9 +630,6 @@ while ($i < min($num,$limit)) if (! empty($arrayfields['s.nom']['checked'])) { print ''; - $companystatic->id=$obj->socid; - $companystatic->name=$obj->name; - $companystatic->client=1; print $companystatic->getNomUrl(1,'customer',28); print ''; if (! $i) $totalarray['nbfield']++; From 4b7889b295ac376efbe9ed09a5aa6418dad863d8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 16 Aug 2018 01:00:38 +0200 Subject: [PATCH 5/9] Fix left join broken --- htdocs/comm/propal/class/propal.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index e49fe43e2c9..4da98896b54 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1335,7 +1335,6 @@ class Propal extends CommonObject $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_availability as ca ON p.fk_availability = ca.rowid'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_input_reason as dr ON p.fk_input_reason = dr.rowid'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON p.fk_incoterms = i.rowid'; - $sql.= " WHERE p.fk_statut = c.id"; if ($ref) { $sql.= " AND p.entity IN (".getEntity('propal').")"; // Dont't use entity if you use rowid From 2719c4eb43d9c8aa87aabe05c43c51b3ecd4f0cc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 16 Aug 2018 01:01:38 +0200 Subject: [PATCH 6/9] Fix escape --- htdocs/comm/propal/class/propal.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 4da98896b54..12fe76a522a 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1338,7 +1338,7 @@ class Propal extends CommonObject if ($ref) { $sql.= " AND p.entity IN (".getEntity('propal').")"; // Dont't use entity if you use rowid - $sql.= " AND p.ref='".$ref."'"; + $sql.= " AND p.ref='".$this->db->escape($ref)."'"; } else $sql.= " AND p.rowid=".$rowid; From 1922c3d881a050071f0e5f42b96bda6cbea221e0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 16 Aug 2018 10:32:42 +0200 Subject: [PATCH 7/9] Fix menu entry --- htdocs/langs/en_US/companies.lang | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index f0c74d279a7..ebe3758f4b2 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -5,10 +5,10 @@ SelectThirdParty=Select a third party ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? DeleteContact=Delete a contact/address ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information? -MenuNewThirdParty=new Third Party -MenuNewCustomer=new Customer -MenuNewProspect=new Prospect -MenuNewSupplier=new Vendor +MenuNewThirdParty=New Third Party +MenuNewCustomer=New Customer +MenuNewProspect=Nnew Prospect +MenuNewSupplier=New Vendor MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, vendor) NewThirdParty=New Third Party (prospect, customer, vendor) From 9f5cc2d05fa55309a2e41b34efe537a0998d3878 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 16 Aug 2018 10:33:20 +0200 Subject: [PATCH 8/9] Fix menu entry --- htdocs/langs/en_US/companies.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index ebe3758f4b2..62b4e666f30 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -333,7 +333,7 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa NoContactForAnyContract=This contact is not a contact for any contract NoContactForAnyInvoice=This contact is not a contact for any invoice NewContact=New contact -NewContactAddress=new Contact/Address +NewContactAddress=New Contact/Address MyContacts=My contacts Capital=Capital CapitalOf=Capital of %s From 1b1258b2efd9f9f2de79751a3c9a1389750895a9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 16 Aug 2018 11:18:03 +0200 Subject: [PATCH 9/9] Fix url in tooltip --- htdocs/admin/modulehelp.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/modulehelp.php b/htdocs/admin/modulehelp.php index cf4596ccda2..6281376dc2e 100644 --- a/htdocs/admin/modulehelp.php +++ b/htdocs/admin/modulehelp.php @@ -313,7 +313,9 @@ if ($mode == 'desc') { $textexternal.='
'.$langs->trans("Origin").': '.$langs->trans("ExternalModule",$dirofmodule); if ($objMod->editor_name != 'dolibarr') $textexternal.='
'.$langs->trans("Publisher").': '.(empty($objMod->editor_name)?$langs->trans("Unknown"):$objMod->editor_name); - if (! empty($objMod->editor_url) && ! preg_match('/dolibarr\.org/i',$objMod->editor_url)) $textexternal.='
'.$langs->trans("Url").': '.$objMod->editor_url.''; + $editor_url = $objMod->editor_url; + if (! preg_match('/^http/', $editor_url)) $editor_url = 'http://'.$editor_url; + if (! empty($objMod->editor_url) && ! preg_match('/dolibarr\.org/i',$objMod->editor_url)) $textexternal.='
'.$langs->trans("Url").': '.$objMod->editor_url.''; $text.=$textexternal; $text.='
'; }