From 5bae9db0a82292d2eb2c01268cce2b738bc488e3 Mon Sep 17 00:00:00 2001 From: kamel Date: Tue, 2 Jun 2020 17:29:55 +0200 Subject: [PATCH 001/219] FIX: Fix detect distached product and set to received completely when the supplier order have services (support STOCK_SUPPORTS_SERVICES) --- htdocs/fourn/class/fournisseur.commande.class.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 092c3df8dc2..66788cdb126 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -3063,6 +3063,7 @@ class CommandeFournisseur extends CommonOrder { if (is_array($supplierorderdispatch->lines) && count($supplierorderdispatch->lines)>0) { + require_once DOL_DOCUMENT_ROOT.'/htdocs/product/class/product.class.php'; $date_liv = dol_now(); // Build array with quantity deliverd by product @@ -3070,7 +3071,11 @@ class CommandeFournisseur extends CommonOrder $qtydelivered[$line->fk_product]+=$line->qty; } foreach($this->lines as $line) { - $qtywished[$line->fk_product]+=$line->qty; + if ($line->product_type == Product::TYPE_PRODUCT || + ($line->product_type == Product::TYPE_SERVICE && !empty($conf->global->STOCK_SUPPORTS_SERVICES)) + ) { + $qtywished[$line->fk_product] += $line->qty; + } } //Compare array $diff_array=array_diff_assoc($qtydelivered, $qtywished); // Warning: $diff_array is done only on common keys. From e2696d7718f4ef6e344c0c50ff7509af3996d262 Mon Sep 17 00:00:00 2001 From: atm-lena Date: Fri, 15 Jan 2021 09:58:04 +0100 Subject: [PATCH 002/219] FIX Societe Merge : "unknow column fk_soc" + "Delivery" label --- htdocs/install/mysql/migration/12.0.0-13.0.0.sql | 3 +++ htdocs/install/mysql/tables/llx_mrp_production.sql | 3 ++- htdocs/societe/card.php | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql index 309d4d4b170..f1ea3d237a3 100644 --- a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql +++ b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql @@ -555,3 +555,6 @@ ALTER TABLE llx_product_fournisseur_price ADD COLUMN packaging varchar(64); ALTER TABLE llx_projet ADD COLUMN fk_opp_status_end integer DEFAULT NULL; +ALTER TABLE llx_mrp_production ADD COLUMN fk_soc integer NOT NULL; + + diff --git a/htdocs/install/mysql/tables/llx_mrp_production.sql b/htdocs/install/mysql/tables/llx_mrp_production.sql index bd0cd722f1a..d2b44427f58 100644 --- a/htdocs/install/mysql/tables/llx_mrp_production.sql +++ b/htdocs/install/mysql/tables/llx_mrp_production.sql @@ -16,7 +16,8 @@ CREATE TABLE llx_mrp_production( rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, - fk_mo integer NOT NULL, + fk_mo integer NOT NULL, + fk_soc integer NOT NULL, position integer NOT NULL DEFAULT 0, fk_product integer NOT NULL, fk_warehouse integer, diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 356c70baf3d..2f51995c785 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -249,7 +249,7 @@ if (empty($reshook)) 'FactureFournisseur' => '/fourn/class/fournisseur.facture.class.php', 'SupplierProposal' => '/supplier_proposal/class/supplier_proposal.class.php', 'ProductFournisseur' => '/fourn/class/fournisseur.product.class.php', - 'Livraison' => '/delivery/class/delivery.class.php', + 'Delivery' => '/delivery/class/delivery.class.php', 'Product' => '/product/class/product.class.php', 'Project' => '/projet/class/project.class.php', 'Ticket' => '/ticket/class/ticket.class.php', From 57f4ac2072641fa00f5297118962bf489d1f9f12 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Sat, 16 Jan 2021 23:41:06 +0100 Subject: [PATCH 003/219] Update list.php --- htdocs/societe/list.php | 73 ++++++++++++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 19 deletions(-) diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index ec748d95e94..22c7b583122 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -93,6 +93,7 @@ $search_categ_cus = trim(GETPOST("search_categ_cus", 'int')); $search_categ_sup = trim(GETPOST("search_categ_sup", 'int')); $search_country = GETPOST("search_country", 'intcomma'); $search_type_thirdparty = GETPOST("search_type_thirdparty", 'int'); +$search_price_level = GETPOST('search_prive_level', 'int'); $search_staff = GETPOST("search_staff", 'int'); $search_status = GETPOST("search_status", 'int'); $search_type = GETPOST('search_type', 'alpha'); @@ -188,8 +189,8 @@ $arrayfields = array( 's.code_compta'=>array('label'=>"CustomerAccountancyCodeShort", 'position'=>13, 'checked'=>$checkedcustomeraccountcode), 's.code_compta_fournisseur'=>array('label'=>"SupplierAccountancyCodeShort", 'position'=>14, 'checked'=>$checkedsupplieraccountcode, 'enabled'=>(!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled))), 's.address'=>array('label'=>"Address", 'position'=>19, 'checked'=>0), - 's.town'=>array('label'=>"Town", 'position'=>20, 'checked'=>0), - 's.zip'=>array('label'=>"Zip", 'position'=>21, 'checked'=>1), + 's.zip'=>array('label'=>"Zip", 'position'=>20, 'checked'=>1), + 's.town'=>array('label'=>"Town", 'position'=>21, 'checked'=>0), 'state.nom'=>array('label'=>"State", 'position'=>22, 'checked'=>0), 'region.nom'=>array('label'=>"Region", 'position'=>23, 'checked'=>0), 'country.code_iso'=>array('label'=>"Country", 'position'=>24, 'checked'=>0), @@ -198,7 +199,7 @@ $arrayfields = array( 's.phone'=>array('label'=>"Phone", 'position'=>27, 'checked'=>1), 's.fax'=>array('label'=>"Fax", 'position'=>28, 'checked'=>0), 'typent.code'=>array('label'=>"ThirdPartyType", 'position'=>29, 'checked'=>$checkedtypetiers), - 'staff.code'=>array('label'=>"Staff", 'position'=>30, 'checked'=>0), + 'staff.code'=>array('label'=>"Staff", 'position'=>31, 'checked'=>0), 's.siren'=>array('label'=>"ProfId1Short", 'position'=>40, 'checked'=>$checkedprofid1), 's.siret'=>array('label'=>"ProfId2Short", 'position'=>41, 'checked'=>$checkedprofid2), 's.ape'=>array('label'=>"ProfId3Short", 'position'=>42, 'checked'=>$checkedprofid3), @@ -215,6 +216,12 @@ $arrayfields = array( 's.status'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), 's.import_key'=>array('label'=>"ImportId", 'checked'=>0, 'position'=>1100), ); +if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) +{ + $arrayfields['s.price_level'] =array('label'=>"PriceLevel", 'position'=>30, 'checked'=>0); + +} + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; @@ -308,6 +315,7 @@ if (empty($reshook)) $search_idprof6 = ''; $search_vat = ''; $search_type = ''; + $search_prive_level = ''; $search_type_thirdparty = ''; $search_staff = ''; $search_status = -1; @@ -395,7 +403,7 @@ $sql .= " s.entity,"; $sql .= " st.libelle as stcomm, st.picto as stcomm_picto, s.fk_stcomm as stcomm_id, s.fk_prospectlevel, s.prefix_comm, s.client, s.fournisseur, s.canvas, s.status as status,"; $sql .= " s.email, s.phone, s.fax, s.url, s.siren as idprof1, s.siret as idprof2, s.ape as idprof3, s.idprof4 as idprof4, s.idprof5 as idprof5, s.idprof6 as idprof6, s.tva_intra, s.fk_pays,"; $sql .= " s.tms as date_update, s.datec as date_creation,"; -$sql .= " s.code_compta, s.code_compta_fournisseur, s.parent as fk_parent,"; +$sql .= " s.code_compta, s.code_compta_fournisseur, s.parent as fk_parent,s.price_level,"; $sql .= " s2.nom as name2,"; $sql .= " typent.code as typent_code,"; $sql .= " staff.code as staff_code,"; @@ -475,6 +483,7 @@ if ($search_type > 0 && in_array($search_type, array('4'))) $sql .= " AN if ($search_type == '0') $sql .= " AND s.client = 0 AND s.fournisseur = 0"; if ($search_status != '' && $search_status >= 0) $sql .= natural_search("s.status", $search_status, 2); if (!empty($conf->barcode->enabled) && $search_barcode) $sql .= natural_search("s.barcode", $search_barcode); +if ($search_prive_level && $search_prive_level != '-1') $sql .= natural_search("s.price_level", $search_prive_level, 2); if ($search_type_thirdparty && $search_type_thirdparty != '-1') $sql .= natural_search("s.fk_typent", $search_type_thirdparty, 2); if (!empty($search_staff) && $search_staff != '-1') $sql .= natural_search("s.fk_effectif", $search_staff, 2); if ($search_level) $sql .= natural_search("s.fk_prospectlevel", join(',', $search_level), 3); @@ -571,6 +580,7 @@ if ($search_idprof4 != '') $param .= '&search_idprof4='.urlencode($search_idprof if ($search_idprof5 != '') $param .= '&search_idprof5='.urlencode($search_idprof5); if ($search_idprof6 != '') $param .= '&search_idprof6='.urlencode($search_idprof6); if ($search_vat != '') $param .= '&search_vat='.urlencode($search_vat); +if ($search_prive_level != '') $param .= '&search_prive_level='.urlencode($search_prive_level); if ($search_type_thirdparty != '') $param .= '&search_type_thirdparty='.urlencode($search_type_thirdparty); if ($search_type != '') $param .= '&search_type='.urlencode($search_type); if (is_array($search_level) && count($search_level)) foreach ($search_level as $slevel) $param .= '&search_level[]='.urlencode($slevel); @@ -779,13 +789,6 @@ if (!empty($arrayfields['s.address']['checked'])) print ''; print ''; } -// Town -if (!empty($arrayfields['s.town']['checked'])) -{ - print ''; - print ''; - print ''; -} // Zip if (!empty($arrayfields['s.zip']['checked'])) { @@ -793,6 +796,13 @@ if (!empty($arrayfields['s.zip']['checked'])) print ''; print ''; } +// Town +if (!empty($arrayfields['s.town']['checked'])) +{ + print ''; + print ''; + print ''; +} // State if (!empty($arrayfields['state.nom']['checked'])) { @@ -821,6 +831,16 @@ if (!empty($arrayfields['typent.code']['checked'])) print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT) ? 'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT), 'maxwidth75', 1); print ''; } +// Multiprice level +if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) +{ + if (!empty($arrayfields['s.price_level']['checked'])) + { + print ''; + print ''; + print ''; + } +} // Staff if (!empty($arrayfields['staff.code']['checked'])) { @@ -989,8 +1009,8 @@ if (!empty($arrayfields['s.code_fournisseur']['checked'])) print_liste_fi if (!empty($arrayfields['s.code_compta']['checked'])) print_liste_field_titre($arrayfields['s.code_compta']['label'], $_SERVER["PHP_SELF"], "s.code_compta", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.code_compta_fournisseur']['checked'])) print_liste_field_titre($arrayfields['s.code_compta_fournisseur']['label'], $_SERVER["PHP_SELF"], "s.code_compta_fournisseur", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.address']['checked'])) print_liste_field_titre($arrayfields['s.address']['label'], $_SERVER['PHP_SELF'], 's.address', '', $param, '', $sortfield, $sortorder); -if (!empty($arrayfields['s.town']['checked'])) print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], "s.town", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.zip']['checked'])) print_liste_field_titre($arrayfields['s.zip']['label'], $_SERVER["PHP_SELF"], "s.zip", "", $param, '', $sortfield, $sortorder); +if (!empty($arrayfields['s.town']['checked'])) print_liste_field_titre($arrayfields['s.town']['label'], $_SERVER["PHP_SELF"], "s.town", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['state.nom']['checked'])) print_liste_field_titre($arrayfields['state.nom']['label'], $_SERVER["PHP_SELF"], "state.nom", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['region.nom']['checked'])) print_liste_field_titre($arrayfields['region.nom']['label'], $_SERVER["PHP_SELF"], "region.nom", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, '', $sortfield, $sortorder, 'center '); @@ -998,7 +1018,7 @@ if (!empty($arrayfields['typent.code']['checked'])) print_liste_field_titre if (!empty($arrayfields['staff.code']['checked'])) print_liste_field_titre($arrayfields['staff.code']['label'], $_SERVER["PHP_SELF"], "staff.code", "", $param, '', $sortfield, $sortorder, 'center '); if (!empty($arrayfields['s.email']['checked'])) print_liste_field_titre($arrayfields['s.email']['label'], $_SERVER["PHP_SELF"], "s.email", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.phone']['checked'])) print_liste_field_titre($arrayfields['s.phone']['label'], $_SERVER["PHP_SELF"], "s.phone", "", $param, '', $sortfield, $sortorder); -if (!empty($arrayfields['s.fax']['checked'])) print_liste_field_titre($arrayfields['s.fax']['label'], $_SERVER["PHP_SELF"], "s.fax", "", $param, '', $sortfield, $sortorder); +if (!empty($arrayfields['s.fax']['checked'])) print_liste_field_titre($arrayfields['s.fax']['label'], $_SERVER["PHP_SELF"], "s.fax", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.url']['checked'])) print_liste_field_titre($arrayfields['s.url']['label'], $_SERVER["PHP_SELF"], "s.url", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.siren']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId1Short"), $textprofid[1], 1, 0), $_SERVER["PHP_SELF"], "s.siren", "", $param, '', $sortfield, $sortorder, 'nowrap '); if (!empty($arrayfields['s.siret']['checked'])) print_liste_field_titre($form->textwithpicto($langs->trans("ProfId2Short"), $textprofid[2], 1, 0), $_SERVER["PHP_SELF"], "s.siret", "", $param, '', $sortfield, $sortorder, 'nowrap '); @@ -1011,6 +1031,12 @@ if (!empty($arrayfields['customerorsupplier']['checked'])) print_liste_fi if (!empty($arrayfields['s.fk_prospectlevel']['checked'])) print_liste_field_titre($arrayfields['s.fk_prospectlevel']['label'], $_SERVER["PHP_SELF"], "s.fk_prospectlevel", "", $param, '', $sortfield, $sortorder, 'center '); if (!empty($arrayfields['s.fk_stcomm']['checked'])) print_liste_field_titre($arrayfields['s.fk_stcomm']['label'], $_SERVER["PHP_SELF"], "s.fk_stcomm", "", $param, '', $sortfield, $sortorder, 'center '); if (!empty($arrayfields['s2.nom']['checked'])) print_liste_field_titre($arrayfields['s2.nom']['label'], $_SERVER["PHP_SELF"], "s2.nom", "", $param, '', $sortfield, $sortorder, 'center '); +// Multiprice level +if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) +{ + if (!empty($arrayfields['s.price_level']['checked'])) print_liste_field_titre($arrayfields['s.price_level']['label'], $_SERVER["PHP_SELF"], "s.price_level", "", $param, '', $sortfield, $sortorder); +} + // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; // Hook fields @@ -1123,18 +1149,18 @@ while ($i < min($num, $limit)) print ''.$obj->address.''; if (!$i) $totalarray['nbfield']++; } - // Town - if (!empty($arrayfields['s.town']['checked'])) - { - print "".$obj->town."\n"; - if (!$i) $totalarray['nbfield']++; - } // Zip if (!empty($arrayfields['s.zip']['checked'])) { print "".$obj->zip."\n"; if (!$i) $totalarray['nbfield']++; } + // Town + if (!empty($arrayfields['s.town']['checked'])) + { + print "".$obj->town."\n"; + if (!$i) $totalarray['nbfield']++; + } // State if (!empty($arrayfields['state.nom']['checked'])) { @@ -1165,6 +1191,15 @@ while ($i < min($num, $limit)) print ''; if (!$i) $totalarray['nbfield']++; } + // Multiprice level + if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) + { + if (!empty($arrayfields['s.price_level']['checked'])) + { + print "".$obj->price_level."\n"; + if (!$i) $totalarray['nbfield']++; + } + } // Staff if (!empty($arrayfields['staff.code']['checked'])) { From af169ac700082783b114f90db710d0bb3c59b35a Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Sat, 16 Jan 2021 22:49:15 +0000 Subject: [PATCH 004/219] Fixing style errors. --- htdocs/societe/list.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 22c7b583122..35d1c123092 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -219,7 +219,6 @@ $arrayfields = array( if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) { $arrayfields['s.price_level'] =array('label'=>"PriceLevel", 'position'=>30, 'checked'=>0); - } // Extra fields From 79308b332bc1b90b79da777f18adfa78158a4e7f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 20 Jan 2021 11:41:17 +0100 Subject: [PATCH 005/219] Trans --- htdocs/langs/en_US/mrp.lang | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index 902f167d819..3dbcda8e4eb 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -8,11 +8,11 @@ MenuBOM=Bills of material LatestBOMModified=Latest %s Bills of materials modified LatestMOModified=Latest %s Manufacturing Orders modified Bom=Bills of Material -BillOfMaterials=Bill of Material +BillOfMaterials=Bill of Materials BOMsSetup=Setup of module BOM ListOfBOMs=List of bills of material - BOM ListOfManufacturingOrders=List of Manufacturing Orders -NewBOM=New bill of material +NewBOM=New bill of materials ProductBOMHelp=Product to create with this BOM.
Note: Products with the property 'Nature of product' = 'Raw material' are not visible into this list. BOMsNumberingModules=BOM numbering templates BOMsModelModule=BOM document templates @@ -22,7 +22,7 @@ FreeLegalTextOnBOMs=Free text on document of BOM WatermarkOnDraftBOMs=Watermark on draft BOM FreeLegalTextOnMOs=Free text on document of MO WatermarkOnDraftMOs=Watermark on draft MO -ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of materials %s ? ConfirmCloneMo=Are you sure you want to clone the Manufacturing Order %s ? ManufacturingEfficiency=Manufacturing efficiency ConsumptionEfficiency=Consumption efficiency @@ -30,8 +30,8 @@ ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the produc ValueOfMeansLossForProductProduced=Value of 0.95 means an average of 5%% of loss of produced product DeleteBillOfMaterials=Delete Bill Of Materials DeleteMo=Delete Manufacturing Order -ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? -ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Materials? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Materials? MenuMRP=Manufacturing Orders NewMO=New Manufacturing Order QtyToProduce=Qty to produce From 640cf50b7fa570297ce8eda96628faba9f2696f7 Mon Sep 17 00:00:00 2001 From: BlackMirror Date: Wed, 20 Jan 2021 15:20:50 +0100 Subject: [PATCH 006/219] [FM] Fix 12.0 - duplicate label, probably mistaken for ref --- htdocs/core/modules/contract/doc/pdf_strato.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index f8b7908654b..3c7c74d0362 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -343,7 +343,7 @@ class pdf_strato extends ModelePDFContract } $txtpredefinedservice = ''; - $txtpredefinedservice = $objectligne->product_label; + $txtpredefinedservice = $objectligne->product_ref; if ($objectligne->product_label) { $txtpredefinedservice .= ' - '; From 645685d16e5183436d61856be0c0e77bfd77c5c7 Mon Sep 17 00:00:00 2001 From: Adrien Raze Date: Wed, 20 Jan 2021 18:39:18 +0100 Subject: [PATCH 007/219] FIX : Linked extrafields list --- htdocs/core/class/commonobject.class.php | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index afb6909c340..f6e21cf5e50 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6568,15 +6568,30 @@ abstract class CommonObject var parent = $(this).find("option[parent]:first").attr("parent"); var infos = parent.split(":"); var parent_list = infos[0]; - showOptions(child_list, parent_list); - - /* Activate the handler to call showOptions on each future change */ + //Hide daughters lists + if ($("#"+child_list).val() == 0 && $("#"+parent_list).val() == 0){ + $("#"+child_list).hide(); + //Show mother lists + } else if ($("#"+parent_list).val() != 0){ + $("#"+parent_list).show(); + } + //show the child list if the parent list value is selected + $("select[name=\""+parent_list+"\"]").click(function() { + if ($(this).val() != 0){ + $("#"+child_list).show() + } + }); $("select[name=\""+parent_list+"\"]").change(function() { showOptions(child_list, parent_list); + //Select the value 0 on child list on change on the parent list + $("#"+child_list).val(0).trigger("change"); + //Hide child lists if the parent value is set to 0 + if ($(this).val() == 0){ + $("#"+child_list).hide(); + } }); }); } - setListDependencies(); }); '."\n"; From cd4225aee06fd8ec085a19d354eaa901acd2fd89 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Thu, 21 Jan 2021 09:45:09 +0100 Subject: [PATCH 008/219] Fix #16027 New Feature copy Code Client --- htdocs/societe/card.php | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 0d8a92c1cf3..342ee1b8ee3 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2423,8 +2423,29 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) if ($object->client) { print ''; - print $langs->trans('CustomerCode').''; - print $object->code_client; + print $langs->trans('CustomerCode').''; + print ""; + print ''; + print $object->code_client .''; $tmpcheck = $object->check_codeclient(); if ($tmpcheck != 0 && $tmpcheck != -5) { print ' ('.$langs->trans("WrongCustomerCode").')'; From b2809e4ee25c671171b878eaa3abfc8f1d717181 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Thu, 21 Jan 2021 09:54:26 +0100 Subject: [PATCH 009/219] add trans to copied to clipboard text --- htdocs/langs/en_US/companies.lang | 1 + htdocs/societe/card.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 99bed13179f..e0381d6fdef 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -467,3 +467,4 @@ RestOfEurope=Rest of Europe (EEC) OutOfEurope=Out of Europe (EEC) CurrentOutstandingBillLate=Current outstanding bill late BecarefullChangeThirdpartyBeforeAddProductToInvoice=Be carefull, depending on your product price settings, you should change thirdparty before adding product to POS. +CopiedToClipboard = Copied to clipboard \ No newline at end of file diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 342ee1b8ee3..75771f3d419 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2438,10 +2438,10 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) selection.addRange( range ); } - + document.execCommand( 'copy' ); window.getSelection().removeAllRanges(); - document.getElementById( \"clipboardChar\" ).innerHTML = 'Copied to clipboard!'; + document.getElementById( \"clipboardChar\" ).innerHTML = '".$langs->trans("CopiedToClipboard")."'; } "; print ''; From d1af419d02a4699410525cd5ee7ed4308006e9fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Jan 2021 11:50:15 +0100 Subject: [PATCH 010/219] More log to debug payment errors --- htdocs/paypal/lib/paypal.lib.php | 9 ++++++--- htdocs/public/payment/paymentko.php | 2 +- htdocs/public/payment/paymentok.php | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php index 655d501cac3..873678adcae 100644 --- a/htdocs/paypal/lib/paypal.lib.php +++ b/htdocs/paypal/lib/paypal.lib.php @@ -105,7 +105,7 @@ function print_paypal_redirect($paymentAmount, $currencyCodeType, $paymentType, $landingPage = 'Billing'; } - dol_syslog("expresscheckout redirect with callSetExpressCheckout $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL, $tag, $solutionType, $landingPage, $shipToName, $shipToStreet, $shipToCity, $shipToState, $shipToCountryCode, $shipToZip, $shipToStreet2, $phoneNum"); + dol_syslog("print_paypal_redirect expresscheckout redirect with callSetExpressCheckout $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL, $tag, $solutionType, $landingPage, $shipToName, $shipToStreet, $shipToCity, $shipToState, $shipToCountryCode, $shipToZip, $shipToStreet2, $phoneNum"); $resArray = callSetExpressCheckout( $paymentAmount, $currencyCodeType, @@ -127,6 +127,8 @@ function print_paypal_redirect($paymentAmount, $currencyCodeType, $paymentType, $desc ); + dol_syslog("print_paypal_redirect resArray=".var_export($resArray, true), LOG_DEBUG); + $ack = strtoupper($resArray["ACK"]); if ($ack == "SUCCESS" || $ack == "SUCCESSWITHWARNING") { @@ -134,6 +136,7 @@ function print_paypal_redirect($paymentAmount, $currencyCodeType, $paymentType, // Redirect to paypal.com here $payPalURL = $API_Url.$token; + dol_syslog("Redirect to ".$payPalURL, LOG_INFO); header("Location: ".$payPalURL); exit; } else { @@ -282,7 +285,7 @@ function callSetExpressCheckout($paymentAmount, $currencyCodeType, $paymentType, $_SESSION["FinalPaymentAmt"] = $paymentAmount; $_SESSION["currencyCodeType"] = $currencyCodeType; $_SESSION["PaymentType"] = $paymentType; // 'Mark', 'Sole' - $_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR']; // Payer ip + $_SESSION['ipaddress'] = getUserRemoteIP(); // Payer ip //'--------------------------------------------------------------------------------------------------------------- //' Make the API call to PayPal @@ -433,7 +436,7 @@ function DirectPayment($paymentType, $paymentAmount, $creditCardType, $creditCar $nvpstr = $nvpstr . "&CITY=" . urlencode($city); $nvpstr = $nvpstr . "&STATE=" . urlencode($state); $nvpstr = $nvpstr . "&COUNTRYCODE=" . urlencode($countryCode); - $nvpstr = $nvpstr . "&IPADDRESS=" . $_SERVER['REMOTE_ADDR']; + $nvpstr = $nvpstr . "&IPADDRESS=" . getUserRemotIP(); $nvpstr = $nvpstr . "&INVNUM=" . urlencode($tag); $resArray=hash_call("DoDirectPayment", $nvpstr); diff --git a/htdocs/public/payment/paymentko.php b/htdocs/public/payment/paymentko.php index ac92c958931..b99c4a39392 100644 --- a/htdocs/public/payment/paymentko.php +++ b/htdocs/public/payment/paymentko.php @@ -31,7 +31,7 @@ if (!defined('NOIPCHECK')) define('NOIPCHECK', '1'); // Do not check IP defined if (!defined('NOBROWSERNOTIF')) define('NOBROWSERNOTIF', '1'); // For MultiCompany module. -// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php +// Do not use GETPOST here, function is not defined and this test must be done before including main.inc.php // TODO This should be useless. Because entity must be retrieve from object ref and not from url. $entity = (!empty($_GET['e']) ? (int) $_GET['e'] : (!empty($_POST['e']) ? (int) $_POST['e'] : 1)); if (is_numeric($entity)) define("DOLENTITY", $entity); diff --git a/htdocs/public/payment/paymentok.php b/htdocs/public/payment/paymentok.php index ef4931c4b4a..346e4003e4c 100644 --- a/htdocs/public/payment/paymentok.php +++ b/htdocs/public/payment/paymentok.php @@ -409,7 +409,7 @@ if ($ispaymentok) $postactionmessages[] = $errmsg; $ispostactionok = -1; } else { - $postactionmessages[] = 'Subscription created'; + $postactionmessages[] = 'Subscription created (id='.$crowid.')'; $ispostactionok = 1; } } From af438624a6cda1888c2a0e3f4a063a155cc39cd3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Jan 2021 13:21:22 +0100 Subject: [PATCH 011/219] Update commonobject.class.php --- htdocs/core/class/commonobject.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index a16c621a1fd..8e303ac0f1a 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -7151,7 +7151,7 @@ abstract class CommonObject } }); - //When we change parent list + //When we change parent list $("select[name=\""+parent_list+"\"]").change(function() { showOptions(child_list, parent_list, orig_select[child_list]); //Select the value 0 on child list after a change on the parent list From 69479584ed303df8a641096b1e2b9b516e3e2ce1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Jan 2021 13:50:31 +0100 Subject: [PATCH 012/219] Fix $ok is not used --- htdocs/core/actions_setmoduleoptions.inc.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/htdocs/core/actions_setmoduleoptions.inc.php b/htdocs/core/actions_setmoduleoptions.inc.php index 24220f79f8c..31af34e3ad1 100644 --- a/htdocs/core/actions_setmoduleoptions.inc.php +++ b/htdocs/core/actions_setmoduleoptions.inc.php @@ -21,7 +21,7 @@ * \brief Code for actions on setting notes of object page */ - +// $error must have been initialized to 0 // $action must be defined // $arrayofparameters must be set for action 'update' // $nomessageinupdate can be set to 1 @@ -31,7 +31,6 @@ if ($action == 'update' && is_array($arrayofparameters)) { $db->begin(); - $ok = true; foreach ($arrayofparameters as $key => $val) { // Modify constant only if key was posted (avoid resetting key to the null value) @@ -40,7 +39,7 @@ if ($action == 'update' && is_array($arrayofparameters)) $result = dolibarr_set_const($db, $key, GETPOST($key, 'alpha'), 'chaine', 0, '', $conf->entity); if ($result < 0) { - $ok = false; + $error++; break; } } @@ -93,7 +92,11 @@ if ($action == 'setModuleOptions') if (!$tmpdir) { unset($listofdir[$key]); continue; } - if (!is_dir($tmpdir)) $texttitle .= img_warning($langs->trans("ErrorDirNotFound", $tmpdir), 0); + if (!is_dir($tmpdir)) { + if (empty($nomessageinsetmoduleoptions)) { + setEventMessages($langs->trans("ErrorDirNotFound", $tmpdir), null, 'warnings'); + } + } else { $upload_dir = $tmpdir; } From c3ad44320072707361416a853cd02f131d404b52 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Jan 2021 13:52:23 +0100 Subject: [PATCH 013/219] Fix var not defined --- htdocs/admin/agenda_other.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/admin/agenda_other.php b/htdocs/admin/agenda_other.php index c1f77f4995e..a072869be8c 100644 --- a/htdocs/admin/agenda_other.php +++ b/htdocs/admin/agenda_other.php @@ -51,6 +51,7 @@ $type = 'action'; include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; +$reg = array(); if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) { $code = $reg[1]; From 039cb0685bea042180114befb0a081e3f2fdcf96 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Jan 2021 14:43:57 +0100 Subject: [PATCH 014/219] Fix default filter --- htdocs/modulebuilder/template/myobject_list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 7d09667bd22..a27ddb524a3 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -106,7 +106,7 @@ $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // Default sort order (if not yet defined by previous GETPOST) -if (!$sortfield) $sortfield = "t.".key($object->fields); // Set here default search field. By default 1st field in definition. +if (!$sortfield) { reset($object->fields); $sortfield="t.".key($object->fields); } // Set here default search field. By default 1st field in definition. Reset is required to avoid key() to return null. if (!$sortorder) $sortorder = "ASC"; // Initialize array of search criterias From a55d23f363432355efd0001cb8957d6d3eab7943 Mon Sep 17 00:00:00 2001 From: BlackMirror Date: Thu, 21 Jan 2021 15:55:52 +0100 Subject: [PATCH 015/219] [FM] FIX - ticket extrafields of type 'date' are not saved --- htdocs/ticket/card.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index 076c42867ca..aaf5b29a985 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -560,17 +560,21 @@ if (empty($reshook)) { // Action to update one extrafield if ($action == "update_extras" && !empty($permissiontoadd)) { $object->fetch(GETPOST('id', 'int'), '', GETPOST('track_id', 'alpha')); - $attributekey = GETPOST('attribute', 'alpha'); - $attributekeylong = 'options_' . $attributekey; - $object->array_options['options_' . $attributekey] = GETPOST($attributekeylong, ' alpha'); - $result = $object->insertExtraFields(empty($triggermodname) ? '' : $triggermodname, $user); - if ($result > 0) { - setEventMessages($langs->trans('RecordSaved'), null, 'mesgs'); - $action = 'view'; - } else { + $ret = $extrafields->setOptionalsFromPost(null, $object, GETPOST('attribute', 'none')); + if ($ret < 0) $error++; + if (!$error) + { + $result = $object->insertExtraFields(empty($triggermodname) ? '' : $triggermodname, $user); + if ($result < 0) { $error++; } + } + + if ($error) { setEventMessages($object->error, $object->errors, 'errors'); $action = 'edit_extras'; + } else { + setEventMessages($langs->trans('RecordSaved'), null, 'mesgs'); + $action = 'view'; } } From 5e67e11eb3aa7e8afe04f9e2775c42c241a5d4b8 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Thu, 21 Jan 2021 17:15:32 +0100 Subject: [PATCH 016/219] update societe/card.php clipboard copy in fonction --- htdocs/societe/card.php | 68 ++++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 25 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 75771f3d419..511bde61bcf 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2408,7 +2408,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) if (!empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) { print ''.$langs->trans('Supplier').''; - print yn($object->fournisseur); + print showValueWithCopyAndPasteButton(yn($object->fournisseur),'supplier',$langs); print ''; } @@ -2423,29 +2423,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) if ($object->client) { print ''; - print $langs->trans('CustomerCode').''; - print ""; - print ''; - print $object->code_client .''; + print $langs->trans('CustomerCode'); + print ''; + print ''; + print showValueWithCopyAndPasteButton($object->code_client, 'code_client',$langs); + print ''; $tmpcheck = $object->check_codeclient(); if ($tmpcheck != 0 && $tmpcheck != -5) { print ' ('.$langs->trans("WrongCustomerCode").')'; @@ -2957,7 +2939,43 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; } } - +/** + * @param string $valuetoprint the value to print + * @param string $spanid unique id for a span + * @param Translate $langs the $langs variable + * @return string the string to print for the button + */ +function showValueWithCopyAndPasteButton($valuetoprint,$spanid,$langs){ + $stringtoprint= ''; + $stringtoprint.= $valuetoprint .' '; + $stringtoprint.= ''; + $stringtoprint.=''; + $stringtoprint.=""; + return $stringtoprint; +} // End of page llxFooter(); $db->close(); + From 006fbb18588b11bdcb0bb50edfc2d5a8c68c4312 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Thu, 21 Jan 2021 16:16:14 +0000 Subject: [PATCH 017/219] Fixing style errors. --- htdocs/societe/card.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 511bde61bcf..567cd8483ba 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2408,7 +2408,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) if (!empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) { print ''.$langs->trans('Supplier').''; - print showValueWithCopyAndPasteButton(yn($object->fournisseur),'supplier',$langs); + print showValueWithCopyAndPasteButton(yn($object->fournisseur), 'supplier', $langs); print ''; } @@ -2426,7 +2426,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) print $langs->trans('CustomerCode'); print ''; print ''; - print showValueWithCopyAndPasteButton($object->code_client, 'code_client',$langs); + print showValueWithCopyAndPasteButton($object->code_client, 'code_client', $langs); print ''; $tmpcheck = $object->check_codeclient(); if ($tmpcheck != 0 && $tmpcheck != -5) { @@ -2945,7 +2945,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) * @param Translate $langs the $langs variable * @return string the string to print for the button */ -function showValueWithCopyAndPasteButton($valuetoprint,$spanid,$langs){ +function showValueWithCopyAndPasteButton($valuetoprint, $spanid, $langs) +{ $stringtoprint= ''; $stringtoprint.= $valuetoprint .' '; $stringtoprint.= ''; @@ -2978,4 +2979,3 @@ function showValueWithCopyAndPasteButton($valuetoprint,$spanid,$langs){ // End of page llxFooter(); $db->close(); - From 59d2d021514c66c6b09a0ad3a894255854b5b069 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Thu, 21 Jan 2021 17:17:10 +0100 Subject: [PATCH 018/219] removing my tests --- htdocs/societe/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 511bde61bcf..bc4aaf3e864 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2408,7 +2408,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) if (!empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) { print ''.$langs->trans('Supplier').''; - print showValueWithCopyAndPasteButton(yn($object->fournisseur),'supplier',$langs); + print yn($object->fournisseur); print ''; } From 0f7bdef1c12a7f84edf7d87c47e4712ee56d61ab Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Jan 2021 18:02:17 +0100 Subject: [PATCH 019/219] FIX in pages of balances --- htdocs/accountancy/admin/card.php | 2 +- htdocs/accountancy/bookkeeping/balance.php | 32 ++++++++++++++++--- .../accountancy/class/bookkeeping.class.php | 16 +++++----- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index c905ad25cd0..23ebde7e230 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -76,7 +76,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors'); $action = 'create'; } else { - $sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS; + $sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid='.((int) $conf->global->CHARTOFACCOUNTS); dol_syslog('accountancy/admin/card.php:: $sql=' . $sql); $result = $db->query($sql); diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index fcd7efdab47..de60bd09897 100644 --- a/htdocs/accountancy/bookkeeping/balance.php +++ b/htdocs/accountancy/bookkeeping/balance.php @@ -16,7 +16,6 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * */ /** @@ -307,7 +306,7 @@ if ($action != 'export_csv') $accountingaccountstatic->fetch(null, $line->numero_compte, true); if (!empty($accountingaccountstatic->account_number)) { - $accounting_account = $accountingaccountstatic->getNomUrl(0, 1); + $accounting_account = $accountingaccountstatic->getNomUrl(0, 1, 0, '', 0, -1, 0, 'accountcard'); } else { $accounting_account = length_accountg($line->numero_compte); } @@ -322,10 +321,19 @@ if ($action != 'export_csv') $root_account_description = $tmparrayforrootaccount['label']; $root_account_number = $tmparrayforrootaccount['account_number']; + //var_dump($tmparrayforrootaccount); + //var_dump($accounting_account); + //var_dump($accountingaccountstatic); if (empty($accountingaccountstatic->label) && $accountingaccountstatic->id > 0) { $link = '' . img_edit() . ''; - } elseif (empty($tmparrayforrootaccount['label'])) { + } elseif ($accounting_account == 'NotDefined') { $link = '' . img_edit_add() . ''; + } elseif (empty($tmparrayforrootaccount['label'])) { + // $tmparrayforrootaccount['label'] not defined = the account has not parent with a parent. + // This is useless, we should not create a new account when an account has no parent, we must edit it to fix its parent. + // BUG 1: Accounts on level root or level 1 must not have a parent 2 level higher, so shoule not show a link to create another account. + // BUG 2: Adding a link to create a new accounting account here is useless because it is not add as parent of the orphelin. + //$link = '' . img_edit_add() . ''; } if (!empty($show_subgroup)) @@ -363,8 +371,22 @@ if ($action != 'export_csv') print ''; print ''.$accounting_account.''; if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) print ''.price($opening_balance).''; - print ''.price($line->debit).''; - print ''.price($line->credit).''; + + $urlzoom = ''; + if ($line->numero_compte) { + $urlzoom = DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?search_accountancy_code_start='.urlencode($line->numero_compte).'&search_accountancy_code_end='.urlencode($line->numero_compte); + if (GETPOSTISSET('date_startmonth')) { + $urlzoom .= '&search_date_startmonth='.GETPOST('date_startmonth', 'int').'&search_date_startday='.GETPOST('date_startday', 'int').'&search_date_startyear='.GETPOST('date_startyear', 'int'); + } + if (GETPOSTISSET('date_endmonth')) { + $urlzoom .= '&search_date_endmonth='.GETPOST('date_endmonth', 'int').'&search_date_endday='.GETPOST('date_endday', 'int').'&search_date_endyear='.GETPOST('date_endyear', 'int'); + } + } + // Debit + print ''.price($line->debit).''; + // Credit + print ''.price($line->credit).''; + if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) { print ''.price(price2num($opening_balance + $line->debit - $line->credit, 'MT')).''; } else { diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 40af8784817..614040fc063 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1914,25 +1914,24 @@ class BookKeeping extends CommonObject /** * Return id and description of a root accounting account. - * This function takes the parent of parent to get the root account ! + * FIXME: This function takes the parent of parent to get the root account ! * * @param string $account Accounting account - * @return string Root account + * @return array Array with root account information (max 2 upper level) */ public function getRootAccount($account = null) { global $conf; $pcgver = $conf->global->CHARTOFACCOUNTS; - $sql = "SELECT root.rowid, root.account_number, root.label as label"; + $sql = "SELECT root.rowid, root.account_number, root.label as label,"; + $sql .= " parent.rowid as parent_rowid, parent.account_number as parent_account_number, parent.label as parent_label"; $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa"; $sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; $sql .= " AND asy.rowid = ".((int) $pcgver); - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as parent ON aa.account_parent = parent.rowid"; - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as root ON parent.account_parent = root.rowid"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as parent ON aa.account_parent = parent.rowid AND parent.active = 1"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as root ON parent.account_parent = root.rowid AND root.active = 1"; $sql .= " WHERE aa.account_number = '".$this->db->escape($account)."'"; - $sql .= " AND parent.active = 1"; - $sql .= " AND root.active = 1"; $sql .= " AND aa.entity IN (".getEntity('accountancy').")"; dol_syslog(get_class($this)."::select_account sql=".$sql, LOG_DEBUG); @@ -1943,7 +1942,8 @@ class BookKeeping extends CommonObject $obj = $this->db->fetch_object($resql); } - return array('id'=>$obj->rowid, 'account_number'=>$obj->account_number, 'label'=>$obj->label); + $result = array('id'=>$obj->rowid, 'account_number'=>$obj->account_number, 'label'=>$obj->label); + return $result; } else { $this->error = "Error ".$this->db->lasterror(); dol_syslog(__METHOD__." ".$this->error, LOG_ERR); From 8076d47b8ace775c90537918704e6fb11f9c6676 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Jan 2021 19:08:03 +0100 Subject: [PATCH 020/219] FIX #15980 --- htdocs/accountancy/bookkeeping/card.php | 27 ++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 21077dececd..e5a061d34bd 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -63,9 +63,11 @@ $accountingjournal->fetch(null, $journal_code); $journal_label = $accountingjournal->label; $subledger_account = GETPOST('subledger_account', 'alphanohtml'); -if ($subledger_account == - 1) { +if ($subledger_account == -1) { $subledger_account = null; } +$subledger_label = GETPOST('subledger_label', 'alphanohtml'); + $label_operation = GETPOST('label_operation', 'alphanohtml'); $debit = price2num(GETPOST('debit', 'alpha')); $credit = price2num(GETPOST('credit', 'alpha')); @@ -108,6 +110,7 @@ if ($action == "confirm_update") { } else { $object->numero_compte = $accountingaccount_number; $object->subledger_account = $subledger_account; + $object->subledger_label = $subledger_label; $object->label_compte = $accountingaccount_label; $object->label_operation = $label_operation; $object->debit = $debit; @@ -160,6 +163,7 @@ if ($action == "confirm_update") { $object->numero_compte = $accountingaccount_number; $object->subledger_account = $subledger_account; + $object->subledger_label = $subledger_label; $object->label_compte = $accountingaccount_label; $object->label_operation = $label_operation; $object->debit = $debit; @@ -578,7 +582,7 @@ if ($action == 'create') print '
'; - $result = $object->fetchAllPerMvt($piece_num, $mode); + $result = $object->fetchAllPerMvt($piece_num, $mode); // This load $object->linesmvt if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { @@ -630,9 +634,10 @@ if ($action == 'create') if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { print $formaccounting->select_auxaccount((GETPOSTISSET("subledger_account") ? GETPOST("subledger_account", "alpha") : $line->subledger_account), 'subledger_account', 1); } else { - print 'subledger_account).'">'; + print 'subledger_account).'" placeholder="'.dol_escape_htmltag($langs->trans("SubledgerAccount")).'">'; } - // TODO Add also the label + // Add also input for subledger label + print '
subledger_label).'" placeholder="'.dol_escape_htmltag($langs->trans("SubledgerAccountLabel")).'">'; print ''; print 'label_operation).'">'; print 'debit)).'">'; @@ -644,20 +649,24 @@ if ($action == 'create') } else { $accountingaccount->fetch(null, $line->numero_compte, true); print ''.$accountingaccount->getNomUrl(0, 1, 1, '', 0).''; - print ''.length_accounta($line->subledger_account).''; + print ''.length_accounta($line->subledger_account); + if ($line->subledger_label) { + print ' - '.$line->subledger_label.''; + } + print ''; print ''.$line->label_operation.''; print ''.price($line->debit).''; print ''.price($line->credit).''; print ''; - print 'id.'&piece_num='.$line->piece_num.'&mode='.$mode.'">'; + print 'id.'&piece_num='.urlencode($line->piece_num).'&mode='.urlencode($mode).'&token='.urlencode(newToken()).'">'; print img_edit('', 0, 'class="marginrightonly"'); print '  '; $actiontodelete = 'delete'; if ($mode == '_tmp' || $action != 'delmouv') $actiontodelete = 'confirm_delete'; - print ''; + print ''; print img_delete(); print ''; @@ -688,9 +697,9 @@ if ($action == 'create') if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { print $formaccounting->select_auxaccount('', 'subledger_account', 1); } else { - print ''; + print ''; } - // TODO Add also the label + print '
'; print ''; print ''; print ''; From 939f27deed0d4e6a23093e56d0f2461a2555a76c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Thu, 21 Jan 2021 20:55:46 +0100 Subject: [PATCH 021/219] Accountancy - Gestimum v3 / v5 Added a sort to excluse line at zero --- .../class/accountancyexport.class.php | 214 +++++++++--------- 1 file changed, 112 insertions(+), 102 deletions(-) diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index c57ee343b00..fccd746f2e8 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -57,8 +57,8 @@ class AccountancyExport public static $EXPORT_TYPE_OPENCONCERTO = 100; public static $EXPORT_TYPE_LDCOMPTA = 110; public static $EXPORT_TYPE_LDCOMPTA10 = 120; - public static $EXPORT_TYPE_GESTINUMV3 = 130; - public static $EXPORT_TYPE_GESTINUMV5 = 135; + public static $EXPORT_TYPE_GESTIMUMV3 = 130; + public static $EXPORT_TYPE_GESTIMUMV5 = 135; public static $EXPORT_TYPE_FEC = 1000; public static $EXPORT_TYPE_FEC2 = 1010; @@ -119,8 +119,8 @@ class AccountancyExport self::$EXPORT_TYPE_CHARLEMAGNE => $langs->trans('Modelcsv_charlemagne'), self::$EXPORT_TYPE_LDCOMPTA => $langs->trans('Modelcsv_LDCompta'), self::$EXPORT_TYPE_LDCOMPTA10 => $langs->trans('Modelcsv_LDCompta10'), - self::$EXPORT_TYPE_GESTINUMV3 => $langs->trans('Modelcsv_Gestinum_v3'), - self::$EXPORT_TYPE_GESTINUMV5 => $langs->trans('Modelcsv_Gestinum_v5'), + self::$EXPORT_TYPE_GESTIMUMV3 => $langs->trans('Modelcsv_Gestinum_v3'), + self::$EXPORT_TYPE_GESTIMUMV5 => $langs->trans('Modelcsv_Gestinum_v5'), self::$EXPORT_TYPE_FEC => $langs->trans('Modelcsv_FEC'), self::$EXPORT_TYPE_FEC2 => $langs->trans('Modelcsv_FEC2'), ); @@ -154,8 +154,8 @@ class AccountancyExport self::$EXPORT_TYPE_CHARLEMAGNE => 'charlemagne', self::$EXPORT_TYPE_LDCOMPTA => 'ldcompta', self::$EXPORT_TYPE_LDCOMPTA10 => 'ldcompta10', - self::$EXPORT_TYPE_GESTINUMV3 => 'gestinumv3', - self::$EXPORT_TYPE_GESTINUMV5 => 'gestinumv5', + self::$EXPORT_TYPE_GESTIMUMV3 => 'gestimumv3', + self::$EXPORT_TYPE_GESTIMUMV5 => 'gestimumv5', self::$EXPORT_TYPE_FEC => 'fec', self::$EXPORT_TYPE_FEC2 => 'fec2', ); @@ -227,11 +227,13 @@ class AccountancyExport self::$EXPORT_TYPE_LDCOMPTA10 => array( 'label' => $langs->trans('Modelcsv_LDCompta10'), ), - self::$EXPORT_TYPE_GESTINUMV3 => array( + self::$EXPORT_TYPE_GESTIMUMV3 => array( 'label' => $langs->trans('Modelcsv_Gestinumv3'), + 'ACCOUNTING_EXPORT_FORMAT' => 'txt', ), - self::$EXPORT_TYPE_GESTINUMV5 => array( + self::$EXPORT_TYPE_GESTIMUMV5 => array( 'label' => $langs->trans('Modelcsv_Gestinumv5'), + 'ACCOUNTING_EXPORT_FORMAT' => 'txt', ), self::$EXPORT_TYPE_FEC => array( 'label' => $langs->trans('Modelcsv_FEC'), @@ -320,10 +322,10 @@ class AccountancyExport case self::$EXPORT_TYPE_LDCOMPTA10 : $this->exportLDCompta10($TData); break; - case self::$EXPORT_TYPE_GESTINUMV3 : + case self::$EXPORT_TYPE_GESTIMUMV3 : $this->exportGestimumV3($TData); break; - case self::$EXPORT_TYPE_GESTINUMV5 : + case self::$EXPORT_TYPE_GESTIMUMV5 : $this->exportGestimumV5($TData); break; case self::$EXPORT_TYPE_FEC : @@ -1628,81 +1630,85 @@ class AccountancyExport $invoices_infos = array(); $supplier_invoices_infos = array(); foreach ($objectLines as $line) { - $date = dol_print_date($line->doc_date, '%d/%m/%Y'); - - $invoice_ref = $line->doc_ref; - $company_name = ""; - - if (($line->doc_type == 'customer_invoice' || $line->doc_type == 'supplier_invoice') && $line->fk_doc > 0) { - if (($line->doc_type == 'customer_invoice' && !isset($invoices_infos[$line->fk_doc])) || - ($line->doc_type == 'supplier_invoice' && !isset($supplier_invoices_infos[$line->fk_doc]))) { - if ($line->doc_type == 'customer_invoice') { - // Get new customer invoice ref and company name - $sql = 'SELECT f.ref, s.nom FROM ' . MAIN_DB_PREFIX . 'facture as f'; - $sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'societe AS s ON f.fk_soc = s.rowid'; - $sql .= ' WHERE f.rowid = ' . $line->fk_doc; - $resql = $this->db->query($sql); - if ($resql) { - if ($obj = $this->db->fetch_object($resql)) { - // Save invoice infos - $invoices_infos[$line->fk_doc] = array('ref' => $obj->ref, 'company_name' => $obj->nom); - $invoice_ref = $obj->ref; - $company_name = $obj->nom; - } - } - } else { - // Get new supplier invoice ref and company name - $sql = 'SELECT ff.ref, s.nom FROM ' . MAIN_DB_PREFIX . 'facture_fourn as ff'; - $sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'societe AS s ON ff.fk_soc = s.rowid'; - $sql .= ' WHERE ff.rowid = ' . $line->fk_doc; - $resql = $this->db->query($sql); - if ($resql) { - if ($obj = $this->db->fetch_object($resql)) { - // Save invoice infos - $supplier_invoices_infos[$line->fk_doc] = array('ref' => $obj->ref, 'company_name' => $obj->nom); - $invoice_ref = $obj->ref; - $company_name = $obj->nom; - } - } - } - } elseif ($line->doc_type == 'customer_invoice') { - // Retrieve invoice infos - $invoice_ref = $invoices_infos[$line->fk_doc]['ref']; - $company_name = $invoices_infos[$line->fk_doc]['company_name']; - } else { - // Retrieve invoice infos - $invoice_ref = $supplier_invoices_infos[$line->fk_doc]['ref']; - $company_name = $supplier_invoices_infos[$line->fk_doc]['company_name']; - } - } - - print $line->id . $this->separator; - print $date . $this->separator; - print substr($line->code_journal, 0, 4) . $this->separator; - - if ((substr($line->numero_compte, 0, 3) == '411') || (substr($line->numero_compte, 0, 3) == '401')) { - print length_accountg($line->subledger_account) . $this->separator; + if ($line->debit == 0 && $line->credit == 0) { + unset($array[$line]); } else { - print substr(length_accountg($line->numero_compte), 0, 15) . $this->separator; + $date = dol_print_date($line->doc_date, '%d/%m/%Y'); + + $invoice_ref = $line->doc_ref; + $company_name = ""; + + if (($line->doc_type == 'customer_invoice' || $line->doc_type == 'supplier_invoice') && $line->fk_doc > 0) { + if (($line->doc_type == 'customer_invoice' && !isset($invoices_infos[$line->fk_doc])) || + ($line->doc_type == 'supplier_invoice' && !isset($supplier_invoices_infos[$line->fk_doc]))) { + if ($line->doc_type == 'customer_invoice') { + // Get new customer invoice ref and company name + $sql = 'SELECT f.ref, s.nom FROM ' . MAIN_DB_PREFIX . 'facture as f'; + $sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'societe AS s ON f.fk_soc = s.rowid'; + $sql .= ' WHERE f.rowid = ' . $line->fk_doc; + $resql = $this->db->query($sql); + if ($resql) { + if ($obj = $this->db->fetch_object($resql)) { + // Save invoice infos + $invoices_infos[$line->fk_doc] = array('ref' => $obj->ref, 'company_name' => $obj->nom); + $invoice_ref = $obj->ref; + $company_name = $obj->nom; + } + } + } else { + // Get new supplier invoice ref and company name + $sql = 'SELECT ff.ref, s.nom FROM ' . MAIN_DB_PREFIX . 'facture_fourn as ff'; + $sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'societe AS s ON ff.fk_soc = s.rowid'; + $sql .= ' WHERE ff.rowid = ' . $line->fk_doc; + $resql = $this->db->query($sql); + if ($resql) { + if ($obj = $this->db->fetch_object($resql)) { + // Save invoice infos + $supplier_invoices_infos[$line->fk_doc] = array('ref' => $obj->ref, 'company_name' => $obj->nom); + $invoice_ref = $obj->ref; + $company_name = $obj->nom; + } + } + } + } elseif ($line->doc_type == 'customer_invoice') { + // Retrieve invoice infos + $invoice_ref = $invoices_infos[$line->fk_doc]['ref']; + $company_name = $invoices_infos[$line->fk_doc]['company_name']; + } else { + // Retrieve invoice infos + $invoice_ref = $supplier_invoices_infos[$line->fk_doc]['ref']; + $company_name = $supplier_invoices_infos[$line->fk_doc]['company_name']; + } + } + + print $line->id . $this->separator; + print $date . $this->separator; + print substr($line->code_journal, 0, 4) . $this->separator; + + if ((substr($line->numero_compte, 0, 3) == '411') || (substr($line->numero_compte, 0, 3) == '401')) { + print length_accountg($line->subledger_account) . $this->separator; + } else { + print substr(length_accountg($line->numero_compte), 0, 15) . $this->separator; + } + //Libellé Auto + print $this->separator; + //print '"'.dol_trunc(str_replace('"', '', $line->label_operation),40,'right','UTF-8',1).'"' . $this->separator; + //Libellé manuel + print dol_trunc(str_replace('"', '', $invoice_ref . (!empty($company_name) ? ' - ' : '') . $company_name), 40, 'right', 'UTF-8', 1) . $this->separator; + //Numéro de pièce + print dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1) . $this->separator; + //Devise + print 'EUR' . $this->separator; + //Montant + print price2num(abs($line->montant)) . $this->separator; + //Sens + print $line->sens . $this->separator; + //Code lettrage + print $this->separator; + //Date Echéance + print $date; + print $this->end_line; } - //Libellé Auto - print $this->separator; - //print '"'.dol_trunc(str_replace('"', '', $line->label_operation),40,'right','UTF-8',1).'"' . $this->separator; - //Libellé manuel - print dol_trunc(str_replace('"', '', $invoice_ref . (!empty($company_name) ? ' - ' : '') . $company_name), 40, 'right', 'UTF-8', 1) . $this->separator; - //Numéro de pièce - print dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1) . $this->separator; - //Devise - print 'EUR' . $this->separator; - //Montant - print price2num(abs($line->montant)) . $this->separator; - //Sens - print $line->sens . $this->separator; - //Code lettrage - print $this->separator; - //Date Echéance - print $date; - print $this->end_line; } } @@ -1719,27 +1725,31 @@ class AccountancyExport $this->separator = ','; foreach ($objectLines as $line) { - $date = dol_print_date($line->doc_date, '%d%m%Y'); - - print $line->id . $this->separator; - print $date . $this->separator; - print substr($line->code_journal, 0, 4) . $this->separator; - if ((substr($line->numero_compte, 0, 3) == '411') || (substr($line->numero_compte, 0, 3) == '401')) { - print length_accountg($line->subledger_account) . $this->separator; + if ($line->debit == 0 && $line->credit == 0) { + unset($array[$line]); } else { - print substr(length_accountg($line->numero_compte), 0, 15) . $this->separator; + $date = dol_print_date($line->doc_date, '%d%m%Y'); + + print $line->id . $this->separator; + print $date . $this->separator; + print substr($line->code_journal, 0, 4) . $this->separator; + if ((substr($line->numero_compte, 0, 3) == '411') || (substr($line->numero_compte, 0, 3) == '401')) { + print length_accountg($line->subledger_account) . $this->separator; + } else { + print substr(length_accountg($line->numero_compte), 0, 15) . $this->separator; + } + print $this->separator; + //print '"'.dol_trunc(str_replace('"', '', $line->label_operation),40,'right','UTF-8',1).'"' . $this->separator; + print '"' . dol_trunc(str_replace('"', '', $line->doc_ref), 40, 'right', 'UTF-8', 1) . '"' . $this->separator; + print '"' . dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1) . '"' . $this->separator; + print price2num($line->montant) . $this->separator; + print $line->sens . $this->separator; + print $date . $this->separator; + print $this->separator; + print $this->separator; + print 'EUR'; + print $this->end_line; } - print $this->separator; - //print '"'.dol_trunc(str_replace('"', '', $line->label_operation),40,'right','UTF-8',1).'"' . $this->separator; - print '"'.dol_trunc(str_replace('"', '', $line->doc_ref), 40, 'right', 'UTF-8', 1).'"' . $this->separator; - print '"'.dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1).'"'.$this->separator; - print price2num($line->montant).$this->separator; - print $line->sens.$this->separator; - print $date . $this->separator; - print $this->separator; - print $this->separator; - print 'EUR'; - print $this->end_line; } } From 0598656be7037fb6b4a1fbc1c6594ade2796fa4d Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Thu, 21 Jan 2021 21:23:31 +0100 Subject: [PATCH 022/219] FIX: Accountancy - Search_not_reconciled --- htdocs/accountancy/bookkeeping/listbyaccount.php | 4 ++-- htdocs/accountancy/bookkeeping/listbysubaccount.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 55e57b4463f..08b3530428b 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -74,7 +74,7 @@ $search_ledger_code = GETPOST('search_ledger_code', 'alpha'); $search_debit = GETPOST('search_debit', 'alpha'); $search_credit = GETPOST('search_credit', 'alpha'); $search_lettering_code = GETPOST('search_lettering_code', 'alpha'); -$search_not_reconciled = GETPOST('search_reconciled_option', 'alpha'); +$search_not_reconciled = GETPOST('search_not_reconciled', 'alpha'); if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) { $action = 'delbookkeepingyear'; @@ -512,7 +512,7 @@ if (!empty($arrayfields['t.lettering_code']['checked'])) { print ''; print ''; - print '
'.$langs->trans("NotReconciled").''; + print '
'.$langs->trans("NotReconciled").''; print ''; } // Date export diff --git a/htdocs/accountancy/bookkeeping/listbysubaccount.php b/htdocs/accountancy/bookkeeping/listbysubaccount.php index be7eacfe8c6..20860830b08 100644 --- a/htdocs/accountancy/bookkeeping/listbysubaccount.php +++ b/htdocs/accountancy/bookkeeping/listbysubaccount.php @@ -74,7 +74,7 @@ $search_ledger_code = GETPOST('search_ledger_code', 'alpha'); $search_debit = GETPOST('search_debit', 'alpha'); $search_credit = GETPOST('search_credit', 'alpha'); $search_lettering_code = GETPOST('search_lettering_code', 'alpha'); -$search_not_reconciled = GETPOST('search_reconciled_option', 'alpha'); +$search_not_reconciled = GETPOST('search_not_reconciled', 'alpha'); if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) { $action = 'delbookkeepingyear'; @@ -516,7 +516,7 @@ if (!empty($arrayfields['t.lettering_code']['checked'])) { print ''; print ''; - print '
'.$langs->trans("NotReconciled").''; + print '
'.$langs->trans("NotReconciled").''; print ''; } // Date export From 5aba1f9ccd7dc06d723972dbceab360b0fd8e9d9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2021 01:07:45 +0100 Subject: [PATCH 023/219] FIX missing socid into link to create event from project agenda tab --- htdocs/projet/info.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/projet/info.php b/htdocs/projet/info.php index 8cc6ff87642..96b29c42c86 100644 --- a/htdocs/projet/info.php +++ b/htdocs/projet/info.php @@ -162,7 +162,7 @@ $morehtmlcenter = ''; if (!empty($conf->agenda->enabled)) { $addActionBtnRight = !empty($user->rights->agenda->myactions->create) || !empty($user->rights->agenda->allactions->create); - $morehtmlcenter .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $addActionBtnRight); + $morehtmlcenter .= dolGetButtonTitle($langs->trans('AddAction'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'&socid='.$object->socid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$object->id), '', $addActionBtnRight); } //print ''; From 79fb672674eca33e8b2274ddcb21c2cb1b2ee723 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2021 01:47:29 +0100 Subject: [PATCH 024/219] Sync transifex --- htdocs/langs/am_ET/accountancy.lang | 2 + htdocs/langs/am_ET/admin.lang | 4 +- htdocs/langs/am_ET/banks.lang | 1 + htdocs/langs/am_ET/boxes.lang | 4 +- htdocs/langs/am_ET/mails.lang | 2 + htdocs/langs/am_ET/main.lang | 3 + htdocs/langs/am_ET/mrp.lang | 24 + htdocs/langs/am_ET/stocks.lang | 1 + htdocs/langs/am_ET/withdrawals.lang | 1 + htdocs/langs/am_ET/workflow.lang | 2 + htdocs/langs/ar_SA/accountancy.lang | 2 + htdocs/langs/ar_SA/admin.lang | 4 +- htdocs/langs/ar_SA/banks.lang | 1 + htdocs/langs/ar_SA/boxes.lang | 4 +- htdocs/langs/ar_SA/mails.lang | 2 + htdocs/langs/ar_SA/main.lang | 3 + htdocs/langs/ar_SA/mrp.lang | 24 + htdocs/langs/ar_SA/stocks.lang | 1 + htdocs/langs/ar_SA/withdrawals.lang | 1 + htdocs/langs/ar_SA/workflow.lang | 2 + htdocs/langs/az_AZ/accountancy.lang | 2 + htdocs/langs/az_AZ/admin.lang | 4 +- htdocs/langs/az_AZ/banks.lang | 1 + htdocs/langs/az_AZ/boxes.lang | 4 +- htdocs/langs/az_AZ/mails.lang | 2 + htdocs/langs/az_AZ/main.lang | 3 + htdocs/langs/az_AZ/mrp.lang | 24 + htdocs/langs/az_AZ/stocks.lang | 1 + htdocs/langs/az_AZ/withdrawals.lang | 1 + htdocs/langs/az_AZ/workflow.lang | 2 + htdocs/langs/bg_BG/accountancy.lang | 2 + htdocs/langs/bg_BG/admin.lang | 4 +- htdocs/langs/bg_BG/banks.lang | 1 + htdocs/langs/bg_BG/boxes.lang | 4 +- htdocs/langs/bg_BG/mails.lang | 2 + htdocs/langs/bg_BG/main.lang | 3 + htdocs/langs/bg_BG/mrp.lang | 24 + htdocs/langs/bg_BG/stocks.lang | 1 + htdocs/langs/bg_BG/withdrawals.lang | 1 + htdocs/langs/bg_BG/workflow.lang | 2 + htdocs/langs/bn_BD/accountancy.lang | 2 + htdocs/langs/bn_BD/admin.lang | 4 +- htdocs/langs/bn_BD/banks.lang | 1 + htdocs/langs/bn_BD/boxes.lang | 4 +- htdocs/langs/bn_BD/mails.lang | 2 + htdocs/langs/bn_BD/main.lang | 3 + htdocs/langs/bn_BD/mrp.lang | 24 + htdocs/langs/bn_BD/stocks.lang | 1 + htdocs/langs/bn_BD/withdrawals.lang | 1 + htdocs/langs/bn_BD/workflow.lang | 2 + htdocs/langs/bn_IN/accountancy.lang | 2 + htdocs/langs/bn_IN/admin.lang | 4 +- htdocs/langs/bn_IN/banks.lang | 1 + htdocs/langs/bn_IN/boxes.lang | 4 +- htdocs/langs/bn_IN/mails.lang | 2 + htdocs/langs/bn_IN/main.lang | 3 + htdocs/langs/bn_IN/mrp.lang | 24 + htdocs/langs/bn_IN/stocks.lang | 1 + htdocs/langs/bn_IN/withdrawals.lang | 1 + htdocs/langs/bn_IN/workflow.lang | 2 + htdocs/langs/bs_BA/accountancy.lang | 2 + htdocs/langs/bs_BA/admin.lang | 4 +- htdocs/langs/bs_BA/banks.lang | 1 + htdocs/langs/bs_BA/boxes.lang | 4 +- htdocs/langs/bs_BA/mails.lang | 2 + htdocs/langs/bs_BA/main.lang | 3 + htdocs/langs/bs_BA/mrp.lang | 24 + htdocs/langs/bs_BA/stocks.lang | 1 + htdocs/langs/bs_BA/withdrawals.lang | 1 + htdocs/langs/bs_BA/workflow.lang | 2 + htdocs/langs/ca_ES/accountancy.lang | 4 +- htdocs/langs/ca_ES/admin.lang | 42 +- htdocs/langs/ca_ES/banks.lang | 1 + htdocs/langs/ca_ES/bills.lang | 4 +- htdocs/langs/ca_ES/boxes.lang | 4 +- htdocs/langs/ca_ES/cashdesk.lang | 2 +- htdocs/langs/ca_ES/compta.lang | 2 +- htdocs/langs/ca_ES/cron.lang | 2 +- htdocs/langs/ca_ES/ecm.lang | 2 +- htdocs/langs/ca_ES/errors.lang | 8 +- htdocs/langs/ca_ES/exports.lang | 4 +- htdocs/langs/ca_ES/holiday.lang | 2 +- htdocs/langs/ca_ES/mails.lang | 6 +- htdocs/langs/ca_ES/main.lang | 7 +- htdocs/langs/ca_ES/mrp.lang | 24 + htdocs/langs/ca_ES/multicurrency.lang | 4 +- htdocs/langs/ca_ES/paybox.lang | 7 +- htdocs/langs/ca_ES/products.lang | 2 +- htdocs/langs/ca_ES/recruitment.lang | 2 +- htdocs/langs/ca_ES/stocks.lang | 3 +- htdocs/langs/ca_ES/stripe.lang | 6 +- htdocs/langs/ca_ES/ticket.lang | 2 +- htdocs/langs/ca_ES/users.lang | 4 +- htdocs/langs/ca_ES/website.lang | 4 +- htdocs/langs/ca_ES/withdrawals.lang | 1 + htdocs/langs/ca_ES/workflow.lang | 2 + htdocs/langs/cs_CZ/accountancy.lang | 2 + htdocs/langs/cs_CZ/admin.lang | 4 +- htdocs/langs/cs_CZ/banks.lang | 1 + htdocs/langs/cs_CZ/boxes.lang | 4 +- htdocs/langs/cs_CZ/mails.lang | 2 + htdocs/langs/cs_CZ/main.lang | 3 + htdocs/langs/cs_CZ/mrp.lang | 24 + htdocs/langs/cs_CZ/stocks.lang | 1 + htdocs/langs/cs_CZ/withdrawals.lang | 1 + htdocs/langs/cs_CZ/workflow.lang | 6 +- htdocs/langs/da_DK/accountancy.lang | 2 + htdocs/langs/da_DK/admin.lang | 4 +- htdocs/langs/da_DK/banks.lang | 1 + htdocs/langs/da_DK/boxes.lang | 4 +- htdocs/langs/da_DK/mails.lang | 2 + htdocs/langs/da_DK/main.lang | 3 + htdocs/langs/da_DK/mrp.lang | 24 + htdocs/langs/da_DK/stocks.lang | 1 + htdocs/langs/da_DK/withdrawals.lang | 1 + htdocs/langs/da_DK/workflow.lang | 6 +- htdocs/langs/de_AT/accountancy.lang | 1 + htdocs/langs/de_AT/admin.lang | 2 +- htdocs/langs/de_AT/boxes.lang | 2 - htdocs/langs/de_AT/mrp.lang | 6 + htdocs/langs/de_AT/withdrawals.lang | 1 + htdocs/langs/de_CH/accountancy.lang | 1 + htdocs/langs/de_CH/admin.lang | 2 +- htdocs/langs/de_CH/boxes.lang | 1 - htdocs/langs/de_CH/mrp.lang | 5 + htdocs/langs/de_CH/withdrawals.lang | 1 + htdocs/langs/de_DE/accountancy.lang | 2 + htdocs/langs/de_DE/admin.lang | 2 +- htdocs/langs/de_DE/banks.lang | 1 + htdocs/langs/de_DE/boxes.lang | 4 +- htdocs/langs/de_DE/mails.lang | 2 + htdocs/langs/de_DE/main.lang | 3 + htdocs/langs/de_DE/mrp.lang | 24 + htdocs/langs/de_DE/stocks.lang | 1 + htdocs/langs/de_DE/withdrawals.lang | 1 + htdocs/langs/de_DE/workflow.lang | 2 + htdocs/langs/el_CY/admin.lang | 1 - htdocs/langs/el_CY/boxes.lang | 3 - htdocs/langs/el_CY/mrp.lang | 6 + htdocs/langs/el_GR/accountancy.lang | 2 + htdocs/langs/el_GR/admin.lang | 4 +- htdocs/langs/el_GR/banks.lang | 1 + htdocs/langs/el_GR/boxes.lang | 4 +- htdocs/langs/el_GR/mails.lang | 2 + htdocs/langs/el_GR/main.lang | 3 + htdocs/langs/el_GR/mrp.lang | 24 + htdocs/langs/el_GR/stocks.lang | 1 + htdocs/langs/el_GR/withdrawals.lang | 1 + htdocs/langs/el_GR/workflow.lang | 2 + htdocs/langs/en_AU/admin.lang | 2 +- htdocs/langs/en_AU/boxes.lang | 3 - htdocs/langs/en_AU/mrp.lang | 6 + htdocs/langs/en_CA/admin.lang | 2 +- htdocs/langs/en_CA/boxes.lang | 3 - htdocs/langs/en_CA/mrp.lang | 6 + htdocs/langs/en_GB/admin.lang | 2 +- htdocs/langs/en_GB/boxes.lang | 3 - htdocs/langs/en_GB/mrp.lang | 6 + htdocs/langs/en_IN/admin.lang | 2 +- htdocs/langs/en_IN/mrp.lang | 6 + htdocs/langs/en_SG/admin.lang | 2 +- htdocs/langs/en_SG/boxes.lang | 3 - htdocs/langs/en_SG/mrp.lang | 6 + htdocs/langs/es_AR/admin.lang | 2 +- htdocs/langs/es_AR/boxes.lang | 1 - htdocs/langs/es_AR/mrp.lang | 3 + htdocs/langs/es_BO/admin.lang | 2 +- htdocs/langs/es_BO/boxes.lang | 3 - htdocs/langs/es_BO/mrp.lang | 6 + htdocs/langs/es_CL/admin.lang | 3 +- htdocs/langs/es_CO/admin.lang | 3 +- htdocs/langs/es_CO/mrp.lang | 6 + htdocs/langs/es_DO/admin.lang | 2 +- htdocs/langs/es_DO/boxes.lang | 3 - htdocs/langs/es_DO/mrp.lang | 6 + htdocs/langs/es_EC/accountancy.lang | 4 + htdocs/langs/es_EC/admin.lang | 3 +- htdocs/langs/es_EC/main.lang | 1 + htdocs/langs/es_ES/accountancy.lang | 2 + htdocs/langs/es_ES/admin.lang | 4 +- htdocs/langs/es_ES/banks.lang | 1 + htdocs/langs/es_ES/boxes.lang | 4 +- htdocs/langs/es_ES/mails.lang | 2 + htdocs/langs/es_ES/main.lang | 3 + htdocs/langs/es_ES/mrp.lang | 24 + htdocs/langs/es_ES/stocks.lang | 1 + htdocs/langs/es_ES/withdrawals.lang | 1 + htdocs/langs/es_ES/workflow.lang | 2 + htdocs/langs/es_GT/admin.lang | 2 +- htdocs/langs/es_GT/boxes.lang | 3 - htdocs/langs/es_GT/mrp.lang | 6 + htdocs/langs/es_HN/admin.lang | 2 +- htdocs/langs/es_HN/boxes.lang | 3 - htdocs/langs/es_HN/mrp.lang | 6 + htdocs/langs/es_MX/accountancy.lang | 2 + htdocs/langs/es_MX/admin.lang | 2 +- htdocs/langs/es_MX/mrp.lang | 5 + htdocs/langs/es_PA/admin.lang | 2 +- htdocs/langs/es_PA/boxes.lang | 3 - htdocs/langs/es_PA/mrp.lang | 6 + htdocs/langs/es_PE/admin.lang | 2 +- htdocs/langs/es_PE/boxes.lang | 3 - htdocs/langs/es_PY/admin.lang | 2 +- htdocs/langs/es_PY/boxes.lang | 3 - htdocs/langs/es_PY/mrp.lang | 6 + htdocs/langs/es_US/admin.lang | 2 +- htdocs/langs/es_US/boxes.lang | 3 - htdocs/langs/es_US/mrp.lang | 6 + htdocs/langs/es_UY/admin.lang | 2 +- htdocs/langs/es_UY/boxes.lang | 3 - htdocs/langs/es_UY/mrp.lang | 6 + htdocs/langs/es_VE/admin.lang | 2 +- htdocs/langs/es_VE/boxes.lang | 3 - htdocs/langs/es_VE/mrp.lang | 6 + htdocs/langs/et_EE/accountancy.lang | 2 + htdocs/langs/et_EE/admin.lang | 4 +- htdocs/langs/et_EE/banks.lang | 1 + htdocs/langs/et_EE/boxes.lang | 4 +- htdocs/langs/et_EE/mails.lang | 2 + htdocs/langs/et_EE/main.lang | 3 + htdocs/langs/et_EE/mrp.lang | 24 + htdocs/langs/et_EE/stocks.lang | 1 + htdocs/langs/et_EE/withdrawals.lang | 1 + htdocs/langs/et_EE/workflow.lang | 2 + htdocs/langs/eu_ES/accountancy.lang | 2 + htdocs/langs/eu_ES/admin.lang | 4 +- htdocs/langs/eu_ES/banks.lang | 1 + htdocs/langs/eu_ES/boxes.lang | 4 +- htdocs/langs/eu_ES/mails.lang | 2 + htdocs/langs/eu_ES/main.lang | 3 + htdocs/langs/eu_ES/mrp.lang | 24 + htdocs/langs/eu_ES/stocks.lang | 1 + htdocs/langs/eu_ES/withdrawals.lang | 1 + htdocs/langs/eu_ES/workflow.lang | 2 + htdocs/langs/fa_IR/accountancy.lang | 2 + htdocs/langs/fa_IR/admin.lang | 4 +- htdocs/langs/fa_IR/banks.lang | 1 + htdocs/langs/fa_IR/boxes.lang | 4 +- htdocs/langs/fa_IR/mails.lang | 2 + htdocs/langs/fa_IR/main.lang | 3 + htdocs/langs/fa_IR/mrp.lang | 24 + htdocs/langs/fa_IR/stocks.lang | 1 + htdocs/langs/fa_IR/withdrawals.lang | 1 + htdocs/langs/fa_IR/workflow.lang | 2 + htdocs/langs/fi_FI/accountancy.lang | 4 +- htdocs/langs/fi_FI/admin.lang | 700 +++++++++++----------- htdocs/langs/fi_FI/banks.lang | 3 +- htdocs/langs/fi_FI/bills.lang | 9 +- htdocs/langs/fi_FI/boxes.lang | 4 +- htdocs/langs/fi_FI/cashdesk.lang | 2 +- htdocs/langs/fi_FI/exports.lang | 2 +- htdocs/langs/fi_FI/holiday.lang | 6 +- htdocs/langs/fi_FI/mails.lang | 4 +- htdocs/langs/fi_FI/main.lang | 317 +++++----- htdocs/langs/fi_FI/modulebuilder.lang | 2 +- htdocs/langs/fi_FI/mrp.lang | 28 +- htdocs/langs/fi_FI/other.lang | 2 +- htdocs/langs/fi_FI/stocks.lang | 5 +- htdocs/langs/fi_FI/supplier_proposal.lang | 7 +- htdocs/langs/fi_FI/ticket.lang | 4 +- htdocs/langs/fi_FI/withdrawals.lang | 1 + htdocs/langs/fi_FI/workflow.lang | 2 + htdocs/langs/fr_BE/admin.lang | 2 +- htdocs/langs/fr_BE/mrp.lang | 6 + htdocs/langs/fr_CA/admin.lang | 2 +- htdocs/langs/fr_CA/mrp.lang | 6 + htdocs/langs/fr_CH/admin.lang | 2 +- htdocs/langs/fr_CH/boxes.lang | 3 - htdocs/langs/fr_CH/mrp.lang | 6 + htdocs/langs/fr_CI/admin.lang | 2 +- htdocs/langs/fr_CI/boxes.lang | 3 - htdocs/langs/fr_CI/mrp.lang | 6 + htdocs/langs/fr_CM/admin.lang | 2 +- htdocs/langs/fr_CM/boxes.lang | 3 - htdocs/langs/fr_CM/mrp.lang | 6 + htdocs/langs/fr_FR/accountancy.lang | 2 + htdocs/langs/fr_FR/admin.lang | 11 +- htdocs/langs/fr_FR/banks.lang | 1 + htdocs/langs/fr_FR/boxes.lang | 4 +- htdocs/langs/fr_FR/mails.lang | 2 + htdocs/langs/fr_FR/main.lang | 3 + htdocs/langs/fr_FR/mrp.lang | 24 + htdocs/langs/fr_FR/stocks.lang | 1 + htdocs/langs/fr_FR/withdrawals.lang | 1 + htdocs/langs/fr_FR/workflow.lang | 2 + htdocs/langs/fr_GA/admin.lang | 2 +- htdocs/langs/fr_GA/mrp.lang | 6 + htdocs/langs/gl_ES/accountancy.lang | 2 + htdocs/langs/gl_ES/admin.lang | 4 +- htdocs/langs/gl_ES/banks.lang | 1 + htdocs/langs/gl_ES/boxes.lang | 4 +- htdocs/langs/gl_ES/mails.lang | 2 + htdocs/langs/gl_ES/main.lang | 3 + htdocs/langs/gl_ES/mrp.lang | 24 + htdocs/langs/gl_ES/orders.lang | 14 +- htdocs/langs/gl_ES/products.lang | 6 +- htdocs/langs/gl_ES/stocks.lang | 1 + htdocs/langs/gl_ES/withdrawals.lang | 1 + htdocs/langs/gl_ES/workflow.lang | 2 + htdocs/langs/he_IL/accountancy.lang | 2 + htdocs/langs/he_IL/admin.lang | 4 +- htdocs/langs/he_IL/banks.lang | 1 + htdocs/langs/he_IL/boxes.lang | 4 +- htdocs/langs/he_IL/mails.lang | 2 + htdocs/langs/he_IL/main.lang | 3 + htdocs/langs/he_IL/mrp.lang | 24 + htdocs/langs/he_IL/stocks.lang | 1 + htdocs/langs/he_IL/withdrawals.lang | 1 + htdocs/langs/he_IL/workflow.lang | 2 + htdocs/langs/hi_IN/accountancy.lang | 2 + htdocs/langs/hi_IN/admin.lang | 4 +- htdocs/langs/hi_IN/banks.lang | 1 + htdocs/langs/hi_IN/boxes.lang | 4 +- htdocs/langs/hi_IN/mails.lang | 2 + htdocs/langs/hi_IN/main.lang | 3 + htdocs/langs/hi_IN/mrp.lang | 24 + htdocs/langs/hi_IN/stocks.lang | 1 + htdocs/langs/hi_IN/withdrawals.lang | 1 + htdocs/langs/hi_IN/workflow.lang | 2 + htdocs/langs/hr_HR/accountancy.lang | 2 + htdocs/langs/hr_HR/admin.lang | 4 +- htdocs/langs/hr_HR/banks.lang | 1 + htdocs/langs/hr_HR/boxes.lang | 4 +- htdocs/langs/hr_HR/mails.lang | 2 + htdocs/langs/hr_HR/main.lang | 3 + htdocs/langs/hr_HR/mrp.lang | 24 + htdocs/langs/hr_HR/stocks.lang | 1 + htdocs/langs/hr_HR/withdrawals.lang | 1 + htdocs/langs/hr_HR/workflow.lang | 2 + htdocs/langs/hu_HU/accountancy.lang | 2 + htdocs/langs/hu_HU/admin.lang | 4 +- htdocs/langs/hu_HU/banks.lang | 1 + htdocs/langs/hu_HU/boxes.lang | 4 +- htdocs/langs/hu_HU/mails.lang | 2 + htdocs/langs/hu_HU/main.lang | 3 + htdocs/langs/hu_HU/mrp.lang | 24 + htdocs/langs/hu_HU/stocks.lang | 1 + htdocs/langs/hu_HU/withdrawals.lang | 1 + htdocs/langs/hu_HU/workflow.lang | 2 + htdocs/langs/id_ID/accountancy.lang | 2 + htdocs/langs/id_ID/admin.lang | 282 ++++----- htdocs/langs/id_ID/banks.lang | 1 + htdocs/langs/id_ID/boxes.lang | 4 +- htdocs/langs/id_ID/mails.lang | 2 + htdocs/langs/id_ID/main.lang | 3 + htdocs/langs/id_ID/mrp.lang | 24 + htdocs/langs/id_ID/stocks.lang | 1 + htdocs/langs/id_ID/withdrawals.lang | 1 + htdocs/langs/id_ID/workflow.lang | 2 + htdocs/langs/is_IS/accountancy.lang | 2 + htdocs/langs/is_IS/admin.lang | 4 +- htdocs/langs/is_IS/banks.lang | 1 + htdocs/langs/is_IS/boxes.lang | 4 +- htdocs/langs/is_IS/mails.lang | 2 + htdocs/langs/is_IS/main.lang | 3 + htdocs/langs/is_IS/mrp.lang | 24 + htdocs/langs/is_IS/stocks.lang | 1 + htdocs/langs/is_IS/withdrawals.lang | 1 + htdocs/langs/is_IS/workflow.lang | 2 + htdocs/langs/it_CH/boxes.lang | 3 - htdocs/langs/it_CH/mrp.lang | 2 + htdocs/langs/it_IT/accountancy.lang | 2 + htdocs/langs/it_IT/admin.lang | 4 +- htdocs/langs/it_IT/banks.lang | 1 + htdocs/langs/it_IT/boxes.lang | 4 +- htdocs/langs/it_IT/mails.lang | 2 + htdocs/langs/it_IT/main.lang | 3 + htdocs/langs/it_IT/mrp.lang | 24 + htdocs/langs/it_IT/stocks.lang | 1 + htdocs/langs/it_IT/withdrawals.lang | 1 + htdocs/langs/it_IT/workflow.lang | 2 + htdocs/langs/ja_JP/accountancy.lang | 2 + htdocs/langs/ja_JP/admin.lang | 4 +- htdocs/langs/ja_JP/banks.lang | 1 + htdocs/langs/ja_JP/boxes.lang | 4 +- htdocs/langs/ja_JP/mails.lang | 2 + htdocs/langs/ja_JP/main.lang | 3 + htdocs/langs/ja_JP/mrp.lang | 24 + htdocs/langs/ja_JP/stocks.lang | 1 + htdocs/langs/ja_JP/withdrawals.lang | 1 + htdocs/langs/ja_JP/workflow.lang | 2 + htdocs/langs/ka_GE/accountancy.lang | 2 + htdocs/langs/ka_GE/admin.lang | 4 +- htdocs/langs/ka_GE/banks.lang | 1 + htdocs/langs/ka_GE/boxes.lang | 4 +- htdocs/langs/ka_GE/mails.lang | 2 + htdocs/langs/ka_GE/main.lang | 3 + htdocs/langs/ka_GE/mrp.lang | 24 + htdocs/langs/ka_GE/stocks.lang | 1 + htdocs/langs/ka_GE/withdrawals.lang | 1 + htdocs/langs/ka_GE/workflow.lang | 2 + htdocs/langs/km_KH/accountancy.lang | 2 + htdocs/langs/km_KH/admin.lang | 4 +- htdocs/langs/km_KH/banks.lang | 1 + htdocs/langs/km_KH/boxes.lang | 4 +- htdocs/langs/km_KH/mails.lang | 2 + htdocs/langs/km_KH/main.lang | 3 + htdocs/langs/km_KH/mrp.lang | 24 + htdocs/langs/km_KH/stocks.lang | 1 + htdocs/langs/km_KH/withdrawals.lang | 1 + htdocs/langs/km_KH/workflow.lang | 2 + htdocs/langs/kn_IN/accountancy.lang | 2 + htdocs/langs/kn_IN/admin.lang | 4 +- htdocs/langs/kn_IN/banks.lang | 1 + htdocs/langs/kn_IN/boxes.lang | 4 +- htdocs/langs/kn_IN/mails.lang | 2 + htdocs/langs/kn_IN/main.lang | 3 + htdocs/langs/kn_IN/mrp.lang | 24 + htdocs/langs/kn_IN/stocks.lang | 1 + htdocs/langs/kn_IN/withdrawals.lang | 1 + htdocs/langs/kn_IN/workflow.lang | 2 + htdocs/langs/ko_KR/accountancy.lang | 2 + htdocs/langs/ko_KR/admin.lang | 4 +- htdocs/langs/ko_KR/banks.lang | 1 + htdocs/langs/ko_KR/boxes.lang | 4 +- htdocs/langs/ko_KR/mails.lang | 2 + htdocs/langs/ko_KR/main.lang | 3 + htdocs/langs/ko_KR/mrp.lang | 24 + htdocs/langs/ko_KR/stocks.lang | 1 + htdocs/langs/ko_KR/withdrawals.lang | 1 + htdocs/langs/ko_KR/workflow.lang | 2 + htdocs/langs/lo_LA/accountancy.lang | 2 + htdocs/langs/lo_LA/admin.lang | 4 +- htdocs/langs/lo_LA/banks.lang | 1 + htdocs/langs/lo_LA/boxes.lang | 4 +- htdocs/langs/lo_LA/mails.lang | 2 + htdocs/langs/lo_LA/main.lang | 3 + htdocs/langs/lo_LA/mrp.lang | 24 + htdocs/langs/lo_LA/stocks.lang | 1 + htdocs/langs/lo_LA/withdrawals.lang | 1 + htdocs/langs/lo_LA/workflow.lang | 2 + htdocs/langs/lt_LT/accountancy.lang | 2 + htdocs/langs/lt_LT/admin.lang | 4 +- htdocs/langs/lt_LT/banks.lang | 1 + htdocs/langs/lt_LT/boxes.lang | 4 +- htdocs/langs/lt_LT/mails.lang | 2 + htdocs/langs/lt_LT/main.lang | 3 + htdocs/langs/lt_LT/mrp.lang | 24 + htdocs/langs/lt_LT/stocks.lang | 1 + htdocs/langs/lt_LT/withdrawals.lang | 1 + htdocs/langs/lt_LT/workflow.lang | 2 + htdocs/langs/lv_LV/accountancy.lang | 2 + htdocs/langs/lv_LV/admin.lang | 4 +- htdocs/langs/lv_LV/banks.lang | 1 + htdocs/langs/lv_LV/boxes.lang | 4 +- htdocs/langs/lv_LV/mails.lang | 2 + htdocs/langs/lv_LV/main.lang | 3 + htdocs/langs/lv_LV/mrp.lang | 24 + htdocs/langs/lv_LV/stocks.lang | 1 + htdocs/langs/lv_LV/withdrawals.lang | 1 + htdocs/langs/lv_LV/workflow.lang | 6 +- htdocs/langs/mk_MK/accountancy.lang | 2 + htdocs/langs/mk_MK/admin.lang | 4 +- htdocs/langs/mk_MK/banks.lang | 1 + htdocs/langs/mk_MK/boxes.lang | 4 +- htdocs/langs/mk_MK/mails.lang | 2 + htdocs/langs/mk_MK/main.lang | 3 + htdocs/langs/mk_MK/mrp.lang | 24 + htdocs/langs/mk_MK/stocks.lang | 1 + htdocs/langs/mk_MK/withdrawals.lang | 1 + htdocs/langs/mk_MK/workflow.lang | 2 + htdocs/langs/mn_MN/accountancy.lang | 2 + htdocs/langs/mn_MN/admin.lang | 4 +- htdocs/langs/mn_MN/banks.lang | 1 + htdocs/langs/mn_MN/boxes.lang | 4 +- htdocs/langs/mn_MN/mails.lang | 2 + htdocs/langs/mn_MN/main.lang | 3 + htdocs/langs/mn_MN/mrp.lang | 24 + htdocs/langs/mn_MN/stocks.lang | 1 + htdocs/langs/mn_MN/withdrawals.lang | 1 + htdocs/langs/mn_MN/workflow.lang | 2 + htdocs/langs/nb_NO/accountancy.lang | 2 + htdocs/langs/nb_NO/admin.lang | 4 +- htdocs/langs/nb_NO/banks.lang | 1 + htdocs/langs/nb_NO/boxes.lang | 4 +- htdocs/langs/nb_NO/mails.lang | 2 + htdocs/langs/nb_NO/main.lang | 3 + htdocs/langs/nb_NO/mrp.lang | 24 + htdocs/langs/nb_NO/stocks.lang | 1 + htdocs/langs/nb_NO/withdrawals.lang | 1 + htdocs/langs/nb_NO/workflow.lang | 6 +- htdocs/langs/ne_NP/accountancy.lang | 2 + htdocs/langs/ne_NP/admin.lang | 4 +- htdocs/langs/ne_NP/banks.lang | 1 + htdocs/langs/ne_NP/boxes.lang | 4 +- htdocs/langs/ne_NP/mails.lang | 2 + htdocs/langs/ne_NP/main.lang | 3 + htdocs/langs/ne_NP/mrp.lang | 24 + htdocs/langs/ne_NP/stocks.lang | 1 + htdocs/langs/ne_NP/withdrawals.lang | 1 + htdocs/langs/ne_NP/workflow.lang | 2 + htdocs/langs/nl_BE/admin.lang | 1 - htdocs/langs/nl_BE/mrp.lang | 6 + htdocs/langs/nl_NL/accountancy.lang | 2 + htdocs/langs/nl_NL/admin.lang | 4 +- htdocs/langs/nl_NL/banks.lang | 1 + htdocs/langs/nl_NL/boxes.lang | 4 +- htdocs/langs/nl_NL/mails.lang | 2 + htdocs/langs/nl_NL/main.lang | 3 + htdocs/langs/nl_NL/mrp.lang | 24 + htdocs/langs/nl_NL/stocks.lang | 1 + htdocs/langs/nl_NL/withdrawals.lang | 1 + htdocs/langs/nl_NL/workflow.lang | 2 + htdocs/langs/pl_PL/accountancy.lang | 2 + htdocs/langs/pl_PL/admin.lang | 4 +- htdocs/langs/pl_PL/banks.lang | 1 + htdocs/langs/pl_PL/boxes.lang | 4 +- htdocs/langs/pl_PL/mails.lang | 2 + htdocs/langs/pl_PL/main.lang | 3 + htdocs/langs/pl_PL/mrp.lang | 24 + htdocs/langs/pl_PL/stocks.lang | 1 + htdocs/langs/pl_PL/withdrawals.lang | 1 + htdocs/langs/pl_PL/workflow.lang | 2 + htdocs/langs/pt_AO/mrp.lang | 3 + htdocs/langs/pt_BR/admin.lang | 1 - htdocs/langs/pt_BR/boxes.lang | 2 - htdocs/langs/pt_PT/accountancy.lang | 2 + htdocs/langs/pt_PT/admin.lang | 4 +- htdocs/langs/pt_PT/banks.lang | 1 + htdocs/langs/pt_PT/boxes.lang | 4 +- htdocs/langs/pt_PT/mails.lang | 2 + htdocs/langs/pt_PT/main.lang | 3 + htdocs/langs/pt_PT/mrp.lang | 24 + htdocs/langs/pt_PT/stocks.lang | 1 + htdocs/langs/pt_PT/withdrawals.lang | 1 + htdocs/langs/pt_PT/workflow.lang | 2 + htdocs/langs/ro_RO/accountancy.lang | 2 + htdocs/langs/ro_RO/admin.lang | 4 +- htdocs/langs/ro_RO/banks.lang | 1 + htdocs/langs/ro_RO/boxes.lang | 4 +- htdocs/langs/ro_RO/mails.lang | 2 + htdocs/langs/ro_RO/main.lang | 3 + htdocs/langs/ro_RO/mrp.lang | 24 + htdocs/langs/ro_RO/stocks.lang | 1 + htdocs/langs/ro_RO/withdrawals.lang | 1 + htdocs/langs/ro_RO/workflow.lang | 6 +- htdocs/langs/ru_RU/accountancy.lang | 2 + htdocs/langs/ru_RU/admin.lang | 4 +- htdocs/langs/ru_RU/banks.lang | 1 + htdocs/langs/ru_RU/boxes.lang | 4 +- htdocs/langs/ru_RU/mails.lang | 2 + htdocs/langs/ru_RU/main.lang | 3 + htdocs/langs/ru_RU/mrp.lang | 24 + htdocs/langs/ru_RU/stocks.lang | 1 + htdocs/langs/ru_RU/withdrawals.lang | 1 + htdocs/langs/ru_RU/workflow.lang | 2 + htdocs/langs/ru_UA/mrp.lang | 5 + htdocs/langs/sk_SK/accountancy.lang | 2 + htdocs/langs/sk_SK/admin.lang | 4 +- htdocs/langs/sk_SK/banks.lang | 1 + htdocs/langs/sk_SK/boxes.lang | 4 +- htdocs/langs/sk_SK/mails.lang | 2 + htdocs/langs/sk_SK/main.lang | 3 + htdocs/langs/sk_SK/mrp.lang | 24 + htdocs/langs/sk_SK/stocks.lang | 1 + htdocs/langs/sk_SK/withdrawals.lang | 1 + htdocs/langs/sk_SK/workflow.lang | 2 + htdocs/langs/sl_SI/accountancy.lang | 2 + htdocs/langs/sl_SI/admin.lang | 4 +- htdocs/langs/sl_SI/banks.lang | 1 + htdocs/langs/sl_SI/boxes.lang | 4 +- htdocs/langs/sl_SI/mails.lang | 2 + htdocs/langs/sl_SI/main.lang | 3 + htdocs/langs/sl_SI/mrp.lang | 24 + htdocs/langs/sl_SI/stocks.lang | 1 + htdocs/langs/sl_SI/withdrawals.lang | 1 + htdocs/langs/sl_SI/workflow.lang | 2 + htdocs/langs/sq_AL/accountancy.lang | 2 + htdocs/langs/sq_AL/admin.lang | 4 +- htdocs/langs/sq_AL/banks.lang | 1 + htdocs/langs/sq_AL/boxes.lang | 4 +- htdocs/langs/sq_AL/mails.lang | 2 + htdocs/langs/sq_AL/main.lang | 3 + htdocs/langs/sq_AL/mrp.lang | 24 + htdocs/langs/sq_AL/stocks.lang | 1 + htdocs/langs/sq_AL/withdrawals.lang | 1 + htdocs/langs/sq_AL/workflow.lang | 2 + htdocs/langs/sr_RS/accountancy.lang | 2 + htdocs/langs/sr_RS/admin.lang | 4 +- htdocs/langs/sr_RS/banks.lang | 1 + htdocs/langs/sr_RS/boxes.lang | 4 +- htdocs/langs/sr_RS/mails.lang | 2 + htdocs/langs/sr_RS/main.lang | 3 + htdocs/langs/sr_RS/mrp.lang | 24 + htdocs/langs/sr_RS/stocks.lang | 1 + htdocs/langs/sr_RS/withdrawals.lang | 1 + htdocs/langs/sr_RS/workflow.lang | 2 + htdocs/langs/sv_SE/accountancy.lang | 2 + htdocs/langs/sv_SE/admin.lang | 4 +- htdocs/langs/sv_SE/banks.lang | 1 + htdocs/langs/sv_SE/boxes.lang | 4 +- htdocs/langs/sv_SE/mails.lang | 2 + htdocs/langs/sv_SE/main.lang | 3 + htdocs/langs/sv_SE/mrp.lang | 24 + htdocs/langs/sv_SE/stocks.lang | 1 + htdocs/langs/sv_SE/withdrawals.lang | 1 + htdocs/langs/sv_SE/workflow.lang | 2 + htdocs/langs/sw_SW/accountancy.lang | 2 + htdocs/langs/sw_SW/admin.lang | 4 +- htdocs/langs/sw_SW/banks.lang | 1 + htdocs/langs/sw_SW/boxes.lang | 4 +- htdocs/langs/sw_SW/mails.lang | 2 + htdocs/langs/sw_SW/main.lang | 3 + htdocs/langs/sw_SW/mrp.lang | 24 + htdocs/langs/sw_SW/stocks.lang | 1 + htdocs/langs/sw_SW/withdrawals.lang | 1 + htdocs/langs/sw_SW/workflow.lang | 2 + htdocs/langs/th_TH/accountancy.lang | 2 + htdocs/langs/th_TH/admin.lang | 4 +- htdocs/langs/th_TH/banks.lang | 1 + htdocs/langs/th_TH/boxes.lang | 4 +- htdocs/langs/th_TH/mails.lang | 2 + htdocs/langs/th_TH/main.lang | 3 + htdocs/langs/th_TH/mrp.lang | 24 + htdocs/langs/th_TH/stocks.lang | 1 + htdocs/langs/th_TH/withdrawals.lang | 1 + htdocs/langs/th_TH/workflow.lang | 2 + htdocs/langs/tr_TR/accountancy.lang | 2 + htdocs/langs/tr_TR/admin.lang | 4 +- htdocs/langs/tr_TR/banks.lang | 1 + htdocs/langs/tr_TR/boxes.lang | 4 +- htdocs/langs/tr_TR/mails.lang | 2 + htdocs/langs/tr_TR/main.lang | 3 + htdocs/langs/tr_TR/mrp.lang | 24 + htdocs/langs/tr_TR/stocks.lang | 1 + htdocs/langs/tr_TR/withdrawals.lang | 1 + htdocs/langs/tr_TR/workflow.lang | 2 + htdocs/langs/uk_UA/accountancy.lang | 2 + htdocs/langs/uk_UA/admin.lang | 4 +- htdocs/langs/uk_UA/banks.lang | 1 + htdocs/langs/uk_UA/boxes.lang | 4 +- htdocs/langs/uk_UA/mails.lang | 2 + htdocs/langs/uk_UA/main.lang | 3 + htdocs/langs/uk_UA/mrp.lang | 24 + htdocs/langs/uk_UA/stocks.lang | 1 + htdocs/langs/uk_UA/withdrawals.lang | 1 + htdocs/langs/uk_UA/workflow.lang | 2 + htdocs/langs/uz_UZ/accountancy.lang | 2 + htdocs/langs/uz_UZ/admin.lang | 4 +- htdocs/langs/uz_UZ/banks.lang | 1 + htdocs/langs/uz_UZ/boxes.lang | 4 +- htdocs/langs/uz_UZ/mails.lang | 2 + htdocs/langs/uz_UZ/main.lang | 3 + htdocs/langs/uz_UZ/mrp.lang | 24 + htdocs/langs/uz_UZ/stocks.lang | 1 + htdocs/langs/uz_UZ/withdrawals.lang | 1 + htdocs/langs/uz_UZ/workflow.lang | 2 + htdocs/langs/vi_VN/accountancy.lang | 2 + htdocs/langs/vi_VN/admin.lang | 4 +- htdocs/langs/vi_VN/banks.lang | 1 + htdocs/langs/vi_VN/boxes.lang | 4 +- htdocs/langs/vi_VN/mails.lang | 2 + htdocs/langs/vi_VN/main.lang | 3 + htdocs/langs/vi_VN/mrp.lang | 24 + htdocs/langs/vi_VN/stocks.lang | 1 + htdocs/langs/vi_VN/withdrawals.lang | 1 + htdocs/langs/vi_VN/workflow.lang | 2 + htdocs/langs/zh_CN/accountancy.lang | 2 + htdocs/langs/zh_CN/admin.lang | 4 +- htdocs/langs/zh_CN/banks.lang | 1 + htdocs/langs/zh_CN/boxes.lang | 4 +- htdocs/langs/zh_CN/mails.lang | 2 + htdocs/langs/zh_CN/main.lang | 3 + htdocs/langs/zh_CN/mrp.lang | 24 + htdocs/langs/zh_CN/stocks.lang | 1 + htdocs/langs/zh_CN/withdrawals.lang | 1 + htdocs/langs/zh_CN/workflow.lang | 2 + htdocs/langs/zh_HK/accountancy.lang | 2 + htdocs/langs/zh_HK/admin.lang | 4 +- htdocs/langs/zh_HK/banks.lang | 1 + htdocs/langs/zh_HK/boxes.lang | 4 +- htdocs/langs/zh_HK/mails.lang | 2 + htdocs/langs/zh_HK/main.lang | 3 + htdocs/langs/zh_HK/mrp.lang | 24 + htdocs/langs/zh_HK/stocks.lang | 1 + htdocs/langs/zh_HK/withdrawals.lang | 1 + htdocs/langs/zh_HK/workflow.lang | 2 + htdocs/langs/zh_TW/accountancy.lang | 2 + htdocs/langs/zh_TW/admin.lang | 48 +- htdocs/langs/zh_TW/agenda.lang | 14 +- htdocs/langs/zh_TW/banks.lang | 1 + htdocs/langs/zh_TW/bills.lang | 8 +- htdocs/langs/zh_TW/blockedlog.lang | 2 +- htdocs/langs/zh_TW/boxes.lang | 16 +- htdocs/langs/zh_TW/cashdesk.lang | 36 +- htdocs/langs/zh_TW/categories.lang | 32 +- htdocs/langs/zh_TW/companies.lang | 2 +- htdocs/langs/zh_TW/contracts.lang | 2 +- htdocs/langs/zh_TW/cron.lang | 18 +- htdocs/langs/zh_TW/deliveries.lang | 1 + htdocs/langs/zh_TW/ecm.lang | 4 +- htdocs/langs/zh_TW/exports.lang | 2 +- htdocs/langs/zh_TW/languages.lang | 32 +- htdocs/langs/zh_TW/mails.lang | 2 + htdocs/langs/zh_TW/main.lang | 7 +- htdocs/langs/zh_TW/members.lang | 14 +- htdocs/langs/zh_TW/mrp.lang | 26 +- htdocs/langs/zh_TW/multicurrency.lang | 20 +- htdocs/langs/zh_TW/orders.lang | 11 +- htdocs/langs/zh_TW/other.lang | 6 +- htdocs/langs/zh_TW/projects.lang | 2 +- htdocs/langs/zh_TW/recruitment.lang | 4 +- htdocs/langs/zh_TW/stocks.lang | 1 + htdocs/langs/zh_TW/withdrawals.lang | 1 + htdocs/langs/zh_TW/workflow.lang | 6 +- 705 files changed, 3383 insertions(+), 1192 deletions(-) create mode 100644 htdocs/langs/de_AT/mrp.lang delete mode 100644 htdocs/langs/el_CY/boxes.lang create mode 100644 htdocs/langs/el_CY/mrp.lang delete mode 100644 htdocs/langs/en_AU/boxes.lang create mode 100644 htdocs/langs/en_AU/mrp.lang delete mode 100644 htdocs/langs/en_CA/boxes.lang create mode 100644 htdocs/langs/en_CA/mrp.lang delete mode 100644 htdocs/langs/en_GB/boxes.lang create mode 100644 htdocs/langs/en_GB/mrp.lang create mode 100644 htdocs/langs/en_IN/mrp.lang delete mode 100644 htdocs/langs/en_SG/boxes.lang create mode 100644 htdocs/langs/en_SG/mrp.lang delete mode 100644 htdocs/langs/es_BO/boxes.lang create mode 100644 htdocs/langs/es_BO/mrp.lang create mode 100644 htdocs/langs/es_CO/mrp.lang delete mode 100644 htdocs/langs/es_DO/boxes.lang create mode 100644 htdocs/langs/es_DO/mrp.lang delete mode 100644 htdocs/langs/es_GT/boxes.lang create mode 100644 htdocs/langs/es_GT/mrp.lang delete mode 100644 htdocs/langs/es_HN/boxes.lang create mode 100644 htdocs/langs/es_HN/mrp.lang delete mode 100644 htdocs/langs/es_PA/boxes.lang create mode 100644 htdocs/langs/es_PA/mrp.lang delete mode 100644 htdocs/langs/es_PE/boxes.lang delete mode 100644 htdocs/langs/es_PY/boxes.lang create mode 100644 htdocs/langs/es_PY/mrp.lang delete mode 100644 htdocs/langs/es_US/boxes.lang create mode 100644 htdocs/langs/es_US/mrp.lang delete mode 100644 htdocs/langs/es_UY/boxes.lang create mode 100644 htdocs/langs/es_UY/mrp.lang delete mode 100644 htdocs/langs/es_VE/boxes.lang create mode 100644 htdocs/langs/es_VE/mrp.lang create mode 100644 htdocs/langs/fr_BE/mrp.lang create mode 100644 htdocs/langs/fr_CA/mrp.lang delete mode 100644 htdocs/langs/fr_CH/boxes.lang create mode 100644 htdocs/langs/fr_CH/mrp.lang delete mode 100644 htdocs/langs/fr_CI/boxes.lang create mode 100644 htdocs/langs/fr_CI/mrp.lang delete mode 100644 htdocs/langs/fr_CM/boxes.lang create mode 100644 htdocs/langs/fr_CM/mrp.lang create mode 100644 htdocs/langs/fr_GA/mrp.lang delete mode 100644 htdocs/langs/it_CH/boxes.lang create mode 100644 htdocs/langs/it_CH/mrp.lang create mode 100644 htdocs/langs/nl_BE/mrp.lang create mode 100644 htdocs/langs/pt_AO/mrp.lang create mode 100644 htdocs/langs/ru_UA/mrp.lang diff --git a/htdocs/langs/am_ET/accountancy.lang b/htdocs/langs/am_ET/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/am_ET/accountancy.lang +++ b/htdocs/langs/am_ET/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/am_ET/admin.lang b/htdocs/langs/am_ET/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/am_ET/admin.lang +++ b/htdocs/langs/am_ET/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/am_ET/banks.lang b/htdocs/langs/am_ET/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/am_ET/banks.lang +++ b/htdocs/langs/am_ET/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/am_ET/boxes.lang b/htdocs/langs/am_ET/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/am_ET/boxes.lang +++ b/htdocs/langs/am_ET/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/am_ET/mails.lang b/htdocs/langs/am_ET/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/am_ET/mails.lang +++ b/htdocs/langs/am_ET/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/am_ET/main.lang b/htdocs/langs/am_ET/main.lang index e196120c27d..f8ba6f4073c 100644 --- a/htdocs/langs/am_ET/main.lang +++ b/htdocs/langs/am_ET/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/am_ET/mrp.lang b/htdocs/langs/am_ET/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/am_ET/mrp.lang +++ b/htdocs/langs/am_ET/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/am_ET/stocks.lang b/htdocs/langs/am_ET/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/am_ET/stocks.lang +++ b/htdocs/langs/am_ET/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/am_ET/withdrawals.lang b/htdocs/langs/am_ET/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/am_ET/withdrawals.lang +++ b/htdocs/langs/am_ET/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/am_ET/workflow.lang b/htdocs/langs/am_ET/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/am_ET/workflow.lang +++ b/htdocs/langs/am_ET/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang index 6395f2a0846..e0817d618cb 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -16,6 +16,8 @@ ThisService=هذه الخدمة ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index ccf98b549c2..65d484ec842 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=استطلاع للرأي، أو مسح التصويت Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=هوامش -Module59000Desc=وحدة لإدارة الهوامش +Module59000Desc=Module to follow margins Module60000Name=العمولات Module60000Desc=وحدة لإدارة اللجان Module62000Name=شروط التجارة الدولية @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=البحث الأمثل -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/ar_SA/banks.lang b/htdocs/langs/ar_SA/banks.lang index 1ad6f3dfe9d..93d286a4a27 100644 --- a/htdocs/langs/ar_SA/banks.lang +++ b/htdocs/langs/ar_SA/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/ar_SA/boxes.lang b/htdocs/langs/ar_SA/boxes.lang index 95dace869cc..9d993910c15 100644 --- a/htdocs/langs/ar_SA/boxes.lang +++ b/htdocs/langs/ar_SA/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/ar_SA/mails.lang b/htdocs/langs/ar_SA/mails.lang index 61daa08322e..384cda2c563 100644 --- a/htdocs/langs/ar_SA/mails.lang +++ b/htdocs/langs/ar_SA/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index 4de3c2e8526..22d691bfb23 100644 --- a/htdocs/langs/ar_SA/main.lang +++ b/htdocs/langs/ar_SA/main.lang @@ -224,6 +224,7 @@ Value=القيمة PersonalValue=قيمة الشخصية NewObject=New %s NewValue=القيمة الجديدة +OldValue=Old value %s CurrentValue=القيمة الحالية Code=رمز Type=اكتب @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=وتبين للعملاء معاينة ShowSupplierPreview=Show vendor preview RefCustomer=المرجع. العميل +InternalRef=Internal ref. Currency=العملة InfoAdmin=معلومات للإداريين Undo=تراجع @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=في الانتظار +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/ar_SA/mrp.lang b/htdocs/langs/ar_SA/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/ar_SA/mrp.lang +++ b/htdocs/langs/ar_SA/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/ar_SA/stocks.lang b/htdocs/langs/ar_SA/stocks.lang index 2cae290ca53..d5a935cf50a 100644 --- a/htdocs/langs/ar_SA/stocks.lang +++ b/htdocs/langs/ar_SA/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=قيمة المستودعات UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/ar_SA/withdrawals.lang b/htdocs/langs/ar_SA/withdrawals.lang index 0976b9ba4be..de0c72a1e64 100644 --- a/htdocs/langs/ar_SA/withdrawals.lang +++ b/htdocs/langs/ar_SA/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

the direct debit payment order of invoice %s rel ModeWarning=لم يتم تعيين خيار الوضع الحقيقي، ونحن بعد توقف هذه المحاكاة ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/ar_SA/workflow.lang b/htdocs/langs/ar_SA/workflow.lang index 30d0fdd1c87..a01d11731e2 100644 --- a/htdocs/langs/ar_SA/workflow.lang +++ b/htdocs/langs/ar_SA/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=إنشاء تلقائي AutomaticClassification=التصنيف التلقائي +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/az_AZ/accountancy.lang b/htdocs/langs/az_AZ/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/az_AZ/accountancy.lang +++ b/htdocs/langs/az_AZ/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/az_AZ/admin.lang b/htdocs/langs/az_AZ/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/az_AZ/admin.lang +++ b/htdocs/langs/az_AZ/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/az_AZ/banks.lang b/htdocs/langs/az_AZ/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/az_AZ/banks.lang +++ b/htdocs/langs/az_AZ/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/az_AZ/boxes.lang b/htdocs/langs/az_AZ/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/az_AZ/boxes.lang +++ b/htdocs/langs/az_AZ/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/az_AZ/mails.lang b/htdocs/langs/az_AZ/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/az_AZ/mails.lang +++ b/htdocs/langs/az_AZ/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/az_AZ/main.lang b/htdocs/langs/az_AZ/main.lang index e196120c27d..f8ba6f4073c 100644 --- a/htdocs/langs/az_AZ/main.lang +++ b/htdocs/langs/az_AZ/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/az_AZ/mrp.lang b/htdocs/langs/az_AZ/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/az_AZ/mrp.lang +++ b/htdocs/langs/az_AZ/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/az_AZ/stocks.lang b/htdocs/langs/az_AZ/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/az_AZ/stocks.lang +++ b/htdocs/langs/az_AZ/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/az_AZ/withdrawals.lang b/htdocs/langs/az_AZ/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/az_AZ/withdrawals.lang +++ b/htdocs/langs/az_AZ/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/az_AZ/workflow.lang b/htdocs/langs/az_AZ/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/az_AZ/workflow.lang +++ b/htdocs/langs/az_AZ/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang index 19fcab09bc9..61935e71771 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Тази услуга ThisProduct=Този продукт DefaultForService=По подразбиране за услуга DefaultForProduct=По подразбиране за продукт +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Не може да се предложи AccountancySetupDoneFromAccountancyMenu=Повечето настройки на счетоводството се извършват от менюто %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index 99ed3792b8c..6e7129f0a22 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Директен печат (без отваряне на док Module55000Name=Анкети, проучвания и гласоподаване Module55000Desc=Създаване на онлайн анкети, проучвания или гласувания (като Doodle, Studs, RDVz и др.) Module59000Name=Маржове -Module59000Desc=Управление на маржове +Module59000Desc=Module to follow margins Module60000Name=Комисионни Module60000Desc=Управление на комисионни Module62000Name=Условия на доставка @@ -1308,7 +1308,7 @@ YouUseBestDriver=Използвате драйвер %s, който е най-д YouDoNotUseBestDriver=Използвате драйвер %s, но драйвер %s е препоръчителен. NbOfObjectIsLowerThanNoPb=Имате само %s %s в базата данни. Това не изисква особена оптимизация. SearchOptim=Оптимизация на търсене -YouHaveXObjectUseSearchOptim=Имате %s %s в базата данни. Трябва да добавите константата %s със стойност 1 в Начало -> Настройка -> Други настройки. Ограничете търсенето до началото на низове, което прави възможно базата данни да използва индекси и ще получите незабавен отговор. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=Имате %s %s в базата данни и константата %s е със стойност 1 в Начало -> Настройка -> Други настройки. BrowserIsOK=Използвате уеб браузъра %s. Този браузър е добър от гледна точка на сигурност и производителност. BrowserIsKO=Използвате уеб браузъра %s. Известно е, че този браузър е лош избор от гледна точка на сигурност, производителност и надеждност. Препоръчително е да използвате Firefox, Chrome, Opera или Safari. diff --git a/htdocs/langs/bg_BG/banks.lang b/htdocs/langs/bg_BG/banks.lang index 8fb17db8823..fe4cf4b6b83 100644 --- a/htdocs/langs/bg_BG/banks.lang +++ b/htdocs/langs/bg_BG/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Ако тази функция е активирана BankColorizeMovementName1=Цвят на фона за дебитно движение BankColorizeMovementName2=Цвят на фона за кредитно движение IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/bg_BG/boxes.lang b/htdocs/langs/bg_BG/boxes.lang index 927ca02c0f9..c59a1d12298 100644 --- a/htdocs/langs/bg_BG/boxes.lang +++ b/htdocs/langs/bg_BG/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Подвижни месеци: %s последно изтек ChooseBoxToAdd=Добавяне на джаджа към таблото BoxAdded=Джаджата е добавена към таблото BoxTitleUserBirthdaysOfMonth=Рождени дни в този месец (потребители) -BoxLastManualEntries=Последни ръчни записи в счетоводството -BoxTitleLastManualEntries=Ръчни записи: %s последни +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Няма ръчни записи в счетоводството BoxSuspenseAccount=Брой счетоводни операции във временна сметка BoxTitleSuspenseAccount=Брой неразпределени редове diff --git a/htdocs/langs/bg_BG/mails.lang b/htdocs/langs/bg_BG/mails.lang index cbadb96be42..87d5e252581 100644 --- a/htdocs/langs/bg_BG/mails.lang +++ b/htdocs/langs/bg_BG/mails.lang @@ -175,3 +175,5 @@ Answered=Отговорен IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang index b54d46a8d73..b84fe0a8561 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -224,6 +224,7 @@ Value=Стойност PersonalValue=Лична стойност NewObject=Нов %s NewValue=Нова стойност +OldValue=Old value %s CurrentValue=Текуща стойност Code=Код Type=Тип @@ -655,6 +656,7 @@ SupplierPreview=Преглед на доставчик ShowCustomerPreview=Преглеждане на клиент ShowSupplierPreview=Преглеждане на доставчик RefCustomer=Изх. № на клиент +InternalRef=Internal ref. Currency=Валута InfoAdmin=Информация за администратори Undo=Отменяне @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=На изчакване +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/bg_BG/mrp.lang b/htdocs/langs/bg_BG/mrp.lang index f35119307bb..a8aea279320 100644 --- a/htdocs/langs/bg_BG/mrp.lang +++ b/htdocs/langs/bg_BG/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Обща цена BOMTotalCost=Разходите за производство на този списък с материали въз основа на разходите за всяко количество и продукт, които ще се използват (използвайте себестойност, ако е дефинирана, иначе средно претеглена цена, ако е определена, или най-добра покупна цена). GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/bg_BG/stocks.lang b/htdocs/langs/bg_BG/stocks.lang index 5475fd6afe5..2e83457229d 100644 --- a/htdocs/langs/bg_BG/stocks.lang +++ b/htdocs/langs/bg_BG/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Складова стойност UserWarehouseAutoCreate=Автоматично създаване на личен потребителски склад при създаване на потребител AllowAddLimitStockByWarehouse=Управляване също и на стойност за минимална и желана наличност за двойка (продукт - склад) в допълнение към стойността за минимална и желана наличност за продукт RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Склад по подразбиране diff --git a/htdocs/langs/bg_BG/withdrawals.lang b/htdocs/langs/bg_BG/withdrawals.lang index c96a89ead7e..6f07b1f1877 100644 --- a/htdocs/langs/bg_BG/withdrawals.lang +++ b/htdocs/langs/bg_BG/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Здравейте,

Платежното нарежд ModeWarning=Опцията за реален режим не беше зададена, спираме след тази симулация ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/bg_BG/workflow.lang b/htdocs/langs/bg_BG/workflow.lang index ed2fb4312cf..82e4a079ac2 100644 --- a/htdocs/langs/bg_BG/workflow.lang +++ b/htdocs/langs/bg_BG/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Автоматично създаване AutomaticClassification=Автоматично класифициране +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/bn_BD/accountancy.lang +++ b/htdocs/langs/bn_BD/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/bn_BD/admin.lang b/htdocs/langs/bn_BD/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/bn_BD/admin.lang +++ b/htdocs/langs/bn_BD/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/bn_BD/banks.lang b/htdocs/langs/bn_BD/banks.lang index 27f76ce0c74..ac24131462a 100644 --- a/htdocs/langs/bn_BD/banks.lang +++ b/htdocs/langs/bn_BD/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/bn_BD/boxes.lang b/htdocs/langs/bn_BD/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/bn_BD/boxes.lang +++ b/htdocs/langs/bn_BD/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/bn_BD/mails.lang b/htdocs/langs/bn_BD/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/bn_BD/mails.lang +++ b/htdocs/langs/bn_BD/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang index acdecffa3b3..d8cd5eaea4f 100644 --- a/htdocs/langs/bn_BD/main.lang +++ b/htdocs/langs/bn_BD/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/bn_BD/mrp.lang b/htdocs/langs/bn_BD/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/bn_BD/mrp.lang +++ b/htdocs/langs/bn_BD/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/bn_BD/stocks.lang b/htdocs/langs/bn_BD/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/bn_BD/stocks.lang +++ b/htdocs/langs/bn_BD/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/bn_BD/withdrawals.lang b/htdocs/langs/bn_BD/withdrawals.lang index ecb8099c033..0e84cc071d2 100644 --- a/htdocs/langs/bn_BD/withdrawals.lang +++ b/htdocs/langs/bn_BD/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/bn_BD/workflow.lang b/htdocs/langs/bn_BD/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/bn_BD/workflow.lang +++ b/htdocs/langs/bn_BD/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/bn_IN/accountancy.lang b/htdocs/langs/bn_IN/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/bn_IN/accountancy.lang +++ b/htdocs/langs/bn_IN/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/bn_IN/admin.lang b/htdocs/langs/bn_IN/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/bn_IN/admin.lang +++ b/htdocs/langs/bn_IN/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/bn_IN/banks.lang b/htdocs/langs/bn_IN/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/bn_IN/banks.lang +++ b/htdocs/langs/bn_IN/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/bn_IN/boxes.lang b/htdocs/langs/bn_IN/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/bn_IN/boxes.lang +++ b/htdocs/langs/bn_IN/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/bn_IN/mails.lang b/htdocs/langs/bn_IN/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/bn_IN/mails.lang +++ b/htdocs/langs/bn_IN/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/bn_IN/main.lang b/htdocs/langs/bn_IN/main.lang index e196120c27d..f8ba6f4073c 100644 --- a/htdocs/langs/bn_IN/main.lang +++ b/htdocs/langs/bn_IN/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/bn_IN/mrp.lang b/htdocs/langs/bn_IN/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/bn_IN/mrp.lang +++ b/htdocs/langs/bn_IN/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/bn_IN/stocks.lang b/htdocs/langs/bn_IN/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/bn_IN/stocks.lang +++ b/htdocs/langs/bn_IN/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/bn_IN/withdrawals.lang b/htdocs/langs/bn_IN/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/bn_IN/withdrawals.lang +++ b/htdocs/langs/bn_IN/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/bn_IN/workflow.lang b/htdocs/langs/bn_IN/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/bn_IN/workflow.lang +++ b/htdocs/langs/bn_IN/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang index 34353b75cf9..6a1143bab46 100644 --- a/htdocs/langs/bs_BA/accountancy.lang +++ b/htdocs/langs/bs_BA/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=Ovaj proizvod DefaultForService=Default for service DefaultForProduct=Pretpostavljeno za proizvod +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang index 66ac219e8e9..8edb636b439 100644 --- a/htdocs/langs/bs_BA/admin.lang +++ b/htdocs/langs/bs_BA/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimizacija pretraživanja -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/bs_BA/banks.lang b/htdocs/langs/bs_BA/banks.lang index ab664bec272..9b7547ab933 100644 --- a/htdocs/langs/bs_BA/banks.lang +++ b/htdocs/langs/bs_BA/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/bs_BA/boxes.lang b/htdocs/langs/bs_BA/boxes.lang index b38069cfe38..706ce4969d7 100644 --- a/htdocs/langs/bs_BA/boxes.lang +++ b/htdocs/langs/bs_BA/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Posljednje %s mjesečne plate ChooseBoxToAdd=Dodaj kutijicu na vašu nadzornu ploču BoxAdded=Kutijica je dodana na vašu nadzornu ploču BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/bs_BA/mails.lang b/htdocs/langs/bs_BA/mails.lang index a51e2c1bbc0..a9adc014ec8 100644 --- a/htdocs/langs/bs_BA/mails.lang +++ b/htdocs/langs/bs_BA/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang index 57d95ed9df7..fb1c15f2bfd 100644 --- a/htdocs/langs/bs_BA/main.lang +++ b/htdocs/langs/bs_BA/main.lang @@ -224,6 +224,7 @@ Value=Vrijednost PersonalValue=Lična vrijednost NewObject=Novi %s NewValue=Nova vrijednost +OldValue=Old value %s CurrentValue=Trenutna vrijednost Code=Kod Type=Tip @@ -655,6 +656,7 @@ SupplierPreview=Pregled prodavača ShowCustomerPreview=Pokaži sažetak kupca ShowSupplierPreview=Pokaži pregled prodavača RefCustomer=Ref. kupca +InternalRef=Internal ref. Currency=valuta InfoAdmin=Informacije za administratore Undo=vrati @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/bs_BA/mrp.lang b/htdocs/langs/bs_BA/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/bs_BA/mrp.lang +++ b/htdocs/langs/bs_BA/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/bs_BA/stocks.lang b/htdocs/langs/bs_BA/stocks.lang index bb58f89c839..3549cc9c195 100644 --- a/htdocs/langs/bs_BA/stocks.lang +++ b/htdocs/langs/bs_BA/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Skladišna vrijednost UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Glavno skladište diff --git a/htdocs/langs/bs_BA/withdrawals.lang b/htdocs/langs/bs_BA/withdrawals.lang index 0562c1419b0..67fafcf5faa 100644 --- a/htdocs/langs/bs_BA/withdrawals.lang +++ b/htdocs/langs/bs_BA/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/bs_BA/workflow.lang b/htdocs/langs/bs_BA/workflow.lang index 81f8088f74d..713199e5ec9 100644 --- a/htdocs/langs/bs_BA/workflow.lang +++ b/htdocs/langs/bs_BA/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index 1d4c1a8f5e9..de5dd2c6a24 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Aquest servei ThisProduct=Aquest producte DefaultForService=Defecte per al servei DefaultForProduct=Defecte per al producte +ProductForThisThirdparty=Producte per a aquest tercer +ServiceForThisThirdparty=Servei per a aquest tercer CantSuggest=No es pot suggerir AccountancySetupDoneFromAccountancyMenu=La major part de la configuració de la comptabilitat es realitza des del menú %s ConfigAccountingExpert=Configuració del mòdul de comptabilitat (doble entrada) @@ -379,7 +381,7 @@ SaleLocal=Venda local SaleExport=Venda d’exportació SaleEEC=Venda en CEE SaleEECWithVAT=Venda a la CEE amb un IVA que no és nul, per la qual cosa suposem que NO es tracta d’una venda intracomunitària i el compte suggerit és el compte estàndard del producte. -SaleEECWithoutVATNumber=Venda a la CEE sense IVA però l’identificador d’IVA d'aquest tercer no està definit. Així que s'ha emprat el compte del producte per a vendes estàndard. Podeu corregir l’identificador d’IVA d'aquest tercer o el compte del producte si cal. +SaleEECWithoutVATNumber=Venda a la CEE sense IVA, però l’identificador d’IVA del tercer no està definit. S'ha emprat el compte del producte per a vendes estàndard. Podeu corregir l’identificador d’IVA del tercer o el compte del producte si cal. ## Dictionary Range=Rang de compte comptable diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index dc197674bd5..552135eda7c 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -210,7 +210,7 @@ ModulesDeployDesc=Si els permisos del vostre sistema de fitxers ho permeten, pod ModulesMarketPlaces=Trobar mòduls/complements externs ModulesDevelopYourModule=Desenvolupeu els vostres mòduls/aplicacions ModulesDevelopDesc=Podeu desenvolupar o trobar un partner que desenvolupi per a vostè, el vostre mòdul personalitzat -DOLISTOREdescriptionLong=En lloc d'anar al lloc web www.dolistore.com per trobar un mòdul extern, podeu utilitzar aquesta eina incrustada que farà la cerca en la tenda per vosaltres (pot ser lent, necessiteu un accés a internet)... +DOLISTOREdescriptionLong=En lloc d'anar al lloc web www.dolistore.com per a trobar un mòdul extern, podeu utilitzar aquesta eina incrustada que farà la cerca en la tenda per vosaltres (pot ser lent, necessiteu un accés a internet)... NewModule=Mòdul nou FreeModule=Gratuït CompatibleUpTo=Compatible amb la versió %s @@ -243,7 +243,7 @@ MainDbPasswordFileConfEncrypted=Encriptar la contrasenya de la base de dades emm InstrucToEncodePass=Per a tenir la contrasenya codificada al fitxer conf.php, substituïu la línia
$ dolibarr_main_db_pass="...";
per
$dolibarr_main_db_pass = "xifrat:%s"; InstrucToClearPass=Per a tenir la contrasenya descodificada en el fitxer de configuració conf.php, reemplaça en aquest fitxer la línia
$dolibarr_main_db_pass="crypted:...";
per
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protegeix els fitxers PDF generats. Això NO es recomana ja que trenca la generació massiva de PDF. -ProtectAndEncryptPdfFilesDesc=La protecció d'un document PDF el manté disponible per llegir i imprimir amb qualsevol navegador PDF. No obstant això, l'edició i la còpia ja no és possible. Tingues en compte que l'ús d'aquesta característica fa que la construcció d'un arxiu PDF fusionat global no funcioni. +ProtectAndEncryptPdfFilesDesc=La protecció d’un document PDF el manté disponible per a llegir i imprimir amb qualsevol navegador PDF. Tanmateix, ja no és possible editar ni copiar. Tingueu en compte que l'ús d'aquesta funció fa que la creació d'un PDF combinat global no funcioni. Feature=Funció DolibarrLicense=Llicència Developpers=Desenvolupadors/col·laboradors @@ -260,7 +260,7 @@ SocialNetworks=Xarxes socials SocialNetworkId=Identificador de la xarxa social ForDocumentationSeeWiki=Per a la documentació d'usuari, desenvolupador o Preguntes Freqüents (FAQ), consulteu el wiki Dolibarr:
%s ForAnswersSeeForum=Per altres qüestions o realitzar les seves pròpies consultes, pot utilitzar el fòrum Dolibarr:
%s -HelpCenterDesc1=Aquests són alguns recursos per obtenir ajuda i suport amb Dolibarr. +HelpCenterDesc1=Aquests són alguns recursos per a obtenir ajuda i suport amb Dolibarr. HelpCenterDesc2=Alguns d'aquests serveis només estan disponibles en anglès. CurrentMenuHandler=Gestor de menú MeasuringUnit=Unitat de mesura @@ -334,7 +334,7 @@ FindPackageFromWebSite=Cerca un paquet que proporcioni les funcions que necessit DownloadPackageFromWebSite=Descarrega el paquet (per exemple, des del lloc web oficial %s). UnpackPackageInDolibarrRoot=Desempaqueta/descomprimeix els fitxers empaquetats al teu directori del servidor Dolibarr: %s UnpackPackageInModulesRoot=Per a desplegar/instal·lar un mòdul extern, descomprimiu els fitxers empaquetats al directori del servidor dedicat a mòduls externs:
%s -SetupIsReadyForUse=La instal·lació del mòdul ha finalitzat. No obstant, ha d'habilitar i configurar el mòdul en la seva aplicació, aneu a la pàgina per configurar els mòduls: %s. +SetupIsReadyForUse=La instal·lació del mòdul ha finalitzat. No obstant, ha d'habilitar i configurar el mòdul en la seva aplicació, aneu a la pàgina per a configurar els mòduls: %s. NotExistsDirect=No s'ha definit el directori arrel alternatiu a un directori existent.
InfDirAlt=Des de la versió 3, és possible definir un directori arrel alternatiu. Això li permet emmagatzemar, en un directori dedicat, plug-ins i plantilles personalitzades.
Només ha de crear un directori a l'arrel de Dolibarr (per exemple: custom).
InfDirExample=Llavors
declareu-ho a l'arxiu conf.php
$dolibarr_main_url_root_alt='/custom'
$dolibarr_main_document_root_alt='/ruta/del/dolibarr/htdocs/custom'
Si aquestes línies estan comentades amb "#", per a activar-les simplement descomenteu-les traient el caràcter "#". @@ -347,7 +347,7 @@ LastActivationAuthor=Últim autor d'activació LastActivationIP=Última IP d'activació UpdateServerOffline=Actualitza el servidor fora de línia WithCounter=Gestiona un comptador -GenericMaskCodes=Podeu introduir qualsevol màscara numèrica. En aquesta màscara es podrien utilitzar les etiquetes següents:
{000000} correspon a un número que s'incrementarà a cada %s. Introduïu tants zeros com la longitud desitjada del comptador. El comptador es completarà amb zeros per l'esquerra per tal de tenir tants zeros com la màscara.
{000000+000} igual que l'anterior, però s'aplica un desplaçament corresponent al número a la dreta del signe + a partir del primer %s.
{000000@x} igual que l'anterior, però el comptador es restableix a zero quan s'arriba al mes x (x entre 1 i 12, o 0 per utilitzar els primers mesos de l'any fiscal definits a la configuració o 99 per restablir-los a zero cada mes). Si s’utilitza aquesta opció i x és 2 o superior, també és obligatòria la seqüència {yy}{mm} o {yyyy}{mm}.
{dd} dia (de l'1 al 31).
{mm} mes (01 a 12).
{aa} , {aaaa} o {y} any en 2, 4 o 1 xifra.
+GenericMaskCodes=Podeu introduir qualsevol màscara numèrica. En aquesta màscara es podrien utilitzar les etiquetes següents:
{000000} correspon a un número que s'incrementarà a cada %s. Introduïu tants zeros com la longitud desitjada del comptador. El comptador es completarà amb zeros per l'esquerra per tal de tenir tants zeros com la màscara.
{000000+000} igual que l'anterior, però s'aplica un desplaçament corresponent al número a la dreta del signe + a partir del primer %s.
{000000@x} igual que l'anterior, però el comptador es restableix a zero quan s'arriba al mes x (x entre 1 i 12, o 0 per a utilitzar els primers mesos de l'any fiscal definits a la configuració o 99 per a restablir-los a zero cada mes). Si s’utilitza aquesta opció i x és 2 o superior, també és obligatòria la seqüència {yy}{mm} o {yyyy}{mm}.
{dd} dia (de l'1 al 31).
{mm} mes (01 a 12).
{aa} , {aaaa} o {y} any en 2, 4 o 1 xifra.
GenericMaskCodes2={cccc} el codi de client amb n caràcters
{cccc000} el codi de client amb n caràcters seguit d'un comptador dedicat pel client. Aquest comptador dedicat al client es reinicia al mateix temps que el comptador global.
{tttt} El codi del tipus de tercer amb n caràcters (vegeu el menú Inici - Configuració - Diccionaris - Tipus de tercers). Si afegeixes aquesta etiqueta, el comptador serà diferent per a cada tipus de tercer.
GenericMaskCodes3=Qualsevol altre caràcter a la màscara es quedarà sense canvis.
No es permeten espais
GenericMaskCodes4a=Exemple en el 99 %s del tercer L'Empresa, amb data 31/01/2007:
@@ -382,7 +382,7 @@ FollowingSubstitutionKeysCanBeUsed=Posant les següents etiquetes a la plantilla FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Crear_un_modelo_de_documento_ODT FirstnameNamePosition=Posició del Nom/Cognoms DescWeather=Les imatges següents es mostraran al tauler de control quan el nombre d'accions posteriors arriba als valors següents: -KeyForWebServicesAccess=Clau per utilitzar els Web Services (paràmetre "dolibarrkey" en els webservices) +KeyForWebServicesAccess=Clau per a utilitzar els serveis web (paràmetre "dolibarrkey" als serveis web) TestSubmitForm=Formulari de proves ThisForceAlsoTheme=L’ús d’aquest gestor de menús també farà servir el seu propi tema sigui quina sigui l’opció de l’usuari. A més, aquest gestor de menú especialitzat per a telèfons intel·ligents no funciona en tots els telèfons intel·ligents. Utilitzeu un altre gestor de menús si teniu problemes amb el vostre. ThemeDir=Directori dels temes @@ -440,7 +440,7 @@ ComputedFormula=Camp calculat ComputedFormulaDesc=Podeu introduir aquí una fórmula utilitzant altres propietats de l’objecte o qualsevol codi PHP per a obtenir un valor calculat dinàmicament. Podeu utilitzar qualsevol fórmula compatible amb PHP, inclòs l'operador condicional «?» i els següents objectes globals: $db, $conf, $langs, $mysoc, $user, $object.
ATENCIÓ: Només poden estar disponibles algunes propietats de $object. Si necessiteu una propietat no carregada, només cal que incorporeu l'objecte a la vostra fórmula com en el segon exemple.
Utilitzar un camp calculat implica que no podreu introduir cap valor des de la interfície. A més, si hi ha un error de sintaxi, la fórmula pot no tornar res.

Exemple de fórmula:
$object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2 )

Exemple per a tornar a carregar l'objecte
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

Un altre exemple de fórmula per a forçar la càrrega de l'objecte i el seu objecte pare:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' Computedpersistent=Emmagatzemar el camp computat ComputedpersistentDesc=Els camps addicionals calculats s’emmagatzemaran a la base de dades, però el valor només es recalcularà quan es canviï l’objecte d’aquest camp. Si el camp calculat depèn d'altres objectes o dades globals, aquest valor pot ser incorrecte!! -ExtrafieldParamHelpPassword=Mantenir aquest camp buit significa que el valor s'emmagatzema sense xifrar (el camp només ha d'estar amagat amb una estrella sobre la pantalla).
Establiu aquí el valor 'auto' per utilitzar la regla de xifrat per defecte per guardar la contrasenya a la base de dades (el valor llegit serà només el "hash", no hi haurà cap manera de recuperar el valor original) +ExtrafieldParamHelpPassword=Mantenir aquest camp buit significa que el valor s'emmagatzema sense xifrar (el camp només ha d'estar amagat amb una estrella sobre la pantalla).
Establiu aquí el valor 'auto' per a utilitzar la regla de xifrat per defecte per a guardar la contrasenya a la base de dades (el valor llegit serà només el "hash", no hi haurà cap manera de recuperar el valor original) ExtrafieldParamHelpselect=La llista de valors ha de ser un conjunt de línies amb un format del tipus clau,valor (on la clau no pot ser '0')

per exemple:
1,valor1
2,valor2
codi3,valor3
...

Per a tenir la llista depenent d'una altra llista d'atributs complementaris:
1,valor1|options_codi_llista_pare:clau_pare
2,valor2|options_codi_llista_pare:clau_pare

Per a tenir la llista depenent d'una altra llista:
1,valor1|codi_llista_pare:clau_pare
2,valor2|codi_llista_pare:clau_pare ExtrafieldParamHelpcheckbox=La llista de valor ha de ser un conjunt de línies del tipus clau,valor (on la clau no pot ser '0')

per exemple:
1,valor1
2,valor2
3,valor3
... ExtrafieldParamHelpradio=La llista de valor ha de ser un conjunt de línies del tipus clau,valor (on la clau no pot ser '0')

per exemple:
1,valor1
2,valor2
3,valor3
... @@ -476,7 +476,7 @@ DisplayCompanyInfo=Mostra l'adreça de l'empresa DisplayCompanyManagers=Mostra el gestor de noms DisplayCompanyInfoAndManagers=Mostra l'adreça de l'empresa i els noms de la persona gestora EnableAndSetupModuleCron=Si voleu que aquesta factura periòdica es generi automàticament, el mòdul * %s * s’ha d’habilitar i configurar correctament. En cas contrari, la generació de factures s’ha de fer manualment des d’aquesta plantilla mitjançant el botó *Crea*. Tingueu en compte que, fins i tot si heu activat la generació automàtica, encara podeu iniciar la generació manual amb seguretat. No es pot generar duplicats per al mateix període. -ModuleCompanyCodeCustomerAquarium=%s seguit de codi de client de tercers per obtenir un codi de comptabilitat de clients +ModuleCompanyCodeCustomerAquarium=%s seguit del codi de client per a un codi comptable de client ModuleCompanyCodeSupplierAquarium=%s seguit del codi de proveïdor per a un codi de comptabilitat del proveïdor ModuleCompanyCodePanicum=Retorna un codi comptable buit. ModuleCompanyCodeDigitaria=Retorna un codi comptable compost d'acord amb el nom del tercer. El codi consisteix en un prefix, que pot definir-se, en primera posició, seguit del nombre de caràcters que es defineixi com a codi del tercer. @@ -484,7 +484,7 @@ ModuleCompanyCodeCustomerDigitaria=%s seguit pel nom abreujat del client pel nom ModuleCompanyCodeSupplierDigitaria=%s seguit pel nom abreujat del proveïdor pel nombre de caràcters: %s pel codi del compte de proveïdor Use3StepsApproval=Per defecte, les comandes de compra necessiten ser creades i aprovades per 2 usuaris diferents (el primer pas/usuari és per a crear i un altre pas/usuari per a aprovar. Noteu que si un usuari te permisos tant per a crear com per a aprovar, un sol pas/usuari serà suficient). Amb aquesta opció, tens la possibilitat d'introduir un tercer pas/usuari per a l'aprovació, si l'import es superior a un determinat valor (d'aquesta manera són necessaris 3 passos: 1=validació, 2=primera aprovació i 3=segona aprovació si l'import és suficient).
Deixa-ho en blanc si només vols un nivell d'aprovació (2 passos); posa un valor encara que sigui molt baix (0,1) si vols una segona aprovació (3 passos). UseDoubleApproval=Utilitza una aprovació en 3 passos quan l'import (sense impostos) sigui més gran que... -WarningPHPMail=ADVERTÈNCIA: la configuració per enviar correus electrònics des de l'aplicació utilitza la configuració genèrica predeterminada. Sovint és millor configurar els correus electrònics de sortida per utilitzar el servidor de correu electrònic del vostre proveïdor de serveis de correu electrònic en lloc de la configuració predeterminada per diversos motius: +WarningPHPMail=ADVERTÈNCIA: la configuració per a enviar correus electrònics des de l'aplicació utilitza la configuració genèrica predeterminada. Sovint és millor configurar els correus electrònics de sortida per a utilitzar el servidor de correu electrònic del vostre proveïdor de serveis de correu electrònic en lloc de la configuració predeterminada per diversos motius: WarningPHPMailA=- L’ús del servidor del proveïdor de serveis de correu electrònic augmenta la confiança del vostre correu electrònic, de manera que augmenta l'enviament sense ser marcat com a SPAM WarningPHPMailB=- Alguns proveïdors de serveis de correu electrònic (com Yahoo) no us permeten enviar un correu electrònic des d'un altre servidor que el seu propi servidor. La configuració actual utilitza el servidor de l’aplicació per enviar correus electrònics i no el servidor del vostre proveïdor de correu electrònic, de manera que alguns destinataris (el compatible amb el protocol DMARC restrictiu) demanaran al vostre proveïdor de correu electrònic si poden acceptar el vostre correu electrònic i alguns proveïdors de correu electrònic. (com Yahoo) pot respondre "no" perquè el servidor no és seu, de manera que és possible que pocs dels vostres correus electrònics enviats no s'acceptin per al lliurament (tingueu cura també de la quota d'enviament del vostre proveïdor de correu electrònic). WarningPHPMailC=- També és interessant utilitzar el servidor SMTP del vostre proveïdor de serveis de correu electrònic per enviar correus electrònics, de manera que tots els correus electrònics enviats des de l’aplicació també es guardaran al directori "Enviats" de la vostra bústia de correu. @@ -494,7 +494,7 @@ WarningPHPMailSPF=Si el nom de domini de l’adreça de correu electrònic del r ClickToShowDescription=Clica per mostrar la descripció DependsOn=Aquest mòdul necessita els mòduls RequiredBy=Aquest mòdul és requerit pel/s mòdul/s -TheKeyIsTheNameOfHtmlField=Aquest és el nom del camp HTML. Es necessiten coneixements tècnics per llegir el contingut de la pàgina HTML per a obtenir el nom clau d’un camp. +TheKeyIsTheNameOfHtmlField=Aquest és el nom del camp HTML. Es necessiten coneixements tècnics per a llegir el contingut de la pàgina HTML per a obtenir el nom clau d’un camp. PageUrlForDefaultValues=Has d'introduir aquí l'URL relatiu de la pàgina. Si inclous paràmetres a l'URL, els valors predeterminats seran efectius si tots els paràmetres s'estableixen en el mateix valor. PageUrlForDefaultValuesCreate=
Exemple:
Per al formulari per crear una nou tercer, és %s .
Per a l'URL dels mòduls externs instal·lats al directori personalitzat, no incloeu "custom/", així que utilitzeu una ruta com mymodule / mypage.php i no custom/mymodule/mypage.php.
Si voleu un valor predeterminat només si la url té algun paràmetre, podeu utilitzar %s PageUrlForDefaultValuesList=
Exemple:
Per a la pàgina que llista els tercers, és %s .
Per a l'URL dels mòduls externs instal·lats al directori personalitzat, no incloeu "custom/" utilitzeu una ruta com mymodule/mypagelist.php i no custom/mymodule/mypagelist.php.
Si voleu un valor predeterminat només si la url té algun paràmetre, podeu utilitzar %s @@ -670,7 +670,7 @@ Module54000Desc=Impressió directa (sense obrir els documents) mitjançant la in Module55000Name=Enquesta o votació Module55000Desc=Creeu enquestes o vots en línia (com Doodle, Studs, RDVz, etc.) Module59000Name=Marges -Module59000Desc=Mòdul per a gestionar marges +Module59000Desc=Mòdul per a seguir els marges Module60000Name=Comissions Module60000Desc=Mòdul per a gestionar comissions Module62000Name=Incoterms @@ -1252,7 +1252,7 @@ MeteoStdMod=Mode estàndard MeteoStdModEnabled=Mode estàndard habilitat MeteoPercentageMod=Mode percentual MeteoPercentageModEnabled=Mode de percentatge activat -MeteoUseMod=Feu clic per utilitzar %s +MeteoUseMod=Feu clic per a utilitzar %s TestLoginToAPI=Comprovar connexió a l'API ProxyDesc=Algunes característiques de Dolibarr requereixen accés a Internet. Definiu aquí els paràmetres de connexió a Internet, com ara l'accés a través d'un servidor proxy, si és necessari. ExternalAccess=Accés extern / accés a Internet @@ -1308,7 +1308,7 @@ YouUseBestDriver=Utilitzeu el controlador %s, que és el millor controlador disp YouDoNotUseBestDriver=S'utilitza el controlador %s, però es recomana utilitzar el controlador %s. NbOfObjectIsLowerThanNoPb=Només teniu %s %s a la base de dades. Això no requereix cap optimització particular. SearchOptim=Cerca optimització -YouHaveXObjectUseSearchOptim=Teniu %s %s a la base de dades. Hauríeu d’afegir la constant %s a 1 a Home-Setup-Other. Limiteu la cerca a l'inici de cadenes, cosa que permet que la base de dades utilitzeu índexs i haureu d'obtenir una resposta immediata. +YouHaveXObjectUseSearchOptim=Teniu %s %s a la base de dades. Podeu afegir la constant %s a 1 a Inici-Configuració-Altres. Limiteu la cerca al començament de les cadenes, cosa que fa possible que la base de dades utilitzi índexs i hauríeu d'obtenir una resposta immediata. YouHaveXObjectAndSearchOptimOn=Teniu %s %s a la base de dades i %s constant es configura com a 1 a Home-Setup-Other. BrowserIsOK=Esteu utilitzant el navegador web %s. Aquest navegador està bé per a la seguretat i el rendiment. BrowserIsKO=Esteu utilitzant el navegador web %s. Es considera que aquest navegador és una mala elecció per a la seguretat, el rendiment i la fiabilitat. Recomanem utilitzar Firefox, Chrome, Opera o Safari. @@ -1390,7 +1390,7 @@ SupplierProposalNumberingModules=Models de numeració de sol·licitud de preus a SupplierProposalPDFModules=Models de documents de sol·licituds de preus a proveïdors FreeLegalTextOnSupplierProposal=Text lliure en sol·licituds de preus a proveïdors WatermarkOnDraftSupplierProposal=Marca d'aigua en sol·licituds de preus a proveïdors (en cas d'estar buit) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Preguntar per compte bancari per utilitzar en el pressupost +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Demana el compte bancari a utilitzar en el pressupost WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Demana pel magatzem d'origen per a la comanda ##### Suppliers Orders ##### BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Demana el compte bancari de destí de la comanda de compra @@ -1587,7 +1587,7 @@ CompressionOfResources=Compressió de les respostes HTTP CompressionOfResourcesDesc=Per exemple, utilitzant la directiva Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=La detecció automàtica no és possible amb els navegadors actuals DefaultValuesDesc=Aquí podeu definir el valor predeterminat que voleu utilitzar quan creeu un registre nou, i / o filtres predeterminats o l'ordre de classificació quan enumereu els registres. -DefaultCreateForm=Valors per defecte (per utilitzar-los en formularis) +DefaultCreateForm=Valors predeterminats (per a utilitzar en formularis) DefaultSearchFilters=Filtres de cerca per defecte DefaultSortOrder=Tipus d'ordenació per defecte DefaultFocus=Camps d'enfocament per defecte @@ -1732,7 +1732,7 @@ SupposedToBeInvoiceDate=Data de factura utilitzada Buy=Compra Sell=Venda InvoiceDateUsed=Data utilitzada de factura -YourCompanyDoesNotUseVAT=L'empresa s'ha configurat com a no subjecta a IVA (Inici - Configuració - Empresa/Organització), per tant no hi ha opcions per configurar l'IVA. +YourCompanyDoesNotUseVAT=L'empresa s'ha configurat com a no subjecta a IVA (Inici - Configuració - Empresa/Organització), per tant no hi ha opcions per a configurar l'IVA. AccountancyCode=Codi comptable AccountancyCodeSell=Codi comptable vendes AccountancyCodeBuy=Codi comptable compres @@ -1921,7 +1921,7 @@ YouUseLastStableVersion=Estàs utilitzant l'última versió estable TitleExampleForMajorRelease=Exemple de missatge que podeu utilitzar per a anunciar aquesta actualització de versió (no dubteu a utilitzar-lo als vostres llocs web) TitleExampleForMaintenanceRelease=Exemple de missatge que podeu utilitzar per a anunciar aquesta versió de manteniment (no dubteu a utilitzar-lo als vostres llocs web) ExampleOfNewsMessageForMajorRelease=Disponible ERP/CRM Dolibarr %s. La versió %s és una versió major amb un munt de noves característiques, tant per a usuaris com per a desenvolupadors. Es pot descarregar des de la secció de descàrregues del portal https://www.dolibarr.org (subdirectori versions estables). Podeu llegir ChangeLog per veure la llista completa dels canvis. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s està disponible. La versió %s és una versió de manteniment, de manera que només conté correccions d'errors. Us recomanem que tots els usuaris actualitzeu aquesta versió. Un llançament de manteniment no introdueix novetats ni canvis a la base de dades. Podeu descarregar-lo des de l'àrea de descàrrega del portal https://www.dolibarr.org (subdirectori de les versions estables). Podeu llegir el ChangeLog per obtenir una llista completa dels canvis. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s està disponible. La versió %s és una versió de manteniment, de manera que només conté correccions d'errors. Us recomanem que tots els usuaris actualitzeu aquesta versió. Un llançament de manteniment no introdueix novetats ni canvis a la base de dades. Podeu descarregar-lo des de l'àrea de descàrrega del portal https://www.dolibarr.org (subdirectori de les versions estables). Podeu llegir el ChangeLog per a obtenir una llista completa dels canvis. MultiPriceRuleDesc=Quan l'opció "Diversos nivells de preus per producte/servei" està activada, podeu definir preus diferents (un preu per nivell) per a cada producte. Per a estalviar-vos temps, aquí podeu introduir una regla per calcular automàticament un preu per a cada nivell en funció del preu del primer nivell, de manera que només haureu d'introduir un preu per al primer nivell per a cada producte. Aquesta pàgina està dissenyada per a estalviar-vos temps, però només és útil si els preus de cada nivell són relatius al primer nivell. Podeu ignorar aquesta pàgina en la majoria dels casos. ModelModulesProduct=Plantilles per documents de productes WarehouseModelModules=Plantilles per a documents de magatzems @@ -1946,7 +1946,7 @@ AddOtherPagesOrServices=Afegeix altres pàgines o serveis AddModels=Afegeix document o model de numeració AddSubstitutions=Afegeix claus de substitució DetectionNotPossible=Detecció no possible -UrlToGetKeyToUseAPIs=Url per obtenir el token per utilitzar l'API (una vegada que s'ha rebut el testimoni es guarda a la taula d'usuaris de la base de dades i s'ha de proporcionar en cada trucada de l'API) +UrlToGetKeyToUseAPIs=URL per a obtenir el testimoni per a utilitzar l'API (un cop rebut el testimoni, es desa a la taula d'usuaris de la base de dades i s'ha de proporcionar a cada trucada de l'API) ListOfAvailableAPIs=Llistat de APIs disponibles activateModuleDependNotSatisfied=El mòdul "%s" depèn del mòdul "%s", que falta, de manera que el mòdul "%1$s" pot no funcionar correctament. Instal·leu el mòdul "%2$s" o desactiveu el mòdul "%1$s" si voleu estar segur de qualsevol sorpresa. CommandIsNotInsideAllowedCommands=L'ordre que intenteu executar no es troba a la llista de comandaments permesos definits al paràmetre $ dolibarr_main_restrict_os_commands al fitxer conf.php . @@ -2059,8 +2059,8 @@ SmallerThan=Menor que LargerThan=Major que IfTrackingIDFoundEventWillBeLinked=Tingueu en compte que si es troba un identificador de seguiment d’un objecte al correu electrònic o si el correu electrònic és una resposta d’un correu electrònic que ja està recollit i enllaçat a un objecte, l’esdeveniment creat s’enllaçarà automàticament a l’objecte relacionat conegut. WithGMailYouCanCreateADedicatedPassword=Amb un compte de GMail, si heu activat la validació de dos passos, es recomana crear una segona contrasenya dedicada a l’aplicació en comptes d’utilitzar la contrasenya del vostre compte des de https://myaccount.google.com/. -EmailCollectorTargetDir=Pot ser un comportament desitjat traslladar el correu electrònic a una altra etiqueta / directori quan s'ha processat correctament. Només heu de definir el nom del directori per utilitzar aquesta funció (NO utilitzeu caràcters especials en nom). Tingueu en compte que també heu d'utilitzar un compte d'inici de sessió de lectura / escriptura. -EmailCollectorLoadThirdPartyHelp=Podeu utilitzar aquesta acció per a utilitzar el contingut del correu electrònic per trobar i carregar un tercer existent a la vostra base de dades. El tercer trobat (o creat) s'utilitzarà per seguir les accions que ho necessitin. Al camp del paràmetre podeu utilitzar, per exemple, 'EXTRACT:BODY:Name:\\s([^\\s]*)' si voleu extreure el nom del tercer d'una cadena 'Name:name to find' que es troba al cos. +EmailCollectorTargetDir=Pot ser un comportament desitjat traslladar el correu electrònic a una altra etiqueta/directori quan s'ha processat correctament. Només heu de definir el nom del directori per a utilitzar aquesta funció (NO utilitzeu caràcters especials en el nom). Tingueu en compte que també heu d'utilitzar un compte d'inici de sessió de lectura/escriptura. +EmailCollectorLoadThirdPartyHelp=Podeu utilitzar aquesta acció per a utilitzar el contingut del correu electrònic per a trobar i carregar un tercer existent a la vostra base de dades. El tercer trobat (o creat) s'utilitzarà per a seguir les accions que ho necessitin. Al camp del paràmetre podeu utilitzar, per exemple, 'EXTRACT:BODY:Name:\\s([^\\s]*)' si voleu extreure el nom del tercer d'una cadena 'Name:name to find' que es troba al cos. EndPointFor=Punt final per %s: %s DeleteEmailCollector=Suprimeix el recollidor de correu electrònic ConfirmDeleteEmailCollector=Esteu segur que voleu suprimir aquest recollidor de correu electrònic? @@ -2085,7 +2085,7 @@ TemplateAdded=S'ha afegit la plantilla TemplateUpdated=Plantilla actualitzada TemplateDeleted=S'ha suprimit la plantilla MailToSendEventPush=Correu electrònic de recordatori d'esdeveniments -SwitchThisForABetterSecurity=Es recomana canviar aquest valor a %s per obtenir més seguretat +SwitchThisForABetterSecurity=Es recomana canviar aquest valor a %s per a obtenir més seguretat DictionaryProductNature= Naturalesa del producte CountryIfSpecificToOneCountry=País (si és específic d'un país determinat) YouMayFindSecurityAdviceHere=Podeu trobar assessorament de seguretat aquí diff --git a/htdocs/langs/ca_ES/banks.lang b/htdocs/langs/ca_ES/banks.lang index aa519393533..a8562e1ab57 100644 --- a/htdocs/langs/ca_ES/banks.lang +++ b/htdocs/langs/ca_ES/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Si aquesta funció està habilitada, podeu triar un col BankColorizeMovementName1=Color de fons pel moviment de dèbit BankColorizeMovementName2=Color de fons pel moviment de crèdit IfYouDontReconcileDisableProperty=Si no feu cap conciliació bancària en alguns comptes bancaris, desactiveu la propietat "%s" per a eliminar aquest advertiment. +NoBankAccountDefined=No s'ha definit cap compte bancari diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index 070dcca036f..01a98bf0260 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -123,7 +123,7 @@ StatusOfGeneratedInvoices=Estat de factures generades BillStatusDraft=Esborrany (a validar) BillStatusPaid=Pagada BillStatusPaidBackOrConverted=Nota de crèdit reembossada o marcada com a crèdit disponible -BillStatusConverted=Pagada (llesta per utilitzar-se en factura final) +BillStatusConverted=Pagada (llesta per a utilitzar-se en la factura final) BillStatusCanceled=Abandonada BillStatusValidated=Validada (a pagar) BillStatusStarted=Pagada parcialment @@ -328,7 +328,7 @@ InvoiceStatus=Estat factura InvoiceNote=Nota factura InvoicePaid=Factura pagada InvoicePaidCompletely=Pagat per complet -InvoicePaidCompletelyHelp=Factura pagada per complet. Això exclou les factures que estan pagades parcialment. Per obtenir la llista de totes les factures tancades o no tancades, utilitzeu el filtre de l'estat de la factura. +InvoicePaidCompletelyHelp=Factura pagada per complet. Això exclou les factures que estan pagades parcialment. Per a obtenir la llista de totes les factures tancades o no tancades, utilitzeu el filtre de l'estat de la factura. OrderBilled=Ordre facturat DonationPaid=Donació pagada PaymentNumber=Número de pagament diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang index ca0c7d9e6b7..37668884c7a 100644 --- a/htdocs/langs/ca_ES/boxes.lang +++ b/htdocs/langs/ca_ES/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Els últims %s mesos consecutius ChooseBoxToAdd=Afegeix el panell a la teva taula de control BoxAdded=S'ha afegit el panell a la teva taula de control BoxTitleUserBirthdaysOfMonth=Aniversaris d'aquest mes (usuaris) -BoxLastManualEntries=Últimes entrades manuals en comptabilitat -BoxTitleLastManualEntries=Les darreres entrades manuals %s +BoxLastManualEntries=Últim registre de comptabilitat introduït manualment o sense document d'origen +BoxTitleLastManualEntries=%s últim registre introduït manualment o sense document d'origen NoRecordedManualEntries=No hi ha registres d'entrades manuals en comptabilitat BoxSuspenseAccount=Operació comptable de comptes amb compte de suspens BoxTitleSuspenseAccount=Nombre de línies no assignades diff --git a/htdocs/langs/ca_ES/cashdesk.lang b/htdocs/langs/ca_ES/cashdesk.lang index 989d1702f9f..9cfb5122c12 100644 --- a/htdocs/langs/ca_ES/cashdesk.lang +++ b/htdocs/langs/ca_ES/cashdesk.lang @@ -89,7 +89,7 @@ Colorful=Colorit HeadBar=Barra de capçalera SortProductField=Camp per a ordenar productes Browser=Navegador -BrowserMethodDescription=Impressió de rebuts senzilla i senzilla. Només uns quants paràmetres per configurar el rebut. Imprimeix a través del navegador. +BrowserMethodDescription=Impressió de rebuts fàcil i senzilla. Només uns quants paràmetres per a configurar el rebut. Imprimeix mitjançant el navegador. TakeposConnectorMethodDescription=Mòdul extern amb funcions addicionals. Possibilitat d’imprimir des del núvol. PrintMethod=Mètode d'impressió ReceiptPrinterMethodDescription=Mètode potent amb molts paràmetres. Completament personalitzable amb plantilles. No es pot imprimir des del núvol. diff --git a/htdocs/langs/ca_ES/compta.lang b/htdocs/langs/ca_ES/compta.lang index 45b56111db9..36c3821c1be 100644 --- a/htdocs/langs/ca_ES/compta.lang +++ b/htdocs/langs/ca_ES/compta.lang @@ -166,7 +166,7 @@ RulesCATotalSaleJournal=Inclou totes les línies de crèdit del Diari de venda. RulesAmountOnInOutBookkeepingRecord=Inclou un registre al vostre Llibre Major amb comptes comptables que tenen el grup "DESPESA" o "INGRÉS" RulesResultBookkeepingPredefined=Inclou un registre al vostre Llibre Major amb comptes comptables que tenen el grup "DESPESA" o "INGRÉS" RulesResultBookkeepingPersonalized=Mostra un registre al vostre Llibre Major amb comptes comptables agrupats per grups personalitzats -SeePageForSetup=Veure el menú %s per configurar-lo +SeePageForSetup=Veure el menú %s per a configurar-lo DepositsAreNotIncluded=- Les factures de bestreta no estan incloses DepositsAreIncluded=- Les factures de bestreta estan incloses LT1ReportByMonth=Informe RE per mes diff --git a/htdocs/langs/ca_ES/cron.lang b/htdocs/langs/ca_ES/cron.lang index 80c0b738715..96066b666fe 100644 --- a/htdocs/langs/ca_ES/cron.lang +++ b/htdocs/langs/ca_ES/cron.lang @@ -76,7 +76,7 @@ CronFrom=De CronType=Tipus de tasca CronType_method=Mètode per cridar una classe PHP CronType_command=Ordre Shell -CronCannotLoadClass=Impossible carregar el fitxer de la classe %s (per utilitzar la classe %s) +CronCannotLoadClass=Impossible carregar el fitxer de la classe %s (per a utilitzar la classe %s) CronCannotLoadObject=El "class file" %s s'ha carregat, però l'objecte %s no s'ha trobat dins d'ell UseMenuModuleToolsToAddCronJobs=Vés al menú "Inici - Eines d'administració: treballs programats" per veure i editar les tasques programades. JobDisabled=Tasca desactivada diff --git a/htdocs/langs/ca_ES/ecm.lang b/htdocs/langs/ca_ES/ecm.lang index 3bf028988b7..4f27a022b9e 100644 --- a/htdocs/langs/ca_ES/ecm.lang +++ b/htdocs/langs/ca_ES/ecm.lang @@ -33,7 +33,7 @@ CannotRemoveDirectoryContainsFilesOrDirs=L'eliminació no és possible perquè c CannotRemoveDirectoryContainsFiles=L'eliminació no és possible perquè conté alguns fitxers ECMFileManager=Explorador de fitxers ECMSelectASection=Seleccioneu una carpeta en l'arbre... -DirNotSynchronizedSyncFirst=Aquest directori sembla que s'ha creat o modificat fora del mòdul ECM. Heu de prémer el botó "Resincronitzar" per sincronitzar el disc i la base de dades per obtenir el contingut d'aquest directori. +DirNotSynchronizedSyncFirst=Sembla que aquest directori es va crear o modificar fora del mòdul ECM. Primer heu de fer clic al botó "Resincronitza" per sincronitzar el disc i la base de dades per a obtenir el contingut d'aquest directori. ReSyncListOfDir=Resincronitzar la llista de directoris HashOfFileContent=Resum matemàtic ("hash") del contingut del fitxer NoDirectoriesFound=No s'han trobat directoris diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index 72520d6401e..26ff6a8f8bd 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -142,7 +142,7 @@ ErrorFailedToAddContact=Error en l'addició del contacte ErrorDateMustBeBeforeToday=La data ha de ser inferior a la d’avui ErrorDateMustBeInFuture=La data ha de ser major que avui ErrorPaymentModeDefinedToWithoutSetup=S'ha establert la forma de pagament al tipus %s però a la configuració del mòdul de factures no s'ha indicat la informació per mostrar aquesta forma de pagament. -ErrorPHPNeedModule=Error, el seu PHP ha de tenir instal·lat el mòdul %s per utilitzar aquesta funcionalitat. +ErrorPHPNeedModule=Error, el vostre PHP ha de tenir instal·lat el mòdul %s per a utilitzar aquesta funció. ErrorOpenIDSetupNotComplete=Ha configurat Dolibarr per acceptar l'autentificació OpenID, però la URL del servei OpenID no es troba definida a la constant %s ErrorWarehouseMustDiffers=El magatzem d'origen i destí han de ser diferents ErrorBadFormat=El format és incorrecte! @@ -201,7 +201,7 @@ ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, el nom del comunicat del banc deu de seguir la regla de sintaxis %s -ErrorPhpMailDelivery=Comproveu que no faci servir un nombre massa alt de destinataris i que el seu contingut de correu electrònic no sigui similar a un Spam. Demani també al seu administrador que verifiqui el tallafocs i els arxius dels registres del servidor per obtenir una informació més completa. +ErrorPhpMailDelivery=Comproveu que no feu servir un nombre massa elevat de destinataris i que el vostre contingut de correu electrònic no sigui similar a un correu brossa. Demaneu també al vostre administrador que comprovi el tallafocs i els fitxers de registre del servidor per a obtenir una informació més completa. ErrorUserNotAssignedToTask=L'usuari ha d'estar assignat a la tasca per poder introduir el temps consumit. ErrorTaskAlreadyAssigned=La tasca també està assignada a l'usuari ErrorModuleFileSeemsToHaveAWrongFormat=Pareix que el mòdul té un format incorrecte. @@ -259,7 +259,7 @@ ErrorAParameterIsRequiredForThisOperation=Un paràmetre és obligatori per a aqu # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=El paràmetre PHP upload_max_filesize (%s) és superior al paràmetre PHP post_max_size (%s). No es tracta d’una configuració consistent. WarningPasswordSetWithNoAccount=S'ha indicat una contrasenya per aquest soci. En canvi, no s'ha creat cap compte d'usuari, de manera que aquesta contrasenya s'ha desat però no pot ser utilitzada per entrar a Dolibarr. Es pot utilitzar per un mòdul/interfície extern, però si no cal definir cap usuari i contrasenya per un soci, pots deshabilitar la opció "Gestiona l'entrada per tots els socis" des de la configuració del mòdul Socis. Si necessites gestionar una entrada sense contrasenya, pots mantenir aquest camp buit i permetre aquest avís. Nota: El correu electrònic es pot utilitzar per entrar si el soci està enllaçat a un usuarí -WarningMandatorySetupNotComplete=Feu clic aquí per configurar els paràmetres obligatoris +WarningMandatorySetupNotComplete=Feu clic aquí per a configurar els paràmetres obligatoris WarningEnableYourModulesApplications=Feu clic aquí per activar els vostres mòduls i aplicacions WarningSafeModeOnCheckExecDir=Atenció, està activada l'opció PHP safe_mode, la comanda ha d'estar dins d'un directori declarat dins del paràmetre php safe_mode_exec_dir. WarningBookmarkAlreadyExists=Ja existeix un marcador amb aquest títol o aquest URL. @@ -285,5 +285,5 @@ WarningProjectClosed=El projecte està tancat. Heu de tornar a obrir primer. WarningSomeBankTransactionByChequeWereRemovedAfter=Algunes transaccions bancàries es van suprimir després que es generés el rebut que les conté. Per tant, el nombre de xecs i el total de rebuts poden diferir del nombre i el total a la llista. WarningFailedToAddFileIntoDatabaseIndex=Advertiment: no s'ha pogut afegir l'entrada de fitxer a la taula d'índex de la base de dades ECM WarningTheHiddenOptionIsOn=Advertiment, l'opció oculta %s està activada. -WarningCreateSubAccounts=Atenció, no podeu crear directament un subcompte, heu de crear un tercer o un usuari i assignar-los un codi comptable per trobar-los en aquesta llista. +WarningCreateSubAccounts=Atenció, no podeu crear directament un subcompte, heu de crear un tercer o un usuari i assignar-los un codi comptable per a trobar-los en aquesta llista. WarningAvailableOnlyForHTTPSServers=Disponible només si s'utilitza una connexió segura HTTPS. diff --git a/htdocs/langs/ca_ES/exports.lang b/htdocs/langs/ca_ES/exports.lang index 2e8e4deaa14..f66769a30f7 100644 --- a/htdocs/langs/ca_ES/exports.lang +++ b/htdocs/langs/ca_ES/exports.lang @@ -92,8 +92,8 @@ NbOfLinesOK=Nombre de línies sense errors ni warnings: %s. NbOfLinesImported=Nombre de línies correctament importades: %s. DataComeFromNoWhere=El valor a inserir no correspon a cap camp de l'arxiu origen. DataComeFromFileFieldNb=El valor a inserir es correspon al camp nombre <%s de l'arxiu origen. -DataComeFromIdFoundFromRef=El valor que prové del número de camp %s del fitxer d'origen s'utilitzarà per trobar l'id del objecte primari que s'utilitzarà (de manera que l'objecte %s que té la referència del fitxer d'origen ha d'existir a la base de dades). -DataComeFromIdFoundFromCodeId=El codi que prové del número de camp %s del fitxer d'origen s'utilitzarà per trobar l'id del seu objecte primari a utilitzar (pel que el codi del fitxer d'origen ha d'existir al diccionari %s ). Tingueu en compte que si coneixeu l'identificador, també podeu utilitzar-lo al fitxer font en lloc del codi. La importació ha de funcionar en ambdós casos. +DataComeFromIdFoundFromRef=El valor que prové del camp numèric %s del fitxer d'origen s'utilitzarà per a trobar l'id de l'objecte pare que s'utilitzarà (de manera que l'objecte %s que té la referència del fitxer d'origen ha d'existir a la base de dades). +DataComeFromIdFoundFromCodeId=El codi que prové del camp numèric %s del fitxer d'origen s'utilitzarà per a trobar l'id de l'objecte pare a utilitzar (pel que el codi del fitxer d'origen ha d'existir al diccionari %s). Tingueu en compte que si coneixeu l'identificador, també podeu utilitzar-lo al fitxer font en lloc del codi. La importació ha de funcionar en ambdós casos. DataIsInsertedInto=Les dades de l'arxiu d'origen s'inseriran en el següent camp: DataIDSourceIsInsertedInto=L'identificador de l'objecte primari s'ha trobat utilitzant les dades del fitxer d'origen, s'inserirà en el camp següent: DataCodeIDSourceIsInsertedInto=L'id de la línia pare trobada a partir del codi, s'ha d'inserir en el següent camp: diff --git a/htdocs/langs/ca_ES/holiday.lang b/htdocs/langs/ca_ES/holiday.lang index 253c738b934..5a0098d8bdd 100644 --- a/htdocs/langs/ca_ES/holiday.lang +++ b/htdocs/langs/ca_ES/holiday.lang @@ -124,7 +124,7 @@ HolidaysCanceled=Dies lliures retribuïts cancel·lats HolidaysCanceledBody=S'ha cancel·lat la vostra sol·licitud de permís del %s al %s. FollowedByACounter=1: Aquest tipus de dia lliure necessita el seguiment d'un comptador. El comptador s'incrementa manualment o automàticament i quan hi ha una petició de dia lliure validada, el comptador es decrementa.
0: No seguit per un comptador. NoLeaveWithCounterDefined=No s'han definit els tipus de dies lliures que son necessaris per poder seguir-los amb comptador -GoIntoDictionaryHolidayTypes=Ves a Inici - Configuració - Diccionaris - Tipus de dies lliures per configurar els diferents tipus de dies lliures +GoIntoDictionaryHolidayTypes=Ves a Inici - Configuració - Diccionaris - Tipus de dies lliures per a configurar els diferents tipus de dies lliures HolidaySetup=Configuració del mòdul Vacances HolidaysNumberingModules=Models numerats de sol·licituds de dies lliures TemplatePDFHolidays=Plantilla per a sol·licituds de permisos en PDF diff --git a/htdocs/langs/ca_ES/mails.lang b/htdocs/langs/ca_ES/mails.lang index 9f5bc2a6b83..ffcbd2fd725 100644 --- a/htdocs/langs/ca_ES/mails.lang +++ b/htdocs/langs/ca_ES/mails.lang @@ -134,7 +134,7 @@ AddNewNotification=Subscriviu-vos a una nova notificació automàtica per correu ListOfActiveNotifications=Llista totes les subscripcions actives (destinataris/esdeveniments) per a notificacions automàtiques per correu electrònic ListOfNotificationsDone=Llista totes les notificacions automàtiques enviades per correu electrònic MailSendSetupIs=La configuració d'enviament d'e-mail s'ha ajustat a '%s'. Aquest mètode no es pot utilitzar per enviar e-mails massius. -MailSendSetupIs2=Primer heu d’anar, amb un compte d’administrador, al menú %sInici - Configuració - Correus electrònics%s per canviar el paràmetre '%s' per utilitzar el mode '%s'. Amb aquest mode, podeu introduir la configuració del servidor SMTP proporcionat pel vostre proveïdor de serveis d'Internet i utilitzar la funció de correu electrònic massiu. +MailSendSetupIs2=Primer heu d’anar, amb un compte d’administrador, al menú %sInici - Configuració - Correus electrònics%s per a canviar el paràmetre '%s' per a utilitzar el mode '%s'. Amb aquest mode, podeu introduir la configuració del servidor SMTP proporcionat pel vostre proveïdor de serveis d'Internet i utilitzar la funció de correu electrònic massiu. MailSendSetupIs3=Si teniu cap pregunta sobre com configurar el servidor SMTP, podeu demanar-li a %s. YouCanAlsoUseSupervisorKeyword=També pot afegir l'etiqueta __SUPERVISOREMAIL__ per tenir un e-mail enviat pel supervisor a l'usuari (només funciona si un e-mail és definit per aquest supervisor) NbOfTargetedContacts=Nombre actual de correus electrònics de contactes destinataris @@ -142,7 +142,7 @@ UseFormatFileEmailToTarget=El fitxer importat ha de tenir el format emai UseFormatInputEmailToTarget=Entra una cadena amb el format email;nom;cognom;altre MailAdvTargetRecipients=Destinataris (selecció avançada) AdvTgtTitle=Ompliu els camps d'entrada per seleccionar prèviament els tercers o contactes / adreces a destinació -AdvTgtSearchTextHelp=Utilitzeu %% com a comodins. Per exemple, per trobar tots els elements com jean, joe, jim , podeu introduir j%% , també podeu utilitzar ; com a separador de valor i utilitzar ! per excepcions d'aquest valor. Per exemple, jean;joe;jim%%;!jimo;!jima%% tindrà com a objectiu tots els jean, joe, començant per jim però no jimo ni tot el que comenci amb jima +AdvTgtSearchTextHelp=Utilitzeu %% com a comodins. Per exemple, per a trobar tots els elements com jean, joe, jim , podeu introduir j%% , també podeu utilitzar ; com a separador de valor i utilitzar ! per excepcions d'aquest valor. Per exemple, jean;joe;jim%%;!jimo;!jima%% tindrà com a objectiu tots els jean, joe, començant per jim però no jimo ni tot el que comenci amb jima AdvTgtSearchIntHelp=Utilitza un interval per seleccionar un valor enter o decimal AdvTgtMinVal=Valor mínim AdvTgtMaxVal=Valor màxim @@ -175,3 +175,5 @@ Answered=Respost IsNotAnAnswer=No és resposta (correu electrònic inicial) IsAnAnswer=És la resposta d’un correu electrònic inicial RecordCreatedByEmailCollector=Registre creat pel Receptor de correus electrònics %s des del correu electrònic %s +DefaultBlacklistMailingStatus=Estat de contacte predeterminat per a rebutjar correus electrònics massius +DefaultStatusEmptyMandatory=Buit però obligatori diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index f780dfa3459..a50db98d5f8 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -113,7 +113,7 @@ RequestLastAccessInError=Últimes peticions d'accés a la base de dades amb erro ReturnCodeLastAccessInError=Retorna el codi per les últimes peticions d'accés a la base de dades amb error InformationLastAccessInError=Informació de les últimes peticions d'accés a la base de dades amb error DolibarrHasDetectedError=Dolibarr ha trobat un error tècnic -YouCanSetOptionDolibarrMainProdToZero=Podeu llegir el fitxer de registre o establir l'opció $dolibarr_main_prod a '0' al vostre fitxer de configuració per obtenir més informació. +YouCanSetOptionDolibarrMainProdToZero=Podeu llegir el fitxer de registre o establir l'opció $dolibarr_main_prod a '0' al fitxer de configuració per a obtenir més informació. InformationToHelpDiagnose=Aquesta informació pot ser útil per a fer diagnòstics (podeu configurar l'opció $dolibarr_main_prod a '1' per eliminar aquestes notificacions) MoreInformation=Més informació TechnicalInformation=Informació tècnica @@ -224,6 +224,7 @@ Value=Valor PersonalValue=Valor personalitzat NewObject=Nou %s NewValue=Valor nou +OldValue=Valor antic %s CurrentValue=Valor actual Code=Codi Type=Tipus @@ -655,6 +656,7 @@ SupplierPreview=Vista prèvia del proveïdor ShowCustomerPreview=Veure historial client ShowSupplierPreview=Mostra la vista prèvia del proveïdor RefCustomer=Ref. client +InternalRef=Ref. Interna Currency=Divisa InfoAdmin=Informació per als administradors Undo=Desfer @@ -752,7 +754,7 @@ Merge=Fussió DocumentModelStandardPDF=Plantilla PDF estàndard PrintContentArea=Mostrar pàgina d'impressió de la zona central MenuManager=Gestor de menú -WarningYouAreInMaintenanceMode=Advertència, esteu en mode de manteniment: només podeu iniciar sessió %s per utilitzar l'aplicació en aquest mode. +WarningYouAreInMaintenanceMode=Atenció, esteu en mode de manteniment: només podeu iniciar sessió amb %s per a utilitzar l'aplicació en aquest mode. CoreErrorTitle=Error del sistema CoreErrorMessage=Ho sentim, s'ha produït un error. Poseu-vos en contacte amb l'administrador del sistema per a comprovar els registres o desactiva $dolibarr_main_prod=1 per a obtenir més informació. CreditCard=Targeta de crèdit @@ -1113,6 +1115,7 @@ OutOfDate=Obsolet EventReminder=Recordatori d'esdeveniments UpdateForAllLines=Actualització per a totes les línies OnHold=Fora de servei +Civility=Civility AffectTag=Afecta l'etiqueta ConfirmAffectTag=Afecta l'etiqueta massivament ConfirmAffectTagQuestion=Esteu segur que voleu afectar les etiquetes als registres seleccionats %s? diff --git a/htdocs/langs/ca_ES/mrp.lang b/htdocs/langs/ca_ES/mrp.lang index 907bdd872b3..fe06e690cd0 100644 --- a/htdocs/langs/ca_ES/mrp.lang +++ b/htdocs/langs/ca_ES/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Cost total BOMTotalCost=El cost de produir aquesta Llista de materials en funció del cost de cada quantitat i producte a consumir (utilitza el preu de cost si està definit, altrament el preu mitjà ponderat si està definit, altrament el millor preu de compra) GoOnTabProductionToProduceFirst=Per tancar una Ordre de fabricació primer heu d'iniciar la producció (vegeu la pestanya '%s'). Però sí podeu cancel·lar-la. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit no es pot utilitzar en una llista de material o en una OF +Workstation=Estació de treball +Workstations=Estacions de treball +WorkstationsDescription=Gestió d’estacions de treball +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Llista d’estacions de treball +WorkstationCreate=Afegeix una nova estació de treball +ConfirmEnableWorkstation=Esteu segur que voleu habilitar l'estació de treball %s ? +EnableAWorkstation=Activa una estació de treball +ConfirmDisableWorkstation=Esteu segur que voleu desactivar l'estació de treball %s ? +DisableAWorkstation=Desactiva una estació de treball +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Tipus d'estació de treball +Human=Humà +Machine=Màquina +HumanMachine=Humà / Màquina +WorkstationArea=Workstation area +Machines=Màquines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/ca_ES/multicurrency.lang b/htdocs/langs/ca_ES/multicurrency.lang index 65919bb8818..2b058698634 100644 --- a/htdocs/langs/ca_ES/multicurrency.lang +++ b/htdocs/langs/ca_ES/multicurrency.lang @@ -4,10 +4,10 @@ ErrorAddRateFail=Error en la taxa afegida ErrorAddCurrencyFail=Error en la moneda afegida ErrorDeleteCurrencyFail=Error en esborrar multicurrency_syncronize_error=Error de sincronització: %s -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Utilitza la data del document per trobar el tipus de canvi, en comptes d'utilitzar l'última conversió coneguda +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Utilitza la data del document per a trobar el tipus de canvi, en lloc d’utilitzar la conversió més recent conegut multicurrency_useOriginTx=Quan un objecte es crea des d'un altre, manté la conversió original de l'objecte origen (en cas contrari, fes servir l'última conversió coneguda) CurrencyLayerAccount=API Moneda-Layer -CurrencyLayerAccount_help_to_synchronize=Heu de crear un compte al lloc web %s per utilitzar aquesta funcionalitat.
Obtingueu la vostra clau d’API .
Si utilitzeu un compte gratuït, no podeu canviar la moneda d'origen (per defecte, USD).
Si la vostra moneda principal no és USD, l'aplicació la recalcularà automàticament.

Es limita a 1000 sincronitzacions mensuals. +CurrencyLayerAccount_help_to_synchronize=Heu de crear un compte al lloc web %s per a utilitzar aquesta funcionalitat.
Obtingueu la vostra clau d’API .
Si utilitzeu un compte gratuït, no podeu canviar la moneda d'origen (per defecte, USD).
Si la vostra moneda principal no és USD, l'aplicació la recalcularà automàticament.

Es limita a 1000 sincronitzacions mensuals. multicurrency_appId=Clau API multicurrency_appCurrencySource=Moneda origen multicurrency_alternateCurrencySource=Moneda d'origen alternativa diff --git a/htdocs/langs/ca_ES/paybox.lang b/htdocs/langs/ca_ES/paybox.lang index a83d626c618..0da9d902659 100644 --- a/htdocs/langs/ca_ES/paybox.lang +++ b/htdocs/langs/ca_ES/paybox.lang @@ -18,12 +18,11 @@ YourPaymentHasBeenRecorded=Aquesta pàgina confirma que el pagament s'ha registr YourPaymentHasNotBeenRecorded=El vostre pagament no s'ha registrat i la transacció s'ha cancel·lat. Gràcies. AccountParameter=Paràmetres del compte UsageParameter=Paràmetres d'ús -InformationToFindParameters=Informació per trobar la seva configuració de compte %s +InformationToFindParameters=Ajuda per a trobar la vostra informació del compte %s PAYBOX_CGI_URL_V2=Url del mòdul CGI Paybox de pagament -VendorName=Nom del venedor CSSUrlForPaymentForm=Url del full d'estil CSS per al formulari de pagament -NewPayboxPaymentReceived=Nou pagament Paybox rebut -NewPayboxPaymentFailed=Nou intent de pagament Paybox sense èxit +NewPayboxPaymentReceived=S'ha rebut el nou pagament de Paybox +NewPayboxPaymentFailed=S'ha provat el nou pagament de Paybox, però ha fallat PAYBOX_PAYONLINE_SENDEMAIL=Notificació per correu electrònic després de l'intent de pagament (èxit o fracàs) PAYBOX_PBX_SITE=Valor per PBX SITE PAYBOX_PBX_RANG=valor per PBX Rang diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index 6be976d0f52..ab089492c72 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -246,7 +246,7 @@ MultipriceRules=Preus automàtics per segment UseMultipriceRules=Utilitzeu les regles del segment de preus (definides a la configuració del mòdul de producte) per calcular automàticament els preus de tots els altres segments segons el primer segment PercentVariationOver=%% variació sobre %s PercentDiscountOver=%% descompte sobre %s -KeepEmptyForAutoCalculation=Mantingueu-lo buit per obtenir-ho calculat automàticament pel pes o el volum dels productes +KeepEmptyForAutoCalculation=Mantingueu-lo buit per a calcular-ho automàticament a partir del pes o volum dels productes VariantRefExample=Exemples: COL, TALLA VariantLabelExample=Exemples: Color, Talla ### composition fabrication diff --git a/htdocs/langs/ca_ES/recruitment.lang b/htdocs/langs/ca_ES/recruitment.lang index c94352a6c55..f9b8ebf2176 100644 --- a/htdocs/langs/ca_ES/recruitment.lang +++ b/htdocs/langs/ca_ES/recruitment.lang @@ -54,7 +54,7 @@ JobOfferToBeFilled=Lloc de treball a cobrir ThisIsInformationOnJobPosition=Informació del lloc de treball a ocupar ContactForRecruitment=Contacte per a la contractació EmailRecruiter=El reclutador de correu electrònic -ToUseAGenericEmail=Per utilitzar un correu electrònic genèric. Si no està definit, s’utilitzarà el correu electrònic del responsable de la contractació +ToUseAGenericEmail=Per a utilitzar un correu electrònic genèric. Si no està definit, s’utilitzarà el correu electrònic del responsable de la contractació NewCandidature=Candidatura nova ListOfCandidatures=Llista de candidatures RequestedRemuneration=Retribució sol·licitada diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang index 866027d8fa1..5de1e46400b 100644 --- a/htdocs/langs/ca_ES/stocks.lang +++ b/htdocs/langs/ca_ES/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Valor d'estocs UserWarehouseAutoCreate=Crea un usuari de magatzem automàticament quan es crea un usuari AllowAddLimitStockByWarehouse=Gestioneu també valors mínims d'estoc desitjat per emparellament (producte-magatzem), a més de valors mínims d'estoc desitjat per producte RuleForWarehouse=Regles per als magatzems +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Estableix un magatzem per a les comandes de venda UserDefaultWarehouse=Estableix un magatzem per Usuaris MainDefaultWarehouse=Magatzem predeterminat @@ -236,7 +237,7 @@ AlwaysShowFullArbo=Mostra l'arbre complet de magatzems a la finestra emergent de StockAtDatePastDesc=Aquí podeu veure l'estoc (estoc real) en una data determinada del passat StockAtDateFutureDesc=Aquí podeu veure l'estoc (estoc virtual) en una data determinada en el futur CurrentStock=Estoc actual -InventoryRealQtyHelp=Estableix el valor a 0 per restablir qty
Mantenir el camp buit o suprimir la línia per mantenir-la sense canvis +InventoryRealQtyHelp=Estableix el valor a 0 per a restablir la quantitat
Mantén el camp buit o elimina la línia per a mantenir-la sense canvis UpdateByScaning=Actualitza per escaneig UpdateByScaningProductBarcode=Actualització per escaneig (codi de barres de producte) UpdateByScaningLot=Actualització per escaneig (codi de barres lot|sèrie) diff --git a/htdocs/langs/ca_ES/stripe.lang b/htdocs/langs/ca_ES/stripe.lang index 436808a0af2..1f519da9659 100644 --- a/htdocs/langs/ca_ES/stripe.lang +++ b/htdocs/langs/ca_ES/stripe.lang @@ -26,7 +26,7 @@ YouCanAddTagOnUrl=També podeu afegir el paràmetre URL &tag=valor%s per fer que el pagament es creï automàticament quan es valide mitjançant Stripe. AccountParameter=Paràmetres del compte UsageParameter=Paràmetres d'ús -InformationToFindParameters=Informació per trobar la seva configuració de compte %s +InformationToFindParameters=Ajuda per a trobar la vostra informació del compte %s STRIPE_CGI_URL_V2=URL CGI del mòdul Stripe per al pagament CSSUrlForPaymentForm=Url del full d'estil CSS per al formulari de pagament NewStripePaymentReceived=S'ha rebut un pagament nou de Stripe @@ -38,7 +38,7 @@ STRIPE_TEST_WEBHOOK_KEY=Clau de prova de Webhook STRIPE_LIVE_SECRET_KEY=Clau secreta STRIPE_LIVE_PUBLISHABLE_KEY=Clau publicable STRIPE_LIVE_WEBHOOK_KEY=Webhook clau en directe -ONLINE_PAYMENT_WAREHOUSE=Les existències per utilitzar per disminuir les existències quan es fa el pagament en línia
(Pendent de fer Quan es fa una opció per reduir l'estoc en una acció a la factura i es genera la factura el pagament en línia?) +ONLINE_PAYMENT_WAREHOUSE=Estoc a utilitzar per a disminuir l'estoc quan es fa el pagament en línia
(Pendent de fer quan l'opció per a reduir l'estoc es fa en una acció a la factura i el pagament en línia es genera la seva factura?) StripeLiveEnabled=Stripe live activat (en cas contrari, mode de prova/sandbox) StripeImportPayment=Importar pagaments per Stripe ExampleOfTestCreditCard=Exemple de targeta de crèdit per a la prova: %s => vàlid, %s => error CVC, %s => caducat, %s => falla la càrrega @@ -62,7 +62,7 @@ ConfirmDeleteCard=Estàs segur que vols eliminar aquesta targeta de crèdit o de CreateCustomerOnStripe=Crea un client a Stripe CreateCardOnStripe=Crea una targeta a Stripe ShowInStripe=Mostra a Stripe -StripeUserAccountForActions=Compte d'usuari per utilitzar en alguns e-mails de notificació d'esdeveniments Stripe (pagaments Stripe) +StripeUserAccountForActions=Compte d'usuari que s'utilitzarà per a la notificació per correu electrònic d'alguns esdeveniments de Stripe (pagaments de Stripe) StripePayoutList=Llista de pagaments de Stripe ToOfferALinkForTestWebhook=Enllaç a la configuració de Stripe WebHook per trucar a l’IPN (mode de prova) ToOfferALinkForLiveWebhook=Enllaç a la configuració de Stripe WebHook per trucar a l’IPN (mode en directe) diff --git a/htdocs/langs/ca_ES/ticket.lang b/htdocs/langs/ca_ES/ticket.lang index 8c4a695766a..8e111a62ae9 100644 --- a/htdocs/langs/ca_ES/ticket.lang +++ b/htdocs/langs/ca_ES/ticket.lang @@ -104,7 +104,7 @@ TicketPublicInterfaceTopicHelp=Aquest text apareixerà com el títol de la inter TicketPublicInterfaceTextHelpMessageLabelAdmin=Text d'ajuda a l'entrada del missatge TicketPublicInterfaceTextHelpMessageHelpAdmin=Aquest text apareixerà a sobre de l'àrea d'entrada de missatges per a l'usuari. ExtraFieldsTicket=Extra atributs -TicketCkEditorEmailNotActivated=L'editor HTML no està activat. Poseu FCKEDITOR_ENABLE_MAIL contingut a 1 per obtenir-lo. +TicketCkEditorEmailNotActivated=L'editor HTML no està activat. Poseu el contingut de FCKEDITOR_ENABLE_MAIL a 1 per a obtenir-lo. TicketsDisableEmail=No enviïs missatges de correu electrònic per a la creació de bitllets o la gravació de missatges TicketsDisableEmailHelp=De manera predeterminada, s'envien correus electrònics quan es creen nous tiquets o missatges. Activeu aquesta opció per a desactivar *totes* les notificacions per correu electrònic TicketsLogEnableEmail=Activa el 'log' (registre d'activitat) per correu electrònic diff --git a/htdocs/langs/ca_ES/users.lang b/htdocs/langs/ca_ES/users.lang index f06f99b4188..0d7ea59bf46 100644 --- a/htdocs/langs/ca_ES/users.lang +++ b/htdocs/langs/ca_ES/users.lang @@ -46,8 +46,8 @@ RemoveFromGroup=Eliminar del grup PasswordChangedAndSentTo=Contrasenya canviada i enviada a %s. PasswordChangeRequest=Sol·licitud per canviar la contrasenya de %s PasswordChangeRequestSent=Petició de canvi de contrasenya per a %s enviada a %s. -IfLoginExistPasswordRequestSent=Si aquest inici de sessió és un compte vàlid, s'ha enviat un correu electrònic per restablir la contrasenya. -IfEmailExistPasswordRequestSent=Si aquest correu electrònic és un compte vàlid, s'ha enviat un correu electrònic per restablir la contrasenya. +IfLoginExistPasswordRequestSent=Si aquest inici de sessió és un compte vàlid, s'ha enviat un correu electrònic per a restablir la contrasenya. +IfEmailExistPasswordRequestSent=Si aquest correu electrònic és un compte vàlid, s'ha enviat un correu electrònic per a restablir la contrasenya. ConfirmPasswordReset=Confirma la restauració de la contrasenya MenuUsersAndGroups=Usuaris i grups LastGroupsCreated=Últims %s grups creats diff --git a/htdocs/langs/ca_ES/website.lang b/htdocs/langs/ca_ES/website.lang index 068bb9cc4d9..2e035ce7bf6 100644 --- a/htdocs/langs/ca_ES/website.lang +++ b/htdocs/langs/ca_ES/website.lang @@ -4,7 +4,7 @@ WebsiteSetupDesc=Creeu aquí els llocs web que voleu utilitzar. A continuació, DeleteWebsite=Elimina la pàgina web ConfirmDeleteWebsite=Esteu segur que voleu suprimir aquest lloc web? Totes les seves pàgines i contingut també se suprimiran. Els fitxers penjats (com al directori de suports, el mòdul ECM, ...) romandran. WEBSITE_TYPE_CONTAINER=Tipus de pàgina/contenidor -WEBSITE_PAGE_EXAMPLE=Pàgina web per utilitzar com a exemple +WEBSITE_PAGE_EXAMPLE=Pàgina web per a utilitzar com a exemple WEBSITE_PAGENAME=Nom/alies de pàgina WEBSITE_ALIASALT=Noms de pàgina alternatius / àlies WEBSITE_ALIASALTDesc=Utilitzeu aquí la llista d'altres noms / àlies, per la qual cosa també es pot accedir a la pàgina amb altres noms / àlies (per exemple, el nom antic després de canviar el nom de l'àlies per mantenir el vincle d'enllaç a l'antic vincle / nom de treball). La sintaxi és:
alternativament1, alternativament2, ... @@ -51,7 +51,7 @@ ReadPerm=Llegit WritePerm=Escriu TestDeployOnWeb=Prova / implantació a la web PreviewSiteServedByWebServer=
  • Vista prèvia %s en una nova pestanya.


  • El %s serà servit per un servidor web extern (com ara Apache, Nginx, IIS). Heu d'instal·lar i configurar aquest servidor abans d'apuntar al directori:
    %s
    URL servit per un servidor extern:
    %s
    -PreviewSiteServedByDolibarr= Previsualitza %s en una nova pestanya.

    El servidor %s serà servit pel servidor Dolibarr d'aquesta manera no es necessita instal·la cap servidor web addicional (com ara Apache, Nginx, IIS).
    L'inconvenient és que l'URL de les pàgines no son amigables i començen per la ruta del vostre Dolibarr.
    URL servit per Dolibarr:
    %s

    Per utilitzar el vostre propi servidor web extern per a servir a aquest lloc web, creeu un amfitrió ('host') virtual al vostre servidor web que apunti al directori
    %s
    , llavors introduïu el nom d'aquest servidor virtual i feu clic a l'altre botó de vista prèvia (botó de 'preview'). +PreviewSiteServedByDolibarr= Previsualitza %s en una nova pestanya.

    El %s serà servit pel servidor Dolibarr així que no cal instal·lar cap servidor web addicional (com ara Apache, Nginx, IIS).
    L'inconvenient és que l'URL de les pàgines no són amigables i comencen per la ruta del vostre Dolibarr.
    URL servit per Dolibarr:
    %s

    Per a utilitzar el vostre propi servidor web extern per a servir a aquest lloc web, creeu un amfitrió virtual al vostre servidor web que apunti al directori
    %s
    , llavors introduïu el nom d'aquest servidor virtual i feu clic a l'altre botó de vista prèvia. VirtualHostUrlNotDefined=No s'ha definit la URL de l'amfitrió virtual que serveix el servidor web extern NoPageYet=Encara sense pàgines YouCanCreatePageOrImportTemplate=Podeu crear una pàgina nova o importar una plantilla completa del lloc web diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang index 2d5b4840b4a..d41189fe88b 100644 --- a/htdocs/langs/ca_ES/withdrawals.lang +++ b/htdocs/langs/ca_ES/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hola,

    el rebut domiciliat de la factura %s relacionada ModeWarning=No s'ha establert l'opció de treball en real, ens aturarem després d'aquesta simulació ErrorCompanyHasDuplicateDefaultBAN=L’empresa amb l’identificador %s té més d’un compte bancari per defecte. No hi ha manera de saber quin utilitzar. ErrorICSmissing=Falta ICS al compte bancari %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/ca_ES/workflow.lang b/htdocs/langs/ca_ES/workflow.lang index 4b1de45aba8..a673ed97ca0 100644 --- a/htdocs/langs/ca_ES/workflow.lang +++ b/htdocs/langs/ca_ES/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classifica les recepcions com a "facturades" quan descWORKFLOW_TICKET_CLOSE_INTERVENTION=Tanca totes les intervencions vinculades quan es tanca un tiquet AutomaticCreation=Creació automàtica AutomaticClassification=Classificació automàtica +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang index 6ec2d245f88..93353881a95 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Tato služba ThisProduct=Tento výrobek DefaultForService=Výchozí nastavení pro službu DefaultForProduct=Výchozí produkt +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Nelze navrhnout AccountancySetupDoneFromAccountancyMenu=Většina nastavení účetnictví se provádí z nabídky %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index eff99d7309e..e272aa6e780 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Přímý tisk (bez otevírání dokumentů) pomocí rozhraní Cu Module55000Name=Anketa, průzkum nebo hlasování Module55000Desc=Vytvořte ankety, průzkumy nebo hlasování online (jako Doodle, Studs, RDVz atd ...) Module59000Name=Okraje -Module59000Desc=Modul pro správu marže +Module59000Desc=Module to follow margins Module60000Name=Provize Module60000Desc=Modul pro správu provize Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=Používáte ovladač %s, který je v současné době nejlepš YouDoNotUseBestDriver=Používáte ovladač %s, ale doporučuje se ovladač %s. NbOfObjectIsLowerThanNoPb=V databázi máte pouze %s %s. To nevyžaduje žádnou zvláštní optimalizaci. SearchOptim=Optimalizace pro vyhledávače -YouHaveXObjectUseSearchOptim=V databázi máte %s %s. Konstantu %s byste měli přidat k 1 v Home-Setup-Other. Omezte vyhledávání na začátek řetězců, což umožňuje databázi používat indexy a měli byste získat okamžitou odpověď. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=Máte %s %s v databázi a konstanta %s je nastavena na 1 v Home-Setup-Other. BrowserIsOK=Používáte webový prohlížeč %s. Tento prohlížeč je v pořádku pro zabezpečení a výkon. BrowserIsKO=Používáte webový prohlížeč %s. Tento prohlížeč je znám jako špatná volba pro zabezpečení, výkon a spolehlivost. Doporučujeme používat prohlížeče Firefox, Chrome, Opera nebo Safari. diff --git a/htdocs/langs/cs_CZ/banks.lang b/htdocs/langs/cs_CZ/banks.lang index 30f81d62472..2a7b3acfdfa 100644 --- a/htdocs/langs/cs_CZ/banks.lang +++ b/htdocs/langs/cs_CZ/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Pokud je tato funkce povolena, můžete vybrat konkrét BankColorizeMovementName1=Barva pozadí pro debetní pohyb BankColorizeMovementName2=Barva pozadí pro pohyb úvěru IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/cs_CZ/boxes.lang b/htdocs/langs/cs_CZ/boxes.lang index cf4e76d8b8e..e6624e679e4 100644 --- a/htdocs/langs/cs_CZ/boxes.lang +++ b/htdocs/langs/cs_CZ/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Nejnovější %s měsíc válcování ChooseBoxToAdd=Přidání widgetu do hlavního panelu BoxAdded=Widget byl přidán do hlavního panelu BoxTitleUserBirthdaysOfMonth=Narozeniny tohoto měsíce (uživatelé) -BoxLastManualEntries=Poslední manuální zápisy v účetnictví -BoxTitleLastManualEntries=%s nejnovější manuální zápisy +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=V účetnictví nejsou zaznamenány žádné manuální záznamy BoxSuspenseAccount=Počítání účetních operací s dočasným účtem BoxTitleSuspenseAccount=Počet nepřidělených linek diff --git a/htdocs/langs/cs_CZ/mails.lang b/htdocs/langs/cs_CZ/mails.lang index 34643b05d34..ffa9e363aa8 100644 --- a/htdocs/langs/cs_CZ/mails.lang +++ b/htdocs/langs/cs_CZ/mails.lang @@ -175,3 +175,5 @@ Answered=Odpovězeno IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang index b499c548007..e5c81c5c737 100644 --- a/htdocs/langs/cs_CZ/main.lang +++ b/htdocs/langs/cs_CZ/main.lang @@ -224,6 +224,7 @@ Value=Hodnota PersonalValue=Osobní hodnota NewObject=Nové %s NewValue=Nová hodnota +OldValue=Old value %s CurrentValue=Současná hodnota Code=Kód Type=Typ @@ -655,6 +656,7 @@ SupplierPreview=Náhled dodavatele ShowCustomerPreview=Zobrazit náhled zákazníka ShowSupplierPreview=Zobrazit náhled dodavatele RefCustomer=Ref. zákazník +InternalRef=Internal ref. Currency=Měna InfoAdmin=Informace pro správce Undo=Zrušit @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Pozdržen +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/cs_CZ/mrp.lang b/htdocs/langs/cs_CZ/mrp.lang index a3e64ead7a8..e86ca5e8c48 100644 --- a/htdocs/langs/cs_CZ/mrp.lang +++ b/htdocs/langs/cs_CZ/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Celkové náklady BOMTotalCost=Náklady na výrobu tohoto kusovníku na základě nákladů na každé spotřebované množství a produkt (použijte cenu Cena, pokud je definována, jinak průměrná vážená cena, pokud je definována, jinak nejlepší kupní cena) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/cs_CZ/stocks.lang b/htdocs/langs/cs_CZ/stocks.lang index be798ca0ade..ef41559e9f1 100644 --- a/htdocs/langs/cs_CZ/stocks.lang +++ b/htdocs/langs/cs_CZ/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Hodnota skladů UserWarehouseAutoCreate=Vytvoření uživatelského skladu automaticky při vytváření uživatele AllowAddLimitStockByWarehouse=Spravujte také hodnotu pro minimální a požadovanou zásobu na párování (produktový sklad) kromě hodnoty pro minimální a požadovanou zásobu na produkt RuleForWarehouse=Pravidlo pro sklady +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Nastavit sklad na prodejní objednávky UserDefaultWarehouse=Nastavit sklad na Uživatelé MainDefaultWarehouse=Výchozí sklad diff --git a/htdocs/langs/cs_CZ/withdrawals.lang b/htdocs/langs/cs_CZ/withdrawals.lang index cb303de282d..3e1ffcb7b3c 100644 --- a/htdocs/langs/cs_CZ/withdrawals.lang +++ b/htdocs/langs/cs_CZ/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Dobrý den,

    příkaz k inkasu faktury %s týkající ModeWarning=Volba pro reálný režim nebyl nastaven, můžeme zastavit tuto simulaci ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/cs_CZ/workflow.lang b/htdocs/langs/cs_CZ/workflow.lang index 3e06aed94aa..748bd0e27d6 100644 --- a/htdocs/langs/cs_CZ/workflow.lang +++ b/htdocs/langs/cs_CZ/workflow.lang @@ -16,8 +16,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klasifikujte propojenou prodejní o # Autoclassify purchase order descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Označte návrh dodavatele propojeného zdroje jako fakturovaný při validaci dodavatele (a pokud je částka faktury shodná s celkovou částkou propojeného návrhu) descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Zařadit propojenou objednávku zdroje jako fakturovanou fakturaci dodavatele (a pokud je částka faktury shodná s celkovou částkou propojené objednávky) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_BILL_ON_RECEPTION=Po ověření objednávky propojeného dodavatele klasifikujte recepce na „účtované“ # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Když je lístek uzavřen, ukončete všechny zásahy spojené s lístkem AutomaticCreation=Automatická tvorba AutomaticClassification=Automatická klasifikace +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index addd2c719d7..4f65c3b5d02 100644 --- a/htdocs/langs/da_DK/accountancy.lang +++ b/htdocs/langs/da_DK/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Denne ydelse ThisProduct=Dette produkt DefaultForService=forvalg ydelse DefaultForProduct=Forvalg produkt +ProductForThisThirdparty=Produkt til denne tredjepart +ServiceForThisThirdparty=Service for denne tredjepart CantSuggest=Kan ikke foreslå AccountancySetupDoneFromAccountancyMenu=Hovedparten af opsætningen for regnskabet sker fra menuen %s ConfigAccountingExpert=Konfiguration af modulregnskabet (dobbelt indtastning) diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index b96da5b7673..57b913ae14a 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direkte udskrivning (uden at åbne dokumenterne) ved hjælp af I Module55000Name=Afstemning, Undersøgelse eller Afstemning Module55000Desc=Opret online afstemninger, undersøgelser eller stemmer (som Doodle, Studs, RDVz osv. ..) Module59000Name=Margin -Module59000Desc=Modul til at styre avancer +Module59000Desc=Modul til at følge margener Module60000Name=Kommissioner Module60000Desc=Modul til at håndtere Kommissioner Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=Du bruger driver %s, som er den bedste driver, der for øjeblik YouDoNotUseBestDriver=Du bruger driveren %s, men driveren %s anbefales. NbOfObjectIsLowerThanNoPb=Du har kun %s %s i databasen. Dette kræver ingen særlig optimering. SearchOptim=Søg optimering -YouHaveXObjectUseSearchOptim=Du har %s %s i databasen. Du skal tilføje den konstante %s til 1 i Home-Setup-Other. Begræns søgningen til begyndelsen af strenge, hvilket gør det muligt for databasen at bruge indekser, og du skal få et øjeblikkeligt svar. +YouHaveXObjectUseSearchOptim=Du har %s %s i databasen. Du kan tilføje konstanten %s til 1 i Hjem-Setup-Andre. Begræns søgningen til begyndelsen af strenge, som gør det muligt for databasen at bruge indekser, og du skal få et øjeblikkeligt svar. YouHaveXObjectAndSearchOptimOn=Du har %s %s i databasen, og konstant %s er indstillet til 1 i Home-Setup-Other. BrowserIsOK=Du bruger browseren %s. Denne browser er ok for sikkerhed og ydeevne. BrowserIsKO=Du bruger browseren %s. Denne browser er kendt for at være et dårligt valg for sikkerhed, ydeevne og pålidelighed. Vi anbefaler at bruge Firefox, Chrome, Opera eller Safari. diff --git a/htdocs/langs/da_DK/banks.lang b/htdocs/langs/da_DK/banks.lang index ecd8b55b8e2..c1fb2a83106 100644 --- a/htdocs/langs/da_DK/banks.lang +++ b/htdocs/langs/da_DK/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Hvis denne funktion er aktiveret, kan du vælge specifi BankColorizeMovementName1=Baggrundsfarve til debetbevægelse BankColorizeMovementName2=Baggrundsfarve til kreditbevægelse IfYouDontReconcileDisableProperty=Hvis du ikke foretager bankafstemninger på nogle bankkonti, skal du deaktivere ejerskab "%s" på dem for at fjerne denne advarsel. +NoBankAccountDefined=Ingen bankkonto defineret diff --git a/htdocs/langs/da_DK/boxes.lang b/htdocs/langs/da_DK/boxes.lang index 9e51ea3a7b0..dfa01d60748 100644 --- a/htdocs/langs/da_DK/boxes.lang +++ b/htdocs/langs/da_DK/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Box blev tilføjet til dit instrumentbræt BoxTitleUserBirthdaysOfMonth=Fødselsdage i denne måned (brugere) -BoxLastManualEntries=Sidste manuelle poster i regnskab -BoxTitleLastManualEntries=%s seneste manuelle indtastninger +BoxLastManualEntries=Seneste post i regnskab indtastet manuelt eller uden kildedokument +BoxTitleLastManualEntries=%s seneste post indtastet manuelt eller uden kildedokument NoRecordedManualEntries=Der er ikke registreret nogen manuelle poster i regnskab BoxSuspenseAccount=Tæl regnskab drift med midlertidig konto BoxTitleSuspenseAccount=Antal ikke-tildelte linjer diff --git a/htdocs/langs/da_DK/mails.lang b/htdocs/langs/da_DK/mails.lang index 4f1a2f02d3d..e0275f61e0b 100644 --- a/htdocs/langs/da_DK/mails.lang +++ b/htdocs/langs/da_DK/mails.lang @@ -175,3 +175,5 @@ Answered=Besvaret IsNotAnAnswer=Er ikke svar (indledende e-mail) IsAnAnswer=Er et svar på en indledende e-mail RecordCreatedByEmailCollector=Post oprettet af Email Collector %s fra e-mail %s +DefaultBlacklistMailingStatus=Standard kontaktstatus for afvisning af masse-e-mail +DefaultStatusEmptyMandatory=Tom men obligatorisk diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang index dddf212c95d..340e9f756c2 100644 --- a/htdocs/langs/da_DK/main.lang +++ b/htdocs/langs/da_DK/main.lang @@ -224,6 +224,7 @@ Value=Værdi PersonalValue=Personlige værdi NewObject=Ny %s NewValue=Ny værdi +OldValue=Gammel værdi %s CurrentValue=Nuværende værdi Code=Kode Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Forhandler forhåndsvisning ShowCustomerPreview=Vis forhåndsvisning til kunde ShowSupplierPreview=Vis sælger forhåndsvisning RefCustomer=Ref. Kunde +InternalRef=Intern ref. Currency=Valuta InfoAdmin=Oplysninger til administratorer Undo=Fortryd @@ -1113,6 +1115,7 @@ OutOfDate=Umoderne EventReminder=Påmindelse om begivenhed UpdateForAllLines=Opdatering til alle linjer OnHold=I venteposition +Civility=Høflighed AffectTag=Påvirke tags ConfirmAffectTag=Bulk Tags påvirker ConfirmAffectTagQuestion=Er du sikker på, at du vil påvirke tags til den %s valgte post (er)? diff --git a/htdocs/langs/da_DK/mrp.lang b/htdocs/langs/da_DK/mrp.lang index 063976415c0..22f0fc4aa08 100644 --- a/htdocs/langs/da_DK/mrp.lang +++ b/htdocs/langs/da_DK/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Udgifter i alt BOMTotalCost=Omkostningerne til at fremstille denne BOM baseret på prisen for hver mængde og produkt, der skal forbruges (brug Prisen, hvis defineret, ellers Gennemsnit Vægtet pris, hvis defineret, ellers den bedste købspris) GoOnTabProductionToProduceFirst=Du skal først have startet produktionen for at lukke en produktionsordre (se fanen '%s'). Men du kan annullere det. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Et sæt kan ikke bruges i en stykliste eller en MO +Workstation=Arbejdsstation +Workstations=Arbejdsstationer +WorkstationsDescription=Arbejdsstationsadministration +WorkstationSetup = Opsætning af arbejdsstationer +WorkstationSetupPage = Opsætningsside for arbejdsstationer +WorkstationAbout = Om arbejdsstation +WorkstationAboutPage = Arbejdsstationer om side +WorkstationList=Arbejdsstationsliste +WorkstationCreate=Tilføj ny arbejdsstation +ConfirmEnableWorkstation=Er du sikker på, at du vil aktivere arbejdsstation %s ? +EnableAWorkstation=Aktivér en arbejdsstation +ConfirmDisableWorkstation=Er du sikker på, at du vil deaktivere arbejdsstationen %s ? +DisableAWorkstation=Deaktiver en arbejdsstation +DeleteWorkstation=Fjerne +NbOperatorsRequired=Antal krævede operatører +THMOperatorEstimated=Anslået operatør THM +THMMachineEstimated=Anslået maskine THM +WorkstationType=Arbejdsstationstype +Human=Person +Machine=Maskine +HumanMachine=Person / maskine +WorkstationArea=Arbejdsstationsområde +Machines=Maskiner +THMEstimatedHelp=Denne sats gør det muligt at definere en overslagspris for varen diff --git a/htdocs/langs/da_DK/stocks.lang b/htdocs/langs/da_DK/stocks.lang index c44c10a07e2..e4de3145acb 100644 --- a/htdocs/langs/da_DK/stocks.lang +++ b/htdocs/langs/da_DK/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Lager værdi UserWarehouseAutoCreate=Opret et brugerlager automatisk, når du opretter en bruger AllowAddLimitStockByWarehouse=Administrer også værdi for minimum og ønsket lager pr. Parring (produktlager) ud over værdien for minimum og ønsket lager pr. Produkt RuleForWarehouse=Regel for lagre +WarehouseAskWarehouseDuringPropal=Sæt et lager på salgsproportal WarehouseAskWarehouseDuringOrder=Indstil et lager med salgsordrer UserDefaultWarehouse=Indstil et lager til brugere MainDefaultWarehouse=Standardlager diff --git a/htdocs/langs/da_DK/withdrawals.lang b/htdocs/langs/da_DK/withdrawals.lang index 134ecf86e91..7ddd6401d6f 100644 --- a/htdocs/langs/da_DK/withdrawals.lang +++ b/htdocs/langs/da_DK/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hej,

    Betalingsordre for faktura %s relateret til fir ModeWarning=Mulighed for real mode ikke var indstillet, vi stopper efter denne simulation ErrorCompanyHasDuplicateDefaultBAN=Virksomhed med id %s har mere end en standard bankkonto. Ingen måde at vide, hvilken man skal bruge. ErrorICSmissing=Mangler ICS på bankkonto %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Det samlede beløb for direkte debiteringsordre adskiller sig fra summen af linjer diff --git a/htdocs/langs/da_DK/workflow.lang b/htdocs/langs/da_DK/workflow.lang index a9659eb77ee..c129a7244fb 100644 --- a/htdocs/langs/da_DK/workflow.lang +++ b/htdocs/langs/da_DK/workflow.lang @@ -16,8 +16,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klassificer den tilknyttede kildes # Autoclassify purchase order descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Klassificer tilsluttet kildeleverandørforslag som faktureret, når leverandørfakturaen er bekræftet (og hvis fakturaens størrelse er det samme som det samlede beløb for det linkede forslag) descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klassificer købt købsordre med kilden som faktureret, når leverandørfakturaen er bekræftet (og hvis fakturaens størrelse er den samme som det samlede beløb for den tilknyttede ordre) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_BILL_ON_RECEPTION=Klassificer modtagelser til "faktureret", når en linket leverandørordre valideres # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Luk alle indgreb, der er knyttet til billetten, når en billet er lukket AutomaticCreation=Automatisk oprettelse AutomaticClassification=Automatisk klassificering +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassificer tilknyttet kildeforsendelse som lukket, når kundefaktura er valideret diff --git a/htdocs/langs/de_AT/accountancy.lang b/htdocs/langs/de_AT/accountancy.lang index f2d0909a71e..2caaa72c1fd 100644 --- a/htdocs/langs/de_AT/accountancy.lang +++ b/htdocs/langs/de_AT/accountancy.lang @@ -1,2 +1,3 @@ # Dolibarr language file - Source file is en_US - accountancy MenuBankAccounts=Kontonummern +ACCOUNTING_LIMIT_LIST_VENTILATION=Maximum number of lines on list and bind page (recommended: 50) diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang index 854e69b3455..2cae2180393 100644 --- a/htdocs/langs/de_AT/admin.lang +++ b/htdocs/langs/de_AT/admin.lang @@ -72,6 +72,7 @@ Module70Name=Eingriffe Module70Desc=Eingriffsverwaltung Module80Name=Sendungen Module310Desc=Mitgliederverwaltun +Module59000Desc=Module to follow margins Permission31=Produkte/Services einsehen Permission32=Produkte/Services erstellen/bearbeiten Permission34=Produkte/Services löschen @@ -128,7 +129,6 @@ SummaryConst=Liste aller Systemeinstellungen Skin=Oberfläche DefaultSkin=Standardoberfläche CompanyCurrency=Firmenwährung -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. WatermarkOnDraftInvoices=Wasserzeichen auf Rechnungsentwürfen (alle, falls leer) WatermarkOnDraftProposal=Wasserzeichen für Angebotsentwürfe (alle, falls leer) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Fragen Sie nach dem Bestimmungsort des Bankkontos der Bestellung diff --git a/htdocs/langs/de_AT/boxes.lang b/htdocs/langs/de_AT/boxes.lang index cc95f089ec2..33329e3f2b2 100644 --- a/htdocs/langs/de_AT/boxes.lang +++ b/htdocs/langs/de_AT/boxes.lang @@ -1,5 +1,3 @@ # Dolibarr language file - Source file is en_US - boxes BoxCurrentAccounts=Aktueller Saldo BoxCustomersOrdersPerMonth=Bestellungen pro Monat -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/de_AT/mrp.lang b/htdocs/langs/de_AT/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/de_AT/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/de_AT/withdrawals.lang b/htdocs/langs/de_AT/withdrawals.lang index 1e452c7a2bd..3ae942e5927 100644 --- a/htdocs/langs/de_AT/withdrawals.lang +++ b/htdocs/langs/de_AT/withdrawals.lang @@ -5,3 +5,4 @@ StatusWaiting=Wartestellung StatusMotif2=Abbuchung angefochten StatusMotif5=Fehlerhafte Kontodaten OrderWaiting=Wartestellung +ICS=Creditor Identifier CI for direct debit diff --git a/htdocs/langs/de_CH/accountancy.lang b/htdocs/langs/de_CH/accountancy.lang index 5c5fc2cf9fb..0a0ec0ef160 100644 --- a/htdocs/langs/de_CH/accountancy.lang +++ b/htdocs/langs/de_CH/accountancy.lang @@ -104,6 +104,7 @@ VentilatedinAccount=Erfolgreich mit dem Buchhaltungskonto verknüpft! NotVentilatedinAccount=Nicht mit einem Buchhaltungskonto verknüpft XLineSuccessfullyBinded=%s Produkte / Leistungen erfolgreich mit einem Buchhaltungskonto verknüpft. XLineFailedToBeBinded=%s Produkte / Leistungen konnten nicht mit einem Buchhaltungskonto verknüpft werden. +ACCOUNTING_LIMIT_LIST_VENTILATION=Maximum number of lines on list and bind page (recommended: 50) ACCOUNTING_LIST_SORT_VENTILATION_TODO=Sortiere nach den neuesten zu verknüpfenden Positionen ACCOUNTING_LIST_SORT_VENTILATION_DONE=Sortiere nach den neuesten zu verknüpften Positionen ACCOUNTING_LENGTH_DESCRIPTION=Produkt- und Dienstleistungsbeschreibungen abkürzen (Wir empfehlen nach 50 Zeichen) diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang index 96f898303e7..b81530cabec 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -320,6 +320,7 @@ Module50400Name=Doppelte Buchhaltung Module54000Desc=Direktdruck (ohne die Dokumente zu öffnen) mittels CUPS IPP.\nDer Server muss dazu CUPS am Laufen haben und Zugriff auf einen Drucker haben. Module55000Name=Befragung, Umfrage oder Abstimmung Module55000Desc=Modul zur Erstellung von Online-Umfragen, Umfragen oder Abstimmungen (wie Doodle, Studs, Rdvz,....) +Module59000Desc=Module to follow margins Module62000Name=Lieferbedingungen Module62000Desc=Hinzufügen von Funktionen zur Verwaltung von Lieferbedingungen (Incoterms) Module63000Desc=Hier kannst du deine Ressourcen (Drucker, Räume, Fahrzeuge) Kalenderereignissen zuweisen. @@ -418,7 +419,6 @@ SendmailOptionNotComplete=Achtung, auf einigen Linux-Systemen, E-Mails von Ihrem TranslationOverwriteDesc=Sie können Zeichenketten durch Füllen der folgenden Tabelle überschreiben. Wählen Sie Ihre Sprache aus dem "%s" Drop-Down und tragen Sie den Schlüssel in "%s" und Ihre neue Übersetzung in "%s" ein. NewTranslationStringToShow=Neue Übersetzungen anzeigen OnlyFollowingModulesAreOpenedToExternalUsers=Hinweis: Nur die folgenden Module sind für externe Nutzer verfügbar (unabhängig von der Berechtigung dieser Benutzer), und das auch nur, wenn die Rechte zugeteilt wurden: -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. GetBarCode=Erhalten Sie einen Barcode UserMailRequired=E-Mail für neue Benutzer als Pflichtfeld setzen HRMSetup=HRM Modul Einstellungen diff --git a/htdocs/langs/de_CH/boxes.lang b/htdocs/langs/de_CH/boxes.lang index 38375ab0778..e4f64b3302a 100644 --- a/htdocs/langs/de_CH/boxes.lang +++ b/htdocs/langs/de_CH/boxes.lang @@ -57,7 +57,6 @@ LastXMonthRolling=%s letzte Monate gleitend ChooseBoxToAdd=Box zum Dashboard hinzufügen BoxAdded=Box zum Dashboard hinzugefügt BoxTitleUserBirthdaysOfMonth=Benutzer - Geburtstage dieses Monates -BoxLastManualEntries=Die neuesten von Hand gebuchten Einträge NoRecordedManualEntries=Es gibt keine manuell hinzugefügte Einträge in der Buchhaltung BoxSuspenseAccount=Anzahl Buchungen in Wartestellung BoxTitleSuspenseAccount=Nicht kontierte Positionen diff --git a/htdocs/langs/de_CH/mrp.lang b/htdocs/langs/de_CH/mrp.lang index 81048e8f8b6..0f4ccf47087 100644 --- a/htdocs/langs/de_CH/mrp.lang +++ b/htdocs/langs/de_CH/mrp.lang @@ -1,2 +1,7 @@ # Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material BOMsSetup=Einstellungen Modul Materiallisten (BOM) +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/de_CH/withdrawals.lang b/htdocs/langs/de_CH/withdrawals.lang index 4a0aee41836..72755cae42a 100644 --- a/htdocs/langs/de_CH/withdrawals.lang +++ b/htdocs/langs/de_CH/withdrawals.lang @@ -6,3 +6,4 @@ StatusPaid=Verarbeitet StatusMotif4=Kundenbestellungen OrderWaiting=Wartend NumeroNationalEmetter=Nat. Überweisernummer +ICS=Creditor Identifier CI for direct debit diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index 2dc25c0e83b..8e2382d07d4 100644 --- a/htdocs/langs/de_DE/accountancy.lang +++ b/htdocs/langs/de_DE/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Diese Leistung ThisProduct=Dieses Produkt DefaultForService=Standard für Leistung DefaultForProduct=Standard für Produkt +ProductForThisThirdparty=Produkt für diesen Partner +ServiceForThisThirdparty=Leistungen für diesen Partner CantSuggest=Kann keines vorschlagen AccountancySetupDoneFromAccountancyMenu=Die wichtigste Teil der Konfiguration der Buchhaltung aus dem Menü %s wurde erledigt ConfigAccountingExpert=Konfiguration des Moduls Buchhaltung (doppelt) diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index a7da77b1c94..21f0a05f884 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -1308,7 +1308,7 @@ YouUseBestDriver=Sie verwenden den Treiber %s, dies ist derzeit der best verfüg YouDoNotUseBestDriver=Sie verwenden Treiber %s, aber es wird der Treiber %s empfohlen. NbOfObjectIsLowerThanNoPb=Es gibt nur %s %s in der Datenbank. Das erfordert keine bestimmte Optimierung. SearchOptim=Such Optimierung -YouHaveXObjectUseSearchOptim=Sie haben %s %s in der Datenbank. Sie sollten die Konstante %s zu 1 in Home-Setup-Other hinzufügen. Begrenzen Sie die Suche auf den Anfang von Zeichenfolgen. Dadurch kann die Datenbank Indizes verwenden, und Sie sollten sofort eine Antwort erhalten. +YouHaveXObjectUseSearchOptim=Sie haben %s %s in der Datenbank. Sie können die Konstante %s in Home-Setup-Other zu 1 hinzufügen. Beschränken Sie die Suche auf den Anfang von Zeichenfolgen, damit die Datenbank Indizes verwenden kann, und Sie sollten sofort eine Antwort erhalten. YouHaveXObjectAndSearchOptimOn=Sie haben %s %s in der Datenbank und die Konstante %s ist in Home-Setup-Other auf 1 gesetzt. BrowserIsOK=Sie verwenden %s als Webbrowser. Dieser ist hinsichtlich Sicherheit und Leistung ausreichend. BrowserIsKO=Sie verwenden %s als Webbrowser. Dieser ist bekanntlich eine schlechte Wahl wenn es um Sicherheit, Leistung und Zuverlässigkeit geht. Wir empfehlen Firefox, Chrome, Opera oder Safari zu benutzen. diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang index 8a9495d3587..1a24bc0bd5e 100644 --- a/htdocs/langs/de_DE/banks.lang +++ b/htdocs/langs/de_DE/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Wenn diese Funktion aktiviert ist, können Sie eine bes BankColorizeMovementName1=Hintergrundfarbe für Debit-Bewegung BankColorizeMovementName2=Hintergrundfarbe für Kredit-Bewegung IfYouDontReconcileDisableProperty=Wenn Sie auf einigen Bankkonten keine Bankkontenabgleiche vornehmen, deaktivieren Sie die Eigenschaft "%s", um diese Warnung zu entfernen. +NoBankAccountDefined=Kein Bankkonto definiert diff --git a/htdocs/langs/de_DE/boxes.lang b/htdocs/langs/de_DE/boxes.lang index 32a071620bd..0ebb4d77679 100644 --- a/htdocs/langs/de_DE/boxes.lang +++ b/htdocs/langs/de_DE/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Die letzten %s Monate gleitend ChooseBoxToAdd=Widget zu Ihrer Startseite hinzufügen BoxAdded=Widget wurde zu Ihrer Startseite hinzugefügt BoxTitleUserBirthdaysOfMonth=Geburtstage in diesem Monat (Benutzer) -BoxLastManualEntries=Letzte manuelle Einträge in der Buchhaltung -BoxTitleLastManualEntries=%s neueste manuelle Einträge +BoxLastManualEntries=letzte Einträge in der Buchhaltung, manuell oder ohne Quelldokument eingegeben +BoxTitleLastManualEntries=%s letzter Datensatz, der manuell oder ohne Quelldokument eingegeben wurde NoRecordedManualEntries=In der Buchhaltung sind keine manuellen Einträge erfasst BoxSuspenseAccount=Zähle die Buchhaltungsoperation mit dem Zwischenonto BoxTitleSuspenseAccount=Anzahl nicht zugewiesener Zeilen diff --git a/htdocs/langs/de_DE/mails.lang b/htdocs/langs/de_DE/mails.lang index 564f776ffcf..3c7a87f490e 100644 --- a/htdocs/langs/de_DE/mails.lang +++ b/htdocs/langs/de_DE/mails.lang @@ -175,3 +175,5 @@ Answered=Beantwortet IsNotAnAnswer=Ist keine Antwort (Initial-E-Mail) IsAnAnswer=Ist eine Antwort auf eine Initial-E-Mail RecordCreatedByEmailCollector=Datensatz, der vom E-Mail-Sammler %s aus der E-Mail %s erstellt wurde +DefaultBlacklistMailingStatus=Standardkontaktstatus für das Ablehnen von Massen-E-Mails +DefaultStatusEmptyMandatory=Leer aber erforderlich diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index c8e6d713b18..f75c58b846a 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -224,6 +224,7 @@ Value=Wert PersonalValue=Persönlicher Wert NewObject=Neu %s NewValue=Neuer Wert +OldValue=Alter Wert %s CurrentValue=Aktueller Wert Code=Name Type=Typ @@ -655,6 +656,7 @@ SupplierPreview=Lieferantenvorschau ShowCustomerPreview=Zeige Kundenvorschau ShowSupplierPreview=Zeige Lieferantenvorschau RefCustomer=Ihr Zeichen +InternalRef=Interne Referenz Currency=Währung InfoAdmin=Hinweise für Administratoren Undo=Rückgängig @@ -1113,6 +1115,7 @@ OutOfDate=Veraltet EventReminder=Ereignis-Erinnerung UpdateForAllLines=Aktualisierung für alle Zeilen OnHold=angehalten +Civility=Anrede/Titel AffectTag=Schlagwort beeinflussen ConfirmAffectTag=Massen-Schlagwort-Affekt ConfirmAffectTagQuestion=Sind Sie sicher, dass Sie Tags für die ausgewählten Datensätze von %s beeinflussen möchten? diff --git a/htdocs/langs/de_DE/mrp.lang b/htdocs/langs/de_DE/mrp.lang index 007e014d850..5efda355faf 100644 --- a/htdocs/langs/de_DE/mrp.lang +++ b/htdocs/langs/de_DE/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Gesamtsumme Kosten BOMTotalCost=Die Herstellungskosten dieser Stückliste, basierend auf den Kosten jeder Menge und jeden verbrauchten Produktes (nutzt den Selbstkostenpreis wenn er definiert ist, ansonsten den Durchschnittspreis sofern definiert oder den besten Einkaufspreis) GoOnTabProductionToProduceFirst=Die Produktion muss begonnen sein, um einen Produktionsauftrag zu schließen (siehe Tab '%s'). Alternativ kann er storniert werden. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Ein Satz kann nicht in einer Stückliste oder einem Fertigungsauftrag verwendet werden +Workstation=Arbeitsplatz +Workstations=Arbeitsplätze +WorkstationsDescription=Arbeitsplatzverwaltung +WorkstationSetup = Arbeitsplatz einrichten +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Liste Arbeitsplätze +WorkstationCreate=neuen Arbeitsplatz hinzufügen +ConfirmEnableWorkstation=Möchten Sie den Arbeitsplatz %s aktivieren? +EnableAWorkstation=einen Arbeitsplatz aktivieren +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Arbeitsplatztyp +Human=Mensch +Machine=Maschine +HumanMachine=Mensch & Maschine +WorkstationArea=Workstation area +Machines=Maschinen +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/de_DE/stocks.lang b/htdocs/langs/de_DE/stocks.lang index ced30dd4b86..6a0685862ae 100644 --- a/htdocs/langs/de_DE/stocks.lang +++ b/htdocs/langs/de_DE/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Lagerwert UserWarehouseAutoCreate=Automatisch ein Lager erstellen wenn ein neuer Benutzer erstellt wird AllowAddLimitStockByWarehouse=Verwalten Sie zusätzlich zum Wert für den Mindest- und den gewünschten Bestand pro Paar (Produktlager) auch den Wert für den Mindest- und den gewünschten Bestand pro Produkt RuleForWarehouse=Regel für Lager +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Legen Sie ein Lager für Verkaufsaufträge fest UserDefaultWarehouse=Legen Sie ein Lager für Benutzer fest MainDefaultWarehouse=Standardlager diff --git a/htdocs/langs/de_DE/withdrawals.lang b/htdocs/langs/de_DE/withdrawals.lang index 63c39b0503c..b434b778de4 100644 --- a/htdocs/langs/de_DE/withdrawals.lang +++ b/htdocs/langs/de_DE/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hallo,

    der Lastschrift-Zahlungsauftrag der Rechnung %s ModeWarning=Echtzeit-Modus wurde nicht aktiviert, wir stoppen nach der Simulation. ErrorCompanyHasDuplicateDefaultBAN=Unternehmen mit der ID %s hat mehr als ein Standardbankkonto. Keine Möglichkeit zu wissen, welches man verwenden soll. ErrorICSmissing=Fehlendes ICS auf dem Bankkonto %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang index a8e8fd6fe5e..255f578fa39 100644 --- a/htdocs/langs/de_DE/workflow.lang +++ b/htdocs/langs/de_DE/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Klassifizieren Sie Empfänge als "in Rechnung ges descWORKFLOW_TICKET_CLOSE_INTERVENTION=Schließen Sie alle mit dem Ticket verknüpften Interaktionen, wenn ein Ticket geschlossen wird AutomaticCreation=automatische Erstellung AutomaticClassification=Automatische Klassifikation +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/el_CY/admin.lang b/htdocs/langs/el_CY/admin.lang index aa4a69b1953..74ee870f906 100644 --- a/htdocs/langs/el_CY/admin.lang +++ b/htdocs/langs/el_CY/admin.lang @@ -1,3 +1,2 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/el_CY/boxes.lang b/htdocs/langs/el_CY/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/el_CY/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/el_CY/mrp.lang b/htdocs/langs/el_CY/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/el_CY/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index c4bf9b28db7..a3cd1adf61e 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Αυτή η υπηρεσία ThisProduct=Αυτό το προϊόν DefaultForService=Προεπιλογή για υπηρεσία DefaultForProduct=Προεπιλογή για το προϊόν +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Δεν μπορώ να προτείνω AccountancySetupDoneFromAccountancyMenu=Η μεγαλύτερη ρύθμιση της λογιστικής γίνεται από το μενού %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index 9c2a2a6590d..32f57690ea4 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Άμεση εκτύπωση (χωρίς το άνοιγμα τω Module55000Name=Δημοσκόπηση, έρευνα ή ψηφοφορία Module55000Desc=Δημιουργήστε online δημοσκοπήσεις, έρευνες ή ψηφοφορίες (όπως Doodle, Studs, RDVz κ.λπ. ...) Module59000Name=Περιθώρια -Module59000Desc=Πρόσθετο για την διαχείριση των περιθωρίων +Module59000Desc=Module to follow margins Module60000Name=Προμήθειες Module60000Desc=Ένθεμα για τη διαχείριση των προμηθειών Module62000Name=Διεθνείς Εμπορικοί Όροι @@ -1308,7 +1308,7 @@ YouUseBestDriver=Χρησιμοποιείτε τον οδηγό %s ο οποίο YouDoNotUseBestDriver=Χρησιμοποιείτε τον οδηγό %s αλλά συνιστάται ο οδηγός %s. NbOfObjectIsLowerThanNoPb=Έχετε μόνο %s %s στη βάση δεδομένων. Αυτό δεν απαιτεί ιδιαίτερη βελτιστοποίηση. SearchOptim=Βελτιστοποίηση αναζήτησης -YouHaveXObjectUseSearchOptim=Έχετε %s %s στη βάση δεδομένων. Θα πρέπει να προσθέσετε το σταθερό %s σε 1 στο Home-Setup-Other. Περιορίστε την αναζήτηση στην αρχή των συμβολοσειρών, η οποία επιτρέπει στη βάση δεδομένων να χρησιμοποιεί ευρετήρια και θα πρέπει να πάρετε μια άμεση απάντηση. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=Έχετε %s %s στη βάση δεδομένων και σταθερή %s έχει οριστεί σε 1 στο Home-Setup-Other. BrowserIsOK=Χρησιμοποιείτε το πρόγραμμα περιήγησης web %s. Αυτό το πρόγραμμα περιήγησης είναι εντάξει για την ασφάλεια και την απόδοση. BrowserIsKO=Χρησιμοποιείτε το πρόγραμμα περιήγησης web %s. Αυτό το πρόγραμμα περιήγησης είναι γνωστό ότι αποτελεί κακή επιλογή για ασφάλεια, απόδοση και αξιοπιστία. Σας συνιστούμε να χρησιμοποιήσετε Firefox, Chrome, Opera ή Safari. diff --git a/htdocs/langs/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang index ed88e57f266..5fc0cb30463 100644 --- a/htdocs/langs/el_GR/banks.lang +++ b/htdocs/langs/el_GR/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Εάν αυτή η λειτουργία είναι εν BankColorizeMovementName1=Χρώμα φόντου για την κίνηση χρέωσης BankColorizeMovementName2=Χρώμα φόντου για την πιστωτική κίνηση IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/el_GR/boxes.lang b/htdocs/langs/el_GR/boxes.lang index 8d5d9e05122..40e21765069 100644 --- a/htdocs/langs/el_GR/boxes.lang +++ b/htdocs/langs/el_GR/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Ο τελευταίος κύλινδρος %s μήνα ChooseBoxToAdd=Προσθέστε widget στον πίνακα ελέγχου BoxAdded=Το Widget προστέθηκε στον πίνακα ελέγχου σας BoxTitleUserBirthdaysOfMonth=Γενέθλια αυτού του μήνα (χρήστες) -BoxLastManualEntries=Τελευταίες μη αυτόματες καταχωρήσεις στη λογιστική -BoxTitleLastManualEntries=%s τελευταίες μη αυτόματες καταχωρήσεις +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Δεν καταγράφονται μη καταχωρημένα μητρώα στη λογιστική BoxSuspenseAccount=Αρίθμηση λογιστικής λειτουργίας με λογαριασμό αναμονής BoxTitleSuspenseAccount=Αριθμός μη διατεθέντων γραμμών diff --git a/htdocs/langs/el_GR/mails.lang b/htdocs/langs/el_GR/mails.lang index c5636adddf8..42009943751 100644 --- a/htdocs/langs/el_GR/mails.lang +++ b/htdocs/langs/el_GR/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang index 7a1e39e0fb0..e889ec49edd 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/main.lang @@ -224,6 +224,7 @@ Value=Τιμή PersonalValue=Προσωπική Τιμή NewObject=Νέο %s NewValue=Νέα Τιμή +OldValue=Old value %s CurrentValue=Τρέχουσα Τιμή Code=Κωδικός Type=Τύπος @@ -655,6 +656,7 @@ SupplierPreview=Προβολή προμηθευτή ShowCustomerPreview=Εμφάνιση Προεπισκόπησης Πελάτη ShowSupplierPreview=Εμφάνιση προεπισκόπησης προμηθευτή RefCustomer=Κωδ. Πελάτη +InternalRef=Internal ref. Currency=Νόμισμα InfoAdmin=Πληροφορία για τους διαχειριστές Undo=Αναίρεση @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Υπενθύμιση συμβάντος UpdateForAllLines=Update for all lines OnHold=Σε Αναμονή +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/el_GR/mrp.lang b/htdocs/langs/el_GR/mrp.lang index 25e91a2a182..898842cfab0 100644 --- a/htdocs/langs/el_GR/mrp.lang +++ b/htdocs/langs/el_GR/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Συνολικό κόστος BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/el_GR/stocks.lang b/htdocs/langs/el_GR/stocks.lang index 22b2e9fdf59..454db71ae7c 100644 --- a/htdocs/langs/el_GR/stocks.lang +++ b/htdocs/langs/el_GR/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Αποθήκες αξία UserWarehouseAutoCreate=Δημιουργήστε αυτόματα μια αποθήκη χρήστη κατά τη δημιουργία ενός χρήστη AllowAddLimitStockByWarehouse=Διαχειριστείτε επίσης την τιμή για το ελάχιστο και το επιθυμητό απόθεμα ανά ζεύγος (αποθήκη προϊόντων) επιπλέον της τιμής για το ελάχιστο και το επιθυμητό απόθεμα ανά προϊόν RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/el_GR/withdrawals.lang b/htdocs/langs/el_GR/withdrawals.lang index 7a986327a4b..69377126e89 100644 --- a/htdocs/langs/el_GR/withdrawals.lang +++ b/htdocs/langs/el_GR/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Γεια σας,

    η εντολή πληρωμής ά ModeWarning=Επιλογή για την πραγματική κατάσταση, δεν είχε καθοριστεί, σταματάμε μετά από αυτή την προσομοίωση ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/el_GR/workflow.lang b/htdocs/langs/el_GR/workflow.lang index 0c31b6ae167..bfad87b4b66 100644 --- a/htdocs/langs/el_GR/workflow.lang +++ b/htdocs/langs/el_GR/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Αυτόματη δημιουργία AutomaticClassification=Αυτόματη ταξινόμηση +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/en_AU/admin.lang b/htdocs/langs/en_AU/admin.lang index 38d491e84d0..fd46f1407d3 100644 --- a/htdocs/langs/en_AU/admin.lang +++ b/htdocs/langs/en_AU/admin.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - admin OldVATRates=Old GST rate NewVATRates=New GST rate +Module59000Desc=Module to follow margins DictionaryVAT=GST Rates or Sales Tax Rates -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OptionVatMode=GST due LinkColor=Colour of links diff --git a/htdocs/langs/en_AU/boxes.lang b/htdocs/langs/en_AU/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/en_AU/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/en_AU/mrp.lang b/htdocs/langs/en_AU/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/en_AU/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/en_CA/admin.lang b/htdocs/langs/en_CA/admin.lang index 0e5f8409883..a5226efb4db 100644 --- a/htdocs/langs/en_CA/admin.lang +++ b/htdocs/langs/en_CA/admin.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - admin +Module59000Desc=Module to follow margins LocalTax1Management=PST Management CompanyZip=Postal code -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. LDAPFieldZip=Postal code ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) FormatZip=Postal code diff --git a/htdocs/langs/en_CA/boxes.lang b/htdocs/langs/en_CA/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/en_CA/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/en_CA/mrp.lang b/htdocs/langs/en_CA/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/en_CA/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index 8ffc66c3fdf..6d8b2831bb3 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -42,9 +42,9 @@ ListOfDirectories=List of OpenDocument template directories ListOfDirectoriesForModelGenODT=List of directories containing template files in OpenDocument format.

    Put here full path of directories.
    Add a carriage return between each directory.
    To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

    Files in those directories must end with .odt or .ods. FollowingSubstitutionKeysCanBeUsed=
    To learn how to create your .odt document templates, before storing them in those directories, read wiki documentation: Module50200Name=PayPal +Module59000Desc=Module to follow margins DictionaryAccountancyJournal=Finance journals CompanyZip=Postcode -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. LDAPFieldZip=Postcode ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) GenbarcodeLocation=Barcode generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
    For example: /usr/local/bin/genbarcode diff --git a/htdocs/langs/en_GB/boxes.lang b/htdocs/langs/en_GB/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/en_GB/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/en_GB/mrp.lang b/htdocs/langs/en_GB/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/en_GB/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/en_IN/admin.lang b/htdocs/langs/en_IN/admin.lang index 88453198858..cf746fd99b8 100644 --- a/htdocs/langs/en_IN/admin.lang +++ b/htdocs/langs/en_IN/admin.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - admin Module20Name=Quotations Module20Desc=Management of quotations +Module59000Desc=Module to follow margins Permission21=Read quotations Permission22=Create/modify quotations Permission24=Validate quotations @@ -8,7 +9,6 @@ Permission25=Send quotations Permission26=Close quotations Permission27=Delete quotations Permission28=Export quotations -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. PropalSetup=Quotation module setup ProposalsNumberingModules=Quotation numbering models ProposalsPDFModules=Quotation documents models diff --git a/htdocs/langs/en_IN/mrp.lang b/htdocs/langs/en_IN/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/en_IN/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/en_SG/admin.lang b/htdocs/langs/en_SG/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/en_SG/admin.lang +++ b/htdocs/langs/en_SG/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/en_SG/boxes.lang b/htdocs/langs/en_SG/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/en_SG/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/en_SG/mrp.lang b/htdocs/langs/en_SG/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/en_SG/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_AR/admin.lang b/htdocs/langs/es_AR/admin.lang index 65b179ce94e..38c1f9272dd 100644 --- a/htdocs/langs/es_AR/admin.lang +++ b/htdocs/langs/es_AR/admin.lang @@ -260,6 +260,7 @@ Module80Name=Envíos Module80Desc=Gestión de envíos y remitos Module510Name=Sueldos Module4000Name=ARH +Module59000Desc=Module to follow margins Module62000Name=Incotérminos Permission23001=Leer tarea programada Permission23002=Crear/actualizar tarea programada @@ -403,7 +404,6 @@ ConditionIsCurrently=La condición es actualmente %s YouUseBestDriver=Utiliza el controlador %s, que es el mejor controlador disponible actualmente. YouDoNotUseBestDriver=Utiliza el controlador %s pero se recomienda el controlador %s. SearchOptim=Optimización de búsqueda -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. BrowserIsOK=Está utilizando el navegador web %s. Este navegador está bien para la seguridad y el rendimiento. BrowserIsKO=Está utilizando el navegador web %s. Se sabe que este navegador es una mala elección para la seguridad, el rendimiento y la confiabilidad. Recomendamos utilizar Firefox, Chrome, Opera o Safari. AddRefInList=Mostrar la lista de referencia cliente / vendedor (lista de selección o cuadro combinado) y la mayoría del hipervínculo.
    Los terceros aparecerán con un formato de nombre de "CC12345 - SC45678 - The Big Company corp". en lugar de "The Big Company corp". diff --git a/htdocs/langs/es_AR/boxes.lang b/htdocs/langs/es_AR/boxes.lang index a76803696e3..398b7e343ee 100644 --- a/htdocs/langs/es_AR/boxes.lang +++ b/htdocs/langs/es_AR/boxes.lang @@ -62,7 +62,6 @@ ForCustomersOrders=Órdenes de Clientes LastXMonthRolling=Los últimos %s meses consecutivo s ChooseBoxToAdd=Agregar widget a su dashboard BoxAdded=El widget fue agregado a su tablero -BoxLastManualEntries=Últimas entradas contables NoRecordedManualEntries=No hay registros contables manuales BoxSuspenseAccount=Operación de cuenta contable con cuenta temporal BoxTitleSuspenseAccount=Número de líneas no sin asignar diff --git a/htdocs/langs/es_AR/mrp.lang b/htdocs/langs/es_AR/mrp.lang index 0fcf28a866f..5c5780af355 100644 --- a/htdocs/langs/es_AR/mrp.lang +++ b/htdocs/langs/es_AR/mrp.lang @@ -13,4 +13,7 @@ BOMsSetup=Configuración de módulo de BOM ListOfBOMs=Lista de Listas de materiales - BOM ListOfManufacturingOrders=Lista de Ordenes de Fabricación NewBOM=Nueva Lista de materiales +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? MenuMRP=Ordenes de Fabricación diff --git a/htdocs/langs/es_BO/admin.lang b/htdocs/langs/es_BO/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/es_BO/admin.lang +++ b/htdocs/langs/es_BO/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/es_BO/boxes.lang b/htdocs/langs/es_BO/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_BO/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_BO/mrp.lang b/htdocs/langs/es_BO/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_BO/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_CL/admin.lang b/htdocs/langs/es_CL/admin.lang index 5e0edfef07f..4c3bf933e4f 100644 --- a/htdocs/langs/es_CL/admin.lang +++ b/htdocs/langs/es_CL/admin.lang @@ -455,7 +455,7 @@ Module50400Name=Contabilidad (doble entrada) Module54000Desc=Impresión directa (sin abrir los documentos) mediante la interfaz IPP de Cups (la impresora debe estar visible desde el servidor y CUPS debe estar instalada en el servidor). Module55000Name=Encuesta, encuesta o voto Module55000Desc=Cree encuestas en línea, encuestas o votos (como Doodle, Studs, RDVz, etc.) -Module59000Desc=Módulo para administrar márgenes +Module59000Desc=Module to follow margins Module60000Desc=Módulo para gestionar comisiones Module62000Desc=Añadir características para gestionar Incoterms. Module63000Desc=Gestionar recursos (impresoras, coches, salas, ...) para asignar a eventos. @@ -883,7 +883,6 @@ ConditionIsCurrently=La condición es actualmente %s YouUseBestDriver=Utiliza el controlador %s, que es el mejor controlador disponible en la actualidad. YouDoNotUseBestDriver=Utiliza el controlador %s, pero se recomienda el controlador %s. SearchOptim=Optimización de búsqueda -YouHaveXObjectUseSearchOptim=Tiene %s %s en la base de datos. Debe agregar la constante %s a 1 en Home-Setup-Other. Limite la búsqueda al comienzo de las cadenas, lo que hace posible que la base de datos use índices y debería obtener una respuesta inmediata. YouHaveXObjectAndSearchOptimOn=Tiene %s %s en la base de datos y la constante %s se establece en 1 en Home-Setup-Other. BrowserIsOK=Está utilizando el navegador web %s. Este navegador está bien para la seguridad y el rendimiento. BrowserIsKO=Está utilizando el navegador web %s. Se sabe que este navegador es una mala elección para la seguridad, el rendimiento y la confiabilidad. Recomendamos usar Firefox, Chrome, Opera o Safari. diff --git a/htdocs/langs/es_CO/admin.lang b/htdocs/langs/es_CO/admin.lang index c2a2083e8ce..b8ca38f6387 100644 --- a/htdocs/langs/es_CO/admin.lang +++ b/htdocs/langs/es_CO/admin.lang @@ -368,7 +368,7 @@ Module40000Desc=Utilizar monedas alternativas en precios y documentos. Module50000Name=Caja de pago Module54000Desc=Impresión directa (sin abrir los documentos) mediante la interfaz IPP de Cups (la impresora debe estar visible desde el servidor y CUPS debe estar instalada en el servidor). Module55000Name=Encuesta, encuesta o voto -Module59000Desc=Módulo para gestionar márgenes. +Module59000Desc=Module to follow margins Module60000Desc=Módulo para gestionar comisiones. Module62000Desc=Añadir características para gestionar Incoterms. Permission11=Lea las facturas de los clientes. @@ -700,7 +700,6 @@ SuhosinSessionEncrypt=Almacenamiento de sesión encriptado por Suhosin. ConditionIsCurrently=La condición es actualmente %s YouDoNotUseBestDriver=Utiliza el controlador %s pero se recomienda el controlador %s. SearchOptim=Optimización de búsqueda -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. BrowserIsOK=Está utilizando el navegador web %s. Este navegador está bien para la seguridad y el rendimiento. BrowserIsKO=Está utilizando el navegador web %s. Se sabe que este navegador es una mala elección para la seguridad, el rendimiento y la confiabilidad. Recomendamos el uso de Firefox, Chrome, Opera o Safari. AskForPreferredShippingMethod=Pregunte por el método de envío preferido para terceros. diff --git a/htdocs/langs/es_CO/mrp.lang b/htdocs/langs/es_CO/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_CO/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_DO/admin.lang b/htdocs/langs/es_DO/admin.lang index 21c26ed557f..5284148aebb 100644 --- a/htdocs/langs/es_DO/admin.lang +++ b/htdocs/langs/es_DO/admin.lang @@ -1,12 +1,12 @@ # Dolibarr language file - Source file is en_US - admin OldVATRates=Tasa de ITBIS antigua NewVATRates=Tasa de ITBIS nueva +Module59000Desc=Module to follow margins Permission91=Consultar impuestos e ITBIS Permission92=Crear/modificar impuestos e ITBIS Permission93=Eliminar impuestos e ITBIS DictionaryVAT=Tasa de ITBIS (Impuesto sobre ventas en EEUU) UnitPriceOfProduct=Precio unitario sin ITBIS de un producto -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OptionVatMode=Opción de carga de ITBIS OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. diff --git a/htdocs/langs/es_DO/boxes.lang b/htdocs/langs/es_DO/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_DO/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_DO/mrp.lang b/htdocs/langs/es_DO/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_DO/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_EC/accountancy.lang b/htdocs/langs/es_EC/accountancy.lang index 7d111fb5828..828b60ac54e 100644 --- a/htdocs/langs/es_EC/accountancy.lang +++ b/htdocs/langs/es_EC/accountancy.lang @@ -112,11 +112,14 @@ TransitionalAccount=Cuenta de transferencia bancaria transitoria ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta de cuenta de espera ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar suscripciones ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable por defecto para los productos comprados (se usa si no se define en la hoja de productos) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los productos comprados en EEC (se usa si no se define en la hoja de productos) ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos comprados e importados fuera de la CEE (usado si no está definido en la hoja de productos) ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta contable por defecto para los productos vendidos (utilizada si no se define en la hoja del producto) ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los productos vendidos en la CEE (utilizada si no se define en la hoja de producto) ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos vendidos y exportados fuera de la CEE (usado si no está definido en la hoja de producto) ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta contable por defecto para los servicios comprados (utilizado si no se define en la hoja de servicio) +ACCOUNTING_SERVICE_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los servicios comprados en EEC (utilizada si no está definida en la hoja de servicios) +ACCOUNTING_SERVICE_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los servicios comprados e importados fuera de la CEE (se usa si no se define en la hoja de servicios) ACCOUNTING_SERVICE_SOLD_ACCOUNT=Contabilidad por defecto para los servicios vendidos (utilizado si no se define en la hoja de servicio) ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los servicios vendidos en la CEE (utilizada si no se define en la hoja de servicios) ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los servicios vendidos y exportados fuera de la CEE (usado si no está definido en la hoja de servicios) @@ -210,6 +213,7 @@ Modelcsv_openconcerto=Exportar para OpenConcerto (prueba) Modelcsv_configurable=Exportar CSV Configurable Modelcsv_FEC=Exportar FEC Modelcsv_Sage50_Swiss=Exportación para Sage 50 Suiza +Modelcsv_winfic=Exportar Winfic - eWinfic - WinSis Compta ChartofaccountsId=ID de la cuenta de cuentas InitAccountancy=Contabilidad inicial InitAccountancyDesc=Esta página se puede utilizar para inicializar una cuenta de contabilidad en productos y servicios que no tiene definida una cuenta de contabilidad para ventas y compras. diff --git a/htdocs/langs/es_EC/admin.lang b/htdocs/langs/es_EC/admin.lang index dd773d69a00..61e86a47149 100644 --- a/htdocs/langs/es_EC/admin.lang +++ b/htdocs/langs/es_EC/admin.lang @@ -491,7 +491,7 @@ Module50400Name=Contabilidad (doble entrada) Module54000Desc=Impresión directa (sin abrir los documentos) utilizando la interfaz IPP de Cups (la impresora debe estar visible desde el servidor y CUPS debe estar instalada en el servidor). Module55000Name=Sondeo, encuesta o votación Module55000Desc=Cree encuestas en línea, encuestas o votos (como Doodle, Studs, RDVz, etc.) -Module59000Desc=Módulo para administración los márgenes +Module59000Desc=Module to follow margins Module60000Desc=Módulo para gestionar las comisiones Module62000Desc=Añadir características para gestionar Incoterms. Module63000Desc=Gestionar recursos (impresoras, coches, salas, ...) para asignar a eventos. @@ -941,7 +941,6 @@ ConditionIsCurrently=Condición actual %s YouUseBestDriver=Utiliza el controlador %s, que es el mejor controlador actualmente disponible. YouDoNotUseBestDriver=Utiliza el controlador %s, pero se recomienda el controlador %s. SearchOptim=Optimización de la búsqueda -YouHaveXObjectUseSearchOptim=Tiene %s %s en la base de datos. Debe agregar la constante %s a 1 en Home-Setup-Other. Limite la búsqueda al comienzo de las cadenas, lo que hace posible que la base de datos use índices y debería obtener una respuesta inmediata. YouHaveXObjectAndSearchOptimOn=Tiene %s %s en la base de datos y la constante %s se establece en 1 en Home-Setup-Other. BrowserIsOK=Está utilizando el navegador web %s. Este navegador está bien para la seguridad y el rendimiento. BrowserIsKO=Está utilizando el navegador web %s. Se sabe que este navegador es una mala elección para la seguridad, el rendimiento y la confiabilidad. Recomendamos utilizar Firefox, Chrome, Opera o Safari. diff --git a/htdocs/langs/es_EC/main.lang b/htdocs/langs/es_EC/main.lang index 6fea34ee2ae..8452c16f0ec 100644 --- a/htdocs/langs/es_EC/main.lang +++ b/htdocs/langs/es_EC/main.lang @@ -104,6 +104,7 @@ RemoveLink=Retire enlace AddToDraft=Añadir a redactar Update=Actualizar Close=Cerrado +CloseAs=Establecer el estado en CloseBox=Retire widget desde su panel de control ConfirmSendCardByMail=¿Realmente desea enviar el contenido de esta tarjeta por correo a %s? Delete=Borrar diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index 515e4977c03..cdfb3c7cb51 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Este servicio ThisProduct=Este producto DefaultForService=Predeterminado para el servicio DefaultForProduct=Predeterminado para el producto +ProductForThisThirdparty=Producto para este tercero +ServiceForThisThirdparty=Servicio para este tercero CantSuggest=No se puede sugerir AccountancySetupDoneFromAccountancyMenu=La mayor parte de la configuración de la contabilidad se realiza desde el menú %s ConfigAccountingExpert=Configuración del módulo contable (doble partida) diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index a1b0b9969ea..81056fb58e1 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=La impresión directa (sin abrir los documentos) usa el interfaz Module55000Name=Encuesta o Voto Module55000Desc=Crea encuestas en línea, encuestas o votos (como Doodle, Studs, RDVz, etc.) Module59000Name=Márgenes -Module59000Desc=Módulo para gestionar los márgenes de beneficio +Module59000Desc=Módulo para seguir márgenes Module60000Name=Comisiones Module60000Desc=Módulo para gestionar las comisiones de venta Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=Está usando el driver %s, actualmente es el mejor driver dispo YouDoNotUseBestDriver=Usa el driver %s aunque se recomienda usar el driver %s. NbOfObjectIsLowerThanNoPb=Solo tiene %s %s en la base de datos. Esto no requiere ninguna optimización particular. SearchOptim=Buscar optimización -YouHaveXObjectUseSearchOptim=Tiene %s %s en su base de datos. Debería añadir la constante %s a 1 en Inicio-Configuración-Varios, limitando la búsqueda al principio de la cadena lo que hace posible que la base de datos use el índice y se obtenga una respuesta inmediata. +YouHaveXObjectUseSearchOptim=Tiene %s %s en la base de datos. Puede agregar la constante %s a 1 en Inicio-Configuración-Otros. Limite la búsqueda al comienzo de las cadenas, lo que hace posible que la base de datos use índices y debería obtener una respuesta inmediata. YouHaveXObjectAndSearchOptimOn=Tiene %s %s en su base de datos y la constante %s configurada como 1 en Inicio-Configuración-Varios BrowserIsOK=Usa el navegador web %s. Este navegador está optimizado para la seguridad y el rendimiento. BrowserIsKO=Usa el navegador web %s. Este navegador es una mala opción para la seguridad, rendimiento y fiabilidad. Aconsejamos utilizar Firefox, Chrome, Opera o Safari. diff --git a/htdocs/langs/es_ES/banks.lang b/htdocs/langs/es_ES/banks.lang index b8bacc120eb..748edda9c76 100644 --- a/htdocs/langs/es_ES/banks.lang +++ b/htdocs/langs/es_ES/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Si esta función está activada, puede elegir un color BankColorizeMovementName1=Color de fondo para el movimiento de débito BankColorizeMovementName2=Color de fondo para el movimiento de crédito IfYouDontReconcileDisableProperty=Si no realiza las conciliaciones bancarias en algunas cuentas bancarias, desactive la propiedad "%s" en ellas para eliminar esta advertencia. +NoBankAccountDefined=Sin cuenta bancaria definida diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang index 9de8ba35af6..cc519ff040a 100644 --- a/htdocs/langs/es_ES/boxes.lang +++ b/htdocs/langs/es_ES/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Los últimos %s meses consecutivos ChooseBoxToAdd=Añadir panel a su tablero BoxAdded=El widget fué agregado a su panel de control BoxTitleUserBirthdaysOfMonth=Cumpleaños de este mes (usuarios) -BoxLastManualEntries=Últimas entradas manuales en contabilidad -BoxTitleLastManualEntries=%s últimas entradas manuales +BoxLastManualEntries=Último registro contable introducido manualmente o sin documento fuente +BoxTitleLastManualEntries=%s último registro ingresado manualmente o sin documento fuente NoRecordedManualEntries=Sin registros de entradas manuales en contabilidad BoxSuspenseAccount=Cuenta contable operación con cuenta suspendida BoxTitleSuspenseAccount=Número de líneas no asignadas diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index 4c6a02e669f..a992897cd19 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -175,3 +175,5 @@ Answered=Contestado IsNotAnAnswer=No responde (e-mail inicial) IsAnAnswer=Es una respuesta de un e-mail inicial. RecordCreatedByEmailCollector=Registro creado por el Recopilador de E-Mails %s del e-mail %s +DefaultBlacklistMailingStatus=Estado de contacto predeterminado para rechazar el envío masivo de correos electrónicos +DefaultStatusEmptyMandatory=Vacío pero obligatorio diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index 51efd96db3a..bdc22f9fe03 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -224,6 +224,7 @@ Value=Valor PersonalValue=Valor personalizado NewObject=Nuevo %s NewValue=Nuevo valor +OldValue=Valor antiguo %s CurrentValue=Valor actual Code=Código Type=Tipo @@ -655,6 +656,7 @@ SupplierPreview=Historial proveedor ShowCustomerPreview=Ver historial cliente ShowSupplierPreview=Ver historial proveedor RefCustomer=Ref. cliente +InternalRef=Ref. Interna Currency=Divisa InfoAdmin=Información para los administradores Undo=Anular @@ -1113,6 +1115,7 @@ OutOfDate=Fuera de plazo EventReminder=Recordatorio evento UpdateForAllLines=Actualización para todas las líneas OnHold=En espera +Civility=Civilidad AffectTag=Afectar etiqueta ConfirmAffectTag=Afectar etiquetas masivas ConfirmAffectTagQuestion=¿Está seguro de que desea asignar las etiquetas a los %s registros seleccionados? diff --git a/htdocs/langs/es_ES/mrp.lang b/htdocs/langs/es_ES/mrp.lang index 26c76201145..d0eb0a49644 100644 --- a/htdocs/langs/es_ES/mrp.lang +++ b/htdocs/langs/es_ES/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Coste total BOMTotalCost=El costo para producir esta Lista de Materiales en función del costo de cada cantidad y producto a consumir (use el precio de costo si está definido, de lo contrario, el precio promedio ponderado si está definido, o el mejor precio de compra) GoOnTabProductionToProduceFirst=Primero debe haber iniciado la producción para cerrar una orden de fabricación (consulte la pestaña '%s'). Pero puedes cancelarlo. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit no se puede usar en una Lista de Materiales (BOM) o una Orden de Fabricación (MO) +Workstation=Puesto de trabajo +Workstations=Estaciones de trabajo +WorkstationsDescription=Gestión de estaciones de trabajo +WorkstationSetup = Configuración de estaciones de trabajo +WorkstationSetupPage = Página de configuración de estaciones de trabajo +WorkstationAbout = Acerca de la estación de trabajo +WorkstationAboutPage = Estaciones de trabajo sobre la página +WorkstationList=Lista de estaciones de trabajo +WorkstationCreate=Agregar nueva estación de trabajo +ConfirmEnableWorkstation=¿Está seguro de que desea habilitar la estación de trabajo %s ? +EnableAWorkstation=Habilitar una estación de trabajo +ConfirmDisableWorkstation=¿Está seguro de que desea desactivar la estación de trabajo %s ? +DisableAWorkstation=Deshabilitar una estación de trabajo +DeleteWorkstation=SuprimIr +NbOperatorsRequired=Número de operadores necesarios +THMOperatorEstimated=THM estimado del operador +THMMachineEstimated=THM estimado de la máquina +WorkstationType=Tipo de estación de trabajo +Human=Humano +Machine=Máquina +HumanMachine=Humano / Máquina +WorkstationArea=Área de la estación de trabajo +Machines=Máquinas +THMEstimatedHelp=Esta tarifa permite definir un costo de previsión del artículo. diff --git a/htdocs/langs/es_ES/stocks.lang b/htdocs/langs/es_ES/stocks.lang index 970960da78c..c40c86b03c9 100644 --- a/htdocs/langs/es_ES/stocks.lang +++ b/htdocs/langs/es_ES/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Valor de stocks UserWarehouseAutoCreate=Crear automáticamente existencias/almacén propio del usuario en la creación del usuario AllowAddLimitStockByWarehouse=Administrar también el valor del stock mínimo y deseado de la cupla (producto-almacén) además del valor del stock mínimo y deseado por producto RuleForWarehouse=Regla para almacenes +WarehouseAskWarehouseDuringPropal=Establecer un almacén para presupuestos de venta WarehouseAskWarehouseDuringOrder=Indicar un almacén en pedidos de clientes UserDefaultWarehouse=Indicar un almacén en usuarios MainDefaultWarehouse=Almacén por defecto diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang index 522b85d51d7..e6f1c0de0f9 100644 --- a/htdocs/langs/es_ES/withdrawals.lang +++ b/htdocs/langs/es_ES/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Buenos días:

    la domiciliación de la factura %s por cu ModeWarning=No se ha establecido la opción de modo real, nos detendremos después de esta simulación ErrorCompanyHasDuplicateDefaultBAN=La empresa con id %s tiene más de una cuenta bancaria predeterminada. No hay forma de saber cuál usar. ErrorICSmissing=Falta ICS en la cuenta bancaria %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=El monto total de la orden de domiciliación bancaria difiere de la suma de líneas diff --git a/htdocs/langs/es_ES/workflow.lang b/htdocs/langs/es_ES/workflow.lang index b807a033367..3a3f6b2fa6d 100644 --- a/htdocs/langs/es_ES/workflow.lang +++ b/htdocs/langs/es_ES/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Clasificar las recepciones como "facturadas" cuan descWORKFLOW_TICKET_CLOSE_INTERVENTION=Cerrar todas las intervenciones vinculadas al ticket cuando se cierra un ticket AutomaticCreation=Creación automática AutomaticClassification=Clasificación automática +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasificar el envío vinculado como cerrado cuando se valida la factura del cliente diff --git a/htdocs/langs/es_GT/admin.lang b/htdocs/langs/es_GT/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/es_GT/admin.lang +++ b/htdocs/langs/es_GT/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/es_GT/boxes.lang b/htdocs/langs/es_GT/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_GT/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_GT/mrp.lang b/htdocs/langs/es_GT/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_GT/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_HN/admin.lang b/htdocs/langs/es_HN/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/es_HN/admin.lang +++ b/htdocs/langs/es_HN/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/es_HN/boxes.lang b/htdocs/langs/es_HN/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_HN/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_HN/mrp.lang b/htdocs/langs/es_HN/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_HN/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_MX/accountancy.lang b/htdocs/langs/es_MX/accountancy.lang index e0e66ccf761..d6c90c3b1ce 100644 --- a/htdocs/langs/es_MX/accountancy.lang +++ b/htdocs/langs/es_MX/accountancy.lang @@ -95,6 +95,8 @@ TransitionalAccount=Cuenta de transferencia bancaria transitoria ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta contable de espera ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar suscripciones ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable por defecto para los productos comprados (se usa si no se define en la hoja de productos) +ACCOUNTING_PRODUCT_BUY_INTRA_ACCOUNT=Cuenta contable por defecto para los productos comprados en EEC (se usa si no se define en la hoja de productos) +ACCOUNTING_PRODUCT_BUY_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos comprados e importados fuera de la EEC (usado si no está definido en la hoja de productos) ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta contable por defecto para los productos vendidos (si no ha sido definida en la hoja \nproducto) ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los productos vendidos en la EEC (utilizada si no se define en la hoja de producto) ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para los productos vendidos y exportados fuera de la EEC (usado si no está definido en la hoja de producto) diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index bbd4ca9bcf3..2f40f90a92a 100644 --- a/htdocs/langs/es_MX/admin.lang +++ b/htdocs/langs/es_MX/admin.lang @@ -224,10 +224,10 @@ Module20Name=Propuestas Module25Name=Ordenes de venta Module30Name=Facturas Module40Name=Vendedores +Module59000Desc=Module to follow margins DictionaryAccountancyJournal=Diarios de contabilidad DictionarySocialNetworks=Redes Sociales Upgrade=Actualizar -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. LDAPFieldFirstName=Nombre(s) ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda diff --git a/htdocs/langs/es_MX/mrp.lang b/htdocs/langs/es_MX/mrp.lang index 300d0969e7e..afe7a7f1d75 100644 --- a/htdocs/langs/es_MX/mrp.lang +++ b/htdocs/langs/es_MX/mrp.lang @@ -1,2 +1,7 @@ # Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material BOMsSetup=configuración del módulo BOM +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_PA/admin.lang b/htdocs/langs/es_PA/admin.lang index 6f2290a334f..eb11d0d5c6f 100644 --- a/htdocs/langs/es_PA/admin.lang +++ b/htdocs/langs/es_PA/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin VersionUnknown=Desconocido -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/es_PA/boxes.lang b/htdocs/langs/es_PA/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_PA/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_PA/mrp.lang b/htdocs/langs/es_PA/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_PA/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_PE/admin.lang b/htdocs/langs/es_PE/admin.lang index 1ef2449de0c..2e7678563b1 100644 --- a/htdocs/langs/es_PE/admin.lang +++ b/htdocs/langs/es_PE/admin.lang @@ -2,12 +2,12 @@ VersionProgram=Versión del programa VersionLastInstall=Instalar versión inicial Module30Name=Facturas +Module59000Desc=Module to follow margins Permission91=Consultar impuestos e IGV Permission92=Crear/modificar impuestos e IGV Permission93=Eliminar impuestos e IGV DictionaryVAT=Tasa de IGV o tasa de impuesto a las ventas UnitPriceOfProduct=Precio unitario sin IGV de un producto -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OptionVatMode=IGV adeudado MailToSendInvoice=Facturas de Clientes diff --git a/htdocs/langs/es_PE/boxes.lang b/htdocs/langs/es_PE/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_PE/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_PY/admin.lang b/htdocs/langs/es_PY/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/es_PY/admin.lang +++ b/htdocs/langs/es_PY/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/es_PY/boxes.lang b/htdocs/langs/es_PY/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_PY/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_PY/mrp.lang b/htdocs/langs/es_PY/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_PY/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_US/admin.lang b/htdocs/langs/es_US/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/es_US/admin.lang +++ b/htdocs/langs/es_US/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/es_US/boxes.lang b/htdocs/langs/es_US/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_US/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_US/mrp.lang b/htdocs/langs/es_US/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_US/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_UY/admin.lang b/htdocs/langs/es_UY/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/es_UY/admin.lang +++ b/htdocs/langs/es_UY/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/es_UY/boxes.lang b/htdocs/langs/es_UY/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_UY/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_UY/mrp.lang b/htdocs/langs/es_UY/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_UY/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/es_VE/admin.lang b/htdocs/langs/es_VE/admin.lang index 0ed75440ea2..d395e4cecd0 100644 --- a/htdocs/langs/es_VE/admin.lang +++ b/htdocs/langs/es_VE/admin.lang @@ -4,6 +4,7 @@ VersionLastUpgrade=Última actualización de la versión ConfirmPurgeSessions=¿De verdad quieres purgar todas las sesiones? Esto desconectará a todos los usuarios (excepto a usted). SetupArea=Parametrizaje NotConfigured=Módulo / Aplicación no configurada +Module59000Desc=Module to follow margins Permission254=Modificar la contraseña de otros usuarios Permission255=Eliminar o desactivar otros usuarios Permission256=Consultar sus permisos @@ -21,7 +22,6 @@ ExtraFieldsSupplierInvoices=Atributos adicionales (facturas) ExtraFieldsProject=Atributos adicionales (proyectos) ExtraFieldsProjectTask=Atributos adicionales (tareas) ExtraFieldHasWrongValue=El atributo %s tiene un valor no válido -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. SupplierProposalSetup=Configuración del módulo Solicitudes a proveedor SupplierProposalNumberingModules=Modelos de numeración de solicitud de precios a proveedor SupplierProposalPDFModules=Modelos de documentos de solicitud de precios a proveedores diff --git a/htdocs/langs/es_VE/boxes.lang b/htdocs/langs/es_VE/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/es_VE/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/es_VE/mrp.lang b/htdocs/langs/es_VE/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/es_VE/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang index 0b2bed4baae..170d73a6bac 100644 --- a/htdocs/langs/et_EE/accountancy.lang +++ b/htdocs/langs/et_EE/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index f9e9b8e1acb..abc17b9297f 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Marginaalid -Module59000Desc=Marginaalide haldamise moodu +Module59000Desc=Module to follow margins Module60000Name=Komisjonitasu Module60000Desc=Komisjonitasude haldamise moodu Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Otsingu optimeerimine -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/et_EE/banks.lang b/htdocs/langs/et_EE/banks.lang index a1bb7028a82..2838587c4c8 100644 --- a/htdocs/langs/et_EE/banks.lang +++ b/htdocs/langs/et_EE/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/et_EE/boxes.lang b/htdocs/langs/et_EE/boxes.lang index 204b90f03ea..3212c908291 100644 --- a/htdocs/langs/et_EE/boxes.lang +++ b/htdocs/langs/et_EE/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/et_EE/mails.lang b/htdocs/langs/et_EE/mails.lang index 9f3afdb2f66..45d64d5f642 100644 --- a/htdocs/langs/et_EE/mails.lang +++ b/htdocs/langs/et_EE/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang index 14a0599dabe..c8174781715 100644 --- a/htdocs/langs/et_EE/main.lang +++ b/htdocs/langs/et_EE/main.lang @@ -224,6 +224,7 @@ Value=Väärtus PersonalValue=Isiklik väärtus NewObject=Uus %s NewValue=Uus väärtus +OldValue=Old value %s CurrentValue=Praegune väärtus Code=Kood Type=Liik @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Näita kliendi eelvaadet ShowSupplierPreview=Show vendor preview RefCustomer=Kliendi viide +InternalRef=Internal ref. Currency=Valuuta InfoAdmin=Administraatoritele vajalik informatsioon Undo=Tühista @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/et_EE/mrp.lang b/htdocs/langs/et_EE/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/et_EE/mrp.lang +++ b/htdocs/langs/et_EE/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/et_EE/stocks.lang b/htdocs/langs/et_EE/stocks.lang index fd742bbe14a..760b0f0dbbc 100644 --- a/htdocs/langs/et_EE/stocks.lang +++ b/htdocs/langs/et_EE/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Ladude väärtus UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/et_EE/withdrawals.lang b/htdocs/langs/et_EE/withdrawals.lang index 91462e241a0..fc31c53b37e 100644 --- a/htdocs/langs/et_EE/withdrawals.lang +++ b/htdocs/langs/et_EE/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Tootmisrežiim ei olnud seadistatud, pärast seda peatatakse simulatsioon ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/et_EE/workflow.lang b/htdocs/langs/et_EE/workflow.lang index 03c55985b03..46396afb83e 100644 --- a/htdocs/langs/et_EE/workflow.lang +++ b/htdocs/langs/et_EE/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/eu_ES/accountancy.lang b/htdocs/langs/eu_ES/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/eu_ES/accountancy.lang +++ b/htdocs/langs/eu_ES/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang index 9b92fcfc3ef..5f99e070cd3 100644 --- a/htdocs/langs/eu_ES/admin.lang +++ b/htdocs/langs/eu_ES/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Marjinak -Module59000Desc=Marjinak kudeatzeko modulua +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/eu_ES/banks.lang b/htdocs/langs/eu_ES/banks.lang index 218733473be..bac80483712 100644 --- a/htdocs/langs/eu_ES/banks.lang +++ b/htdocs/langs/eu_ES/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/eu_ES/boxes.lang b/htdocs/langs/eu_ES/boxes.lang index fb6cacaea9b..42d5a977df9 100644 --- a/htdocs/langs/eu_ES/boxes.lang +++ b/htdocs/langs/eu_ES/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/eu_ES/mails.lang b/htdocs/langs/eu_ES/mails.lang index f64df420fab..b124f83e85d 100644 --- a/htdocs/langs/eu_ES/mails.lang +++ b/htdocs/langs/eu_ES/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/eu_ES/main.lang b/htdocs/langs/eu_ES/main.lang index a14fca3d91f..b048eaf318c 100644 --- a/htdocs/langs/eu_ES/main.lang +++ b/htdocs/langs/eu_ES/main.lang @@ -224,6 +224,7 @@ Value=Balioa PersonalValue=Personal value NewObject=New %s NewValue=Balio berria +OldValue=Old value %s CurrentValue=Current value Code=Kodea Type=Mota @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/eu_ES/mrp.lang b/htdocs/langs/eu_ES/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/eu_ES/mrp.lang +++ b/htdocs/langs/eu_ES/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/eu_ES/stocks.lang b/htdocs/langs/eu_ES/stocks.lang index afc5de4c285..fa21c48cb73 100644 --- a/htdocs/langs/eu_ES/stocks.lang +++ b/htdocs/langs/eu_ES/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/eu_ES/withdrawals.lang b/htdocs/langs/eu_ES/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/eu_ES/withdrawals.lang +++ b/htdocs/langs/eu_ES/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/eu_ES/workflow.lang b/htdocs/langs/eu_ES/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/eu_ES/workflow.lang +++ b/htdocs/langs/eu_ES/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang index dad3cbd4038..794149d01cf 100644 --- a/htdocs/langs/fa_IR/accountancy.lang +++ b/htdocs/langs/fa_IR/accountancy.lang @@ -16,6 +16,8 @@ ThisService=این خدمت ThisProduct=این محصول DefaultForService=پیش‌فرض برای خدمات DefaultForProduct=پیش‌فرض برای محصول +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=امکان پیش‌نهاد نیست AccountancySetupDoneFromAccountancyMenu=اکثر برپاسازی حساب‌داری برای فهرست %s انجام شده است ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index e7cf0662df4..44b56b29436 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=چاپ مستقیم (بدون باز کردن مستندات) ب Module55000Name=رای‌گیری و نظرسنجی Module55000Desc=ساخت نظرسنجی و رای‌گیری برخط (همانند Doodle، Studs, RDVz و غیره). Module59000Name=حاشیه‌ها -Module59000Desc=واحد مدیریت حاشیه‌ها +Module59000Desc=Module to follow margins Module60000Name=کمیسیون Module60000Desc=واحد مدیریت کمیسیون‌ها Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=شما از راه‌انداز %s استفاده می‌کنی YouDoNotUseBestDriver=شما از راه‌انداز %s استفاده می‌کنید اما پیشنهاد ما استفادهاز %s است. NbOfObjectIsLowerThanNoPb=شما در پایگاه داده فقط %s%s دارید. این الزاما نیازمند بهینه سازی نیست. SearchOptim=بهینه‌سازی جستجو -YouHaveXObjectUseSearchOptim=شما در پایگاه‌داده %s%s دارید. شما باید مقدار ثابت %s را به 1 در خانه-برپاسازی-سایر اضافه کنید. جستجو را محدود به ابتدا نمائید تا به پایگاه‌داده امکان دهید از شاخص‌ها استفاده کند تا بتوانید واکنش فوری داشته باشید. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=شما در پایگاه داده %s دارید و مقدار ثابت %s %sدر خانه-برپاسازی-سایر به 1 تنظیم شده است. BrowserIsOK=شما از مرورگر وب %s استفاده می‌نمائید. این مرورگر برای کارائی و امنیت مناسب است. BrowserIsKO=شما از مرورگر وب %s استفاده می‌نمائید. این مرورگر به‌عنوان یک انتخاب بد به نسبت امنیت، کارائی و اعتمادپذیری شناخته شده است. ما به شما پیشنهاد می‌کنیم از Firefox، Chrome، Opera و Safari استفاده نمائید. diff --git a/htdocs/langs/fa_IR/banks.lang b/htdocs/langs/fa_IR/banks.lang index 230dd8c779c..74e84caae12 100644 --- a/htdocs/langs/fa_IR/banks.lang +++ b/htdocs/langs/fa_IR/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/fa_IR/boxes.lang b/htdocs/langs/fa_IR/boxes.lang index d9d03656410..644922a4949 100644 --- a/htdocs/langs/fa_IR/boxes.lang +++ b/htdocs/langs/fa_IR/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=طومار آخرین %s ماه ChooseBoxToAdd=اضافه کردن وسیله به پیشخوان شم BoxAdded=این وسیله به پیشخوان شما اضافه شد BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/fa_IR/mails.lang b/htdocs/langs/fa_IR/mails.lang index 1f688c5cbdc..159d2a5d314 100644 --- a/htdocs/langs/fa_IR/mails.lang +++ b/htdocs/langs/fa_IR/mails.lang @@ -175,3 +175,5 @@ Answered=پاسخ داده شده IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang index 5e41a7d862e..e24969fbdf7 100644 --- a/htdocs/langs/fa_IR/main.lang +++ b/htdocs/langs/fa_IR/main.lang @@ -224,6 +224,7 @@ Value=مقدار PersonalValue=مقدار شخصی NewObject=%s جدید NewValue=مقدار جدید +OldValue=Old value %s CurrentValue=مقدار کنونی Code=کد Type=نوع @@ -655,6 +656,7 @@ SupplierPreview=پیش‌نمایش فروشنده ShowCustomerPreview=نمایش پیش‌نمایش مشتری ShowSupplierPreview=نمایش پیش‌نمایش فروشنده RefCustomer=ارجاع مشتری +InternalRef=Internal ref. Currency=واحدپولی InfoAdmin=اطلاعات مربوط به مدیران Undo=واگرادنی @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/fa_IR/mrp.lang b/htdocs/langs/fa_IR/mrp.lang index 5edbad940c2..33de4aff092 100644 --- a/htdocs/langs/fa_IR/mrp.lang +++ b/htdocs/langs/fa_IR/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/fa_IR/stocks.lang b/htdocs/langs/fa_IR/stocks.lang index 18ce5c1d53e..c41e21fe88c 100644 --- a/htdocs/langs/fa_IR/stocks.lang +++ b/htdocs/langs/fa_IR/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=ارزش انبار UserWarehouseAutoCreate=ساخت خودکار انبار کاربر در هنگام ساخت کاربر AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=انبار پیش‌فرض diff --git a/htdocs/langs/fa_IR/withdrawals.lang b/htdocs/langs/fa_IR/withdrawals.lang index ef958d540e4..ec6d23c2c6b 100644 --- a/htdocs/langs/fa_IR/withdrawals.lang +++ b/htdocs/langs/fa_IR/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=انتخاب برای حالت واقعی تنظیم نشده بود، ما بعد از این شبیه سازی را متوقف کند ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/fa_IR/workflow.lang b/htdocs/langs/fa_IR/workflow.lang index d3fc0934cf1..83ce4b446e4 100644 --- a/htdocs/langs/fa_IR/workflow.lang +++ b/htdocs/langs/fa_IR/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/fi_FI/accountancy.lang b/htdocs/langs/fi_FI/accountancy.lang index f70614cf020..9b30fe43792 100644 --- a/htdocs/langs/fi_FI/accountancy.lang +++ b/htdocs/langs/fi_FI/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Tämä palvelu ThisProduct=Tämä tuote DefaultForService=Oletusarvo palvelulle DefaultForProduct=Oletusarvo tuotteelle +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Ei ehdotuksia AccountancySetupDoneFromAccountancyMenu=Kirjanpidon asetukset tehdään pääasiassa valikosta %s ConfigAccountingExpert=Configuration of the module accounting (double entry) @@ -315,7 +317,7 @@ AccountingJournalType2=Myynti AccountingJournalType3=Ostot AccountingJournalType4=Pankki AccountingJournalType5=Expenses report -AccountingJournalType8=Inventory +AccountingJournalType8=Varasto AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index 8bcf8d0f590..1eda1356201 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -16,15 +16,15 @@ FileIntegrityIsOkButFilesWereAdded=Tiedostot ovat yhteneväisiä alkuperäisten FileIntegritySomeFilesWereRemovedOrModified=Asennus poikkeaa tavallisesta asennuksesta. Tiedostoja on muutettu/poistettu/lisätty. GlobalChecksum=Tarkistussumma MakeIntegrityAnalysisFrom=Tee eheysanalyysi sovellustiedostoista -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) +LocalSignature=Upotettu paikallinen allekirjoitus (vähemmän luotettava) +RemoteSignature=Etäkauko-allekirjoitus (luotettavampi) FilesMissing=Puuttuvat Tiedostot FilesUpdated=Päivitetyt Tiedostot FilesModified=Muokatut Tiedostot FilesAdded=Lisätyt Tiedostot FileCheckDolibarr=Tarkasta sovellustiedostojen eheys -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when the application is installed from an official package -XmlNotFound=Xml Integrity File of application not found +AvailableOnlyOnPackagedVersions=Paikallinen tiedosto eheystarkastusta varten on käytettävissä vain, kun sovellus on asennettu virallisesta paketista +XmlNotFound=Xml eheystiedostoa sovellukselle ei löydy SessionId=Istunnon tunniste SessionSaveHandler=Istunnot tallentava käsittelijä SessionSavePath=Istuntojen tallennuskohde @@ -37,12 +37,12 @@ UnlockNewSessions=Poista yhteyksien esto YourSession=Istuntosi Sessions=Käyttäjien istunnot WebUserGroup=Web-palvelimen käyttäjä / ryhmä -PermissionsOnFilesInWebRoot=Permissions on files in web root directory -PermissionsOnFile=Permissions on file %s +PermissionsOnFilesInWebRoot=Verkon juurihakemiston tiedostojen käyttöoikeudet +PermissionsOnFile=Tiedoston %s käyttöoikeudet NoSessionFound=PHP:n asetukset estävät aktiivisten istuntojen listaamisen. Istuntojen tallennushakemisto (%s) voi olla suojattu (Käyttöjärjestelmäoikeudet tai PHP: n open_basedir). DBStoringCharset=Tietokannan merkistö tietojen tallennukseen DBSortingCharset=Tietokannan merkistö tietojen lajitteluun -HostCharset=Host charset +HostCharset=Isännän merkistö ClientCharset=Clientin merkistö ClientSortingCharset=Clientin ulkoasu WarningModuleNotActive=Moduuli %s on oltava käytössä @@ -56,8 +56,8 @@ GUISetup=Näyttö SetupArea=Asetukset UploadNewTemplate=Päivitä uusi pohja(t) FormToTestFileUploadForm=Lomake tiedostonlähetyksen testaamiseen (asetusten mukainen) -ModuleMustBeEnabled=The module/application %s must be enabled -ModuleIsEnabled=The module/application %s has been enabled +ModuleMustBeEnabled=Moduulin / sovelluksen %s on oltava käytössä +ModuleIsEnabled=Moduuli / sovellus %s on otettu käyttöön IfModuleEnabled=Huomaa: kyllä on tehokas vain, jos moduuli %s on käytössä RemoveLock=Mahdollistaaksesi Päivitys-/Asennustyökalun käytön, poista/nimeä uudelleen tarvittaessa tiedosto %s RestoreLock=Palauta tiedosto %s vain lukuoikeuksin. Tämä estää myöhemmän Päivitys-/Asennustyökalun käytön @@ -71,20 +71,20 @@ Dictionary=Sanakirjat ErrorReservedTypeSystemSystemAuto=Arvot 'system' ja 'systemauto' ovat varattuja. Voit käyttää 'user' arvona lisääksesi sinun omaa recordia ErrorCodeCantContainZero=Koodi ei voi sisältää arvoa 0 DisableJavascript=Poista JavaScript-ja Ajax toiminnot -DisableJavascriptNote=Note: For test or debug purpose. For optimization for blind person or text browsers, you may prefer to use the setup on the profile of user -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.
    This may increase performance if you have a large number of third parties, but it is less convenient. -DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.
    This may increase performance if you have a large number of contacts, but it is less convenient. +DisableJavascriptNote=Huomaa: Testaamista tai virheenkorjausta varten. Sokeiden tai tekstiselaimien optimoimiseksi saatat haluta käyttää käyttäjän profiilin asetuksia +UseSearchToSelectCompanyTooltip=Myös jos sinulla on paljon kolmansia osapuolia (> 100 000), voit lisätä nopeutta asettamalla vakion COMPANY_DONOTSEARCH_ANYWHERE arvoksi 1 kohdassa Asetukset->Muut. Haku rajoitetaan sitten merkkijonon alkuun. +UseSearchToSelectContactTooltip=Myös jos sinulla on paljon kolmansia osapuolia (> 100 000), voit lisätä nopeutta asettamalla vakion CONTACT_DONOTSEARCH_ANYWHERE arvoksi 1 kohdassa Asetukset-> Muut. Haku rajoitetaan sitten merkkijonon alkuun. +DelaiedFullListToSelectCompany=Odota, kunnes näppäintä painetaan, ennen kuin lataat kolmansien osapuolten yhdistelmäluettelon sisällön.
    Tämä voi parantaa suorituskykyä, jos sinulla on paljon kolmansia osapuolia, mutta se ei ole yhtä kätevää. +DelaiedFullListToSelectContact=Odota, kunnes näppäintä painetaan, ennen kuin lataat yhteystietojen yhdistelmäluettelon sisältöä.
    Tämä voi parantaa suorituskykyä, jos sinulla on paljon yhteystietoja, mutta se on vähemmän kätevää. NumberOfKeyToSearch=Haun aloittamiseksi tarvittavien merkkien määrä: %s NumberOfBytes=Tavujen lukumäärä SearchString=Haettava merkkijono NotAvailableWhenAjaxDisabled=Ei käytössä, kun Ajax poistettu käytöstä -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party +AllowToSelectProjectFromOtherCompany=Kolmannen osapuolen asiakirjalla voi valita toiseen kolmanteen osapuoleen linkitetyn projektin JavascriptDisabled=JavaScript ei käytössä UsePreviewTabs=Käytä esikatselu - välilehtiä ShowPreview=Näytä esikatselu -ShowHideDetails=Show-Hide details +ShowHideDetails=Näytä-piilota yksityiskohdat PreviewNotAvailable=Esikatselu ei ole käytettävissä ThemeCurrentlyActive=Aktiivinen teema MySQLTimeZone=Aikavyöhyke MySql (tietokanta) @@ -98,15 +98,15 @@ NextValue=Seuraava arvo NextValueForInvoices=Seuraava arvo (laskut) NextValueForCreditNotes=Seuraava arvo (hyvityslaskut) NextValueForDeposit=Seuraava arvo (osamaksu) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter +NextValueForReplacements=Seuraava arvo (korvaavat) +MustBeLowerThanPHPLimit=Huomaa: PHP-kokoonpanosi rajoittaa tällä hetkellä lähetettävien tiedostojen enimmäiskokoa %s %s tämän parametrin arvosta riippumatta. NoMaxSizeByPHPLimit=Huom: Rajaa ei ole asetettu PHP-asetuksissa MaxSizeForUploadedFiles=Lähetettävien tiedostojen enimmäiskoko (0 estää lähetykset) UseCaptchaCode=Käytä graafista koodia (CAPTCHA) kirjautumissivulla AntiVirusCommand=Virustorjuntaohjelman polku -AntiVirusCommandExample=Example for ClamAv Daemon (require clamav-daemon): /usr/bin/clamdscan
    Example for ClamWin (very very slow): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe +AntiVirusCommandExample=Esimerkki ClamAv-daemonille (vaatii clamav-daemonin): /usr/bin/clamdscan
    Esimerkki ClamWinille (erittäin hidas): c:\\Progra~1\\ClamWin\\bin\\clamscan.exe AntiVirusParam= Lisää parametreja komentorivillä -AntiVirusParamExample=Example for ClamAv Daemon: --fdpass
    Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +AntiVirusParamExample=Esimerkki ClamAv-daemonille: --fdpass
    Esimerkki ClamWinille: --database="C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=Kirjanpitomoduulin asetukset UserSetup=Käyttäjien hallinta-asetukset MultiCurrencySetup=Multi-valuutta asetukset @@ -124,7 +124,7 @@ CurrentValueSeparatorDecimal=Desimaalierotin CurrentValueSeparatorThousand=Tuhatluvun erotin Destination=Kohde IdModule=Moduulin ID -IdPermissions=Permissions ID +IdPermissions=Käyttöoikeustunnus LanguageBrowserParameter=Parametri %s LocalisationDolibarrParameters=Lokalisaation parametrit ClientTZ=Asiakasohjelman aikavyöhyke (käyttäjä) @@ -134,16 +134,16 @@ PHPTZ=PHP-palvelimen aikavyöhyke DaylingSavingTime=Kesäaika (käyttäjä) CurrentHour=PHP aika (palvelin) CurrentSessionTimeOut=Nykyisen istunnon aikakatkaisu -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris" -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server. +YouCanEditPHPTZ=Voit asettaa toisen PHP-aikavyöhykkeen (ei vaadita) lisäämällä .htaccess-tiedostoon rivi esim. "SetEnv TZ Europe / Paris" +HoursOnThisPageAreOnServerTZ=Varoitus, toisin kuin muilla näytöillä lukee, tämän sivun aukioloajat eivät ole paikallista aikavyöhykettäsi, vaan palvelimen aikavyöhykettä. Box=Widget Boxes=Widgetit MaxNbOfLinesForBoxes=Maksimi rivimäärä Widgeteille AllWidgetsWereEnabled=Kaikki saatavilla olevat Widgetit on aktivoitu PositionByDefault=Oletusjärjestys Position=Sijainti -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
    Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. +MenusDesc=Valikkohallinnasta asetetaan kahden valikkorivin (vaaka- ja pystysuora) sisältö. +MenusEditorDesc=Valikkomuokkaimen avulla voit määrittää mukautetut valikkomerkinnät. Käytä sitä varoen, jotta vältät epävakauden ja pysyvästi tavoittamattomissa olevat valikkomerkinnät.
    Jotkut moduulit lisäävät valikkomerkinnät (valikossa Kaikki enimmäkseen). Jos poistat osan näistä merkinnöistä vahingossa, voit palauttaa ne poistamalla moduulin käytöstä ja ottamalla sen uudelleen käyttöön. MenuForUsers=Valikko käyttäjille LangFile=.lang - tiedosto Language_en_US_es_MX_etc=Kieliasetukset (en_US, fi_FI,...) @@ -152,15 +152,15 @@ SystemInfo=Järjestelmän tiedot SystemToolsArea=Järjestelmätyökalut SystemToolsAreaDesc=Pääkäyttäjien toiminnot. Valitse valikosta haluttu ominaisuus Purge=Poista -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not normally necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago. -PurgeDeleteTemporaryFilesShort=Delete log and temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory: %s.
    This will delete all generated documents related to elements (third parties, invoices etc...), files uploaded into the ECM module, database backup dumps and temporary files. +PurgeAreaDesc=Tällä sivulla voit poistaa kaikki Dolibarrin luomat tai tallentamat tiedostot (väliaikaiset tiedostot tai kaikki tiedostot hakemistossa %s ). Tämän ominaisuuden käyttäminen ei yleensä ole tarpeen. Se on kiertotapa käyttäjille, joiden Dolibarria isännöi palveluntarjoaja, joka ei tarjoa oikeuksia poistaa verkkopalvelimen luomia tiedostoja. +PurgeDeleteLogFile=Poista lokitiedostot, mukaan lukien %s , joka on määritetty Syslog-moduulille (ei vaaraa menettää tietoja) +PurgeDeleteTemporaryFiles=Poista kaikki loki- ja väliaikaiset tiedostot (ei vaaraa menettää tietoja). Huomaa: Väliaikaiset tiedostot poistetaan vain, jos temp-hakemisto luotiin yli 24 tuntia sitten. +PurgeDeleteTemporaryFilesShort=Poista loki ja väliaikaiset tiedostot +PurgeDeleteAllFilesInDocumentsDir=Poista kaikki tiedostot hakemistosta: %s .
    Tämä poistaa kaikki luodut asiakirjat, jotka liittyvät elementteihin (kolmannet osapuolet, laskut jne.), ECM-moduuliin ladatut tiedostot, tietokannan varmuuskopiot ja väliaikaiset tiedostot. PurgeRunNow=Siivoa nyt PurgeNothingToDelete=Ei poistettavia hakemistoja tai tiedostoja. PurgeNDirectoriesDeleted= %s tiedostoa tai hakemistoa poistettu. -PurgeNDirectoriesFailed=Failed to delete %s files or directories. +PurgeNDirectoriesFailed= %s -tiedostojen tai hakemistojen poistaminen epäonnistui. PurgeAuditEvents=Poista kaikki tietoturvatapahtumat ConfirmPurgeAuditEvents=Haluatko varmasti poistaa kaikki tietoturvatapahtumat? Kaikki tietoturvalokit tyhjennetään, muuta dataa ei poisteta. GenerateBackup=Luo varmuuskopio @@ -174,20 +174,20 @@ NoBackupFileAvailable=Varmuuskopioita ei saatavilla ExportMethod=Viennin menetelmä ImportMethod=Tuonnin menetelmä ToBuildBackupFileClickHere=Varmuuskopion luonti, paina tästä -ImportMySqlDesc=To import a MySQL backup file, you may use phpMyAdmin via your hosting or use the mysql command from the Command line.
    For example: +ImportMySqlDesc=Jos haluat tuoda MySQL-varmuuskopiotiedoston, voit käyttää phpMyAdminia isännän kautta tai käyttää mysql-komentoa komentoriviltä.
    Esimerkiksi: ImportPostgreSqlDesc=Tuodaksesi varmuuskopio-tiedoston, sinun täytyy käyttää pg_restore komentoa komentoriviltä: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql FileNameToGenerate=Varmuuskopion tiedostonimi: Compression=Pakkaus -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later +CommandsToDisableForeignKeysForImport=Komento, jolla estetään vieraiden avainten tuonti +CommandsToDisableForeignKeysForImportWarning=Pakollinen, jos haluat pystyä palauttamaan sql-dumpin myöhemmin ExportCompatibility=Luodun vientitiedoston yhteensopivuus -ExportUseMySQLQuickParameter=Use the --quick parameter -ExportUseMySQLQuickParameterHelp=The '--quick' parameter helps limit RAM consumption for large tables. +ExportUseMySQLQuickParameter=Käytä parametria --quick +ExportUseMySQLQuickParameterHelp=Parametri '--quick' auttaa rajoittamaan RAM-muistin kulutusta suurissa tauluissa. MySqlExportParameters=MySQL-viennin parametrit PostgreSqlExportParameters= PostgreSQL-viennin parametrit -UseTransactionnalMode=Use transactional mode +UseTransactionnalMode=Käytä transaktiotilaa FullPathToMysqldumpCommand=mysqldump-komennon polku FullPathToPostgreSQLdumpCommand=pg_dump-komennon polku AddDropDatabase=Lisää 'DROP DATABASE' - komento @@ -195,39 +195,39 @@ AddDropTable=Lisää 'DROP TABLE' - komento ExportStructure=Rakenne NameColumn=Nimisarakkeet ExtendedInsert=Laajennettu INSERT -NoLockBeforeInsert=No lock commands around INSERT +NoLockBeforeInsert=INSERT-alueella ei ole lukituskomentoja DelayedInsert=Viivästetty lisäys EncodeBinariesInHexa=Koodaa binääridata heksadesimaaleina IgnoreDuplicateRecords=Ohita duplikaattitietuevirheet (INSERT IGNORE) AutoDetectLang=Automaattitunnistus (selaimen kieli) FeatureDisabledInDemo=Ominaisuus on poistettu käytöstä demossa FeatureAvailableOnlyOnStable=Ominaisuus käytettävissä vain virallisissa vakaissa versioissa -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 trashcan to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button %s of each module to enable or disable a module/application. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab %s. +BoxesDesc=Widgetit ovat komponentteja, jotka näyttävät joitain tietoja, jotka voit lisätä joidenkin sivujen mukauttamiseksi. Voit valita, näytetäänkö widget vai ei, valitsemalla kohdesivun ja napsauttamalla Aktivoi tai napsauttamalla roskakoria poistaaksesi sen käytöstä. +OnlyActiveElementsAreShown=Vain -yhteensopivien moduulien elementit näytetään. +ModulesDesc=Moduulit / sovellukset määrittävät ohjelmistossa käytettävissä olevat ominaisuudet. Jotkut moduulit edellyttävät oikeuksien myöntämistä käyttäjille moduulin aktivoinnin jälkeen. Napsauta kunkin moduulin virtapainiketta %s , jos haluat ottaa moduulin / sovelluksen käyttöön tai poistaa sen käytöstä. +ModulesMarketPlaceDesc=Löydät lisää moduuleja ladattavaksi ulkoisilta verkkosivustoilta Internetistä ... +ModulesDeployDesc=Jos tiedostojärjestelmän käyttöoikeudet sen sallivat, voit käyttää tätä työkalua ulkoisen moduulin asentamiseen. Moduuli on tämän jälkeen näkyvissä välilehdellä %s . ModulesMarketPlaces=Etsi ulkoisia sovelluksia/moduuleja ModulesDevelopYourModule=Luo oma sovellus/moduuli -ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you. -DOLISTOREdescriptionLong=Instead of switching on www.dolistore.com web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)... -NewModule=New module +ModulesDevelopDesc=Voit myös kehittää oman moduulin tai etsiä kumppanin kehittämään sinulle. +DOLISTOREdescriptionLong=Sen sijaan, että ottaisit ulkoisen moduulin käyttöön, www.dolistore.com -sivustosta, voit käyttää tätä sulautettua työkalua, joka suorittaa haun ulkoisella kauppapaikalla (saattaa olla hidasta, tarvitsee Internet-yhteyden) ... +NewModule=Uusi moduuli FreeModule=Ilmainen CompatibleUpTo=Yhteensopiva version %s kanssa NotCompatible=Moduuli ei ole yhteensopiva Dolibarr - version %s kanssa. (Min %s - Max %s) CompatibleAfterUpdate=Moduuli vaatii Dolibarr - version %s päivittämisen. (Min %s - Max %s) -SeeInMarkerPlace=See in Market place -SeeSetupOfModule=See setup of module %s +SeeInMarkerPlace=Katso kauppapaikalla +SeeSetupOfModule=Katso moduulin %s asetukset Updated=Päivitetty -Nouveauté=Novelty +Nouveauté=Uutuus AchatTelechargement=Osta / Lataa -GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s. +GoModuleSetupArea=Voit ottaa uuden moduulin käyttöön tai asentaa sen siirtymällä moduulin asennusalueelle: %s . DoliStoreDesc=DoliStore, virallinen markkinapaikka Dolibarr ERP / CRM lisäosille -DoliPartnersDesc=List of companies providing custom-developed modules or features.
    Note: since Dolibarr is an open source application, anyone experienced in PHP programming should be able to develop a module. -WebSiteDesc=External websites for more add-on (non-core) modules... -DevelopYourModuleDesc=Some solutions to develop your own module... +DoliPartnersDesc=Luettelo yrityksistä, jotka tarjoavat räätälöityjä moduuleja tai ominaisuuksia.
    Huomaa: Koska Dolibarr on avoimen lähdekoodin sovellus, kenen tahansa : lla, jolla on kokemusta PHP-ohjelmoinnista, pitäisi pystyä kehittämään moduuli. +WebSiteDesc=Ulkoiset verkkosivustot, joista löytyy lisää moduuleja (ei ydin) ... +DevelopYourModuleDesc=Joitakin ratkaisuja oman moduulin kehittämiseen ... URL=Osoite -RelativeURL=Relative URL +RelativeURL=Suhteellinen URL BoxesAvailable=Widgetit saatavilla BoxesActivated=Widget aktivoitu ActivateOn=Aktivoi @@ -238,66 +238,66 @@ Required=Vaadittu UsedOnlyWithTypeOption=Käytössä vain jossain Kalenterin asetuksissa Security=Turvallisuus Passwords=Salasanat -DoNotStoreClearPassword=Encrypt passwords stored in database (NOT as plain-text). It is strongly recommended to activate this option. -MainDbPasswordFileConfEncrypted=Encrypt database password stored in conf.php. It is strongly recommended to activate this option. -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
    $dolibarr_main_db_pass="...";
    by
    $dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
    $dolibarr_main_db_pass="crypted:...";
    by
    $dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protect generated PDF files. This is NOT recommended as it breaks bulk PDF generation. -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. +DoNotStoreClearPassword=Salaa tietokantaan tallennetut salasanat (EI pelkkänä tekstinä). On erittäin suositeltavaa aktivoida tämä vaihtoehto. +MainDbPasswordFileConfEncrypted=Salaa conf.php-tiedostoon tallennettu tietokannan salasana. On erittäin suositeltavaa aktivoida tämä vaihtoehto. +InstrucToEncodePass=Jos haluat salasanan koodatuksi conf.php -tiedostoon, korvaa rivi
    $ dolibarr_main_db_pass = "...";
    seuraavalla:
    $ dolibarr_main_db_pass = "crypted: %s"; +InstrucToClearPass=Jos haluat salasanan purettuna (selkeäkielisenä) conf.php -tiedostoon, korvaa rivi
    $ dolibarr_main_db_pass = "crypted: ...";
    seuraavalla:
    $ dolibarr_main_db_pass = "%s"; +ProtectAndEncryptPdfFiles=Suojaa luotuja PDF-tiedostoja. Tätä EI suositella, koska se rikkoo PDF-tiedostojen joukkotuotannon. +ProtectAndEncryptPdfFilesDesc=PDF-asiakirjan suojaus pitää sen saatavilla lukemista ja tulostusta varten millä tahansa PDF-selaimella. Muokkaus ja kopiointi ei kuitenkaan ole enää mahdollista. Huomaa, että tämän ominaisuuden käyttäminen ei tue globaalien yhdistettyjen PDF-tiedostojen luomista. Feature=Ominaisuus DolibarrLicense=Lisenssi Developpers=Kehittäjät/vapaaehtoiset OfficialWebSite=Dolibarr: in virallinen www-sivu -OfficialWebSiteLocal=Local web site (%s) +OfficialWebSiteLocal=Paikallinen verkkosivusto (%s) OfficialWiki=Dolibarr:in dokumentit / Wiki OfficialDemo=Dolibarr online-demo OfficialMarketPlace=Ulkoisten moduulien/lisäosien kauppa -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners +OfficialWebHostingService=Viitatut verkkopalvelut (pilvipalvelut) +ReferencedPreferredPartners=Ensisijaiset kumppanit OtherResources=Muut resurssit ExternalResources=Ulkoiset resurssit SocialNetworks=Sosiaaliset verkostot -SocialNetworkId=Social Network ID +SocialNetworkId=Sosiaalisen verkoston tunnus ForDocumentationSeeWiki=Käyttäjälle tai kehittäjän dokumentaatio (doc, FAQs ...),
    katsoa, että Dolibarr Wiki:
    %s ForAnswersSeeForum=Muita kysymyksiä / apua, voit käyttää Dolibarr foorumilla:
    %s -HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr. -HelpCenterDesc2=Some of these resources are only available in english. +HelpCenterDesc1=Tässä on joitain resursseja, joilla saat apua ja tukea Dolibarrin kanssa. +HelpCenterDesc2=Osa näistä resursseista on saatavana vain englanniksi . CurrentMenuHandler=Nykyinen valikko handler MeasuringUnit=Mittayksikkö LeftMargin=Vasen marginaali TopMargin=Ylämarginaali PaperSize=Paperin koko Orientation=Orientaatio -SpaceX=Space X -SpaceY=Space Y +SpaceX=Tila X +SpaceY=Tila Y FontSize=Fontin koko Content=Sisällys -NoticePeriod=Notice period -NewByMonth=New by month +NoticePeriod=Huomautusaika +NewByMonth=Uusi kuukausittain Emails=Sähköpostit EMailsSetup=Sähköpostien asetukset -EMailsDesc=This page allows you to set parameters or options for email sending. -EmailSenderProfiles=Emails sender profiles -EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: %s) +EMailsDesc=Tällä sivulla voit asettaa parametreja tai vaihtoehtoja sähköpostin lähettämiselle. +EmailSenderProfiles=Sähköpostin lähettäjien profiilit +EMailsSenderProfileDesc=Voit pitää tämän osan tyhjänä. Jos kirjoitat joitain sähköposteja tähän, ne lisätään mahdollisten lähettäjien luetteloon yhdistelmäruutuun, kun kirjoitat uutta sähköpostia. +MAIN_MAIL_SMTP_PORT=SMTP / SMTPS-portti (oletusarvo php.ini-tiedostossa: %s ) +MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS-isäntä (oletusarvo php.ini-tiedostossa: %s ) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Portti (Ei määritelty PHP:hen Unix-tyyppisissä järjestelmissä) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems) -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent) -MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos) -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes) -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Suggest emails of employees (if defined) into the list of predefined recipient when writing a new email +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS-isäntä (ei määritelty PHP:ssa Unix-tyyppisissä järjestelmissä) +MAIN_MAIL_EMAIL_FROM=Lähettäjän sähköposti automaattisia sähköposteja varten (oletusarvo php.ini: %s ) +MAIN_MAIL_ERRORS_TO=Sähköpostiosoite, jota käytetään virheellisten sähköpostien palautusosoitteena (kentät Errors-To lähetetyissä sähköposteissa) +MAIN_MAIL_AUTOCOPY_TO= Kopioi (piilokopio) kaikki lähetetyt sähköpostit osoitteeseen +MAIN_DISABLE_ALL_MAILS=Poista kaikki sähköpostin lähettäminen käytöstä (testitarkoituksia tai esittelyjä varten) +MAIN_MAIL_FORCE_SENDTO=Lähetä kaikki sähköpostit (todellisten vastaanottajien sijasta testitarkoituksiin) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Ehdota työntekijöiden sähköposteja (jos määritelty) ennalta määritettyjen vastaanottajien luetteloon uutta sähköpostia kirjoittaessasi MAIN_MAIL_SENDMODE=Sähköpostin lähetystapa -MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication) -MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication) +MAIN_MAIL_SMTPS_ID=SMTP-tunnus (jos lähettävä palvelin vaatii todennuksen) +MAIN_MAIL_SMTPS_PW=SMTP-salasana (jos lähettävä palvelin vaatii todennuksen) MAIN_MAIL_EMAIL_TLS=TLS (SSL) - salaus MAIN_MAIL_EMAIL_STARTTLS=TLS (STARTTLS) - salaus MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés MAIN_MAIL_EMAIL_DKIM_ENABLED=Käytä DKIM:iä sähköpostin allekirjoituksen luontiin MAIN_MAIL_EMAIL_DKIM_DOMAIN=DKIM:in kanssa käytetty sähköpostidomain -MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Dkim-valitsimen nimi MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Henkilökohtainen avain DKIM-allekirjoitukseen MAIN_DISABLE_ALL_SMS=Poista SMS-viestit käytöstä (testitarkoituksessa tai demossa) MAIN_SMS_SENDMODE=SMS-viestien lähetystapa @@ -306,9 +306,9 @@ MAIN_MAIL_DEFAULT_FROMTYPE=Oletussähköpostiosoite käsin lähetettäessä (Kä UserEmail=Käyttäjän sähköposti CompanyEmail=Yrityksen sähköposti FeatureNotAvailableOnLinux=Ominaisuus ei ole Unix-koneissa. Testaa sendmail ohjelmaa paikallisesti. -FixOnTransifex=Fix the translation on the online translation platform of project -SubmitTranslation=If the translation for this language is not complete or you find errors, you can correct this by editing files in directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or, if you are a developer, with a PR on github.com/Dolibarr/dolibarr +FixOnTransifex=Korjaa käännös projektin online-käännösalustalla +SubmitTranslation=Jos tämän kielen käännös ei ole täydellinen tai löydät virheitä, voit korjata tämän muokkaamalla tiedostoja hakemistossa langs / %s ja lähettämällä muutoksesi osoitteeseen www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=Jos tämän kielen käännös ei ole täydellinen tai löydät virheitä, voit korjata tämän muokkaamalla tiedostoja hakemistoon langs / %s ja lähettämällä muokatut tiedostot osoitteeseen dolibarr.org/forum tai, jos olet kehittäjä, PR:llä osoitteessa github.com/Dolibarr/dolibarr ModuleSetup=Moduuli asetukset ModulesSetup=Moduulit/Applikaatio asetukset ModuleFamilyBase=Järjestelmä @@ -328,22 +328,22 @@ MenuHandlers=Valikko käsitteleville MenuAdmin=Valikkoeditori DoNotUseInProduction=Älä käytä tuotannossa ThisIsProcessToFollow=Päivitysmenetelmä: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsAlternativeProcessToFollow=Tämä on vaihtoehtoinen asetus manuaaliseen käsittelyyn: StepNb=Vaihe %s -FindPackageFromWebSite=Find a package that provides the features you need (for example on the official web site %s). -DownloadPackageFromWebSite=Download package (for example from the official web site %s). -UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into your Dolibarr server directory: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:
    %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
    -InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    -InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=You can upload the .zip file of module package from here: +FindPackageFromWebSite=Etsi paketti, joka tarjoaa tarvittavat ominaisuudet (esimerkiksi virallisella verkkosivustolla %s). +DownloadPackageFromWebSite=Lataa paketti (esimerkiksi viralliselta verkkosivustolta %s). +UnpackPackageInDolibarrRoot=Pura pakatut tiedostot Dolibarr-palvelinhakemistoon: %s +UnpackPackageInModulesRoot=Ulkoisen moduulin käyttöönottoon/asentamiseksi pura pakatut tiedostot ulkoisille moduuleille tarkoitettuun palvelinhakemistoon:
    %s +SetupIsReadyForUse=Moduulin käyttöönotto on valmis. Sinun on kuitenkin otettava käyttöön ja määriteltävä moduuli sovelluksessasi siirtymällä sivun asetusmoduuleihin: %s . +NotExistsDirect=Vaihtoehtoista juurihakemistoa ei ole määritelty olemassa olevalle hakemistolle.
    +InfDirAlt=Versiosta 3 lähtien on mahdollista määrittää vaihtoehtoinen juurihakemisto. Tämän avulla voit tallentaa erilliseen hakemistoon laajennuksia ja mukautettuja malleja.
    Luo vain hakemisto Dolibarrin juurelle (esim. mukautettu).
    +InfDirExample=
    Sitten määrittele se tiedostossa conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/asennuspolun/sijainti/Dolibarr/htdocs/custom'
    Jos nämä rivit on kommentoitu "#"-merkillä, ottaaksesi nämä käyttöön, poista kommentti poistamalla "#"-merkki rivin alusta. +YouCanSubmitFile=Voit ladata moduulipaketin .zip-tiedoston täältä: CurrentVersion=Dolibarr nykyinen versio -CallUpdatePage=Browse to the page that updates the database structure and data: %s. +CallUpdatePage=Siirry sivulle, joka päivittää tietokannan rakenteen ja tiedot: %s. LastStableVersion=Viimeisin vakaa versio -LastActivationDate=Latest activation date -LastActivationAuthor=Latest activation author +LastActivationDate=Viimeisin aktivointipäivä +LastActivationAuthor=Viimeisin taho, joka on suorittanut aktivoinnin LastActivationIP=Viimeinen aktiivinen IP UpdateServerOffline=Palvelimen offline-päivitys WithCounter=Laskurin hallinta @@ -360,7 +360,7 @@ ServerNotAvailableOnIPOrPort=Palvelin ei ole käytettävissä osoitteessa %s DoTestServerAvailability=Testaa palvelinyhteys DoTestSend=Testaa lähetys DoTestSendHTML=Testaa HTML:n lähettäminen -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. +ErrorCantUseRazIfNoYearInMask=Virhe, ei voi käyttää vaihtoehtoa @ laskurin nollaamiseen vuosittain, jos jaksoa {yy} tai {yyyy} ei ole maskissa. ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Virhe ei voi käyttäjä vaihtoehto @ jos SEQUENCE (yy) (mm) tai (vvvv) (mm) ei mask. UMask=UMask parametri uusia tiedostoja Unix / Linux / BSD-tiedostojärjestelmää. UMaskExplanation=Tämän parametrin avulla voit määrittää käyttöoikeudet asettaa oletuksena tiedostoja luotu Dolibarr palvelimelle (aikana ladata esimerkiksi).
    Se on oktaali-arvo (esim. 0666 tarkoittaa, lukea ja kirjoittaa kaikki).
    Ce paramtre ne Sert pas sous un serveur Windows. @@ -368,56 +368,56 @@ SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and th UseACacheDelay= Viive cashing vienti vastehuippu sekuntia (0 tai tyhjä ei välimuisti) DisableLinkToHelpCenter=Piilota linkki "Tarvitsetko apua tai tukea" on kirjautumissivulla DisableLinkToHelp=Piilota linkki online apuun "%s" -AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed. -ConfirmPurge=Are you sure you want to execute this purge?
    This will permanently delete all your data files with no way to restore them (ECM files, attached files...). +AddCRIfTooLong=Automaattista tekstin rivitystä ei ole, liian pitkä teksti ei näy asiakirjoissa. Lisää tarvittaessa teksti-alueelle rivinvaihto. +ConfirmPurge=Haluatko varmasti suorittaa tämän puhdistuksen?
    Tämä poistaa kaikki datatiedostosi pysyvästi, eikä niitä voi palauttaa (ECM-tiedostot, liitetyt tiedostot ...). MinLength=Vähimmäispituus LanguageFilesCachedIntoShmopSharedMemory=.lang - tiedostot ladattu muistiin LanguageFile=Kielitiedosto -ExamplesWithCurrentSetup=Examples with current configuration +ExamplesWithCurrentSetup=Esimerkkejä nykyisestä kokoonpanosta ListOfDirectories=Luettelo OpenDocument malleja hakemistoja -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

    Put here full path of directories.
    Add a carriage return between eah directory.
    To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

    Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +ListOfDirectoriesForModelGenODT=Luettelo hakemistoista, jotka sisältävät mallitiedostoja OpenDocument-muodossa.

    Laita tähän hakemistojen täydellinen polku.
    Lisää rivinvaihto eah-hakemiston välillä.
    Jos haluat lisätä GED-moduulin hakemiston, lisää tähän DOL_DATA_ROOT/ecm/sinunhakemistonnimi .

    Näissä hakemistoissa olevien tiedostojen on lopputtava .odt tai .ods . +NumberOfModelFilesFound=Näistä hakemistoista löydettyjen ODT / ODS-mallitiedostojen määrä +ExampleOfDirectoriesForModelGen=Esimerkkejä syntaksista:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=
    Jos haluat tietää, miten voit luoda odt asiakirjamalleja, ennen kuin laitat ne näistä hakemistoista, lue wiki dokumentaatio: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=Etunimi/Sukunimi - sijainti DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values: KeyForWebServicesAccess=Avain käyttää Web Services (parametri "dolibarrkey" in WebServices) TestSubmitForm=Tulo testi lomake -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever the user choice. Also this menu manager specialized for smartphones does not work on all smartphone. Use another menu manager if you experience problems with yours. +ThisForceAlsoTheme=Tämän valikkohallinnan käyttäminen käyttää myös omaa teemaansa käyttäjän valinnasta riippumatta. Tämä älypuhelimille tarkoitettu valikkohallinta ei välttämättä toimi kaikissa älypuhelimissa. Käytä toista valikonhallintaohjelmaa, jos sinulla on ongelmia omasi kanssa. ThemeDir=Skins hakemisto ConnectionTimeout=Yhteyden aikakatkaisu ResponseTimeout=Vastauksen aikakatkaisu SmsTestMessage=Test viesti __ PHONEFROM__ ja __ PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. +ModuleMustBeEnabledFirst=Moduuli %s on ensin otettava käyttöön, jos tarvitset tätä ominaisuutta. SecurityToken=Avain turvallinen URL -NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external vendor, but you can find some on %s +NoSmsEngine=Ei tekstiviestien lähettäjien hallintaa. Tekstiviestien lähettäjien hallintaa ei ole asennettu oletusjakelun kanssa, koska ne riippuvat ulkoisesta toimittajasta, mutta joitain löydät osoitteesta %s PDF=PDF -PDFDesc=Global options for PDF generation -PDFAddressForging=Rules for address section +PDFDesc=Globaalit vaihtoehdot PDF-tiedostojen luomista varten +PDFAddressForging=Osoiteosuuden säännöt HideAnyVATInformationOnPDF=Piilota kaikki myyntiveroihin/ALViin liittyvä tieto -PDFRulesForSalesTax=Rules for Sales Tax / VAT -PDFLocaltax=Rules for %s -HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT -HideDescOnPDF=Hide products description -HideRefOnPDF=Hide products ref. -HideDetailsOnPDF=Hide product lines details -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position +PDFRulesForSalesTax=Myyntiveron / alv:n säännöt +PDFLocaltax=Säännöt %s: lle +HideLocalTaxOnPDF=Piilota %s-taksa sarakkeessa Myyntivero / ALV +HideDescOnPDF=Piilota tuotekuvaus +HideRefOnPDF=Piilota tuotteiden viite +HideDetailsOnPDF=Piilota tuoterivien tiedot +PlaceCustomerAddressToIsoLocation=Käytä ranskan vakioasemaa (La Poste) asiakasosoitteen sijaintiin Library=Kirjasto UrlGenerationParameters=Parametrit turvata URL SecurityTokenIsUnique=Käytä ainutlaatuinen securekey parametri jokaiselle URL EnterRefToBuildUrl=Kirjoita viittaus objektin %s GetSecuredUrl=Hanki lasketaan URL -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +ButtonHideUnauthorized=Piilota luvattomat toimintopainikkeet myös sisäisille käyttäjille (muuten harmaat) OldVATRates=Vanha ALV-prosentti NewVATRates=Uusi ALV-prosentti -PriceBaseTypeToChange=Modify on prices with base reference value defined on +PriceBaseTypeToChange=Muuta hintoja, joiden perusviitearvo on määritelty MassConvert=Käynnistä massamuutos -PriceFormatInCurrentLanguage=Price Format In Current Language +PriceFormatInCurrentLanguage=Hintamuoto nykyisellä kielellä String=Merkkijono -String1Line=String (1 line) +String1Line=Merkkijono (1 rivi) TextLong=Pitkä teksti -TextLongNLines=Long text (n lines) +TextLongNLines=Pitkä teksti (n riviä) HtmlText=Html teksti Int=Kokonaisluku Float=Liukuluku @@ -432,18 +432,18 @@ ExtrafieldSelect = Valitse lista ExtrafieldSelectList = Valitse taulusta ExtrafieldSeparator=Erotin (ei kenttä) ExtrafieldPassword=Salasana -ExtrafieldRadio=Radio buttons (one choice only) +ExtrafieldRadio=Radiopainikkeet (vain yksi valinta) ExtrafieldCheckBox=Valintaruudut -ExtrafieldCheckBoxFromList=Checkboxes from table -ExtrafieldLink=Link to an object -ComputedFormula=Computed field +ExtrafieldCheckBoxFromList=Valintaruudut taulusta +ExtrafieldLink=Linkki objektiin +ComputedFormula=Laskettu kenttä ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
    WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
    Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

    Example of formula:
    $object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

    Example to reload object
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

    Other example of formula to force load of object and its parent object:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetchNoCompute($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetchNoCompute($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' -Computedpersistent=Store computed field -ComputedpersistentDesc=Computed extra fields will be stored in the database, however, the value will only be recalculated when the object of this field is changed. If the computed field depends on other objects or global data this value might be wrong!! -ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).
    Set 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value) +Computedpersistent=Tallenna laskettu kenttä +ComputedpersistentDesc=Lasketut ylimääräiset kentät tallennetaan tietokantaan, mutta arvo lasketaan uudelleen vasta, kun tämän kentän kohdetta muutetaan. Jos laskettu kenttä riippuu muista kohteista tai globaaleista tiedoista, tämä arvo saattaa olla väärä!! +ExtrafieldParamHelpPassword=Jos jätät tämän kentän tyhjäksi, tämä arvo tallennetaan ilman salausta (kenttä on piilotettava vain tähdellä näytöllä).
    Aseta 'auto' käyttämään oletussalaussääntöä salasanan tallentamiseksi tietokantaan (silloin luettu arvo on vain hash, ei mitään tapaa hakea alkuperäistä arvoa) ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    code3,value3
    ...

    In order to have the list depending on another complementary attribute list:
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    In order to have the list depending on another list:
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... -ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')

    for example:
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpcheckbox=Arvoluettelon on oltava rivejä, joissa on muoto: avain,arvo (missä avain ei voi olla 0)

    esimerkiksi:
    1,arvo1
    2,arvo2
    3,arvo3
    ... +ExtrafieldParamHelpradio=Arvoluettelon on oltava rivejä, joissa on muoto: avain,arvo (missä avain ei voi olla 0)

    esimerkiksi:
    1,arvo1
    2,arvo2
    3,arvo3
    ... ExtrafieldParamHelpsellist=List of values comes from a table
    Syntax: table_name:label_field:id_field::filter
    Example: c_typent:libelle:id::filter

    - id_field is necessarly a primary int key
    - filter can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter which is the current id of current object
    To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=List of values comes from a table
    Syntax: table_name:label_field:id_field::filter
    Example: c_typent:libelle:id::filter

    filter can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter witch is the current id of current object
    To do a SELECT in filter use $SEL$
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
    Syntax: ObjectName:Classpath @@ -451,34 +451,34 @@ ExtrafieldParamHelpSeparator=Keep empty for a simple separator
    Set this to 1 LibraryToBuildPDF=Käytettävä kirjasto PDF:n luomiseen LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:
    1: local tax apply on products and services without vat (localtax is calculated on amount without tax)
    2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)
    3: local tax apply on products without vat (localtax is calculated on amount without tax)
    4: local tax apply on products including vat (localtax is calculated on amount + main vat)
    5: local tax apply on services without vat (localtax is calculated on amount without tax)
    6: local tax apply on services including vat (localtax is calculated on amount + tax) SMS=Tekstiviesti -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s +LinkToTestClickToDial=Anna puhelinnumero, johon haluat soittaa, jotta saat linkin testata käyttäjän ClickToDial-URL-osoitetta %s RefreshPhoneLink=Päivitä linkki -LinkToTest=Clickable link generated for user %s (click phone number to test) +LinkToTest=Napsautettava linkki luotu käyttäjälle %s (testaa napsauttamalla puhelinnumeroa) KeepEmptyToUseDefault=Pidä tyhjänä käyttääksesi oletusarvoa -KeepThisEmptyInMostCases=In most cases, you can keep this field empy. +KeepThisEmptyInMostCases=Useimmissa tapauksissa voit pitää tämän kentän tyhjänä. DefaultLink=Oletuslinkki SetAsDefault=Aseta oletukseksi -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module -InstalledInto=Installed into directory %s +ValueOverwrittenByUserSetup=Varoitus, käyttäjäkohtainen asennus voi korvata tämän arvon (jokainen käyttäjä voi asettaa oman clicktodial-URL-osoitteen) +ExternalModule=Ulkoinen moduuli +InstalledInto=Asennettu hakemistoon %s BarcodeInitForThirdparties=Mass barcode init for third-parties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. InitEmptyBarCode=Init value for next %s empty records EraseAllCurrentBarCode=Poista kaikki nykyiset viivakoodi arvot -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? +ConfirmEraseAllCurrentBarCode=Haluatko varmasti poistaa kaikki nykyiset viivakoodiarvot? AllBarcodeReset=Kaikki viivakoodi arvot on poistettu -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup. +NoBarcodeNumberingTemplateDefined=Viivakoodimallin numerointia ei ole otettu käyttöön viivakoodimoduulin asetuksissa. EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer, such as company address or manager names (in addition to professional ids, company capital and VAT number). -NoDetails=No additional details in footer +ShowDetailsInPDFPageFoot=Lisää alatunnisteeseen lisätietoja, kuten yrityksen osoite tai esimiehen nimi (ammattitunnusten, yrityksen pääoman ja ALV-numeron lisäksi). +NoDetails=Alatunnisteessa ei ole lisätietoja DisplayCompanyInfo=Näytä yrityksen osoitetiedot -DisplayCompanyManagers=Display manager names +DisplayCompanyManagers=Näytä managerien nimet DisplayCompanyInfoAndManagers=Näytä yrityksen osoite ja päälliköiden nimet EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible. ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code ModuleCompanyCodeSupplierAquarium=%s followed by vendor code for a vendor accounting code -ModuleCompanyCodePanicum=Return an empty accounting code. +ModuleCompanyCodePanicum=Palauta tyhjä kirjanpitokoodi. ModuleCompanyCodeDigitaria=Returns a compound accounting code according to the name of the third party. The code consists of a prefix that can be defined in the first position followed by the number of characters defined in the third party code. ModuleCompanyCodeCustomerDigitaria=%s followed by the truncated customer name by the number of characters: %s for the customer accounting code. ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting code. @@ -493,26 +493,26 @@ WarningPHPMail2=If your email SMTP provider need to restrict email client to som WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask you domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. ClickToShowDescription=Klikkaa näyttääksesi kuvaus DependsOn=Tämä moduuli tarvitsee moduulit -RequiredBy=This module is required by module(s) +RequiredBy=Moduuli (t) vaativat tämän moduulin TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field. PageUrlForDefaultValues=You must enter the relative path of the page URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value. PageUrlForDefaultValuesCreate=
    Example:
    For the form to create a new third party, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/", so use path like mymodule/mypage.php and not custom/mymodule/mypage.php.
    If you want default value only if url has some parameter, you can use %s PageUrlForDefaultValuesList=
    Example:
    For the page that lists third parties, it is %s.
    For URL of external modules installed into custom directory, do not include the "custom/" so use a path like mymodule/mypagelist.php and not custom/mymodule/mypagelist.php.
    If you want default value only if url has some parameter, you can use %s AlsoDefaultValuesAreEffectiveForActionCreate=Also note that overwritting default values for form creation works only for pages that were correctly designed (so with parameter action=create or presend...) -EnableDefaultValues=Enable customization of default values -EnableOverwriteTranslation=Enable usage of overwritten translation +EnableDefaultValues=Ota käyttöön oletusarvojen mukauttaminen +EnableOverwriteTranslation=Salli ylikirjoitettujen käännösten käyttäminen GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. Field=Kenttä -ProductDocumentTemplates=Document templates to generate product document -FreeLegalTextOnExpenseReports=Free legal text on expense reports -WatermarkOnDraftExpenseReports=Watermark on draft expense reports -AttachMainDocByDefault=Set this to 1 if you want to attach main document to email by default (if applicable) +ProductDocumentTemplates=Asiakirjamallit tuotedokumentin luomiseksi +FreeLegalTextOnExpenseReports=Ilmainen lakiteksti kuluraporteissa +WatermarkOnDraftExpenseReports=Vesileima kuluraporttiluonnoksissa +AttachMainDocByDefault=Määritä tämä arvoksi 1, jos haluat liittää pääasiakirjan oletuksena sähköpostiin (jos käytettävissä) FilesAttachedToEmail=Liitä tiedosto SendEmailsReminders=Lähetä asialista muistutus sähköpostilla davDescription=WebDAV-palvelimen asetukset DAVSetup=DAV-moduulin asetukset -DAV_ALLOW_PRIVATE_DIR=Enable the generic private directory (WebDAV dedicated directory named "private" - login required) +DAV_ALLOW_PRIVATE_DIR=Ota käyttöön yleinen yksityinen hakemisto (WebDAV: n oma hakemisto nimeltä "yksityinen" - vaaditaan sisäänkirjautuminen) DAV_ALLOW_PRIVATE_DIRTooltip=The generic private directory is a WebDAV directory anybody can access with its application login/pass. DAV_ALLOW_PUBLIC_DIR=Enable the generic public directory (WebDAV dedicated directory named "public" - no login required) DAV_ALLOW_PUBLIC_DIRTooltip=The generic public directory is a WebDAV directory anybody can access (in read and write mode), with no authorization required (login/password account). @@ -521,26 +521,26 @@ DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploade # Modules Module0Name=Käyttäjät & ryhmät Module0Desc=Käyttäjien / Työntekijöiden ja ryhmien hallinta -Module1Name=Third Parties -Module1Desc=Companies and contacts management (customers, prospects...) +Module1Name=Kolmannet osapuolet +Module1Desc=Yritysten ja kontaktien hallinta (asiakkaat, potentiaaliset asiakkaat ...) Module2Name=Kaupalliset Module2Desc=Kaupallinen hallinnointi Module10Name=Kirjanpito (yksinkertainen) -Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. +Module10Desc=Yksinkertaiset kirjanpitoraportit (päiväkirjat, liikevaihto) tietokannan sisällön perusteella. Ei käytä mitään kirjanpitotaulukkoa. Module20Name=Ehdotukset Module20Desc=Kaupalliset ehdotuksia hallinto - -Module22Name=Mass Emailings +Module22Name=Joukkoviestit Module22Desc=Manage bulk emailing Module23Name=Energia Module23Desc=Energiakulutuksen seuranta Module25Name=Myyntitilaukset Module25Desc=Asiakastilausten hallinnointi Module30Name=Laskut -Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers +Module30Desc=Asiakkaiden laskujen ja hyvityslaskujen hallinta. Tavarantoimittajien laskujen ja hyvityslaskujen hallinta Module40Name=Toimittajat -Module40Desc=Vendors and purchase management (purchase orders and billing of supplier invoices) +Module40Desc=Toimittajien ja ostojen hallinta (ostotilaukset ja toimittajien laskutus) Module42Name=Debug Logit -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module42Desc=Kirjaustoiminnot (tiedosto, syslog, ...). Tällaiset lokit ovat teknisiä/virheenkorjaustarkoituksia varten. Module49Name=Toimitus Module49Desc=Editors' hallinta Module50Name=Tuotteet @@ -552,27 +552,27 @@ Module52Desc=Varastonhallinta Module53Name=Palvelut Module53Desc=Palvelunhallinta Module54Name=Sopimukset/Tilaukset -Module54Desc=Management of contracts (services or recurring subscriptions) +Module54Desc=Sopimusten hallinta (palvelut tai toistuvat tilaukset) Module55Name=Viivakoodit Module55Desc=Viivakoodien hallinta -Module56Name=Payment by credit transfer -Module56Desc=Management of payment of suppliers by Credit Transfer orders. It includes generation of SEPA file for European countries. -Module57Name=Payments by Direct Debit -Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries. +Module56Name=Maksu tilisiirrolla +Module56Desc=Toimittajien maksujen hallinta tilisiirtotilauksilla. Se sisältää SEPA-tiedoston luomisen Euroopan maille. +Module57Name=Maksut suoraveloituksella +Module57Desc=Suoraveloitusmääräysten hallinta. Se sisältää SEPA-tiedoston luomisen Euroopan maille. Module58Name=ClickToDial Module58Desc=ClickToDial yhdentyminen -Module60Name=Stickers -Module60Desc=Management of stickers +Module60Name=Tarrat +Module60Desc=Tarrojen hallinta Module70Name=Interventions Module70Desc=Interventions hallinto Module75Name=Kulut ja matka muistiinpanot Module75Desc=Kulut ja matkat muistiinpanojen hallinnointi Module80Name=Lähetykset -Module80Desc=Shipments and delivery note management +Module80Desc=Lähetykset ja lähetysluetteloiden hallinta Module85Name=Pankkitilit ja käteisvarat Module85Desc=Pankkitilien ja käteistilien hallinnointi Module100Name=Ulkoinen sivusto -Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. +Module100Desc=Lisää linkki ulkoiseen verkkosivustoon päävalikkokuvakkeena. Verkkosivusto näkyy kehyksessä ylävalikossa. Module105Name=Mailman ja SIP Module105Desc=Mailman tai spip liitäntä jäsen moduuli Module200Name=LDAP @@ -580,20 +580,20 @@ Module200Desc=LDAP-hakemiston synkronointi Module210Name=PostNuke Module210Desc=PostNuke yhdentyminen Module240Name=Tietojen vienti -Module240Desc=Tool to export Dolibarr data (with assistance) +Module240Desc=Työkalu Dolibarr-tietojen viemiseen (avustuksella) Module250Name=Tietojen tuonti -Module250Desc=Tool to import data into Dolibarr (with assistance) +Module250Desc=Työkalu tietojen tuomiseen Dolibarriin (avustuksella) Module310Name=Jäsenet Module310Desc=Säätiön jäsenten hallintaan Module320Name=RSS-syöte -Module320Desc=Add a RSS feed to Dolibarr pages -Module330Name=Bookmarks & Shortcuts -Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access -Module400Name=Projects or Leads +Module320Desc=Lisää RSS-syöte Dolibarr-sivuille +Module330Name=Kirjanmerkit ja pikavalinnat +Module330Desc=Luo aina käytettävissä olevia pikakuvakkeita sisäisille tai ulkoisille sivuille, joilla käyt usein +Module400Name=Projektit tai liidit Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. Module410Name=Webcalendar Module410Desc=Webcalendar yhdentyminen -Module500Name=Taxes & Special Expenses +Module500Name=Verot ja erityiskustannukset Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...) Module510Name=Palkat Module510Desc=Record and track employee payments @@ -602,14 +602,14 @@ Module520Desc=Lainojen hallinnointi Module600Name=Notifications on business event Module600Desc=Send email notifications triggered by a business event: per user (setup defined on each user), per third-party contacts (setup defined on each third party) or by specific emails Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders for agenda events, go into the setup of module Agenda. -Module610Name=Product Variants +Module610Name=Tuotevaihtoehdot Module610Desc=Creation of product variants (color, size etc.) Module700Name=Lahjoitukset Module700Desc=Lahjoituksien hallinnointi -Module770Name=Expense Reports +Module770Name=Kuluraportit Module770Desc=Manage expense reports claims (transportation, meal, ...) -Module1120Name=Vendor Commercial Proposals -Module1120Desc=Request vendor commercial proposal and prices +Module1120Name=Toimittajan kaupalliset ehdotukset +Module1120Desc=Pyydä myyjän kaupallista ehdotusta ja hintoja Module1200Name=Mantis Module1200Desc=Mantis yhdentyminen Module1520Name=Dokumentin luonti @@ -617,7 +617,7 @@ Module1520Desc=Mass email document generation Module1780Name=Merkit/Kategoriat Module1780Desc=Luo merkki/kategoria (tuotteet, asiakkaat, toimittajat, kontaktit tai jäsenet) Module2000Name=FCKeditor -Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) +Module2000Desc=Salli tekstikenttien muokkaaminen / alustaminen CKEditorilla (html) Module2200Name=Dynaamiset Hinnat Module2200Desc=Use maths expressions for auto-generation of prices Module2300Name=Ajastetut työt @@ -626,11 +626,11 @@ Module2400Name=Events/Agenda Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management. Module2500Name=DMS / ECM Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) +Module2600Name=API / verkkopalvelut (SOAP-palvelin) +Module2600Desc=Ota käyttöön Dolibarr SOAP -palvelin, joka tarjoaa API-palveluita +Module2610Name=API / verkkopalvelut (REST-palvelin) +Module2610Desc=Ota käyttöön API-palveluita tarjoava Dolibarr REST -palvelin +Module2660Name=Kutsu verkkopalveluita (SOAP-asiakas) Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) Module2700Name=Gravatar Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access @@ -647,8 +647,8 @@ Module6000Name=Työtehtävät Module6000Desc=Workflow management (automatic creation of object and/or automatic status change) Module10000Name=Nettisivut Module10000Desc=Create websites (public) with a WYSIWYG editor. This is a webmaster or developer oriented CMS (it is better to know HTML and CSS language). Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the internet with your own domain name. -Module20000Name=Leave Request Management -Module20000Desc=Define and track employee leave requests +Module20000Name=Poissaolopyyntöjen hallinta +Module20000Desc=Määrittele ja seuraa työntekijöiden poissaolopyyntöjä Module39000Name=Product Lots Module39000Desc=Lots, serial numbers, eat-by/sell-by date management for products Module40000Name=Multicurrency @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Vaalit, Kysely vai Äänestys Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Katteet -Module59000Desc=Moduuli katteiden hallintaan +Module59000Desc=Module to follow margins Module60000Name=Komissiot Module60000Desc=Moduuli komissioiden hallintaan Module62000Name=Incoterm-ehdot @@ -749,17 +749,17 @@ Permission142=Create/modify all projects and tasks (also private projects for wh Permission144=Delete all projects and tasks (also private projects i am not contact for) Permission146=Lue tarjoajien Permission147=Lue stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders +Permission151=Lue suoraveloitusmaksumääräykset +Permission152=Luo / muokkaa suoraveloituksen maksumääräyksiä +Permission153=Lähetä / välitä suoraveloitusmaksumääräyksiä Permission154=Record Credits/Rejections of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions +Permission161=Lue sopimukset / tilaukset +Permission162=Luo / muokkaa sopimuksia / tilauksia +Permission163=Aktivoi palvelu / tilaus sopimukselle +Permission164=Poista palvelu / tilaus sopimukselta käytöstä +Permission165=Poista sopimuksia / tilauksia Permission167=Vie Sopimukset -Permission171=Read trips and expenses (yours and your subordinates) +Permission171=Lue matkat ja kulut (omat ja alaisten) Permission172=Luo/muuta matkat ja kulut Permission173=Poista matkat ja kulut Permission174=Lue kaikki Matkat ja kulut @@ -767,12 +767,12 @@ Permission178=Vie matkat ja kulut Permission180=Lue toimittajat Permission181=Lue ostotilaukset Permission182=Luo/Muokkaa ostotilauksia -Permission183=Validate purchase orders +Permission183=Vahvista ostotilaukset Permission184=Hyväksy ostotilaukset -Permission185=Order or cancel purchase orders -Permission186=Receive purchase orders -Permission187=Close purchase orders -Permission188=Cancel purchase orders +Permission185=Tilaa tai peruuta ostotilaukset +Permission186=Vastaanota ostotilauksia +Permission187=Sulje ostotilaukset +Permission188=Peruuta ostotilaukset Permission192=Luo rivit Permission193=Peruuta rivit Permission194=Read the bandwidth lines @@ -790,7 +790,7 @@ Permission221=Lue emailings Permission222=Luoda / muuttaa emailings (aihe, vastaanottajat ...) Permission223=Validate emailings (avulla lähetys) Permission229=Poista emailings -Permission237=View recipients and info +Permission237=Näytä vastaanottajat ja tiedot Permission238=Manuaalinen viestien lähetys Permission239=Delete mailings after validation or sent Permission241=Lue tuoteryhmät @@ -820,7 +820,7 @@ Permission300=Lue viivakoodit Permission301=Luo/Muokkaa viivakoodeja Permission302=Poista viivakoodeja Permission311=Lue palvelut -Permission312=Assign service/subscription to contract +Permission312=Määritä palvelu / tilaus sopimukseen Permission331=Lue kirjanmerkit Permission332=Luoda / muuttaa kirjanmerkkejä Permission333=Poista kirjanmerkkien @@ -837,11 +837,11 @@ Permission401=Lue alennukset Permission402=Luoda / muuttaa alennukset Permission403=Validate alennukset Permission404=Poista alennukset -Permission430=Use Debug Bar -Permission511=Read payments of salaries (yours and subordinates) +Permission430=Käytä virheenkorjauspalkkia +Permission511=Lue palkkamaksut (omat ja alaisten) Permission512=Luo/Muokkaa palkanmaksuja Permission514=Poista palkanmaksuja -Permission517=Read payments of salaries of everybody +Permission517=Lue kaikkien palkkamaksut Permission519=Vie palkat Permission520=Lue Lainat Permission522=Luo/muokkaa Lainat @@ -863,9 +863,9 @@ Permission609=Delete stickers Permission650=Lue materiaaliluettelo Permission651=Luo/päivitä materiaaliluettelo Permission652=Poista materiaaliluettelo -Permission660=Read Manufacturing Order (MO) -Permission661=Create/Update Manufacturing Order (MO) -Permission662=Delete Manufacturing Order (MO) +Permission660=Lue valmistustilaus (MO) +Permission661=Luo / päivitä valmistustilaus (MO) +Permission662=Poista valmistustilaus (MO) Permission701=Lue lahjoitukset Permission702=Luoda / muuttaa lahjoitusten Permission703=Poista lahjoitukset @@ -875,40 +875,40 @@ Permission773=Poista kuluraportit Permission774=Read all expense reports (even for user not subordinates) Permission775=Hyväksy kuluraportit Permission776=Maksa kuluraportit -Permission777=Read expense reports of everybody -Permission778=Create/modify expense reports of everybody +Permission777=Lue kaikkien kuluraportit +Permission778=Luo / muokkaa kaikkien kuluraportteja Permission779=Kuluraporttien vienti Permission1001=Lue varastot Permission1002=Luo/muuta varastoja Permission1003=Poista varastoja Permission1004=Lue varastossa liikkeitä Permission1005=Luoda / muuttaa varastossa liikkeitä -Permission1101=Read delivery receipts -Permission1102=Create/modify delivery receipts -Permission1104=Validate delivery receipts -Permission1109=Delete delivery receipts -Permission1121=Read supplier proposals -Permission1122=Create/modify supplier proposals -Permission1123=Validate supplier proposals -Permission1124=Send supplier proposals -Permission1125=Delete supplier proposals -Permission1126=Close supplier price requests +Permission1101=Lue toimituskuitit +Permission1102=Luo / muokkaa toimituskuitteja +Permission1104=Vahvista toimituskuitit +Permission1109=Poista toimituskuitit +Permission1121=Lue toimittajan ehdotukset +Permission1122=Luo / muokkaa toimittajan ehdotuksia +Permission1123=Vahvista toimittajan ehdotukset +Permission1124=Lähetä toimittajan ehdotuksia +Permission1125=Poista toimittajan ehdotukset +Permission1126=Sulje toimittajan hintapyynnöt Permission1181=Lue toimittajat Permission1182=Lue ostotilaukset Permission1183=Luo/Muokkaa ostotilauksia -Permission1184=Validate purchase orders +Permission1184=Vahvista ostotilaukset Permission1185=Hyväksy ostotilaukset Permission1186=Lähetä ostotilaukset Permission1187=Tilausvahvistus Permission1188=Poista ostotilaus -Permission1189=Check/Uncheck a purchase order reception +Permission1189=Valitse / poista valinta ostotilauksen vastaanotolta Permission1190=Hyväksy (toinen vaihe) ostotilaukset -Permission1191=Export supplier orders and their attributes +Permission1191=Vie toimittajan tilaukset ja niiden määritteet Permission1201=Hanki seurauksena vienti Permission1202=Luo / Muuta vienti Permission1231=Lue toimittajien laskut Permission1232=Luo/Muokkaa toimittajien laskuja -Permission1233=Validate vendor invoices +Permission1233=Vahvista myyjän laskut Permission1234=Poista toimittajien laskuja Permission1235=Lähetä toimittajien laskut sähköpostilla Permission1236=Export vendor invoices, attributes and payments @@ -917,8 +917,8 @@ Permission1251=Suorita massa tuonnin ulkoisten tiedot tietokantaan (tiedot kuorm Permission1321=Vienti asiakkaan laskut, ominaisuudet ja maksut Permission1322=Avaa uudelleen maksettu lasku Permission1421=Export sales orders and attributes -Permission1521=Read documents -Permission1522=Delete documents +Permission1521=Lue asiakirjat +Permission1522=Poista asiakirjat Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to) Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event) Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event) @@ -933,41 +933,41 @@ Permission2515=Asiakirjojen hakemistoasetukset Permission2801=Käytä FTP ohjelmaa lukutilassa (vain selain ja lataukset) Permission2802=Käytä FTP ohjelmaa kirjoitustilassa (poista tai päivitä tiedostot) Permission3200=Read archived events and fingerprints -Permission3301=Generate new modules +Permission3301=Luo uusia moduuleja Permission4001=Selaa työntekijöitä Permission4002=Luo työntekijä Permission4003=Poista työntekijöitä Permission4004=Työntekijän tietojen vienti -Permission10001=Read website content -Permission10002=Create/modify website content (html and javascript content) -Permission10003=Create/modify website content (dynamic php code). Dangerous, must be reserved to restricted developers. -Permission10005=Delete website content -Permission20001=Read leave requests (your leave and those of your subordinates) -Permission20002=Create/modify your leave requests (your leave and those of your subordinates) +Permission10001=Lue verkkosivuston sisältö +Permission10002=Luo / muokkaa verkkosivuston sisältöä (HTML- ja Javascript-sisältö) +Permission10003=Luo / muokkaa verkkosivuston sisältöä (dynaaminen php-koodi). Vaarallinen, on varattava rajoitetuille kehittäjille. +Permission10005=Poista verkkosivuston sisältö +Permission20001=Lue poissaolopyynnöt (omat ja alaisten poissaolot) +Permission20002=Luo / muokkaa poissaolopyyntöjäsi (omat ja alaisten poissaolot) Permission20003=Poista poissaolopyynnöt -Permission20004=Read all leave requests (even of user not subordinates) -Permission20005=Create/modify leave requests for everybody (even of user not subordinates) -Permission20006=Admin leave requests (setup and update balance) +Permission20004=Lue kaikki poissaolopyynnöt (myös käyttäjien, jotka eivät ole alaisiasi) +Permission20005=Luo / muokkaa kaikkien poissaolopyyntöjä (myös käyttäjien, jotka eivät ole alaisiasi) +Permission20006=Poissaolopyyntöjen hallinnointi (saldojen määritys ja päivitys) Permission20007=Hyväksy poissaolopyynnöt Permission23001=Selaa ajastetut työt Permission23002=Luo/päivitä Ajastettu työ Permission23003=Poista Ajastettu työ Permission23004=Suorita Ajastettu työ -Permission50101=Use Point of Sale (SimplePOS) -Permission50151=Use Point of Sale (TakePOS) +Permission50101=Käytä myyntipistettä (SimplePOS) +Permission50151=Käytä myyntipistettä (TakePOS) Permission50201=Lue liiketoimet Permission50202=Tuo liiketoimet -Permission50330=Read objects of Zapier -Permission50331=Create/Update objects of Zapier -Permission50332=Delete objects of Zapier -Permission50401=Bind products and invoices with accounting accounts -Permission50411=Read operations in ledger -Permission50412=Write/Edit operations in ledger -Permission50414=Delete operations in ledger -Permission50415=Delete all operations by year and journal in ledger +Permission50330=Lue Zapier-kohteet +Permission50331=Luo / päivitä Zapier-kohteita +Permission50332=Poista Zapier-kohteita +Permission50401=Liitä tuotteet ja laskut kirjanpitotileihin +Permission50411=Lue toiminnot tilikirjasta +Permission50412=Kirjoitus- / muokkaustoiminnot tilikirjaan +Permission50414=Poista toiminnot tilikirjasta +Permission50415=Poista kaikki toiminnot vuoden ja päiväkirjan mukaan tilikirjasta Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define fiscal periods. Validate transactions and close fiscal periods. +Permission50430=Määritä tilikaudet. Vahvista liiketoimet ja sulje tilikaudet. Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -979,21 +979,21 @@ Permission55002=Luo/muokkaa äänestys Permission59001=Read commercial margins Permission59002=Define commercial margins Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources +Permission63001=Lue resursseja +Permission63002=Luo / muokkaa resursseja +Permission63003=Poista resurssit Permission63004=Link resources to agenda events -Permission64001=Allow direct printing -Permission67000=Allow printing of receipts +Permission64001=Salli suora tulostus +Permission67000=Salli kuittien tulostus Permission68001=Read intracomm report Permission68002=Create/modify intracomm report Permission68004=Delete intracomm report -Permission941601=Read receipts -Permission941602=Create and modify receipts -Permission941603=Validate receipts -Permission941604=Send receipts by email -Permission941605=Export receipts -Permission941606=Delete receipts +Permission941601=Lue kuitit +Permission941602=Luo ja muokkaa kuitteja +Permission941603=Vahvista kuitit +Permission941604=Lähetä kuitit sähköpostitse +Permission941605=Vie kuitit +Permission941606=Poista kuitit DictionaryCompanyType=Third-party types DictionaryCompanyJuridicalType=Third-party legal entities DictionaryProspectLevel=Prospect potential level for companies @@ -1227,17 +1227,17 @@ SeeLocalSendMailSetup=Katso paikallisen sendmail setup BackupDesc=A complete backup of a Dolibarr installation requires two steps. BackupDesc2=Backup the contents of the "documents" directory (%s) containing all uploaded and generated files. This will also include all the dump files generated in Step 1. This operation may last several minutes. BackupDesc3=Backup the structure and contents of your database (%s) into a dump file. For this, you can use the following assistant. -BackupDescX=The archived directory should be stored in a secure place. +BackupDescX=Arkistoitu hakemisto tulisi tallentaa turvalliseen paikkaan. BackupDescY=Luotu dump tiedosto on säilytettävä turvallisessa paikassa. -BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended. -RestoreDesc=To restore a Dolibarr backup, two steps are required. +BackupPHPWarning=Varmuuskopiointia ei voida taata tällä menetelmällä. Edellinen suositeltava. +RestoreDesc=Dolibarr-varmuuskopion palauttaminen edellyttää kahta vaihetta. RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (%s). RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.
    To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL vienti ForcedToByAModule=Tämä sääntö on pakko %s on aktivoitu moduuli -ValueIsForcedBySystem=This value is forced by the system. You can't change it. +ValueIsForcedBySystem=Järjestelmä pakottaa tämän arvon. Et voi muuttaa sitä. PreviousDumpFiles=Olemassa olevat varmuuskopiot -PreviousArchiveFiles=Existing archive files +PreviousArchiveFiles=Olemassa olevat arkistotiedostot WeekStartOnDay=Ensimmäinen viikonpäivä RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Program version %s differs from Database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Sinun on suoritettava tämä komento komentoriviltä jälkeen kirjautua kuori käyttäjän %s. @@ -1255,8 +1255,8 @@ MeteoPercentageModEnabled=Prosenttitila käytössä MeteoUseMod=Klikkaa käyttääksesi %s TestLoginToAPI=Testikirjautuminen ProxyDesc=Some features of Dolibarr require internet access. Define here the internet connection parameters such as access through a proxy server if necessary. -ExternalAccess=External/Internet Access -MAIN_PROXY_USE=Use a proxy server (otherwise access is direct to the internet) +ExternalAccess=Ulkoinen / sisäinen pääsy +MAIN_PROXY_USE=Käytä välityspalvelinta (muuten yhteys on suoraan Internetiin) MAIN_PROXY_HOST=Proxy-palvelin: Nimi/Osoite MAIN_PROXY_PORT=Proxy-palvelin: Portti MAIN_PROXY_USER=Proxy-palvelin: Käyttäjätunnus @@ -1296,11 +1296,11 @@ WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least fo NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

    %s TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exist in any language files -TitleNumberOfActivatedModules=Activated modules -TotalNumberOfActivatedModules=Activated modules: %s / %s +TitleNumberOfActivatedModules=Aktivoidut moduulit +TotalNumberOfActivatedModules=Aktivoidut moduulit: %s / %s YouMustEnableOneModule=Sinulla pitää olla ainakin 1 moduuli käytössä -ClassNotFoundIntoPathWarning=Class %s not found in PHP path -YesInSummer=Yes in summer +ClassNotFoundIntoPathWarning=Luokkaa %s ei löydy PHP-polusta +YesInSummer=Kyllä kesällä OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
    SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s @@ -1308,12 +1308,12 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Hakuoptimointi -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. -BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. -BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. +BrowserIsOK=Käytät verkkoselainta %s. Tämä selain on turvallisuuden ja suorituskyvyn kannalta ok. +BrowserIsKO=Käytät verkkoselainta %s. Tämän selaimen tiedetään olevan huono valinta turvallisuden, suorituskyvyn ja luotettavuuden kannalta. Suosittelemme Firefoxin, Chromen, Operan tai Safarin käyttöä. PHPModuleLoaded=PHP:n laajennus %sladattu -PreloadOPCode=Preloaded OPCode is used +PreloadOPCode=Esiladattua OPCode-koodia käytetään AddRefInList=Display Customer/Vendor ref. info list (select list or combobox) and most of hyperlink.
    Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp". AddAdressInList=Display Customer/Vendor adress info list (select list or combobox)
    Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp". AddEmailPhoneTownInContactList=Display Contact email (or phones if not defined) and town info list (select list or combobox)
    Contacts will appear with a name format of "Dupond Durand - dupond.durand@email.com - Paris" or "Dupond Durand - 06 07 59 65 66 - Paris" instead of "Dupond Durand". @@ -1321,21 +1321,21 @@ AskForPreferredShippingMethod=Ask for preferred shipping method for Third Partie FieldEdition=Alalla painos %s FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) GetBarCode=Hanki viivakoodi -NumberingModules=Numbering models -DocumentModules=Document models +NumberingModules=Numerointimallit +DocumentModules=Asiakirjamallit ##### Module password generation PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration +PasswordGenerationNone=Älä ehdota luotua salasanaa. Salasana on kirjoitettava manuaalisesti. +PasswordGenerationPerso=Palauta salasana henkilökohtaisesti määrittämäsi kokoonpanon mukaan. +SetupPerso=Kokoonpanosi mukaan PasswordPatternDesc=Password pattern description ##### Users setup ##### RuleForGeneratedPasswords=Rules to generate and validate passwords DisableForgetPasswordLinkOnLogonPage=Do not show the "Password Forgotten" link on the Login page UsersSetup=Käyttäjät moduuli setup -UserMailRequired=Email required to create a new user -UserHideInactive=Hide inactive users from all combo lists of users (Not recommended: this may means you won't be able to filter or search on old users on some pages) -UsersDocModules=Document templates for documents generated from user record +UserMailRequired=Uuden käyttäjän luomiseen tarvitaan sähköposti +UserHideInactive=Piilota passiiviset käyttäjät kaikista yhdistelmäluetteloista (ei suositella: tämä voi tarkoittaa, että et voi suodattaa tai etsiä vanhoja käyttäjiä joillakin sivuilla) +UsersDocModules=Asiakirjamallit käyttäjän tietueesta luotuihin asiakirjoihin GroupsDocModules=Document templates for documents generated from a group record ##### HRM setup ##### HRMSetup=Henkilöstöhallinta moduulin asetukset @@ -1344,13 +1344,13 @@ CompanySetup=Yritykset moduulin asetukset CompanyCodeChecker=Options for automatic generation of customer/vendor codes AccountCodeManager=Options for automatic generation of customer/vendor accounting codes NotificationsDesc=Email notifications can be sent automatically for some Dolibarr events.
    Recipients of notifications can be defined: -NotificationsDescUser=* per user, one user at a time. -NotificationsDescContact=* per third-party contacts (customers or vendors), one contact at a time. -NotificationsDescGlobal=* or by setting global email addresses in this setup page. -ModelModules=Document Templates -DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...) +NotificationsDescUser=* käyttäjää kohden, yksi käyttäjä kerrallaan. +NotificationsDescContact=* kolmansien osapuolten yhteystietoja (asiakkaita tai toimittajia) kohti, yksi yhteyshenkilö kerrallaan. +NotificationsDescGlobal=* tai asettamalla yleiset sähköpostiosoitteet tälle asetussivulle. +ModelModules=Asiakirjamallit +DocumentModelOdt=Luo asiakirjoja OpenDocument-malleista (.ODT / .ODS-tiedostot LibreOffice, OpenOffice, KOffice, TextEdit, ...) WatermarkOnDraft=Vesileima asiakirjaluonnos -JSOnPaimentBill=Activate feature to autofill payment lines on payment form +JSOnPaimentBill=Aktivoi ominaisuus maksurivien automaattiseen täyttämiseen maksulomakkeella CompanyIdProfChecker=Rules for Professional IDs MustBeUnique=Täytyy olla uniikki? MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ? @@ -1391,7 +1391,7 @@ SupplierProposalPDFModules=Price requests suppliers documents models FreeLegalTextOnSupplierProposal=Free text on price requests suppliers WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Pyydä lähdevarasto tilaukselle ##### Suppliers Orders ##### BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order ##### Orders ##### @@ -1502,23 +1502,23 @@ LDAPSetupForVersion2=LDAP-palvelin määritetty versio 2 LDAPDolibarrMapping=Dolibarr Mapping LDAPLdapMapping=LDAP Mapping LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example: uid +LDAPFieldLoginExample=Esimerkki: uid LDAPFilterConnection=Hakusuodatin -LDAPFilterConnectionExample=Example: &(objectClass=inetOrgPerson) +LDAPFilterConnectionExample=Esimerkki: &(objectClass=inetOrgPerson) LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example: samaccountname +LDAPFieldLoginSambaExample=Esimerkki: samaccountname LDAPFieldFullname=Koko nimi -LDAPFieldFullnameExample=Example: cn +LDAPFieldFullnameExample=Esimerkki: cn LDAPFieldPasswordNotCrypted=Salaamaton salasana LDAPFieldPasswordCrypted=Salattu salasana -LDAPFieldPasswordExample=Example: userPassword -LDAPFieldCommonNameExample=Example: cn +LDAPFieldPasswordExample=Esimerkki: userPassword +LDAPFieldCommonNameExample=Esimerkki: cn LDAPFieldName=Nimi -LDAPFieldNameExample=Example: sn +LDAPFieldNameExample=Esimerkki: sn LDAPFieldFirstName=Etunimi -LDAPFieldFirstNameExample=Example: givenName +LDAPFieldFirstNameExample=Esimerkki: givenName LDAPFieldMail=Sähköpostiosoite -LDAPFieldMailExample=Example: mail +LDAPFieldMailExample=Esimerkki: mail LDAPFieldPhone=Työpuhelin LDAPFieldPhoneExample=Example: telephonenumber LDAPFieldHomePhone=Henkilökohtainen puhelin @@ -1587,16 +1587,16 @@ CompressionOfResources=Compression of HTTP responses CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers DefaultValuesDesc=Here you may define the default value you wish to use when creating a new record, and/or default filters or the sort order when you list records. -DefaultCreateForm=Default values (to use on forms) +DefaultCreateForm=Oletusarvot (käytettäväksi lomakkeissa) DefaultSearchFilters=Oletus hakusuodattimet DefaultSortOrder=Default sort orders DefaultFocus=Default focus fields -DefaultMandatory=Mandatory form fields +DefaultMandatory=Pakolliset lomakekentät ##### Products ##### ProductSetup=Tuotteet Moduuli setup ServiceSetup=Services-moduuli asennus ProductServiceSetup=Tuotteet ja palvelut moduulien asennus -NumberOfProductShowInSelect=Maximum number of products to show in combo select lists (0=no limit) +NumberOfProductShowInSelect=Yhdistelmäluetteloissa näytettävien tuotteiden enimmäismäärä (0 = ei rajoitusta) ViewProductDescInFormAbility=Display product descriptions in forms (otherwise shown in a tooltip popup) DoNotAddProductDescAtAddLines=Do not add product description (from product card) on submit add lines on forms OnProductSelectAddProductDesc=How to use the description of the products when adding a product as a line of a document @@ -1611,7 +1611,7 @@ SetDefaultBarcodeTypeProducts=Tuotteissa käytetty viivakoodin tyyppi SetDefaultBarcodeTypeThirdParties=Kolmansien osapuolien käyttämä viivakoodityyppi (oletus) UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration +ProductOtherConf= Tuotteen / palvelun kokoonpano IsNotADir=ei ole hakemisto! ##### Syslog ##### SyslogSetup=Syslog-moduulin asetukset @@ -1689,7 +1689,7 @@ StockSetup='Varasto' - moduulin asetukset IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup. ##### Menu ##### MenuDeleted=Valikko poistettu -Menu=Menu +Menu=Valikko Menus=Valikot TreeMenuPersonalized=Henkikökohtaiset valikot NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry @@ -1787,8 +1787,8 @@ ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscel ApiProductionMode=Enable production mode (this will activate use of a cache for services management) ApiExporerIs=Voit selata ja testata APIs URL-osoitteesta OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. +ApiKey=API-avain +WarningAPIExplorerDisabled=API-selain on poistettu käytöstä. API-selainta ei tarvita API-palvelujen käyttämiseksi. Se on kehittäjän työkalu etsiä / testata REST API-rajapintaa. Jos tarvitset tätä työkalua, siirry moduulin API REST -asetuksiin aktivoidaksesi sen. ##### Bank ##### BankSetupModule=Pankki-moduulin asetukset FreeLegalTextOnChequeReceipts=Free text on check receipts @@ -1908,7 +1908,7 @@ MailToSendShipment=Lähetykset MailToSendIntervention=Interventions MailToSendSupplierRequestForQuotation=Tarjouspyyntö MailToSendSupplierOrder=Ostotilaukset -MailToSendSupplierInvoice=Vendor invoices +MailToSendSupplierInvoice=Toimittajan laskut MailToSendContract=Sopimukset MailToSendReception=Receptions MailToThirdparty=Sidosryhmät @@ -1988,45 +1988,45 @@ EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly NewEmailCollector=Uusi postinkerääjä EMailHost=IMAP-palvelin MailboxSourceDirectory=Sähköpostin lähdehakemisto -MailboxTargetDirectory=Mailbox target directory -EmailcollectorOperations=Operations to do by collector -EmailcollectorOperationsDesc=Operations are executed from top to bottom order +MailboxTargetDirectory=Postilaatikon kohdehakemisto +EmailcollectorOperations=Keräilijän tehtävät toiminnot +EmailcollectorOperationsDesc=Toiminnot suoritetaan ylhäältä alas järjestyksessä MaxEmailCollectPerCollect=Max number of emails collected per collect -CollectNow=Collect now +CollectNow=Kerää nyt ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? DateLastCollectResult=Date of latest collect try DateLastcollectResultOk=Date of latest collect success LastResult=Latest result EmailCollectorConfirmCollectTitle=Email collect confirmation EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? -NoNewEmailToProcess=No new email (matching filters) to process -NothingProcessed=Nothing done +NoNewEmailToProcess=Ei uutta käsiteltävää sähköpostia (vastaavat suodattimet) +NothingProcessed=Mitään ei tehty XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) RecordEvent=Record email event CreateLeadAndThirdParty=Create lead (and third party if necessary) CreateTicketAndThirdParty=Create ticket (and link to third party if it was loaded by a previous operation) CodeLastResult=Latest result code -NbOfEmailsInInbox=Number of emails in source directory -LoadThirdPartyFromName=Load third party searching on %s (load only) -LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found) -WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr -WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr -WithDolTrackingIDInMsgId=Message sent from Dolibarr -WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr -CreateCandidature=Create job application +NbOfEmailsInInbox=Lähdehakemistossa olevien sähköpostien määrä +LoadThirdPartyFromName=Lataa kolmannen osapuolen haku sivustolta %s (vain lataus) +LoadThirdPartyFromNameOrCreate=Lataa kolmannen osapuolen haku sivustolta %s (luo, jos sitä ei löydy) +WithDolTrackingID=Viesti keskustelusta, jonka aloitti ensimmäinen sähköposti, lähetetty Dolibarrista +WithoutDolTrackingID=Viesti keskustelusta, jonka aloitti ensimmäinen sähköposti, EI lähetetty Dolibarrista +WithDolTrackingIDInMsgId=Viesti lähetetty Dolibarrista +WithoutDolTrackingIDInMsgId=Viestiä EI lähetetty Dolibarrista +CreateCandidature=Luo työhakemus FormatZip=Postinumero -MainMenuCode=Menu entry code (mainmenu) -ECMAutoTree=Show automatic ECM tree +MainMenuCode=Valikkokoodi (päävalikko) +ECMAutoTree=Näytä automaattinen ECM-puu OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. OpeningHours=Aukioloajat OpeningHoursDesc=Yrityksen tavalliset aukioloajat -ResourceSetup=Configuration of Resource module -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disable feature to link a resource to users -DisabledResourceLinkContact=Disable feature to link a resource to contacts +ResourceSetup=Resurssimoduulin määritys +UseSearchToSelectResource=Käytä hakulomaketta resurssin valitsemiseksi (pikavalikon sijaan). +DisabledResourceLinkUser=Poista ominaisuus käytöstä linkittääksesi resurssin käyttäjiin +DisabledResourceLinkContact=Poista ominaisuus käytöstä linkittääksesi resurssin kontakteihin EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event -ConfirmUnactivation=Confirm module reset -OnMobileOnly=On small screen (smartphone) only +ConfirmUnactivation=Vahvista moduulin nollaus +OnMobileOnly=Vain pienellä näytöllä (älypuhelin) DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links. @@ -2040,17 +2040,17 @@ DefaultCustomerType=Default thirdparty type for "New customer" creation form ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. RootCategoryForProductsToSell=Root category of products to sell RootCategoryForProductsToSellDesc=If defined, only products inside this category or childs of this category will be available in the Point Of Sale -DebugBar=Debug Bar +DebugBar=Virheenkorjauspalkki DebugBarDesc=Toolbar that comes with a plenty of tools to simplify debugging -DebugBarSetup=DebugBar Setup -GeneralOptions=General Options +DebugBarSetup=Virheenkorjauspalkin asetukset +GeneralOptions=Yleiset asetukset LogsLinesNumber=Number of lines to show on logs tab -UseDebugBar=Use the debug bar +UseDebugBar=Käytä virheenkorjauspalkkia DEBUGBAR_LOGS_LINES_NUMBER=Konsolissa pidettävien lokirivien määrä WarningValueHigherSlowsDramaticalyOutput=Varoitus, suuremmat arvot hidastavat merkittävästi ohjelmaa ModuleActivated=Moduuli %son aktiivinen ja hidastaa ohjelmaa -IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s. -AntivirusEnabledOnUpload=Antivirus enabled on uploaded files +IfYouAreOnAProductionSetThis=Jos olet tuotantoympäristössä, määritä tämän ominaisuuden arvoksi %s. +AntivirusEnabledOnUpload=Virustorjunta käytössä ladatuissa tiedostoissa EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Vienti-moduulin asetukset ImportSetup=Setup of module Import @@ -2078,20 +2078,20 @@ PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book. FeatureNotAvailableWithReceptionModule=Ominaisuus ei käytettävissä kun moduuli Vastaanotto on aktiivinen RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard -JumpToBoxes=Jump to Setup -> Widgets +JumpToBoxes=Siirry kohtaan Asetukset -> Widgetit MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time" MeasuringScaleDesc=The scale is the number of places you have to move the decimal part to match the default reference unit. For "time" unit type, it is the number of seconds. Values between 80 and 99 are reserved values. -TemplateAdded=Template added -TemplateUpdated=Template updated -TemplateDeleted=Template deleted +TemplateAdded=Malli lisätty +TemplateUpdated=Malli päivitetty +TemplateDeleted=Malli poistettu MailToSendEventPush=Event reminder email -SwitchThisForABetterSecurity=Switching this value to %s is recommended for more security +SwitchThisForABetterSecurity=Tämän arvon vaihtamista arvoon %s suositellaan turvallisuuden lisäämiseksi DictionaryProductNature= Nature of product -CountryIfSpecificToOneCountry=Country (if specific to a given country) -YouMayFindSecurityAdviceHere=You may find security advisory here -ModuleActivatedMayExposeInformation=This module may expose sensitive data. If you don't need it, disable it. -ModuleActivatedDoNotUseInProduction=A module designed for the development has been enabled. Do not enable it on a production environment. -CombinationsSeparator=Separator character for product combinations -SeeLinkToOnlineDocumentation=See link to online documention on top menu for examples -SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module %s is used, show details of subproducts of a kit on PDF. -AskThisIDToYourBank=Contact your bank to get this ID +CountryIfSpecificToOneCountry=Maa (jos määritelty annetulle maalle) +YouMayFindSecurityAdviceHere=Löydät tietoturva-neuvoja täältä +ModuleActivatedMayExposeInformation=Tämä moduuli saattaa paljastaa arkaluontoisia tietoja. Jos et tarvitse sitä, poista se käytöstä. +ModuleActivatedDoNotUseInProduction=Kehitykseen suunniteltu moduuli on otettu käyttöön. Älä ota sitä käyttöön tuotantoympäristössä. +CombinationsSeparator=Tuoteyhdistelmien erotinmerkki +SeeLinkToOnlineDocumentation=Katso esimerkkejä linkistä online-dokumentaatioon ylävalikossa +SHOW_SUBPRODUCT_REF_IN_PDF=Jos käytetään moduulin %s ominaisuutta "%s", näytä yksityiskohdat paketin alituotteista PDF-muodossa. +AskThisIDToYourBank=Ota yhteyttä pankkiisi saadaksesi tämän tunnuksen diff --git a/htdocs/langs/fi_FI/banks.lang b/htdocs/langs/fi_FI/banks.lang index 7ab1f895aa8..7d3b78bdd23 100644 --- a/htdocs/langs/fi_FI/banks.lang +++ b/htdocs/langs/fi_FI/banks.lang @@ -39,7 +39,7 @@ StandingOrders=Direct debit orders StandingOrder=Suoraveloitus tilaus PaymentByDirectDebit=Payment by direct debit PaymentByBankTransfers=Payments by credit transfer -PaymentByBankTransfer=Payment by credit transfer +PaymentByBankTransfer=Maksu tilisiirrolla AccountStatement=Tiliote AccountStatementShort=Laskelma AccountStatements=Tiliotteet @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/fi_FI/bills.lang b/htdocs/langs/fi_FI/bills.lang index 398c7d7aae4..765ef285f83 100644 --- a/htdocs/langs/fi_FI/bills.lang +++ b/htdocs/langs/fi_FI/bills.lang @@ -3,7 +3,7 @@ Bill=Lasku Bills=Laskut BillsCustomers=Asiakkaiden laskut BillsCustomer=Asiakas lasku -BillsSuppliers=Vendor invoices +BillsSuppliers=Toimittajan laskut BillsCustomersUnpaid=Asiakkaiden maksamattomat laskut BillsCustomersUnpaidForCompany=Asiakkaiden maksamattomat laskut %s BillsSuppliersUnpaid=Maksamattomat toimittajien laskut @@ -469,7 +469,7 @@ LawApplicationPart2=tavaroiden omistusoikeus säilyy LawApplicationPart3=the seller until full payment of LawApplicationPart4=niiden hinta. LimitedLiabilityCompanyCapital=SARL, pääoma -UseLine=Apply +UseLine=Käytä UseDiscount=Käytä edullisista UseCredit=Käytä luotto UseCreditNoteInInvoicePayment=Vähentää maksua tämän menoilmoitus @@ -531,6 +531,7 @@ TypeContact_invoice_supplier_external_SERVICE=Vendor service contact InvoiceFirstSituationAsk=First situation invoice InvoiceFirstSituationDesc=The situation invoices are tied to situations related to a progression, for example the progression of a construction. Each situation is tied to an invoice. InvoiceSituation=Situation invoice +PDFInvoiceSituation=Situation invoice InvoiceSituationAsk=Invoice following the situation InvoiceSituationDesc=Create a new situation following an already existing one SituationAmount=Situation invoice amount(net) @@ -575,3 +576,7 @@ BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted UnitPriceXQtyLessDiscount=Unit price x Qty - Discount CustomersInvoicesArea=Customer billing area SupplierInvoicesArea=Supplier billing area +FacParentLine=Invoice Line Parent +SituationTotalRayToRest=Remainder to pay without taxe +PDFSituationTitle=Situation n° %d +SituationTotalProgress=Total progress %d %% diff --git a/htdocs/langs/fi_FI/boxes.lang b/htdocs/langs/fi_FI/boxes.lang index 8ca18cbccb6..896e6895a4f 100644 --- a/htdocs/langs/fi_FI/boxes.lang +++ b/htdocs/langs/fi_FI/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Lisää dashboardiin BoxAdded=Lisätty dashboardiin BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/fi_FI/cashdesk.lang b/htdocs/langs/fi_FI/cashdesk.lang index ef8471c05da..a00a6ea22e5 100644 --- a/htdocs/langs/fi_FI/cashdesk.lang +++ b/htdocs/langs/fi_FI/cashdesk.lang @@ -109,7 +109,7 @@ MainTemplateToUse=Main template to use OrderTemplateToUse=Order template to use BarRestaurant=Bar Restaurant AutoOrder=Order by the customer himself -RestaurantMenu=Menu +RestaurantMenu=Valikko CustomerMenu=Customer menu ScanToMenu=Scan QR code to see the menu ScanToOrder=Scan QR code to order diff --git a/htdocs/langs/fi_FI/exports.lang b/htdocs/langs/fi_FI/exports.lang index 00784ec6116..446bb468010 100644 --- a/htdocs/langs/fi_FI/exports.lang +++ b/htdocs/langs/fi_FI/exports.lang @@ -122,7 +122,7 @@ SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) NoUpdateAttempt=No update attempt was performed, only insert ImportDataset_user_1=Users (employees or not) and properties -ComputedField=Computed field +ComputedField=Laskettu kenttä ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/fi_FI/holiday.lang b/htdocs/langs/fi_FI/holiday.lang index 4aaf4300284..960f0f94b94 100644 --- a/htdocs/langs/fi_FI/holiday.lang +++ b/htdocs/langs/fi_FI/holiday.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Henkilöstöhallinta -Holidays=Leave -CPTitreMenu=Leave +Holidays=Poissaolot +CPTitreMenu=Poissaolot MenuReportMonth=Monthly statement MenuAddCP=New leave request NotActiveModCP=You must enable the module Leave to view this page. @@ -110,7 +110,7 @@ UpdateConfCPOK=Updated successfully. Module27130Name= Management of leave requests Module27130Desc= Management of leave requests ErrorMailNotSend=An error occurred while sending email: -NoticePeriod=Notice period +NoticePeriod=Huomautusaika #Messages HolidaysToValidate=Validate leave requests HolidaysToValidateBody=Below is a leave request to validate diff --git a/htdocs/langs/fi_FI/mails.lang b/htdocs/langs/fi_FI/mails.lang index 9efd5a62a2f..d0a460d3df8 100644 --- a/htdocs/langs/fi_FI/mails.lang +++ b/htdocs/langs/fi_FI/mails.lang @@ -168,10 +168,12 @@ OutGoingEmailSetup=Outgoing emails InGoingEmailSetup=Incoming emails OutGoingEmailSetupForEmailing=Outgoing emails (for module %s) DefaultOutgoingEmailSetup=Same configuration than the global Outgoing email setup -Information=Information +Information=Tiedot ContactsWithThirdpartyFilter=Contacts with third-party filter Unanswered=Unanswered Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/fi_FI/main.lang b/htdocs/langs/fi_FI/main.lang index 0f20b7dedbf..edbfc59d018 100644 --- a/htdocs/langs/fi_FI/main.lang +++ b/htdocs/langs/fi_FI/main.lang @@ -25,7 +25,7 @@ FormatDateHourTextShort=%d. %b %Y %H.%M FormatDateHourText=%d. %B %Y %H.%M DatabaseConnection=Tietokantayhteys NoTemplateDefined=Tämän tyyliselle sähköpostille ei ole pohjaa saatavilla -AvailableVariables=Available substitution variables +AvailableVariables=Käytettävissä olevat korvaavat muuttujat NoTranslation=Ei käännöstä Translation=Käännös CurrentTimeZone=Aikavyöhyke PHP (palvelin) @@ -54,7 +54,7 @@ ErrorFileNotUploaded=Tiedosto ei ole ladattu. Tarkista, että koko ei ylitä suu ErrorInternalErrorDetected=Virhe havaittu ErrorWrongHostParameter=Väärä vastaanottavan parametri ErrorYourCountryIsNotDefined=Maata ei ole määritetty. Mene Koti-Asetukset-Muokkaa - valikkoon ja lähetä lomake uudestaan -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record. +ErrorRecordIsUsedByChild=Tämän tietueen poistaminen epäonnistui. Tätä tietuetta käyttää ainakin yksi lapsitietue. ErrorWrongValue=Väärä arvo ErrorWrongValueForParameterX=Väärä arvo parametri %s ErrorNoRequestInError=N: o pyynnöstä virhe @@ -67,7 +67,7 @@ ErrorNoVATRateDefinedForSellerCountry=Virhe ei alv määritellään maa ' %s'. ErrorNoSocialContributionForSellerCountry=Virhe, ei sosiaalisia tai fiskaalisia verotyyppejä, jotka on määritelty maata "%s" varten. ErrorFailedToSaveFile=Virhe, ei tallenna tiedosto. ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a existing warehouse -MaxNbOfRecordPerPage=Max. number of records per page +MaxNbOfRecordPerPage=Maks. tietueiden määrä sivua kohden NotAuthorized=Oikeutesi ei riitä tähän toimintoon SetDate=Aseta päivä SelectDate=Valitse päivä @@ -75,34 +75,34 @@ SeeAlso=Katso myös %s SeeHere=Katso täältä ClickHere=Klikkaa tästä Here=Here -Apply=Apply +Apply=Käytä BackgroundColorByDefault=Default taustaväri FileRenamed=Tiedosto on uudelleen nimetty onnistuneesti FileGenerated=Tiedosto luotiin onnistuneesti FileSaved=Tiedosto tallennettiin onnistuneesti FileUploaded=Tiedosto on siirretty onnistuneesti -FileTransferComplete=File(s) uploaded successfully +FileTransferComplete=Tiedosto (t) lähetetty onnistuneesti FilesDeleted=Tiedosto(t) poistettiin onnistuneesti FileWasNotUploaded=Tiedosto on valittu liite mutta ei ollut vielä ladattu. Klikkaa "Liitä tiedosto" tätä. -NbOfEntries=No. of entries +NbOfEntries=Merkintöjen määrä GoToWikiHelpPage=Lue online-ohjeet (tarvitaan Internet-yhteys) GoToHelpPage=Lue auttaa DedicatedPageAvailable=There is a dedicated help page related to your current screen HomePage=Kotisivu RecordSaved=Record tallennettu RecordDeleted=Tallennus poistettu -RecordGenerated=Record generated +RecordGenerated=Tietue luotu LevelOfFeature=Taso ominaisuuksia NotDefined=Ei määritelty DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarrin todennusmoodi on %s konfigurointitiedostossa conf.php .
    Tämä tarkoittaa, että salasanatietokanta on Dolibarrin ulkopuolinen, joten tämän kentän muuttaminen ei välttämättä vaikuta. Administrator=Administrator Undefined=Määrittelemätön PasswordForgotten=Unohditko salasanasi? -NoAccount=No account? +NoAccount=Ei tiliä? SeeAbove=Katso edellä HomeArea=Koti -LastConnexion=Last login -PreviousConnexion=Previous login +LastConnexion=Viimeisin kirjautuminen +PreviousConnexion=Edellinen kirjautuminen PreviousValue=Edellinen arvo ConnectedOnMultiCompany=Connected on kokonaisuus ConnectedSince=Sidossuhteessa koska @@ -113,7 +113,7 @@ RequestLastAccessInError=Virhe viimeisimmästä tietokannan pääsypyynnöstä ReturnCodeLastAccessInError=Viimeisin tietokannan käyttöoikeuspyyntövirheen palautekoodi InformationLastAccessInError=Tiedot viimeisimmän tietokannan käyttöoikeuspyynnön virheestä DolibarrHasDetectedError=Dolibarr on havaittu tekninen virhe -YouCanSetOptionDolibarrMainProdToZero=You can read log file or set option $dolibarr_main_prod to '0' in your config file to get more information. +YouCanSetOptionDolibarrMainProdToZero=Voit lukea lokitiedoston tai asettaa asetustiedoston $ dolibarr_main_prod arvoksi '0' saadaksesi lisätietoja. InformationToHelpDiagnose=Nämä tiedot voivat olla hyödyllisiä vianmääritystarkoituksiin (voit asettaa vaihtoehdon $ dolibarr_main_prod arvoon '1' poistamaan tällaiset ilmoitukset) MoreInformation=Lisätietoa TechnicalInformation=Tekniset tiedot @@ -125,7 +125,7 @@ PrecisionUnitIsLimitedToXDecimals=Dolibarr oli asetettu raja tarkkuus yksikk DoTest=Testi ToFilter=Suodata NoFilter=Ei suodatinta -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance time. +WarningYouHaveAtLeastOneTaskLate=Varoitus, sinulla on ainakin yksi elementti, joka on ylittänyt toleranssin ajan. yes=kyllä Yes=Kyllä no=ei @@ -135,7 +135,7 @@ Home=Koti Help=Apu OnlineHelp=Online-ohje PageWiki=Wiki-sivulla -MediaBrowser=Media browser +MediaBrowser=Mediaselain Always=Aina Never=Ei koskaan Under=alle @@ -147,16 +147,16 @@ Activate=Aktivoi Activated=Aktiivihiili Closed=Suljettu Closed2=Suljettu -NotClosed=Not closed +NotClosed=Ei suljettu Enabled=Enabled -Enable=Enable +Enable=Ota käyttöön Deprecated=Käytöstä poistettu Disable=Poistaa käytöstä Disabled=Disabled Add=Lisää AddLink=Lisää linkki RemoveLink=Poista linkki -AddToDraft=Add to draft +AddToDraft=Lisää luonnokseen Update=Päivittää Close=Sulje CloseAs=Aseta tilaksi @@ -165,22 +165,22 @@ Confirm=Vahvista ConfirmSendCardByMail=Do you really want to send the content of this card by mail to %s? Delete=Poistaa Remove=Poista -Resiliate=Terminate +Resiliate=Lopeta Cancel=Peruuta Modify=Muokkaa Edit=Muokkaa Validate=Vahvista ValidateAndApprove=Vahvista ja hyväksy ToValidate=Validoida -NotValidated=Not validated +NotValidated=Ei vahvistettu Save=Tallenna SaveAs=Tallenna nimellä -SaveAndStay=Save and stay -SaveAndNew=Save and new +SaveAndStay=Tallenna ja pysy sivulla +SaveAndNew=Tallenna ja luo uusi TestConnection=Testaa yhteys ToClone=Klooni -ConfirmCloneAsk=Are you sure you want to clone the object %s? -ConfirmClone=Choose data you want to clone: +ConfirmCloneAsk=Haluatko varmasti kloonata objektin %s ? +ConfirmClone=Valitse kloonattavat tiedot: NoCloneOptionsSpecified=Ei tietoja kloonata määritelty. Of=ja Go=Mene @@ -198,13 +198,13 @@ Valid=Voimassa Approve=Hyväksy Disapprove=Poista hyväksyntä ReOpen=Avaa uudelleen -Upload=Upload +Upload=Lähetä ToLink=Linkki Select=Valitse -SelectAll=Select all +SelectAll=Valitse kaikki Choose=Valitse Resize=Muuta kokoa -ResizeOrCrop=Resize or Crop +ResizeOrCrop=Muuta kokoa tai rajaa Recenter=Keskitä Author=Laatija User=Käyttäjä @@ -216,7 +216,7 @@ Password=Salasana PasswordRetype=Kirjoitta salasana uudelleen NoteSomeFeaturesAreDisabled=Huomaa, että monet piirteet / modules on poistettu käytöstä tämän esittelyn. Name=Nimi -NameSlashCompany=Name / Company +NameSlashCompany=Nimi / yritys Person=Henkilö Parameter=Parametri Parameters=Parametrit @@ -224,6 +224,7 @@ Value=Arvo PersonalValue=Henkilökohtainen arvo NewObject=Uusi %s NewValue=Uusi arvo +OldValue=Vanha arvo %s CurrentValue=Nykyinen arvo Code=Koodi Type=Tyyppi @@ -262,7 +263,7 @@ Cards=Kortit Card=Kortti Now=Nyt HourStart=Aloitus tunti -Deadline=Deadline +Deadline=Takaraja Date=Päivä DateAndHour=Päivämäärä ja tunti DateToday=Päivämäärä tänään @@ -271,11 +272,11 @@ DateStart=Aloituspäivämäärä DateEnd=Lopetuspäivä DateCreation=Luotu DateCreationShort=Luonti päivämäärä -IPCreation=Creation IP +IPCreation=Luoneen IP DateModification=Muokattu DateModificationShort=Muokattu -IPModification=Modification IP -DateLastModification=Latest modification date +IPModification=Muokkaajan IP +DateLastModification=Viimeisimmän muokkauksen päivämäärä DateValidation=Vahvistettu DateClosing=Suljettu DateDue=Eräpäivä @@ -291,9 +292,9 @@ DatePayment=Maksupäivä DateApprove=Hyväksytään päivämäärä DateApprove2=Hyväksytään päivämäärä (toinen hyväksyntä) RegistrationDate=Rekisteröinti päivämäärä -UserCreation=Creation user -UserModification=Modification user -UserValidation=Validation user +UserCreation=Luonut käyttäjä +UserModification=Muokannut käyttäjä +UserValidation=Vahvistanut käyttäjä UserCreationShort=Creat. user UserModificationShort=Modif. user UserValidationShort=Valid. user @@ -524,8 +525,8 @@ StatusInterInvoiced=Laskutettu Validated=Vahvistetut ValidatedToProduce=Validated (To produce) Opened=Avoinna -OpenAll=Open (All) -ClosedAll=Closed (All) +OpenAll=Avoimet (kaikki) +ClosedAll=Suljetut (kaikki) New=Uusi Discount=Alennus Unknown=Tuntematon @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Näytä asiakkaan esikatselu ShowSupplierPreview=Show vendor preview RefCustomer=Asiakasviite +InternalRef=Internal ref. Currency=Valuutta InfoAdmin=Tietoja järjestelmänvalvojille Undo=Kumoa @@ -676,13 +678,13 @@ SendMail=Lähetä sähköpostia Email=Sähköposti NoEMail=Ei sähköpostia AlreadyRead=Already read -NotRead=Unread +NotRead=Lukematon NoMobilePhone=Ei matkapuhelinta Owner=Omistaja FollowingConstantsWillBeSubstituted=Seuraavat vakiot voidaan korvata ja vastaava arvo. Refresh=Päivitä BackToList=Palaa luetteloon -BackToTree=Back to tree +BackToTree=Takaisin puuhun GoBack=Mene takaisin CanBeModifiedIfOk=Voidaan muuttaa, jos voimassa CanBeModifiedIfKo=Voidaan muuttaa, jos ei kelpaa @@ -690,9 +692,9 @@ ValueIsValid=Arvo on voimassa ValueIsNotValid=Arvo ei kelpaa RecordCreatedSuccessfully=Tallennus luotiin onnistuneesti RecordModifiedSuccessfully=Tietue muunnettu onnistuneesti -RecordsModified=%s record(s) modified -RecordsDeleted=%s record(s) deleted -RecordsGenerated=%s record(s) generated +RecordsModified=%s-tietuetta muokattu +RecordsDeleted=%s tietuetta poistettu +RecordsGenerated=%s tietuetta luotu AutomaticCode=Automaattinen koodi FeatureDisabled=Ominaisuus pois päältä MoveBox=Siirrä widget @@ -703,7 +705,7 @@ Method=Menetelmä Receive=Vastaanota CompleteOrNoMoreReceptionExpected=Complete or nothing more expected ExpectedValue=Odotettu Arvo -ExpectedQty=Expected Qty +ExpectedQty=Odotettu määrä PartialWoman=Osittainen TotalWoman=Yhteensä NeverReceived=Ei ole saapunut @@ -727,7 +729,7 @@ CurrentUserLanguage=Nykyinen kieli CurrentTheme=Nykyinen teema CurrentMenuManager=Nykyinen valikkohallinta Browser=Selain -Layout=Layout +Layout=Asettelu Screen=Näyttö DisabledModules=Ei käytössä olevat moduulit For=Saat @@ -738,7 +740,7 @@ HidePassword=Näytä komento salasana piilotettuna UnHidePassword=Näytä todellinen komento salasana näkyen Root=Juuri RootOfMedias=Root of public medias (/medias) -Informations=Information +Informations=Tiedot Page=Sivu Notes=Huomiot AddNewLine=Lisää uusi rivi @@ -757,7 +759,7 @@ CoreErrorTitle=Järjestelmävirhe CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. CreditCard=Luottokortti ValidatePayment=Vahvista maksu -CreditOrDebitCard=Credit or debit card +CreditOrDebitCard=Luotto- tai maksukortti FieldsWithAreMandatory=Tähdellä %s ovat pakollisia FieldsWithIsForPublic=Fields with %s are shown in public list of members. If you don't want this, uncheck the "public" box. AccordingToGeoIPDatabase=(according to GeoIP conversion) @@ -766,7 +768,7 @@ NotSupported=Ei tuettu RequiredField=Pakollinen kenttä Result=Tulos ToTest=Testi -ValidateBefore=Item must be validated before using this feature +ValidateBefore=Kohde on vahvistettava ennen tämän ominaisuuden käyttöä Visibility=Näkyvyys Totalizable=Totalizable TotalizableDesc=This field is totalizable in list @@ -788,20 +790,20 @@ LinkTo=Linkki LinkToProposal=Linkki Tarjoukseen LinkToOrder=Linkki Tilauksiin LinkToInvoice=Linkki Laskuihin -LinkToTemplateInvoice=Link to template invoice -LinkToSupplierOrder=Link to purchase order -LinkToSupplierProposal=Link to vendor proposal -LinkToSupplierInvoice=Link to vendor invoice +LinkToTemplateInvoice=Linkki mallilaskuun +LinkToSupplierOrder=Linkki ostotilaukseen +LinkToSupplierProposal=Linkki toimittajan ehdotukseen +LinkToSupplierInvoice=Linkki toimittajan laskuun LinkToContract=Linkki Sopimuksiin LinkToIntervention=Link to intervention -LinkToTicket=Link to ticket +LinkToTicket=Linkki tikettiin CreateDraft=Luo luonnos SetToDraft=Palaa luonnokseen ClickToEdit=Klikkaa muokataksesi -ClickToRefresh=Click to refresh -EditWithEditor=Edit with CKEditor -EditWithTextEditor=Edit with Text editor -EditHTMLSource=Edit HTML Source +ClickToRefresh=Napsauta päivittääksesi +EditWithEditor=Muokkaa CKEditorilla +EditWithTextEditor=Muokkaa tekstieditorilla +EditHTMLSource=Muokkaa HTML-lähdekoodia ObjectDeleted=Kohde %s poistettu ByCountry=Maittain ByTown=Postitoimipaikoittain @@ -813,7 +815,7 @@ ByDay=Päivän mukaan BySalesRepresentative=Myyntiedustajittain LinkedToSpecificUsers=Linkitetty käyttäjätietoon NoResults=Ei tuloksia -AdminTools=Admin Tools +AdminTools=Järjestelmänvalvojan työkalut SystemTools=Kehitysresurssit ModulesSystemTools=Moduuli työkalut Test=Testi @@ -963,42 +965,42 @@ ShortThursday=TO ShortFriday=PE ShortSaturday=LA ShortSunday=SU -one=one -two=two -three=three -four=four -five=five -six=six -seven=seven -eight=eight -nine=nine -ten=ten -eleven=eleven -twelve=twelve -thirteen=thirdteen -fourteen=fourteen -fifteen=fifteen -sixteen=sixteen -seventeen=seventeen -eighteen=eighteen -nineteen=nineteen -twenty=twenty -thirty=thirty -forty=forty -fifty=fifty -sixty=sixty -seventy=seventy -eighty=eighty -ninety=ninety -hundred=hundred -thousand=thousand -million=million -billion=billion -trillion=trillion -quadrillion=quadrillion +one=yksi +two=kaksi +three=kolme +four=neljä +five=viisi +six=kuusi +seven=seitsemän +eight=kahdeksan +nine=yhdeksän +ten=kymmenen +eleven=yksitoista +twelve=kaksitoista +thirteen=kolmetoista +fourteen=neljätoista +fifteen=viisitoista +sixteen=kuusitoista +seventeen=seitsemäntoista +eighteen=kahdeksantoista +nineteen=yhdeksäntoista +twenty=kaksikymmentä +thirty=kolmekymmentä +forty=neljäkymmentä +fifty=viisikymmentä +sixty=kuusikymmentä +seventy=seitsemänkymmentä +eighty=kahdeksankymmentä +ninety=yhdeksänkymmentä +hundred=sata +thousand=tuhat +million=miljoona +billion=miljardi +trillion=biljoona +quadrillion=kvadriljoona SelectMailModel=Valitse sähköpostipohja SetRef=Aseta viite -Select2ResultFoundUseArrows=Some results found. Use arrows to select. +Select2ResultFoundUseArrows=Joitakin tuloksia löytyi. Käytä nuolia valitaksesi. Select2NotFound=Tuloksia ei löytynyt Select2Enter=Syötä Select2MoreCharacter=tai useampi merkki @@ -1012,107 +1014,108 @@ SearchIntoMembers=Jäsenet SearchIntoUsers=Käyttäjät SearchIntoProductsOrServices=Tuotteet tai palvelut SearchIntoProjects=Projektit -SearchIntoMO=Manufacturing Orders +SearchIntoMO=Valmistustilaukset SearchIntoTasks=Tehtävät SearchIntoCustomerInvoices=Asiakkaiden laskut -SearchIntoSupplierInvoices=Vendor invoices +SearchIntoSupplierInvoices=Toimittajan laskut SearchIntoCustomerOrders=Asiakkaan tilaukset SearchIntoSupplierOrders=Ostotilaukset SearchIntoCustomerProposals=Tarjoukset -SearchIntoSupplierProposals=Vendor proposals +SearchIntoSupplierProposals=Toimittajan ehdotukset SearchIntoInterventions=Interventions SearchIntoContracts=Sopimukset SearchIntoCustomerShipments=Asiakas lähetykset SearchIntoExpenseReports=Kuluraportit -SearchIntoLeaves=Leave +SearchIntoLeaves=Poissaolot SearchIntoTickets=Tiketit -SearchIntoCustomerPayments=Customer payments +SearchIntoCustomerPayments=Asiakasmaksut SearchIntoVendorPayments=Toimittajien maksut SearchIntoMiscPayments=Muut maksut CommentLink=Kommentit NbComments=Kommenttien määrä -CommentPage=Comments space +CommentPage=Kommenttitila CommentAdded=Kommentti lisätty CommentDeleted=Kommentti poistettu Everybody=Yhteiset hanke PayedBy=Maksettu toimesta -PayedTo=Paid to -Monthly=Monthly -Quarterly=Quarterly -Annual=Annual -Local=Local -Remote=Remote -LocalAndRemote=Local and Remote -KeyboardShortcut=Keyboard shortcut +PayedTo=Maksettu +Monthly=Kuukausittain +Quarterly=Neljännesvuosittain +Annual=Vuosittain +Local=Paikallinen +Remote=Etä +LocalAndRemote=Paikallinen ja etä +KeyboardShortcut=Pikanäppäin AssignedTo=Vaikuttaa -Deletedraft=Delete draft -ConfirmMassDraftDeletion=Draft mass delete confirmation -FileSharedViaALink=File shared via a link -SelectAThirdPartyFirst=Select a third party first... -YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode -Inventory=Inventory -AnalyticCode=Analytic code +Deletedraft=Poista luonnos +ConfirmMassDraftDeletion=Luonnosten massapoistamisen vahvistus +FileSharedViaALink=Tiedosto jaettu linkin kautta +SelectAThirdPartyFirst=Valitse ensin kolmas osapuoli ... +YouAreCurrentlyInSandboxMode=Olet tällä hetkellä %s "sandbox" -tilassa +Inventory=Varasto +AnalyticCode=Analyyttinen koodi TMenuMRP=MRP -ShowMoreInfos=Show More Infos -NoFilesUploadedYet=Please upload a document first -SeePrivateNote=See private note -PaymentInformation=Payment information -ValidFrom=Valid from -ValidUntil=Valid until -NoRecordedUsers=No users -ToClose=To close +ShowMoreInfos=Näytä lisää tietoja +NoFilesUploadedYet=Lataa ensin asiakirja +SeePrivateNote=Katso yksityinen huomautus +PaymentInformation=Maksutiedot +ValidFrom=Voimassa alkaen +ValidUntil=Voimassa asti +NoRecordedUsers=Ei käyttäjiä +ToClose=Sulkeaksesi ToProcess=Jotta prosessi -ToApprove=To approve -GlobalOpenedElemView=Global view -NoArticlesFoundForTheKeyword=No article found for the keyword '%s' -NoArticlesFoundForTheCategory=No article found for the category -ToAcceptRefuse=To accept | refuse +ToApprove=Hyväksyäksesi +GlobalOpenedElemView=Globaali näkymä +NoArticlesFoundForTheKeyword=Avainsanalle ' %s ' ei löytynyt artikkelia +NoArticlesFoundForTheCategory=Luokalle ei löytynyt artikkelia +ToAcceptRefuse=Hyväksyä | kieltäytyä ContactDefault_agenda=Tapahtuma ContactDefault_commande=Tilaus ContactDefault_contrat=Sopimus ContactDefault_facture=Lasku ContactDefault_fichinter=Väliintulo -ContactDefault_invoice_supplier=Supplier Invoice -ContactDefault_order_supplier=Purchase Order +ContactDefault_invoice_supplier=Toimittajalasku +ContactDefault_order_supplier=Ostotilaus ContactDefault_project=Hanke ContactDefault_project_task=Tehtävä ContactDefault_propal=Tarjous -ContactDefault_supplier_proposal=Supplier Proposal -ContactDefault_ticket=Ticket -ContactAddedAutomatically=Contact added from contact thirdparty roles -More=More -ShowDetails=Show details -CustomReports=Custom reports -StatisticsOn=Statistics on -SelectYourGraphOptionsFirst=Select your graph options to build a graph +ContactDefault_supplier_proposal=Toimittajan ehdotus +ContactDefault_ticket=Tiketti +ContactAddedAutomatically=Yhteys lisätty yhteyshenkilön kolmannen osapuolen rooleista +More=Lisää +ShowDetails=Näytä yksityiskohdat +CustomReports=Mukautetut raportit +StatisticsOn=Tilastot aiheesta +SelectYourGraphOptionsFirst=Valitse kaavion asetukset, jotta voit luoda kaavion Measures=Measures -XAxis=X-Axis -YAxis=Y-Axis -StatusOfRefMustBe=Status of %s must be %s -DeleteFileHeader=Confirm file delete -DeleteFileText=Do you really want delete this file? -ShowOtherLanguages=Show other languages -SwitchInEditModeToAddTranslation=Switch in edit mode to add translations for this language -NotUsedForThisCustomer=Not used for this customer -AmountMustBePositive=Amount must be positive -ByStatus=By status -InformationMessage=Information -Used=Used -ASAP=As Soon As Possible -CREATEInDolibarr=Record %s created -MODIFYInDolibarr=Record %s modified -DELETEInDolibarr=Record %s deleted -VALIDATEInDolibarr=Record %s validated -APPROVEDInDolibarr=Record %s approved -DefaultMailModel=Default Mail Model -PublicVendorName=Public name of vendor +XAxis=X-akseli +YAxis=Y-akseli +StatusOfRefMustBe= %s tilan on oltava %s +DeleteFileHeader=Vahvista tiedoston poisto +DeleteFileText=Haluatko todella poistaa tämän tiedoston? +ShowOtherLanguages=Näytä muut kielet +SwitchInEditModeToAddTranslation=Vaihda muokkaustilaan lisätäksesi käännöksiä tälle kielelle +NotUsedForThisCustomer=Ei käytössä tälle asiakkaalle +AmountMustBePositive=Summan on oltava positiivinen +ByStatus=Tilan mukaan +InformationMessage=Tiedot +Used=Käytetty +ASAP=Niin pian kuin mahdollista +CREATEInDolibarr=Tietue %s luotu +MODIFYInDolibarr=Tietuetta %s muokattu +DELETEInDolibarr=Tietue %s poistettu +VALIDATEInDolibarr=Tietue %s on vahvistettu +APPROVEDInDolibarr=Tietue %s hyväksytty +DefaultMailModel=Oletuspostimalli +PublicVendorName=Myyjän julkinen nimi DateOfBirth=Päiväys syntyvyyden -SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Security token has expired, so action has been canceled. Please try again. -UpToDate=Up-to-date -OutOfDate=Out-of-date +SecurityTokenHasExpiredSoActionHasBeenCanceledPleaseRetry=Suojaustunnus on vanhentunut, joten toiminto on peruutettu. Yritä uudelleen. +UpToDate=Ajantasalla +OutOfDate=Vanhentunut EventReminder=Event Reminder -UpdateForAllLines=Update for all lines +UpdateForAllLines=Päivitys kaikille riveille OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/fi_FI/modulebuilder.lang b/htdocs/langs/fi_FI/modulebuilder.lang index 845dd12624d..0e6dd72354d 100644 --- a/htdocs/langs/fi_FI/modulebuilder.lang +++ b/htdocs/langs/fi_FI/modulebuilder.lang @@ -5,7 +5,7 @@ EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use upp ModuleBuilderDesc2=Path where modules are generated/edited (first directory for external modules defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s ModuleBuilderDesc4=A module is detected as 'editable' when the file %s exists in root of module directory -NewModule=New module +NewModule=Uusi moduuli NewObjectInModulebuilder=New object ModuleKey=Module key ObjectKey=Object key diff --git a/htdocs/langs/fi_FI/mrp.lang b/htdocs/langs/fi_FI/mrp.lang index f018be890cc..c6e8061c790 100644 --- a/htdocs/langs/fi_FI/mrp.lang +++ b/htdocs/langs/fi_FI/mrp.lang @@ -1,4 +1,4 @@ -Mrp=Manufacturing Orders +Mrp=Valmistustilaukset MOs=Manufacturing orders ManufacturingOrder=Manufacturing Order MRPDescription=Module to manage production and Manufacturing Orders (MO). @@ -32,7 +32,7 @@ DeleteBillOfMaterials=Delete Bill Of Materials DeleteMo=Delete Manufacturing Order ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? -MenuMRP=Manufacturing Orders +MenuMRP=Valmistustilaukset NewMO=New Manufacturing Order QtyToProduce=Qty to produce DateStartPlannedMo=Date start planned @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang index dac94e48845..d3b6219e6db 100644 --- a/htdocs/langs/fi_FI/other.lang +++ b/htdocs/langs/fi_FI/other.lang @@ -79,7 +79,7 @@ Notify_EXPENSE_REPORT_APPROVE=Expense report approved Notify_HOLIDAY_VALIDATE=Leave request validated (approval required) Notify_HOLIDAY_APPROVE=Leave request approved Notify_ACTION_CREATE=Added action to Agenda -SeeModuleSetup=See setup of module %s +SeeModuleSetup=Katso moduulin %s asetukset NbOfAttachedFiles=Numero liitettyjen tiedostojen / asiakirjat TotalSizeOfAttachedFiles=Kokonaiskoosta liitettyjen tiedostojen / asiakirjat MaxSize=Enimmäiskoko diff --git a/htdocs/langs/fi_FI/stocks.lang b/htdocs/langs/fi_FI/stocks.lang index 7d6f3eae9eb..d244c5578d0 100644 --- a/htdocs/langs/fi_FI/stocks.lang +++ b/htdocs/langs/fi_FI/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Varastot arvo UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse @@ -182,7 +183,7 @@ inventoryCreatePermission=Create new inventory inventoryReadPermission=View inventories inventoryWritePermission=Update inventories inventoryValidatePermission=Validate inventory -inventoryTitle=Inventory +inventoryTitle=Varasto inventoryListTitle=Inventories inventoryListEmpty=No inventory in progress inventoryCreateDelete=Create/Delete inventory @@ -198,7 +199,7 @@ inventoryMvtStock=By inventory inventoryWarningProductAlreadyExists=This product is already into list SelectCategory=Luokka suodatin SelectFournisseur=Vendor filter -inventoryOnDate=Inventory +inventoryOnDate=Varasto INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Stock movements will have the date of inventory (instead of the date of inventory validation) inventoryChangePMPPermission=Allow to change PMP value for a product ColumnNewPMP=New unit PMP diff --git a/htdocs/langs/fi_FI/supplier_proposal.lang b/htdocs/langs/fi_FI/supplier_proposal.lang index 5777af85414..1612b16d93b 100644 --- a/htdocs/langs/fi_FI/supplier_proposal.lang +++ b/htdocs/langs/fi_FI/supplier_proposal.lang @@ -11,8 +11,9 @@ LastModifiedRequests=Latest %s modified price requests RequestsOpened=Open price requests SupplierProposalArea=Vendor proposals area SupplierProposalShort=Vendor proposal -SupplierProposals=Vendor proposals -SupplierProposalsShort=Vendor proposals +SupplierProposals=Toimittajan ehdotukset +SupplierProposalsShort=Toimittajan ehdotukset +AskPrice=Price request NewAskPrice=New price request ShowSupplierProposal=Show price request AddSupplierProposal=Create a price request @@ -32,7 +33,7 @@ SupplierProposalStatusValidatedShort=Vahvistetut SupplierProposalStatusClosedShort=Suljettu SupplierProposalStatusSignedShort=Accepted SupplierProposalStatusNotSignedShort=Refused -CopyAskFrom=Create price request by copying existing a request +CopyAskFrom=Create a price request by copying an existing request CreateEmptyAsk=Create blank request ConfirmCloneAsk=Are you sure you want to clone the price request %s? ConfirmReOpenAsk=Are you sure you want to open back the price request %s? diff --git a/htdocs/langs/fi_FI/ticket.lang b/htdocs/langs/fi_FI/ticket.lang index 732f53a18fd..ff13c391829 100644 --- a/htdocs/langs/fi_FI/ticket.lang +++ b/htdocs/langs/fi_FI/ticket.lang @@ -149,7 +149,7 @@ MessageListViewType=Show as table list # # Ticket card # -Ticket=Ticket +Ticket=Tiketti TicketCard=Ticket card CreateTicket=Create ticket EditTicket=Muokkaa tikettiä @@ -229,7 +229,7 @@ TicketChangeStatus=Vaihda tila TicketConfirmChangeStatus=Confirm the status change: %s ? TicketLogStatusChanged=Status changed: %s to %s TicketNotNotifyTiersAtCreate=Not notify company at create -Unread=Unread +Unread=Lukematon TicketNotCreatedFromPublicInterface=Not available. Ticket was not created from public interface. ErrorTicketRefRequired=Ticket reference name is required diff --git a/htdocs/langs/fi_FI/withdrawals.lang b/htdocs/langs/fi_FI/withdrawals.lang index a09329f1302..66f62048c71 100644 --- a/htdocs/langs/fi_FI/withdrawals.lang +++ b/htdocs/langs/fi_FI/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Vaihtoehto todellista tilaa ei ole asetettu, pysähdymme jälkeen simulointi ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/fi_FI/workflow.lang b/htdocs/langs/fi_FI/workflow.lang index 6fe6bba4b8b..5f7718dc168 100644 --- a/htdocs/langs/fi_FI/workflow.lang +++ b/htdocs/langs/fi_FI/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automaattinen luonti AutomaticClassification=Automaattinen luokitus +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/fr_BE/admin.lang b/htdocs/langs/fr_BE/admin.lang index a575f88e317..a497b785c93 100644 --- a/htdocs/langs/fr_BE/admin.lang +++ b/htdocs/langs/fr_BE/admin.lang @@ -16,7 +16,7 @@ FormToTestFileUploadForm=Formulaire pour tester l'upload de fichiers (selon la c IfModuleEnabled=Note: oui ne fonctionne que si le module %s est activé Module20Name=Propales Module30Name=Factures -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) Target=Objectif OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. diff --git a/htdocs/langs/fr_BE/mrp.lang b/htdocs/langs/fr_BE/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/fr_BE/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang index 473f37dd803..ab2f51e65eb 100644 --- a/htdocs/langs/fr_CA/admin.lang +++ b/htdocs/langs/fr_CA/admin.lang @@ -97,6 +97,7 @@ Module2660Name=WebServices appel ( client SOAP ) Module4000Name=Gestion des ressources humaines Module10000Name=Sites Internet Module55000Name=Sondage, enquête ou vote +Module59000Desc=Module to follow margins Permission45=Exportation de projets Permission76=Exporter des données Permission91=Consulter les charges et la TPS/TVH @@ -142,7 +143,6 @@ WarningAtLeastKeyOrTranslationRequired=Un critère de recherche est requis au mo NewTranslationStringToShow=Nouvelle chaîne de traduction à afficher OriginalValueWas=La traduction originale est écrasée. La valeur d'origine était:

    %s SearchOptim=Optimization des recherches -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. PasswordGenerationPerso=Retour un mot de passe en fonction de votre configuration personnellement défini. PasswordPatternDesc=Description du modèle de mot de passe HRMSetup=Configuration du module de GRH diff --git a/htdocs/langs/fr_CA/mrp.lang b/htdocs/langs/fr_CA/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/fr_CA/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/fr_CH/admin.lang b/htdocs/langs/fr_CH/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/fr_CH/admin.lang +++ b/htdocs/langs/fr_CH/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/fr_CH/boxes.lang b/htdocs/langs/fr_CH/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/fr_CH/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/fr_CH/mrp.lang b/htdocs/langs/fr_CH/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/fr_CH/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/fr_CI/admin.lang b/htdocs/langs/fr_CI/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/fr_CI/admin.lang +++ b/htdocs/langs/fr_CI/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/fr_CI/boxes.lang b/htdocs/langs/fr_CI/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/fr_CI/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/fr_CI/mrp.lang b/htdocs/langs/fr_CI/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/fr_CI/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/fr_CM/admin.lang b/htdocs/langs/fr_CM/admin.lang index ec2eb1bbd4e..b68a0680537 100644 --- a/htdocs/langs/fr_CM/admin.lang +++ b/htdocs/langs/fr_CM/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/fr_CM/boxes.lang b/htdocs/langs/fr_CM/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/fr_CM/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/fr_CM/mrp.lang b/htdocs/langs/fr_CM/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/fr_CM/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index f829a086456..4441dd4e1f9 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Ce service ThisProduct=Ce produit DefaultForService=Défaut pour les services DefaultForProduct=Défaut pour les produits +ProductForThisThirdparty=Produit pour ce tiers +ServiceForThisThirdparty=Service pour ce tiers CantSuggest=Suggestion no possible AccountancySetupDoneFromAccountancyMenu=La partie principale de la configuration de la comptabilité se fait depuis le menu %s ConfigAccountingExpert=Configuration du module de comptabilité (partie double) diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 447928225cd..93eaaea1772 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -875,7 +875,7 @@ Permission773=Supprimer les notes de frais Permission774=Lire toutes les notes de frais (même pour les utilisateurs en dehors de ma hierarchie) Permission775=Approuver les notes de frais Permission776=Payer les notes de frais -Permission777=Lire les notes de frais de tout le monde +Permission777=Lisez les notes de frais de tout le monde Permission778=Créer / modifier les notes de frais de tout le monde Permission779=Exporter les notes de frais Permission1001=Consulter les stocks @@ -1308,7 +1308,7 @@ YouUseBestDriver=Vous utilisez le driver %s qui est le driver recommandé actuel YouDoNotUseBestDriver=Vous utilisez le pilote %s mais le pilote %s est recommandé. NbOfObjectIsLowerThanNoPb=Vous avez seulement %s %s dans la base de données. Cela ne nécessite aucune optimisation particulière. SearchOptim=Optimisation des recherches -YouHaveXObjectUseSearchOptim=Vous avez %s %s dans la base de données. Vous devez ajouter la constante %s à 1 dans Accueil-Configuration-Autre. Ceci limite la recherche au début des chaînes, ce qui permet à la base de données d'utiliser des index et vous devriez obtenir une réponse immédiate. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=Vous avez %s %s dans la base de données et la constante %s est définie sur 1 dans Accueil-Configuration-Autre. BrowserIsOK=Vous utilisez le navigateur Web %s. Ce navigateur est correct pour la sécurité et la performance. BrowserIsKO=Vous utilisez le navigateur %s. Ce navigateur est déconseillé pour des raisons de sécurité, performance et qualité des pages restituées. Nous vous recommandons d'utiliser Firefox, Chrome, Opera ou Safari. @@ -1598,8 +1598,13 @@ ServiceSetup=Configuration du module Services ProductServiceSetup=Configuration des modules Produits et Services NumberOfProductShowInSelect=Nombre maximum de produits dans les listes déroulantes (0=aucune limite) ViewProductDescInFormAbility=Afficher les descriptions de produits dans les formulaires (sinon, comme info-bulle contextuelle) +DoNotAddProductDescAtAddLines=Ne pas ajouter la description du produit (saisie sur sa fiche) à l'ajout d'un produit +OnProductSelectAddProductDesc=Comment utiliser la description des produits à leur ajout dans un ligne de document +AutoFillFormFieldBeforeSubmit=Remplir automatiquement le champ description avec la description du produit +DoNotAutofillButAutoConcat=Ne pas remplir automatiquement le champ description avec la description du produit. La description sera concaténée à la description du produit. +DoNotUseDescriptionOfProdut=La description du produit ne sera jamais ajoutée dans la description des lignes MergePropalProductCard=Ajoute dans l'onglet Fichiers joints des produits/services, une option pour fusionner le document PDF du produit au PDF des propositions Azur si le produit/services est inclut dans la proposition. -ViewProductDescInThirdpartyLanguageAbility=Visualisation des descriptions de produits dans la langue du tiers +ViewProductDescInThirdpartyLanguageAbility=Afficher la description des produits sur les formulaires dans la langue du tiers (sinon dans la langue de l'utilisateur) UseSearchToSelectProductTooltip=Si vous avez un nombre important de produits (>100 000), vous pourrez améliorer les performances en positionnant la constante PRODUCT_DONOTSEARCH_ANYWHERE à 1 dans Configuration->Divers. La recherche sera alors limité au début des chaines. UseSearchToSelectProduct=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des produits (Cela peut augmenter les performances si vous avez un grand nombre de produits, mais cela est moins convivial) SetDefaultBarcodeTypeProducts=Type de code-barre utilisé par défaut pour les produits diff --git a/htdocs/langs/fr_FR/banks.lang b/htdocs/langs/fr_FR/banks.lang index 74f682dffb3..b6ccc999c82 100644 --- a/htdocs/langs/fr_FR/banks.lang +++ b/htdocs/langs/fr_FR/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Si cette fonction est activée, vous pouvez choisir une BankColorizeMovementName1=Couleur de fond pour les mouvements de débit BankColorizeMovementName2=Couleur de fond pour le mouvement de crédit IfYouDontReconcileDisableProperty=Si vous ne réalisez pas le rapprochement bancaire sur certains comptes bancaires, désactivez la fonctionnalité "%s" pour ne plus afficher cette alerte. +NoBankAccountDefined=Aucun compte bancaire défini diff --git a/htdocs/langs/fr_FR/boxes.lang b/htdocs/langs/fr_FR/boxes.lang index 3f94cdb2202..7fd402af050 100644 --- a/htdocs/langs/fr_FR/boxes.lang +++ b/htdocs/langs/fr_FR/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Les %s derniers mois tournant ChooseBoxToAdd=Ajouter le widget au tableau de bord BoxAdded=Le widget a été ajouté dans votre tableau de bord BoxTitleUserBirthdaysOfMonth=Anniversaires de ce mois (utilisateurs) -BoxLastManualEntries=Dernières entrées manuelles ou sans pièce source en comptabilité -BoxTitleLastManualEntries=Les %s dernières entrées manuelles ou sans pièce source +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Pas d'entrées manuelles en comptabilité BoxSuspenseAccount=Comptage des opérations de comptabilité avec compte d'attente BoxTitleSuspenseAccount=Nombre de lignes non allouées diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang index 418c76be10e..3788acb53c4 100644 --- a/htdocs/langs/fr_FR/mails.lang +++ b/htdocs/langs/fr_FR/mails.lang @@ -175,3 +175,5 @@ Answered=Répondu IsNotAnAnswer=N'est pas une réponse (e-mail initial) IsAnAnswer=Est une réponse à un e-mail initial RecordCreatedByEmailCollector=Enregistrement créé par le Collecteur d'e-mails%s depuis l'email %s +DefaultBlacklistMailingStatus=Statut par défaut des contacts qui refusent les emailing +DefaultStatusEmptyMandatory=Vide mais obligatoire diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index f5e71e4e48b..a862a1ecb9d 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -224,6 +224,7 @@ Value=Valeur PersonalValue=Valeur personnelle NewObject=Nouveau %s NewValue=Nouvelle valeur +OldValue=Ancienne valeur %s CurrentValue=Valeur courante Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Aperçu fournisseur ShowCustomerPreview=Afficher aperçu client ShowSupplierPreview=Afficher aperçu fournisseur RefCustomer=Réf. client +InternalRef=Réf. interne Currency=Devise InfoAdmin=Information pour les administrateurs Undo=Annuler @@ -1113,6 +1115,7 @@ OutOfDate=Adhésion expirée EventReminder=Rappel d'événement UpdateForAllLines=Mise à jour de toutes les lignes OnHold=En attente +Civility=Civilité AffectTag=Affecter une catégorie ConfirmAffectTag=Affectation de catégories en masse ConfirmAffectTagQuestion=Êtes-vous sur de vouloir affecter ces catégories aux %s lignes sélectionnées ? diff --git a/htdocs/langs/fr_FR/mrp.lang b/htdocs/langs/fr_FR/mrp.lang index 011ce1f8964..51807552945 100644 --- a/htdocs/langs/fr_FR/mrp.lang +++ b/htdocs/langs/fr_FR/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Coût total BOMTotalCost=Le coût de production de cette nomenclature basé sur chaque quantité et produit à consommer (utilise le prix de revient si défini, sinon le PMP si défini, sinon le meilleur prix d'achat) GoOnTabProductionToProduceFirst=Vous devez avoir la production pour clôturer un Ordre de Fabrication (voir onglet '%s'). Mais vous pouvez l'annuler. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit ne peut pas être utilisé dans une Nomenclature ou un Ordre de fabrication. +Workstation=Poste de travail +Workstations=Postes de travail +WorkstationsDescription=Gestion des postes de travail +WorkstationSetup = Workstations setup +WorkstationSetupPage = Configuration du module Poste de travail +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Liste des postes de travail +WorkstationCreate=Ajouter un nouveau poste de travail +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Activer le module Poste de travail +ConfirmDisableWorkstation=Êtes-vous sûr de vouloir désactiver le module Poste de travail %s ? +DisableAWorkstation=Désactiver un poste de travail +DeleteWorkstation=Supprimer +NbOperatorsRequired=Nombre d'opérateurs requis +THMOperatorEstimated=THM estimé de l'opérateur +THMMachineEstimated=THM machine estimé +WorkstationType=Type de poste de travail +Human=umain +Machine=Machine +HumanMachine=Humain/machine +WorkstationArea=Espace Poste de travail +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang index f07c003d9c8..444c546b853 100644 --- a/htdocs/langs/fr_FR/stocks.lang +++ b/htdocs/langs/fr_FR/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Valorisation des stocks UserWarehouseAutoCreate=Créer automatiquement un stock/entrepôt propre à l'utilisateur lors de sa création AllowAddLimitStockByWarehouse=Gérez également les valeurs des stocks minimums et souhaités par paire (produit-entrepôt) en plus des valeurs de minimums et souhaités par produit RuleForWarehouse=Règle pour les entrepôts +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Définir un entrepôt sur les commandes UserDefaultWarehouse=Définir un entrepôt sur les utilisateurs MainDefaultWarehouse=Entrepôt par défaut diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang index 5c524abfe58..e20eca0c75f 100644 --- a/htdocs/langs/fr_FR/withdrawals.lang +++ b/htdocs/langs/fr_FR/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Bonjour,

    l'ordre de prélèvement de la facture %s li ModeWarning=Option mode réel non établi, nous allons arrêter après cette simulation ErrorCompanyHasDuplicateDefaultBAN=La société avec l'identifiant %s a plus d'un compte bancaire par défaut. Aucun moyen de savoir lequel utiliser. ErrorICSmissing=ICS manquant pour le compte bancaire %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/fr_FR/workflow.lang b/htdocs/langs/fr_FR/workflow.lang index 0c753a2529e..2af480afa83 100644 --- a/htdocs/langs/fr_FR/workflow.lang +++ b/htdocs/langs/fr_FR/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classer les réceptions en "facturées" lorsqu'un descWORKFLOW_TICKET_CLOSE_INTERVENTION=Fermer toutes les interventions liées au ticket lorsqu'un ticket est fermé AutomaticCreation=Création automatique AutomaticClassification=Classification automatique +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/fr_GA/admin.lang b/htdocs/langs/fr_GA/admin.lang index ab525a24c9e..ca2cbd16ab0 100644 --- a/htdocs/langs/fr_GA/admin.lang +++ b/htdocs/langs/fr_GA/admin.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - admin Module20Name=Devis Module30Name=Factures -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +Module59000Desc=Module to follow margins ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) OperationParamDesc=Define the values to use for the object of the action, or how to extract values. For example:
    objproperty1=SET:the value to set
    objproperty2=SET:a value with replacement of __objproperty1__
    objproperty3=SETIFEMPTY:value used if objproperty3 is not already defined
    objproperty4=EXTRACT:HEADER:X-Myheaderkey:\\s*([^\\s]*)
    options_myextrafield1=EXTRACT:SUBJECT:([^\n]*)
    object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

    Use a ; char as separator to extract or set several properties. EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body. diff --git a/htdocs/langs/fr_GA/mrp.lang b/htdocs/langs/fr_GA/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/fr_GA/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/gl_ES/accountancy.lang b/htdocs/langs/gl_ES/accountancy.lang index 49ee0b5b9bb..de9a83b813d 100644 --- a/htdocs/langs/gl_ES/accountancy.lang +++ b/htdocs/langs/gl_ES/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Este servizo ThisProduct=Este produto DefaultForService=Predeterminado para o servizo DefaultForProduct=Predeterminado para o produto +ProductForThisThirdparty=Produto para este terceiro +ServiceForThisThirdparty=Servizo para este terceiro CantSuggest=Non pode suxerirse AccountancySetupDoneFromAccountancyMenu=A maior parte da configuración da contabilidade realizase dende o menú %s ConfigAccountingExpert=Configuración do módulo contabilidade (entrada doble) diff --git a/htdocs/langs/gl_ES/admin.lang b/htdocs/langs/gl_ES/admin.lang index f1f38d6928d..4d03682d5ef 100644 --- a/htdocs/langs/gl_ES/admin.lang +++ b/htdocs/langs/gl_ES/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=A impresión directa (sen abrir os documentos) usa o interfaz Cu Module55000Name=Enquisa ou Voto Module55000Desc=Módulo para facer enquisas en líña ou votos (como Doodle, Studs, Rdvz, ...) Module59000Name=Marxes -Module59000Desc=Módulo para xestionar os marxes de beneficio +Module59000Desc=Modulo para controlar marxes Module60000Name=Comisións Module60000Desc=Módulo para xestionar aas comisións de venda Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=Está usando o driver %s, actualmente é o mellor driver dispo YouDoNotUseBestDriver=Usa o driver %s aínda que é recomendable usar o driver %s. NbOfObjectIsLowerThanNoPb=So ten %s %s na base de datos. Isto non require ningunha optimización particular SearchOptim=Buscar optimización -YouHaveXObjectUseSearchOptim=Ten %s %s produtos na base de datos. Debería engadir a constante %s a 1 e Inicio-Configuración-Outra Configuración. Limita a busca ao comezo da cadea o que fai posible que a base de datos use o indice e acade unha resposta inmediata. +YouHaveXObjectUseSearchOptim=Ten %s %s na base de datos. Pode engadir a constante %s a 1 en Configuración de Inicio-Configuración-Outro. Limita a busca ao comezo das cadeas o que fai posible que a base de datos use índices e debería obter unha resposta inmediata. YouHaveXObjectAndSearchOptimOn=Ten %s %s na base de datos e a constante %s está configurada en 1 in Inicio-Configuración-Outra Configuración. BrowserIsOK=Usa o navegador web %s. Este navegador está optimizado para a seguridade e o rendemento. BrowserIsKO=Usa o navegador web %s. Este navegador é unha mala escolla para a seguridade, rendemento e fiabilidade. Aconsellamos utilizar Firefox, Chrome, Opera ou Safari. diff --git a/htdocs/langs/gl_ES/banks.lang b/htdocs/langs/gl_ES/banks.lang index 92dcc2a3bd5..bbcfd6fd8f9 100644 --- a/htdocs/langs/gl_ES/banks.lang +++ b/htdocs/langs/gl_ES/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Se esta función está activada, pode escoller unha cor BankColorizeMovementName1=Cor de fondo para movementos de débito BankColorizeMovementName2=Cor de fondo para os movementos de crédito IfYouDontReconcileDisableProperty=Se non aplica as reconciliacións bancarias nalgunhas contas bancarias, desactivar as propiedades "%s" nelas apara eliminar este aviso. +NoBankAccountDefined=Non está definida a conta bancaria diff --git a/htdocs/langs/gl_ES/boxes.lang b/htdocs/langs/gl_ES/boxes.lang index f8d1e9e6955..9012a5b62ac 100644 --- a/htdocs/langs/gl_ES/boxes.lang +++ b/htdocs/langs/gl_ES/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Os últimos %s meses consecutivos ChooseBoxToAdd=Engadir panel ao seu taboleiro BoxAdded=O panel foi agregado ao seu taboleiro BoxTitleUserBirthdaysOfMonth=Cumpreanos deste mes (Usuarios) -BoxLastManualEntries=Últimas entradas manuais en contabilidade -BoxTitleLastManualEntries=%s últimas entradas manuais +BoxLastManualEntries=Último rexistro en contabilidade introducido manualmente ou sen documento orixe +BoxTitleLastManualEntries=Ultimo rexistro de %s introducido manualmente ou sen documento orixe NoRecordedManualEntries=Sen entradas manuais gravadas en contabilidade BoxSuspenseAccount=Operaciónen conta contable con conta en suspenso BoxTitleSuspenseAccount=Número de liñas non asignadas diff --git a/htdocs/langs/gl_ES/mails.lang b/htdocs/langs/gl_ES/mails.lang index fbe1039382d..fa304de11c3 100644 --- a/htdocs/langs/gl_ES/mails.lang +++ b/htdocs/langs/gl_ES/mails.lang @@ -175,3 +175,5 @@ Answered=Contestado IsNotAnAnswer=É unha resposta (a un coreo electrónico recibido) IsAnAnswer=É unha resposta de un coreo electrónico recibido RecordCreatedByEmailCollector=Rexistro creado polo receptor de correo electrónico %s a partir do correo electrónico %s +DefaultBlacklistMailingStatus=Estado do contacto predeterminado para rexeitar correo electrónico masivo +DefaultStatusEmptyMandatory=Baleiro pero obrigatorio diff --git a/htdocs/langs/gl_ES/main.lang b/htdocs/langs/gl_ES/main.lang index fb98fa2a871..affae88508a 100644 --- a/htdocs/langs/gl_ES/main.lang +++ b/htdocs/langs/gl_ES/main.lang @@ -224,6 +224,7 @@ Value=Valor PersonalValue=Valor persoalizado NewObject=Novo %s NewValue=Novo valor +OldValue=Valor anterior %s CurrentValue=Valor actual Code=Código Type=Tipo @@ -655,6 +656,7 @@ SupplierPreview=Historial provedor ShowCustomerPreview=Amosar historial do cliente ShowSupplierPreview=Amosar historial do provedor RefCustomer=Ref. cliente +InternalRef=Ref. interna Currency=Moeda InfoAdmin=Información para os administradores Undo=Anular @@ -1113,6 +1115,7 @@ OutOfDate=Caducado EventReminder=Recordatorio de evento UpdateForAllLines=Actualizar todas as liñas OnHold=Agardando +Civility=Cortesía AffectTag=Poñer etiqueta ConfirmAffectTag=Poñer etiqueta masiva ConfirmAffectTagQuestion=Está certo de que quere poñer ás etiquetas dos rexistros seleccionados %s? diff --git a/htdocs/langs/gl_ES/mrp.lang b/htdocs/langs/gl_ES/mrp.lang index e96eafdec79..26bc6d491ef 100644 --- a/htdocs/langs/gl_ES/mrp.lang +++ b/htdocs/langs/gl_ES/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Custo total BOMTotalCost=O custo para producir este BOM está en función do custo de cada cantidade e produto a consumir (use o prezo de custo se se define, se non o prezo medio ponderado se se define, se non o mellor prezo de compra) GoOnTabProductionToProduceFirst=Primeiro debe iniciar a produción para pechar un pedimento de fabricación (ver a pestana '%s'). Pero pode cancelalo. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Non se pode usar un produto composto nunha lista de materiales nin nunha MO +Workstation=Estación de traballo +Workstations=Estacións de traballo +WorkstationsDescription=Xestión de estacións de traballo +WorkstationSetup = Configuración de estacións de traballo +WorkstationSetupPage = Páxina de configuración de estacións de traballo +WorkstationAbout = Acerca das estacións de traballo +WorkstationAboutPage = Páxina acerca das estacións de traballo +WorkstationList=Listaxe de estacións de traballo +WorkstationCreate=Axuntar nova estación de traballo +ConfirmEnableWorkstation=Está certo de querer activar a estación de traballo %s? +EnableAWorkstation=Activar a estación de traballo +ConfirmDisableWorkstation=Está certo de querer desactivar a estación de traballo %s? +DisableAWorkstation=Desactivar unha estación de traballo +DeleteWorkstation=Quitar +NbOperatorsRequired=Número de operadores precisos +THMOperatorEstimated=THM estimada operador +THMMachineEstimated=THM estimada máquina +WorkstationType=Tipo de estación de traballo +Human=Humano +Machine=Máquina +HumanMachine=Humano/Máquina +WorkstationArea=Area estación de traballo +Machines=Máquinas +THMEstimatedHelp=Esta taxa permite definir un custo estimado do artigo diff --git a/htdocs/langs/gl_ES/orders.lang b/htdocs/langs/gl_ES/orders.lang index b76bcd8a65a..c7a3ac01b3d 100644 --- a/htdocs/langs/gl_ES/orders.lang +++ b/htdocs/langs/gl_ES/orders.lang @@ -90,12 +90,12 @@ NumberOfOrdersByMonth=Número de pedimentos por mes AmountOfOrdersByMonthHT=Importe total de pedimentos por mes (sen IVE) ListOfOrders=Listaxe de pedimentos CloseOrder=Pechar pedimento -ConfirmCloseOrder=¿Está seguro de querer clasificar este pedimento como enviado? Una vez enviado un pedimento, solo podrá facturarse -ConfirmDeleteOrder=¿Está seguro de querer eliminar este pedimento? -ConfirmValidateOrder=¿Está seguro de querer validar este pedimento bajo la referencia %s ? -ConfirmUnvalidateOrder=¿Está seguro de querer restaurar el pedimento %s al estado borrador? -ConfirmCancelOrder=¿Está seguro de querer anular este pedimento? -ConfirmMakeOrder=¿Está seguro de querer confirmar este pedimento en fecha de %s ? +ConfirmCloseOrder=¿Está certo de querer clasificar este pedimento como enviado? Una vez enviado un pedimento, solo podrá facturarse +ConfirmDeleteOrder=¿Está certo de querer eliminar este pedimento? +ConfirmValidateOrder=¿Está certo de querer validar este pedimento bajo la referencia %s ? +ConfirmUnvalidateOrder=¿Está certo de querer restaurar el pedimento %s al estado borrador? +ConfirmCancelOrder=¿Está certo de querer anular este pedimento? +ConfirmMakeOrder=¿Está certo de querer confirmar este pedimento en fecha de %s ? GenerateBill=Facturar ClassifyShipped=Clasificar enviado DraftOrders=Pedimentos borrador @@ -112,7 +112,7 @@ OrderMode=Método de pedimento AuthorRequest=Autor/Solicitante UserWithApproveOrderGrant=Usuarios habilitados para aprobar os pedimentos PaymentOrderRef=Pago pedimento %s -ConfirmCloneOrder=¿Está seguro de querer clonar este pedimento %s? +ConfirmCloneOrder=¿Está certo de querer clonar este pedimento %s? DispatchSupplierOrder=Recepción do pedimento a provedor %s FirstApprovalAlreadyDone=Primeira aprobación realizada SecondApprovalAlreadyDone=Segunda aprobación realizada diff --git a/htdocs/langs/gl_ES/products.lang b/htdocs/langs/gl_ES/products.lang index b3601e35abc..ba1300b6c83 100644 --- a/htdocs/langs/gl_ES/products.lang +++ b/htdocs/langs/gl_ES/products.lang @@ -136,7 +136,7 @@ ConfirmDeleteProductLine=¿Está certo de querer eliminar esta liña de produto ProductSpecial=Especial QtyMin=Cantidad mínima de compra PriceQtyMin=Prezo para esta cantidade mínima -PriceQtyMinCurrency=Prezo para esta cantidade mínima (sen desconto) +PriceQtyMinCurrency=Prezo (moeda) para esta cantidade mínima (sen desconto) VATRateForSupplierProduct=Tasa IVE (para este produto/provedor) DiscountQtyMin=Desconto para esta cantidade NoPriceDefinedForThisSupplier=Ningún prezo/cant. definido para este provedor/produto @@ -386,8 +386,8 @@ ParentProduct=Produto pai HideChildProducts=Ocultar as variantes de produtos ShowChildProducts=Amosar a variantes de produtos NoEditVariants=Vaia á tarxeta de produto principal e edite o impacto do prezo das variantes na lapela de variantes -ConfirmCloneProductCombinations=¿Quere copiar todas as variantes do produto ao outro produto pai coa referencia dada? -CloneDestinationReference=Referencia de produto de destino +ConfirmCloneProductCombinations=¿Quere copiar todas as variantes do produto a outro produto pai coa referencia dada? +CloneDestinationReference=Referencia de produto destino ErrorCopyProductCombinations=Aconteceu un erro ao copiar as variantes de produto ErrorDestinationProductNotFound=Destino do produto non atopado ErrorProductCombinationNotFound=Variante do produto non atopada diff --git a/htdocs/langs/gl_ES/stocks.lang b/htdocs/langs/gl_ES/stocks.lang index d36176fa4b8..489350367f1 100644 --- a/htdocs/langs/gl_ES/stocks.lang +++ b/htdocs/langs/gl_ES/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Valor de stocks en almacén UserWarehouseAutoCreate=Crea automáticamente un almacén de usuarios ao crear un usuario AllowAddLimitStockByWarehouse=Xestionar tamén o valor do stock mínimo e desexado por emparellamento (produto-almacén) ademais do valor do stock mínimo e stock desexado por produto RuleForWarehouse=Regras para almacén +WarehouseAskWarehouseDuringPropal=Establecer un almacén en orzamento a cliente WarehouseAskWarehouseDuringOrder=Establecer un almacén para pedimentos de provedor UserDefaultWarehouse=Establecer un almacén para usuarios MainDefaultWarehouse=Almacén por defecto diff --git a/htdocs/langs/gl_ES/withdrawals.lang b/htdocs/langs/gl_ES/withdrawals.lang index c16fdee4969..595d3694f5b 100644 --- a/htdocs/langs/gl_ES/withdrawals.lang +++ b/htdocs/langs/gl_ES/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Bos días:

    a domiciliación da factura %s por conta da ModeWarning=Non estableceuse a opción de modo real, deteremonos despois desta simulación ErrorCompanyHasDuplicateDefaultBAN=A empresa co identificador %s ten máis dunha conta bancaria predeterminada. Non hai xeito de saber cal usar. ErrorICSmissing=Falta o ICS na conta bancaria% s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=A cantidade total da orde de domiciliación é distinta da suma das liñas diff --git a/htdocs/langs/gl_ES/workflow.lang b/htdocs/langs/gl_ES/workflow.lang index 94f8cdf6094..7be56785df7 100644 --- a/htdocs/langs/gl_ES/workflow.lang +++ b/htdocs/langs/gl_ES/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Clasificar recepcións a "facturado" cando sexa v descWORKFLOW_TICKET_CLOSE_INTERVENTION=Pecha todas as intervencións ligadas ao ticket cando o ticket está pechado AutomaticCreation=Creación automática AutomaticClassification=Clasificación automática +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Clasifique o envío orixe ligado como pechado cando a factura ao cliente sexa validada diff --git a/htdocs/langs/he_IL/accountancy.lang b/htdocs/langs/he_IL/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/he_IL/accountancy.lang +++ b/htdocs/langs/he_IL/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index 4054d2ac96a..73aaf8f75be 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/he_IL/banks.lang b/htdocs/langs/he_IL/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/he_IL/banks.lang +++ b/htdocs/langs/he_IL/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/he_IL/boxes.lang b/htdocs/langs/he_IL/boxes.lang index 206876321c5..bc3d4ba7b02 100644 --- a/htdocs/langs/he_IL/boxes.lang +++ b/htdocs/langs/he_IL/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/he_IL/mails.lang b/htdocs/langs/he_IL/mails.lang index e31708339bb..8e5376e51f9 100644 --- a/htdocs/langs/he_IL/mails.lang +++ b/htdocs/langs/he_IL/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/he_IL/main.lang b/htdocs/langs/he_IL/main.lang index 4371c400dc0..05e91914906 100644 --- a/htdocs/langs/he_IL/main.lang +++ b/htdocs/langs/he_IL/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/he_IL/mrp.lang b/htdocs/langs/he_IL/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/he_IL/mrp.lang +++ b/htdocs/langs/he_IL/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/he_IL/stocks.lang b/htdocs/langs/he_IL/stocks.lang index d99d23d1d18..5d1abeffa0d 100644 --- a/htdocs/langs/he_IL/stocks.lang +++ b/htdocs/langs/he_IL/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/he_IL/withdrawals.lang b/htdocs/langs/he_IL/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/he_IL/withdrawals.lang +++ b/htdocs/langs/he_IL/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/he_IL/workflow.lang b/htdocs/langs/he_IL/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/he_IL/workflow.lang +++ b/htdocs/langs/he_IL/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/hi_IN/accountancy.lang b/htdocs/langs/hi_IN/accountancy.lang index c137d53be96..46d584fa5d7 100644 --- a/htdocs/langs/hi_IN/accountancy.lang +++ b/htdocs/langs/hi_IN/accountancy.lang @@ -16,6 +16,8 @@ ThisService=यह सेवा ThisProduct=यह उत्पाद DefaultForService=सेवा के लिए डिफ़ॉल्ट DefaultForProduct=उत्पाद के लिए डिफ़ॉल्ट +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=सुझाव नहीं दे सकते AccountancySetupDoneFromAccountancyMenu=लेखाकर्म का अधिकांश सेटअप मेनू से किया जाता है %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/hi_IN/admin.lang b/htdocs/langs/hi_IN/admin.lang index 321b843e4c9..5adf390f9fa 100644 --- a/htdocs/langs/hi_IN/admin.lang +++ b/htdocs/langs/hi_IN/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/hi_IN/banks.lang b/htdocs/langs/hi_IN/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/hi_IN/banks.lang +++ b/htdocs/langs/hi_IN/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/hi_IN/boxes.lang b/htdocs/langs/hi_IN/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/hi_IN/boxes.lang +++ b/htdocs/langs/hi_IN/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/hi_IN/mails.lang b/htdocs/langs/hi_IN/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/hi_IN/mails.lang +++ b/htdocs/langs/hi_IN/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/hi_IN/main.lang b/htdocs/langs/hi_IN/main.lang index d44adf6c9fb..7f67e16d9ea 100644 --- a/htdocs/langs/hi_IN/main.lang +++ b/htdocs/langs/hi_IN/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/hi_IN/mrp.lang b/htdocs/langs/hi_IN/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/hi_IN/mrp.lang +++ b/htdocs/langs/hi_IN/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/hi_IN/stocks.lang b/htdocs/langs/hi_IN/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/hi_IN/stocks.lang +++ b/htdocs/langs/hi_IN/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/hi_IN/withdrawals.lang b/htdocs/langs/hi_IN/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/hi_IN/withdrawals.lang +++ b/htdocs/langs/hi_IN/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/hi_IN/workflow.lang b/htdocs/langs/hi_IN/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/hi_IN/workflow.lang +++ b/htdocs/langs/hi_IN/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/hr_HR/accountancy.lang b/htdocs/langs/hr_HR/accountancy.lang index 8dc3ede2487..f5ba4bd62f1 100644 --- a/htdocs/langs/hr_HR/accountancy.lang +++ b/htdocs/langs/hr_HR/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang index c45dced375a..7e0ec932d8e 100644 --- a/htdocs/langs/hr_HR/admin.lang +++ b/htdocs/langs/hr_HR/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Anketa, Upitnik ili Glasanje Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Marže -Module59000Desc=Modul za upravljanje maržama +Module59000Desc=Module to follow margins Module60000Name=Provizije Module60000Desc=Modul za upravljanje provizijama Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimizacija pretrage -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/hr_HR/banks.lang b/htdocs/langs/hr_HR/banks.lang index 8f4eededff5..6e93525512f 100644 --- a/htdocs/langs/hr_HR/banks.lang +++ b/htdocs/langs/hr_HR/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/hr_HR/boxes.lang b/htdocs/langs/hr_HR/boxes.lang index 78c566be990..62c1870fd62 100644 --- a/htdocs/langs/hr_HR/boxes.lang +++ b/htdocs/langs/hr_HR/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Zadnja %s tekuća mjesece ChooseBoxToAdd=Dodaj prozorčić na početnu stranicu BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/hr_HR/mails.lang b/htdocs/langs/hr_HR/mails.lang index f94b828340b..2b7ce391248 100644 --- a/htdocs/langs/hr_HR/mails.lang +++ b/htdocs/langs/hr_HR/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang index 64569be38b6..ad0c07d9405 100644 --- a/htdocs/langs/hr_HR/main.lang +++ b/htdocs/langs/hr_HR/main.lang @@ -224,6 +224,7 @@ Value=Vrijednost PersonalValue=Osobna vrijednost NewObject=Novi%s NewValue=Nova vrijednost +OldValue=Old value %s CurrentValue=Trenutna vrijednost Code=Oznaka Type=Vrsta @@ -655,6 +656,7 @@ SupplierPreview=Prikaz dobavljača ShowCustomerPreview=Prikaži kupca ShowSupplierPreview=Prikaži dobavljača RefCustomer=Vezani dokument pri kupcu +InternalRef=Internal ref. Currency=Valuta InfoAdmin=Podaci za administratore Undo=Povrati @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/hr_HR/mrp.lang b/htdocs/langs/hr_HR/mrp.lang index 10d00aa9e6d..d40d51ab493 100644 --- a/htdocs/langs/hr_HR/mrp.lang +++ b/htdocs/langs/hr_HR/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/hr_HR/stocks.lang b/htdocs/langs/hr_HR/stocks.lang index f19d6f180e9..66ac338fa3a 100644 --- a/htdocs/langs/hr_HR/stocks.lang +++ b/htdocs/langs/hr_HR/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Vrijednost skladišta UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/hr_HR/withdrawals.lang b/htdocs/langs/hr_HR/withdrawals.lang index 2bd9d25c986..1ac48911293 100644 --- a/htdocs/langs/hr_HR/withdrawals.lang +++ b/htdocs/langs/hr_HR/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Opcija za stvarni način nije postavljena, zaustavljamo nakon ove simulacije ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/hr_HR/workflow.lang b/htdocs/langs/hr_HR/workflow.lang index 8fc3bf1c296..0e485d46ab2 100644 --- a/htdocs/langs/hr_HR/workflow.lang +++ b/htdocs/langs/hr_HR/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang index efbd2144bae..342be1b6de1 100644 --- a/htdocs/langs/hu_HU/accountancy.lang +++ b/htdocs/langs/hu_HU/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index 8f156fbf3c8..76ed7753d26 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Közvetlen nyomtatás (a dokumentumok kinyitása nélkül) a Cup Module55000Name=Szavazás, felmérés vagy választás Module55000Desc=Hozzon létre online szavazást, felmérést vagy választást (például Doodle, Studs, RDVz stb.) Module59000Name=Margók -Module59000Desc=Az árrések kezelésére szolgáló modul +Module59000Desc=Module to follow margins Module60000Name=Jutalékok Module60000Desc=Modul a jutalékok kezelésére Module62000Name=Nemzetközi kereskedelmi feltételek @@ -1308,7 +1308,7 @@ YouUseBestDriver=A(z) %s illesztőprogramot használja, amely a jelenleg elérhe YouDoNotUseBestDriver=A(z) %s illesztőprogramot használja, de az %s illesztőprogram használata ajánlott. NbOfObjectIsLowerThanNoPb=Csak %s %s van az adatbázisban. Ez nem igényel különösebb optimalizálást. SearchOptim=Keresés optimalizálása -YouHaveXObjectUseSearchOptim=%s %s van az adatbázisban. A Nyitólap->Beállítások->Egyéb beállítások oldalon adja hozzá a %s konstanst 1 értékkel. Korlátozza a keresést a karakterláncok elejére, amely lehetővé teszi az adatbázis számára az indexek használatát, és azonnali választ eredményez. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=%s %s van az adatbázisban, és az %s konstans értéke 1-re van állítva a Nyitólap->Beállítások->Egyéb beállítások oldalon. BrowserIsOK=A(z) %s webböngészőt használja. Ez a böngésző rendben van a biztonság és a teljesítmény szempontjából. BrowserIsKO=Az %s webböngészőt használja. Ez a böngésző köztudottan rossz választás a biztonság, a teljesítmény és a megbízhatóság szempontjából. Javasoljuk a Firefox, a Chrome, az Opera vagy a Safari használatát. diff --git a/htdocs/langs/hu_HU/banks.lang b/htdocs/langs/hu_HU/banks.lang index 2ceff216cd2..ccc93640d6a 100644 --- a/htdocs/langs/hu_HU/banks.lang +++ b/htdocs/langs/hu_HU/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/hu_HU/boxes.lang b/htdocs/langs/hu_HU/boxes.lang index 7aa3db3646a..ead5517a357 100644 --- a/htdocs/langs/hu_HU/boxes.lang +++ b/htdocs/langs/hu_HU/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/hu_HU/mails.lang b/htdocs/langs/hu_HU/mails.lang index dda1e486e67..97cce391084 100644 --- a/htdocs/langs/hu_HU/mails.lang +++ b/htdocs/langs/hu_HU/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang index 958c680691f..8b26160d391 100644 --- a/htdocs/langs/hu_HU/main.lang +++ b/htdocs/langs/hu_HU/main.lang @@ -224,6 +224,7 @@ Value=Érték PersonalValue=Személyes Érték NewObject=Új %s NewValue=Új Érték +OldValue=Old value %s CurrentValue=Jelenlegi Érték Code=Kód Type=Típus @@ -655,6 +656,7 @@ SupplierPreview=Eladói előnézet ShowCustomerPreview=Ügyfél előnézet mutatása ShowSupplierPreview=Eladói előnézet megjelenítése RefCustomer=Ügyfél Ref. +InternalRef=Internal ref. Currency=Pénznem InfoAdmin=Információ adminisztrátorok számára Undo=Visszacsinál @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/hu_HU/mrp.lang b/htdocs/langs/hu_HU/mrp.lang index 0a110b4dee4..74f340cce90 100644 --- a/htdocs/langs/hu_HU/mrp.lang +++ b/htdocs/langs/hu_HU/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/hu_HU/stocks.lang b/htdocs/langs/hu_HU/stocks.lang index 796e088e34d..d6a04f7d23e 100644 --- a/htdocs/langs/hu_HU/stocks.lang +++ b/htdocs/langs/hu_HU/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Raktárak értéke UserWarehouseAutoCreate=Felhasználói raktár automatikus létrehozása felhasználó hozzáadásakor AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/hu_HU/withdrawals.lang b/htdocs/langs/hu_HU/withdrawals.lang index 5c76ab61299..64d418be9f1 100644 --- a/htdocs/langs/hu_HU/withdrawals.lang +++ b/htdocs/langs/hu_HU/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Opció a valós módban nem volt beállítva, akkor hagyja abba ezt követően szimuláció ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/hu_HU/workflow.lang b/htdocs/langs/hu_HU/workflow.lang index 569e1e15dc3..245805b071d 100644 --- a/htdocs/langs/hu_HU/workflow.lang +++ b/htdocs/langs/hu_HU/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatikus létrehozás AutomaticClassification=Automatikus minősítés +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang index fdfffbf1e1b..f8548a63d79 100644 --- a/htdocs/langs/id_ID/accountancy.lang +++ b/htdocs/langs/id_ID/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Layanan ini ThisProduct=Produk ini DefaultForService=Standar untuk Layanan DefaultForProduct=Standar untuk Produk +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Tidak bisa menyarankan AccountancySetupDoneFromAccountancyMenu=Kebanyakan aturan akutansi dilakukan dari bilah menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang index 8bbae3ee123..6053f1fcc05 100644 --- a/htdocs/langs/id_ID/admin.lang +++ b/htdocs/langs/id_ID/admin.lang @@ -37,8 +37,8 @@ UnlockNewSessions=Hapuskan penguncian koneksi. YourSession=Sesi Anda Sessions=Sesi Pengguna WebUserGroup=Server web pengguna / grup -PermissionsOnFilesInWebRoot=Permissions on files in web root directory -PermissionsOnFile=Permissions on file %s +PermissionsOnFilesInWebRoot=Izin pada file di direktori root web +PermissionsOnFile=Izin pada file %s NoSessionFound=Konfigurasi PHP Anda tampaknya tidak diizinkan untuk membuat daftar untuk sesi yang aktif. Direktori yang digunakan untuk menyimpan sesi (%s) mungkin dilindungi (misalnya pengaturan izin OS atau oleh pengaturan direktif PHP open_basedir). DBStoringCharset=Karakter set atau charset dari basisdata untuk menyimpan data DBSortingCharset=Karakter set atau charset dari basisdata untuk penyortiran data @@ -56,8 +56,8 @@ GUISetup=Tampakan Display SetupArea=Pengaturan UploadNewTemplate=Unggah templat baru(s) FormToTestFileUploadForm=Halaman percobaan untuk mengunggah berkas (berdasarkan konfigurasi di pengaturan) -ModuleMustBeEnabled=The module/application %s must be enabled -ModuleIsEnabled=The module/application %s has been enabled +ModuleMustBeEnabled=Modul/aplikasi %s harus diaktifkan +ModuleIsEnabled=Modul/aplikasi %s telah diaktifkan IfModuleEnabled=Catatan: Ya akan hanya efektif ketika modul %s diaktifkan RemoveLock=Hapus / ganti nama berkas %s jika sudah ada, untuk memperbolehkan pemakaian alat Perbarui / Instal. RestoreLock=Pulihkan berkas %s, dengan izin baca saja, untuk menonaktifkan pemakaian alat Pembaruan / Instal lebih lanjut. @@ -75,7 +75,7 @@ DisableJavascriptNote=Catatan: Untuk tujuan pengujian atau debug. Pengoptimasian UseSearchToSelectCompanyTooltip=Juga jika Anda memiliki banyak pihak ketiga (> 100.000), Anda dapat mempercepat dengan menetapkan konstanta COMPANY_DONOTSEARCH_ANYWHERE menjadi 1 pada Pengaturan-> Lainnya. Pencarian akan dibatasi kemudian untuk memulai string. UseSearchToSelectContactTooltip=Dan juga jika Anda memiliki banyak pihak ketiga (> 100.000), Anda dapat mempercepatnya dengan menetapkan konstanta CONTACT_DONOTSEARCH_ANYWHERE menjadi 1 di Pengaturan-> Lainnya. Pencarian akan kemudian dibatasi untuk memulai string. DelaiedFullListToSelectCompany=Tunggu hingga tombol ditekan sebelum memuat konten dari daftar kombo Pihak Ketiga.
    Ini dapat meningkatkan kecepatan kinerja jika Anda memiliki banyak pihak ketiga, tetapi cara ini kurang nyaman. -DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.
    This may increase performance if you have a large number of contacts, but it is less convenient. +DelaiedFullListToSelectContact=Tunggu hingga tombol ditekan sebelum memuat konten dari daftar kombo Kontak.
    Ini dapat meningkatkan kinerja jika Anda memiliki banyak kontak, tetapi bisa menjadi kurang nyaman. NumberOfKeyToSearch=Jumlah karakter yang memicu pencarian: %s NumberOfBytes=Jumlah Bytes SearchString=Cari string @@ -84,7 +84,7 @@ AllowToSelectProjectFromOtherCompany=Pada dokumen pihak ketiga, dapat memilih pr JavascriptDisabled=JavaScript dinonaktifkan UsePreviewTabs=Gunakan tab pratinjau ShowPreview=Tampilkan pratinjau -ShowHideDetails=Show-Hide details +ShowHideDetails=Tampilkan-Sembunyikan rincian PreviewNotAvailable=Preview tidak tersedia ThemeCurrentlyActive=Tema yang sedang aktif MySQLTimeZone=TimeZone MySql (database) @@ -154,8 +154,8 @@ SystemToolsAreaDesc=Area ini menyediakan fungsi administrasi. Gunakan menu untuk Purge=Perbersihan PurgeAreaDesc=Halaman ini memungkinkan Anda untuk menghapus semua file yang dihasilkan atau disimpan oleh Dolibarr (file sementara atau semua file di%sdirektori). Menggunakan fitur ini biasanya tidak diperlukan. Ini disediakan sebagai solusi untuk pengguna yang Dolibarr di-host oleh penyedia yang tidak menawarkan izin untuk menghapus file yang dihasilkan oleh server web. PurgeDeleteLogFile=Hapus file log, termasuk%sdidefinisikan untuk modul Syslog (tidak ada risiko kehilangan data) -PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago. -PurgeDeleteTemporaryFilesShort=Delete log and temporary files +PurgeDeleteTemporaryFiles=Hapus semua log dan file sementara (tidak ada risiko kehilangan data). Catatan: Penghapusan file sementara dilakukan hanya jika direktori temp (sementara) dibuat lebih dari 24 jam yang lalu. +PurgeDeleteTemporaryFilesShort=Hapus log dan file sementara PurgeDeleteAllFilesInDocumentsDir=Hapus semua file dalam direktori:%s .
    Ini akan menghapus semua dokumen yang dihasilkan terkait dengan elemen (pihak ketiga, faktur dll ...), file yang diunggah ke dalam modul ECM, kesedihan cadangan database dan file sementara. PurgeRunNow=Bersihkan sekarang PurgeNothingToDelete=Tidak ada direktori atau file untuk dihapus. @@ -257,7 +257,7 @@ ReferencedPreferredPartners=Mitra yang Dipilih OtherResources=Sumber daya lainnya ExternalResources=Sumber Daya Eksternal SocialNetworks=Jaringan sosial -SocialNetworkId=Social Network ID +SocialNetworkId=ID Jaringan Sosial ForDocumentationSeeWiki=Untuk dokumentasi pengguna atau pengembang (Doc, FAQs ...),
    lihatlah pada Dolibarr Wiki:
    %s a0ebd08bc08bc08 ForAnswersSeeForum=Untuk pertanyaan / bantuan lain, Anda dapat menggunakan forum Dolibarr:
    %s HelpCenterDesc1=Berikut adalah beberapa sumber untuk mendapatkan bantuan dan dukungan dengan Dolibarr. @@ -276,7 +276,7 @@ NoticePeriod=Periode pemberitahuan NewByMonth=Baru setiap bulan Emails=Email EMailsSetup=Penyiapan email -EMailsDesc=This page allows you to set parameters or options for email sending. +EMailsDesc=Halaman ini memungkinkan Anda mengatur parameter atau pilihan untuk pengiriman email. EmailSenderProfiles=Email profil pengirim EMailsSenderProfileDesc=Anda dapat menyimpan bagian ini kosong. Jika Anda memasukkan beberapa email di sini, mereka akan ditambahkan ke daftar kemungkinan pengirim ke kotak kombo saat Anda menulis email baru. MAIN_MAIL_SMTP_PORT=Port SMTP / SMTPS (nilai default dalam php.ini:%s ) @@ -294,7 +294,7 @@ MAIN_MAIL_SMTPS_ID=ID SMTP (jika server pengirim memerlukan otentikasi) MAIN_MAIL_SMTPS_PW=Kata Sandi SMTP (jika server pengirim memerlukan otentikasi) MAIN_MAIL_EMAIL_TLS=Gunakan enkripsi TLS (SSL) MAIN_MAIL_EMAIL_STARTTLS=Gunakan enkripsi TLS (STARTTLS) -MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés +MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Otorisasi les certificats auto-signés MAIN_MAIL_EMAIL_DKIM_ENABLED=Gunakan DKIM untuk menghasilkan tanda tangan email MAIN_MAIL_EMAIL_DKIM_DOMAIN=Domain Email untuk digunakan dengan dkim MAIN_MAIL_EMAIL_DKIM_SELECTOR=Nama pemilih dkim @@ -306,9 +306,9 @@ MAIN_MAIL_DEFAULT_FROMTYPE=Email pengirim default untuk pengiriman manual (Email UserEmail=Email pengguna CompanyEmail=Email Perusahaan FeatureNotAvailableOnLinux=Fitur tidak tersedia di sistem seperti Unix. Uji program sendmail Anda secara lokal. -FixOnTransifex=Fix the translation on the online translation platform of project +FixOnTransifex=Perbaiki terjemahan pada platform online terjemahan proyek SubmitTranslation=Jika terjemahan untuk bahasa ini tidak lengkap atau Anda menemukan kesalahan, Anda dapat memperbaikinya dengan mengedit file dalam direktorilangs / %sdan kirimkan perubahan Anda ke www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or, if you are a developer, with a PR on github.com/Dolibarr/dolibarr +SubmitTranslationENUS=Jika terjemahan untuk bahasa ini tidak lengkap atau Anda menemukan kesalahan, Anda dapat memperbaikinya dengan mengedit file ke direktori langs/%s dan mengirimkan file yang telah diubah ke dolibarr.org/forum atau, jika Anda seorang pengembang, dengan PR di github .com / Dolibarr / dolibarr ModuleSetup=Setup Modul ModulesSetup=Modul / Pengaturan aplikasi ModuleFamilyBase=Sistem @@ -377,7 +377,7 @@ ExamplesWithCurrentSetup=Contoh dengan konfigurasi saat ini ListOfDirectories=Daftar direktori templat OpenDocument ListOfDirectoriesForModelGenODT=Daftar direktori yang berisi file templat dengan format OpenDocument.

    Masukkan path direktori lengkap di sini.
    Tambahkan carriage return antara direktori eah.
    Untuk menambahkan direktori modul GED, tambahkan di siniDOL_DATA_ROOT / ecm / yourdirectoryname .

    File dalam direktori tersebut harus diakhiri dengan.odtatau.ods . NumberOfModelFilesFound=Jumlah file template ODT / ODS yang ditemukan di direktori ini -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +ExampleOfDirectoriesForModelGen=Contoh sintaks:
    c: \\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=
    Untuk mengetahui cara membuat tempt dokumen ODT Anda, sebelum menyimpannya di direktori tersebut, baca dokumentasi wiki: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=Posisi Nama/Nama Belakang @@ -393,12 +393,12 @@ ModuleMustBeEnabledFirst=Modul%sharus diaktifkan terlebih dahulu jika And SecurityToken=Kunci untuk mengamankan URL NoSmsEngine=Tidak ada manajer pengirim SMS yang tersedia. Manajer pengirim SMS tidak diinstal dengan distribusi default karena tergantung pada vendor eksternal, tetapi Anda dapat menemukannya di %s PDF=PDF -PDFDesc=Global options for PDF generation -PDFAddressForging=Rules for address section +PDFDesc=Pilihan / opsi global untuk pembuatan PDF +PDFAddressForging=Aturan untuk bagian dari alamat HideAnyVATInformationOnPDF=Sembunyikan semua informasi yang terkait dengan Pajak Penjualan / PPN PDFRulesForSalesTax=Aturan untuk Pajak Penjualan / PPN PDFLocaltax=Aturan untuk %s -HideLocalTaxOnPDF=Hide %s rate in column Sale Tax / VAT +HideLocalTaxOnPDF=Sembunyikan tarif %s pada kolom Pajak Penjualan / PPN HideDescOnPDF=Sembunyikan deskripsi produk HideRefOnPDF=Sembunyikan produk ref. HideDetailsOnPDF=Sembunyikan detail lini produk @@ -408,16 +408,16 @@ UrlGenerationParameters=Parameter untuk mengamankan URL SecurityTokenIsUnique=Gunakan parameter keamanan unik untuk setiap URL EnterRefToBuildUrl=Masukkan referensi untuk objek %s GetSecuredUrl=Dapatkan URL yang dihitung -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +ButtonHideUnauthorized=Sembunyikan juga tombol tindakan tidak sah untuk pengguna internal (jika tidak berwarna abu-abu) OldVATRates=Suku VAT lama NewVATRates=Suku VAT baru PriceBaseTypeToChange=Ubah harga dengan nilai referensi dasar ditentukan pada MassConvert=Luncurkan konversi massal PriceFormatInCurrentLanguage=Format Harga Dalam Bahasa Saat Ini String=Tali -String1Line=String (1 line) +String1Line=String (1 baris) TextLong=Teks panjang -TextLongNLines=Long text (n lines) +TextLongNLines=Teks panjang (n baris) HtmlText=Teks html Int=Bilangan bulat Float=Mengapung @@ -444,9 +444,9 @@ ExtrafieldParamHelpPassword=Membiarkan baris ini kosong berarti nilai ini akan d ExtrafieldParamHelpselect=Daftar nilai harus berupa garis dengan kunci format, nilai (di mana kunci tidak boleh '0')

    misalnya:
    1, nilai1
    2, nilai2 a0342fccfda0b3f0f0f0fb0f0f0fb03 daftar tergantung pada daftar atribut pelengkap lain:
    1, nilai1 | options_ parent_list_code : parent_key
    2, value2 | options_ parent_list_code : parent_key

    dalam rangka untuk memiliki daftar tergantung pada daftar lain:
    1, nilai1 | parent_list_code : parent_key
    2, value2 | parent_list_code : parent_key ExtrafieldParamHelpcheckbox=Daftar nilai harus berupa garis dengan kunci format, nilai (di mana kunci tidak boleh '0')

    misalnya:
    1, value1
    2, value2 a0342fccfda2b3f0f3f0f3f ExtrafieldParamHelpradio=Daftar nilai harus berupa garis dengan kunci format, nilai (di mana kunci tidak boleh '0')

    misalnya:
    1, value1
    2, value2 a0342fccfda2b3f0f3f0f3f -ExtrafieldParamHelpsellist=List of values comes from a table
    Syntax: table_name:label_field:id_field::filter
    Example: c_typent:libelle:id::filter

    - id_field is necessarly a primary int key
    - filter can be a simple test (eg active=1) to display only active value
    You can also use $ID$ in filter which is the current id of current object
    To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.
    if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

    In order to have the list depending on another complementary attribute list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    In order to have the list depending on another list:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpsellist=Daftar nilai berasal dari tabel
    Sintaks: nama_tabel: label_field: id_field :: filter
    Contoh: c_typent: libelle: id :: filter

    - id_field adalah kunci utama = 1) untuk menampilkan hanya nilai aktif
    Anda juga dapat menggunakan $ ID $ in filter yang merupakan id saat ini dari objek
    Untuk menggunakan SELECT ke dalam filter, gunakan kata kunci $ SEL $ untuk melewati perlindungan anti-injeksi.
    jika Anda ingin memfilter extrafields gunakan sintaks extra.fieldcode = ... (di mana kode field adalah kode dari extrafield)

    Untuk memiliki daftar tergantung pada daftar atribut pelengkap lainnya:
    c_typ: libelle: id19bz0 parent_list_code | parent_column: filter

    Untuk memiliki daftar yang bergantung pada daftar lain:
    c_typent: libelle: id_col33_list: parentkolom ExtrafieldParamHelpchkbxlst=Daftar nilai berasal dari tabel
    Sintaks: table_name: label_field: id_field :: filter
    Contoh: c_typent: libelle: id :: filter

    filter a hanya dapat ditampilkan sebagai contoh a juga dapat menggunakan $ ID $ dalam penyihir filter adalah id saat ini dari objek saat ini
    Untuk melakukan SELECT dalam menggunakan $ SEL $
    jika Anda ingin memfilter pada extrafields gunakan sintaks extra.fieldcode = ... (di mana kode baris adalah kode extrafield)

    dalam rangka untuk memiliki daftar tergantung pada daftar atribut pelengkap lain:
    c_typent: Libelle: id: options_ parent_list_code | parent_column: filter

    dalam rangka untuk memiliki daftar tergantung pada daftar lain: c_typent
    : libelle: id: parent_list_code | parent_column: filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
    Syntax: ObjectName:Classpath +ExtrafieldParamHelplink=Parameter harus ObjectName: Classpath
    Sintaks: ObjectName: Classpath ExtrafieldParamHelpSeparator=Biarkan kosong untuk pemisah sederhana
    Setel ini menjadi 1 untuk pemisah runtuh (buka secara default untuk sesi baru, kemudian status disimpan untuk setiap sesi pengguna) status disimpan sebelum setiap sesi pengguna) LibraryToBuildPDF=Perpustakaan digunakan untuk pembuatan PDF LocalTaxDesc=Beberapa negara dapat menerapkan dua atau tiga pajak pada setiap baris faktur. Jika demikian, pilih jenis untuk pajak kedua dan ketiga beserta tarifnya. Jenis yang mungkin adalah:
    1: pajak daerah berlaku untuk produk dan layanan tanpa PPN (pajak lokal dihitung berdasarkan jumlah tanpa pajak)
    2: pajak daerah berlaku untuk produk dan layanan termasuk PPN (pajak lokal dihitung berdasarkan jumlah + pajak utama) a0342fccfda19bz 3: pajak lokal berlaku untuk produk tanpa pajak (pajak lokal dihitung berdasarkan jumlah tanpa pajak)
    4: pajak lokal berlaku untuk produk termasuk pajak (pajak lokal dihitung atas jumlah + pajak utama)
    5: pajak lokal berlaku untuk layanan tanpa pajak (pajak lokal dihitung pada jumlah tanpa pajak)
    6: pajak lokal berlaku untuk layanan termasuk PPN (pajak lokal dihitung atas jumlah + pajak) @@ -484,13 +484,13 @@ ModuleCompanyCodeCustomerDigitaria=%s diikuti oleh nama pelanggan terpotong deng ModuleCompanyCodeSupplierDigitaria=%s diikuti oleh nama pemasok terpotong dengan jumlah karakter: %s untuk kode akuntansi pemasok. Use3StepsApproval=Secara default, Pesanan Pembelian harus dibuat dan disetujui oleh 2 pengguna yang berbeda (satu langkah / pengguna untuk membuat dan satu langkah / pengguna untuk menyetujui. Perhatikan bahwa jika pengguna memiliki izin untuk membuat dan menyetujui, satu langkah / pengguna akan cukup) . Anda dapat bertanya dengan opsi ini untuk memperkenalkan langkah ketiga / persetujuan pengguna, jika jumlahnya lebih tinggi dari nilai yang ditentukan (jadi 3 langkah diperlukan: 1 = validasi, 2 = persetujuan pertama dan 3 = persetujuan kedua jika jumlahnya cukup).
    Set ini menjadi kosong jika satu persetujuan (2 langkah) sudah cukup, setel ke nilai yang sangat rendah (0,1) jika persetujuan kedua (3 langkah) selalu diperlukan. UseDoubleApproval=Gunakan persetujuan 3 langkah saat jumlah (tanpa pajak) lebih tinggi dari ... -WarningPHPMail=WARNING: The setup to send emails from the application is using the default generic setup. It is often better to setup outgoing emails to use the email server of your Email Service Provider instead of the default setup for several reasons: -WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM -WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota). -WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox. -WarningPHPMailD=If the method 'PHP Mail' is really the method you would like to use, you can remove this warning by adding the constant MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP to 1 in Home - Setup - Other. +WarningPHPMail=PERINGATAN: Pengaturan untuk mengirim email dari aplikasi menggunakan pengaturan umum default. Seringkali lebih baik mengatur email keluar untuk menggunakan server email Penyedia Layanan Email Anda daripada pengaturan default karena beberapa alasan: +WarningPHPMailA=- Menggunakan server Penyedia Layanan Email meningkatkan kepercayaan email Anda, sehingga meningkatkan pengiriman tanpa ditandai sebagai SPAM +WarningPHPMailB=- Beberapa Penyedia Layanan Email (seperti Yahoo) tidak mengizinkan Anda mengirim email dari server lain selain dari server mereka sendiri. Pengaturan Anda saat ini menggunakan server aplikasi untuk mengirim email dan bukan server penyedia email Anda, jadi beberapa penerima (yang kompatibel dengan protokol DMARC terbatas), akan menanyakan penyedia email Anda apakah mereka dapat menerima email Anda dan beberapa penyedia email (seperti Yahoo) mungkin menjawab "tidak" karena server tersebut bukan milik mereka, jadi beberapa Email yang Anda kirim mungkin tidak dapat diterima untuk pengiriman (hati-hati juga dengan kuota pengiriman penyedia email Anda). +WarningPHPMailC=- Menggunakan server SMTP milik Penyedia Layanan Email Anda sendiri untuk mengirim email juga menarik sehingga semua email yang dikirim dari aplikasi juga akan disimpan ke direktori "Terkirim" di kotak surat Anda. +WarningPHPMailD=Jika metode 'PHP Mail' benar-benar metode yang ingin Anda gunakan, Anda dapat menghapus peringatan ini dengan menambahkan MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP konstan ke 1 di Home - Setup - Other. WarningPHPMail2=Jika penyedia SMTP email Anda perlu membatasi klien email ke beberapa alamat IP (sangat jarang), ini adalah alamat IP dari agen pengguna email (MUA) untuk aplikasi ERP CRM Anda:%s . -WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask you domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: %s. +WarningPHPMailSPF=Jika nama domain di alamat email pengirim Anda dilindungi oleh data SPF (tanya pendaftar nama domain), Anda harus menambahkan IP berikut di data SPF DNS domain Anda: %s . ClickToShowDescription=Klik untuk menampilkan deskripsi DependsOn=Modul ini membutuhkan modul RequiredBy=Modul ini diperlukan oleh modul @@ -556,9 +556,9 @@ Module54Desc=Manajemen kontrak (layanan atau langganan berulang) Module55Name=Barcode Module55Desc=Manajemen barcode Module56Name=Pembayaran dengan transfer kredit -Module56Desc=Management of payment of suppliers by Credit Transfer orders. It includes generation of SEPA file for European countries. -Module57Name=Payments by Direct Debit -Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries. +Module56Desc=Manajemen pembayaran pemasok dengan pesanan Transfer Kredit. Ini termasuk pembuatan file SEPA untuk negara-negara Eropa. +Module57Name=Pembayaran dengan Debit Langsung +Module57Desc=Pengelolaan pesanan Debit Langsung. Ini termasuk pembuatan file SEPA untuk negara-negara Eropa. Module58Name=ClickToDial Module58Desc=Integrasi sistem ClickToDial (Asterisk, ...) Module60Name=Stiker @@ -664,13 +664,13 @@ Module50200Desc=Menawarkan pelanggan halaman pembayaran online PayPal (akun PayP Module50300Name=Garis Module50300Desc=Menawarkan pelanggan halaman pembayaran online Stripe (kartu kredit / debit). Ini dapat digunakan untuk memungkinkan pelanggan Anda melakukan pembayaran ad-hoc atau pembayaran yang terkait dengan objek Dolibarr tertentu (faktur, pesanan, dll ...) Module50400Name=Akuntansi (entri ganda) -Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats. +Module50400Desc=Manajemen akuntansi (entri ganda, mendukung Buku Besar Umum dan Pembantu). Ekspor buku besar dalam beberapa format perangkat lunak akuntansi lainnya. Module54000Name=PrintIPP Module54000Desc=Cetak langsung (tanpa membuka dokumen) menggunakan antarmuka Cups IPP (Printer harus terlihat dari server, dan CUPS harus diinstal pada server). Module55000Name=Polling, Survei atau Vote Module55000Desc=Buat jajak pendapat, survei, atau suara online (seperti Doodle, Studs, RDVz dll ...) Module59000Name=Margin -Module59000Desc=Modul untuk mengelola margin +Module59000Desc=Modul untuk mengikuti margin Module60000Name=Komisi Module60000Desc=Modul untuk mengelola komisi Module62000Name=Istilah Ekonomi Internasional @@ -679,7 +679,7 @@ Module63000Name=Sumber daya Module63000Desc=Kelola sumber daya (printer, mobil, kamar, ...) untuk dialokasikan ke agenda Permission11=Membaca Nota Pelanggan Permission12=Membuat/Merubah Nota Pelanggan -Permission13=Invalidate customer invoices +Permission13=Faktur pelanggan tidak valid Permission14=Validasi Nota Pelanggan Permission15=Mengirim Nota Pelanggan Menggunakan EMail Permission16=Mencatat Pembayaran Untuk Nota Pelanggan @@ -696,7 +696,7 @@ Permission32=Membuat/Merubah produk Permission34=Menghapus Produk Permission36=Lihat / kelola produk tersembunyi Permission38=Produk ekspor -Permission39=Ignore minimum price +Permission39=Abaikan harga minimum Permission41=Baca proyek dan tugas (proyek bersama dan proyek yang saya hubungi). Dapat juga memasukkan waktu yang dikonsumsi, untuk saya atau hierarki saya, pada tugas yang diberikan (absen) Permission42=Buat / modifikasi proyek (proyek bersama dan proyek yang saya hubungi). Dapat juga membuat tugas dan menetapkan pengguna untuk proyek dan tugas Permission44=Hapus proyek (proyek bersama dan proyek yang saya hubungi) @@ -705,9 +705,9 @@ Permission61=Baca intervensi Permission62=Buat / modifikasi intervensi Permission64=Hapus intervensi Permission67=Intervensi ekspor -Permission68=Send interventions by email -Permission69=Validate interventions -Permission70=Invalidate interventions +Permission68=Kirim intervensi melalui email +Permission69=Validasi intervensi +Permission70=Intervensi tidak valid Permission71=Membaca Data Anggota Permission72=Membuat/Merubah Data Anggota Permission74=Menghapus Data Anggota @@ -730,7 +730,7 @@ Permission95=Membaca Laporan Permission101=Baca kiriman Permission102=Buat / ubah pengiriman Permission104=Validasi pengiriman -Permission105=Send sendings by email +Permission105=Kirim kiriman melalui email Permission106=Pengiriman ekspor Permission109=Hapus pengiriman Permission111=Baca akun keuangan @@ -838,11 +838,11 @@ Permission402=Buat / ubah diskon Permission403=Validasi diskon Permission404=Hapus diskon Permission430=Gunakan Debug Bar -Permission511=Read payments of salaries (yours and subordinates) +Permission511=Baca pembayaran gaji (milik Anda dan bawahan) Permission512=Buat / ubah pembayaran gaji Permission514=Hapus pembayaran gaji -Permission517=Read payments of salaries of everybody -Permission519=Export salaries +Permission517=Baca pembayaran gaji semua orang +Permission519=Gaji ekspor Permission520=Baca Pinjaman Permission522=Buat / modifikasi pinjaman Permission524=Hapus pinjaman @@ -853,19 +853,19 @@ Permission532=Membuat/Merubah Jasa Permission534=Menghapus Jasa Permission536=Lihat / kelola layanan tersembunyi Permission538=Layanan ekspor -Permission561=Read payment orders by credit transfer -Permission562=Create/modify payment order by credit transfer -Permission563=Send/Transmit payment order by credit transfer -Permission564=Record Debits/Rejections of credit transfer -Permission601=Read stickers -Permission602=Create/modify stickers -Permission609=Delete stickers +Permission561=Baca perintah pembayaran melalui transfer kredit +Permission562=Buat / ubah perintah pembayaran melalui transfer kredit +Permission563=Mengirim / Mengirimkan perintah pembayaran melalui transfer kredit +Permission564=Catat Debit / Penolakan transfer kredit +Permission601=Baca stiker +Permission602=Buat / modifikasi stiker +Permission609=Hapus stiker Permission650=Baca Bills of Material Permission651=Buat / Perbarui Bills of Material Permission652=Hapus Bills of Material -Permission660=Read Manufacturing Order (MO) -Permission661=Create/Update Manufacturing Order (MO) -Permission662=Delete Manufacturing Order (MO) +Permission660=Baca Pesanan Pabrikan (MO) +Permission661=Buat / Perbarui Pesanan Pabrikan (MO) +Permission662=Hapus Pesanan Pabrikan (MO) Permission701=Membaca Sumbangan Permission702=Membuat/Merubah Sumbangan Permission703=Menghapus Sumbangan @@ -875,8 +875,8 @@ Permission773=Hapus laporan pengeluaran Permission774=Baca semua laporan pengeluaran (bahkan untuk pengguna bukan bawahan) Permission775=Menyetujui laporan pengeluaran Permission776=Membayar laporan pengeluaran -Permission777=Read expense reports of everybody -Permission778=Create/modify expense reports of everybody +Permission777=Baca laporan pengeluaran semua orang +Permission778=Buat / ubah laporan pengeluaran semua orang Permission779=Laporan pengeluaran ekspor Permission1001=Membaca Stok Permission1002=Membuat/Merubah Gudang @@ -901,9 +901,9 @@ Permission1185=Setujui pesanan pembelian Permission1186=Memesan pesanan pembelian Permission1187=Mengakui tanda terima pesanan pembelian Permission1188=Hapus pesanan pembelian -Permission1189=Check/Uncheck a purchase order reception +Permission1189=Centang / Hapus centang pada penerimaan pesanan pembelian Permission1190=Menyetujui (persetujuan kedua) pesanan pembelian -Permission1191=Export supplier orders and their attributes +Permission1191=Ekspor pesanan pemasok dan atributnya Permission1201=Dapatkan hasil ekspor Permission1202=Buat / Ubah ekspor Permission1231=Baca faktur vendor @@ -917,8 +917,8 @@ Permission1251=Menjalankan impor massal data eksternal ke dalam basis data (memu Permission1321=Ekspor faktur, atribut, dan pembayaran pelanggan Permission1322=Buka kembali tagihan yang dibayar Permission1421=Ekspor pesanan dan atribut penjualan -Permission1521=Read documents -Permission1522=Delete documents +Permission1521=Baca dokumen +Permission1522=Hapus dokumen Permission2401=Baca tindakan (agenda atau tugas) yang ditautkan dengan akun penggunanya (jika pemilik agenda atau baru saja ditugaskan) Permission2402=Buat / modifikasi tindakan (agenda atau tugas) yang ditautkan ke akun penggunanya (jika pemilik agenda) Permission2403=Hapus tindakan (agenda atau tugas) yang ditautkan ke akun penggunanya (jika pemilik agenda) @@ -933,7 +933,7 @@ Permission2515=Siapkan direktori dokumen Permission2801=Gunakan klien FTP dalam mode baca (hanya menjelajah dan mengunduh) Permission2802=Gunakan klien FTP dalam mode tulis (hapus atau unggah file) Permission3200=Baca agenda yang diarsipkan dan sidik jari -Permission3301=Generate new modules +Permission3301=Hasilkan modul baru Permission4001=Lihat karyawan Permission4002=Buat karyawan Permission4003=Hapus karyawan @@ -953,13 +953,13 @@ Permission23001=Baca pekerjaan terjadwal Permission23002=Buat / perbarui pekerjaan yang Dijadwalkan Permission23003=Hapus pekerjaan terjadwal Permission23004=Jalankan pekerjaan yang Dijadwalkan -Permission50101=Use Point of Sale (SimplePOS) -Permission50151=Use Point of Sale (TakePOS) +Permission50101=Gunakan Point of Sale (SimplePOS) +Permission50151=Gunakan Point of Sale (TakePOS) Permission50201=Membaca Data Transaksi Permission50202=Transaksi impor -Permission50330=Read objects of Zapier -Permission50331=Create/Update objects of Zapier -Permission50332=Delete objects of Zapier +Permission50330=Membaca objek Zapier +Permission50331=Buat / Perbarui objek Zapier +Permission50332=Hapus objek Zapier Permission50401=Ikat produk dan faktur dengan akun akuntansi Permission50411=Baca operasi dalam buku besar Permission50412=Tulis / Edit operasi dalam buku besar @@ -983,21 +983,21 @@ Permission63001=Baca sumber daya Permission63002=Buat / modifikasi sumber daya Permission63003=Hapus sumber daya Permission63004=Tautkan sumber daya ke agenda agenda -Permission64001=Allow direct printing -Permission67000=Allow printing of receipts -Permission68001=Read intracomm report -Permission68002=Create/modify intracomm report -Permission68004=Delete intracomm report -Permission941601=Read receipts -Permission941602=Create and modify receipts -Permission941603=Validate receipts -Permission941604=Send receipts by email -Permission941605=Export receipts -Permission941606=Delete receipts +Permission64001=Izinkan pencetakan langsung +Permission67000=Izinkan pencetakan tanda terima +Permission68001=Baca laporan intracomm +Permission68002=Membuat / mengubah laporan intracomm +Permission68004=Hapus laporan intracomm +Permission941601=Tanda terima telah dibaca +Permission941602=Membuat dan mengubah tanda terima +Permission941603=Validasi tanda terima +Permission941604=Kirim tanda terima melalui email +Permission941605=Ekspor tanda terima +Permission941606=Hapus tanda terima DictionaryCompanyType=Jenis pihak ketiga DictionaryCompanyJuridicalType=Badan hukum pihak ketiga -DictionaryProspectLevel=Prospect potential level for companies -DictionaryProspectContactLevel=Prospect potential level for contacts +DictionaryProspectLevel=Tingkat prospek potensial bagi perusahaan +DictionaryProspectContactLevel=Tingkatkan prospek potensial untuk kontak DictionaryCanton=Negara Bagian / Provinsi DictionaryRegion=Daerah DictionaryCountry=Negara @@ -1027,14 +1027,14 @@ DictionaryEMailTemplates=Template Email DictionaryUnits=Unit DictionaryMeasuringUnits=Unit Pengukur DictionarySocialNetworks=Jaringan sosial -DictionaryProspectStatus=Prospect status for companies -DictionaryProspectContactStatus=Prospect status for contacts +DictionaryProspectStatus=Status prospek untuk perusahaan +DictionaryProspectContactStatus=Status prospek untuk kontak DictionaryHolidayTypes=Jenis cuti DictionaryOpportunityStatus=Status memimpin untuk proyek / prospek DictionaryExpenseTaxCat=Laporan biaya - Kategori transportasi DictionaryExpenseTaxRange=Laporan biaya - Kisaran berdasarkan kategori transportasi -DictionaryTransportMode=Intracomm report - Transport mode -TypeOfUnit=Type of unit +DictionaryTransportMode=Laporan Intracomm - Mode transportasi +TypeOfUnit=Jenis unit SetupSaved=Pengaturan disimpan SetupNotSaved=Pengaturan tidak disimpan BackToModuleList=Kembali ke daftar Modul @@ -1085,7 +1085,7 @@ LabelUsedByDefault=Label digunakan secara default jika tidak ada terjemahan yang LabelOnDocuments=Beri label pada dokumen LabelOrTranslationKey=Label atau kunci terjemahan ValueOfConstantKey=Nilai konstanta konfigurasi -ConstantIsOn=Option %s is on +ConstantIsOn=Opsi %s aktif NbOfDays=Jumlah hari AtEndOfMonth=diakhir bulan CurrentNext=Sekarang / selanjutnya @@ -1130,7 +1130,7 @@ LoginPage=Halaman masuk BackgroundImageLogin=Gambar latar belakang PermanentLeftSearchForm=Formulir pencarian permanen di menu sebelah kiri DefaultLanguage=Bahasa default -EnableMultilangInterface=Enable multilanguage support for customer or vendor relationships +EnableMultilangInterface=Aktifkan dukungan multibahasa untuk hubungan pelanggan atau vendor EnableShowLogo=Tampilkan logo perusahaan di menu CompanyInfo=Perusahaan/Organisasi CompanyIds=Identitas Perusahaan / Organisasi @@ -1184,7 +1184,7 @@ InfoWebServer=Tentang Server Web InfoDatabase=Tentang Basis Data InfoPHP=Tentang PHP InfoPerf=Tentang Pertunjukan -InfoSecurity=About Security +InfoSecurity=Tentang Keamanan BrowserName=Nama peramban BrowserOS=OS peramban ListOfSecurityEvents=Daftar agenda keamanan Dolibarr @@ -1235,7 +1235,7 @@ RestoreDesc2=Kembalikan file cadangan (misalnya file zip) dari direktori "dokume RestoreDesc3=Kembalikan struktur database dan data dari file dump cadangan ke dalam database instalasi Dolibarr baru atau ke dalam database instalasi saat ini ( %s ). Peringatan, setelah pemulihan selesai, Anda harus menggunakan login / kata sandi, yang ada dari waktu cadangan / instalasi untuk terhubung lagi.
    Untuk mengembalikan database cadangan ke dalam instalasi saat ini, Anda dapat mengikuti asisten ini. RestoreMySQL=Impor MySQL ForcedToByAModule=Aturan ini dipaksa untuk%soleh modul yang diaktifkan -ValueIsForcedBySystem=This value is forced by the system. You can't change it. +ValueIsForcedBySystem=Nilai ini dipaksakan oleh sistem. Anda tidak bisa mengubahnya. PreviousDumpFiles=File cadangan yang ada PreviousArchiveFiles=File arsip yang ada WeekStartOnDay=Hari pertama dalam seminggu @@ -1296,8 +1296,8 @@ WarningAtLeastKeyOrTranslationRequired=Kriteria pencarian diperlukan setidaknya NewTranslationStringToShow=String terjemahan baru untuk ditampilkan OriginalValueWas=Terjemahan aslinya ditimpa. Nilai asli adalah:

    %s TransKeyWithoutOriginalValue=Anda memaksa terjemahan baru untuk kunci terjemahan ' %s ' yang tidak ada dalam file bahasa apa pun -TitleNumberOfActivatedModules=Activated modules -TotalNumberOfActivatedModules=Activated modules: %s / %s +TitleNumberOfActivatedModules=Modul yang diaktifkan +TotalNumberOfActivatedModules=Modul yang diaktifkan: %s / %s YouMustEnableOneModule=Anda setidaknya harus mengaktifkan 1 modul ClassNotFoundIntoPathWarning=Kelas %s tidak ditemukan di jalur PHP YesInSummer=Ya di musim panas @@ -1308,7 +1308,7 @@ YouUseBestDriver=Anda menggunakan driver %s yang merupakan driver terbaik yang s YouDoNotUseBestDriver=Anda menggunakan driver %s tetapi driver %s disarankan. NbOfObjectIsLowerThanNoPb=Anda hanya memiliki %s %s dalam database. Ini tidak memerlukan optimasi tertentu. SearchOptim=Optimasi pencarian -YouHaveXObjectUseSearchOptim=Anda memiliki %s %s dalam database. Anda harus menambahkan konstanta %s ke 1 di Home-Setup-Other. Batasi pencarian hingga awal string yang memungkinkan database menggunakan indeks dan Anda harus segera mendapat respons. +YouHaveXObjectUseSearchOptim=Anda memiliki %s %s di database. Anda dapat menambahkan konstanta %s ke 1 di Home-Setup-Other. Batasi pencarian hingga awal string yang memungkinkan database menggunakan indeks dan Anda akan mendapatkan respons segera. YouHaveXObjectAndSearchOptimOn=Anda memiliki %s %s di database dan konstanta %s diatur ke 1 di Home-Setup-Other. BrowserIsOK=Anda menggunakan browser web %s. Browser ini ok untuk keamanan dan kinerja. BrowserIsKO=Anda menggunakan browser web %s. Browser ini dikenal sebagai pilihan yang buruk untuk keamanan, kinerja, dan keandalan. Kami merekomendasikan menggunakan Firefox, Chrome, Opera atau Safari. @@ -1316,7 +1316,7 @@ PHPModuleLoaded=Komponen PHP %s dimuat PreloadOPCode=OPCode preloaded digunakan AddRefInList=Tampilkan Pelanggan / Vendor ref. daftar info (daftar pilih atau kotak kombo) dan sebagian besar hyperlink.
    Pihak Ketiga akan muncul dengan format nama "CC12345 - SC45678 - The Big Company corp." alih-alih "Perusahaan Besar Perusahaan". AddAdressInList=Tampilkan daftar info alamat Pelanggan / Vendor (daftar pilih atau kotak kombo)
    Pihak Ketiga akan muncul dengan format nama "Korporasi Perusahaan Besar - 21 lompat jalan 123456 Kota besar - AS" alih-alih "Korps Perusahaan Besar". -AddEmailPhoneTownInContactList=Display Contact email (or phones if not defined) and town info list (select list or combobox)
    Contacts will appear with a name format of "Dupond Durand - dupond.durand@email.com - Paris" or "Dupond Durand - 06 07 59 65 66 - Paris" instead of "Dupond Durand". +AddEmailPhoneTownInContactList=Tampilan Kontak email (atau telepon jika tidak ditentukan) dan daftar info kota (pilih daftar atau kotak kombo)
    Kontak akan muncul dengan format nama "Dupond Durand - dupond.durand@email.com - Paris" atau "Dupond Durand - 06 07 59 65 66 - Paris "bukan" Dupond Durand ". AskForPreferredShippingMethod=Mintalah metode pengiriman pilihan untuk Pihak Ketiga. FieldEdition=Edisi baris %s FillThisOnlyIfRequired=Contoh: +2 (isi hanya jika masalah offset zona waktu dialami) @@ -1324,7 +1324,7 @@ GetBarCode=Dapatkan barcode NumberingModules=Model penomoran DocumentModules=Model dokumen ##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase. +PasswordGenerationStandard=Kembalikan kata sandi yang dibuat sesuai dengan algoritma Dolibarr internal: karakter %s yang berisi angka dan karakter bersama dalam huruf kecil. PasswordGenerationNone=Jangan menyarankan kata sandi yang dihasilkan. Kata sandi harus diketik secara manual. PasswordGenerationPerso=Kembalikan kata sandi sesuai dengan konfigurasi yang Anda tentukan secara pribadi. SetupPerso=Menurut konfigurasi Anda @@ -1423,7 +1423,7 @@ AdherentMailRequired=Diperlukan email untuk membuat anggota baru MemberSendInformationByMailByDefault=Kotak centang untuk mengirim konfirmasi email kepada anggota (validasi atau berlangganan baru) diaktifkan secara default VisitorCanChooseItsPaymentMode=Pengunjung dapat memilih dari mode pembayaran yang tersedia MEMBER_REMINDER_EMAIL=Aktifkan pengingat otomatismelalui emaildari langganan yang kedaluwarsa. Catatan: Modul%s harus diaktifkan dan diatur dengan benar untuk mengirim pengingat. -MembersDocModules=Document templates for documents generated from member record +MembersDocModules=Templat dokumen untuk dokumen yang dihasilkan dari catatan anggota ##### LDAP setup ##### LDAPSetup=Pengaturan LDAP LDAPGlobalParameters=Parameter Global @@ -1566,9 +1566,9 @@ LDAPDescValues=Nilai contoh dirancang untukOpenLDAPdengan skema dimuat be ForANonAnonymousAccess=Untuk akses yang diautentikasi (misalnya untuk akses tulis) PerfDolibarr=Pengaturan kinerja / laporan optimalisasi YouMayFindPerfAdviceHere=Halaman ini menyediakan beberapa pemeriksaan atau saran yang berkaitan dengan kinerja. -NotInstalled=Not installed. -NotSlowedDownByThis=Not slowed down by this. -NotRiskOfLeakWithThis=Not risk of leak with this. +NotInstalled=Tidak terpasang. +NotSlowedDownByThis=Tidak diperlambat oleh ini. +NotRiskOfLeakWithThis=Tidak ada resiko bocor dengan ini. ApplicativeCache=Cache yang berlaku MemcachedNotAvailable=Tidak ditemukan cache aplikatif. Anda dapat meningkatkan kinerja dengan menginstal server cache Memcached dan modul dapat menggunakan server cache ini.
    Informasi lebih lanjut di sini http://wiki.dolibarr.org/index.php/Module_MemCached_EN .
    Perhatikan bahwa banyak penyedia hosting web tidak menyediakan server cache seperti itu. MemcachedModuleAvailableButNotSetup=Modul memcached untuk cache aplikatif ditemukan tetapi pengaturan modul tidak lengkap. @@ -1598,13 +1598,13 @@ ServiceSetup=Pengaturan modul layanan ProductServiceSetup=Pengaturan modul Produk dan Layanan NumberOfProductShowInSelect=Jumlah maksimum produk yang ditampilkan dalam daftar pilihan kombo (0 = tanpa batas) ViewProductDescInFormAbility=Tampilkan deskripsi produk dalam bentuk (jika tidak ditampilkan dalam popup tooltip) -DoNotAddProductDescAtAddLines=Do not add product description (from product card) on submit add lines on forms -OnProductSelectAddProductDesc=How to use the description of the products when adding a product as a line of a document -AutoFillFormFieldBeforeSubmit=Auto fill the description input field with the description of product -DoNotAutofillButAutoConcat=Do not autofill the input field with description of product. Description of the product will be concatenated to the entered description automatically. -DoNotUseDescriptionOfProdut=Description of the product will never be included into the description of lines of documents +DoNotAddProductDescAtAddLines=Jangan tambahkan deskripsi produk (dari kartu produk) saat mengirimkan tambahkan baris pada formulir +OnProductSelectAddProductDesc=Cara menggunakan deskripsi produk saat menambahkan produk sebagai baris dokumen +AutoFillFormFieldBeforeSubmit=Isi kolom input deskripsi secara otomatis dengan deskripsi produk +DoNotAutofillButAutoConcat=Jangan isi otomatis kolom input dengan deskripsi produk. Deskripsi produk akan digabungkan dengan deskripsi yang dimasukkan secara otomatis. +DoNotUseDescriptionOfProdut=Deskripsi produk tidak akan pernah dimasukkan ke dalam deskripsi baris dokumen MergePropalProductCard=Aktifkan di produk / layanan File Terlampir tab pilihan untuk menggabungkan dokumen PDF produk ke proposal PDF azur jika produk / layanan ada di proposal -ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in forms in the language of the third party (otherwise in the language of the user) +ViewProductDescInThirdpartyLanguageAbility=Menampilkan deskripsi produk dalam bentuk dalam bahasa pihak ketiga (sebaliknya dalam bahasa pengguna) UseSearchToSelectProductTooltip=Juga jika Anda memiliki sejumlah besar produk (> 100.000), Anda dapat meningkatkan kecepatan dengan menetapkan konstan PRODUCT_DONOTSEARCH_ANYWHERE ke 1 di Pengaturan-> Lainnya. Pencarian kemudian akan dibatasi untuk memulai string. UseSearchToSelectProduct=Tunggu hingga Anda menekan tombol sebelum memuat konten dari daftar kombo produk (Ini dapat meningkatkan kinerja jika Anda memiliki sejumlah besar produk, tetapi itu kurang nyaman) SetDefaultBarcodeTypeProducts=Jenis barcode default untuk digunakan untuk produk @@ -1621,9 +1621,9 @@ SyslogLevel=Tingkat SyslogFilename=Nama file dan jalur YouCanUseDOL_DATA_ROOT=Anda dapat menggunakan DOL_DATA_ROOT / dolibarr.log untuk file log di direktori "dokumen" Dolibarr. Anda dapat mengatur jalur lain untuk menyimpan file ini. ErrorUnknownSyslogConstant=Constant %s bukan konstanta Syslog yang dikenal -OnlyWindowsLOG_USER=On Windows, only the LOG_USER facility will be supported +OnlyWindowsLOG_USER=Di Windows, hanya fasilitas LOG_USER yang akan didukung CompressSyslogs=Kompresi dan cadangan file log debug (dihasilkan oleh modul Log untuk debug) -SyslogFileNumberOfSaves=Number of backup logs to keep +SyslogFileNumberOfSaves=Jumlah log cadangan yang harus disimpan ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurasikan pekerjaan terjadwal untuk mengatur frekuensi cadangan log ##### Donations ##### DonationsSetup=Pengaturan modul donasi @@ -1679,7 +1679,7 @@ AdvancedEditor=Editor tingkat lanjut ActivateFCKeditor=Aktifkan editor lanjutan untuk: FCKeditorForCompany=WYSIWIG pembuatan / edisi deskripsi elemen dan catatan (kecuali produk / layanan) FCKeditorForProduct=WYSIWIG pembuatan / edisi deskripsi produk dan layanan / catatan -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files. +FCKeditorForProductDetails=Pembuatan / edisi WYSIWIG baris detail produk untuk semua entitas (proposal, pesanan, faktur, dll ...). Peringatan: Menggunakan opsi ini untuk kasus ini sangat tidak disarankan karena dapat menimbulkan masalah dengan karakter khusus dan pemformatan halaman saat membuat file PDF. FCKeditorForMailing= Pembuatan / edisi WYSIWIG untuk eMailing massal (Alat-> eMailing) FCKeditorForUserSignature=WYSIWIG pembuatan / edisi tanda tangan pengguna FCKeditorForMail=Pembuatan / edisi WYSIWIG untuk semua email (kecuali Tools-> eMailing) @@ -1689,14 +1689,14 @@ StockSetup=Pengaturan modul stok IfYouUsePointOfSaleCheckModule=Jika Anda menggunakan modul Point of Sale (POS) yang disediakan secara default atau modul eksternal, pengaturan ini mungkin diabaikan oleh modul POS Anda. Sebagian besar modul POS dirancang secara default untuk membuat faktur segera dan mengurangi stok terlepas dari opsi di sini. Jadi jika Anda perlu atau tidak memiliki penurunan stok saat mendaftarkan penjualan dari POS Anda, periksa juga pengaturan modul POS Anda. ##### Menu ##### MenuDeleted=Menu dihapus -Menu=Menu +Menu=Tidak bisa Menus=Menu TreeMenuPersonalized=Menu yang dipersonalisasi NotTopTreeMenuPersonalized=Menu yang dipersonalisasi tidak ditautkan ke entri menu teratas NewMenu=Menu baru MenuHandler=Penangan menu MenuModule=Modul sumber -HideUnauthorizedMenu=Hide unauthorized menus also for internal users (just greyed otherwise) +HideUnauthorizedMenu=Sembunyikan juga menu yang tidak sah untuk pengguna internal (berwarna abu-abu jika tidak) DetailId=Menu id DetailMenuHandler=Penangan menu tempat menampilkan menu baru DetailMenuModule=Nama modul jika entri menu berasal dari modul @@ -1744,16 +1744,16 @@ AGENDA_USE_EVENT_TYPE=Gunakan jenis agenda (dikelola dalam Pengaturan menu -> Ka AGENDA_USE_EVENT_TYPE_DEFAULT=Secara otomatis mengatur nilai default ini untuk jenis agenda di agenda buat formulir AGENDA_DEFAULT_FILTER_TYPE=Secara otomatis mengatur jenis agenda ini di filter pencarian tampilan agenda AGENDA_DEFAULT_FILTER_STATUS=Secara otomatis mengatur status ini untuk agenda di filter pencarian tampilan agenda -AGENDA_DEFAULT_VIEW=Which view do you want to open by default when selecting menu Agenda -AGENDA_REMINDER_BROWSER=Enable event reminder on user's browser (When remind date is reached, a popup is shown by the browser. Each user can disable such notifications from its browser notification setup). +AGENDA_DEFAULT_VIEW=Tampilan mana yang ingin Anda buka secara default saat memilih menu Agenda +AGENDA_REMINDER_BROWSER=Aktifkan pengingat acara pada browser pengguna (Ketika tanggal pengingat tercapai, popup ditampilkan oleh browser. Setiap pengguna dapat menonaktifkan pemberitahuan tersebut dari pengaturan pemberitahuan browser). AGENDA_REMINDER_BROWSER_SOUND=Aktifkan pemberitahuan suara -AGENDA_REMINDER_EMAIL=Enable event reminder by emails (remind option/delay can be defined on each event). -AGENDA_REMINDER_EMAIL_NOTE=Note: The frequency of the task %s must be enough to be sure that the remind are sent at the correct moment. +AGENDA_REMINDER_EMAIL=Aktifkan pengingat acara melalui email (opsi pengingat / penundaan dapat ditentukan pada setiap acara). +AGENDA_REMINDER_EMAIL_NOTE=Catatan: Frekuensi tugas %s harus cukup untuk memastikan bahwa pengingat dikirim pada saat yang tepat. AGENDA_SHOW_LINKED_OBJECT=Tampilkan objek yang ditautkan ke tampilan agenda ##### Clicktodial ##### ClickToDialSetup=Klik Untuk Memanggil pengaturan modul ClickToDialUrlDesc=Url dipanggil ketika klik pada telepon picto dilakukan. Di URL, Anda dapat menggunakan tag
    __PHONETO__yang akan diganti dengan nomor telepon orang untuk memanggil
    __PHONEFROM__yang akan diganti dengan nomor telepon memanggil orang (Anda)
    __LOGIN__yang akan diganti dengan clicktodial login (didefinisikan pada kartu pengguna)
    __PASS__yang akan diganti dengan password clicktodial (didefinisikan pada kartu pengguna). -ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable. +ClickToDialDesc=Modul ini mengubah nomor telepon, saat menggunakan komputer desktop, menjadi tautan yang dapat diklik. Satu klik akan memanggil nomor tersebut. Ini dapat digunakan untuk memulai panggilan telepon saat menggunakan telepon lunak di desktop Anda atau saat menggunakan sistem CTI berdasarkan protokol SIP misalnya. Catatan: Saat menggunakan ponsel cerdas, nomor telepon selalu dapat diklik. ClickToDialUseTelLink=Gunakan hanya tautan "tel:" pada nomor telepon ClickToDialUseTelLinkDesc=Gunakan metode ini jika pengguna Anda memiliki softphone atau antarmuka perangkat lunak yang diinstal pada komputer yang sama dengan browser, dan dipanggil ketika Anda mengklik tautan di browser Anda yang dimulai dengan "tel:". Jika Anda memerlukan solusi server lengkap (tidak perlu instalasi perangkat lunak lokal), Anda harus mengatur ini ke "Tidak" dan isi kolom selanjutnya. ##### Point Of Sale (CashDesk) ##### @@ -1883,7 +1883,7 @@ EnterAnyCode=Baris ini berisi referensi untuk mengidentifikasi baris. Masukkan n Enter0or1=Masukkan 0 atau 1 UnicodeCurrency=Masukkan di sini di antara kurung kurawal, daftar nomor byte yang mewakili simbol mata uang. Misalnya: untuk $, masukkan [36] - untuk brazil real R $ [82,36] - untuk €, masukkan [8364] ColorFormat=Warna RGB dalam format HEX, mis .: FF0000 -PictoHelp=Icon name in dolibarr format ('image.png' if into the current theme directory, 'image.png@nom_du_module' if into the directory /img/ of a module) +PictoHelp=Nama ikon dalam format dolibarr ('image.png' jika masuk ke direktori tema saat ini, 'image.png@nom_du_module' jika masuk ke direktori / img / modul) PositionIntoComboList=Posisi baris ke dalam daftar kombo SellTaxRate=Tarif pajak penjualan RecuperableOnly=Ya untuk PPN "Tidak Ditanggapi tetapi Dapat Dipulihkan" yang didedikasikan untuk beberapa negara bagian di Prancis. Simpan nilai "Tidak" dalam semua kasus lainnya. @@ -1914,7 +1914,7 @@ MailToSendReception=Penerimaan MailToThirdparty=Pihak Ketiga MailToMember=Anggota MailToUser=Pengguna -MailToProject=Projects +MailToProject=Proyek MailToTicket=Tiket ByDefaultInList=Tampilkan secara default pada tampilan daftar YouUseLastStableVersion=Anda menggunakan versi stabil terbaru @@ -1924,7 +1924,7 @@ ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s tersedia. Versi %s ada ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s tersedia. Versi %s adalah versi pemeliharaan, jadi hanya berisi perbaikan bug. Kami menyarankan semua pengguna untuk meningkatkan ke versi ini. Rilis pemeliharaan tidak memperkenalkan fitur baru atau perubahan pada database. Anda dapat mengunduhnya dari area unduhan https://www.dolibarr.org portal (subdirektori versi Stabil). Anda dapat membaca ChangeLog untuk daftar lengkap perubahan. MultiPriceRuleDesc=Ketika opsi "Beberapa tingkat harga per produk / layanan" diaktifkan, Anda dapat menentukan harga yang berbeda (satu per tingkat harga) untuk setiap produk. Untuk menghemat waktu Anda, di sini Anda dapat memasukkan aturan untuk secara otomatis menghitung ulang harga untuk setiap level berdasarkan harga level pertama, jadi Anda hanya perlu memasukkan harga untuk level pertama untuk setiap produk. Halaman ini dirancang untuk menghemat waktu Anda tetapi hanya berguna jika harga Anda untuk setiap level relatif terhadap level pertama. Anda dapat mengabaikan halaman ini dalam banyak kasus. ModelModulesProduct=Template untuk dokumen produk -WarehouseModelModules=Templates for documents of warehouses +WarehouseModelModules=Template untuk dokumen gudang ToGenerateCodeDefineAutomaticRuleFirst=Agar dapat menghasilkan kode secara otomatis, Anda harus terlebih dahulu menetapkan manajer untuk secara otomatis menentukan nomor kode batang. SeeSubstitutionVars=Lihat * catatan untuk daftar kemungkinan variabel substitusi SeeChangeLog=Lihat file ChangeLog (hanya bahasa Inggris) @@ -1963,7 +1963,7 @@ MAIN_PDF_MARGIN_LEFT=Margin kiri pada PDF MAIN_PDF_MARGIN_RIGHT=Margin kanan pada PDF MAIN_PDF_MARGIN_TOP=Margin teratas pada PDF MAIN_PDF_MARGIN_BOTTOM=Margin bawah pada PDF -MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +MAIN_DOCUMENTS_LOGO_HEIGHT=Tinggi untuk logo di PDF NothingToSetup=Tidak diperlukan pengaturan khusus untuk modul ini. SetToYesIfGroupIsComputationOfOtherGroups=Setel ini menjadi ya jika grup ini merupakan perhitungan grup lain EnterCalculationRuleIfPreviousFieldIsYes=Masukkan aturan kalkulasi jika baris sebelumnya disetel ke Ya (Misalnya 'CODEGRP1 + CODEGRP2') @@ -1990,12 +1990,12 @@ EMailHost=Host server IMAP email MailboxSourceDirectory=Direktori sumber kotak surat MailboxTargetDirectory=Direktori target kotak surat EmailcollectorOperations=Operasi yang harus dilakukan oleh kolektor -EmailcollectorOperationsDesc=Operations are executed from top to bottom order +EmailcollectorOperationsDesc=Operasi dijalankan dari urutan atas ke bawah MaxEmailCollectPerCollect=Jumlah email maksimum yang dikumpulkan per kumpulkan CollectNow=Kumpulkan sekarang ConfirmCloneEmailCollector=Anda yakin ingin mengkloning kolektor Email %s? -DateLastCollectResult=Date of latest collect try -DateLastcollectResultOk=Date of latest collect success +DateLastCollectResult=Tanggal percobaan koleksi terbaru +DateLastcollectResultOk=Tanggal keberhasilan koleksi terbaru LastResult=Hasil terbaru EmailCollectorConfirmCollectTitle=Konfirmasi pengumpulan email EmailCollectorConfirmCollect=Apakah Anda ingin menjalankan koleksi untuk kolektor ini sekarang? @@ -2004,16 +2004,16 @@ NothingProcessed=Tidak ada yang dilakukan XEmailsDoneYActionsDone=email %s memenuhi syarat, email %s berhasil diproses (untuk catatan / tindakan %s dilakukan) RecordEvent=Rekam agenda email CreateLeadAndThirdParty=Buat timbal (dan pihak ketiga jika perlu) -CreateTicketAndThirdParty=Create ticket (and link to third party if it was loaded by a previous operation) +CreateTicketAndThirdParty=Buat tiket (dan tautkan ke pihak ketiga jika dimuat oleh operasi sebelumnya) CodeLastResult=Kode hasil terbaru NbOfEmailsInInbox=Jumlah email dalam direktori sumber LoadThirdPartyFromName=Muat pihak ketiga yang mencari di %s (hanya memuat) LoadThirdPartyFromNameOrCreate=Muat pencarian pihak ketiga di %s (buat jika tidak ditemukan) -WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr -WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr -WithDolTrackingIDInMsgId=Message sent from Dolibarr -WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr -CreateCandidature=Create job application +WithDolTrackingID=Pesan dari percakapan yang dimulai oleh email pertama yang dikirim dari Dolibarr +WithoutDolTrackingID=Pesan dari percakapan yang dimulai dengan email pertama TIDAK dikirim dari Dolibarr +WithDolTrackingIDInMsgId=Pesan dikirim dari Dolibarr +WithoutDolTrackingIDInMsgId=Pesan TIDAK dikirim dari Dolibarr +CreateCandidature=Buat lamaran kerja FormatZip=Kode Pos MainMenuCode=Kode entri menu (mainmenu) ECMAutoTree=Tampilkan pohon ECM otomatis @@ -2027,7 +2027,7 @@ DisabledResourceLinkContact=Nonaktifkan fitur untuk menautkan sumber daya ke kon EnableResourceUsedInEventCheck=Aktifkan fitur untuk memeriksa apakah sumber daya digunakan dalam suatu agenda ConfirmUnactivation=Konfirmasikan setel ulang modul OnMobileOnly=Hanya pada layar kecil (smartphone) -DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both) +DisableProspectCustomerType=Nonaktifkan jenis pihak ketiga "Prospek + Pelanggan" (sehingga pihak ketiga haruslah "Prospek" atau "Pelanggan", tetapi tidak boleh keduanya) MAIN_OPTIMIZEFORTEXTBROWSER=Sederhanakan antarmuka untuk orang buta MAIN_OPTIMIZEFORTEXTBROWSERDesc=Aktifkan opsi ini jika Anda adalah orang buta, atau jika Anda menggunakan aplikasi dari peramban teks seperti Lynx atau Links. MAIN_OPTIMIZEFORCOLORBLIND=Ubah warna antarmuka untuk orang buta warna @@ -2049,15 +2049,15 @@ UseDebugBar=Gunakan bilah debug DEBUGBAR_LOGS_LINES_NUMBER=Jumlah baris log terakhir untuk disimpan di konsol WarningValueHigherSlowsDramaticalyOutput=Peringatan, nilai yang lebih tinggi memperlambat output yang dramatis ModuleActivated=Modul %s diaktifkan dan memperlambat antarmuka -IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s. -AntivirusEnabledOnUpload=Antivirus enabled on uploaded files +IfYouAreOnAProductionSetThis=Jika Anda berada di lingkungan produksi, Anda harus menyetel properti ini ke %s. +AntivirusEnabledOnUpload=Antivirus diaktifkan pada file yang diunggah EXPORTS_SHARE_MODELS=Model ekspor dibagi dengan semua orang ExportSetup=Pengaturan ekspor modul ImportSetup=Pengaturan impor modul InstanceUniqueID=ID unik dari instance SmallerThan=Lebih kecil dari LargerThan=lebih besar dari -IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into email, or if the email is an answer of an email aready collected and linked to an object, the created event will be automatically linked to the known related object. +IfTrackingIDFoundEventWillBeLinked=Perhatikan bahwa Jika ID pelacakan dari suatu objek ditemukan dalam email, atau jika email adalah jawaban dari email yang sudah dikumpulkan dan ditautkan ke suatu objek, acara yang dibuat akan secara otomatis ditautkan ke objek terkait yang diketahui. WithGMailYouCanCreateADedicatedPassword=Dengan akun GMail, jika Anda mengaktifkan validasi 2 langkah, disarankan untuk membuat kata sandi khusus kedua untuk aplikasi alih-alih menggunakan kata sandi akun Anda sendiri dari https://myaccount.google.com/. EmailCollectorTargetDir=Ini mungkin merupakan perilaku yang diinginkan untuk memindahkan email ke tag / direktori lain ketika berhasil diproses. Cukup atur nama direktori di sini untuk menggunakan fitur ini (JANGAN menggunakan karakter khusus dalam nama). Perhatikan bahwa Anda juga harus menggunakan akun login baca / tulis. EmailCollectorLoadThirdPartyHelp=Anda dapat menggunakan tindakan ini untuk menggunakan konten email untuk menemukan dan memuat pihak ketiga yang ada di database Anda. Pihak ketiga yang ditemukan (atau dibuat) akan digunakan untuk mengikuti tindakan yang membutuhkannya. Di baris parameter Anda dapat menggunakan misalnya 'EXTRACT: BODY: Name: \\ s ([^ \\ s] *)' jika Anda ingin mengekstrak nama pihak ketiga dari string 'Nama: nama untuk menemukan' ditemukan di dalam tubuh. @@ -2081,17 +2081,17 @@ RssNote=Catatan: Setiap definisi umpan RSS menyediakan widget yang harus Anda ak JumpToBoxes=Langsung ke Pengaturan -> Widget MeasuringUnitTypeDesc=Gunakan di sini nilai seperti "ukuran", "permukaan", "volume", "berat", "waktu" MeasuringScaleDesc=Skala adalah jumlah tempat Anda harus memindahkan bagian desimal untuk mencocokkan unit referensi default. Untuk tipe unit "waktu", itu adalah jumlah detik. Nilai antara 80 dan 99 adalah nilai yang dicadangkan. -TemplateAdded=Template added -TemplateUpdated=Template updated -TemplateDeleted=Template deleted -MailToSendEventPush=Event reminder email -SwitchThisForABetterSecurity=Switching this value to %s is recommended for more security -DictionaryProductNature= Nature of product -CountryIfSpecificToOneCountry=Country (if specific to a given country) -YouMayFindSecurityAdviceHere=You may find security advisory here -ModuleActivatedMayExposeInformation=This module may expose sensitive data. If you don't need it, disable it. -ModuleActivatedDoNotUseInProduction=A module designed for the development has been enabled. Do not enable it on a production environment. -CombinationsSeparator=Separator character for product combinations -SeeLinkToOnlineDocumentation=See link to online documention on top menu for examples -SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module %s is used, show details of subproducts of a kit on PDF. -AskThisIDToYourBank=Contact your bank to get this ID +TemplateAdded=Template ditambahkan +TemplateUpdated=Template diperbarui +TemplateDeleted=Template dihapus +MailToSendEventPush=Email pengingat acara +SwitchThisForABetterSecurity=Direkomendasikan untuk mengganti nilai ini ke %s untuk keamanan lebih +DictionaryProductNature= Sifat produk +CountryIfSpecificToOneCountry=Negara (jika khusus untuk negara tertentu) +YouMayFindSecurityAdviceHere=Anda mungkin menemukan nasihat keamanan di sini +ModuleActivatedMayExposeInformation=Modul ini dapat mengekspos data sensitif. Jika Anda tidak membutuhkannya, nonaktifkan. +ModuleActivatedDoNotUseInProduction=Modul yang dirancang untuk pengembangan telah diaktifkan. Jangan mengaktifkannya di lingkungan produksi. +CombinationsSeparator=Karakter pemisah untuk kombinasi produk +SeeLinkToOnlineDocumentation=Lihat tautan ke dokumenter online di menu atas untuk mengetahui contohnya +SHOW_SUBPRODUCT_REF_IN_PDF=Jika fitur "%s" modul %s digunakan, tampilkan detail subproduk kit di PDF. +AskThisIDToYourBank=Hubungi bank Anda untuk mendapatkan ID ini diff --git a/htdocs/langs/id_ID/banks.lang b/htdocs/langs/id_ID/banks.lang index c4da69105fe..d7bdb21cbd5 100644 --- a/htdocs/langs/id_ID/banks.lang +++ b/htdocs/langs/id_ID/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Jika fungsi ini diaktifkan, Anda dapat memilih warna la BankColorizeMovementName1=Warna latar belakang untuk pergerakan debit BankColorizeMovementName2=Warna latar belakang untuk pergerakan kredit IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/id_ID/boxes.lang b/htdocs/langs/id_ID/boxes.lang index 87ccb7831b5..9ffe9c3402a 100644 --- a/htdocs/langs/id_ID/boxes.lang +++ b/htdocs/langs/id_ID/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Rolling bulan %s terbaru ChooseBoxToAdd=Tambahkan widget ke dasbor Anda BoxAdded=Widget ditambahkan di dasbor Anda BoxTitleUserBirthdaysOfMonth=Ulang tahun bulan ini (pengguna) -BoxLastManualEntries=Entri manual terakhir dalam akuntansi -BoxTitleLastManualEntries=entri manual terbaru %s +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Tidak ada entri manual yang dicatat dalam akuntansi BoxSuspenseAccount=Hitung operasi akuntansi dengan akun suspense BoxTitleSuspenseAccount=Jumlah garis yang tidak terisi diff --git a/htdocs/langs/id_ID/mails.lang b/htdocs/langs/id_ID/mails.lang index fad0f4c4496..6d4d3003efc 100644 --- a/htdocs/langs/id_ID/mails.lang +++ b/htdocs/langs/id_ID/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang index 709d45afafa..92771fd72b5 100644 --- a/htdocs/langs/id_ID/main.lang +++ b/htdocs/langs/id_ID/main.lang @@ -224,6 +224,7 @@ Value=Nilai PersonalValue=Nilai pribadi NewObject=%s baru NewValue=Nilai baru +OldValue=Old value %s CurrentValue=Nilai sekarang Code=Kode Type=Tipe @@ -655,6 +656,7 @@ SupplierPreview=Pratinjau vendor ShowCustomerPreview=Tampilkan pratinjau pelanggan ShowSupplierPreview=Tampilkan pratinjau vendor RefCustomer=Ref. pelanggan +InternalRef=Internal ref. Currency=Mata uang InfoAdmin=Informasi untuk administrator Undo=Membuka @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/id_ID/mrp.lang b/htdocs/langs/id_ID/mrp.lang index 0dab77fbf41..53bc718c450 100644 --- a/htdocs/langs/id_ID/mrp.lang +++ b/htdocs/langs/id_ID/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total biaya BOMTotalCost=Biaya untuk menghasilkan BOM ini berdasarkan pada biaya setiap kuantitas dan produk yang akan dikonsumsi (gunakan harga Biaya jika ditentukan, selain itu Harga Rata-rata Tertimbang jika ditentukan, selain itu harga pembelian Terbaik) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/id_ID/stocks.lang b/htdocs/langs/id_ID/stocks.lang index e29ca8f5c29..fb71e9c978f 100644 --- a/htdocs/langs/id_ID/stocks.lang +++ b/htdocs/langs/id_ID/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Nilai gudang UserWarehouseAutoCreate=Buat gudang pengguna secara otomatis saat membuat pengguna AllowAddLimitStockByWarehouse=Kelola juga nilai untuk stok minimum dan yang diinginkan per pasangan (gudang produk) selain nilai untuk stok minimum dan yang diinginkan per produk RuleForWarehouse=Aturan untuk gudang +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Atur gudang berdasarkan pesanan Penjualan UserDefaultWarehouse=Tetapkan gudang pada Pengguna MainDefaultWarehouse=Gudang bawaan diff --git a/htdocs/langs/id_ID/withdrawals.lang b/htdocs/langs/id_ID/withdrawals.lang index 48f3e2b2044..9b5daafd94b 100644 --- a/htdocs/langs/id_ID/withdrawals.lang +++ b/htdocs/langs/id_ID/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Halo,

    , urutan pembayaran debit langsung dari %s yang ModeWarning=Opsi untuk mode nyata tidak disetel, kami berhenti setelah simulasi ini ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/id_ID/workflow.lang b/htdocs/langs/id_ID/workflow.lang index eab46445c72..c1d6e986377 100644 --- a/htdocs/langs/id_ID/workflow.lang +++ b/htdocs/langs/id_ID/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Pembuatan Otomatis AutomaticClassification=Pengklasifikasian Otomatis +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/is_IS/accountancy.lang b/htdocs/langs/is_IS/accountancy.lang index 766d7cac0ca..5c45bf600e6 100644 --- a/htdocs/langs/is_IS/accountancy.lang +++ b/htdocs/langs/is_IS/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index 6d5fe35ab3d..2b6093184ff 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/is_IS/banks.lang b/htdocs/langs/is_IS/banks.lang index 255e70e0997..dbe306c9acb 100644 --- a/htdocs/langs/is_IS/banks.lang +++ b/htdocs/langs/is_IS/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/is_IS/boxes.lang b/htdocs/langs/is_IS/boxes.lang index d0b923855b3..fdb47cd6d8f 100644 --- a/htdocs/langs/is_IS/boxes.lang +++ b/htdocs/langs/is_IS/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/is_IS/mails.lang b/htdocs/langs/is_IS/mails.lang index b51a138bbc8..6f2c1d0b683 100644 --- a/htdocs/langs/is_IS/mails.lang +++ b/htdocs/langs/is_IS/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/is_IS/main.lang b/htdocs/langs/is_IS/main.lang index 223a23162f8..0c0dae311ad 100644 --- a/htdocs/langs/is_IS/main.lang +++ b/htdocs/langs/is_IS/main.lang @@ -224,6 +224,7 @@ Value=Gildi PersonalValue=Starfsfólk gildi NewObject=New %s NewValue=Nýtt gildi +OldValue=Old value %s CurrentValue=Núverandi gildi Code=Code Type=Tegund @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Sýna viðskiptavinum sýnishorn ShowSupplierPreview=Show vendor preview RefCustomer=Tilv. viðskiptavina +InternalRef=Internal ref. Currency=Gjaldmiðill InfoAdmin=Upplýsingar fyrir stjórnendur Undo=Hætta við @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/is_IS/mrp.lang b/htdocs/langs/is_IS/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/is_IS/mrp.lang +++ b/htdocs/langs/is_IS/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/is_IS/stocks.lang b/htdocs/langs/is_IS/stocks.lang index 7fcebc4dc05..9741ab77235 100644 --- a/htdocs/langs/is_IS/stocks.lang +++ b/htdocs/langs/is_IS/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Vöruhús gildi UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/is_IS/withdrawals.lang b/htdocs/langs/is_IS/withdrawals.lang index db2e367a991..2390a284ffe 100644 --- a/htdocs/langs/is_IS/withdrawals.lang +++ b/htdocs/langs/is_IS/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Valkostur fyrir alvöru ham var ekki sett, að hætta við eftir þessa uppgerð ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/is_IS/workflow.lang b/htdocs/langs/is_IS/workflow.lang index 8f682447322..50064fb4035 100644 --- a/htdocs/langs/is_IS/workflow.lang +++ b/htdocs/langs/is_IS/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/it_CH/boxes.lang b/htdocs/langs/it_CH/boxes.lang deleted file mode 100644 index b958a84ee33..00000000000 --- a/htdocs/langs/it_CH/boxes.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - boxes -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries diff --git a/htdocs/langs/it_CH/mrp.lang b/htdocs/langs/it_CH/mrp.lang new file mode 100644 index 00000000000..f03d631dfd4 --- /dev/null +++ b/htdocs/langs/it_CH/mrp.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - mrp +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang index 6464d3036eb..7651e63da89 100644 --- a/htdocs/langs/it_IT/accountancy.lang +++ b/htdocs/langs/it_IT/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Questo servizio ThisProduct=Questo prodotto DefaultForService=Predefinito per servizio DefaultForProduct=Predefinito per prodotto +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Non posso suggerire AccountancySetupDoneFromAccountancyMenu=La maggior parte del setup della contabilità è effettuata dal menù %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index e3d95b94db2..29b516e2c33 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Sondaggio, Indagine o Votazione Module55000Desc=Modulo per creare sondaggi, indagini o feedback online (Doodle, Studs, Rdvz o simili) Module59000Name=Margini -Module59000Desc=Modulo per gestire margini +Module59000Desc=Module to follow margins Module60000Name=Commissioni Module60000Desc=Modulo per gestire commissioni Module62000Name=Import-Export @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Ottimizzazione della ricerca -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/it_IT/banks.lang b/htdocs/langs/it_IT/banks.lang index efd3b871d94..0391c90cf1b 100644 --- a/htdocs/langs/it_IT/banks.lang +++ b/htdocs/langs/it_IT/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Se questa funzione è abilitata, è possibile scegliere BankColorizeMovementName1=Colore di sfondo per il movimento di debito BankColorizeMovementName2=Colore di sfondo per il movimento del credito IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/it_IT/boxes.lang b/htdocs/langs/it_IT/boxes.lang index ad52410cca5..c9877141918 100644 --- a/htdocs/langs/it_IT/boxes.lang +++ b/htdocs/langs/it_IT/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Ultimi %s mesi ChooseBoxToAdd=Aggiungi widget alla dashboard BoxAdded=Widget aggiunto al pannello principale BoxTitleUserBirthdaysOfMonth=Compleanni di questo mese (utenti) -BoxLastManualEntries=Ultime registrazioni manuali in contabilità -BoxTitleLastManualEntries=%s ultime voci del manuale +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Nessuna registrazione manuale registrata in contabilità BoxSuspenseAccount=Conta l'operazione contabile con l'account suspense BoxTitleSuspenseAccount=Numero di righe non allocate diff --git a/htdocs/langs/it_IT/mails.lang b/htdocs/langs/it_IT/mails.lang index 9ffeeb64178..f6a0cc2c0a4 100644 --- a/htdocs/langs/it_IT/mails.lang +++ b/htdocs/langs/it_IT/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Non è risposta (email iniziale) IsAnAnswer=È la risposta di una prima email RecordCreatedByEmailCollector=Record creato da Email Collector %s dall'email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang index 322e172936c..b7ba2b5fe0e 100644 --- a/htdocs/langs/it_IT/main.lang +++ b/htdocs/langs/it_IT/main.lang @@ -224,6 +224,7 @@ Value=Valore PersonalValue=Valore personalizzato NewObject=Nuovo %s NewValue=Nuovo valore +OldValue=Old value %s CurrentValue=Valore attuale Code=Codice Type=Tipo @@ -655,6 +656,7 @@ SupplierPreview=Anteprima fornitore ShowCustomerPreview=Visualizza anteprima cliente ShowSupplierPreview=Visualizza anteprima fornitore RefCustomer=Rif. cliente +InternalRef=Internal ref. Currency=Valuta InfoAdmin=Informazioni per gli amministratori Undo=Annulla @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=In attesa +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/it_IT/mrp.lang b/htdocs/langs/it_IT/mrp.lang index 02826554a2c..d169db398be 100644 --- a/htdocs/langs/it_IT/mrp.lang +++ b/htdocs/langs/it_IT/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Costo totale BOMTotalCost=Il costo per produrre questa distinta base in base al costo di ciascuna quantità e prodotto da consumare (utilizzare il prezzo di costo se definito, altrimenti il prezzo medio ponderato se definito, altrimenti il miglior prezzo di acquisto) GoOnTabProductionToProduceFirst=È necessario prima aver avviato la produzione per chiudere un ordine di produzione (vedere la scheda "%s"). Ma puoi annullarlo. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit non può essere utilizzato in una distinta materiali o in un ordine di produzione +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/it_IT/stocks.lang b/htdocs/langs/it_IT/stocks.lang index a9358e7a321..b2da8fe996d 100644 --- a/htdocs/langs/it_IT/stocks.lang +++ b/htdocs/langs/it_IT/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Valore magazzini UserWarehouseAutoCreate=Crea anche un magazzino alla creazione di un utente AllowAddLimitStockByWarehouse=Gestisci anche i valori minimo e desiderato della scorta per abbinamento (prodotto - magazzino) oltre ai valori per prodotto RuleForWarehouse=Regola per i magazzini +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Imposta un magazzino sugli ordini di vendita UserDefaultWarehouse=Imposta un magazzino per gli utenti MainDefaultWarehouse=Magazzino predefinito diff --git a/htdocs/langs/it_IT/withdrawals.lang b/htdocs/langs/it_IT/withdrawals.lang index 24837f63e55..0e83d48d9eb 100644 --- a/htdocs/langs/it_IT/withdrawals.lang +++ b/htdocs/langs/it_IT/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Non è stata impostata la modalità reale, ci fermiamo dopo questa simulazione ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/it_IT/workflow.lang b/htdocs/langs/it_IT/workflow.lang index e188cef6116..a662155b537 100644 --- a/htdocs/langs/it_IT/workflow.lang +++ b/htdocs/langs/it_IT/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classificare le ricezioni in "fatturate" quando u descWORKFLOW_TICKET_CLOSE_INTERVENTION=Chiudi tutti gli interventi legati al ticket quando un ticket è chiuso AutomaticCreation=Creazione automatica AutomaticClassification=Classificazione automatica +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang index 155ffb64bf1..5b7b279db04 100644 --- a/htdocs/langs/ja_JP/accountancy.lang +++ b/htdocs/langs/ja_JP/accountancy.lang @@ -16,6 +16,8 @@ ThisService=このサービス ThisProduct=この製品 DefaultForService=サービスのデフォルト DefaultForProduct=製品のデフォルト +ProductForThisThirdparty=この取引先向けの製品 +ServiceForThisThirdparty=この取引先向けのサービス CantSuggest=提案できない AccountancySetupDoneFromAccountancyMenu=会計のほとんどの設定はメニュー%sから行われる ConfigAccountingExpert=モジュールアカウンティングの構成(複式簿記) diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index f4f7d571b44..fc6e2f4da0b 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Cups IPPインターフェイスを使用した ( ドキュメ Module55000Name=投票、調査または投票 Module55000Desc=オンライン投票、調査、投票を作成する ( Doodle、スタッド、RDVzなど ) Module59000Name=マージン -Module59000Desc=マージンを管理するモジュール +Module59000Desc=マージンに従うモジュール Module60000Name=手数料 Module60000Desc=手数料を管理するモジュール Module62000Name=インコタームズ @@ -1308,7 +1308,7 @@ YouUseBestDriver=現在利用可能な最高のドライバーであるドライ YouDoNotUseBestDriver=ドライバー%sを使用するが、ドライバー%sをお勧めする。 NbOfObjectIsLowerThanNoPb=データベースには%s%sしかない。これには、特別な最適化は必要ない。 SearchOptim=検索最適化 -YouHaveXObjectUseSearchOptim=データベースに%s%sがある。 Home-Setup-Otherで定数%sを1に追加する必要がある。検索を文字列の先頭に制限する。これにより、データベースでインデックスを使用できるようになり、すぐに応答が返される。 +YouHaveXObjectUseSearchOptim=データベースに%s%sがある。 Home-Setup-Otherで定数%sを1に追加できます。検索を文字列の先頭に制限する。これにより、データベースでインデックスを使用できるようになり、すぐに応答が返される。 YouHaveXObjectAndSearchOptimOn=データベースに%s%sがあり、Home-Setup-Otherで定数%sが1に設定されている。 BrowserIsOK=%sWebブラウザーを使用している。このブラウザは、セキュリティとパフォーマンスに問題はない。 BrowserIsKO=%sWebブラウザーを使用している。このブラウザは、セキュリティ、パフォーマンス、信頼性の点で悪い選択であることが知られている。 Firefox、Chrome、Opera、またはSafariの使用をお勧めする。 diff --git a/htdocs/langs/ja_JP/banks.lang b/htdocs/langs/ja_JP/banks.lang index 42b0000c664..b7097ecbc9f 100644 --- a/htdocs/langs/ja_JP/banks.lang +++ b/htdocs/langs/ja_JP/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=この機能が有効になっている場合は、借 BankColorizeMovementName1=借方移動の背景色 BankColorizeMovementName2=クレジット移動の背景色 IfYouDontReconcileDisableProperty=一部の銀行口座で銀行照合を行わない場合は、それらのプロパティ "%s"を無効にして、この警告を削除すること。 +NoBankAccountDefined=銀行口座が定義されていない diff --git a/htdocs/langs/ja_JP/boxes.lang b/htdocs/langs/ja_JP/boxes.lang index cec54c4b84d..6f69a9dff73 100644 --- a/htdocs/langs/ja_JP/boxes.lang +++ b/htdocs/langs/ja_JP/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=最新の %s 月ローリング ChooseBoxToAdd=ダッシュボードにウィジェットを追加する BoxAdded=ダッシュボードにウィジェットが追加された BoxTitleUserBirthdaysOfMonth=今月の誕生日(ユーザー) -BoxLastManualEntries=会計の最後の手動入力 -BoxTitleLastManualEntries=%s最新のマニュアルエントリ +BoxLastManualEntries=手動またはソースドキュメントなしで入力された会計の最新レコード +BoxTitleLastManualEntries=%s手動またはソースドキュメントなしで入力された最新のレコード NoRecordedManualEntries=会計に手動入力の記録はない BoxSuspenseAccount=サスペンスアカウントで会計操作をカウントする BoxTitleSuspenseAccount=未割り当て回線の数 diff --git a/htdocs/langs/ja_JP/mails.lang b/htdocs/langs/ja_JP/mails.lang index 839296a40f7..ac80df8e0b0 100644 --- a/htdocs/langs/ja_JP/mails.lang +++ b/htdocs/langs/ja_JP/mails.lang @@ -175,3 +175,5 @@ Answered=答えた IsNotAnAnswer=回答でない(最初のメール) IsAnAnswer=最初のメールの回答 RecordCreatedByEmailCollector=電子メールコレクター%sによって電子メール%sから作成されたレコード +DefaultBlacklistMailingStatus=一括メール送信を拒否するためのデフォルトの連絡先ステータス +DefaultStatusEmptyMandatory=空だが必須 diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang index b88e6ef7e6e..ef5a5e7ff91 100644 --- a/htdocs/langs/ja_JP/main.lang +++ b/htdocs/langs/ja_JP/main.lang @@ -224,6 +224,7 @@ Value=値 PersonalValue=個人的価値 NewObject=新規%s NewValue=新規値 +OldValue=古い値%s CurrentValue=電流値 Code=コー​​ド Type=タイプ @@ -655,6 +656,7 @@ SupplierPreview=ベンダープレビュー ShowCustomerPreview=顧客のプレビューを表示する ShowSupplierPreview=ベンダープレビューを表示 RefCustomer=顧客参照符号 +InternalRef=内部参照 Currency=通貨 InfoAdmin=管理者向け情報 Undo=元に戻す @@ -1113,6 +1115,7 @@ OutOfDate=時代遅れ EventReminder=イベントリマインダー UpdateForAllLines=すべての行を更新 OnHold=保留 +Civility=敬称 AffectTag=タグに影響を与える ConfirmAffectTag=バルクタグの影響 ConfirmAffectTagQuestion=選択した%sレコード(s)のタグに影響を与えてもよいか? diff --git a/htdocs/langs/ja_JP/mrp.lang b/htdocs/langs/ja_JP/mrp.lang index 5d087514ee2..2e3e4d06df0 100644 --- a/htdocs/langs/ja_JP/mrp.lang +++ b/htdocs/langs/ja_JP/mrp.lang @@ -78,3 +78,27 @@ TotalCost=総費用 BOMTotalCost=消費する各数量と製品のコストに基づいてこのBOMを生成するためのコスト(定義されている場合は原価、定義されている場合は平均加重価格、それ以外の場合は最良の購入価格を使用) GoOnTabProductionToProduceFirst=製造指図を閉じるには、最初に製造を開始しておく必要がある(タブ '%s'を参照)。ただし、キャンセルすることはできる。 ErrorAVirtualProductCantBeUsedIntoABomOrMo=キットをBOMまたはMOに使用することはできない +Workstation=ワークステーション +Workstations=ワークステーション +WorkstationsDescription=ワークステーション管理 +WorkstationSetup = ワークステーションのセットアップ +WorkstationSetupPage = ワークステーションのセットアップページ +WorkstationAbout = ワークステーションについて +WorkstationAboutPage = ページについてのワークステーション +WorkstationList=ワークステーションリスト +WorkstationCreate=新しいワークステーションを追加する +ConfirmEnableWorkstation=ワークステーション%s を有効にするか? +EnableAWorkstation=ワークステーションを有効にする +ConfirmDisableWorkstation=ワークステーション%s を無効にしてもよいか? +DisableAWorkstation=ワークステーションを無効にする +DeleteWorkstation=Supprimer +NbOperatorsRequired=必要なオペレーターの数 +THMOperatorEstimated=推定オペレーターTHM +THMMachineEstimated=推定マシンTHM +WorkstationType=ワークステーションタイプ +Human=人間 +Machine=機械 +HumanMachine=人間/機械 +WorkstationArea=ワークステーションエリア +Machines=機械 +THMEstimatedHelp=このレートにより、アイテムの予測コストを定義できます。 diff --git a/htdocs/langs/ja_JP/stocks.lang b/htdocs/langs/ja_JP/stocks.lang index 4c1ca472ce0..85fd2d27614 100644 --- a/htdocs/langs/ja_JP/stocks.lang +++ b/htdocs/langs/ja_JP/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=倉庫の値 UserWarehouseAutoCreate=ユーザーの作成時にユーザー倉庫を自動的に作成する AllowAddLimitStockByWarehouse=製品ごとの最小在庫と希望在庫の値に加えて、ペアリングごとの最小在庫と希望在庫の値(製品倉庫)も管理する。 RuleForWarehouse=倉庫のルール +WarehouseAskWarehouseDuringPropal=販売推進に倉庫を設定する WarehouseAskWarehouseDuringOrder=販売注文に倉庫を設定する UserDefaultWarehouse=ユーザーに倉庫を設定する MainDefaultWarehouse=デフォルトの倉庫 diff --git a/htdocs/langs/ja_JP/withdrawals.lang b/htdocs/langs/ja_JP/withdrawals.lang index 04266016084..96b9b5e37e1 100644 --- a/htdocs/langs/ja_JP/withdrawals.lang +++ b/htdocs/langs/ja_JP/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=こんにちは、

    法人 %s に関連する請求書%s ModeWarning=リアルモードのオプションが設定されていない、我々は、このシミュレーションの後に停止 ErrorCompanyHasDuplicateDefaultBAN=ID %s の法人には、複数のデフォルトの銀行口座がある。どちらを使用するかを知る方法はない。 ErrorICSmissing=銀行口座%sにICSがない +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=口座振替の合計金額が行の合計と異なる diff --git a/htdocs/langs/ja_JP/workflow.lang b/htdocs/langs/ja_JP/workflow.lang index 5fc746635df..cf1f12eb09f 100644 --- a/htdocs/langs/ja_JP/workflow.lang +++ b/htdocs/langs/ja_JP/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=リンクされたサプライヤの注文が検 descWORKFLOW_TICKET_CLOSE_INTERVENTION=チケットが閉じられたら、チケットにリンクされているすべての介入を閉じる AutomaticCreation=自動作成 AutomaticClassification=自動分類 +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=顧客の請求書が検証されたときに、リンクされたソース出荷をクローズとして分類する diff --git a/htdocs/langs/ka_GE/accountancy.lang b/htdocs/langs/ka_GE/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/ka_GE/accountancy.lang +++ b/htdocs/langs/ka_GE/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/ka_GE/admin.lang b/htdocs/langs/ka_GE/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/ka_GE/admin.lang +++ b/htdocs/langs/ka_GE/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/ka_GE/banks.lang b/htdocs/langs/ka_GE/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/ka_GE/banks.lang +++ b/htdocs/langs/ka_GE/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/ka_GE/boxes.lang b/htdocs/langs/ka_GE/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/ka_GE/boxes.lang +++ b/htdocs/langs/ka_GE/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/ka_GE/mails.lang b/htdocs/langs/ka_GE/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/ka_GE/mails.lang +++ b/htdocs/langs/ka_GE/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/ka_GE/main.lang b/htdocs/langs/ka_GE/main.lang index e196120c27d..f8ba6f4073c 100644 --- a/htdocs/langs/ka_GE/main.lang +++ b/htdocs/langs/ka_GE/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/ka_GE/mrp.lang b/htdocs/langs/ka_GE/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/ka_GE/mrp.lang +++ b/htdocs/langs/ka_GE/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/ka_GE/stocks.lang b/htdocs/langs/ka_GE/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/ka_GE/stocks.lang +++ b/htdocs/langs/ka_GE/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/ka_GE/withdrawals.lang b/htdocs/langs/ka_GE/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/ka_GE/withdrawals.lang +++ b/htdocs/langs/ka_GE/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/ka_GE/workflow.lang b/htdocs/langs/ka_GE/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/ka_GE/workflow.lang +++ b/htdocs/langs/ka_GE/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/km_KH/accountancy.lang b/htdocs/langs/km_KH/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/km_KH/accountancy.lang +++ b/htdocs/langs/km_KH/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/km_KH/admin.lang b/htdocs/langs/km_KH/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/km_KH/admin.lang +++ b/htdocs/langs/km_KH/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/km_KH/banks.lang b/htdocs/langs/km_KH/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/km_KH/banks.lang +++ b/htdocs/langs/km_KH/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/km_KH/boxes.lang b/htdocs/langs/km_KH/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/km_KH/boxes.lang +++ b/htdocs/langs/km_KH/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/km_KH/mails.lang b/htdocs/langs/km_KH/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/km_KH/mails.lang +++ b/htdocs/langs/km_KH/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/km_KH/main.lang b/htdocs/langs/km_KH/main.lang index 3238b6ee9e0..af9d6ca0889 100644 --- a/htdocs/langs/km_KH/main.lang +++ b/htdocs/langs/km_KH/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/km_KH/mrp.lang b/htdocs/langs/km_KH/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/km_KH/mrp.lang +++ b/htdocs/langs/km_KH/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/km_KH/stocks.lang b/htdocs/langs/km_KH/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/km_KH/stocks.lang +++ b/htdocs/langs/km_KH/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/km_KH/withdrawals.lang b/htdocs/langs/km_KH/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/km_KH/withdrawals.lang +++ b/htdocs/langs/km_KH/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/km_KH/workflow.lang b/htdocs/langs/km_KH/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/km_KH/workflow.lang +++ b/htdocs/langs/km_KH/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/kn_IN/accountancy.lang b/htdocs/langs/kn_IN/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/kn_IN/accountancy.lang +++ b/htdocs/langs/kn_IN/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/kn_IN/admin.lang b/htdocs/langs/kn_IN/admin.lang index 6e16e89d009..5322b65bb8f 100644 --- a/htdocs/langs/kn_IN/admin.lang +++ b/htdocs/langs/kn_IN/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/kn_IN/banks.lang b/htdocs/langs/kn_IN/banks.lang index ac6f369f144..c3c0461c34d 100644 --- a/htdocs/langs/kn_IN/banks.lang +++ b/htdocs/langs/kn_IN/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/kn_IN/boxes.lang b/htdocs/langs/kn_IN/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/kn_IN/boxes.lang +++ b/htdocs/langs/kn_IN/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/kn_IN/mails.lang b/htdocs/langs/kn_IN/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/kn_IN/mails.lang +++ b/htdocs/langs/kn_IN/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/kn_IN/main.lang b/htdocs/langs/kn_IN/main.lang index 031958eb288..28a3acd9245 100644 --- a/htdocs/langs/kn_IN/main.lang +++ b/htdocs/langs/kn_IN/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/kn_IN/mrp.lang b/htdocs/langs/kn_IN/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/kn_IN/mrp.lang +++ b/htdocs/langs/kn_IN/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/kn_IN/stocks.lang b/htdocs/langs/kn_IN/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/kn_IN/stocks.lang +++ b/htdocs/langs/kn_IN/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/kn_IN/withdrawals.lang b/htdocs/langs/kn_IN/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/kn_IN/withdrawals.lang +++ b/htdocs/langs/kn_IN/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/kn_IN/workflow.lang b/htdocs/langs/kn_IN/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/kn_IN/workflow.lang +++ b/htdocs/langs/kn_IN/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/ko_KR/accountancy.lang b/htdocs/langs/ko_KR/accountancy.lang index e71a5113772..b0285ae6cf3 100644 --- a/htdocs/langs/ko_KR/accountancy.lang +++ b/htdocs/langs/ko_KR/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang index 5f06c5e8534..6962ec7c3b3 100644 --- a/htdocs/langs/ko_KR/admin.lang +++ b/htdocs/langs/ko_KR/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/ko_KR/banks.lang b/htdocs/langs/ko_KR/banks.lang index b88ae14b627..b62d0312322 100644 --- a/htdocs/langs/ko_KR/banks.lang +++ b/htdocs/langs/ko_KR/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/ko_KR/boxes.lang b/htdocs/langs/ko_KR/boxes.lang index a6b6fd620d8..9c95a128986 100644 --- a/htdocs/langs/ko_KR/boxes.lang +++ b/htdocs/langs/ko_KR/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=최근 %s 월 롤링 ChooseBoxToAdd=대시 보드에 위젯 추가 BoxAdded=위젯이 대시 보드에 추가되었습니다. BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/ko_KR/mails.lang b/htdocs/langs/ko_KR/mails.lang index 863fc951a94..2d8bd79cbf8 100644 --- a/htdocs/langs/ko_KR/mails.lang +++ b/htdocs/langs/ko_KR/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/ko_KR/main.lang b/htdocs/langs/ko_KR/main.lang index d0bceece221..82a305bbc21 100644 --- a/htdocs/langs/ko_KR/main.lang +++ b/htdocs/langs/ko_KR/main.lang @@ -224,6 +224,7 @@ Value=값 PersonalValue=개인 값 NewObject=신규 %s NewValue=새 값 +OldValue=Old value %s CurrentValue=현재 값 Code=코드 Type=유형 @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=고객 미리보기 표시 ShowSupplierPreview=Show vendor preview RefCustomer=참조고객 +InternalRef=Internal ref. Currency=통화 InfoAdmin=관리자를위한 정보 Undo=원래대로 @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/ko_KR/mrp.lang b/htdocs/langs/ko_KR/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/ko_KR/mrp.lang +++ b/htdocs/langs/ko_KR/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/ko_KR/stocks.lang b/htdocs/langs/ko_KR/stocks.lang index 45f647abbce..3e6cd88b1b2 100644 --- a/htdocs/langs/ko_KR/stocks.lang +++ b/htdocs/langs/ko_KR/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/ko_KR/withdrawals.lang b/htdocs/langs/ko_KR/withdrawals.lang index 054c4d11865..eef5a3b1a94 100644 --- a/htdocs/langs/ko_KR/withdrawals.lang +++ b/htdocs/langs/ko_KR/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/ko_KR/workflow.lang b/htdocs/langs/ko_KR/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/ko_KR/workflow.lang +++ b/htdocs/langs/ko_KR/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang index 49054ee0f94..cfd6f41fbc9 100644 --- a/htdocs/langs/lo_LA/accountancy.lang +++ b/htdocs/langs/lo_LA/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang index 79575c1f6bf..fe18cd7ac67 100644 --- a/htdocs/langs/lo_LA/admin.lang +++ b/htdocs/langs/lo_LA/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/lo_LA/banks.lang b/htdocs/langs/lo_LA/banks.lang index 904c49c79df..4259ed5cc2d 100644 --- a/htdocs/langs/lo_LA/banks.lang +++ b/htdocs/langs/lo_LA/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/lo_LA/boxes.lang b/htdocs/langs/lo_LA/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/lo_LA/boxes.lang +++ b/htdocs/langs/lo_LA/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/lo_LA/mails.lang b/htdocs/langs/lo_LA/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/lo_LA/mails.lang +++ b/htdocs/langs/lo_LA/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang index ae6a57c1426..de3709bef9f 100644 --- a/htdocs/langs/lo_LA/main.lang +++ b/htdocs/langs/lo_LA/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/lo_LA/mrp.lang b/htdocs/langs/lo_LA/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/lo_LA/mrp.lang +++ b/htdocs/langs/lo_LA/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/lo_LA/stocks.lang b/htdocs/langs/lo_LA/stocks.lang index 19b8d4c468f..6397b23e96b 100644 --- a/htdocs/langs/lo_LA/stocks.lang +++ b/htdocs/langs/lo_LA/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/lo_LA/withdrawals.lang b/htdocs/langs/lo_LA/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/lo_LA/withdrawals.lang +++ b/htdocs/langs/lo_LA/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/lo_LA/workflow.lang b/htdocs/langs/lo_LA/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/lo_LA/workflow.lang +++ b/htdocs/langs/lo_LA/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/lt_LT/accountancy.lang b/htdocs/langs/lt_LT/accountancy.lang index e0c241d482a..30578cf5a3c 100644 --- a/htdocs/langs/lt_LT/accountancy.lang +++ b/htdocs/langs/lt_LT/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Ši paslauga ThisProduct=Ši prekė DefaultForService=Numatyta paslauga DefaultForProduct=Numatyta prekė +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Pasiūlyti negalima AccountancySetupDoneFromAccountancyMenu=Dauguma apskaitos nustatymo atliekama iš meniu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang index bec324ea83d..72b82a109b5 100644 --- a/htdocs/langs/lt_LT/admin.lang +++ b/htdocs/langs/lt_LT/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Paraštės -Module59000Desc=Paraščių valdymo modulis +Module59000Desc=Module to follow margins Module60000Name=Komisiniai Module60000Desc=Komisinių valdymo modulis Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Paieškos optimizavimas -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/lt_LT/banks.lang b/htdocs/langs/lt_LT/banks.lang index 794c75da5f2..2b529a086e7 100644 --- a/htdocs/langs/lt_LT/banks.lang +++ b/htdocs/langs/lt_LT/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/lt_LT/boxes.lang b/htdocs/langs/lt_LT/boxes.lang index 55b4aac24ef..897ee6b984c 100644 --- a/htdocs/langs/lt_LT/boxes.lang +++ b/htdocs/langs/lt_LT/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/lt_LT/mails.lang b/htdocs/langs/lt_LT/mails.lang index 453d2b8adbe..6028b9b5dac 100644 --- a/htdocs/langs/lt_LT/mails.lang +++ b/htdocs/langs/lt_LT/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/lt_LT/main.lang b/htdocs/langs/lt_LT/main.lang index f19af3fea97..20eab7ac66c 100644 --- a/htdocs/langs/lt_LT/main.lang +++ b/htdocs/langs/lt_LT/main.lang @@ -224,6 +224,7 @@ Value=Reikšmė PersonalValue=Asmeninė reikšmė NewObject=New %s NewValue=Nauja reikšmė +OldValue=Old value %s CurrentValue=Dabartinė reikšmė Code=Kodas Type=Tipas @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Rodyti Kliento peržiūrą ShowSupplierPreview=Show vendor preview RefCustomer=Kliento nuoroda +InternalRef=Internal ref. Currency=Valiuta InfoAdmin=Informacija administratoriams Undo=Anuliuoti @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Laikomas +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/lt_LT/mrp.lang b/htdocs/langs/lt_LT/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/lt_LT/mrp.lang +++ b/htdocs/langs/lt_LT/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/lt_LT/stocks.lang b/htdocs/langs/lt_LT/stocks.lang index 69011ae1d62..bcb4de636b7 100644 --- a/htdocs/langs/lt_LT/stocks.lang +++ b/htdocs/langs/lt_LT/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Sandėlių vertė UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/lt_LT/withdrawals.lang b/htdocs/langs/lt_LT/withdrawals.lang index 89d57f9bf90..a81864a269e 100644 --- a/htdocs/langs/lt_LT/withdrawals.lang +++ b/htdocs/langs/lt_LT/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Opcija realiam režimui nebuvo nustatyta, sustabdyta po šios simuliacijos ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/lt_LT/workflow.lang b/htdocs/langs/lt_LT/workflow.lang index 0f340b1be9a..dfb6dc3193f 100644 --- a/htdocs/langs/lt_LT/workflow.lang +++ b/htdocs/langs/lt_LT/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang index 3f7a5711a93..9825eac154e 100644 --- a/htdocs/langs/lv_LV/accountancy.lang +++ b/htdocs/langs/lv_LV/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Šis pakalpojums ThisProduct=Šis produkts DefaultForService=Noklusējums pakalpojumam DefaultForProduct=Noklusējums produktam +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Nevar ieteikt AccountancySetupDoneFromAccountancyMenu=Lielākā daļa grāmatvedības iestatīšanas tiek veikta no izvēlnes %s ConfigAccountingExpert=Moduļa uzskaites konfigurācija (dubultā ieraksts) diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index 3f35ab02572..88ecbad779e 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Tiešā druka (neatverot dokumentus), izmantojot Cups IPP saskar Module55000Name=Aptauja vai balsojums Module55000Desc=Izveidot tiešsaistes aptaujas, aptaujas vai balsis (piemēram, Doodle, Studs, RDVz utt.) Module59000Name=Malas -Module59000Desc=Moduli, lai pārvaldītu peļņu +Module59000Desc=Module to follow margins Module60000Name=Komisijas Module60000Desc=Modulis lai pārvaldītu komisijas Module62000Name=Inkoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=Jūs izmantojat draiveri %s, kas ir labākais šobrīd pieejams YouDoNotUseBestDriver=Jūs izmantojat draiveri %s, bet ieteicams ir %s. NbOfObjectIsLowerThanNoPb=Jums datu bāzē ir tikai %s %s. Tam nav nepieciešama īpaša optimizācija. SearchOptim=Meklēšanas optimizācija -YouHaveXObjectUseSearchOptim=Jums datu bāzē ir %s %s. Jums konstante %s jāpievieno vienumam mapē Mājas iestatīšana-Cits. Ierobežojiet meklēšanu līdz virkņu sākumam, kas datu bāzei ļauj izmantot indeksus, un jums vajadzētu saņemt tūlītēju atbildi. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=Jums datu bāzē ir %s %s, un konstante %s mapē Mājas iestatīšana ir iestatīta uz 1. BrowserIsOK=Jūs izmantojat tīmekļa pārlūku %s. Šī pārlūkprogramma ir droša un ātrdarbīgs. BrowserIsKO=Jūs izmantojat tīmekļa pārlūku %s. Šī pārlūka informācija ir slikta izvēle drošībai, veiktspējai un uzticamībai. Mēs iesakām izmantot Firefox, Chrome, Opera vai Safari. diff --git a/htdocs/langs/lv_LV/banks.lang b/htdocs/langs/lv_LV/banks.lang index 0cd3a6e33e0..0bf310b3a54 100644 --- a/htdocs/langs/lv_LV/banks.lang +++ b/htdocs/langs/lv_LV/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Ja šī funkcija ir iespējota, jūs varat izvēlēties BankColorizeMovementName1=Debeta kustības fona krāsa BankColorizeMovementName2=Kredīta aprites fona krāsa IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/lv_LV/boxes.lang b/htdocs/langs/lv_LV/boxes.lang index 7fdf89cf74d..ff805fefef0 100644 --- a/htdocs/langs/lv_LV/boxes.lang +++ b/htdocs/langs/lv_LV/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Jaunākais %s mēnesis ritošais ChooseBoxToAdd=Pievienojiet logrīku savam informācijas panelim BoxAdded=Jūsu vadības panelī ir pievienots logrīks BoxTitleUserBirthdaysOfMonth=Šī mēneša dzimšanas dienas (lietotāji) -BoxLastManualEntries=Pēdējie manuālie ieraksti grāmatvedībā -BoxTitleLastManualEntries=%s jaunākie manuālie ieraksti +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Grāmatvedībā nav manuālu ierakstu BoxSuspenseAccount=Grāmatvedības operācija ar pagaidu kontu BoxTitleSuspenseAccount=Nepiešķirto līniju skaits diff --git a/htdocs/langs/lv_LV/mails.lang b/htdocs/langs/lv_LV/mails.lang index 80a62c6eaf0..0b05dd5c665 100644 --- a/htdocs/langs/lv_LV/mails.lang +++ b/htdocs/langs/lv_LV/mails.lang @@ -175,3 +175,5 @@ Answered=Atbildēts IsNotAnAnswer=Nav atbildes (sākotnējais e-pasts) IsAnAnswer=Vai ir atbilde uz sākotnējo e-pastu RecordCreatedByEmailCollector=Ierakstu izveidojis e-pasta savācējs %s no e-pasta %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang index cabd7893370..9e137712141 100644 --- a/htdocs/langs/lv_LV/main.lang +++ b/htdocs/langs/lv_LV/main.lang @@ -224,6 +224,7 @@ Value=Vērtība PersonalValue=Personīgā vērtība NewObject=Jauns %s NewValue=Jaunā vērtība +OldValue=Old value %s CurrentValue=Pašreizējā vērtība Code=Kods Type=Tips @@ -655,6 +656,7 @@ SupplierPreview=Pārdevēja priekšskatījums ShowCustomerPreview=Rādīt klientu priekšskatījumu ShowSupplierPreview=Rādīt pārdevēja priekšskatījumu RefCustomer=Ref. klienta +InternalRef=Internal ref. Currency=Valūta InfoAdmin=Informācija administratoriem Undo=Atcelt @@ -1113,6 +1115,7 @@ OutOfDate=Novecojis EventReminder=Atgādinājums par notikumu UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/lv_LV/mrp.lang b/htdocs/langs/lv_LV/mrp.lang index bf03d346a2e..e56abf7d542 100644 --- a/htdocs/langs/lv_LV/mrp.lang +++ b/htdocs/langs/lv_LV/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Kopējās izmaksas BOMTotalCost=Šīs BOM izgatavošanas izmaksas, pamatojoties uz katra patērētā daudzuma un produkta izmaksām (izmantojiet pašizmaksu, ja tā ir noteikta, cita - vidējā svērtā cena, ja ir noteikta, citur - labākā pirkuma cena). GoOnTabProductionToProduceFirst=Vispirms jums ir jāsāk ražošana, lai aizvērtu ražošanas pasūtījumu (sk. Cilni '%s'). Bet jūs varat to atcelt. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/lv_LV/stocks.lang b/htdocs/langs/lv_LV/stocks.lang index d98816193f2..91412191b93 100644 --- a/htdocs/langs/lv_LV/stocks.lang +++ b/htdocs/langs/lv_LV/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Noliktavas vērtība UserWarehouseAutoCreate=Lietotāja noliktavas izveide, izveidojot lietotāju AllowAddLimitStockByWarehouse=Pārvaldiet arī minimālā un vēlamā krājuma vērtību pārī (produkta noliktava), papildus minimālā un vēlamā krājuma vērtībai vienam produktam RuleForWarehouse=Noteikumi noliktavām +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Iestatiet noliktavu pārdošanas pasūtījumiem UserDefaultWarehouse=Iestatiet noliktavu lietotājiem MainDefaultWarehouse=Noklusētā noliktava diff --git a/htdocs/langs/lv_LV/withdrawals.lang b/htdocs/langs/lv_LV/withdrawals.lang index 613a91e6d80..f547e315cce 100644 --- a/htdocs/langs/lv_LV/withdrawals.lang +++ b/htdocs/langs/lv_LV/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Labdien,

    banka noraidījusi rēķina %s tiešā debe ModeWarning=Iespēja reālā režīmā nav noteikts, mēs pārtraucam pēc šīs simulācijas ErrorCompanyHasDuplicateDefaultBAN=Uzņēmumam ar ID %s ir vairāk nekā viens noklusējuma bankas konts. Nevar uzzināt, kuru izmantot. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/lv_LV/workflow.lang b/htdocs/langs/lv_LV/workflow.lang index 2e7aff69db9..460cdffc0d3 100644 --- a/htdocs/langs/lv_LV/workflow.lang +++ b/htdocs/langs/lv_LV/workflow.lang @@ -16,8 +16,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klasificējiet saistīto avota pār # Autoclassify purchase order descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Saistīto avotu pārdevēju priekšlikuma klasifikācija tiek apmaksāta, kad tiek apstiprināts piegādātāja rēķins (un ja rēķina summa ir tāda pati kā saistītā piedāvājuma kopējā summa) descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klasificēt saistīto avotu pirkuma pasūtījumu, par kuru jāmaksā, kad tiek apstiprināts piegādātāja rēķins (un ja rēķina summa ir tāda pati kā saistītā pasūtījuma summa) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_BILL_ON_RECEPTION=Klasificējiet pieņemjumus uz “rēķinu”, kad ir apstiprināts saistītā piegādātāja pasūtījums # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Kad biļete ir slēgta, aizveriet visas ar biļeti saistītās darbības AutomaticCreation=Automātiska veidošana AutomaticClassification=Automātiskā klasifikācija +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/mk_MK/accountancy.lang b/htdocs/langs/mk_MK/accountancy.lang index 7ac73743109..9940d0fea92 100644 --- a/htdocs/langs/mk_MK/accountancy.lang +++ b/htdocs/langs/mk_MK/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Оваа услуга ThisProduct=Овој производ DefaultForService=Стандардно за услугата DefaultForProduct=Стандардно за производот +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Без предлози AccountancySetupDoneFromAccountancyMenu=Повеќето поставување на сметководството е направено од менито %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/mk_MK/admin.lang b/htdocs/langs/mk_MK/admin.lang index 74ac7411e4c..b6770cce1bb 100644 --- a/htdocs/langs/mk_MK/admin.lang +++ b/htdocs/langs/mk_MK/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/mk_MK/banks.lang b/htdocs/langs/mk_MK/banks.lang index e6623eea6d4..17caf495566 100644 --- a/htdocs/langs/mk_MK/banks.lang +++ b/htdocs/langs/mk_MK/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/mk_MK/boxes.lang b/htdocs/langs/mk_MK/boxes.lang index ec9b773dcf9..36416e0f36c 100644 --- a/htdocs/langs/mk_MK/boxes.lang +++ b/htdocs/langs/mk_MK/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Додади виџет на контролниот панел BoxAdded=Виџетот е додаден на контролниот панел BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/mk_MK/mails.lang b/htdocs/langs/mk_MK/mails.lang index 0837df31830..3d72192f7ce 100644 --- a/htdocs/langs/mk_MK/mails.lang +++ b/htdocs/langs/mk_MK/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/mk_MK/main.lang b/htdocs/langs/mk_MK/main.lang index b8dd26ca1e1..5f2722a96ff 100644 --- a/htdocs/langs/mk_MK/main.lang +++ b/htdocs/langs/mk_MK/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/mk_MK/mrp.lang b/htdocs/langs/mk_MK/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/mk_MK/mrp.lang +++ b/htdocs/langs/mk_MK/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/mk_MK/stocks.lang b/htdocs/langs/mk_MK/stocks.lang index d709d74ae88..2b36b21b77a 100644 --- a/htdocs/langs/mk_MK/stocks.lang +++ b/htdocs/langs/mk_MK/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/mk_MK/withdrawals.lang b/htdocs/langs/mk_MK/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/mk_MK/withdrawals.lang +++ b/htdocs/langs/mk_MK/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/mk_MK/workflow.lang b/htdocs/langs/mk_MK/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/mk_MK/workflow.lang +++ b/htdocs/langs/mk_MK/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/mn_MN/accountancy.lang b/htdocs/langs/mn_MN/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/mn_MN/accountancy.lang +++ b/htdocs/langs/mn_MN/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/mn_MN/admin.lang b/htdocs/langs/mn_MN/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/mn_MN/admin.lang +++ b/htdocs/langs/mn_MN/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/mn_MN/banks.lang b/htdocs/langs/mn_MN/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/mn_MN/banks.lang +++ b/htdocs/langs/mn_MN/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/mn_MN/boxes.lang b/htdocs/langs/mn_MN/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/mn_MN/boxes.lang +++ b/htdocs/langs/mn_MN/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/mn_MN/mails.lang b/htdocs/langs/mn_MN/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/mn_MN/mails.lang +++ b/htdocs/langs/mn_MN/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/mn_MN/main.lang b/htdocs/langs/mn_MN/main.lang index 20913010d4d..5cf9981a8a0 100644 --- a/htdocs/langs/mn_MN/main.lang +++ b/htdocs/langs/mn_MN/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/mn_MN/mrp.lang b/htdocs/langs/mn_MN/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/mn_MN/mrp.lang +++ b/htdocs/langs/mn_MN/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/mn_MN/stocks.lang b/htdocs/langs/mn_MN/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/mn_MN/stocks.lang +++ b/htdocs/langs/mn_MN/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/mn_MN/withdrawals.lang b/htdocs/langs/mn_MN/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/mn_MN/withdrawals.lang +++ b/htdocs/langs/mn_MN/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/mn_MN/workflow.lang b/htdocs/langs/mn_MN/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/mn_MN/workflow.lang +++ b/htdocs/langs/mn_MN/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang index 50b7a4ce1c6..bc97267e787 100644 --- a/htdocs/langs/nb_NO/accountancy.lang +++ b/htdocs/langs/nb_NO/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Denne tjenesten ThisProduct=Denne varen DefaultForService=Standard for tjeneste DefaultForProduct=Standard for vare +ProductForThisThirdparty=Vare for denne tredjeparten +ServiceForThisThirdparty=Tjeneste for denne tredjeparten CantSuggest=Kan ikke foreslå AccountancySetupDoneFromAccountancyMenu=Mesteparten av regnskapet settes opp fra menyen %s ConfigAccountingExpert=Konfigurasjon av modulen regnskap (dobbel oppføring) diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index e84546c7c7b..a839e55d031 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direkteutskrift (uten å åpne dokumentet)ved hjelp av CUPS IPP Module55000Name=Meningsmåling, undersøkelse eller avstemming Module55000Desc=Opprett online undersøkelser eller avstemminger (som Doodle, Studs, RDVz etc ...) Module59000Name=Marginer -Module59000Desc=Modul for å administrere marginer +Module59000Desc=Modul for å følge marginer Module60000Name=Provisjoner Module60000Desc=Modul for å administrere provisjoner Module62000Name=Incotermer @@ -1308,7 +1308,7 @@ YouUseBestDriver=Du bruker driver %s som er den beste driveren som er tilgjengel YouDoNotUseBestDriver=Du bruker driveren %s. Driver %s anbefales. NbOfObjectIsLowerThanNoPb=Du har bare %s %s i databasen. Dette krever ingen spesiell optimalisering. SearchOptim=Forbedre søket -YouHaveXObjectUseSearchOptim=Du har %s %s i databasen. Du bør legge til konstanten %s til 1 i Hjem-Oppsett-Annet. Begrens søket til begynnelsen av strenger som gjør det mulig for databasen å bruke indekser, og du bør få et øyeblikkelig svar. +YouHaveXObjectUseSearchOptim=Du har %s %s i databasen. Du kan legge til konstanten %s til 1 i Hjem-Oppsett-Annet. Begrens søket til begynnelsen av strenger, slik at det blir lettere for databasen å bruke indekser, og du får raskere svar. YouHaveXObjectAndSearchOptimOn=Du har %s %s i databasen og konstant %s er satt til 1 i Hjem-Oppsett-Annet. BrowserIsOK=Du bruker nettleseren %s. Denne nettleseren er ok for sikkerhet og ytelse. BrowserIsKO=Du bruker nettleseren %s. Denne nettleseren er kjent for å være et dårlig valg for sikkerhet, ytelse og pålitelighet. Vi anbefaler deg å bruke Firefox, Chrome, Opera eller Safari. diff --git a/htdocs/langs/nb_NO/banks.lang b/htdocs/langs/nb_NO/banks.lang index 447ebb7eff7..3830db8bba9 100644 --- a/htdocs/langs/nb_NO/banks.lang +++ b/htdocs/langs/nb_NO/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Hvis denne funksjonen er aktivert, kan du velge spesifi BankColorizeMovementName1=Bakgrunnsfarge for debetbevegelse BankColorizeMovementName2=Bakgrunnsfarge for kredittbevegelse IfYouDontReconcileDisableProperty=Hvis du ikke foretar bankavstemninger på noen bankkontoer, deaktiverer du egenskapen"%s" for å fjerne denne advarselen. +NoBankAccountDefined=Ingen bankkonto definert diff --git a/htdocs/langs/nb_NO/boxes.lang b/htdocs/langs/nb_NO/boxes.lang index 4e5b200dd3e..7f5f1011b58 100644 --- a/htdocs/langs/nb_NO/boxes.lang +++ b/htdocs/langs/nb_NO/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=De siste %s måneders omsetning ChooseBoxToAdd=Legg widget til i kontrollpanelet BoxAdded=Widget ble lagt til i kontrollpanelet ditt BoxTitleUserBirthdaysOfMonth=Fødselsdager denne måneden (brukere) -BoxLastManualEntries=Siste manuelle oppføringer i regnskap -BoxTitleLastManualEntries=%s siste manuelle oppføringer +BoxLastManualEntries=Siste post i regnskapsføring angitt manuelt eller uten kildedokument +BoxTitleLastManualEntries=%s siste post skrevet inn manuelt eller uten kildedokument NoRecordedManualEntries=Ingen manuelle poster registrert i regnskap BoxSuspenseAccount=Tell regnskapsføring med spenningskonto BoxTitleSuspenseAccount=Antall ikke tildelte linjer diff --git a/htdocs/langs/nb_NO/mails.lang b/htdocs/langs/nb_NO/mails.lang index 0094103c3a9..9251f3d2386 100644 --- a/htdocs/langs/nb_NO/mails.lang +++ b/htdocs/langs/nb_NO/mails.lang @@ -175,3 +175,5 @@ Answered=Besvarte IsNotAnAnswer=Er ikke svar (første e-post) IsAnAnswer=Er et svar på en første e-post RecordCreatedByEmailCollector=Post opprettet av Email Collector %s fra e-post %s +DefaultBlacklistMailingStatus=Standard kontaktstatus for avslag på masse-e-post +DefaultStatusEmptyMandatory=Tom, men obligatorisk diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang index d807171680c..15410c383e2 100644 --- a/htdocs/langs/nb_NO/main.lang +++ b/htdocs/langs/nb_NO/main.lang @@ -224,6 +224,7 @@ Value=Verdi PersonalValue=Personlig verdi NewObject=Ny %s NewValue=Ny verdi +OldValue=Gammel verdi %s CurrentValue=Gjeldende verdi Code=Kode Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Leverandør forhåndsvisning ShowCustomerPreview=Vis kundeforhåndsvisning ShowSupplierPreview=Vis leverandør forhåndsvisning RefCustomer=Kundereferanse +InternalRef=Intern ref. Currency=Valuta InfoAdmin=Informasjon for administratorer Undo=Angre @@ -1113,6 +1115,7 @@ OutOfDate=Utdatert EventReminder=Påminnelse om hendelse UpdateForAllLines=Oppdatering for alle linjer OnHold=Venter +Civility=Tiltale AffectTag=Påvirk merke ConfirmAffectTag=Påvirk bulkmerke ConfirmAffectTagQuestion=Er du sikker på at du vil påvirke merker til valgte %s post(er)? diff --git a/htdocs/langs/nb_NO/mrp.lang b/htdocs/langs/nb_NO/mrp.lang index 62c13051340..befe91b18d4 100644 --- a/htdocs/langs/nb_NO/mrp.lang +++ b/htdocs/langs/nb_NO/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Totalkostnad BOMTotalCost=Kostnaden for å produsere denne stykklisten basert på kostnadene for hver mengde og vare som skal konsumeres (bruk kostpris hvis definert, ellers gjennomsnittlig vektet pris hvis definert, ellers den beste kjøpesummen) GoOnTabProductionToProduceFirst=Du må først ha startet produksjonen for å lukke en produksjonsordre (se fanen '%s'). Men du kan kansellere den. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Et sett kan ikke brukes i en BOM eller en MO +Workstation=Arbeidsstasjon +Workstations=Arbeidsstasjoner +WorkstationsDescription=Håndtering av arbeidsstasjoner +WorkstationSetup = Oppsett av arbeidsstasjoner +WorkstationSetupPage = Oppsettside for arbeidsstasjoner +WorkstationAbout = Om arbeidsstasjon +WorkstationAboutPage = Side om arbeidsstasjoner +WorkstationList=Arbeidsstasjonsliste +WorkstationCreate=Legg til ny arbeidsstasjon +ConfirmEnableWorkstation=Er du sikker på at du vil aktivere arbeidsstasjonen %s ? +EnableAWorkstation=Aktiver en arbeidsstasjon +ConfirmDisableWorkstation=Er du sikker på at du vil deaktivere arbeidsstasjonen %s ? +DisableAWorkstation=Deaktiver en arbeidsstasjon +DeleteWorkstation=Slett +NbOperatorsRequired=Antall operatører som kreves +THMOperatorEstimated=Anslått operatør THM +THMMachineEstimated=Anslått maskin THM +WorkstationType=Arbeidsstasjonstype +Human=Menneskelig +Machine=Maskin +HumanMachine=Menneske/maskin +WorkstationArea=Arbeidsstasjonsområde +Machines=Maskiner +THMEstimatedHelp=Denne verdien gjør det mulig å definere en prognosekostnad for varen diff --git a/htdocs/langs/nb_NO/stocks.lang b/htdocs/langs/nb_NO/stocks.lang index b8ad0e2471a..11a434e3082 100644 --- a/htdocs/langs/nb_NO/stocks.lang +++ b/htdocs/langs/nb_NO/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Lagerverdi UserWarehouseAutoCreate=Opprett et brukerlager automatisk når du oppretter en bruker AllowAddLimitStockByWarehouse=Administrer verdi for minimum og ønsket lager per sammenkobling (varelager) i tillegg til verdien for minimum og ønsket lager pr. vare RuleForWarehouse=Regel for lagre +WarehouseAskWarehouseDuringPropal=Sett et varehus på tilbud WarehouseAskWarehouseDuringOrder=Sett et lager på salgsordrer UserDefaultWarehouse=Sett et lager på brukere MainDefaultWarehouse=Standard lager diff --git a/htdocs/langs/nb_NO/withdrawals.lang b/htdocs/langs/nb_NO/withdrawals.lang index 4e88dd8bf0b..a0e78bf86e7 100644 --- a/htdocs/langs/nb_NO/withdrawals.lang +++ b/htdocs/langs/nb_NO/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hei,

    direktedebet betalingsordre av faktura %s tilhøre ModeWarning=Opsjon for reell-modus ble ikke satt, så vi stopper etter denne simuleringen ErrorCompanyHasDuplicateDefaultBAN=Firma med ID%s har mer enn én standard bankkonto. Ingen måte å vite hvilken du skal bruke. ErrorICSmissing=Mangler ICS i bankkonto %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Totalt beløp for direktedebet er ulik linjesum diff --git a/htdocs/langs/nb_NO/workflow.lang b/htdocs/langs/nb_NO/workflow.lang index 1c08b5b0b78..92fa39bdda2 100644 --- a/htdocs/langs/nb_NO/workflow.lang +++ b/htdocs/langs/nb_NO/workflow.lang @@ -16,8 +16,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klassifiser koblet kilde-kundeordre # Autoclassify purchase order descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Klassifiser tilsluttede kildeleverandørtilbud som fakturert når leverandørfaktura er validert (og hvis fakturabeløp er det samme som totalbeløp på koblede tilbud) descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Klassifiser kildekjøpsordre (kjøpsordre) som fakturert når leverandørfakturaen er validert (og hvis fakturabeløp er det samme som totalbeløp på koblede ordre) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_BILL_ON_RECEPTION=Klassifiser mottak til "fakturert" når en koblet leverandørbestilling er validert # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Lukk alle intervensjoner knyttet til billetten når en billett er lukket AutomaticCreation=Automatisk opprettelse AutomaticClassification=Automatisk klassifisering +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Klassifiser koblet kildesending som lukket når kundefaktura er validert diff --git a/htdocs/langs/ne_NP/accountancy.lang b/htdocs/langs/ne_NP/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/ne_NP/accountancy.lang +++ b/htdocs/langs/ne_NP/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/ne_NP/admin.lang b/htdocs/langs/ne_NP/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/ne_NP/admin.lang +++ b/htdocs/langs/ne_NP/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/ne_NP/banks.lang b/htdocs/langs/ne_NP/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/ne_NP/banks.lang +++ b/htdocs/langs/ne_NP/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/ne_NP/boxes.lang b/htdocs/langs/ne_NP/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/ne_NP/boxes.lang +++ b/htdocs/langs/ne_NP/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/ne_NP/mails.lang b/htdocs/langs/ne_NP/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/ne_NP/mails.lang +++ b/htdocs/langs/ne_NP/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/ne_NP/main.lang b/htdocs/langs/ne_NP/main.lang index e196120c27d..f8ba6f4073c 100644 --- a/htdocs/langs/ne_NP/main.lang +++ b/htdocs/langs/ne_NP/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/ne_NP/mrp.lang b/htdocs/langs/ne_NP/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/ne_NP/mrp.lang +++ b/htdocs/langs/ne_NP/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/ne_NP/stocks.lang b/htdocs/langs/ne_NP/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/ne_NP/stocks.lang +++ b/htdocs/langs/ne_NP/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/ne_NP/withdrawals.lang b/htdocs/langs/ne_NP/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/ne_NP/withdrawals.lang +++ b/htdocs/langs/ne_NP/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/ne_NP/workflow.lang b/htdocs/langs/ne_NP/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/ne_NP/workflow.lang +++ b/htdocs/langs/ne_NP/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang index 95647142990..9e36971311b 100644 --- a/htdocs/langs/nl_BE/admin.lang +++ b/htdocs/langs/nl_BE/admin.lang @@ -231,7 +231,6 @@ AccountantFileNumber=Code voor boekhouder AvailableModules=Beschikbare app / modules ParameterActiveForNextInputOnly=De instelling word pas actief voor de volgende invoer YouMustEnableOneModule=Je moet minstens 1 module aktiveren -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. BillsPDFModules=Factuur documentsjablonen LDAPGlobalParameters=Globale instellingen LDAPPassword=Beheerderswachtwoord diff --git a/htdocs/langs/nl_BE/mrp.lang b/htdocs/langs/nl_BE/mrp.lang new file mode 100644 index 00000000000..a8ff138755b --- /dev/null +++ b/htdocs/langs/nl_BE/mrp.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index d633a3e3d03..13032515f54 100644 --- a/htdocs/langs/nl_NL/accountancy.lang +++ b/htdocs/langs/nl_NL/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Deze dienst ThisProduct=Dit product DefaultForService=Standaard bij dienst DefaultForProduct=Standaard bij product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Geen voorstel AccountancySetupDoneFromAccountancyMenu=Meeste instellingen boekhouding worden gedaan vanuit menu %s ConfigAccountingExpert=Configuratie van boekhoud-module (dubbel boekhouden) diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index ef1d079d7cf..7459ec2257a 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct afdrukken (zonder de documenten te openen) met behulp van Module55000Name=Poll, Onderzoek of Stemmen Module55000Desc=Maak online polls, enquêtes of stemmen (zoals Doodle, Studs, RDVz enz ...) Module59000Name=Marges -Module59000Desc=Module om de marges te beheren +Module59000Desc=Module to follow margins Module60000Name=Commissies Module60000Desc=Module om commissies te beheren Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=U gebruikt stuurprogramma %s, het beste stuurprogramma dat mome YouDoNotUseBestDriver=U gebruikt stuurprogramma %s maar stuurprogramma %s wordt aanbevolen. NbOfObjectIsLowerThanNoPb=U hebt alleen %s %s in de database. Dit vereist geen specifieke optimalisatie. SearchOptim=Zoekmachine optimalisatie -YouHaveXObjectUseSearchOptim=U hebt %s %s in de database. U moet de constante %s toevoegen aan 1 in Home-Setup-Other. Beperk de zoekopdracht tot het begin van tekenreeksen, waardoor de database indexen kan gebruiken en u onmiddellijk antwoord moet krijgen. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=U hebt %s %s in de database en constante %s is ingesteld op 1 in Home-Setup-Other. BrowserIsOK=U gebruikt de webbrowser %s. Deze browser is geschikt voor beveiliging en prestaties. BrowserIsKO=U gebruikt de webbrowser %s. Deze browser staat bekend als een slechte keuze voor beveiliging, prestaties en betrouwbaarheid. We raden aan om Firefox, Chrome, Opera of Safari te gebruiken. diff --git a/htdocs/langs/nl_NL/banks.lang b/htdocs/langs/nl_NL/banks.lang index 3ca33c9c71b..5350f4939a7 100644 --- a/htdocs/langs/nl_NL/banks.lang +++ b/htdocs/langs/nl_NL/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Als deze functie is ingeschakeld, kunt u een specifieke BankColorizeMovementName1=Achtergrondkleur voor debetmutatie BankColorizeMovementName2=Achtergrondkleur voor creditmutatie IfYouDontReconcileDisableProperty=Als u op sommige bankrekeningen geen bankafstemmingen uitvoert, schakelt u de eigenschap "%s" uit om deze waarschuwing te verwijderen. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/nl_NL/boxes.lang b/htdocs/langs/nl_NL/boxes.lang index adfa20cb15d..49eff98a42e 100644 --- a/htdocs/langs/nl_NL/boxes.lang +++ b/htdocs/langs/nl_NL/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=De laatste %s maand overschrijdende ChooseBoxToAdd=Voeg widget toe aan uw dashboard BoxAdded=Widget is toegevoegd in je dashboard BoxTitleUserBirthdaysOfMonth=Verjaardagen van deze maand (gebruikers) -BoxLastManualEntries=Laatste handmatige invoer in accountancy -BoxTitleLastManualEntries=%s laatste handmatige invoer +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Geen handmatige invoer opgenomen in boekhouding BoxSuspenseAccount=Tel boekhoudkundige bewerking met tussenrekening BoxTitleSuspenseAccount=Aantal niet-toegewezen lijnen diff --git a/htdocs/langs/nl_NL/mails.lang b/htdocs/langs/nl_NL/mails.lang index a14f41f49c8..84dbbc2a4a2 100644 --- a/htdocs/langs/nl_NL/mails.lang +++ b/htdocs/langs/nl_NL/mails.lang @@ -175,3 +175,5 @@ Answered=Beantwoord IsNotAnAnswer=Is geen antwoord (initiële e-mail) IsAnAnswer=Is een antwoord van een initiële e-mail RecordCreatedByEmailCollector=Record aangemaakt door de E-mail Collector %s van e-mail %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang index c04dad49fea..e55cb6e1942 100644 --- a/htdocs/langs/nl_NL/main.lang +++ b/htdocs/langs/nl_NL/main.lang @@ -224,6 +224,7 @@ Value=Waarde PersonalValue=Persoonlijke waarde NewObject=Nieuw %s NewValue=Nieuwe waarde +OldValue=Old value %s CurrentValue=Huidige waarde Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Voorbeeld van leverancier ShowCustomerPreview=Toon afnemersvoorbeeldweergave ShowSupplierPreview=Laat voorbeeld leverancier zien RefCustomer=Referentie afnemer +InternalRef=Internal ref. Currency=Valuta InfoAdmin=Informatie voor beheerders Undo=Ongedaan maken @@ -1113,6 +1115,7 @@ OutOfDate=Verouderd EventReminder=Herinnering voor evenement UpdateForAllLines=Update voor alle lijnen OnHold=In de wacht +Civility=Civility AffectTag=Heeft invloed op de tag ConfirmAffectTag=invloed op bulk-tag ConfirmAffectTagQuestion=Weet u zeker dat u tags wilt beïnvloeden voor de %s geselecteerde record (s)? diff --git a/htdocs/langs/nl_NL/mrp.lang b/htdocs/langs/nl_NL/mrp.lang index 7b36a04d9c6..ec0e4244c19 100644 --- a/htdocs/langs/nl_NL/mrp.lang +++ b/htdocs/langs/nl_NL/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Totale prijs BOMTotalCost=De kosten voor het produceren van deze stuklijst op basis van de kosten van elke hoeveelheid en elk te consumeren product (gebruik kostprijs indien gedefinieerd, anders gemiddelde gewogen prijs indien gedefinieerd, anders de beste aankoopprijs) GoOnTabProductionToProduceFirst=U moet eerst de productie hebben gestart om een Productieorder te sluiten (zie tabblad '%s'). Maar u kunt het annuleren. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Een kit kan niet worden gebruikt in een stuklijst of een MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/nl_NL/stocks.lang b/htdocs/langs/nl_NL/stocks.lang index 125bb7814bf..db940c6cf37 100644 --- a/htdocs/langs/nl_NL/stocks.lang +++ b/htdocs/langs/nl_NL/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Voorraadwaardering UserWarehouseAutoCreate=Creëer automatisch een gebruikersmagazijn wanneer u een gebruiker aanmaakt AllowAddLimitStockByWarehouse=Beheer ook de waarde voor minimale en gewenste voorraad per paar (productmagazijn) naast de waarde voor minimale en gewenste voorraad per product RuleForWarehouse=Voorwaarden magazijnen +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Stel een magazijn in op Verkooporders UserDefaultWarehouse=Stel een magazijn in op gebruikers MainDefaultWarehouse=Standaardmagazijn diff --git a/htdocs/langs/nl_NL/withdrawals.lang b/htdocs/langs/nl_NL/withdrawals.lang index b8f22e173a6..d2aabfb1334 100644 --- a/htdocs/langs/nl_NL/withdrawals.lang +++ b/htdocs/langs/nl_NL/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=M,

    de incasso van factuur %s voor bedrijf %s, met een b ModeWarning=Optie voor echte modus was niet ingesteld, we stoppen na deze simulatie ErrorCompanyHasDuplicateDefaultBAN=Bedrijf met id %s heeft meer dan één standaard bankrekening. Er is geen manier aanwezig om te weten welke u moet gebruiken. ErrorICSmissing=ICS ontbreekt op bankrekening %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/nl_NL/workflow.lang b/htdocs/langs/nl_NL/workflow.lang index 86779e7cde8..5aaea7ee12d 100644 --- a/htdocs/langs/nl_NL/workflow.lang +++ b/htdocs/langs/nl_NL/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classificeer ontvangsten als "gefactureerd" wanne descWORKFLOW_TICKET_CLOSE_INTERVENTION=Sluit alle interventies die aan het ticket zijn gekoppeld wanneer een ticket is gesloten AutomaticCreation=Automatisch aanmaken AutomaticClassification=Automatisch classificeren +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang index 873bbc8f7b6..f7345886c7e 100644 --- a/htdocs/langs/pl_PL/accountancy.lang +++ b/htdocs/langs/pl_PL/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Ta usługa ThisProduct=Ten produkt DefaultForService=Domyślny dla usługi DefaultForProduct=Domyślny dla produktu +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Nie mogę zasugerować AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index 744f7de57df..68fdfa7587f 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Marże -Module59000Desc=Moduł do zarządzania marżami +Module59000Desc=Module to follow margins Module60000Name=Prowizje Module60000Desc=Moduł do zarządzania prowizjami Module62000Name=Formuły handlowe @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Pozycjonowanie -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/pl_PL/banks.lang b/htdocs/langs/pl_PL/banks.lang index 2da0c9d11cd..31fa178b5f7 100644 --- a/htdocs/langs/pl_PL/banks.lang +++ b/htdocs/langs/pl_PL/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/pl_PL/boxes.lang b/htdocs/langs/pl_PL/boxes.lang index 9d93c3e1e90..7dd168a0e77 100644 --- a/htdocs/langs/pl_PL/boxes.lang +++ b/htdocs/langs/pl_PL/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Ostatni %s miesiąc ChooseBoxToAdd=Dodaj widget do swojej tablicy... BoxAdded=Widget został dodany do twojej tablicy BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/pl_PL/mails.lang b/htdocs/langs/pl_PL/mails.lang index ce291b8154c..54209fa28ee 100644 --- a/htdocs/langs/pl_PL/mails.lang +++ b/htdocs/langs/pl_PL/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang index 38a2f882bf5..8d654d34ccd 100644 --- a/htdocs/langs/pl_PL/main.lang +++ b/htdocs/langs/pl_PL/main.lang @@ -224,6 +224,7 @@ Value=Wartość PersonalValue=Osobiste wartości NewObject=Nowy %s NewValue=Nowa wartość +OldValue=Old value %s CurrentValue=Aktualna wartość Code=Kod Type=Typ @@ -655,6 +656,7 @@ SupplierPreview=Podgląd dostawcy ShowCustomerPreview=Pokaż podgląd klienta ShowSupplierPreview=Pokaż podgląd dostawcy RefCustomer=Nr ref. klient +InternalRef=Internal ref. Currency=Waluta InfoAdmin=Informacje dla administratorów Undo=Cofnij @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Wstrzymany +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/pl_PL/mrp.lang b/htdocs/langs/pl_PL/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/pl_PL/mrp.lang +++ b/htdocs/langs/pl_PL/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/pl_PL/stocks.lang b/htdocs/langs/pl_PL/stocks.lang index 661f8362a47..889b96b4be4 100644 --- a/htdocs/langs/pl_PL/stocks.lang +++ b/htdocs/langs/pl_PL/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Magazyny wartości UserWarehouseAutoCreate=Utwórz użytkownika dla magazynu kiedy tworzysz użytkownika AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Domyślny magazyn diff --git a/htdocs/langs/pl_PL/withdrawals.lang b/htdocs/langs/pl_PL/withdrawals.lang index 7c324b5c093..4d30e8d9c2e 100644 --- a/htdocs/langs/pl_PL/withdrawals.lang +++ b/htdocs/langs/pl_PL/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Opcja dla trybu rzeczywistego nie był ustawiony, zatrzymujemy po tej symulacji ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/pl_PL/workflow.lang b/htdocs/langs/pl_PL/workflow.lang index 384e999ce1e..2fe7a50b80e 100644 --- a/htdocs/langs/pl_PL/workflow.lang +++ b/htdocs/langs/pl_PL/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatyczne utworzenie AutomaticClassification=Automatyczne zaklasyfikowanie +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/pt_AO/mrp.lang b/htdocs/langs/pt_AO/mrp.lang new file mode 100644 index 00000000000..e65383ffd8f --- /dev/null +++ b/htdocs/langs/pt_AO/mrp.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +NewBOM=New bill of material diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index b3ead82fa80..74da419d9fb 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -467,7 +467,6 @@ Module50400Name=Contabilidade (entrada dupla) Module54000Name=ImprimirIPP Module55000Name=Pesquisa Aberta Module55000Desc=Criar pesquisas, enquetes ou votos on-line (como Doodle, Studs, RDVz etc ...) -Module59000Desc=Módulo para gerenciar margens Module60000Desc=Módulo para gerenciar comissão Module63000Desc=Gerenciar recursos (impressoras, carros, salas, ...) para alocar eventos Permission11=Ler Faturas de Clientes diff --git a/htdocs/langs/pt_BR/boxes.lang b/htdocs/langs/pt_BR/boxes.lang index 48e343e41d6..0d2b4f7a911 100644 --- a/htdocs/langs/pt_BR/boxes.lang +++ b/htdocs/langs/pt_BR/boxes.lang @@ -70,8 +70,6 @@ LastXMonthRolling=Ultima %s mensal ChooseBoxToAdd=Adicionar widget para sua area de notificacoes BoxAdded=A ferramenta foi adicionada no seu painel BoxTitleUserBirthdaysOfMonth=Aniversários deste mês (usuários) -BoxLastManualEntries=Últimas entradas manuais em contabilidade -BoxTitleLastManualEntries=%s últimas entradas manuais NoRecordedManualEntries=Nenhuma entrada manual registrada na contabilidade BoxSuspenseAccount=Operação de contabilidade com conta suspensa BoxTitleSuspenseAccount=Número de linhas não alocadas diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang index a39273a24c0..5f98a41fc2e 100644 --- a/htdocs/langs/pt_PT/accountancy.lang +++ b/htdocs/langs/pt_PT/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Este serviço ThisProduct=Este produto DefaultForService=Padrão para o serviço DefaultForProduct=Padrão para o produto +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Não pode sugerir AccountancySetupDoneFromAccountancyMenu=A maioria da configuração da contabilidade é efetuada a partir do menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index 97945494926..6db6d8a49dc 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Impressão direta (sem abrir os documentos) usando a interface C Module55000Name=Votação ou Questionário Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margens -Module59000Desc=Módulo para gerir margens +Module59000Desc=Module to follow margins Module60000Name=Comissões Module60000Desc=Módulo para gerir comissões Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=Você usa o driver %s, mas o driver %s é recomendado. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimização da pesquisa -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=Você está usando o navegador da web %s. Este navegador está ok para segurança e desempenho. BrowserIsKO=Você está usando o navegador da web %s. Este navegador é conhecido por ser uma má escolha para segurança, desempenho e confiabilidade. Recomendamos o uso do Firefox, Chrome, Opera ou Safari. diff --git a/htdocs/langs/pt_PT/banks.lang b/htdocs/langs/pt_PT/banks.lang index 34eb2d63a88..93df84b3707 100644 --- a/htdocs/langs/pt_PT/banks.lang +++ b/htdocs/langs/pt_PT/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/pt_PT/boxes.lang b/htdocs/langs/pt_PT/boxes.lang index 145da5f3ee4..494becf8c75 100644 --- a/htdocs/langs/pt_PT/boxes.lang +++ b/htdocs/langs/pt_PT/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Balanço dos últimos %s meses ChooseBoxToAdd=Adicionar widget ao painel de controlo BoxAdded=O Widget foi adicionado ao seu painel BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/pt_PT/mails.lang b/htdocs/langs/pt_PT/mails.lang index 48aee28e94b..df6212dc07b 100644 --- a/htdocs/langs/pt_PT/mails.lang +++ b/htdocs/langs/pt_PT/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang index 2fb27694a89..69cfcbc202c 100644 --- a/htdocs/langs/pt_PT/main.lang +++ b/htdocs/langs/pt_PT/main.lang @@ -224,6 +224,7 @@ Value=Valor PersonalValue=Valor pessoal NewObject=Novo %s NewValue=Novo valor +OldValue=Old value %s CurrentValue=Valor actual Code=Código Type=Tipo @@ -655,6 +656,7 @@ SupplierPreview=Pré-visualização do fornecedor ShowCustomerPreview=Ver Historial Cliente ShowSupplierPreview=Mostrar pré-visualização do fornecedor RefCustomer=Ref. Cliente +InternalRef=Internal ref. Currency=Moeda InfoAdmin=Informação para os administradores Undo=Desfazer @@ -1113,6 +1115,7 @@ OutOfDate=Desactualizado EventReminder=Lembrete de evento UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/pt_PT/mrp.lang b/htdocs/langs/pt_PT/mrp.lang index 60409d454a7..9e4293a072e 100644 --- a/htdocs/langs/pt_PT/mrp.lang +++ b/htdocs/langs/pt_PT/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Custo total BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/pt_PT/stocks.lang b/htdocs/langs/pt_PT/stocks.lang index 749a693d3b6..f45b0a7d580 100644 --- a/htdocs/langs/pt_PT/stocks.lang +++ b/htdocs/langs/pt_PT/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Valor de stocks UserWarehouseAutoCreate=Crie um armazém de usuários automaticamente ao criar um usuário AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Armazém predefinido diff --git a/htdocs/langs/pt_PT/withdrawals.lang b/htdocs/langs/pt_PT/withdrawals.lang index e0badd9bf68..fba7a0e8227 100644 --- a/htdocs/langs/pt_PT/withdrawals.lang +++ b/htdocs/langs/pt_PT/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Olá,

    a ordem de pagamento de débito directo da fac ModeWarning=Opção para o modo real não foi definido, nós paramos depois desta simulação ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/pt_PT/workflow.lang b/htdocs/langs/pt_PT/workflow.lang index c657d1eb8c2..15b30e7f6ac 100644 --- a/htdocs/langs/pt_PT/workflow.lang +++ b/htdocs/langs/pt_PT/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Criação automática AutomaticClassification=Classificação automática +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang index 729619f6738..390a4165131 100644 --- a/htdocs/langs/ro_RO/accountancy.lang +++ b/htdocs/langs/ro_RO/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Acest serviciu ThisProduct=Acest produs DefaultForService=Implicit pentru serviciu DefaultForProduct=Implicit pentru produs +ProductForThisThirdparty=Produs pentru acest terţ +ServiceForThisThirdparty=Serviciu pentru acest terţ CantSuggest=Nu pot sugera AccountancySetupDoneFromAccountancyMenu=Cele mai multe configurări ale contabilității se fac din meniul %s ConfigAccountingExpert=Configurare modul Contabilitate (partidă dublă) diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index 322a61e48f7..2ae296c86f8 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Imprimare directă (fără a deschide documentele) utilizând in Module55000Name=Sondaj, supraveghere sau vot Module55000Desc=Creați sondaje online, sondaje sau voturi (cum ar fi Doodle, Studs, RDVz etc ...) Module59000Name=Marje -Module59000Desc=Modul management marje +Module59000Desc=Modul pentru urmărirea marjelor Module60000Name=Comisioane Module60000Desc=Modul management comisioane Module62000Name=Incoterm @@ -1308,7 +1308,7 @@ YouUseBestDriver=Utilizați driverul %s, care este cel mai bun driver disponibil YouDoNotUseBestDriver=Utilizați driverul %s dar driverul %s este recomandat. NbOfObjectIsLowerThanNoPb=Aveţi doar %s%s în baza de date. Aceasta nu necesită nicio optimizare specială. SearchOptim=Optimizare căutare -YouHaveXObjectUseSearchOptim=Aveţi %s%s în baza de date. Ar trebui să adăgaţi constanta %scu valoarea 1 în Acasă-Setup-Altele. Limitați căutarea la începutul șirurilor, ceea ce face posibilă utilizarea bazei de date cu indecşi și ar trebui să obțineți un răspuns imediat. +YouHaveXObjectUseSearchOptim=Aveți %s %s în baza de date. Puteți adăuga constanta %s la 1 în Acasă-Configurare-Altele. Limitați căutarea la începutul șirurilor, ceea ce face posibilă utilizarea indecşilor în baza de date și ar trebui să primiți un răspuns mai rapid. YouHaveXObjectAndSearchOptimOn=Aveţi %s%s în baza de date şi constanta %s este setată la valoarea 1 în Acasă-Setup-Altele. BrowserIsOK=Utilizați browserul web %s. Acest browser este ok pentru securitate și performanţă. BrowserIsKO=Utilizați browserul web %s. Acest browser este cunoscut ca fiind o alegere proastă pentru securitate, fiabilitate și performanță. Vă recomandăm să utilizați Firefox, Chrome, Opera sau Safari. diff --git a/htdocs/langs/ro_RO/banks.lang b/htdocs/langs/ro_RO/banks.lang index ceffaaa830d..0ca440a7b50 100644 --- a/htdocs/langs/ro_RO/banks.lang +++ b/htdocs/langs/ro_RO/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Dacă această funcţie este activată, poţi alege o c BankColorizeMovementName1=Culoarea de fundal pentru tranzacţiile de debit BankColorizeMovementName2=Culoarea de fundal pentru tranzacţiile de credit IfYouDontReconcileDisableProperty= Dacă nu faceți reconcilieri bancare pe unele conturi bancare, dezactivați proprietatea "%s" de pe ele pentru a elimina acest avertisment.  +NoBankAccountDefined=Nu a fost definit niciun cont bancar diff --git a/htdocs/langs/ro_RO/boxes.lang b/htdocs/langs/ro_RO/boxes.lang index 061ab4052d7..6cc341fa46f 100644 --- a/htdocs/langs/ro_RO/boxes.lang +++ b/htdocs/langs/ro_RO/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Rulaj ultimele %s luni ChooseBoxToAdd=Adăugați widget în tabloul dvs. de bord BoxAdded=Widget a fost adăugat în tabloul dvs. de bord BoxTitleUserBirthdaysOfMonth=Aniversări în această lună (utilizatori) -BoxLastManualEntries=Ultimele înregistrări manuale în contabilitate -BoxTitleLastManualEntries=Ultimile %s înregistrări contabile manule +BoxLastManualEntries=Ultimile înregistrări în contabilitate introduse manual sau fără document sursă  +BoxTitleLastManualEntries=%s ultimele înregistrări introduse manual sau fără document sursă  NoRecordedManualEntries=Nici o înregistrare manuală în contabilitate BoxSuspenseAccount=Contorizează operaţiunea contabilă cu contul suspendat BoxTitleSuspenseAccount=Număr linii nealocate diff --git a/htdocs/langs/ro_RO/mails.lang b/htdocs/langs/ro_RO/mails.lang index 70ecbe53f8e..ae1db7a2f66 100644 --- a/htdocs/langs/ro_RO/mails.lang +++ b/htdocs/langs/ro_RO/mails.lang @@ -175,3 +175,5 @@ Answered=Răspuns IsNotAnAnswer=Nu răspunde (e-mail inițial) IsAnAnswer= Este un răspuns al unui email inițial RecordCreatedByEmailCollector=Înregistrare creată de colectorul de email %sdin adresa %s +DefaultBlacklistMailingStatus=Stare implicită a contactului care refuză primirea de email-uri bulk +DefaultStatusEmptyMandatory= Necompletat, dar obligatoriu  diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang index 3d3b79a3fcf..8edaaa8f73e 100644 --- a/htdocs/langs/ro_RO/main.lang +++ b/htdocs/langs/ro_RO/main.lang @@ -224,6 +224,7 @@ Value=Valoare PersonalValue=Valoare personalizată NewObject=Nou %s NewValue=Valoare nouă +OldValue=Valoare anterioară %s CurrentValue=Valoarea curentă Code=Cod Type=Tip @@ -655,6 +656,7 @@ SupplierPreview=Previzualizare furnizor ShowCustomerPreview=Afişează Preview client ShowSupplierPreview=Afișați previzualizarea furnizorului RefCustomer=Ref. client +InternalRef=Ref. internă Currency=Moneda InfoAdmin=Informaţii pentru administratori Undo=Anulaţi @@ -1113,6 +1115,7 @@ OutOfDate=Expirat EventReminder=Memento eveniment UpdateForAllLines=Actualizare pentru toate liniile OnHold=În aşteptare +Civility=Formulă de adresare AffectTag=Afectează eticheta ConfirmAffectTag=Afectare multiplă etichete ConfirmAffectTagQuestion=Sigur doriți să afectați etichetele înregistrărilor %s selectat(e)? diff --git a/htdocs/langs/ro_RO/mrp.lang b/htdocs/langs/ro_RO/mrp.lang index ca6af90cf80..7e8c774e52d 100644 --- a/htdocs/langs/ro_RO/mrp.lang +++ b/htdocs/langs/ro_RO/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Cost total BOMTotalCost=Costul pentru fabricaţia acestui Bon de consum în funcție de costul fiecărei cantități și produs de consumat (utilizați Prețul de cost, dacă este definit, altfel Prețul mediu ponderat, dacă este definit, altfel cel mai bun preț de achiziție) GoOnTabProductionToProduceFirst=Mai întâi trebuie să fi început producția pentru a închide o Comandă de fabricație (Vezi fila '%s'). Puteți anula. ErrorAVirtualProductCantBeUsedIntoABomOrMo=Un kit nu poate fi folosit într-un BOM sau MO +Workstation=Staţie de lucru +Workstations=Staţii de lucru +WorkstationsDescription=Management staţii de lucru +WorkstationSetup = Configurare staţii de lucru +WorkstationSetupPage = Pagină setup Staţii de lucru +WorkstationAbout = Despre Staţie de lucru +WorkstationAboutPage = Pagină Despre Staţii de lucru +WorkstationList=Listă staţii de lucru +WorkstationCreate=Adăugare staţie de lucru nouă +ConfirmEnableWorkstation=Eşti sigur că vrei să activezi staţia de lucru %s ? +EnableAWorkstation=Activare staţie de lucru +ConfirmDisableWorkstation=Eşti sigur că vrei să dezactivezi staţia de lucru %s ? +DisableAWorkstation=Dezactivare staţie de lucru +DeleteWorkstation=Ştergere +NbOperatorsRequired=Nr. de operatori necesar +THMOperatorEstimated=Total ore minute estimat per operator +THMMachineEstimated=Total ore minute estimat per maşină +WorkstationType=Tip staţie de lucru +Human=Uman +Machine=Maşină +HumanMachine=Uman / Maşină +WorkstationArea=Staţii de lucru +Machines=Maşini +THMEstimatedHelp=Această rată face posibilă definirea unui cost prognozat al articolului diff --git a/htdocs/langs/ro_RO/stocks.lang b/htdocs/langs/ro_RO/stocks.lang index 440c6e7fc47..50d0128e8fc 100644 --- a/htdocs/langs/ro_RO/stocks.lang +++ b/htdocs/langs/ro_RO/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Stoc valoric UserWarehouseAutoCreate=Creați automat un depozit utilizator atunci când creați un utilizator AllowAddLimitStockByWarehouse=Gestionează, de asemenea, valoarea pentru stocul minim și cel dorit pe perechi (produs-depozit), pe lângă valoarea pentru stocul minim și dorit pe produs RuleForWarehouse=Reguli pentru depozite +WarehouseAskWarehouseDuringPropal=Setează un depozit pe oferta comercială WarehouseAskWarehouseDuringOrder=Setează un depozit pe comenzile de vânzare UserDefaultWarehouse=Setează un depozit pe utilizatori MainDefaultWarehouse=Depozit implicit diff --git a/htdocs/langs/ro_RO/withdrawals.lang b/htdocs/langs/ro_RO/withdrawals.lang index 7bffe55a8e5..27cce1a4c2e 100644 --- a/htdocs/langs/ro_RO/withdrawals.lang +++ b/htdocs/langs/ro_RO/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Bună ziua,

    ordinul de plată prin debit direct al f ModeWarning=Opţiunea pentru modul real, nu a fost stabilit, ne oprim după această simulare ErrorCompanyHasDuplicateDefaultBAN=Compania cu id %s are mai multe conturi bancare implicite. Nu se poate determina cel care se doreşte a fi utilizat. ErrorICSmissing=ICS lipsă în contul bancar %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Suma totală a ordinului de debitare directă diferă de suma liniilor diff --git a/htdocs/langs/ro_RO/workflow.lang b/htdocs/langs/ro_RO/workflow.lang index d463b4a8433..de679361c0f 100644 --- a/htdocs/langs/ro_RO/workflow.lang +++ b/htdocs/langs/ro_RO/workflow.lang @@ -16,8 +16,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasificați comanda de vânzări s # Autoclassify purchase order descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Clasificați propunerea furnizorului sursă asociată ca fiind facturată atunci când factura furnizorului este validată (și dacă valoarea facturii este aceeași cu valoarea totală a propunerii asociate) descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasificați comanda de vânzări sursă asociată ca fiind facturată atunci când factura furnizorului este validată (și dacă valoarea facturii este aceeași cu valoarea totală a comenzii asociate) -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_BILL_ON_RECEPTION=Clasificați recepțiile la "facturate" atunci când este validată o comandă de achiziţie asociată # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=Închideți toate intervențiile legate de tichet atunci când tichetul este închis AutomaticCreation=Creare automată AutomaticClassification=Clasificare automată +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE= Clasificați livrarea asociată ca închisă atunci când factura clientului este validată diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang index 4518c9cc151..2b44d84c585 100644 --- a/htdocs/langs/ru_RU/accountancy.lang +++ b/htdocs/langs/ru_RU/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=По умолчанию для услуги DefaultForProduct=По умолчанию для товара +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Больше настроек бухгалтерии выполняется из меню %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index fe7795257cd..621f545e086 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Прямая печать (без открытия докуме Module55000Name=Голосование, обзор или голосование Module55000Desc=Создавайте онлайн-опросы, обзоры или голосования (например, Doodle, Studs, RDVz и т. Д.) Module59000Name=Наценки -Module59000Desc=Модуль управления наценками +Module59000Desc=Module to follow margins Module60000Name=Комиссии Module60000Desc=Модуль управления комиссиями Module62000Name=Обязанности по доставке товаров @@ -1308,7 +1308,7 @@ YouUseBestDriver=Вы используете драйвер %s, который YouDoNotUseBestDriver=Вы используете драйвер %s, но рекомендуется драйвер %s. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Поисковая оптимизация -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=Вы используете веб-браузер %s. Этот браузер подходит в отношении безопасности и производительности. BrowserIsKO=Вы используете веб-браузер %s. Этот браузер, как известно, является плохим выбором по безопасности, производительности и надежности. Мы рекомендуем использовать Firefox, Chrome, Opera или Safari. diff --git a/htdocs/langs/ru_RU/banks.lang b/htdocs/langs/ru_RU/banks.lang index a735e4ba31a..c5f91b7749e 100644 --- a/htdocs/langs/ru_RU/banks.lang +++ b/htdocs/langs/ru_RU/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/ru_RU/boxes.lang b/htdocs/langs/ru_RU/boxes.lang index 5656e826dc1..7cfe3e8a6e7 100644 --- a/htdocs/langs/ru_RU/boxes.lang +++ b/htdocs/langs/ru_RU/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Добавить виджет на вашу панель BoxAdded=Виджет был добавлен на вашу панель BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/ru_RU/mails.lang b/htdocs/langs/ru_RU/mails.lang index aa01654c759..6470dc1dddc 100644 --- a/htdocs/langs/ru_RU/mails.lang +++ b/htdocs/langs/ru_RU/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index bbccccbc886..ac8383b1f2f 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -224,6 +224,7 @@ Value=Значение PersonalValue=Личное значение NewObject=Новый %s NewValue=Новое значение +OldValue=Old value %s CurrentValue=Текущее значение Code=Код Type=Тип @@ -655,6 +656,7 @@ SupplierPreview=Предварительный просмотр поставщи ShowCustomerPreview=Показать обзор клиента ShowSupplierPreview=Показать предварительный просмотр поставщика RefCustomer=Ref. клиента +InternalRef=Internal ref. Currency=Валюта InfoAdmin=Информация для администраторов Undo=Отмена @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/ru_RU/mrp.lang b/htdocs/langs/ru_RU/mrp.lang index 5c5ff627f11..5a772a7147d 100644 --- a/htdocs/langs/ru_RU/mrp.lang +++ b/htdocs/langs/ru_RU/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/ru_RU/stocks.lang b/htdocs/langs/ru_RU/stocks.lang index d561e35bfae..25e96f3910c 100644 --- a/htdocs/langs/ru_RU/stocks.lang +++ b/htdocs/langs/ru_RU/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Склады стоимости UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/ru_RU/withdrawals.lang b/htdocs/langs/ru_RU/withdrawals.lang index d93b73ddd37..2b878111e01 100644 --- a/htdocs/langs/ru_RU/withdrawals.lang +++ b/htdocs/langs/ru_RU/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Вариант для реального режима не был установлен, мы останавливаемся после этого моделирования ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/ru_RU/workflow.lang b/htdocs/langs/ru_RU/workflow.lang index 3d5e478c0ba..2d1edff056b 100644 --- a/htdocs/langs/ru_RU/workflow.lang +++ b/htdocs/langs/ru_RU/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Автоматическое создание AutomaticClassification=Автоматическая классификация +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/ru_UA/mrp.lang b/htdocs/langs/ru_UA/mrp.lang new file mode 100644 index 00000000000..4d8f6b98309 --- /dev/null +++ b/htdocs/langs/ru_UA/mrp.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - mrp +BillOfMaterials=Bill of Material +ConfirmCloneBillOfMaterials=Are you sure you want to clone the bill of material %s ? +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? +ConfirmDeleteMo=Are you sure you want to delete this Bill Of Material? diff --git a/htdocs/langs/sk_SK/accountancy.lang b/htdocs/langs/sk_SK/accountancy.lang index c4ce2ba8726..e3377be2231 100644 --- a/htdocs/langs/sk_SK/accountancy.lang +++ b/htdocs/langs/sk_SK/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Väčšina nastavení účtovníctva sa vykonáva z menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang index c91c6ce99c0..bae00fceb7e 100644 --- a/htdocs/langs/sk_SK/admin.lang +++ b/htdocs/langs/sk_SK/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Anketa, Dotazník, Hlasovanie Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Okraje -Module59000Desc=Modul pre správu marže +Module59000Desc=Module to follow margins Module60000Name=Provízie Module60000Desc=Modul pre správu provízie Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimalizácia pre vyhľadávače -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/sk_SK/banks.lang b/htdocs/langs/sk_SK/banks.lang index 3000af0f069..877a8abd81b 100644 --- a/htdocs/langs/sk_SK/banks.lang +++ b/htdocs/langs/sk_SK/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/sk_SK/boxes.lang b/htdocs/langs/sk_SK/boxes.lang index eb5e417ed1e..8036acd4779 100644 --- a/htdocs/langs/sk_SK/boxes.lang +++ b/htdocs/langs/sk_SK/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Posledný %s mesiac postupu ChooseBoxToAdd=Pridať blok na nástenku BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/sk_SK/mails.lang b/htdocs/langs/sk_SK/mails.lang index 5c0b127f7e3..5ee7e05f1ca 100644 --- a/htdocs/langs/sk_SK/mails.lang +++ b/htdocs/langs/sk_SK/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/sk_SK/main.lang b/htdocs/langs/sk_SK/main.lang index 5bacb243779..b86251db431 100644 --- a/htdocs/langs/sk_SK/main.lang +++ b/htdocs/langs/sk_SK/main.lang @@ -224,6 +224,7 @@ Value=Hodnota PersonalValue=Osobné hodnota NewObject=New %s NewValue=Nová hodnota +OldValue=Old value %s CurrentValue=Súčasná hodnota Code=Kód Type=Typ @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Zobraziť zákaznícku náhľad ShowSupplierPreview=Show vendor preview RefCustomer=Ref zákazník +InternalRef=Internal ref. Currency=Mena InfoAdmin=Informácie pre správcov Undo=Zrušiť @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/sk_SK/mrp.lang b/htdocs/langs/sk_SK/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/sk_SK/mrp.lang +++ b/htdocs/langs/sk_SK/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/sk_SK/stocks.lang b/htdocs/langs/sk_SK/stocks.lang index e050622b21f..0f1519c6e37 100644 --- a/htdocs/langs/sk_SK/stocks.lang +++ b/htdocs/langs/sk_SK/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Sklady hodnota UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/sk_SK/withdrawals.lang b/htdocs/langs/sk_SK/withdrawals.lang index 41a3cfab464..b28d60cf571 100644 --- a/htdocs/langs/sk_SK/withdrawals.lang +++ b/htdocs/langs/sk_SK/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Voľba pre reálny režim nebol nastavený, môžeme zastaviť po tomto simuláciu ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/sk_SK/workflow.lang b/htdocs/langs/sk_SK/workflow.lang index 2a3db6f62aa..2a596f6e567 100644 --- a/htdocs/langs/sk_SK/workflow.lang +++ b/htdocs/langs/sk_SK/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/sl_SI/accountancy.lang b/htdocs/langs/sl_SI/accountancy.lang index ca8fc700696..9ca8ca3875d 100644 --- a/htdocs/langs/sl_SI/accountancy.lang +++ b/htdocs/langs/sl_SI/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index e30748d6b66..8e4740be5cc 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Izberi, oceni ali glasuj Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Marže -Module59000Desc=Modul za upravljanje z maržami +Module59000Desc=Module to follow margins Module60000Name=Provizije Module60000Desc=Modul za upravljanje s provizijami Module62000Name=Mednarodni Poslovni Izrazi @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Iskanje optimizacijo -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/sl_SI/banks.lang b/htdocs/langs/sl_SI/banks.lang index a4865b7a107..71a06145d5c 100644 --- a/htdocs/langs/sl_SI/banks.lang +++ b/htdocs/langs/sl_SI/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/sl_SI/boxes.lang b/htdocs/langs/sl_SI/boxes.lang index 1aa5a9b7b44..0bd7b6a8519 100644 --- a/htdocs/langs/sl_SI/boxes.lang +++ b/htdocs/langs/sl_SI/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Zadnji %s tekoči meseci ChooseBoxToAdd=Dodaj vključnik na nadzorno ploščo BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/sl_SI/mails.lang b/htdocs/langs/sl_SI/mails.lang index 6996e55999a..e87e6b2b66a 100644 --- a/htdocs/langs/sl_SI/mails.lang +++ b/htdocs/langs/sl_SI/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang index 458c2fd2da1..7f2afe8aebe 100644 --- a/htdocs/langs/sl_SI/main.lang +++ b/htdocs/langs/sl_SI/main.lang @@ -224,6 +224,7 @@ Value=Vrednost PersonalValue=Osebna vrednost NewObject=New %s NewValue=Nova vrednost +OldValue=Old value %s CurrentValue=Trenutna vrednost Code=Koda Type=Tip @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Prikaži pregled kupca ShowSupplierPreview=Show vendor preview RefCustomer=Ref. kupca +InternalRef=Internal ref. Currency=Valuta InfoAdmin=Informacija za administratorje Undo=Razveljavi @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Ustavljeno +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/sl_SI/mrp.lang b/htdocs/langs/sl_SI/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/sl_SI/mrp.lang +++ b/htdocs/langs/sl_SI/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/sl_SI/stocks.lang b/htdocs/langs/sl_SI/stocks.lang index de2d407d3c9..b46640afdac 100644 --- a/htdocs/langs/sl_SI/stocks.lang +++ b/htdocs/langs/sl_SI/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Vrednost skladišč UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/sl_SI/withdrawals.lang b/htdocs/langs/sl_SI/withdrawals.lang index f262981bcb8..c0912aaeaf5 100644 --- a/htdocs/langs/sl_SI/withdrawals.lang +++ b/htdocs/langs/sl_SI/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Opcija za delo v živo ni bila nastavljena, zato se bo sistem ustavil po simulaciji ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/sl_SI/workflow.lang b/htdocs/langs/sl_SI/workflow.lang index 2fdcedce378..e7257c04c73 100644 --- a/htdocs/langs/sl_SI/workflow.lang +++ b/htdocs/langs/sl_SI/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Samodejno generiranje AutomaticClassification=Samodejno spreminjanje statusa +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/sq_AL/accountancy.lang b/htdocs/langs/sq_AL/accountancy.lang index ac69d8e7715..b2c8f38576a 100644 --- a/htdocs/langs/sq_AL/accountancy.lang +++ b/htdocs/langs/sq_AL/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang index 56eeb237acb..ce21ede1d21 100644 --- a/htdocs/langs/sq_AL/admin.lang +++ b/htdocs/langs/sq_AL/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/sq_AL/banks.lang b/htdocs/langs/sq_AL/banks.lang index 7f0c2952384..6feb31b8e9c 100644 --- a/htdocs/langs/sq_AL/banks.lang +++ b/htdocs/langs/sq_AL/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/sq_AL/boxes.lang b/htdocs/langs/sq_AL/boxes.lang index 82bcc13ecfe..c5cf2d90ba8 100644 --- a/htdocs/langs/sq_AL/boxes.lang +++ b/htdocs/langs/sq_AL/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/sq_AL/mails.lang b/htdocs/langs/sq_AL/mails.lang index 93690ea34e4..a79dff4badb 100644 --- a/htdocs/langs/sq_AL/mails.lang +++ b/htdocs/langs/sq_AL/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/sq_AL/main.lang b/htdocs/langs/sq_AL/main.lang index 9852d648bb3..ba2fa0a111d 100644 --- a/htdocs/langs/sq_AL/main.lang +++ b/htdocs/langs/sq_AL/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/sq_AL/mrp.lang b/htdocs/langs/sq_AL/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/sq_AL/mrp.lang +++ b/htdocs/langs/sq_AL/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/sq_AL/stocks.lang b/htdocs/langs/sq_AL/stocks.lang index 482ffce2fd4..666ede4efd4 100644 --- a/htdocs/langs/sq_AL/stocks.lang +++ b/htdocs/langs/sq_AL/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/sq_AL/withdrawals.lang b/htdocs/langs/sq_AL/withdrawals.lang index 7c51c37c930..92dfe12e1c3 100644 --- a/htdocs/langs/sq_AL/withdrawals.lang +++ b/htdocs/langs/sq_AL/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/sq_AL/workflow.lang b/htdocs/langs/sq_AL/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/sq_AL/workflow.lang +++ b/htdocs/langs/sq_AL/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/sr_RS/accountancy.lang b/htdocs/langs/sr_RS/accountancy.lang index 8c76969f9e2..0f47b67db83 100644 --- a/htdocs/langs/sr_RS/accountancy.lang +++ b/htdocs/langs/sr_RS/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang index a2746237e7e..e7d50480139 100644 --- a/htdocs/langs/sr_RS/admin.lang +++ b/htdocs/langs/sr_RS/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Anketa ili Glasanje Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/sr_RS/banks.lang b/htdocs/langs/sr_RS/banks.lang index eaac0204641..0a1a42832d4 100644 --- a/htdocs/langs/sr_RS/banks.lang +++ b/htdocs/langs/sr_RS/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/sr_RS/boxes.lang b/htdocs/langs/sr_RS/boxes.lang index 64caf8d79dc..9f9318be2df 100644 --- a/htdocs/langs/sr_RS/boxes.lang +++ b/htdocs/langs/sr_RS/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/sr_RS/mails.lang b/htdocs/langs/sr_RS/mails.lang index 44407502dcc..a37342806c3 100644 --- a/htdocs/langs/sr_RS/mails.lang +++ b/htdocs/langs/sr_RS/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang index 5b18671c78a..1630acdddf6 100644 --- a/htdocs/langs/sr_RS/main.lang +++ b/htdocs/langs/sr_RS/main.lang @@ -224,6 +224,7 @@ Value=Vrednost PersonalValue=Lična vrednost NewObject=New %s NewValue=Nova vrednost +OldValue=Old value %s CurrentValue=Trenutna vrednost Code=Kod Type=Tip @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Prikaži preview klijenta ShowSupplierPreview=Show vendor preview RefCustomer=Ref. klijenta +InternalRef=Internal ref. Currency=Valuta InfoAdmin=Informacija za administratore Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Na čekanju +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/sr_RS/mrp.lang b/htdocs/langs/sr_RS/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/sr_RS/mrp.lang +++ b/htdocs/langs/sr_RS/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/sr_RS/stocks.lang b/htdocs/langs/sr_RS/stocks.lang index 8c928a95f9c..d33ab3c5d47 100644 --- a/htdocs/langs/sr_RS/stocks.lang +++ b/htdocs/langs/sr_RS/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Vrednost magacina UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/sr_RS/withdrawals.lang b/htdocs/langs/sr_RS/withdrawals.lang index 11e866cb7a1..001a9c81371 100644 --- a/htdocs/langs/sr_RS/withdrawals.lang +++ b/htdocs/langs/sr_RS/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Opcija za realni mod nije podešena, prekidamo posle ove simulacije. ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/sr_RS/workflow.lang b/htdocs/langs/sr_RS/workflow.lang index e623a6593c3..7502f987d7a 100644 --- a/htdocs/langs/sr_RS/workflow.lang +++ b/htdocs/langs/sr_RS/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatsko kriranje AutomaticClassification=Automatsko klasifikovanje +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index bdb19269ac8..384ab4af6a9 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Tjänsten ThisProduct=Den här produkten DefaultForService=Standard för service DefaultForProduct=Standard för produkter +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Kan inte föreslå AccountancySetupDoneFromAccountancyMenu=De flesta inställningarna för bokföringen görs från menyn %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index 64ac737fde8..68ba4a916a7 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direktutskrift (utan att öppna dokumenten) med koppar IPP-grän Module55000Name=Omröstning, undersökning eller omröstning Module55000Desc=Skapa online-omröstningar, undersökningar eller röster (som Doodle, Studs, RDVz etc ...) Module59000Name=Marginaler -Module59000Desc=Modul för att hantera marginaler +Module59000Desc=Module to follow margins Module60000Name=Provision Module60000Desc=Modul för att hantera uppdrag Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=Du använder drivrutinen %s vilket är den bästa drivrutinen s YouDoNotUseBestDriver=Du använder drivrutinen %s men drivrutinen %s rekommenderas. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Sökoptimering -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=Du använder %s webbläsaren. Den här webbläsaren är ok för säkerhet och prestanda. BrowserIsKO=Du använder %s webbläsaren. Den här webbläsaren är känd för att vara ett dåligt val för säkerhet, prestanda och tillförlitlighet. Vi rekommenderar att du använder Firefox, Chrome, Opera eller Safari. diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang index 21b5c960d74..42c143d1b0b 100644 --- a/htdocs/langs/sv_SE/banks.lang +++ b/htdocs/langs/sv_SE/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/sv_SE/boxes.lang b/htdocs/langs/sv_SE/boxes.lang index 882e2535019..a7deb6f3811 100644 --- a/htdocs/langs/sv_SE/boxes.lang +++ b/htdocs/langs/sv_SE/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Den senaste %s månaden rullande ChooseBoxToAdd=Lägg till widget i din instrumentpanel BoxAdded=Widget har lagts till i din instrumentpanel BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/sv_SE/mails.lang b/htdocs/langs/sv_SE/mails.lang index 21677a700f2..d7d01c9a7eb 100644 --- a/htdocs/langs/sv_SE/mails.lang +++ b/htdocs/langs/sv_SE/mails.lang @@ -175,3 +175,5 @@ Answered=Besvarade IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang index 28d6fde7041..f8603cc6238 100644 --- a/htdocs/langs/sv_SE/main.lang +++ b/htdocs/langs/sv_SE/main.lang @@ -224,6 +224,7 @@ Value=Värde PersonalValue=Personlig värde NewObject=Ny %s NewValue=Nytt värde +OldValue=Old value %s CurrentValue=Aktuellt värde Code=Kod Type=Typ @@ -655,6 +656,7 @@ SupplierPreview=Leverantörsförhandsgranskning ShowCustomerPreview=Visa kunden förhandsgranskning ShowSupplierPreview=Visa leverantörsförhandsvisning RefCustomer=Ref. kund +InternalRef=Internal ref. Currency=Valuta InfoAdmin=Information för administratörer Undo=Ångra @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/sv_SE/mrp.lang b/htdocs/langs/sv_SE/mrp.lang index fb36e45f2f3..ae1796e24e4 100644 --- a/htdocs/langs/sv_SE/mrp.lang +++ b/htdocs/langs/sv_SE/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/sv_SE/stocks.lang b/htdocs/langs/sv_SE/stocks.lang index 13e5131c99d..3979dcebd89 100644 --- a/htdocs/langs/sv_SE/stocks.lang +++ b/htdocs/langs/sv_SE/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Lagervärde UserWarehouseAutoCreate=Skapa ett användarlager automatiskt när du skapar en användare AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/sv_SE/withdrawals.lang b/htdocs/langs/sv_SE/withdrawals.lang index 8aec0a32333..e1aa6c99928 100644 --- a/htdocs/langs/sv_SE/withdrawals.lang +++ b/htdocs/langs/sv_SE/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hej,

    Betalningsordern för fakturan %s relaterad til ModeWarning=Alternativ på riktigt läget inte var satt, sluta vi efter denna simulering ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/sv_SE/workflow.lang b/htdocs/langs/sv_SE/workflow.lang index 6ae9ed67c3b..55f87b7d0d3 100644 --- a/htdocs/langs/sv_SE/workflow.lang +++ b/htdocs/langs/sv_SE/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatisk skapande AutomaticClassification=Automatisk uppmärkning +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/sw_SW/accountancy.lang b/htdocs/langs/sw_SW/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/sw_SW/accountancy.lang +++ b/htdocs/langs/sw_SW/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/sw_SW/admin.lang b/htdocs/langs/sw_SW/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/sw_SW/admin.lang +++ b/htdocs/langs/sw_SW/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/sw_SW/banks.lang b/htdocs/langs/sw_SW/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/sw_SW/banks.lang +++ b/htdocs/langs/sw_SW/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/sw_SW/boxes.lang b/htdocs/langs/sw_SW/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/sw_SW/boxes.lang +++ b/htdocs/langs/sw_SW/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/sw_SW/mails.lang b/htdocs/langs/sw_SW/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/sw_SW/mails.lang +++ b/htdocs/langs/sw_SW/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/sw_SW/main.lang b/htdocs/langs/sw_SW/main.lang index e196120c27d..f8ba6f4073c 100644 --- a/htdocs/langs/sw_SW/main.lang +++ b/htdocs/langs/sw_SW/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/sw_SW/mrp.lang b/htdocs/langs/sw_SW/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/sw_SW/mrp.lang +++ b/htdocs/langs/sw_SW/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/sw_SW/stocks.lang b/htdocs/langs/sw_SW/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/sw_SW/stocks.lang +++ b/htdocs/langs/sw_SW/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/sw_SW/withdrawals.lang b/htdocs/langs/sw_SW/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/sw_SW/withdrawals.lang +++ b/htdocs/langs/sw_SW/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/sw_SW/workflow.lang b/htdocs/langs/sw_SW/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/sw_SW/workflow.lang +++ b/htdocs/langs/sw_SW/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/th_TH/accountancy.lang b/htdocs/langs/th_TH/accountancy.lang index 9b3f2e7bb42..6755dca4379 100644 --- a/htdocs/langs/th_TH/accountancy.lang +++ b/htdocs/langs/th_TH/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang index d408b3e34a8..b816ace6628 100644 --- a/htdocs/langs/th_TH/admin.lang +++ b/htdocs/langs/th_TH/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=อัตรากำไรขั้นต้น -Module59000Desc=โมดูลการจัดการอัตรากำไรขั้นต้น +Module59000Desc=Module to follow margins Module60000Name=คณะกรรมการ Module60000Desc=โมดูลการจัดการค่าคอมมิชชั่น Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=ค้นหาการเพิ่มประสิทธิภาพ -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/th_TH/banks.lang b/htdocs/langs/th_TH/banks.lang index 92bea611931..0a547bb3422 100644 --- a/htdocs/langs/th_TH/banks.lang +++ b/htdocs/langs/th_TH/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/th_TH/boxes.lang b/htdocs/langs/th_TH/boxes.lang index 04231e5012f..f51f0e660fa 100644 --- a/htdocs/langs/th_TH/boxes.lang +++ b/htdocs/langs/th_TH/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/th_TH/mails.lang b/htdocs/langs/th_TH/mails.lang index 2627c963ee0..ae8e8b52f85 100644 --- a/htdocs/langs/th_TH/mails.lang +++ b/htdocs/langs/th_TH/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/th_TH/main.lang b/htdocs/langs/th_TH/main.lang index 1812b69b149..62d14790365 100644 --- a/htdocs/langs/th_TH/main.lang +++ b/htdocs/langs/th_TH/main.lang @@ -224,6 +224,7 @@ Value=มูลค่า PersonalValue=ค่าส่วนบุคคล NewObject=New %s NewValue=ค่าใหม่ +OldValue=Old value %s CurrentValue=มูลค่าปัจจุบัน Code=รหัส Type=ชนิด @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=แสดงตัวอย่างของลูกค้า ShowSupplierPreview=Show vendor preview RefCustomer=อ้าง ลูกค้า +InternalRef=Internal ref. Currency=เงินตรา InfoAdmin=ข้อมูลสำหรับผู้ดูแล Undo=แก้ @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=ไว้ +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/th_TH/mrp.lang b/htdocs/langs/th_TH/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/th_TH/mrp.lang +++ b/htdocs/langs/th_TH/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/th_TH/stocks.lang b/htdocs/langs/th_TH/stocks.lang index 6702db1eb8b..1ec66e72dee 100644 --- a/htdocs/langs/th_TH/stocks.lang +++ b/htdocs/langs/th_TH/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=ค่าโกดัง UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/th_TH/withdrawals.lang b/htdocs/langs/th_TH/withdrawals.lang index 6834b715e38..8390f78c1e3 100644 --- a/htdocs/langs/th_TH/withdrawals.lang +++ b/htdocs/langs/th_TH/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=ตัวเลือกสำหรับโหมดจริงไม่ได้ตั้งค่าเราหยุดหลังจากจำลองนี้ ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/th_TH/workflow.lang b/htdocs/langs/th_TH/workflow.lang index 728e20bacb1..e55fdf4eb92 100644 --- a/htdocs/langs/th_TH/workflow.lang +++ b/htdocs/langs/th_TH/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index 1f60ca24d39..197742deeac 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Bu hizmet ThisProduct=Bu ürün DefaultForService=Hizmet için varsayılan DefaultForProduct=Ürün için varsayılan +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Öneri yok AccountancySetupDoneFromAccountancyMenu=Muhasebenin çoğu kurulumu %s menüsünden yapılır. ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 5109cdaf50b..e15ec009134 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Cups IPP arabirimini kullanarak belgeleri açmadan doğrudan yaz Module55000Name=Anket, Araştırma ya da Oylama Module55000Desc=Çevrimiçi anketler, yoklamalar veya oylamalar oluşturun (Doodle, Studs, RDVz vs. gibi) Module59000Name=Kar Oranları -Module59000Desc=Kar Oranı yönetimi modülü +Module59000Desc=Module to follow margins Module60000Name=Komisyonlar Module60000Desc=Komisyon yönetimi modülü Module62000Name=Uluslararası Ticaret Terimleri @@ -1308,7 +1308,7 @@ YouUseBestDriver=Kullandığınız %s sürücüsü şu anda mevcut olan en iyi s YouDoNotUseBestDriver=%s sürücüsünü kullanıyorsunuz fakat %s sürücüsü önerilir. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimizasyon ara -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=%s web tarayıcısını kullanıyorsunuz. Bu tarayıcı güvenlik ve performans açısından uygundur. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/tr_TR/banks.lang b/htdocs/langs/tr_TR/banks.lang index baae642393d..e89ddad9ee5 100644 --- a/htdocs/langs/tr_TR/banks.lang +++ b/htdocs/langs/tr_TR/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Bu işlev etkinleştirilirse, borçlandırma veya kredi BankColorizeMovementName1=Borç hareketi için arka plan rengi BankColorizeMovementName2=Kredi hareketi için arka plan rengi IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/tr_TR/boxes.lang b/htdocs/langs/tr_TR/boxes.lang index 86d42f8536e..09c86eb5ee9 100644 --- a/htdocs/langs/tr_TR/boxes.lang +++ b/htdocs/langs/tr_TR/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=Devreden son %s ay ChooseBoxToAdd=Gösterge panelinize ekran etiketi ekleyin BoxAdded=Ekran etiketi gösterge panelinize eklendi BoxTitleUserBirthdaysOfMonth=Bu ayın doğum günleri (kullanıcılar) -BoxLastManualEntries=Muhasebedeki son manuel girişler -BoxTitleLastManualEntries=%s son manuel yapılan girişler +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Muhasebede manuel giriş kaydı yok BoxSuspenseAccount=Askıdaki hesap muhasebe işlemlerini say BoxTitleSuspenseAccount=Ayrılmamış satır sayısı diff --git a/htdocs/langs/tr_TR/mails.lang b/htdocs/langs/tr_TR/mails.lang index fd55d217c3a..8d33ac213fb 100644 --- a/htdocs/langs/tr_TR/mails.lang +++ b/htdocs/langs/tr_TR/mails.lang @@ -175,3 +175,5 @@ Answered=Cevaplandı IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index ff53f4a6141..5fa3692202b 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -224,6 +224,7 @@ Value=Değer PersonalValue=Kişisel değer NewObject=Yeni %s NewValue=Yeni değer +OldValue=Old value %s CurrentValue=Geçerli değer Code=Kod Type=Tür @@ -655,6 +656,7 @@ SupplierPreview=Tedarikçi önizlemesi ShowCustomerPreview=Müşteri önizlemeyi göster ShowSupplierPreview=Tedarikçi önizlemesini göster RefCustomer=Müşteri Ref. +InternalRef=Internal ref. Currency=Para birimi InfoAdmin=Yöneticiler için bilgi Undo=Geri al @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=Beklemede +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/tr_TR/mrp.lang b/htdocs/langs/tr_TR/mrp.lang index b68f85e39d9..1c581bebb72 100644 --- a/htdocs/langs/tr_TR/mrp.lang +++ b/htdocs/langs/tr_TR/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/tr_TR/stocks.lang b/htdocs/langs/tr_TR/stocks.lang index 0c5e145043e..07374a8b0f4 100644 --- a/htdocs/langs/tr_TR/stocks.lang +++ b/htdocs/langs/tr_TR/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Depolar değeri UserWarehouseAutoCreate=Kullanıcı oluştururken otomatik olarak bir kullanıcı deposu oluştur AllowAddLimitStockByWarehouse=Her bir ürün için minimum ve istenen stok değerini yönetmenin yanı sıra her bir eşleştirme (ürün-depo) için de minimum ve istenen stok değerini de yönetin RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Varsayılan depo diff --git a/htdocs/langs/tr_TR/withdrawals.lang b/htdocs/langs/tr_TR/withdrawals.lang index 9d5d4140075..fbe921943da 100644 --- a/htdocs/langs/tr_TR/withdrawals.lang +++ b/htdocs/langs/tr_TR/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Merhaba,

    fatura %s, ait olduğu firma %s, tutarı %s ModeWarning=Gerçek mod için seçenek ayarlanmamış, bu simülasyondan sonra durdururuz ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/tr_TR/workflow.lang b/htdocs/langs/tr_TR/workflow.lang index d3cc2b2f0b2..84e8e7d722a 100644 --- a/htdocs/langs/tr_TR/workflow.lang +++ b/htdocs/langs/tr_TR/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Otomatik oluşturma AutomaticClassification=Otomatik sınıflandırma +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang index a4b4a1f90cb..467fc0b218c 100644 --- a/htdocs/langs/uk_UA/accountancy.lang +++ b/htdocs/langs/uk_UA/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Ця послуга ThisProduct=Цей товар DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Більшість налаштувань обліку здійснюється у меню %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang index f283708e31a..4fa18be466d 100644 --- a/htdocs/langs/uk_UA/admin.lang +++ b/htdocs/langs/uk_UA/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/uk_UA/banks.lang b/htdocs/langs/uk_UA/banks.lang index c7541254c41..5e37c104927 100644 --- a/htdocs/langs/uk_UA/banks.lang +++ b/htdocs/langs/uk_UA/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/uk_UA/boxes.lang b/htdocs/langs/uk_UA/boxes.lang index 7589adeeb95..1dd858b093f 100644 --- a/htdocs/langs/uk_UA/boxes.lang +++ b/htdocs/langs/uk_UA/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/uk_UA/mails.lang b/htdocs/langs/uk_UA/mails.lang index 0a8fe1c73ca..f6e418263bd 100644 --- a/htdocs/langs/uk_UA/mails.lang +++ b/htdocs/langs/uk_UA/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang index 18a6c5aab6e..e1d4ca6a387 100644 --- a/htdocs/langs/uk_UA/main.lang +++ b/htdocs/langs/uk_UA/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Тип @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/uk_UA/mrp.lang b/htdocs/langs/uk_UA/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/uk_UA/mrp.lang +++ b/htdocs/langs/uk_UA/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/uk_UA/stocks.lang b/htdocs/langs/uk_UA/stocks.lang index 3ede617d1cc..e032197748f 100644 --- a/htdocs/langs/uk_UA/stocks.lang +++ b/htdocs/langs/uk_UA/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/uk_UA/withdrawals.lang b/htdocs/langs/uk_UA/withdrawals.lang index f419bdff0a5..c3e1100a0c3 100644 --- a/htdocs/langs/uk_UA/withdrawals.lang +++ b/htdocs/langs/uk_UA/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/uk_UA/workflow.lang b/htdocs/langs/uk_UA/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/uk_UA/workflow.lang +++ b/htdocs/langs/uk_UA/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/uz_UZ/accountancy.lang +++ b/htdocs/langs/uz_UZ/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/uz_UZ/admin.lang +++ b/htdocs/langs/uz_UZ/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/uz_UZ/banks.lang b/htdocs/langs/uz_UZ/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/uz_UZ/banks.lang +++ b/htdocs/langs/uz_UZ/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/uz_UZ/boxes.lang b/htdocs/langs/uz_UZ/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/uz_UZ/boxes.lang +++ b/htdocs/langs/uz_UZ/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/uz_UZ/mails.lang b/htdocs/langs/uz_UZ/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/uz_UZ/mails.lang +++ b/htdocs/langs/uz_UZ/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang index d1ad00f4463..1744926874f 100644 --- a/htdocs/langs/uz_UZ/main.lang +++ b/htdocs/langs/uz_UZ/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/uz_UZ/mrp.lang b/htdocs/langs/uz_UZ/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/uz_UZ/mrp.lang +++ b/htdocs/langs/uz_UZ/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/uz_UZ/stocks.lang b/htdocs/langs/uz_UZ/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/uz_UZ/stocks.lang +++ b/htdocs/langs/uz_UZ/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/uz_UZ/withdrawals.lang b/htdocs/langs/uz_UZ/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/uz_UZ/withdrawals.lang +++ b/htdocs/langs/uz_UZ/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/uz_UZ/workflow.lang b/htdocs/langs/uz_UZ/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/uz_UZ/workflow.lang +++ b/htdocs/langs/uz_UZ/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang index ed5a2ce191c..24ec964a46d 100644 --- a/htdocs/langs/vi_VN/accountancy.lang +++ b/htdocs/langs/vi_VN/accountancy.lang @@ -16,6 +16,8 @@ ThisService=Dịch vụ này ThisProduct=Sản phẩm này DefaultForService=Mặc định cho dịch vụ DefaultForProduct=Mặc định cho sản phẩm +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Không thể gợi ý AccountancySetupDoneFromAccountancyMenu=Hầu hết các thiết lập của kế toán được thực hiện từ menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang index 1a59a192e29..3daf83f7d2b 100644 --- a/htdocs/langs/vi_VN/admin.lang +++ b/htdocs/langs/vi_VN/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=In trực tiếp (không mở tài liệu) bằng giao diện Cu Module55000Name=Thăm dò ý kiến, khảo sát hoặc bình chọn Module55000Desc=Tạo các cuộc thăm dò, khảo sát hoặc bình chọn trực tuyến (như Doodle, Studs, RDVz, v.v.) Module59000Name=Lợi nhuận -Module59000Desc=Module quản lý lợi nhuận +Module59000Desc=Module to follow margins Module60000Name=Hoa hồng Module60000Desc=Module quản lý hoa hồng Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=Bạn sử dụng trình điều khiển %s, trình điều khi YouDoNotUseBestDriver=Bạn sử dụng trình điều khiển %s nhưng trình điều khiển %s được khuyến nghị. NbOfObjectIsLowerThanNoPb=Bạn chỉ có %s %s trong cơ sở dữ liệu. Điều này không yêu cầu bất kỳ tối ưu hóa cụ thể. SearchOptim=Tối ưu hóa tìm kiếm -YouHaveXObjectUseSearchOptim=Bạn có %s %s trong cơ sở dữ liệu. Bạn nên thêm hằng số %s thành 1 trong Nhà - Cài đặt - Khác. Giới hạn tìm kiếm ở đầu chuỗi giúp cơ sở dữ liệu có thể sử dụng các chỉ mục và bạn sẽ nhận được phản hồi ngay lập tức. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=Bạn có %s %s trong cơ sở dữ liệu và hằng số %s được đặt thành 1 trong Nhà - Cài đặt - Khác. BrowserIsOK=Bạn đang sử dụng trình duyệt web %s. Trình duyệt này là ổn cho bảo mật và hiệu suất. BrowserIsKO=Bạn đang sử dụng trình duyệt web %s. Trình duyệt này được biết đến là một lựa chọn xấu cho bảo mật, hiệu suất và độ tin cậy. Chúng tôi khuyên bạn nên sử dụng Firefox, Chrome, Opera hoặc Safari. diff --git a/htdocs/langs/vi_VN/banks.lang b/htdocs/langs/vi_VN/banks.lang index 21917a81833..8a13699a9e8 100644 --- a/htdocs/langs/vi_VN/banks.lang +++ b/htdocs/langs/vi_VN/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=Nếu chức năng này được bật, bạn có thể BankColorizeMovementName1=Màu nền cho kết chuyển ghi nợ BankColorizeMovementName2=Màu nền cho kết chuyển ghi có IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/vi_VN/boxes.lang b/htdocs/langs/vi_VN/boxes.lang index b0df817ba6e..20c4c4c059e 100644 --- a/htdocs/langs/vi_VN/boxes.lang +++ b/htdocs/langs/vi_VN/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=%s tháng mới nhất ChooseBoxToAdd=Thêm widget vào bảng điều khiển của bạn BoxAdded=Widget đã được thêm vào trong bảng điều khiển của bạn BoxTitleUserBirthdaysOfMonth=Sinh nhật của tháng này (người dùng) -BoxLastManualEntries=Mục nhập thủ công cuối cùng trong kế toán -BoxTitleLastManualEntries=%s mục nhập thủ công mới nhất +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=Không có mục nhập thủ công được ghi lại trong kế toán BoxSuspenseAccount=Đếm hoạt động kế toán với tài khoản bị đình chỉ BoxTitleSuspenseAccount=Số dòng chưa phân bổ diff --git a/htdocs/langs/vi_VN/mails.lang b/htdocs/langs/vi_VN/mails.lang index 31d9c0e0372..59190543259 100644 --- a/htdocs/langs/vi_VN/mails.lang +++ b/htdocs/langs/vi_VN/mails.lang @@ -175,3 +175,5 @@ Answered=Đã trả lời IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang index 9b1e11a6ac2..787b79af04c 100644 --- a/htdocs/langs/vi_VN/main.lang +++ b/htdocs/langs/vi_VN/main.lang @@ -224,6 +224,7 @@ Value=Giá trị PersonalValue=Giá trị cá nhân NewObject=Tạo mới %s NewValue=Giá trị mới +OldValue=Old value %s CurrentValue=Giá trị hiện tại Code=Mã Type=Loại @@ -655,6 +656,7 @@ SupplierPreview=Xem trước nhà cung cấp ShowCustomerPreview=Xem trước khách hàng hiển thị ShowSupplierPreview=Hiển thị xem trước nhà cung cấp RefCustomer=Tham chiếu khách hàng +InternalRef=Internal ref. Currency=Tiền tệ InfoAdmin=Thông tin dành cho người quản trị Undo=Lùi lại @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/vi_VN/mrp.lang b/htdocs/langs/vi_VN/mrp.lang index 5ca0bd1ddbf..1133ac46a0b 100644 --- a/htdocs/langs/vi_VN/mrp.lang +++ b/htdocs/langs/vi_VN/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/vi_VN/stocks.lang b/htdocs/langs/vi_VN/stocks.lang index 3e9bf9a66cd..d25ecfa620a 100644 --- a/htdocs/langs/vi_VN/stocks.lang +++ b/htdocs/langs/vi_VN/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Giá trị kho UserWarehouseAutoCreate=Tự động tạo người dùng kho khi tạo người dùng AllowAddLimitStockByWarehouse=Quản lý đồng thời giá trị cho tồn kho tối thiểu và mong muốn trên mỗi cặp (sản phẩm - kho) ngoài giá trị cho tồn kho tối thiểu và mong muốn trên mỗi sản phẩm RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Kho mặc định diff --git a/htdocs/langs/vi_VN/withdrawals.lang b/htdocs/langs/vi_VN/withdrawals.lang index 089996b01ef..2b2c1e76554 100644 --- a/htdocs/langs/vi_VN/withdrawals.lang +++ b/htdocs/langs/vi_VN/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Xin chào,

    lệnh thanh toán ghi nợ trực tiếp ModeWarning=Tùy chọn cho chế độ thực không được đặt, chúng tôi dừng lại sau mô phỏng này ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/vi_VN/workflow.lang b/htdocs/langs/vi_VN/workflow.lang index 0084de738c3..5926b4e4b9b 100644 --- a/htdocs/langs/vi_VN/workflow.lang +++ b/htdocs/langs/vi_VN/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Tạo tự động AutomaticClassification=Phân loại tự động +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang index 8ef67e2a7ba..5bfcb481baa 100644 --- a/htdocs/langs/zh_CN/accountancy.lang +++ b/htdocs/langs/zh_CN/accountancy.lang @@ -16,6 +16,8 @@ ThisService=这项服务 ThisProduct=这个产品 DefaultForService=默认服务 DefaultForProduct=默认产品 +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=无法建议 AccountancySetupDoneFromAccountancyMenu=大多数会计设置都是从​​菜单%s完成的 ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index dcedbb1c7a9..0c6ae1ca992 100644 --- a/htdocs/langs/zh_CN/admin.lang +++ b/htdocs/langs/zh_CN/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=问卷, 调查或投票 Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=利润空间 -Module59000Desc=利润空间管理模块 +Module59000Desc=Module to follow margins Module60000Name=佣金 Module60000Desc=佣金管理模块 Module62000Name=国际贸易术语解释通则 @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=搜索优化 -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/zh_CN/banks.lang b/htdocs/langs/zh_CN/banks.lang index 6af69e844c0..c810652102d 100644 --- a/htdocs/langs/zh_CN/banks.lang +++ b/htdocs/langs/zh_CN/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/zh_CN/boxes.lang b/htdocs/langs/zh_CN/boxes.lang index f81391bc8fd..6ff10e54c76 100644 --- a/htdocs/langs/zh_CN/boxes.lang +++ b/htdocs/langs/zh_CN/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=最后 %s 月波动 ChooseBoxToAdd=点击下拉菜单选择相应视图并添加到你的看板 BoxAdded=插件已添加到仪表板中 BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/zh_CN/mails.lang b/htdocs/langs/zh_CN/mails.lang index f2273401207..948f4d6d845 100644 --- a/htdocs/langs/zh_CN/mails.lang +++ b/htdocs/langs/zh_CN/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang index 1fbcea452cd..23a6b0f6baa 100644 --- a/htdocs/langs/zh_CN/main.lang +++ b/htdocs/langs/zh_CN/main.lang @@ -224,6 +224,7 @@ Value=值 PersonalValue=自定义 NewObject=新%s NewValue=新值 +OldValue=Old value %s CurrentValue=当前值 Code=编码 Type=类型 @@ -655,6 +656,7 @@ SupplierPreview=供应商预览 ShowCustomerPreview=显示顾客预览 ShowSupplierPreview=显示供应商预览 RefCustomer=顾客编号 +InternalRef=Internal ref. Currency=货币 InfoAdmin=管理员信息 Undo=复原 @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/zh_CN/mrp.lang b/htdocs/langs/zh_CN/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/zh_CN/mrp.lang +++ b/htdocs/langs/zh_CN/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/zh_CN/stocks.lang b/htdocs/langs/zh_CN/stocks.lang index 7074dc7ed0d..8f79f6ef131 100644 --- a/htdocs/langs/zh_CN/stocks.lang +++ b/htdocs/langs/zh_CN/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=仓库价值 UserWarehouseAutoCreate=创建用户时自动创建用户仓库 AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/zh_CN/withdrawals.lang b/htdocs/langs/zh_CN/withdrawals.lang index 7954b92e88b..c21b3b1f702 100644 --- a/htdocs/langs/zh_CN/withdrawals.lang +++ b/htdocs/langs/zh_CN/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=您好,

    与公司%s相关的发票%s的直接借记 ModeWarning=实模式下的选项没有设置,这个模拟后,我们停止 ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/zh_CN/workflow.lang b/htdocs/langs/zh_CN/workflow.lang index 34d49860135..d327a5e148d 100644 --- a/htdocs/langs/zh_CN/workflow.lang +++ b/htdocs/langs/zh_CN/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=自动创建 AutomaticClassification=自动分类 +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/zh_HK/accountancy.lang b/htdocs/langs/zh_HK/accountancy.lang index 33ba4d9fea7..9e084932477 100644 --- a/htdocs/langs/zh_HK/accountancy.lang +++ b/htdocs/langs/zh_HK/accountancy.lang @@ -16,6 +16,8 @@ ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/zh_HK/admin.lang b/htdocs/langs/zh_HK/admin.lang index d03f45a4e25..f9a6468d94a 100644 --- a/htdocs/langs/zh_HK/admin.lang +++ b/htdocs/langs/zh_HK/admin.lang @@ -670,7 +670,7 @@ Module54000Desc=Direct print (without opening the documents) using Cups IPP inte Module55000Name=Poll, Survey or Vote Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) Module59000Name=Margins -Module59000Desc=Module to manage margins +Module59000Desc=Module to follow margins Module60000Name=Commissions Module60000Desc=Module to manage commissions Module62000Name=Incoterms @@ -1308,7 +1308,7 @@ YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXObjectUseSearchOptim=You have %s %s in the database. You should add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance. BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari. diff --git a/htdocs/langs/zh_HK/banks.lang b/htdocs/langs/zh_HK/banks.lang index a0dc27f86c4..81a23238550 100644 --- a/htdocs/langs/zh_HK/banks.lang +++ b/htdocs/langs/zh_HK/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=If this function is enable, you can choose specific bac BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/zh_HK/boxes.lang b/htdocs/langs/zh_HK/boxes.lang index 7db4ea8aa17..9a751483fb1 100644 --- a/htdocs/langs/zh_HK/boxes.lang +++ b/htdocs/langs/zh_HK/boxes.lang @@ -95,8 +95,8 @@ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard BoxAdded=Widget was added in your dashboard BoxTitleUserBirthdaysOfMonth=Birthdays of this month (users) -BoxLastManualEntries=Last manual entries in accountancy -BoxTitleLastManualEntries=%s latest manual entries +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=No manual entries record in accountancy BoxSuspenseAccount=Count accountancy operation with suspense account BoxTitleSuspenseAccount=Number of unallocated lines diff --git a/htdocs/langs/zh_HK/mails.lang b/htdocs/langs/zh_HK/mails.lang index 7fd93be7b71..2d02c5ddcf9 100644 --- a/htdocs/langs/zh_HK/mails.lang +++ b/htdocs/langs/zh_HK/mails.lang @@ -175,3 +175,5 @@ Answered=Answered IsNotAnAnswer=Is not answer (initial email) IsAnAnswer=Is an answer of an initial email RecordCreatedByEmailCollector=Record created by the Email Collector %s from email %s +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/zh_HK/main.lang b/htdocs/langs/zh_HK/main.lang index e196120c27d..f8ba6f4073c 100644 --- a/htdocs/langs/zh_HK/main.lang +++ b/htdocs/langs/zh_HK/main.lang @@ -224,6 +224,7 @@ Value=Value PersonalValue=Personal value NewObject=New %s NewValue=New value +OldValue=Old value %s CurrentValue=Current value Code=Code Type=Type @@ -655,6 +656,7 @@ SupplierPreview=Vendor preview ShowCustomerPreview=Show customer preview ShowSupplierPreview=Show vendor preview RefCustomer=Ref. customer +InternalRef=Internal ref. Currency=Currency InfoAdmin=Information for administrators Undo=Undo @@ -1113,6 +1115,7 @@ OutOfDate=Out-of-date EventReminder=Event Reminder UpdateForAllLines=Update for all lines OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/zh_HK/mrp.lang b/htdocs/langs/zh_HK/mrp.lang index f018be890cc..ec999a473a4 100644 --- a/htdocs/langs/zh_HK/mrp.lang +++ b/htdocs/langs/zh_HK/mrp.lang @@ -78,3 +78,27 @@ TotalCost=Total cost BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price) GoOnTabProductionToProduceFirst=You must first have started the production to close a Manufacturing Order (See tab '%s'). But you can Cancel it. ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/zh_HK/stocks.lang b/htdocs/langs/zh_HK/stocks.lang index 6cf089096dd..a1f55010139 100644 --- a/htdocs/langs/zh_HK/stocks.lang +++ b/htdocs/langs/zh_HK/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse diff --git a/htdocs/langs/zh_HK/withdrawals.lang b/htdocs/langs/zh_HK/withdrawals.lang index e3bec6f9cb8..059b3451c11 100644 --- a/htdocs/langs/zh_HK/withdrawals.lang +++ b/htdocs/langs/zh_HK/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=Hello,

    the direct debit payment order of invoice %s rel ModeWarning=Option for real mode was not set, we stop after this simulation ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/zh_HK/workflow.lang b/htdocs/langs/zh_HK/workflow.lang index 299be277e1d..494a0424a75 100644 --- a/htdocs/langs/zh_HK/workflow.lang +++ b/htdocs/langs/zh_HK/workflow.lang @@ -21,3 +21,5 @@ descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked sup descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated diff --git a/htdocs/langs/zh_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang index 9a47b96d1dc..3b4947efd9a 100644 --- a/htdocs/langs/zh_TW/accountancy.lang +++ b/htdocs/langs/zh_TW/accountancy.lang @@ -16,6 +16,8 @@ ThisService=此服務 ThisProduct=此產品 DefaultForService=服務的預設 DefaultForProduct=產品的預設 +ProductForThisThirdparty=Product for this thirdparty +ServiceForThisThirdparty=Service for this thirdparty CantSuggest=無法建議 AccountancySetupDoneFromAccountancyMenu=從%s選單的大部分會計設定已完成 ConfigAccountingExpert=Configuration of the module accounting (double entry) diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index a9af31dd5c7..3d26c53e461 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/admin.lang @@ -56,8 +56,8 @@ GUISetup=顯示設定 SetupArea=設定 UploadNewTemplate=上傳新的範本 FormToTestFileUploadForm=用於測試檔案上傳的表格(根據設定) -ModuleMustBeEnabled=The module/application %s must be enabled -ModuleIsEnabled=The module/application %s has been enabled +ModuleMustBeEnabled=模組/應用程式 %s必須啟用 +ModuleIsEnabled=模組/應用程式 %s 已啟用 IfModuleEnabled=註:若模組%s啓用時,「是的」有效。 RemoveLock=如果存在%s檔案,刪除/重新命名文件以允許使用更新/安裝工具。 RestoreLock=還原檔案唯讀權限檔案%s ,以禁止使用更新/安裝工具。 @@ -154,8 +154,8 @@ SystemToolsAreaDesc=此區域提供管理功能。使用選單選擇所需的功 Purge=清除 PurgeAreaDesc=此頁面允許您刪除Dolibarr產生或儲存的所有文件(暫存檔案或%s目錄中的所有文件)。通常不需要使用此功能。此功能提供無權限刪除Web服務器產生之文件的Dolibarr用戶提供了一種解決方法。 PurgeDeleteLogFile=刪除 log 檔案,包含Syslog 模組的 %s (沒有遺失資料風險) -PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago. -PurgeDeleteTemporaryFilesShort=Delete log and temporary files +PurgeDeleteTemporaryFiles=刪除所有紀錄與暫存檔案(沒有丟失資料的風險)。注意:僅對於24小時前於temp資料夾已建立的檔案才執行刪除操作。 +PurgeDeleteTemporaryFilesShort=刪除紀錄和暫存檔案 PurgeDeleteAllFilesInDocumentsDir=刪除資料夾中的所有檔案: %s
    這將刪除所有與元件(合作方,發票等)相關的所有產生文件,上傳到ECM模組中的檔案,資料庫備份轉存和臨時文件。 PurgeRunNow=立即清除 PurgeNothingToDelete=沒有可以刪除的資料夾或檔案。 @@ -377,7 +377,7 @@ ExamplesWithCurrentSetup=目前設定的範例 ListOfDirectories=OpenDocument 範本資料夾下的清單 ListOfDirectoriesForModelGenODT=包含具有OpenDocument格式的範本文件的資料夾清單。

    在這裡放置資料夾的完整路徑。
    在eah資料夾之間增加Enter符號。
    要增加GED模組的資料夾,請在此處增加DOL_DATA_ROOT/ecm/yourdirectoryname

    這些資料夾中的文件必須以.odt.ods結尾。 NumberOfModelFilesFound=在這些資料夾中找到的ODT / ODS範本文件數 -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir +ExampleOfDirectoriesForModelGen=語法範例:
    c:\\myapp\\mydocumentdir\\mysubdir
    /home/myapp/mydocumentdir/mysubdir
    DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=
    要了解如何建立odt文件範本,然後將它們存儲在那些資料夾中,請參閱Wiki文件: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=名字/姓氏的位置 @@ -408,7 +408,7 @@ UrlGenerationParameters=保護網址參數 SecurityTokenIsUnique=為每個網址使用唯一的安全金鑰參數 EnterRefToBuildUrl=輸入項目%s的參考值 GetSecuredUrl=取得計算後網址 -ButtonHideUnauthorized=Hide unauthorized action buttons also for internal users (just greyed otherwise) +ButtonHideUnauthorized=對內部用戶也隱藏未經授權的操作按鈕(否則為灰色) OldVATRates=舊營業稅率 NewVATRates=新營業稅率 PriceBaseTypeToChange=根據已定義的基礎參考價參修改價格 @@ -670,7 +670,7 @@ Module54000Desc=直接列印(不用打開文件)使用 Cups IPP 介面(印表機 Module55000Name=問卷、調查或投票 Module55000Desc=建立線上問卷,調查或投票(例如Doodle,Studs,RDVz等) Module59000Name=利潤 -Module59000Desc=利潤管理模組 +Module59000Desc=跟隨利潤的模組 Module60000Name=佣金 Module60000Desc=管理佣金的模組 Module62000Name=國際貿易術語 @@ -996,13 +996,13 @@ Permission941605=匯出收據 Permission941606=刪除收據 DictionaryCompanyType=合作方類型 DictionaryCompanyJuridicalType=法人合作方 -DictionaryProspectLevel=Prospect potential level for companies -DictionaryProspectContactLevel=Prospect potential level for contacts +DictionaryProspectLevel=公司的潛在機率層級 +DictionaryProspectContactLevel=聯絡人的潛在機率層級 DictionaryCanton=州/省 DictionaryRegion=地區 DictionaryCountry=國家 DictionaryCurrency=幣別 -DictionaryCivility=榮譽稱號 +DictionaryCivility=稱謂或頭銜 DictionaryActions=行程事件類型 DictionarySocialContributions=社會稅或財政稅類型 DictionaryVAT=營業稅率或銷售稅率 @@ -1027,13 +1027,13 @@ DictionaryEMailTemplates=電子郵件範本 DictionaryUnits=單位 DictionaryMeasuringUnits=計算單位 DictionarySocialNetworks=社會網路 -DictionaryProspectStatus=Prospect status for companies -DictionaryProspectContactStatus=Prospect status for contacts +DictionaryProspectStatus=公司的潛在狀態 +DictionaryProspectContactStatus=聯絡人的潛在狀態 DictionaryHolidayTypes=休假類型 DictionaryOpportunityStatus=專案/潛在的潛在狀態 DictionaryExpenseTaxCat=費用報表 -交通類別 DictionaryExpenseTaxRange=費用報表 - 依交通類別劃分範圍 -DictionaryTransportMode=Intracomm report - Transport mode +DictionaryTransportMode=通訊報告-傳送模式 TypeOfUnit=單位類型 SetupSaved=設定已儲存 SetupNotSaved=設定未儲存 @@ -1172,7 +1172,7 @@ Delays_MAIN_DELAY_EXPENSEREPORTS=費用報表批准 Delays_MAIN_DELAY_HOLIDAYS=休假申請批准 SetupDescription1=在開始使用Dolibarr之前,必須定義一些初始參數並啟用/設定模組。 SetupDescription2=以下兩個部分是必需的(“設定”選單中的前兩個項目): -SetupDescription3=  %s-> %s

    用於自訂您應用程式默認行為的基本參數(例如 跟國家相關的功能)。 +SetupDescription3=  %s-> %s

    用於自訂您的應用程式預設行為的基本參數(例如 跟國家相關的功能)。 SetupDescription4=  %s-> %s

    此軟體是許多模組/應用程式的套件。必須啟用和配置與您的需求相關的模組。這些模組啟動後將會顯示在選單上。 SetupDescription5=其他設定選單項目管理可選參數。 LogEvents=安全稽核事件 @@ -1308,7 +1308,7 @@ YouUseBestDriver=您使用的驅動程式%s是目前的最佳驅動程式。 YouDoNotUseBestDriver=您使用驅動程式%s,但建議使用驅動程式%s。 NbOfObjectIsLowerThanNoPb=您的資料庫中有%s %s。這不需要任何特定的優化。 SearchOptim=搜尋最佳化 -YouHaveXObjectUseSearchOptim=您的資料庫中有%s %s。您應該在首頁-設定-其他中加入常數%s到1。將搜尋限制在字串的開頭,這樣資料庫就可以使用索引,並且您應該立即得到回應。 +YouHaveXObjectUseSearchOptim=You have %s %s in the database. You can add the constant %s to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response. YouHaveXObjectAndSearchOptimOn=您在資料庫中具有%s %s,並且在首頁-設定-其他中,常數%s設定為1。 BrowserIsOK=您正在使用%s 網頁瀏覽器。此瀏覽器可以確保安全性和性能。 BrowserIsKO=您正在使用%s 網頁瀏覽器。眾所周知,此瀏覽器是安全性,性能和可靠性的錯誤選擇。我們建議使用Firefox,Chrome,Opera或Safari。 @@ -1567,8 +1567,8 @@ ForANonAnonymousAccess=已驗證存取(例如寫入存取) PerfDolibarr=效能設定/最佳化報告 YouMayFindPerfAdviceHere=此頁面提供了一些與性能有關的檢查或建議。 NotInstalled=未安裝。 -NotSlowedDownByThis=Not slowed down by this. -NotRiskOfLeakWithThis=Not risk of leak with this. +NotSlowedDownByThis=並沒有因此而減慢。 +NotRiskOfLeakWithThis=沒有洩漏的風險。 ApplicativeCache=應用程式快取 MemcachedNotAvailable=沒有找到應用程式快取。你可安裝快取伺服器 Memcached 並啟動模組以增加效能。
    更多的資訊在http://wiki.dolibarr.org/index.php/Module_MemCached_EN
    注意多數的伺服器供應商不提供類似的快取伺服器。 MemcachedModuleAvailableButNotSetup=找到應用程式快取的快取模組,但模組設定沒有完成。 @@ -1924,7 +1924,7 @@ ExampleOfNewsMessageForMajorRelease=已提供Dolibarr ERP和CRM %s。版本%s是 ExampleOfNewsMessageForMaintenanceRelease=已提供Dolibarr ERP和CRM %s。版本%s是維護版本,因此僅包含錯誤修復。我們建議所有用戶升級到此版本。維護版本不加入新功能或對資料庫進行更改。您可以從https://www.dolibarr.org下載區域(穩定目錄的子目錄)下載此檔案。您可以閱讀ChangeLog以獲得完整的更改列表。 MultiPriceRuleDesc=啟用選項“產品/服務的多種價格”後,您可以為每種產品定義不同的價格(一種價格水平一個)。為了節省您的時間,您可以在此處輸入一個規則,根據第一級的價格自動計算每個級別的價格,因此您只需要為每種產品輸入第一級的價格。此頁面旨在節省您的時間,但僅在您每個級別的價格都相對於第一級別時才有用。在大多數情況下,您可以忽略此頁面。 ModelModulesProduct=產品文件的範本 -WarehouseModelModules=Templates for documents of warehouses +WarehouseModelModules=倉庫檔案模板 ToGenerateCodeDefineAutomaticRuleFirst=為了能夠自動產生代碼,您首先必須定義一個管理器來自動定義條碼編號。 SeeSubstitutionVars=請參閱 * 註釋以取得可能的替代變數清單 SeeChangeLog=查看變更日誌檔案(僅有英文) @@ -1963,7 +1963,7 @@ MAIN_PDF_MARGIN_LEFT=PDF左邊邊距 MAIN_PDF_MARGIN_RIGHT=PDF右邊邊距 MAIN_PDF_MARGIN_TOP=PDF頂部邊距 MAIN_PDF_MARGIN_BOTTOM=PDF底部邊距 -MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF +MAIN_DOCUMENTS_LOGO_HEIGHT=PDF上Logo的高度 NothingToSetup=此模組不需要特別的設定。 SetToYesIfGroupIsComputationOfOtherGroups=若此群組是其他群組的計算值,則將其設定為 "是" EnterCalculationRuleIfPreviousFieldIsYes=如果先前欄位設定為“是”,則輸入計算規則(例如“ CODEGRP1 + CODEGRP2”) @@ -1990,7 +1990,7 @@ EMailHost=IMAP伺服器主機 MailboxSourceDirectory=信箱來源資料夾 MailboxTargetDirectory=信箱目標資料夾 EmailcollectorOperations=收集器要做的操作 -EmailcollectorOperationsDesc=Operations are executed from top to bottom order +EmailcollectorOperationsDesc=全部訂單的操作已執行 MaxEmailCollectPerCollect=每次收集電子郵件的最大數量 CollectNow=立刻收集 ConfirmCloneEmailCollector=您確定要複製電子郵件收集器%s嗎? @@ -2011,9 +2011,9 @@ LoadThirdPartyFromName=在%s載入合作方搜尋 (僅載入) LoadThirdPartyFromNameOrCreate= 在%s載入合作方搜尋 (如果找不到就建立) WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr -WithDolTrackingIDInMsgId=Message sent from Dolibarr -WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr -CreateCandidature=Create job application +WithDolTrackingIDInMsgId=來自Dolibarr的訊息 +WithoutDolTrackingIDInMsgId=未從Dolibarr傳送訊息 +CreateCandidature=建立工作應用程式 FormatZip=Zip MainMenuCode=選單輸入代碼(主選單) ECMAutoTree=顯示自動ECM樹狀圖 @@ -2050,7 +2050,7 @@ DEBUGBAR_LOGS_LINES_NUMBER=控制台中可保留的日誌行數 WarningValueHigherSlowsDramaticalyOutput=警告,較高的值會嚴重降低輸出速度 ModuleActivated=模組%s已啟動並顯示於界面上 IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s. -AntivirusEnabledOnUpload=Antivirus enabled on uploaded files +AntivirusEnabledOnUpload=在上傳的檔案已啟用了防病毒功能 EXPORTS_SHARE_MODELS=匯出模組功能可分享此模組給所有人 ExportSetup=模組匯出設定 ImportSetup=模組匯入設定 diff --git a/htdocs/langs/zh_TW/agenda.lang b/htdocs/langs/zh_TW/agenda.lang index 068e61c9e43..b72514bf7b6 100644 --- a/htdocs/langs/zh_TW/agenda.lang +++ b/htdocs/langs/zh_TW/agenda.lang @@ -14,7 +14,7 @@ EventsNb=事件集數量 ListOfActions=事件清單 EventReports=事件報表 Location=位置 -ToUserOfGroup=Event assigned to any user in the group +ToUserOfGroup=將事件分配給群組中的任何用戶 EventOnFullDay=整天事件 MenuToDoActions=全部未完成事件 MenuDoneActions=全部已停止事件 @@ -161,9 +161,9 @@ DateStartPlusOne=開始日 +1 小時 SetAllEventsToTodo=將所有事件設定為待辦事項 SetAllEventsToInProgress=將所有事件設定為進行中 SetAllEventsToFinished=將所有事件設定為已完成 -ReminderTime=Reminder period before the event -TimeType=Duration type -ReminderType=Callback type -AddReminder=Create an automatic reminder notification for this event -ErrorReminderActionCommCreation=Error creating the reminder notification for this event -BrowserPush=Browser Popup Notification +ReminderTime=事件前的提醒時間 +TimeType=持續時間類型 +ReminderType=回調類型 +AddReminder=為此事件建立自動提醒通知 +ErrorReminderActionCommCreation=為此事件建立提醒通知時出現錯誤 +BrowserPush=查看彈出通知 diff --git a/htdocs/langs/zh_TW/banks.lang b/htdocs/langs/zh_TW/banks.lang index 7faa8119c1d..f3885f17658 100644 --- a/htdocs/langs/zh_TW/banks.lang +++ b/htdocs/langs/zh_TW/banks.lang @@ -180,3 +180,4 @@ BankColorizeMovementDesc=如果啟用此功能,則可以為借款方或貸款 BankColorizeMovementName1=借款方動作的背景顏色 BankColorizeMovementName2=貸款方動作的背景顏色 IfYouDontReconcileDisableProperty=If you don't make the bank reconciliations on some bank accounts, disable the property "%s" on them to remove this warning. +NoBankAccountDefined=No bank account defined diff --git a/htdocs/langs/zh_TW/bills.lang b/htdocs/langs/zh_TW/bills.lang index 605092ba14d..5e5158ca8af 100644 --- a/htdocs/langs/zh_TW/bills.lang +++ b/htdocs/langs/zh_TW/bills.lang @@ -576,7 +576,7 @@ BILL_SUPPLIER_DELETEInDolibarr=供應商發票已刪除 UnitPriceXQtyLessDiscount=單價 x 數量 - 折讓 CustomersInvoicesArea=客戶計費區 SupplierInvoicesArea=供應商付款區 -FacParentLine=Invoice Line Parent -SituationTotalRayToRest=Remainder to pay without taxe -PDFSituationTitle=Situation n° %d -SituationTotalProgress=Total progress %d %% +FacParentLine=發票的母行 +SituationTotalRayToRest=剩下的不含稅 +PDFSituationTitle=情況n°%d +SituationTotalProgress=總進度%d %% diff --git a/htdocs/langs/zh_TW/blockedlog.lang b/htdocs/langs/zh_TW/blockedlog.lang index 2dc2c84cd6e..01d6e9d8300 100644 --- a/htdocs/langs/zh_TW/blockedlog.lang +++ b/htdocs/langs/zh_TW/blockedlog.lang @@ -35,7 +35,7 @@ logDON_DELETE=捐贈邏輯刪除 logMEMBER_SUBSCRIPTION_CREATE=會員訂閱已建立 logMEMBER_SUBSCRIPTION_MODIFY=會員訂閱已修改 logMEMBER_SUBSCRIPTION_DELETE=會員訂閱邏輯刪除 -logCASHCONTROL_VALIDATE=Cash desk closing recording +logCASHCONTROL_VALIDATE=收銀台結帳記錄 BlockedLogBillDownload=客戶發票下載 BlockedLogBillPreview=客戶發票預覽 BlockedlogInfoDialog=日誌詳細訊息 diff --git a/htdocs/langs/zh_TW/boxes.lang b/htdocs/langs/zh_TW/boxes.lang index 96c537c645e..157b6a17cef 100644 --- a/htdocs/langs/zh_TW/boxes.lang +++ b/htdocs/langs/zh_TW/boxes.lang @@ -46,12 +46,12 @@ BoxTitleLastModifiedDonations=最新%s筆已修改捐贈 BoxTitleLastModifiedExpenses=最新%s份已修改費用報告 BoxTitleLatestModifiedBoms=最新%s筆已修改BOM BoxTitleLatestModifiedMos=最新%s筆已修改製造訂單 -BoxTitleLastOutstandingBillReached=Customers with maximum outstanding exceeded +BoxTitleLastOutstandingBillReached=超過最大未償還額的客戶 BoxGlobalActivity=全球活動(發票、提案/建議書、訂單) BoxGoodCustomers=好客戶 BoxTitleGoodCustomers=%s位好客戶 BoxScheduledJobs=排程工作 -BoxTitleFunnelOfProspection=Lead funnel +BoxTitleFunnelOfProspection=潛在漏斗 FailedToRefreshDataInfoNotUpToDate=無法更新RSS流量。最近成功更新的日期:%s LastRefreshDate=最新更新日期 NoRecordedBookmarks=未定義書籤。 @@ -86,8 +86,8 @@ BoxTitleLatestModifiedSupplierOrders=供應商訂單:最後修改的%s筆 BoxTitleLastModifiedCustomerBills=客戶發票:最後修改的%s張 BoxTitleLastModifiedCustomerOrders=銷售訂單:最後修改的%s筆 BoxTitleLastModifiedPropals=最新%s筆修改的提案/建議書 -BoxTitleLatestModifiedJobPositions=Latest %s modified jobs -BoxTitleLatestModifiedCandidatures=Latest %s modified candidatures +BoxTitleLatestModifiedJobPositions=最新已修改的工作%s +BoxTitleLatestModifiedCandidatures=最新已修改的候選人%s ForCustomersInvoices=客戶發票 ForCustomersOrders=客戶訂單 ForProposals=提案/建議書 @@ -95,8 +95,8 @@ LastXMonthRolling=最新%s月份滾動 ChooseBoxToAdd=將小工具加到您的控制板 BoxAdded=小工具已加到您的控制板中 BoxTitleUserBirthdaysOfMonth=本月的生日(用戶) -BoxLastManualEntries=會計中的最後手動條目 -BoxTitleLastManualEntries=%s最新手動條目 +BoxLastManualEntries=Latest record in accountancy entered manually or without source document +BoxTitleLastManualEntries=%s latest record entered manually or without source document NoRecordedManualEntries=會計中沒有手動條目 BoxSuspenseAccount=用暫記帳戶計算會計操作 BoxTitleSuspenseAccount=未分配的行數 @@ -105,7 +105,7 @@ SuspenseAccountNotDefined=未定義暫記帳戶 BoxLastCustomerShipments=上次客戶發貨 BoxTitleLastCustomerShipments=最新%s筆客戶發貨 NoRecordedShipments=沒有已記錄的客戶發貨 -BoxCustomersOutstandingBillReached=Customers with oustanding limit reached +BoxCustomersOutstandingBillReached=達到最大客戶數 # Pages AccountancyHome=會計 -ValidatedProjects=Validated projects +ValidatedProjects=已驗證的專案 diff --git a/htdocs/langs/zh_TW/cashdesk.lang b/htdocs/langs/zh_TW/cashdesk.lang index 78fb2b628ae..e0d7525a4d7 100644 --- a/htdocs/langs/zh_TW/cashdesk.lang +++ b/htdocs/langs/zh_TW/cashdesk.lang @@ -49,8 +49,8 @@ Footer=頁尾 AmountAtEndOfPeriod=結算金額(天,月或年) TheoricalAmount=理論金額 RealAmount=實際金額 -CashFence=Cash desk closing -CashFenceDone=Cash desk closing done for the period +CashFence=收銀台關閉 +CashFenceDone=本期收銀台關閉完成 NbOfInvoices=發票數 Paymentnumpad=輸入付款的便籤類型 Numberspad=號碼便籤 @@ -77,7 +77,7 @@ POSModule=POS 模組 BasicPhoneLayout=在手機上使用基本佈局 SetupOfTerminalNotComplete=終端機%s的設定尚未完成 DirectPayment=直接付款 -DirectPaymentButton=Add a "Direct cash payment" button +DirectPaymentButton=增加“直接現金付款”按鈕 InvoiceIsAlreadyValidated=發票已通過驗證 NoLinesToBill=無計費項目 CustomReceipt=自訂收據 @@ -94,14 +94,14 @@ TakeposConnectorMethodDescription=具有附加功能的外部模組。可以從 PrintMethod=列印方式 ReceiptPrinterMethodDescription=具有很多參數的強大方法。完全可定制的模板。無法從雲端列印。 ByTerminal=依照站台 -TakeposNumpadUsePaymentIcon=Use icon instead of text on payment buttons of numpad +TakeposNumpadUsePaymentIcon=在小鍵盤的付款按鈕上使用圖示而不是文字 CashDeskRefNumberingModules=POS銷售編號模組 CashDeskGenericMaskCodes6 =
    {TN} 標籤用於增加站台 TakeposGroupSameProduct=群組相同產品線 StartAParallelSale=開啟新的平行銷售 -SaleStartedAt=Sale started at %s -ControlCashOpening=Control cash popup at opening POS -CloseCashFence=Close cash desk control +SaleStartedAt=銷售開始於%s +ControlCashOpening=在打開POS時控制現金彈出窗口 +CloseCashFence=關閉收銀台控制 CashReport=現金報告 MainPrinterToUse=要使用的主印表機 OrderPrinterToUse=要使用的訂單印表機 @@ -113,14 +113,14 @@ RestaurantMenu=選單 CustomerMenu=客戶選單 ScanToMenu=掃描QR Code顯示選單 ScanToOrder=掃描QR Code訂購 -Appearance=Appearance -HideCategoryImages=Hide Category Images -HideProductImages=Hide Product Images -NumberOfLinesToShow=Number of lines of images to show -DefineTablePlan=Define tables plan -GiftReceiptButton=Add a "Gift receipt" button -GiftReceipt=Gift receipt -ModuleReceiptPrinterMustBeEnabled=Module Receipt printer must have been enabled first -AllowDelayedPayment=Allow delayed payment -PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts -WeighingScale=Weighing scale +Appearance=出現 +HideCategoryImages=隱藏類別圖片 +HideProductImages=隱藏產品圖片 +NumberOfLinesToShow=要顯示的圖片行數 +DefineTablePlan=定義表格計劃 +GiftReceiptButton=增加“禮物收據”按鈕 +GiftReceipt=禮物收據 +ModuleReceiptPrinterMustBeEnabled=必須先啟用收據印表機模組 +AllowDelayedPayment=允許延遲付款 +PrintPaymentMethodOnReceipts=在收據上列印付款方式 +WeighingScale=秤重 diff --git a/htdocs/langs/zh_TW/categories.lang b/htdocs/langs/zh_TW/categories.lang index 6c462752097..c92c7a709c4 100644 --- a/htdocs/langs/zh_TW/categories.lang +++ b/htdocs/langs/zh_TW/categories.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - categories -Rubrique=標籤/類別 -Rubriques=標籤/類別 -RubriquesTransactions=交易標籤/類別 -categories=標籤/類別 -NoCategoryYet=此類型沒有已建立的標籤/類別 +Rubrique=標籤/分類 +Rubriques=標籤/分類 +RubriquesTransactions=交易標籤/分類 +categories=標籤/分類 +NoCategoryYet=此類型沒有已建立的標籤/分類 In=在 AddIn=加入 modify=修改 @@ -19,7 +19,7 @@ ProjectsCategoriesArea=專案標籤/類別區域 UsersCategoriesArea=用戶標籤/類別區域 SubCats=子類別 CatList=標籤/類別清單 -CatListAll=List of tags/categories (all types) +CatListAll=標籤/分類清單(所有類型) NewCategory=新標籤/類別 ModifCat=修改標籤/類別 CatCreated=標籤/類別已建立 @@ -66,22 +66,22 @@ UsersCategoriesShort=用戶標籤/類別 StockCategoriesShort=倉庫標籤/類別 ThisCategoryHasNoItems=此類別內沒有任何項目。 CategId=標籤/類別編號 -ParentCategory=Parent tag/category -ParentCategoryLabel=Label of parent tag/category -CatSupList=List of vendors tags/categories -CatCusList=List of customers/prospects tags/categories +ParentCategory=母標籤/分類 +ParentCategoryLabel=母標籤/分類的標籤 +CatSupList=供應商標籤/分類清單 +CatCusList=客戶/潛在客戶標籤/分類清單 CatProdList=產品標籤/類別清單 CatMemberList=會員標籤/類別清單 -CatContactList=List of contacts tags/categories -CatProjectsList=List of projects tags/categories -CatUsersList=List of users tags/categories -CatSupLinks=Links between vendors and tags/categories +CatContactList=聯絡人標籤/分類清單 +CatProjectsList=專案標籤/分類清單 +CatUsersList=用戶標籤/分類清單 +CatSupLinks=供應商與標籤/分類之間的連結 CatCusLinks=客戶/潛在方與標籤/類別之間的連結 CatContactsLinks=聯絡人/地址與標籤/類別之間的連結 CatProdLinks=產品/服務與標籤/類別之間的連結 -CatMembersLinks=Links between members and tags/categories +CatMembersLinks=會員與標籤/分類之間的連結 CatProjectsLinks=專案與標籤/類別之間的連結 -CatUsersLinks=Links between users and tags/categories +CatUsersLinks=用戶與標籤/分類之間的連結 DeleteFromCat=從標籤/類別中刪除 ExtraFieldsCategories=補充屬性 CategoriesSetup=標籤/類別設定 diff --git a/htdocs/langs/zh_TW/companies.lang b/htdocs/langs/zh_TW/companies.lang index 82cd94f4c0b..8bbc2a0225b 100644 --- a/htdocs/langs/zh_TW/companies.lang +++ b/htdocs/langs/zh_TW/companies.lang @@ -358,7 +358,7 @@ VATIntraCheckableOnEUSite=檢查在歐盟區網站內的區內營業稅 VATIntraManualCheck=您也可在歐盟網站以人工方式確認%s ErrorVATCheckMS_UNAVAILABLE=無法檢查。無法使用會員國家(%s)進行檢查服務。 NorProspectNorCustomer=非潛在方或客戶 -JuridicalStatus=Business entity type +JuridicalStatus=業務實體類型 Workforce=員工 Staff=僱員 ProspectLevelShort=潛在等級 diff --git a/htdocs/langs/zh_TW/contracts.lang b/htdocs/langs/zh_TW/contracts.lang index d3e8619ee8c..8a6b57e2e85 100644 --- a/htdocs/langs/zh_TW/contracts.lang +++ b/htdocs/langs/zh_TW/contracts.lang @@ -28,7 +28,7 @@ MenuRunningServices=正在執行的服務 MenuExpiredServices=已過期服務 MenuClosedServices=已關閉服務 NewContract=新合約 -NewContractSubscription=New contract or subscription +NewContractSubscription=新合約或訂閱 AddContract=建立合約 DeleteAContract=刪除合約 ActivateAllOnContract=啟動所有服務 diff --git a/htdocs/langs/zh_TW/cron.lang b/htdocs/langs/zh_TW/cron.lang index 33ea6c545f6..7bc4d4b9d74 100644 --- a/htdocs/langs/zh_TW/cron.lang +++ b/htdocs/langs/zh_TW/cron.lang @@ -7,14 +7,14 @@ Permission23103 = 刪除預定工作 Permission23104 = 執行預定工作 # Admin CronSetup=預定工作管理設定 -URLToLaunchCronJobs=URL to check and launch qualified cron jobs from a browser -OrToLaunchASpecificJob=Or to check and launch a specific job from a browser +URLToLaunchCronJobs=用於從瀏覽器檢查和啟動合格cron作業的網址 +OrToLaunchASpecificJob=或以瀏覽器檢查並啟動特定作業 KeyForCronAccess=用於啟動cron作業URL的安全密鑰 FileToLaunchCronJobs=命令列檢查並啟動合格的cron作業 CronExplainHowToRunUnix=在Unix環境中,您應該使用以下crontab條目以每隔5分鐘執行命令行 CronExplainHowToRunWin=在Microsoft(tm)Windows環境中,您可以使用“計劃任務”工具每5分鐘執行命令行 CronMethodDoesNotExists=類別%s不包含任何方法%s -CronMethodNotAllowed=Method %s of class %s is in blacklist of forbidden methods +CronMethodNotAllowed=類別%s中的方法%s在禁止方法的黑名單中 CronJobDefDesc=Cron工作設定文件定義在模組描述符檔案中。啟動模組後,它們將被載入使用,因此您可以從管理員工具選單%s管理作業。 CronJobProfiles=預定義cron工作配置文件清單 # Menu @@ -47,7 +47,7 @@ CronNbRun=啟動次數 CronMaxRun=最大啟動次數 CronEach=每一個 JobFinished=工作已啟動並完成 -Scheduled=Scheduled +Scheduled=已預定工作 #Page card CronAdd= 新增工作 CronEvery=執行每個工作 @@ -58,7 +58,7 @@ CronNote=註解 CronFieldMandatory=欄位%s為必填 CronErrEndDateStartDt=結束日期不能早於開始日期 StatusAtInstall=模組安裝狀態 -CronStatusActiveBtn=Schedule +CronStatusActiveBtn=計畫表 CronStatusInactiveBtn=停用 CronTaskInactive=此工作已停用 CronId=Id @@ -84,8 +84,8 @@ MakeLocalDatabaseDumpShort=本地資料庫備份 MakeLocalDatabaseDump=建立本地資料庫備份。參數為:壓縮(“ gz”或“ bz”或“none”),備份類型(“ mysql”,“ pgsql”,“ auto”),1,"自動"或建立檔案名稱,要保留的備份檔案數 WarningCronDelayed=請注意,出於性能目的,無論下一次執行已啟動工作的日期如何,您的工作執行最多可能會延遲%s小時。 DATAPOLICYJob=資料清理器和匿名器 -JobXMustBeEnabled=Job %s must be enabled +JobXMustBeEnabled=必須啟用工作%s # Cron Boxes -LastExecutedScheduledJob=Last executed scheduled job -NextScheduledJobExecute=Next scheduled job to execute -NumberScheduledJobError=Number of scheduled jobs in error +LastExecutedScheduledJob=最後執行的計劃工作 +NextScheduledJobExecute=下一個要預定要執行的工作 +NumberScheduledJobError=錯誤的預定工作數量 diff --git a/htdocs/langs/zh_TW/deliveries.lang b/htdocs/langs/zh_TW/deliveries.lang index dd26d50ec74..489be238c4e 100644 --- a/htdocs/langs/zh_TW/deliveries.lang +++ b/htdocs/langs/zh_TW/deliveries.lang @@ -27,5 +27,6 @@ Recipient=收貨人 ErrorStockIsNotEnough=庫存不足 Shippable=可運送 NonShippable=無法運送 +ShowShippableStatus=顯示可運送狀態 ShowReceiving=顯示交貨單 NonExistentOrder=不存在的訂單 diff --git a/htdocs/langs/zh_TW/ecm.lang b/htdocs/langs/zh_TW/ecm.lang index c39a9af9b35..155f77c6998 100644 --- a/htdocs/langs/zh_TW/ecm.lang +++ b/htdocs/langs/zh_TW/ecm.lang @@ -23,7 +23,7 @@ ECMSearchByKeywords=搜尋關鍵字 ECMSearchByEntity=搜尋對象 ECMSectionOfDocuments=目錄中的文件 ECMTypeAuto=自動 -ECMDocsBy=Documents linked to %s +ECMDocsBy=已連結到%s的文件 ECMNoDirectoryYet=未建立資料夾 ShowECMSection=顯示資料夾 DeleteSection=刪除資料夾 @@ -40,4 +40,4 @@ NoDirectoriesFound=找不到目錄 FileNotYetIndexedInDatabase=檔案尚未編入資料庫(嘗試重新上傳) ExtraFieldsEcmFiles=Extrafields Ecm Files ExtraFieldsEcmDirectories=Extrafields Ecm Directories -ECMSetup=ECM Setup +ECMSetup=ECM設定 diff --git a/htdocs/langs/zh_TW/exports.lang b/htdocs/langs/zh_TW/exports.lang index 951fb75a8c7..721e44dfde2 100644 --- a/htdocs/langs/zh_TW/exports.lang +++ b/htdocs/langs/zh_TW/exports.lang @@ -133,4 +133,4 @@ KeysToUseForUpdates=用於更新現有資料的鍵(欄) NbInsert=已插入的行數:%s NbUpdate=已更新的行數:%s MultipleRecordFoundWithTheseFilters=使用過濾器找到了多個記錄:%s -StocksWithBatch=Stocks and location (warehouse) of products with batch/serial number +StocksWithBatch=具有批次/序號產品的庫存和位置(倉庫) diff --git a/htdocs/langs/zh_TW/languages.lang b/htdocs/langs/zh_TW/languages.lang index 8c2475ca6ca..2c762a9075b 100644 --- a/htdocs/langs/zh_TW/languages.lang +++ b/htdocs/langs/zh_TW/languages.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - languages -Language_am_ET=Ethiopian +Language_am_ET=衣索比亞 Language_ar_AR=阿拉伯語 Language_ar_EG=阿拉伯語(埃及) Language_ar_SA=阿拉伯語 -Language_az_AZ=Azerbaijani +Language_az_AZ=亞塞拜然 Language_bn_BD=孟加拉語 -Language_bn_IN=Bengali (India) +Language_bn_IN=孟加拉語(印度) Language_bg_BG=保加利亞語 Language_bs_BA=波斯尼亞語 Language_ca_ES=加泰羅尼亞語 @@ -23,7 +23,7 @@ Language_en_GB=英語(英國) Language_en_IN=英國(印度) Language_en_NZ=英語(紐西蘭) Language_en_SA=英语 (沙特阿拉伯) -Language_en_SG=English (Singapore) +Language_en_SG=英文(新加坡) Language_en_US=英語(美國) Language_en_ZA=英語(南非) Language_es_ES=西班牙語 @@ -33,16 +33,16 @@ Language_es_CL=西班牙語(智利) Language_es_CO=西班牙語(哥倫比亞) Language_es_DO=西班牙語(多明尼加共和國) Language_es_EC=西班牙語(厄瓜多爾) -Language_es_GT=Spanish (Guatemala) +Language_es_GT=西班牙語(瓜地馬拉) Language_es_HN=西班牙語(洪都拉斯) Language_es_MX=西班牙語(墨西哥) Language_es_PA=西班牙語(巴拿馬) Language_es_PY=西班牙語(巴拉圭) Language_es_PE=西班牙語(秘魯) Language_es_PR=西班牙語(波多黎各) -Language_es_US=Spanish (USA) +Language_es_US=西班牙語(美國) Language_es_UY=西班牙語(烏拉圭) -Language_es_GT=Spanish (Guatemala) +Language_es_GT=西班牙語(瓜地馬拉) Language_es_VE=西班牙語(委內瑞拉) Language_et_EE=愛沙尼亞語 Language_eu_ES=巴斯克語 @@ -51,22 +51,22 @@ Language_fi_FI=芬蘭語 Language_fr_BE=法語(比利時) Language_fr_CA=法語(加拿大) Language_fr_CH=法語(瑞士) -Language_fr_CI=French (Cost Ivory) -Language_fr_CM=French (Cameroun) +Language_fr_CI=法語(象牙海岸) +Language_fr_CM=法語(喀麥隆) Language_fr_FR=法語 -Language_fr_GA=French (Gabon) +Language_fr_GA=法語(加彭) Language_fr_NC=法語 (新喀里多尼亞) -Language_fr_SN=French (Senegal) +Language_fr_SN=法語(塞內加爾) Language_fy_NL=弗里斯蘭語 -Language_gl_ES=Galician +Language_gl_ES=加利西亞語 Language_he_IL=希伯來語 -Language_hi_IN=Hindi (India) +Language_hi_IN=印地語(印度) Language_hr_HR=克羅地亞語 Language_hu_HU=匈牙利語 Language_id_ID=印尼語 Language_is_IS=冰島語 Language_it_IT=意大利語 -Language_it_CH=Italian (Switzerland) +Language_it_CH=義大利文(瑞士) Language_ja_JP=日語 Language_ka_GE=格魯吉亞人語 Language_km_KH=高棉語 @@ -78,7 +78,7 @@ Language_lv_LV=拉脫維亞語 Language_mk_MK=馬其頓語 Language_mn_MN=蒙古語 Language_nb_NO=挪威語(Bokmål) -Language_ne_NP=Nepali +Language_ne_NP=尼泊爾語 Language_nl_BE=荷蘭語(比利時) Language_nl_NL=荷蘭人 Language_pl_PL=波蘭語 @@ -101,5 +101,5 @@ Language_uz_UZ=烏茲別克語 Language_vi_VN=越南語 Language_zh_CN=簡體中文 Language_zh_TW=繁體中文 -Language_zh_HK=Chinese (Hong Kong) +Language_zh_HK=中文(香港) Language_bh_MY=馬來語 diff --git a/htdocs/langs/zh_TW/mails.lang b/htdocs/langs/zh_TW/mails.lang index 4692e0bcb59..c8ad519aa7c 100644 --- a/htdocs/langs/zh_TW/mails.lang +++ b/htdocs/langs/zh_TW/mails.lang @@ -175,3 +175,5 @@ Answered=已回覆 IsNotAnAnswer=未回應(原始電子郵件) IsAnAnswer=是一封原始電子郵件的回應 RecordCreatedByEmailCollector=由電子郵件收集器%s從電子郵件%s建立的記錄 +DefaultBlacklistMailingStatus=Default contact status for refuse bulk emailing +DefaultStatusEmptyMandatory=Empty but mandatory diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang index c9a3ab89c26..74cc374cb06 100644 --- a/htdocs/langs/zh_TW/main.lang +++ b/htdocs/langs/zh_TW/main.lang @@ -30,7 +30,7 @@ NoTranslation=沒有翻譯 Translation=翻譯 CurrentTimeZone=PHP (伺服器)時區 EmptySearchString=輸入非空白的搜索字串 -EnterADateCriteria=Enter a date criteria +EnterADateCriteria=輸入日期條件 NoRecordFound=沒有找到任何紀錄 NoRecordDeleted=沒有刪除記錄 NotEnoughDataYet=沒有足夠資料 @@ -224,6 +224,7 @@ Value=值 PersonalValue=個人設定值 NewObject=新 %s NewValue=新值 +OldValue=Old value %s CurrentValue=目前值 Code=代碼 Type=類型 @@ -655,6 +656,7 @@ SupplierPreview=供應商預覽資訊 ShowCustomerPreview=顯示客戶預覽資訊 ShowSupplierPreview=顯示供應商預覽 RefCustomer=參考客戶 +InternalRef=Internal ref. Currency=貨幣 InfoAdmin=管理員資訊 Undo=復原 @@ -708,7 +710,7 @@ PartialWoman=部分 TotalWoman=全部 NeverReceived=從未收到 Canceled=已取消 -YouCanChangeValuesForThisListFromDictionarySetup=您可從選單「設定-字典」改變此清單的值 +YouCanChangeValuesForThisListFromDictionarySetup=您可從選單「首頁-設定-分類」改變此清單的值 YouCanChangeValuesForThisListFrom=您可從選單 %s 修改此清單的值 YouCanSetDefaultValueInModuleSetup=您可以設定一個當在模組設定中產生一個新紀錄時的默認值 Color=色彩 @@ -1113,6 +1115,7 @@ OutOfDate=過期 EventReminder=事件提醒 UpdateForAllLines=更新所有行 OnHold=On hold +Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? diff --git a/htdocs/langs/zh_TW/members.lang b/htdocs/langs/zh_TW/members.lang index 81f115bf880..d31b8fa9640 100644 --- a/htdocs/langs/zh_TW/members.lang +++ b/htdocs/langs/zh_TW/members.lang @@ -19,8 +19,8 @@ MembersCards=會員名片 MembersList=會員清單 MembersListToValid=草案會員清單(待確認) MembersListValid=有效會員清單 -MembersListUpToDate=List of valid members with up-to-date subscription -MembersListNotUpToDate=List of valid members with out-of-date subscription +MembersListUpToDate=最新訂閱的有效會員清單 +MembersListNotUpToDate=訂閱過期的有效會員清單 MembersListResiliated=已被終止會員清單 MembersListQualified=合格會員清單 MenuMembersToValidate=草案會員 @@ -32,7 +32,7 @@ DateSubscription=訂閱日期 DateEndSubscription=訂閱結束日期 EndSubscription=結束訂閱 SubscriptionId=訂閱編號 -WithoutSubscription=Without subscription +WithoutSubscription=沒有訂閱 MemberId=會員編號 NewMember=新會員 MemberType=會員類型 @@ -80,7 +80,7 @@ DeleteType=刪除 VoteAllowed=允許投票 Physical=自然人 Moral=法人 -MorAndPhy=Moral and Physical +MorAndPhy=法人與自然人 Reenable=重新啟用 ResiliateMember=終止會員 ConfirmResiliateMember=您確定要終止此會員嗎? @@ -116,7 +116,7 @@ SendingEmailOnMemberValidation=發送新會員驗證電子郵件 SendingEmailOnNewSubscription=發送新訂閱電子郵件 SendingReminderForExpiredSubscription=發送過期訂閱提醒 SendingEmailOnCancelation=發送取消郵件 -SendingReminderActionComm=Sending reminder for agenda event +SendingReminderActionComm=寄送議程事件提醒 # Topic of email templates YourMembershipRequestWasReceived=您的會員資格已收到。 YourMembershipWasValidated=您的會員資格已通過驗證 @@ -167,7 +167,7 @@ MembersStatisticsByState=會員統計(州/省) MembersStatisticsByTown=會員統計(城鎮) MembersStatisticsByRegion=會員統計(地區) NbOfMembers=會員數 -NbOfActiveMembers=Number of current active members +NbOfActiveMembers=目前活躍會員數 NoValidatedMemberYet=無已驗證的會員 MembersByCountryDesc=此畫面顯示依國家/地區劃分的會員統計訊息。圖形取決於Google線上圖形服務,並且僅在網路連接正常時可用。 MembersByStateDesc=此畫面依州/省顯示有關會員的統計訊息。 @@ -177,7 +177,7 @@ MenuMembersStats=統計 LastMemberDate=最新會員日期 LatestSubscriptionDate=最新訂閱日期 MemberNature=會員性質 -MembersNature=Nature of members +MembersNature=會員性質 Public=資訊是公開的 NewMemberbyWeb=增加了新會員。等待核准 NewMemberForm=新會員表格 diff --git a/htdocs/langs/zh_TW/mrp.lang b/htdocs/langs/zh_TW/mrp.lang index f52b8abeb1b..58bbdd4bcc7 100644 --- a/htdocs/langs/zh_TW/mrp.lang +++ b/htdocs/langs/zh_TW/mrp.lang @@ -77,4 +77,28 @@ UnitCost=單位成本 TotalCost=總計花費 BOMTotalCost=根據每個要消耗的數量和產品的成本產生此BOM的成本(如果定義則使用“成本價”,如果定義則使用“平均加權價格”,否則使用“最佳採購價”) GoOnTabProductionToProduceFirst=您必須先開始生產才能關閉生產訂單(請參見分頁“ %s”)。但是您可以取消它。 -ErrorAVirtualProductCantBeUsedIntoABomOrMo=A kit can't be used into a BOM or a MO +ErrorAVirtualProductCantBeUsedIntoABomOrMo=套件不能用於物料清單或製造訂單 +Workstation=Workstation +Workstations=Workstations +WorkstationsDescription=Workstations management +WorkstationSetup = Workstations setup +WorkstationSetupPage = Workstations setup page +WorkstationAbout = About Workstation +WorkstationAboutPage = Workstations about page +WorkstationList=Workstation list +WorkstationCreate=Add new workstation +ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? +EnableAWorkstation=Enable a workstation +ConfirmDisableWorkstation=Are you sure you want to disable workstation %s ? +DisableAWorkstation=Disable a workstation +DeleteWorkstation=Supprimer +NbOperatorsRequired=Number of operators required +THMOperatorEstimated=Estimated operator THM +THMMachineEstimated=Estimated machine THM +WorkstationType=Workstation type +Human=Human +Machine=Machine +HumanMachine=Human / Machine +WorkstationArea=Workstation area +Machines=Machines +THMEstimatedHelp=This rate makes it possible to define a forecast cost of the item diff --git a/htdocs/langs/zh_TW/multicurrency.lang b/htdocs/langs/zh_TW/multicurrency.lang index fc1db29be55..0cf54b67b17 100644 --- a/htdocs/langs/zh_TW/multicurrency.lang +++ b/htdocs/langs/zh_TW/multicurrency.lang @@ -16,5 +16,23 @@ CurrenciesUsed_help_to_add=增加您需要在提案訂單等 rate=利率 MulticurrencyReceived=已收,原來幣別 MulticurrencyRemainderToTake=剩餘金額,原始貨幣 -MulticurrencyPaymentAmount=付款金額,原來幣別 +MulticurrencyPaymentAmount=付款金額,原始貨幣 AmountToOthercurrency=金額(以接收帳戶的貨幣表示) +CurrencyRateSyncSucceed=貨幣匯率同步成功完成 +MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT=使用文件的匯率進行線上支付 +TabTitleMulticurrencyRate=匯率清單 +ListCurrencyRate=貨幣匯率清單 +CreateRate=Create a rate +FormCreateRate=Rate creation +FormUpdateRate=Rate modification +successRateCreate=Rate for currency %s has been added to the database +ConfirmDeleteLineRate=Are you sure you want to remove the %s rate for currency %s on %s date? +DeleteLineRate=Clear rate +successRateDelete=Rate deleted +errorRateDelete=Error when deleting the rate +successUpdateRate=Modification made +ErrorUpdateRate=Error when changing the rate +Codemulticurrency=currency code +UpdateRate=change the rate +CancelUpdate=cancel +NoEmptyRate=The rate field must not be empty diff --git a/htdocs/langs/zh_TW/orders.lang b/htdocs/langs/zh_TW/orders.lang index 05df173b1d9..1213c4f6bdb 100644 --- a/htdocs/langs/zh_TW/orders.lang +++ b/htdocs/langs/zh_TW/orders.lang @@ -6,7 +6,7 @@ OrderId=訂單編號 Order=訂單 PdfOrderTitle=訂單 Orders=訂單 -OrderLine=在線訂單 +OrderLine=訂單行 OrderDate=訂購日期 OrderDateShort=訂購日期 OrderToProcess=訂單處理 @@ -86,11 +86,11 @@ AllOrders=所有訂單 NbOfOrders=訂單號碼 OrdersStatistics=訂單統計 OrdersStatisticsSuppliers=採購訂單統計 -NumberOfOrdersByMonth=按月份訂單數 -AmountOfOrdersByMonthHT=每月訂單量(不含稅) +NumberOfOrdersByMonth=每月訂單數 +AmountOfOrdersByMonthHT=每月訂單金額(不含稅) ListOfOrders=訂單列表 CloseOrder=關閉命令 -ConfirmCloseOrder=您確定要將此訂單設置為已交付嗎?訂單下達後,可以將其設置為開票。 +ConfirmCloseOrder=您確定要將此訂單設為已出貨嗎?訂單下達後,可以將其設為開票。 ConfirmDeleteOrder=您確定要刪除此訂單嗎? ConfirmValidateOrder=您確定要驗證此訂單名稱為%s嗎? ConfirmUnvalidateOrder=您確定要恢復訂單%s到草稿狀態嗎? @@ -106,7 +106,7 @@ RefCustomerOrder=參考的客戶訂單 RefOrderSupplier=參考的供應商訂單 RefOrderSupplierShort=供應商參考訂單 SendOrderByMail=通過郵件發送訂單 -ActionsOnOrder=訂單活動 +ActionsOnOrder=訂單事件 NoArticleOfTypeProduct=沒有“產品”類型的商品,因此該訂單沒有可運送的商品 OrderMode=訂購方式 AuthorRequest=發起者 @@ -146,6 +146,7 @@ PDFEratostheneDescription=完整的訂單模型 PDFEdisonDescription=可產生一份簡單的訂單範本 PDFProformaDescription=完整的形式發票範本 CreateInvoiceForThisCustomer=提單/記名票據 +CreateInvoiceForThisSupplier=提單/記名票據 NoOrdersToInvoice=沒有訂單可計費 CloseProcessedOrdersAutomatically=將所有選定訂單分類為“已處理”。 OrderCreation=訂單新增 diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang index c11de47c88f..9ee8202b562 100644 --- a/htdocs/langs/zh_TW/other.lang +++ b/htdocs/langs/zh_TW/other.lang @@ -78,7 +78,7 @@ Notify_EXPENSE_REPORT_VALIDATE=費用報告已驗證(需要批准) Notify_EXPENSE_REPORT_APPROVE=費用報告已批准 Notify_HOLIDAY_VALIDATE=休假申請已驗證(需要批准) Notify_HOLIDAY_APPROVE=休假申請已批准 -Notify_ACTION_CREATE=Added action to Agenda +Notify_ACTION_CREATE=已新增活動至應辦事項 SeeModuleSetup=請參閱模組%s的設定 NbOfAttachedFiles=所附檔案/文件數 TotalSizeOfAttachedFiles=附件大小總計 @@ -216,7 +216,7 @@ EMailTextExpenseReportValidated=費用報告%s已通過驗證。 EMailTextExpenseReportApproved=費用報告%s已批准。 EMailTextHolidayValidated=休假申請%s已通過驗證。 EMailTextHolidayApproved=休假申請%s已被批准。 -EMailTextActionAdded=The action %s has been added to the Agenda. +EMailTextActionAdded=已新增活動%s至應辦事項中。 ImportedWithSet=匯入資料集 DolibarrNotification=自動通知 ResizeDesc=輸入新的寬度 新的高度。調整大小時將維持長寬比率... @@ -261,7 +261,7 @@ ContactCreatedByEmailCollector=電子郵件收集器從電子郵件MSGID %s建 ProjectCreatedByEmailCollector=電子郵件收集器從電子郵件MSGID %s建立的專案 TicketCreatedByEmailCollector=電子郵件收集器從電子郵件MSGID %s建立的服務單 OpeningHoursFormatDesc=使用-分隔營業開始時間和營業結束時間。
    使用空格輸入不同的範圍。
    範例:8-12 14-18 -PrefixSession=Prefix for session ID +PrefixSession=程序ID的前綴 ##### Export ##### ExportsArea=出口地區 diff --git a/htdocs/langs/zh_TW/projects.lang b/htdocs/langs/zh_TW/projects.lang index 2365c2b9d45..81804cf8dcf 100644 --- a/htdocs/langs/zh_TW/projects.lang +++ b/htdocs/langs/zh_TW/projects.lang @@ -85,7 +85,7 @@ ProgressCalculated=消耗進度 WhichIamLinkedTo=我連結到的 WhichIamLinkedToProject=此我已連結到專案 Time=時間 -TimeConsumed=Consumed +TimeConsumed=已消耗 ListOfTasks=任務清單 GoToListOfTimeConsumed=前往工作時間清單 GanttView=甘特圖 diff --git a/htdocs/langs/zh_TW/recruitment.lang b/htdocs/langs/zh_TW/recruitment.lang index 784c73b1a45..71b646c556d 100644 --- a/htdocs/langs/zh_TW/recruitment.lang +++ b/htdocs/langs/zh_TW/recruitment.lang @@ -47,8 +47,8 @@ ResponsibleOfRecruitement=負責招聘 IfJobIsLocatedAtAPartner=如果職缺位於合作夥伴地點 PositionToBeFilled=工作職稱 PositionsToBeFilled=工作職位 -ListOfPositionsToBeFilled=List of job positions -NewPositionToBeFilled=New job positions +ListOfPositionsToBeFilled=工作職位清單 +NewPositionToBeFilled=新職位 JobOfferToBeFilled=Job position to be filled ThisIsInformationOnJobPosition=工作職位空缺訊息 diff --git a/htdocs/langs/zh_TW/stocks.lang b/htdocs/langs/zh_TW/stocks.lang index 73d17373339..d28483b5676 100644 --- a/htdocs/langs/zh_TW/stocks.lang +++ b/htdocs/langs/zh_TW/stocks.lang @@ -62,6 +62,7 @@ EnhancedValueOfWarehouses=倉庫價值 UserWarehouseAutoCreate=新增用戶時自動新增用戶倉庫 AllowAddLimitStockByWarehouse=除了每個產品的最小和期望庫存值之外,還管理每個配對(產品倉庫)的最小和期望庫存值 RuleForWarehouse=倉庫規則 +WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal WarehouseAskWarehouseDuringOrder=在銷售訂單上設定一個倉庫 UserDefaultWarehouse=在用戶上設定一個倉庫 MainDefaultWarehouse=預設倉庫 diff --git a/htdocs/langs/zh_TW/withdrawals.lang b/htdocs/langs/zh_TW/withdrawals.lang index 6bfc7053a79..10539908125 100644 --- a/htdocs/langs/zh_TW/withdrawals.lang +++ b/htdocs/langs/zh_TW/withdrawals.lang @@ -149,3 +149,4 @@ InfoRejectMessage=您好,

    銀行拒絕了與公司%s相關的發票%s ModeWarning=未設定實際模式選項,我們將在此模擬後停止 ErrorCompanyHasDuplicateDefaultBAN=Company with id %s has more than one default bank account. No way to know wich one to use. ErrorICSmissing=Missing ICS in Bank account %s +TotalAmountOfdirectDebitOrderDiffersFromSumOfLines=Total amount of direct debit order differs from sum of lines diff --git a/htdocs/langs/zh_TW/workflow.lang b/htdocs/langs/zh_TW/workflow.lang index 2139dc0f143..0c32f533241 100644 --- a/htdocs/langs/zh_TW/workflow.lang +++ b/htdocs/langs/zh_TW/workflow.lang @@ -16,8 +16,10 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=當已確認裝運後(並且如 # Autoclassify purchase order descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=當供應商發票已確認時(如果發票金額與連接提案的總金額相同),將連接供應商提案分類為開票 descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=當供應商發票已確認時(如果發票金額與連接訂單的總金額相同),將連接的採購訂單分類為開票 -descWORKFLOW_BILL_ON_RECEPTION=Classify receptions to "billed" when a linked supplier order is validated +descWORKFLOW_BILL_ON_RECEPTION=驗證連結的供應商訂單後,將接收分類為“已開票” # Autoclose intervention -descWORKFLOW_TICKET_CLOSE_INTERVENTION=Close all interventions linked to the ticket when a ticket is closed +descWORKFLOW_TICKET_CLOSE_INTERVENTION=關閉服務單後,關閉與服務單連結的所有干預措施 AutomaticCreation=自動建立 AutomaticClassification=自動分類 +# Autoclassify shipment +descWORKFLOW_SHIPPING_CLASSIFY_CLOSED_INVOICE=Classify linked source shipment as closed when customer invoice is validated From 64d08544b29323dc86b19303fe21a4cddac0aa1b Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Fri, 22 Jan 2021 09:09:46 +0100 Subject: [PATCH 025/219] move of function showValueWithCopyPasteButton in function.lib.php --- htdocs/core/lib/functions.lib.php | 39 +++++++++++++++++++++++++++++++ htdocs/societe/card.php | 37 ----------------------------- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index c146f1f9a47..dcdff379cc0 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9231,3 +9231,42 @@ function readfileLowMemory($fullpath_original_file_osencoded, $method = -1) fclose($handle2); } } + +/** + * Create a button to copy $valuetoprint in the clipboard + * @param string $valuetoprint the value to print + * @param string $spanid unique id for a span + * @param Translate $langs the $langs variable + * @return string the string to print for the button + */ +function showValueWithCopyAndPasteButton($valuetoprint, $spanid, $langs) +{ + $stringtoprint= ''; + $stringtoprint.= $valuetoprint .' '; + $stringtoprint.= ''; + $stringtoprint.=''; + $stringtoprint.=""; + return $stringtoprint; +} \ No newline at end of file diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index b25b7bf73b8..0014e4b8ebe 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2939,43 +2939,6 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; } } -/** - * @param string $valuetoprint the value to print - * @param string $spanid unique id for a span - * @param Translate $langs the $langs variable - * @return string the string to print for the button - */ -function showValueWithCopyAndPasteButton($valuetoprint, $spanid, $langs) -{ - $stringtoprint= ''; - $stringtoprint.= $valuetoprint .' '; - $stringtoprint.= ''; - $stringtoprint.=''; - $stringtoprint.=""; - return $stringtoprint; -} // End of page llxFooter(); $db->close(); From 76ce77f7ba93867aa7fd61116be88769dc17837a Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Fri, 22 Jan 2021 09:13:04 +0100 Subject: [PATCH 026/219] stickler-ci edit --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index dcdff379cc0..d8a1614cfdc 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9269,4 +9269,4 @@ function showValueWithCopyAndPasteButton($valuetoprint, $spanid, $langs) } "; return $stringtoprint; -} \ No newline at end of file +} From cf11f356e8f8f0f64fa52c0d33d2aa45c2cc0731 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2021 10:51:47 +0100 Subject: [PATCH 027/219] Fix load of data are not complete --- htdocs/contact/class/contact.class.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 367a2e7cd62..68867481975 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -1631,7 +1631,8 @@ class Contact extends CommonObject } /** - * Fetch Roles for a contact + * Fetch roles (default contact of some companies) for the current contact. + * This load the array ->roles. * * @return float|int * @throws Exception @@ -1642,12 +1643,11 @@ class Contact extends CommonObject $error = 0; $num = 0; - $sql = "SELECT tc.rowid, tc.element, tc.source, tc.code, tc.libelle, sc.rowid as contactroleid"; - $sql .= " FROM ".MAIN_DB_PREFIX."societe_contacts as sc"; - $sql .= " INNER JOIN ".MAIN_DB_PREFIX."c_type_contact as tc"; - $sql .= " ON tc.rowid = sc.fk_c_type_contact"; - $sql .= " AND sc.fk_socpeople = ".$this->id; + $sql = "SELECT tc.rowid, tc.element, tc.source, tc.code, tc.libelle as label, sc.rowid as contactroleid, sc.fk_soc as socid"; + $sql .= " FROM ".MAIN_DB_PREFIX."societe_contacts as sc, ".MAIN_DB_PREFIX."c_type_contact as tc"; + $sql .= " WHERE tc.rowid = sc.fk_c_type_contact"; $sql .= " AND tc.source = 'external' AND tc.active=1"; + $sql .= " AND sc.fk_socpeople = ".$this->id; $sql .= " AND sc.entity IN (".getEntity('societe').')'; dol_syslog(__METHOD__, LOG_DEBUG); @@ -1660,7 +1660,7 @@ class Contact extends CommonObject while ($obj = $this->db->fetch_object($resql)) { $transkey = "TypeContact_".$obj->element."_".$obj->source."_".$obj->code; $libelle_element = $langs->trans('ContactDefault_'.$obj->element); - $this->roles[$obj->contactroleid] = array('id'=>$obj->rowid, 'element'=>$obj->element, 'source'=>$obj->source, 'code'=>$obj->code, 'label'=>$libelle_element.' - '.($langs->trans($transkey) != $transkey ? $langs->trans($transkey) : $obj->libelle)); + $this->roles[$obj->contactroleid] = array('id'=>$obj->rowid, 'socid'=>$obj->socid, 'element'=>$obj->element, 'source'=>$obj->source, 'code'=>$obj->code, 'label'=>$libelle_element.' - '.($langs->trans($transkey) != $transkey ? $langs->trans($transkey) : $obj->label)); } } } else { @@ -1722,7 +1722,8 @@ class Contact extends CommonObject } /** - * Updates Roles + * Updates all roles (default contact for companies) according to values inside the ->roles array. + * This is called by update of contact. * * @return float|int * @throws Exception From ad2f5ea7c141f80303d29ed6a31a52803eee7569 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2021 12:39:59 +0100 Subject: [PATCH 028/219] Update website template --- .../websites/website_template-corporate.zip | Bin 2150595 -> 2150467 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/htdocs/install/doctemplates/websites/website_template-corporate.zip b/htdocs/install/doctemplates/websites/website_template-corporate.zip index 473d7377fc2ba876562a4c90f831c8ff5ca1cb6b..dc0065bc12c8d83013f444f15f8af01ef88f266e 100644 GIT binary patch delta 11263 zcmZ8n1zc3k*WRVOJ9aOUN(<5{h$5*Nq@<)sqkyoKAYH(X(R<{Bm_h{ zzAFpw|9jv2`wjc-nG?^PnS1xnVHz?6;0+l8a58N*Y#buk->b(^>~;(p8_wyc2sh^Q z!DX_)-+NdK%=O?fm^2pXM8t|H{Oklj?JpL_+QvFXalE)q7||B41*S8=5I@)u9}YDv zv>`sWN62YEI1-KBcIs55nkN;duHAatw^mq0ex|KuIQs&rYW>crT0ry%)v^zliBME@8Zn z$vRrEjFCSFBMmiRLSd+Zq{d8`WTQuonf5U&BY4=132MyfVKbJnGd5O4th;9>=47lK zr+&aNGFCxMSUhr8G#)u3Is+3R`4fVaiuCU~?5`@Z+?IsF=+Py0h+P5{>AKIkHqk^&^&IL!6!2O{5 zGDVa6v}Hn^Yq-S~T>GUJD0Tec%2mN{?iAN<{CG=s(fbEO>K9p`NtD;K^`(X%Ex(VK zHZ~-gaNmAZ;2FsQ(nTb2(~`DZXJB zA{Irc)23cVq&64|3FCd%T`nur7xb+Hi?cHG_>QMh-}XOt%sc(`dQwqwlkP_OwJ}Do=I8vsmnnm z=^qa1o0iUQft$cn!S}dskGD$<9wnRToc<1R|=%nx}t`uC~oW@Yrs1$T~)it zK5TP4Wyfp!bM4Xw->7+}{2E_)hE8VRsw}nXXzFy&=Qb z&guKk(LFCSKBZ6-3&pfYH?jl7Z|3~?pFK{;4nZtN+OT;&4Yt#Ou>?MttqCi&n{eT? z64k0xVD+_52{-8d3U+lO*ioH{{e2H_8O+bqh79DXO;=UmIl{)=Ig-lnM^km!cd!JF z8E1~TsZd6HUkSeEo|R%)rYGj};2rs-iubO&l6Se4lWvdvh38M*S_UpQzD>E!!$v z)>WF}HvOHtoM3Maaj>0uG%68!kIyz6#Z^l zb|K&KHGi?zh4HOKJF$isB_w`(*xRO!U)fXc(q#X`StEKRbW|%JhW~=p?8-G&%Ss#1 z0t=k1jZQtr$fxUMPYTDOc{)z$Mo4*;K@=klR{ciOBXIw0-UP8NgLZ z%n(s2`uiD<;C|4W;gVbuKq@O!gJ3+A8B>;j94lYHDmFnCVo|MgPpx;)?dcr)`W>Yb z&y0g_ub$`};gG~j<8@B{$w#m&ZhIFT90^uUeE7v*eXw*m@%z^YI|CF$)ufWzxX|!i z9K6dtzu1CEBBW3*i2Ko)vr5S)LUN9rCeo2`C4~KQiKjH1zdgfK!WYjU5qY-;6 zV+f}AAf(9%_!50M`QjMC)*>9q1#qDU!O37|-p=P&msI&g&sTqN{3)VlM@ud67YiB4 z(Tli2&T5)^F^aaaF{SRJwPWuB=+%q3495pQ_9E!9_L#tyUc^;+DoE6a;Khr(VoyF{ z4@&nT5O8i#zYoDh>4{(LQ@8TS2N8~^&7$k zo&_#`L$LAin1}8TuAVl+n&%rhMZ!Q~60PwSPQ`a%|cJzrOUg*uqmU zNsGAWGh1>c&lS{4ngXfZIA~j*44-^w;~a@ahU`>ciA`i8TWIpQw16y@P^ymdVLF-l ziRZnyr?zaNY8iWJ^TxdZ#srQgLMQ*JOj|WkBF*uB&OG@CYffl2z=p90AnK z-HGJc>TSry^gil;kPOwC72iO^6Ye{Z#8U|fppP<}O$ z(El~98OwDJ+bg<$m+R(M7mt7MS~96WcF0R#4K}2B)th8I+7;lY`n$Y%up)x*8QqQN z&z(n)=x$u8t{6av%8?l?6y9VolQ1ITi`8d>)z^brp)o%Qh*4JqWp=_^hCHs)sF;R7 z=dd-Ivt2tL%&#rHo%D|L8IvxX7OiUhyL*g<+Iyk}G#>Y=Ek}&0FIodNSy@JQCWLY` zH-|L)L@#vbS$}1m>0sUBzL~&CpYLv>%1%puVN+RYIyqQJStp;z@*|1xuIaaBU5(3A z-_-=Nq$YcGO@cE~h1W?xhz^iFP`2Q)&gIdv8%9?skUtB0n*01~=^cxm75{8ylcsB{ zvz+)2wO2FNygtpi8Fm&iuwPGku>A~GVd!})WZJ3F`WMliwQX04zBelS-hOue#`u=B z=rtjb`kVe4S`C*f@BU0fquV(~Mi7ZTgb(HFj8epQTxD4PD}+cp&6b5@$oIHCDB z2_^fry;nyW)sTVa&npkIcXI@kolrMIDH7$TxD8qB|hms)hbd6FBDwr zs0&;xP_et$^WM`72`iK%fs$CE@$SmznSh-dInkD*%a$N}Nio(n+r9L0RKeM`p$nvf5@g8uy5d}(fD-HX@ffva${zx_U#FODtX!2e=(EPl zOSr;yBo{6$u@zgGv_6UHZv#&5q7)t%UoQ=O{4$`>v{xxjc{`>v|LG+Ojv|IXzv3Jr>&ZjkSx7B}pHL0oBhrWQzazd&u*vlPu&YpE z{$jS*FE#_~*WVUZ_obtW_oykQvygNMftuEQY3^jJ`k(DPY+|=?jkAIcFG(3!+&zj_ zb(8jra`U(C|(Ykk!z3y+uK!L0w95+%sEt77^;II!w)0qUH)~t!WjKkwI<4g)OD8i6{ zbB5fbNfAqwE4=Dp;^#B2Ah!xqJ~_Kscg7?oYj+Kc1mISn-M96_c;H5awv`Jc)UCLU1O_kl#Mqp1^KwZ`XY&fGZ$~|fgH&1BdpMe8 z-$`p(0~QY_aN^qz9qA2!runK@$7GWERrAhV`@YqQvg~CS*GnBJFv)^l>9tV8x;m#; zv6QM@yuJNHQdB)l#+|(5%Z(}Jr%ek0qp~RQO|P;+@|NkdI-u!6@lqt|#FzFQS%%Sx{wH~;fVb8utOM#3b81iCEKuOfgyas1(b2H_Hw=$Z zk*Tp8p*98{BlgV26W(pF4-bTzeDfw3ukj|vfAK-5a!rwLN~)X3`Bjpdj`h?FJEk}{ z)&QgX%@Wfc2tggBJ9nJ6Sr#rewoZ>cI29shYTvubEhGvkBhBRTTuNKT#_K+8or&^ z*O0=|o`FY+4)*+^9zvTmU-a-ArZaff9J)HmE)PZ34Uh30m7$a96s%-J>I36dbf0e8 zm@dIbu-NNgnr4~_6<1oZPRK0J9wlc9zN>hQb1Z(@GAn=p)@_*l9e;`sD?eh)^r=ds z6)FWaF8OX(*m_e<{#t1%vnj*lteLweu1`O{b9r4*%S96qPsiAP$HWmkO)Rw%FG9v_ zv;F3)p^GXOHkzsYN&Psndk?>+co?2i#JLVNHdq*|IAL ze>*zjtt{LjGi|nbgtwjNvoI;?!!8oa{O`+G4N)_OzLASm^Cs$y>_UI4Jl9UV+G*6^ zT--6?Ii$XQ_wt^kGy?5B><~#g@#ua3+l?Vxu|-ehjiNOLnr_cUqc7YSM_(4p+P5d! z=sZ9le;vPP$tF8f2ir_O`25-Kf%Cv&F;AAYkc9TK*O#iLrmbUv#PI8J2k(}4i@tn1 zv`1;8e!6}8C|Prqyz3A;meKPTPvRzzD>Em*&MOw;KxSb9RZ-j)<{zS2QkC*ch3&Q} z#~HhYpl){0E^9~cP}h_l`uCp`i;3Q*F6(DUM&SqZIj<*e$D@Td{q>@z+}`U&k@k81 zRP}hzy}0Um*XyKQ)Ay6ABg=1Ri(NU@!i%DQ^Qf11ANs#o?L6|HmCyHg*sO^%exyZy z+l$haH&AXZyfVeKjPP5dJN}P}UUX&7x9>r;4Xg9^x@l!Tc)mUxVgsM{@6_j`!LAd^ zw;TbILEZkiw-iU_)bOpb2t4Zm3!J=t#>zP3u*Vx>_w_!qcyH0@&0m?l=vnjIIP?Sy zDw7eP*2xG?>tx_OF7g-Q--?7^%k7;q5S0SZfm?XUuG1GMkqj(J2I$3UiWM|{grq~y z;UjqoPJ6VNEhe0BVX!Ka(^o3A2n8|_7gOY@qD4yJVc-rkl8*obxjB$;a8FGaBU7HU z;=y1_vGN?c8)Fs344F0AHFTn=uX_SRm~&LkGKUkjbY)(B2j~he7x3 zkY`1z`;U;0XNnz8$Vp81N9Qv|H0XjXII9n;c_IDrPG_a_F5;vVJ>-YfTSV3KWMFYc znzVk?3;S?O7+{il9Zh8@ZX>a=_1cOgs1l3#%C$eagQO*GST|Wwcgbavl4sa1VGUNG zWL|#dV3t(Oeo#Op6ww(fmj0PfwBNxgE32T|`eB5J{nZ5As%{e7rCn`}{Sq;H4Qrh_ z5H0fHsc^KBGRd3nOISUPYCAVjNq2XYwyEFaxJtcgzY|OGQ&HCS9#>gsY2mj&?>jfr zcl2zc=y~7#8Af(X_!QMn@V#u^E0kwu(x|U^g*+fG2Cpd#DqBQ|y%$Tb>D7!-iC-Xg zFVSg;v9F&QdArdn_5;596TZ}DkM&`jiFJEKM?RhIAZ_GwPJgxSb+z>8#VD6wf=8L` zqz6{i>V~YrM~qm1Ec`t3c-U9$yt$<_s*I z%~y*~L3K?c`W*ucZSRapg0MAFUyI^O)GFbN*Cz~2V+>g+mOc1WEjpQN#}YrUo9ODu zNA6PIxH)~j*T<~ShvwQIp(yHOh}s^5wH3i=9Igi4a#)rpj(h&LB~2GQ1{Sv) zucC}L=e%2YqG~m7%i@_Z24uYX%!HRmbYt+~g*I`kucWMj<1}9)wM88&HT{up3|A-N zWmCgWGkZwXP~O_aD9l}PJmeaw@1+$@>*86Kk&`IQ-5M?_J3*g|E=5CF4 zqSPp~&~#=SvSfQqHGcPK>k(Y7;Gt$Tzl&!PJeNU)yEW0tNxjHYGy2L*R+7or)Y<&^ zT!7g%ImPYHr4cMzdsI&<5HP=G5fFy9){MS3GYy*br2=uy*MvuNCEGYFxV$(ftCkNS z-2{`tRNx(?imfherx~p`Go5JhEfuJ0z9v#vAldduPeY+|ltfP~&x-g?iH(cDdP;vB zslfL#NyV~=Fk^ow7yoc(`X=jT6|GQqjrJEM&l|I|jTKSuDWp+4@_6%%etWa^GT+j> z3OpDi-lhgK6g-qEdUjbML)EI+%kxPW9}>0qjOH%z-n^f~<1ty(P# zlVQ#0il6!%Rl@HvxF-dPS=ZG^+x(6ZxgNbbm-LoW>L;ay&c;+X&n`E?=kDe|o%%Az z4+6f4JlRlMN9oq=l0;50swdY9-}Duh@l*Yce--7Q;k9Dkz13v?OC&+Im|h+>?%d4n zV5XIBcjA%z*q_V?OT&n7MTF>p&_7~yDBUKkg+;tXHjXYz#?oy@N6amkPvd*;Vo%;w zc1{~J!4aYVT49GQHGR~V?i)MmMu#xRFxFR}lVm+UPN0^ODjB7A8AaU+3%Yq$xCz8; z`@M4c5iaAkJL>u}n~A05Sn`Z`Wb*@oDOr}YON{5u4)Q#XuV+zF-bF1 zP1jbVQk41rQigFTe3JKPl0fTiDOsfgorpGSTlMsGh26HHS;A7T7|QIFIPQT|WxN<$ zt#p#&=4I5qKb;pWgwxX5dP3;t2updiw1C|^ahrk3FA0v@#30GV7&Z>3cW)lD@8 z4CJErEj0FBXo5!s(}KJzjipGBlxs>JPl;}-v6n#{u+rAR=305bDdydr{&k0GP?Py; zk+DA7ooP3RQsn0r30(7!ntAOjg{d~5CDCyxoXsM{6!qaIddbHI4!cq~c90`0E5jzs zagf6teqlmz!UTY5r@uV(O2(^sYrg-sG4-=R4@ZkA-Yy|l>U^SRy=1R&TA+KVd9tX( zLZZ(l;g*lYm44<-*e5uC4%1M7O^mse4Z%{R4OVviUwgwUfmv6`{&bQcQ*Y`P)ZbZR z?T2QmWlJZd;)zlD+ejOdZE76p5lF$K(p-vgPq{_Zucux3=#JS(BYNjbbEbe}97TsI zC_r@x6adx+1$h1ZZ-DVCf$=*~0O&c8wgUCbOh8VaWtr=XJKkpPe=*|f8I-{#nJe6? z1-9)$@L&uO(_K z$@dC>V3vqr>3^{baZt#U&J|vVZfv|r)RO37ibQUIQ1nXT(1$d2Y4TsOW@g3pA5V{ z$&yWJ9)3fdI9x}plu(Lpn&y#SmV-MDI9y z88%MrmdhfhKYkt$F}I#w&}31m%&YqFZfr(yt$t+HiT=sVnr35-UxTz0!CQe}+j0(3 z{pHM`&@EQu@srX{BoQ)`Aq_WnywPqxUNWsl4Y9Uyi5Lru$ zi~BTycrxozBlU3ku$udUvTu3nr(ib~pN9&OuQq>|$;f@*ac{DWL(1{Y{uKAnqsz;G zBL{rRGP-r4qT!(yJH-wmAdRj@`E=Bu~;)bT!z+Od;FP|nH`sxaF+ z7CcbcPi%O-%`!11In3B|lpB{xEi^%r2K)JF@o6&h>i~Hg$(Lt~){8jWR!TeL9H!bK z0xM=KIO^i&+`g5}(muLv2S07sCnBmh*4f0Qj(AMD~3C z*58Kz&WH7NQ?ZT{o6~kfgvVqJoKNU=>Rx zFvD6ekP$E+>f0F`rK=T*hAmLiSn^8Y7sw^F{PzC!Zq=Q+e{<_Zu;r%vSdic1gs~zH zsR_2bx?UOQn7s}TDQeWP&oC50dNZ4^?(#)zn;4}NSta{2Ivp7r*^<_#3kzMJJ(xm8 zLa?oaAEfAp^IH*UGVOlg9_LHSw|_PgRl@#({^Pw+LKoaT*8J^J%al^O!O?)&m6815 zwb9ahbc0zb6#{CpT+d9Y?JD}%4WF2H2P!wMtM0bb1nHbZUh6Zg-OI z?U2`2GXs%Q*53?ms@JhTX6q$y6}T?e z3zh0VcqV2iZ0|5b$sa4J-&R<#NF6KGiI@GRFFZ=)eT8V7Ga&1XNB)8U&zqKzN}xou z^P(D~J!i}8D>4*=im3Z>p95vOxw1Qb^`@8b1z}!?gX!#pz;@wC;;)-`gUef#_%4%a zxX6E{6n<`|SRU2h4G^XlaKy^vm_}DWzEzs}m1F8YD-HW1EZwo3!j|$!rE4TyRCdo6 z*bTRII>wf&G&8&V$gTGQMNn~EhGT%#g+B&l`|h~m^^#sFr6%`|Yf{x=t$y*W^MXt5 zf9Bru{Q-}{+i`goa6ebSs~R_b*Gm4tj%)cfR!Nceh*8v9!}T@W#p0r{<*Wq*idro# z)7P)~8wr1eb(6>_K3SKrtDe`NExI6omnL#$Fsv~&YAuX zL}T{4De9A4!%=yywY%=2>)ANgO!M}YhD*v~AFqETf5@)>MPHNm{^4(+QLVeyou5O*D{1*J~t)b4yn=N=%4Uv9TM<=};c?F!*%z@u;;> zNnI0v96PS=&c43Cd#Jasyo0>%aDMCsvz!0o8wWA(0;uDvtLICLfZh$RvjdM4TNE| zlV1b#rwARG4UnJhufZH(7SoN&1%6?=o%4WK@Ke7I593BAq2j_NeoS%U%3ELy!wuvw z0)#P!W<`KF2Bj4NS21X&2++nL@nS$7gMy3CWn;y_ZH!E~1h|JmVI_bL22Gco>xq>D zcQCTZ(sPU1Qs5RwCRqk(p4pZG_c3U`>|9R<4H#f#DQG|ygBH<%9tK@2KSx>RfG$RM z{14KvIA>K-ajr*Mc`mc71ny!i8Y=;P47yNtF7v87XVvu&LVgBJFnR%>&$;w`KFp#8ywZ=7EaZG21c*`A4FYq?#28cR9thO1H#&Kepa>T<7lis&n`n9 zAd2y)T?fcx&_o@;1b(Ok7(t49fDt3(uLqd0l|LcCf;y=1WKs{%BL8(fCLa!?JU!HP z{^u_EvK|0r|0$3*PDhC7`0L-Z-ux1uD9{M-VBF|80!&!_{Shh zD6~NXqWPDnSzYj9D{uirAgmQ4kOt@qw23I`x0o>OJs7$JzZ9 zY#8-Y8~WwJCjYMz5%?QYI$bEI71AB()Tb4}e^yhp9}=AMLo)IH_x?}y4R&}=3WLqF z|2G@YK;O=@Y=}L2vT>dbh~)pfu7Hi5=i~a>35|;$#O*p4@ODA7bo2rMwL_q%-QS5n zP1^&7;-zdTZN5<0e?MW^!HBN2p|s~}n7)%-ubUMX~{7~TpKbkKT#M{O@LQy;f4LH#jfjMq6z>p}& zkO&S9yb?nqglF*4JUA4IXgP9v;g+#(&KVeN=**GRl8)zy+A~KwB`>oPH)(Kir5rIr zgoAB$2+Lyyu@QteE=o|yC;}Sz&>(;YAvB0eLPm)*0&(F)Oh{UeP!Qad1RAHHK?)5r zXpon{O)2!h;S`P4DJ5}n;?*hX>~OHCl=3QY#P*5gc(4SNDdAIKyB!b*ZqbI3eFvDtyW#^DMSVd?y(gY+mNoT`EqHp$s4|anhsmlEEpi zzoH5y!9h$C)t(Rz`t(rEQ{$k`4ApZ44*s5}BIi1SL6j8K(4c_^Ei~w$ak_+(f}XAb zr-`nnFV4ilDXTM^yhjimczNakCmeir<`X3jzDhrn?23buObiuHM=F+AAfuS=(g z4N@xa4;HON{PH}UR502O6|!VYznO-zHJy$=Of@Z5xuG3PyOM7oXo$x~@p4YdH7 z^9)_0-9_yd$`ZZym`}Qa=P>H0v|c$bk~U2)uWao79+?i%LQ%*i{?v+y=A zmEtDX0e)Hr4@Z*&R!u1D{0DN67gw|G;9603cWDx{z?=PkF8b7ptbX>%j3zmgFBzv; zo&*HzO*ZJ4eC&G&_x_waGspGZlT_iRo(Of|aBKPf9?c7!7FA(XglV@YbBypBhTt<9T#TM{S}O8L$YJYVzE6I*WS*}oerkUR{L81 ziO>-?;?D89^j0Lz7yBjYvRiNEY`)5= zsOTk1IWLE#z{pN!&owZ`Dv;Qwb06x9&VG>KzvE2@t4atJJvfyYY?RP=V@4%9n99-= z79mkB)WL=4C-SZ0tuX%`x}eFWAo@-!eHmMPK0DIg`hj)zN>TWSl#z&gM4!u|a!gcI z!G=hs&t~(V9&CC}ITZ*eb>v=BS!-tgprlv_dx^)&UV&LW6;5aTezN&gxObf+M>`FY zmaZk-qNNKQd|S!%pb)`;`H8(v=@{YF>itMR<0(mFY3Qd+N@WI^*R#I!(++yCIW3Z$ zngS_@=<>F&kH+RvW`u2t4b@%W;h>V{MCYFq6zYg~bNDU#O5|#<-c!R2(DhL!@Fw|6t;9_xuCv+KUDLHRM+Fi1Re)c(AK|Ax7X)7 zfrPvr)m!eXLRbxK04F=uGpmkP$NGQ=)zd#`(M!yWmopV@zv)EfI6y zXry-V0EyB6`lNZG&}%qK8I$@{d4!SMeJU*CkeiG zEC%3fAKz#m*oL^aR8OVTaF1|Y%L+@day=+<&zT=IzD7r8?^G#VtR5vTKx^`0nmFi? z>!P!96uUOr&CIm^_fjGBt<+1EDgEn}ZODauu( zebo9S+RW1MEU49mJPo%5ExM4>6y&@yKAgN!j9_yC{-;IoT^Ev*!OE(Bt-IKj3sd8&q1e2cuViT287T? z8w)p`6{%mz*m^zy*?N#%)Vm~wJ~hjBo@;N)1tJM)T~oo^J;)1q_$**Z4^o1iO3YKN zxS@=hJ1DMXUE81o_U2_4P?Li8`g+K-@5(N(cC9p^q_&j(M zi)16}FfL!Q>Nx-(VUZkaM&+qKUrrB^JC|oi>K!Ds~wcLBnnNqym%6T1ExA}a2bn~M5)-GVo$?b zh$16=wn^hggrc@PKl3K8Zs!!=DvP5#1uFLhlh{= z6Z()yLYWb*SELxQrVlv`&jRE7k%@3kPl@Dwzbyk}kk&)szxY9|uK=)>G zXx$qa06Pbf;&_jLg2Y2eBwV`$J%l`s2d^oS9YJ0Oa9{9G_mG@8^kEM_BPKIa3U;|BrWZPld8&NGrEN}Jzj?t`~xz6&HtUseApm8sshoX&sh>*;b@Q5 zgO!=DyVJ9s^Wx$qQE^pT4x{{@2eHeIF@}cYMhF#fzuVL8<&DBCw;kxsubAqYH=0F! ziX{0y+9k_%`C7|5YIS92Zu7g5tJ`mzufIv3K5~{?sJOm7L2!%rgo;c` zoK>F96Z%;ck7HI}Ty%o>laIcizEA>wfbqZt4WV%&E|P6p1knDD7>ZcAvJSG ziFz|geP|>55_Vr#(&fqz5mz!V5w;MP+}AHf1jf>j4NS=RUmN;yShyTJ@vaX>g(4Zb~NFeo>mMcP^ zD>-A%K3zjJ(qim&{TB($v}mqsQ`tUSp19RYp?08G5t;V9kPzr*TL^tcil^r}YNWqE ztdm-CG4&>yVpSKBKHlWr?b~k(^YQK0cV}0zm;F=f>0Wcc_D{g-Sdur|DzTq4jWA?h z8H%}BB`q+G8Om0YboFnvfrYc_I8!<<%AcKnHFFr-uXt-+CH~&qhpU=h+lC%@-z9YY`K4I!p9nI<~#_5pQD< zyMc1OgQWz?6n#nCPlsz3h2}^7{?F8YsFog_ty*bzNJVV;PF(^D<)Jdky z#m{X80}}(iYOKu;{zhs zVlS2--=px_$U-kls{Tmk^vZPQlQ6XVUX$tALsZ;vQnTZ2vOBYdA4uN(ve9_{)Tw)4 z4a~MwQvxyb8Fxu@lt@pJzx2`R3;KrmMW#DNtCto^*5kd-ne?WTd0*s^b+BR6FI%Ji z=Mn{YhYPFWFQ#fZ@q?m5EaQdRW_s6?PF)|PB3J#1HvVrKseSQ zz_NE;1A8{WA`$Dig>_+!2H#j4j^mT~%^Y z%YtV4S=QOgUI=TGrZPCj;T?2`z4mb82j1LKcWAm`P)hZdH^jtL9v@Z_kc(00J=6J^ zYn*PFHGFh@BW}8?dcBa1{3`qQ<}hliXv$AuqismuAFs~3VqHw<&G0wfi*5#V7`ul1 zV|d8eD;SdH-TPCu;%!wy15%I7;sl9;JUN07&v_>*L^OJjc;)iYFYi87p#8K=TLsFQ zzA6$lJ#+73`gl@x$d5JEE@}JI-4{v5tz&xdO(K1Wq}}X%YV-SJ`rEDVs1rmOj6bCf zUQuWBADwI|`27^^XRsYkM0&4S{5rD;ah<e45K$7!nS*Nz@Mr+`MaN1gisYvH_ z=ZBf-K~}R`pQ-rHBxj@bLo~np9mD`prr|IJ(d1cpM&4U$*H-08AF%&%Rs)Ik6wevX zXCITaF$_j80w{r<1+p)WZ)2;u==@HfCrjrpD5ah|^*$TJ<2h(vpm?v1XYRoj?XG)M zd!bTlt{Yj!Uy~jKKQ2AsrM>g&qrShDG5cr;6Lptt@292j;nmz<2t2pFoU5rJe-e6T ze{M))Z#;D>+M<%9ZYnW#d~ISpVPb4TMLcSw{a|)%Cbj&{puJCcEN8!cX~mxZ>igEv z$*$)r7!g%Tk<+Jn44%ml=`fRK>p2ts7R%796-Uy+T2^U|RCC zw$gj=kip&CM>NrUAMXC>2g~fwVNpx}m68Q`Dn;Rf$+e+2;n#+fG8K9t(|ziJmQ{j9 zqTqLgeyFI!;q$`QvX_h~V}{$h0BvMnmd@ADNEEGxoch| z+V7xV@S{QIkp6AF&Qi&3@S0SESBrLBfZpylSa-=J7`4R*b}U<&>aj`48jAhyUtbFd->_6~JI%83Aem_ZLzI zA!^~MaU`6KC&>W)g*3?u^4p>4OA3fkJj6#jB~z5BHv~BN^fXF>5C`j-QM|_rTkNQ; zV})dHl-9ArcL5X)u8RYb2%^5?;;jjyCUN#yA=HcGCXbB>$`{v_0#{^F)42KGizvKf z^I+s8PeCUEv%&Zt@3w7Cl^|G1gR;Dz!hB>BUGfMyh1TJpvZrMG}lSxx>rKXe2(7d^YYAlPS?z?q zCZ$F7g6Fi#-w58qu+6#F(=A^Vg%9Y_=T9w#>h{MBaGC4n@3kdIhg0^YY1z7T2a4VF z@syr^d@9G z0=uXO!%uuQ8eX3X151TrnC5|7~V%XZG~B(+tt1tlm1^ujwq5pNYnS z#MjFJcQESGUa;!kH9E{Jx~r6nf7UEHfz4WrUPLcfAmkhMVD@m_HIWE;Z5`6El%3vG z4~`P8lxrIB*vrn+u(cL{bT+bOg__}f*=1)h{1^V4PNNrvZRCPe_sN(B+S0wriiGi3 zTKu`bB&b}I#gkV3!Qg8_=AXKGk0Jg%aC41akqVS6t23Qxu#TJK0B2&CpL?&p zTg$W}z3qR~#Xt9t>V<|}Nd?Pip=K|PT>O`r&a~s#&2bD^iNXbKh0TZJ6Zy2eGulan z>@~H-N=P&?r;%q_8xkgD9j5Vf+2e`8O;NR7%Tj_DAMnS zUSf4~79ttWNYm=*jpof3m>*ZdrM1OhYudYm)DM_Em_AxvZtB%_8J9uGD`4pey;b0H z3ce=NrwJ>s)-ej|n+#eo4JQ+jDrK}^?qE?U2CXtw7P2l+sy774y_rk`)-N&-2-|M# zc#+@f9K|$H)|ef96_#+fx?qFXbPnFQj?dMOB0eDTU;Pjvi#-!j*?D`r?an^T@e5;8 zMX;>ryMy`HWh7ENBqDAf@;lEhqlv}t8F*#zAzenhw$=4zHe>ppX$|$hE)emIOI1qp zkBa8H4{V`{%bNIqsvF8|Ut}K>cH2Ny^SOI(T5e-zKDlRFeY0GcwCd_@sJ-|mKM5Gj z(pY<4?9t|gm=LzvXg2G=NW5>(AQ5we)*&SJd8QTdy$V)O#g%3(EwN-xq)f^a4u7{0 zPESQXRs0Q)8=L00g?-*F2G@sAiMvVM~{G+JrzT|c{n9)Tno%1>7HSt_B2h6+)$ZJN$Lb1?E(pbE~&;+Br9~7DiNFU z4gn2#@*9UWu(4WBVKQzfJ!<{_45-PZSY{jxvzY}mR<7X{ZL67eB>@ZM`#q|I;u~sc za$rb6<8INq8n%C7(qK1Ta8QeC*}Te?W^U1Ekz=f}--HF;l>Ae1-dy zpl0poU}Gs8Sc{Jh-kZn9vBek_qKO`XXEi?lchP(4Q5Up+s-fAE7QlY;c%3Q{Q!yyh zS$}A6LVFF-e&PnvCf}f|DspHS`L4zu-LuH(KUNJnz~D_mtTLY^KR1@Lr&{!}8Oybq z0abW2{^Wm5;F%u=uSR@bEpuw3ULZj%&>ZqGEwZkLVQ<7PGUCO50~>wi{Hmi4dTdHF z_tLRlT3c#MgqrLS2Wf~y7vzv^pO*Nu9~AzO%V)8Ojbks}%{J4|m`U)BW+&Ao#FlWM z1V3>Z)U1;ogP8iH8V~23ezgkH!?bD3D~*S-b+kQ71;%AH=Xwr$$O(HO)>fYQ!`QZ~ zCD-o*58#ONV;NwZBfx_3y1uz)!?d3fzL-hlvRNh{#e!v+L=!v4nn{t&D>u2)40DIu z^i(96?Pk}rl=CkThW{al|2Y_%KU4`{Ok+!v&LD}@J+faZi^Q^G8K5WdAp$bp)?mS^ zBCfcr(=za}V6`~s#@(heq%v^32hGndhGYJ0A1fBxzNW1k!JpiXnirt}yR`U~eo%lt zE+_z;0}2pEe-vP?%<%>k0D2L)7eMphT_G=2TkP-t%2z`v<4d`XbnqZnh40n(es!MaonLLmKhREc;Z!NCPjXr+*IT+DdMco zUi@c^6INrO^7fl#mdL=a-~Sq;$*fplreEUDB#}Xld+^-U&8m~+CtEP#iz1^?JeviG zYEo-7w92089)grisSMda4;r*~=CHG4f@609h=|8Quk72~!-K*rPTz}vXn0jrtW;uc zJTiAPvD#Xj+9eOJd3jfiNo33NkG~u3wK21v%hF_4LELh)HU8K%HWFMiJiW5gY@8tG zuYz1EQb^m&#TZEC$$p-o80|+6+((Bmi7YdhzQYnmeyea;soa+EmEJJ++OJ~u%*U#9 zH3ub#J#`guR}(L8VjlHlADJdwt$&s9s#W*s_>6Xu0y`adZ zH=2Td?B`hjuaynp!PM_>c=$hPWEA6;B2f6o@ z1|jX{lQ@hc|1WI%VWzDccX1~RmDh_`4T#qUziMIlbrLM7&Y|D{kJ0Dz2j5=iecwy; zpoV{S{*3Hr{PhYh>C@Udvbp0iF>*Ri!)GTs^6kWogaOori2J4B846JLnf%L* z(2;n#aOx<2Sl;Zb0T4+@6u3H#=r)I-rvPCq0 z%=S2?J;qDMa5qAd)3GXd@x3gU<*;K6Y*wDC`6{eUgrx1;Z3h?-DgoH7+vYuT^W<;o z;Z3}(9h0}fQoVZ{+4-~beevO;bFO)bJ;T%SgVV}gFtNK$FD(oT#>6glCAV|7r!RCT zE4R|{M)^n6OKwdF_gdNtHYjx~g&OiYkGI8TreGv!JFyBXPOz0OTiVbMvt%`@h^ilf zahx|kJ`>n`?wEWDS0F8I||9rs}&24_K)71Pa)h z^4)r9PFfLr&jzd1dzW4qlu|~l2GjSSC2i_A<*vCJ@<{(^v)Cggq zPp5{dcwu3IReBlAEanm7f_}NKM6?pi(|+bo^(zszC}cE+5km(3m(Wg2zKj)nnbb={ zmw6=V=^rW5JQ?z(yBWLjAy^dT(xXVb+%XBKu1S7>R-yKBf3Tzl_nW+#n0+j~?rCF( z@h)GjOIY)2?JXYx6%NZ;d*gW5ByGt?ry9M_m~T`+J)T}_OtD#Ql02KC%}f0A+Al^9 zKiX*J%^-lRXMit9toJqkeolZXK5I2C#TiAuvxZ=Ypl=4+m>fT;o3{fafBBYrZb%;g zFlnu$I}M$K_T@C6FA5Xye6LAZ-On0y_;jV|0kvd)LES#5(WlQcuhM@PBwhOio2~F2 zc;JQsrR`4tsnm*{bFOOy8&&&5AAyk!0~lmb};{yBxJSHi><> ztcm**_;t1J=tbkac#QbaZ@irEtT}8KbfT|)IP}{3eQ}drBzU>oD>9Fj&D5- z#sbzjBjq??9(OnuhzC+}M|7|+6$r&mo4*0(aMPM;0Oj$y+9VyA!A+}X0Bg8unM@$* z_}D&?1<)NI+kbul1aX?Y1%NmXSrq_^IFwfa;LhhDybw^w$*vWi$kGde>p0n7A)t#x zH;aH9IFws-tQY+e(7}mre>^dG_Yt^;lOc)$&12JI;1&+$7oX@6mH-AgnMDbpibDk@ zfF2G}mYyKHQs6dD*8C6R_;f- zPEVuagiCD2Nm{;D09v?N*~*i+VC6|NRx3{|q(1{1IK8lc(Aeh_FML%e=uy>44zN`x z`~<5{))8KPvI$?S0TG-(rW!!*|G6G>uLj^cb9_BUTMdp!2m5oK3wI?3G^zoZ5IYpC zpvikAJs4R7FyegW{gH>gNB)tcz{MJX4E3iI^3O$?95{>`^75Zg0!UX20J49S{v(9J zNdNhT3POc@NSN7u2Uimt2McExf&XFSR0~BN-9v)adq@VJe^3AOuRtakjNu=@e?TMH zT??Rb%=aN5@ImlQ9e}$d1!~kmf-j(T9e`&0L+?NRGN@1VmzxqI6qrJUVgg(105Y7n zVaOOkNQDB|DN&3dRsD$^sE3^9fztKBxue7=fR8D6iC{1LmOKS&YZv=Rb zlxC;9$u&q|u;0*ayuWi64%#;Y=Z+Gq9hd74^(c>;Z;;-9eP}MCz$-hl?j<;^4Y&>Oo9nb$26ukyH$gr z1+_p6qWjC!89fvT*F&8K_nJ;3CFhGG622dezHvnWuEx?Px zb{xeZTPJWD?gzea1~`uR{Ap00teF0Qe^+cU$oB<6 zAH@nXjCiRHl{Mmj%32n5fs~HQ<*2Lr69((DBK{YlIzJSc=Z9kYpEp3fZ_xe6 Date: Fri, 22 Jan 2021 13:17:27 +0100 Subject: [PATCH 029/219] FIX #16041 --- htdocs/contact/card.php | 12 +++-- htdocs/contact/class/contact.class.php | 71 ++++++++++++++++---------- 2 files changed, 52 insertions(+), 31 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 0726e2c33e2..8c21e4dbfbe 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -54,6 +54,8 @@ $mesg = ''; $error = 0; $errors = array(); $action = (GETPOST('action', 'alpha') ? GETPOST('action', 'alpha') : 'view'); $confirm = GETPOST('confirm', 'alpha'); $backtopage = GETPOST('backtopage', 'alpha'); +$cancel = GETPOST('cancel', 'alpha'); + $id = GETPOST('id', 'int'); $socid = GETPOST('socid', 'int'); @@ -296,9 +298,9 @@ if (empty($reshook)) } } - if ($action == 'update' && !$_POST["cancel"] && $user->rights->societe->contact->creer) + if ($action == 'update' && empty($cancel) && $user->rights->societe->contact->creer) { - if (empty($_POST["lastname"])) + if (!GETPOST("lastname", 'alpha')) { $error++; $errors = array($langs->trans("ErrorFieldRequired", $langs->transnoentities("Name").' / '.$langs->transnoentities("Label"))); $action = 'edit'; @@ -308,6 +310,7 @@ if (empty($reshook)) { $contactid = GETPOST("contactid", 'int'); $object->fetch($contactid); + $object->fetchRoles($contactid); // Photo save $dir = $conf->societe->multidir_output[$object->entity]."/contact/".$object->id."/photos"; @@ -396,7 +399,10 @@ if (empty($reshook)) $object->priv = (string) GETPOST("priv", 'int'); $object->note_public = (string) GETPOST("note_public", 'restricthtml'); $object->note_private = (string) GETPOST("note_private", 'restricthtml'); - $object->roles = GETPOST("roles", 'array'); + + if (GETPOSTISSET("roles")) { + $object->roles = GETPOST("roles", 'array'); + } // Fill array 'array_options' with data from add form $ret = $extrafields->setOptionalsFromPost(null, $object); diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 68867481975..b4555ba4dfd 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -259,7 +259,7 @@ class Contact extends CommonObject */ public $oldcopy; // To contains a clone of this when we need to save old properties of object - public $roles = array(); + public $roles = null; public $cacheprospectstatus = array(); public $fk_prospectlevel; @@ -856,7 +856,7 @@ class Contact extends CommonObject * @param User $user Load also alerts of this user (subscribing to alerts) that want alerts about this contact * @param string $ref_ext External reference, not given by Dolibarr * @param string $email Email - * @param int $loadalsoroles Load also roles + * @param int $loadalsoroles Load also roles. Try to always 0 here and load roles with a separate call of fetchRoles(). * @return int >0 if OK, <0 if KO or if two records found for same ref or idprof, 0 if not found. */ public function fetch($id, $user = null, $ref_ext = '', $email = '', $loadalsoroles = 0) @@ -1634,8 +1634,8 @@ class Contact extends CommonObject * Fetch roles (default contact of some companies) for the current contact. * This load the array ->roles. * - * @return float|int - * @throws Exception + * @return int <0 if KO, Nb of roles found if OK + * @see updateRoles() */ public function fetchRoles() { @@ -1650,11 +1650,10 @@ class Contact extends CommonObject $sql .= " AND sc.fk_socpeople = ".$this->id; $sql .= " AND sc.entity IN (".getEntity('societe').')'; - dol_syslog(__METHOD__, LOG_DEBUG); - - $this->roles = array(); $resql = $this->db->query($sql); if ($resql) { + $this->roles = array(); + $num = $this->db->num_rows($resql); if ($num > 0) { while ($obj = $this->db->fetch_object($resql)) { @@ -1726,7 +1725,7 @@ class Contact extends CommonObject * This is called by update of contact. * * @return float|int - * @throws Exception + * @see fetchRoles() */ public function updateRoles() { @@ -1734,11 +1733,12 @@ class Contact extends CommonObject $error = 0; + if (!isset($this->roles)) return; // Avoid to loose roles when property not set + $this->db->begin(); - $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_contacts WHERE fk_soc=".$this->socid." AND fk_socpeople=".$this->id; ; + $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_contacts WHERE fk_socpeople=".$this->id." AND entity IN (".getEntity("societe_contact").")"; - dol_syslog(__METHOD__, LOG_DEBUG); $result = $this->db->query($sql); if (!$result) { $this->errors[] = $this->db->lasterror().' sql='.$sql; @@ -1746,25 +1746,40 @@ class Contact extends CommonObject } else { if (count($this->roles) > 0) { foreach ($this->roles as $keyRoles => $valRoles) { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_contacts"; - $sql .= " (entity,"; - $sql .= "date_creation,"; - $sql .= "fk_soc,"; - $sql .= "fk_c_type_contact,"; - $sql .= "fk_socpeople) "; - $sql .= " VALUES (".$conf->entity.","; - $sql .= "'".$this->db->idate(dol_now())."',"; - $sql .= $this->socid.", "; - $sql .= $valRoles." , "; - $sql .= $this->id; - $sql .= ")"; - dol_syslog(__METHOD__, LOG_DEBUG); + $idrole = 0; + if (is_array($idrole)) { + $idrole = $valRoles['id']; + } else { + $idrole = $valRoles; + } - $result = $this->db->query($sql); - if (!$result) - { - $this->errors[] = $this->db->lasterror().' sql='.$sql; - $error++; + $socid = 0; + if (is_array($idrole)) { + $socid = $valRoles['socid']; + } else { + $socid = $this->socid; + } + + if ($socid > 0) { + $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_contacts"; + $sql .= " (entity,"; + $sql .= "date_creation,"; + $sql .= "fk_soc,"; + $sql .= "fk_c_type_contact,"; + $sql .= "fk_socpeople) "; + $sql .= " VALUES (".$conf->entity.","; + $sql .= "'".$this->db->idate(dol_now())."',"; + $sql .= $socid.", "; + $sql .= $idrole." , "; + $sql .= $this->id; + $sql .= ")"; + + $result = $this->db->query($sql); + if (!$result) + { + $this->errors[] = $this->db->lasterror().' sql='.$sql; + $error++; + } } } } From 7e8d06e8b830ac59db27d12b7cf2ead3bac48ec1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2021 14:10:08 +0100 Subject: [PATCH 030/219] Fix update default contact type --- htdocs/contact/card.php | 4 +--- htdocs/contact/class/contact.class.php | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 8c21e4dbfbe..f88560159b0 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -400,9 +400,7 @@ if (empty($reshook)) $object->note_public = (string) GETPOST("note_public", 'restricthtml'); $object->note_private = (string) GETPOST("note_private", 'restricthtml'); - if (GETPOSTISSET("roles")) { - $object->roles = GETPOST("roles", 'array'); - } + $object->roles = GETPOST("roles", 'array'); // Note GETPOSTISSET("role") is null when combo is empty // Fill array 'array_options' with data from add form $ret = $extrafields->setOptionalsFromPost(null, $object); diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index b4555ba4dfd..075e44deead 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -1747,14 +1747,14 @@ class Contact extends CommonObject if (count($this->roles) > 0) { foreach ($this->roles as $keyRoles => $valRoles) { $idrole = 0; - if (is_array($idrole)) { + if (is_array($valRoles)) { $idrole = $valRoles['id']; } else { $idrole = $valRoles; } $socid = 0; - if (is_array($idrole)) { + if (is_array($valRoles)) { $socid = $valRoles['socid']; } else { $socid = $this->socid; From 77a43c51f9239e003812ee099402b76418b6bbad Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Fri, 22 Jan 2021 15:10:23 +0100 Subject: [PATCH 031/219] FIX: Accountancy - Search_not_reconciled --- htdocs/accountancy/bookkeeping/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 9c4142daf58..882c51f40c0 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -87,7 +87,7 @@ $search_debit = GETPOST('search_debit', 'alpha'); $search_credit = GETPOST('search_credit', 'alpha'); $search_ledger_code = GETPOST('search_ledger_code', 'alpha'); $search_lettering_code = GETPOST('search_lettering_code', 'alpha'); -$search_not_reconciled = GETPOST('search_reconciled_option', 'alpha'); +$search_not_reconciled = GETPOST('search_not_reconciled', 'alpha'); // Load variable for pagination $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION); @@ -761,7 +761,7 @@ if (!empty($arrayfields['t.lettering_code']['checked'])) { print ''; print ''; - print '
    '.$langs->trans("NotReconciled").''; + print '
    '.$langs->trans("NotReconciled").''; print ''; } From 5a95cc16aa6edd8c219b2b74c2f104bc87546677 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Fri, 22 Jan 2021 16:58:47 +0100 Subject: [PATCH 032/219] update clipboardcopypaste with jquery --- htdocs/core/js/lib_foot.js.php | 22 +++++++++++++++++++++ htdocs/core/lib/functions.lib.php | 33 ++++--------------------------- htdocs/societe/card.php | 2 +- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/htdocs/core/js/lib_foot.js.php b/htdocs/core/js/lib_foot.js.php index 9f4e69dcadf..66a57502bb1 100644 --- a/htdocs/core/js/lib_foot.js.php +++ b/htdocs/core/js/lib_foot.js.php @@ -210,3 +210,25 @@ print ' } }); });'."\n"; + +print "\n/* JS CODE TO ENABLE ClipBoard copy paste*/\n"; +print 'jQuery(\'.clipboardCopyPaste\').click(function() { + console.log(this.firstChild.innerText); + if ( window.getSelection ) { + + selection = window.getSelection(); + + range = document.createRange(); + range.selectNodeContents( this.firstChild ); + + selection.removeAllRanges(); + selection.addRange( range ); + + } + document.execCommand( \'copy\' ); + window.getSelection().removeAllRanges(); + var lastchild = this.lastChild + var tmp =lastchild.innerHTML + lastchild.innerHTML = \''.dol_escape_js($langs->trans('CopiedToClipboard')).'\'; + setTimeout(() => { lastchild.innerHTML = tmp; }, 1000); + })'."\n"; \ No newline at end of file diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index d8a1614cfdc..d90e70a1e0c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9239,34 +9239,9 @@ function readfileLowMemory($fullpath_original_file_osencoded, $method = -1) * @param Translate $langs the $langs variable * @return string the string to print for the button */ -function showValueWithCopyAndPasteButton($valuetoprint, $spanid, $langs) +function showValueWithCopyAndPasteButton($valuetoprint) { - $stringtoprint= ''; - $stringtoprint.= $valuetoprint .' '; - $stringtoprint.= ''; - $stringtoprint.=''; - $stringtoprint.=""; - return $stringtoprint; + return ''.dol_escape_js($valuetoprint).' + '; + } diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 0014e4b8ebe..caf3b62bd02 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2426,7 +2426,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) print $langs->trans('CustomerCode'); print ''; print ''; - print showValueWithCopyAndPasteButton($object->code_client, 'code_client', $langs); + print showValueWithCopyAndPasteButton($object->code_client); print ''; $tmpcheck = $object->check_codeclient(); if ($tmpcheck != 0 && $tmpcheck != -5) { From 3de89be6911088382ea1dd0d128967c029641e69 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Fri, 22 Jan 2021 15:59:31 +0000 Subject: [PATCH 033/219] Fixing style errors. --- htdocs/core/js/lib_foot.js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/js/lib_foot.js.php b/htdocs/core/js/lib_foot.js.php index 66a57502bb1..c277beefe70 100644 --- a/htdocs/core/js/lib_foot.js.php +++ b/htdocs/core/js/lib_foot.js.php @@ -231,4 +231,4 @@ print 'jQuery(\'.clipboardCopyPaste\').click(function() { var tmp =lastchild.innerHTML lastchild.innerHTML = \''.dol_escape_js($langs->trans('CopiedToClipboard')).'\'; setTimeout(() => { lastchild.innerHTML = tmp; }, 1000); - })'."\n"; \ No newline at end of file + })'."\n"; From 7685dee5f662b8a7c1afe4fe8f5ca4c962e6abe4 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Fri, 22 Jan 2021 16:59:34 +0100 Subject: [PATCH 034/219] style changes --- htdocs/core/js/lib_foot.js.php | 2 +- htdocs/core/lib/functions.lib.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/js/lib_foot.js.php b/htdocs/core/js/lib_foot.js.php index 66a57502bb1..c277beefe70 100644 --- a/htdocs/core/js/lib_foot.js.php +++ b/htdocs/core/js/lib_foot.js.php @@ -231,4 +231,4 @@ print 'jQuery(\'.clipboardCopyPaste\').click(function() { var tmp =lastchild.innerHTML lastchild.innerHTML = \''.dol_escape_js($langs->trans('CopiedToClipboard')).'\'; setTimeout(() => { lastchild.innerHTML = tmp; }, 1000); - })'."\n"; \ No newline at end of file + })'."\n"; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index d90e70a1e0c..daa6d660f9f 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9243,5 +9243,5 @@ function showValueWithCopyAndPasteButton($valuetoprint) { return ''.dol_escape_js($valuetoprint).' '; - + } From cfcd51f291b5fe5054898cbfab5ba7836db778c7 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Fri, 22 Jan 2021 17:03:39 +0100 Subject: [PATCH 035/219] style errors update --- htdocs/core/lib/functions.lib.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index daa6d660f9f..181e6b4c448 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9235,13 +9235,10 @@ function readfileLowMemory($fullpath_original_file_osencoded, $method = -1) /** * Create a button to copy $valuetoprint in the clipboard * @param string $valuetoprint the value to print - * @param string $spanid unique id for a span - * @param Translate $langs the $langs variable * @return string the string to print for the button */ function showValueWithCopyAndPasteButton($valuetoprint) { return ''.dol_escape_js($valuetoprint).' '; - } From 4f9e294fc7a5808eaa45efebfee852a7b7dbf67b Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Fri, 22 Jan 2021 18:10:48 +0100 Subject: [PATCH 036/219] Update list.php --- htdocs/societe/list.php | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 35d1c123092..ae54bf5c83e 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -831,14 +831,11 @@ if (!empty($arrayfields['typent.code']['checked'])) print ''; } // Multiprice level -if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) +if (!empty($arrayfields['s.price_level']['checked'])) { - if (!empty($arrayfields['s.price_level']['checked'])) - { - print ''; - print ''; - print ''; - } + print ''; + print ''; + print ''; } // Staff if (!empty($arrayfields['staff.code']['checked'])) @@ -1015,6 +1012,7 @@ if (!empty($arrayfields['region.nom']['checked'])) print_liste_field_titre if (!empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'], $_SERVER["PHP_SELF"], "country.code_iso", "", $param, '', $sortfield, $sortorder, 'center '); if (!empty($arrayfields['typent.code']['checked'])) print_liste_field_titre($arrayfields['typent.code']['label'], $_SERVER["PHP_SELF"], "typent.code", "", $param, '', $sortfield, $sortorder, 'center '); if (!empty($arrayfields['staff.code']['checked'])) print_liste_field_titre($arrayfields['staff.code']['label'], $_SERVER["PHP_SELF"], "staff.code", "", $param, '', $sortfield, $sortorder, 'center '); +if (!empty($arrayfields['s.price_level']['checked'])) print_liste_field_titre($arrayfields['s.price_level']['label'], $_SERVER["PHP_SELF"], "s.price_level", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.email']['checked'])) print_liste_field_titre($arrayfields['s.email']['label'], $_SERVER["PHP_SELF"], "s.email", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.phone']['checked'])) print_liste_field_titre($arrayfields['s.phone']['label'], $_SERVER["PHP_SELF"], "s.phone", "", $param, '', $sortfield, $sortorder); if (!empty($arrayfields['s.fax']['checked'])) print_liste_field_titre($arrayfields['s.fax']['label'], $_SERVER["PHP_SELF"], "s.fax", "", $param, '', $sortfield, $sortorder); @@ -1030,11 +1028,6 @@ if (!empty($arrayfields['customerorsupplier']['checked'])) print_liste_fi if (!empty($arrayfields['s.fk_prospectlevel']['checked'])) print_liste_field_titre($arrayfields['s.fk_prospectlevel']['label'], $_SERVER["PHP_SELF"], "s.fk_prospectlevel", "", $param, '', $sortfield, $sortorder, 'center '); if (!empty($arrayfields['s.fk_stcomm']['checked'])) print_liste_field_titre($arrayfields['s.fk_stcomm']['label'], $_SERVER["PHP_SELF"], "s.fk_stcomm", "", $param, '', $sortfield, $sortorder, 'center '); if (!empty($arrayfields['s2.nom']['checked'])) print_liste_field_titre($arrayfields['s2.nom']['label'], $_SERVER["PHP_SELF"], "s2.nom", "", $param, '', $sortfield, $sortorder, 'center '); -// Multiprice level -if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) -{ - if (!empty($arrayfields['s.price_level']['checked'])) print_liste_field_titre($arrayfields['s.price_level']['label'], $_SERVER["PHP_SELF"], "s.price_level", "", $param, '', $sortfield, $sortorder); -} // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; @@ -1191,13 +1184,10 @@ while ($i < min($num, $limit)) if (!$i) $totalarray['nbfield']++; } // Multiprice level - if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) + if (!empty($arrayfields['s.price_level']['checked'])) { - if (!empty($arrayfields['s.price_level']['checked'])) - { - print "".$obj->price_level."\n"; - if (!$i) $totalarray['nbfield']++; - } + print "".$obj->price_level."\n"; + if (!$i) $totalarray['nbfield']++; } // Staff if (!empty($arrayfields['staff.code']['checked'])) From e93e6be3fe8b334c99d6324a3ff65867b04318f9 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Fri, 22 Jan 2021 18:31:53 +0100 Subject: [PATCH 037/219] Update list.php --- htdocs/societe/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index ae54bf5c83e..ec0a38bd255 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -1186,7 +1186,7 @@ while ($i < min($num, $limit)) // Multiprice level if (!empty($arrayfields['s.price_level']['checked'])) { - print "".$obj->price_level."\n"; + print ''.$obj->price_level."\n"; if (!$i) $totalarray['nbfield']++; } // Staff From 2acf2353a3c5419f4666c84df4ee832bd1a98584 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 12:16:25 +0100 Subject: [PATCH 038/219] Fix bad link --- htdocs/compta/paiement/card.php | 12 +++++++----- htdocs/langs/en_US/banks.lang | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/htdocs/compta/paiement/card.php b/htdocs/compta/paiement/card.php index d3dec6fde82..2c3fa39f38f 100644 --- a/htdocs/compta/paiement/card.php +++ b/htdocs/compta/paiement/card.php @@ -277,10 +277,8 @@ print ''; // Bank account if (!empty($conf->banque->enabled)) { - if ($object->fk_account > 0) - { - if ($object->type_code == 'CHQ' && $bankline->fk_bordereau > 0) - { + if ($object->fk_account > 0) { + if ($object->type_code == 'CHQ' && $bankline->fk_bordereau > 0) { dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php'); $bordereau = new RemiseCheque($db); $bordereau->fetch($bankline->fk_bordereau); @@ -297,7 +295,11 @@ if (!empty($conf->banque->enabled)) print ''; print ''.$langs->trans('BankTransactionLine').''; print ''; - print $bankline->getNomUrl(1, 0, 'showconciliatedandaccounted'); + if ($object->fk_account > 0) { + print $bankline->getNomUrl(1, 0, 'showconciliatedandaccounted'); + } else { + print $langs->trans("NoRecordFoundIBankcAccount", $langs->transnoentities("Module85Name")); + } print ''; print ''; } diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang index 75f9549dca5..78dadc8463b 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -176,3 +176,4 @@ BankColorizeMovement=Colorize movements BankColorizeMovementDesc=If this function is enable, you can choose specific background color for debit or credit movements BankColorizeMovementName1=Background color for debit movement BankColorizeMovementName2=Background color for credit movement +NoRecordFoundIBankcAccount=No record found in bank account. Commonly, this occurs when a record has been deleted manually from the list of transaction in the bank account (for example during a reconciliation of the bank account). Another reason is that the payment was recorded when the module "%s" was disabled. \ No newline at end of file From 86e853f27d7878213e2dcbe3d6cacc15984f4ccc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 12:18:07 +0100 Subject: [PATCH 039/219] Look and feel v12 --- htdocs/compta/paiement/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/paiement/card.php b/htdocs/compta/paiement/card.php index 2c3fa39f38f..1bb6f4ce3fa 100644 --- a/htdocs/compta/paiement/card.php +++ b/htdocs/compta/paiement/card.php @@ -298,7 +298,7 @@ if (!empty($conf->banque->enabled)) if ($object->fk_account > 0) { print $bankline->getNomUrl(1, 0, 'showconciliatedandaccounted'); } else { - print $langs->trans("NoRecordFoundIBankcAccount", $langs->transnoentities("Module85Name")); + print ''.$langs->trans("NoRecordFoundIBankcAccount", $langs->transnoentities("Module85Name")).''; } print ''; print ''; From 9b6b1e055c378683807023de4785c5b3dfa101dc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 12:20:18 +0100 Subject: [PATCH 040/219] Fix trans --- htdocs/compta/paiement/card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/paiement/card.php b/htdocs/compta/paiement/card.php index 1bb6f4ce3fa..1cfd72d26cc 100644 --- a/htdocs/compta/paiement/card.php +++ b/htdocs/compta/paiement/card.php @@ -298,7 +298,8 @@ if (!empty($conf->banque->enabled)) if ($object->fk_account > 0) { print $bankline->getNomUrl(1, 0, 'showconciliatedandaccounted'); } else { - print ''.$langs->trans("NoRecordFoundIBankcAccount", $langs->transnoentities("Module85Name")).''; + $langs->load("admin"); + print ''.$langs->trans("NoRecordFoundIBankcAccount", $langs->transnoentitiesnoconv("Module85Name")).''; } print ''; print ''; From 89219a37a692aabc0d6079ee2579c7419d55445b Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sat, 23 Jan 2021 13:24:00 +0100 Subject: [PATCH 041/219] Fix stripe Payment method delete --- htdocs/public/stripe/ipn.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/public/stripe/ipn.php b/htdocs/public/stripe/ipn.php index bfb1bc99c5a..0b5f14c9217 100644 --- a/htdocs/public/stripe/ipn.php +++ b/htdocs/public/stripe/ipn.php @@ -361,7 +361,7 @@ if ($event->type == 'payout.created') { } } elseif ($event->type == 'payment_method.detached') { $db->begin(); - $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_rib WHERE ref = '".$db->escape($event->data->object->id)."' and status = ".$servicestatus; + $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_rib WHERE number = '".$db->escape($event->data->object->id)."' and status = ".$servicestatus; $db->query($sql); $db->commit(); } elseif ($event->type == 'charge.succeeded') { From 791f5f3f62ce99105504a4bd37464fbc92b279f4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 13:50:06 +0100 Subject: [PATCH 042/219] Fix css --- htdocs/core/class/html.formfile.class.php | 2 +- htdocs/theme/eldy/global.inc.php | 9 +++++++++ htdocs/theme/md/style.css.php | 9 +++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index ef7ff63a1c5..31681fb072c 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -1690,7 +1690,7 @@ class FormFile $fulllink = $urlwithroot.'/document.php'.($paramlink ? '?'.$paramlink : ''); print img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; - print ''; + print ''; } //if (! empty($useinecm) && $useinecm != 6) print ' Date: Sat, 23 Jan 2021 13:56:51 +0100 Subject: [PATCH 044/219] NEW Can filter files in GED on status Shared/Not shared --- htdocs/core/class/html.formfile.class.php | 25 +++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 49af02075b4..6f31f0ff8de 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -1174,7 +1174,9 @@ class FormFile print_liste_field_titre('Size', $url, "size", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre('Date', $url, "date", "", $param, '', $sortfield, $sortorder, 'center '); if (empty($useinecm) || $useinecm == 4 || $useinecm == 5 || $useinecm == 6) print_liste_field_titre('', $url, "", "", $param, '', $sortfield, $sortorder, 'center '); // Preview + // Shared or not - Hash of file print_liste_field_titre(''); + // Action button print_liste_field_titre(''); if (!$disablemove) print_liste_field_titre(''); print "\n"; @@ -1285,12 +1287,10 @@ class FormFile print ''; } - // Hash of file (only if we are in a mode where a scan of dir were done and we have id of file in ECM table) + // Shared or not - Hash of file print ''; - if ($relativedir && $filearray[$key]['rowid'] > 0) - { - if ($editline) - { + if ($relativedir && $filearray[$key]['rowid'] > 0) { // only if we are in a mode where a scan of dir were done and we have id of file in ECM table + if ($editline) { print $langs->trans("FileSharedViaALink").' '; print ' '; } else { @@ -1318,7 +1318,7 @@ class FormFile } print ''; - // Actions buttons + // Actions buttons (1 column or 2 if !disablemove) if (!$editline) { // Delete or view link @@ -1406,6 +1406,7 @@ class FormFile else print $textifempty; print ''; } + print ""; print ''; @@ -1479,7 +1480,7 @@ class FormFile print ''; print ''; // Action column - print ''; + print ''; $searchpicto = $form->showFilterButtons(); print $searchpicto; print ''; @@ -1493,7 +1494,7 @@ class FormFile print_liste_field_titre("Documents2", $url, "name", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Size", $url, "size", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("Date", $url, "date", "", $param, '', $sortfield, $sortorder, 'center '); - print_liste_field_titre('', '', ''); + print_liste_field_titre("Shared", $url, 'share', '', $param, '', $sortfield, $sortorder, 'right '); print ''."\n"; // To show ref or specific information according to view to show (defined by $module) @@ -1582,7 +1583,7 @@ class FormFile //var_dump($sortfield.' - '.$sortorder); if ($sortfield && $sortorder) // If $sortfield is for example 'position_name', we will sort on the property 'position_name' (that is concat of position+name) { - $filearray = dol_sort_array($filearray, $sortfield, $sortorder); + $filearray = dol_sort_array($filearray, $sortfield, $sortorder, 1); } } @@ -1714,7 +1715,7 @@ class FormFile $fulllink = $urlwithroot.'/document.php'.($paramlink ? '?'.$paramlink : ''); print img_picto($langs->trans("FileSharedViaALink"), 'globe').' '; - print ''; + print ''; } //if (! empty($useinecm) && $useinecm != 6) print ''.img_delete().''; //else print ' '; - print "\n"; + print ""; + + print "\n"; } } From f2c4e258277314d177f2603511bd328399a0820d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 17:32:14 +0100 Subject: [PATCH 045/219] Clean code --- htdocs/accountancy/admin/accountmodel.php | 6 +----- htdocs/accountancy/admin/categories_list.php | 3 --- htdocs/accountancy/admin/journals_list.php | 3 --- htdocs/admin/dict.php | 5 ++--- htdocs/admin/website.php | 8 ++------ 5 files changed, 5 insertions(+), 20 deletions(-) diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index 6d621a7e101..3c3489185f4 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -444,9 +444,6 @@ if ($id) // Form to add a new line if ($tabname[$id]) { - $alabelisused = 0; - $var = false; - $fieldlist = explode(',', $tabfield[$id]); // Line for title @@ -481,7 +478,6 @@ if ($id) } print ''; } - if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') $alabelisused = 1; } print ''; @@ -612,7 +608,7 @@ if ($id) print ' '; } else { $tmpaction = 'view'; - $parameters = array('var'=>$var, 'fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]); + $parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]); $reshook = $hookmanager->executeHooks('viewDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks $error = $hookmanager->error; $errors = $hookmanager->errors; diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php index 53dfb1cd5f9..e3a39c5d8b1 100644 --- a/htdocs/accountancy/admin/categories_list.php +++ b/htdocs/accountancy/admin/categories_list.php @@ -438,8 +438,6 @@ if ($id) // Form to add a new line if ($tabname[$id]) { - $alabelisused = 0; - $fieldlist = explode(',', $tabfield[$id]); // Line for title @@ -496,7 +494,6 @@ if ($id) else print $valuetoshow; print ''; } - if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') $alabelisused = 1; } print ''; diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index bb192f0a693..1d3e8bccdd7 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -407,8 +407,6 @@ if ($id) // Form to add a new line if ($tabname[$id]) { - $alabelisused = 0; - $fieldlist = explode(',', $tabfield[$id]); // Line for title @@ -437,7 +435,6 @@ if ($id) else print $valuetoshow; print ''; } - if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') $alabelisused = 1; } print ''; diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 62e95b2c001..1a6a4f272c0 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -236,7 +236,7 @@ $tabsqlsort[3] = "country ASC, code ASC"; $tabsqlsort[4] = "code ASC"; $tabsqlsort[5] = "label ASC"; $tabsqlsort[6] = "a.type ASC, a.module ASC, a.position ASC, a.code ASC"; -$tabsqlsort[7] = "country ASC, code ASC, a.libelle ASC"; +$tabsqlsort[7] = "c.label ASC, a.code ASC, a.libelle ASC"; $tabsqlsort[8] = "country DESC,".(!empty($conf->global->SOCIETE_SORT_ON_TYPEENT) ? ' t.position ASC,' : '')." libelle ASC"; $tabsqlsort[9] = "label ASC"; $tabsqlsort[10] = "country ASC, code ASC, taux ASC, recuperableonly ASC, localtax1 ASC, localtax2 ASC"; @@ -1069,6 +1069,7 @@ if ($id) elseif ($search_code != '' && $id == 28) $sql .= natural_search("h.code", $search_code); elseif ($search_code != '' && $id == 32) $sql .= natural_search("a.code", $search_code); elseif ($search_code != '' && $id == 3) $sql .= natural_search("r.code_region", $search_code); + elseif ($search_code != '' && $id == 7) $sql .= natural_search("a.code", $search_code); elseif ($search_code != '' && $id != 9) $sql .= natural_search("code", $search_code); if ($sortfield) @@ -1107,7 +1108,6 @@ if ($id) // Form to add a new line if ($tabname[$id]) { - $alabelisused = 0; $withentity = null; $fieldlist = explode(',', $tabfield[$id]); @@ -1214,7 +1214,6 @@ if ($id) else $tdsoffields .= $valuetoshow; $tdsoffields .= ''; } - if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') $alabelisused = 1; } if ($id == 4) $tdsoffields .= ''; diff --git a/htdocs/admin/website.php b/htdocs/admin/website.php index 0ca4be65910..3ebbd9300bc 100644 --- a/htdocs/admin/website.php +++ b/htdocs/admin/website.php @@ -435,9 +435,6 @@ if ($id) // Form to add a new line if ($tabname[$id]) { - $alabelisused = 0; - $var = false; - $fieldlist = explode(',', $tabfield[$id]); // Line for title @@ -461,7 +458,6 @@ if ($id) } else print $valuetoshow; print ''; } - if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') $alabelisused = 1; } print ''; @@ -469,7 +465,7 @@ if ($id) print ''; // Line to enter new values - print ""; + print ''; $obj = new stdClass(); // If data was already input, we define them in obj to populate input fields. @@ -570,7 +566,7 @@ if ($id) print ' '; } else { $tmpaction = 'view'; - $parameters = array('var'=>$var, 'fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]); + $parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]); $reshook = $hookmanager->executeHooks('viewWebsiteFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks $error = $hookmanager->error; $errors = $hookmanager->errors; From f7e637a5529cbb9ec8c3ca891d958256f0c3c806 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 17:40:14 +0100 Subject: [PATCH 046/219] Trans --- htdocs/langs/en_US/admin.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index db54bd29cc2..19903326e70 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1874,7 +1874,7 @@ BackgroundTableLineOddColor=Background color for odd table lines BackgroundTableLineEvenColor=Background color for even table lines MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. +EnterAnyCode=This field contains a reference to identify the line. Enter any value of your choice, but without special characters. Enter0or1=Enter 0 or 1 UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] ColorFormat=The RGB color is in HEX format, eg: FF0000 From dd69aed27bc3b05098f2cd771e37648c16aa0935 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 17:49:08 +0100 Subject: [PATCH 047/219] Fix error test --- htdocs/accountancy/admin/index.php | 18 +++++++-------- htdocs/adherents/admin/adherent.php | 2 +- htdocs/adherents/admin/adherent_emails.php | 2 +- htdocs/adherents/admin/website.php | 2 +- htdocs/admin/agenda.php | 2 +- htdocs/admin/agenda_extsites.php | 12 +++++----- htdocs/admin/bank.php | 2 +- htdocs/admin/bom.php | 6 ++--- htdocs/admin/chequereceipts.php | 4 ++-- htdocs/admin/commande.php | 14 ++++++------ htdocs/admin/contract.php | 2 +- htdocs/admin/delivery.php | 4 ++-- htdocs/admin/expensereport.php | 2 +- htdocs/admin/facture.php | 12 +++++----- htdocs/admin/fichinter.php | 14 ++++++------ htdocs/admin/holiday.php | 2 +- htdocs/admin/mailing.php | 12 +++++----- htdocs/admin/mailman.php | 2 +- htdocs/admin/mrp.php | 6 ++--- htdocs/admin/payment.php | 6 ++--- htdocs/admin/paymentbybanktransfer.php | 12 +++++----- htdocs/admin/prelevement.php | 10 ++++----- htdocs/admin/propal.php | 12 +++++----- htdocs/admin/spip.php | 2 +- htdocs/admin/stock.php | 2 +- htdocs/admin/supplier_invoice.php | 4 ++-- htdocs/admin/supplier_order.php | 4 ++-- htdocs/admin/supplier_payment.php | 4 ++-- htdocs/admin/supplier_proposal.php | 8 +++---- htdocs/admin/syslog.php | 4 ++-- htdocs/admin/taxes.php | 10 ++++----- htdocs/admin/ticket.php | 22 +++++++++---------- htdocs/admin/ticket_public.php | 22 +++++++++---------- htdocs/admin/workstation.php | 2 +- htdocs/bookmarks/admin/bookmark.php | 2 +- htdocs/cashdesk/admin/cashdesk.php | 2 +- htdocs/collab/index.php | 2 +- htdocs/comm/remx.php | 2 +- htdocs/core/actions_setmoduleoptions.inc.php | 2 +- htdocs/don/admin/donation.php | 4 ++-- htdocs/modulebuilder/template/admin/setup.php | 2 +- htdocs/paypal/admin/paypal.php | 2 +- htdocs/product/admin/product.php | 6 ++--- htdocs/projet/admin/project.php | 4 ++-- htdocs/recruitment/admin/public_interface.php | 2 +- htdocs/recruitment/admin/setup.php | 2 +- .../recruitment/admin/setup_candidatures.php | 2 +- htdocs/societe/admin/societe.php | 18 +++++++-------- htdocs/takepos/admin/appearance.php | 2 +- htdocs/takepos/admin/other.php | 2 +- htdocs/takepos/admin/receipt.php | 2 +- htdocs/takepos/admin/setup.php | 4 ++-- htdocs/takepos/admin/terminal.php | 2 +- htdocs/website/class/website.class.php | 2 +- htdocs/website/index.php | 2 +- 55 files changed, 156 insertions(+), 156 deletions(-) diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index ae36f0f7fa6..b002fabd0a1 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -100,7 +100,7 @@ if ($action == 'update') { if ($action == 'setlistsorttodo') { $setlistsorttodo = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_LIST_SORT_VENTILATION_TODO", $setlistsorttodo, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -114,7 +114,7 @@ if ($action == 'setlistsorttodo') { if ($action == 'setlistsortdone') { $setlistsortdone = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_LIST_SORT_VENTILATION_DONE", $setlistsortdone, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } if (!$error) { @@ -127,7 +127,7 @@ if ($action == 'setlistsortdone') { if ($action == 'setmanagezero') { $setmanagezero = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_MANAGE_ZERO", $setmanagezero, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } if (!$error) { @@ -140,7 +140,7 @@ if ($action == 'setmanagezero') { if ($action == 'setdisabledirectinput') { $setdisabledirectinput = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "BANK_DISABLE_DIRECT_INPUT", $setdisabledirectinput, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } if (!$error) { @@ -153,7 +153,7 @@ if ($action == 'setdisabledirectinput') { if ($action == 'setenabledraftexport') { $setenabledraftexport = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL", $setenabledraftexport, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } if (!$error) { @@ -166,7 +166,7 @@ if ($action == 'setenabledraftexport') { if ($action == 'setenablesubsidiarylist') { $setenablesubsidiarylist = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTANCY_COMBO_FOR_AUX", $setenablesubsidiarylist, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } if (!$error) { @@ -179,7 +179,7 @@ if ($action == 'setenablesubsidiarylist') { if ($action == 'setdisablebindingonsales') { $setdisablebindingonsales = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_DISABLE_BINDING_ON_SALES", $setdisablebindingonsales, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } if (!$error) { @@ -192,7 +192,7 @@ if ($action == 'setdisablebindingonsales') { if ($action == 'setdisablebindingonpurchases') { $setdisablebindingonpurchases = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_DISABLE_BINDING_ON_PURCHASES", $setdisablebindingonpurchases, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } if (!$error) { @@ -205,7 +205,7 @@ if ($action == 'setdisablebindingonpurchases') { if ($action == 'setdisablebindingonexpensereports') { $setdisablebindingonexpensereports = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS", $setdisablebindingonexpensereports, 'yesno', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } if (!$error) { diff --git a/htdocs/adherents/admin/adherent.php b/htdocs/adherents/admin/adherent.php index 8acf1f1b191..fef3bd53177 100644 --- a/htdocs/adherents/admin/adherent.php +++ b/htdocs/adherents/admin/adherent.php @@ -136,7 +136,7 @@ if ($action == 'update' || $action == 'add') { $constnote = GETPOST('constnote'); $res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/adherents/admin/adherent_emails.php b/htdocs/adherents/admin/adherent_emails.php index 4374d281895..21ce5037ef5 100644 --- a/htdocs/adherents/admin/adherent_emails.php +++ b/htdocs/adherents/admin/adherent_emails.php @@ -92,7 +92,7 @@ if ($action == 'update' || $action == 'add') { $res = dolibarr_set_const($db, $constname, $constvalue, $typetouse, 0, $constnote, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/adherents/admin/website.php b/htdocs/adherents/admin/website.php index d0cdb098bae..e3acf3c4d99 100644 --- a/htdocs/adherents/admin/website.php +++ b/htdocs/adherents/admin/website.php @@ -63,7 +63,7 @@ if ($action == 'update') { $res = dolibarr_set_const($db, "MEMBER_NEWFORM_FORCETYPE", $forcetype, 'chaine', 0, '', $conf->entity); } - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/admin/agenda.php b/htdocs/admin/agenda.php index b1cc1d7619b..efdd6213dd5 100644 --- a/htdocs/admin/agenda.php +++ b/htdocs/admin/agenda.php @@ -97,7 +97,7 @@ if ($action == "save" && empty($cancel)) if ($search_event === '' || preg_match('/'.preg_quote($search_event, '/').'/i', $keyparam)) { $res = dolibarr_set_const($db, $keyparam, (GETPOST($keyparam, 'alpha') ?GETPOST($keyparam, 'alpha') : ''), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } } diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php index 7fbd139072d..f99c530c7e2 100644 --- a/htdocs/admin/agenda_extsites.php +++ b/htdocs/admin/agenda_extsites.php @@ -82,15 +82,15 @@ if ($actionsave) //print '-name='.$name.'-color='.$color; $res = dolibarr_set_const($db, 'AGENDA_EXT_NAME'.$i, $name, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'AGENDA_EXT_SRC'.$i, $src, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'AGENDA_EXT_OFFSETTZ'.$i, $offsettz, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'AGENDA_EXT_COLOR'.$i, $color, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'AGENDA_EXT_ENABLED'.$i, $enabled, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $i++; } @@ -98,7 +98,7 @@ if ($actionsave) if (!$error) { $res = dolibarr_set_const($db, 'AGENDA_EXT_NB', trim(GETPOST('AGENDA_EXT_NB', 'int')), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB = 5; $MAXAGENDA = empty($conf->global->AGENDA_EXT_NB) ? 5 : $conf->global->AGENDA_EXT_NB; } diff --git a/htdocs/admin/bank.php b/htdocs/admin/bank.php index d21ffdb1630..4cd7bff4ed8 100644 --- a/htdocs/admin/bank.php +++ b/htdocs/admin/bank.php @@ -112,7 +112,7 @@ if ($actionsave) if ($color == '-1') $color = ''; $res = dolibarr_set_const($db, 'BANK_COLORIZE_MOVEMENT_COLOR'.$i, $color, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $i++; } diff --git a/htdocs/admin/bom.php b/htdocs/admin/bom.php index 34c3af89c53..36b5ab91f67 100644 --- a/htdocs/admin/bom.php +++ b/htdocs/admin/bom.php @@ -52,7 +52,7 @@ if ($action == 'updateMask') if ($maskconstbom) $res = dolibarr_set_const($db, $maskconstbom, $maskbom, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -141,7 +141,7 @@ elseif ($action == 'setdoc') $draft = GETPOST("BOM_DRAFT_WATERMARK"); $res = dolibarr_set_const($db, "BOM_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -155,7 +155,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "BOM_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/chequereceipts.php b/htdocs/admin/chequereceipts.php index 8c2acb5dc8b..f00e6454761 100644 --- a/htdocs/admin/chequereceipts.php +++ b/htdocs/admin/chequereceipts.php @@ -55,7 +55,7 @@ if ($action == 'updateMask') $maskchequereceipts = GETPOST('maskchequereceipts', 'alpha'); if ($maskconstchequereceipts) $res = dolibarr_set_const($db, $maskconstchequereceipts, $maskchequereceipts, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -76,7 +76,7 @@ if ($action == 'set_BANK_CHEQUERECEIPT_FREE_TEXT') $res = dolibarr_set_const($db, "BANK_CHEQUERECEIPT_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php index cde0253f99a..5e5655f918f 100644 --- a/htdocs/admin/commande.php +++ b/htdocs/admin/commande.php @@ -61,7 +61,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -146,7 +146,7 @@ elseif ($action == 'setdoc') { $draft = GETPOST("COMMANDE_DRAFT_WATERMARK"); $res = dolibarr_set_const($db, "COMMANDE_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -160,7 +160,7 @@ elseif ($action == 'setdoc') { $res = dolibarr_set_const($db, "ORDER_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -172,7 +172,7 @@ elseif ($action == 'setdoc') { // Activate Set Shippable Icon In List $setshippableiconinlist = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SHIPPABLE_ORDER_ICON_IN_LIST", $setshippableiconinlist, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -186,7 +186,7 @@ elseif ($action == 'setdoc') { $res = dolibarr_set_const($db, "FACTURE_RIB_NUMBER", $rib, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "FACTURE_CHQ_NUMBER", $chq, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -201,7 +201,7 @@ elseif ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_ORDER') { $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_ORDER", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -216,7 +216,7 @@ elseif ($action == 'set_WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER') { $res = dolibarr_set_const($db, "WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/contract.php b/htdocs/admin/contract.php index b5e4c0ddf45..05330e92b89 100644 --- a/htdocs/admin/contract.php +++ b/htdocs/admin/contract.php @@ -57,7 +57,7 @@ if ($action == 'updateMask') $maskvalue = GETPOST('maskcontract', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/delivery.php b/htdocs/admin/delivery.php index b1606268205..9b9060aa054 100644 --- a/htdocs/admin/delivery.php +++ b/htdocs/admin/delivery.php @@ -58,7 +58,7 @@ if ($action == 'updateMask') $maskdelivery = GETPOST('maskdelivery', 'alpha'); if ($maskconstdelivery) $res = dolibarr_set_const($db, $maskconstdelivery, $maskdelivery, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -73,7 +73,7 @@ if ($action == 'set_DELIVERY_FREE_TEXT') $free = GETPOST('DELIVERY_FREE_TEXT', 'restricthtml'); // No alpha here, we want exact string $res = dolibarr_set_const($db, "DELIVERY_FREE_TEXT", $free, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/expensereport.php b/htdocs/admin/expensereport.php index 61688e18515..ad04e09ffd1 100644 --- a/htdocs/admin/expensereport.php +++ b/htdocs/admin/expensereport.php @@ -61,7 +61,7 @@ if ($action == 'updateMask') { $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php index 00dcb7c3180..c5b8262c4be 100644 --- a/htdocs/admin/facture.php +++ b/htdocs/admin/facture.php @@ -66,7 +66,7 @@ if ($action == 'updateMask') if ($maskconstcredit) $res = dolibarr_set_const($db, $maskconstcredit, $maskcredit, 'chaine', 0, '', $conf->entity); if ($maskconstdeposit) $res = dolibarr_set_const($db, $maskconstdeposit, $maskdeposit, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -156,7 +156,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "FACTURE_RIB_NUMBER", $rib, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "FACTURE_CHQ_NUMBER", $chq, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -170,7 +170,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "FACTURE_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -184,7 +184,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "INVOICE_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -198,7 +198,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "FAC_FORCE_DATE_VALIDATION", $forcedate, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -217,7 +217,7 @@ elseif ($action == 'setdoc') foreach ($invoicetypemodels as $type => $value) { $res = dolibarr_set_const($db, 'FACTURE_ADDON_PDF_'.intval($type), $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (!$error) diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php index e3178d946a0..afe6bc2239c 100644 --- a/htdocs/admin/fichinter.php +++ b/htdocs/admin/fichinter.php @@ -58,7 +58,7 @@ if ($action == 'updateMask') $maskvalue = GETPOST('maskvalue', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -147,7 +147,7 @@ elseif ($action == 'setdoc') $freetext = GETPOST('FICHINTER_FREE_TEXT', 'restricthtml'); // No alpha here, we want exact string $res = dolibarr_set_const($db, "FICHINTER_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -160,7 +160,7 @@ elseif ($action == 'setdoc') $draft = GETPOST('FICHINTER_DRAFT_WATERMARK', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -173,7 +173,7 @@ elseif ($action == 'setdoc') $val = GETPOST('FICHINTER_PRINT_PRODUCTS', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_PRINT_PRODUCTS", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -185,7 +185,7 @@ elseif ($action == 'setdoc') $val = GETPOST('FICHINTER_USE_SERVICE_DURATION', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_USE_SERVICE_DURATION", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -198,7 +198,7 @@ elseif ($action == 'setdoc') $val = GETPOST('FICHINTER_WITHOUT_DURATION', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_WITHOUT_DURATION", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -211,7 +211,7 @@ elseif ($action == 'setdoc') $val = GETPOST('FICHINTER_DATE_WITHOUT_HOUR', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_DATE_WITHOUT_HOUR", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } diff --git a/htdocs/admin/holiday.php b/htdocs/admin/holiday.php index eca8319d661..d8de2dd847d 100644 --- a/htdocs/admin/holiday.php +++ b/htdocs/admin/holiday.php @@ -59,7 +59,7 @@ if ($action == 'updateMask') $maskvalue = GETPOST('maskholiday', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/mailing.php b/htdocs/admin/mailing.php index 32aa7accfcf..afec0ca1920 100644 --- a/htdocs/admin/mailing.php +++ b/htdocs/admin/mailing.php @@ -52,17 +52,17 @@ if ($action == 'setvalue') $contactbulkdefault = GETPOST('MAILING_CONTACT_DEFAULT_BULK_STATUS', 'int'); $res = dolibarr_set_const($db, "MAILING_EMAIL_FROM", $mailfrom, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, "MAILING_EMAIL_ERRORSTO", $mailerror, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, "MAILING_DELAY", $mailingdelay, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, "MAILING_CONTACT_DEFAULT_BULK_STATUS", $contactbulkdefault, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; // Create temporary encryption key if nedded $res = dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE_KEY", $checkread_key, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) @@ -77,7 +77,7 @@ if ($action == 'setvalue') if ($action == 'setonsearchandlistgooncustomerorsuppliercard') { $setonsearchandlistgooncustomerorsuppliercard = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_ON_SEARCH_AND_LIST_GO_ON_CUSTOMER_OR_SUPPLIER_CARD", $setonsearchandlistgooncustomerorsuppliercard, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/admin/mailman.php b/htdocs/admin/mailman.php index 8070beab59b..3c9c634a8cd 100644 --- a/htdocs/admin/mailman.php +++ b/htdocs/admin/mailman.php @@ -59,7 +59,7 @@ if ($action == 'update' || $action == 'add') $constnote = $_POST["constnote"][$key]; $res = dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (!$error) diff --git a/htdocs/admin/mrp.php b/htdocs/admin/mrp.php index af6210eee1f..a5ae9d15e63 100644 --- a/htdocs/admin/mrp.php +++ b/htdocs/admin/mrp.php @@ -53,7 +53,7 @@ if ($action == 'updateMask') if ($maskconstmrp) $res = dolibarr_set_const($db, $maskconstmrp, $maskmrp, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -142,7 +142,7 @@ elseif ($action == 'setdoc') $draft = GETPOST("MRP_MO_DRAFT_WATERMARK"); $res = dolibarr_set_const($db, "MRP_MO_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -156,7 +156,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "MRP_MO_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/payment.php b/htdocs/admin/payment.php index 378e1b4fe68..925c8fd6ff4 100644 --- a/htdocs/admin/payment.php +++ b/htdocs/admin/payment.php @@ -51,7 +51,7 @@ if ($action == 'updateMask') $maskpayment = GETPOST('maskpayment', 'alpha'); if ($maskconstpayment) $res = dolibarr_set_const($db, $maskconstpayment, $maskpayment, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -70,10 +70,10 @@ if ($action == 'setparams') { $freetext = GETPOST('FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS', 'restricthtml'); // No alpha here, we want exact string $res = dolibarr_set_const($db, "FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, "PAYMENTS_REPORT_GROUP_BY_MOD", GETPOST('PAYMENTS_REPORT_GROUP_BY_MOD', 'int'), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if ($error) { diff --git a/htdocs/admin/paymentbybanktransfer.php b/htdocs/admin/paymentbybanktransfer.php index a21b2aa6e1d..1214dd671c4 100644 --- a/htdocs/admin/paymentbybanktransfer.php +++ b/htdocs/admin/paymentbybanktransfer.php @@ -53,7 +53,7 @@ if ($action == "set") if ($account->fetch($id) > 0) { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT", $id, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; /* $res = dolibarr_set_const($db, "PRELEVEMENT_CODE_BANQUE", $account->code_banque,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; @@ -73,29 +73,29 @@ if ($action == "set") } else $error++; /* Moved to account $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ICS", GETPOST("PAYMENTBYBANKTRANSFER_ICS"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; */ if (GETPOST("PAYMENTBYBANKTRANSFER_USER") > 0) { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_USER", GETPOST("PAYMENTBYBANKTRANSFER_USER"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } /* if (GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END") || GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END") == "") { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_END_TO_END", GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (GETPOST("PAYMENTBYBANKTRANSFER_USTRD") || GETPOST("PAYMENTBYBANKTRANSFER_USTRD") == "") { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_USTRD", GETPOST("PAYMENTBYBANKTRANSFER_USTRD"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } */ if (GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS") || GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS") == "") { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ADDDAYS", GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } elseif (!$error) { $db->commit(); diff --git a/htdocs/admin/prelevement.php b/htdocs/admin/prelevement.php index 1d6d35c8719..00837a222b9 100644 --- a/htdocs/admin/prelevement.php +++ b/htdocs/admin/prelevement.php @@ -55,7 +55,7 @@ if ($action == "set") if ($account->fetch($id) > 0) { $res = dolibarr_set_const($db, "PRELEVEMENT_ID_BANKACCOUNT", $id, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; /* $res = dolibarr_set_const($db, "PRELEVEMENT_CODE_BANQUE", $account->code_banque,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; @@ -77,19 +77,19 @@ if ($action == "set") /* Moved to account $res = dolibarr_set_const($db, "PRELEVEMENT_ICS", GETPOST("PRELEVEMENT_ICS"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; */ if (GETPOST("PRELEVEMENT_USER") > 0) { $res = dolibarr_set_const($db, "PRELEVEMENT_USER", GETPOST("PRELEVEMENT_USER"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (GETPOST("PRELEVEMENT_END_TO_END") || GETPOST("PRELEVEMENT_END_TO_END") == "") { $res = dolibarr_set_const($db, "PRELEVEMENT_END_TO_END", GETPOST("PRELEVEMENT_END_TO_END"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (GETPOST("PRELEVEMENT_USTRD") || GETPOST("PRELEVEMENT_USTRD") == "") { $res = dolibarr_set_const($db, "PRELEVEMENT_USTRD", GETPOST("PRELEVEMENT_USTRD"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } $res = dolibarr_set_const($db, "PRELEVEMENT_ADDDAYS", GETPOST("PRELEVEMENT_ADDDAYS"), 'chaine', 0, '', $conf->entity); diff --git a/htdocs/admin/propal.php b/htdocs/admin/propal.php index 78c22e7b397..6d80aa78211 100644 --- a/htdocs/admin/propal.php +++ b/htdocs/admin/propal.php @@ -57,7 +57,7 @@ if ($action == 'updateMask') { $maskpropal = GETPOST('maskpropal', 'alpha'); if ($maskconstpropal) $res = dolibarr_set_const($db, $maskconstpropal, $maskpropal, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -109,7 +109,7 @@ if ($action == 'updateMask') { $res = dolibarr_set_const($db, "FACTURE_RIB_NUMBER", $rib, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "FACTURE_CHQ_NUMBER", $chq, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -121,7 +121,7 @@ if ($action == 'updateMask') { $draft = GETPOST('PROPALE_DRAFT_WATERMARK', 'alpha'); $res = dolibarr_set_const($db, "PROPALE_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -134,7 +134,7 @@ if ($action == 'updateMask') { $res = dolibarr_set_const($db, "PROPOSAL_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -145,7 +145,7 @@ if ($action == 'updateMask') { } elseif ($action == 'setdefaultduration') { $res = dolibarr_set_const($db, "PROPALE_VALIDITY_DURATION", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -156,7 +156,7 @@ if ($action == 'updateMask') { } elseif ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL') { $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/admin/spip.php b/htdocs/admin/spip.php index 2fa111578a9..018fb70a80d 100644 --- a/htdocs/admin/spip.php +++ b/htdocs/admin/spip.php @@ -67,7 +67,7 @@ if ($action == 'update' || $action == 'add') $res = dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (!$error) diff --git a/htdocs/admin/stock.php b/htdocs/admin/stock.php index db7f005284f..fa4676bc6ce 100644 --- a/htdocs/admin/stock.php +++ b/htdocs/admin/stock.php @@ -96,7 +96,7 @@ if ($action == 'warehouse') if ($value == -1 || empty($value) && !empty($conf->global->MAIN_DEFAULT_WAREHOUSE)) { $res = dolibarr_del_const($db, "MAIN_DEFAULT_WAREHOUSE", $conf->entity); } - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if ($action == 'specimen') diff --git a/htdocs/admin/supplier_invoice.php b/htdocs/admin/supplier_invoice.php index 86faa655687..b7a14a53541 100644 --- a/htdocs/admin/supplier_invoice.php +++ b/htdocs/admin/supplier_invoice.php @@ -65,7 +65,7 @@ if ($action == 'updateMask') if ($maskconstinvoice) $res = dolibarr_set_const($db, $maskconstinvoice, $maskinvoice, 'chaine', 0, '', $conf->entity); if ($maskconstcredit) $res = dolibarr_set_const($db, $maskconstcredit, $maskcredit, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -170,7 +170,7 @@ if ($action == 'set_SUPPLIER_INVOICE_FREE_TEXT') $res = dolibarr_set_const($db, "SUPPLIER_INVOICE_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/supplier_order.php b/htdocs/admin/supplier_order.php index e2433c5348b..f255a77348a 100644 --- a/htdocs/admin/supplier_order.php +++ b/htdocs/admin/supplier_order.php @@ -63,7 +63,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -194,7 +194,7 @@ elseif ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER') { $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/supplier_payment.php b/htdocs/admin/supplier_payment.php index 3408496de31..c0e0d650d90 100644 --- a/htdocs/admin/supplier_payment.php +++ b/htdocs/admin/supplier_payment.php @@ -52,7 +52,7 @@ if ($action == 'updateMask') $masksupplierpayment = GETPOST('masksupplierpayment', 'alpha'); if ($maskconstsupplierpayment) $res = dolibarr_set_const($db, $maskconstsupplierpayment, $masksupplierpayment, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -136,7 +136,7 @@ elseif ($action == 'setdoc') } elseif ($action == 'setparams') { $res = dolibarr_set_const($db, "PAYMENTS_FOURN_REPORT_GROUP_BY_MOD", GETPOST('PAYMENTS_FOURN_REPORT_GROUP_BY_MOD', 'int'), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if ($error) { diff --git a/htdocs/admin/supplier_proposal.php b/htdocs/admin/supplier_proposal.php index 0855a41cf8f..dac0a733782 100644 --- a/htdocs/admin/supplier_proposal.php +++ b/htdocs/admin/supplier_proposal.php @@ -55,7 +55,7 @@ if ($action == 'updateMask') $masksupplier_proposal = GETPOST('masksupplier_proposal', 'alpha'); if ($maskconstsupplier_proposal) $res = dolibarr_set_const($db, $maskconstsupplier_proposal, $masksupplier_proposal, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -111,7 +111,7 @@ if ($action == 'set_SUPPLIER_PROPOSAL_DRAFT_WATERMARK') $draft = GETPOST('SUPPLIER_PROPOSAL_DRAFT_WATERMARK', 'alpha'); $res = dolibarr_set_const($db, "SUPPLIER_PROPOSAL_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -127,7 +127,7 @@ if ($action == 'set_SUPPLIER_PROPOSAL_FREE_TEXT') $res = dolibarr_set_const($db, "SUPPLIER_PROPOSAL_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -141,7 +141,7 @@ if ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL') { $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/syslog.php b/htdocs/admin/syslog.php index 45500843aed..c884e30da75 100644 --- a/htdocs/admin/syslog.php +++ b/htdocs/admin/syslog.php @@ -138,7 +138,7 @@ if ($action == 'setlevel') $res = dolibarr_set_const($db, "SYSLOG_LEVEL", $level, 'chaine', 0, '', 0); dol_syslog("admin/syslog: level ".$level); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -146,7 +146,7 @@ if ($action == 'setlevel') $res = dolibarr_set_const($db, "SYSLOG_FILE_SAVES", $file_saves, 'chaine', 0, '', 0); dol_syslog("admin/syslog: file saves ".$file_saves); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (!$error) diff --git a/htdocs/admin/taxes.php b/htdocs/admin/taxes.php index 0963a264c52..4efc95061d4 100644 --- a/htdocs/admin/taxes.php +++ b/htdocs/admin/taxes.php @@ -65,7 +65,7 @@ if ($action == 'update') { $db->begin(); $res = dolibarr_set_const($db, 'TAX_MODE', $tax_mode, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; switch ($tax_mode) { @@ -90,13 +90,13 @@ if ($action == 'update') { } $res = dolibarr_set_const($db, 'TAX_MODE_SELL_PRODUCT', $valuesellproduct, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'TAX_MODE_BUY_PRODUCT', $valuebuyproduct, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'TAX_MODE_SELL_SERVICE', $valuesellservice, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'TAX_MODE_BUY_SERVICE', $valuebuyservice, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'alpha'), 'chaine', 0, '', $conf->entity); diff --git a/htdocs/admin/ticket.php b/htdocs/admin/ticket.php index f7e72f53e7e..690fee6a222 100644 --- a/htdocs/admin/ticket.php +++ b/htdocs/admin/ticket.php @@ -59,7 +59,7 @@ if ($action == 'updateMask') { $res = dolibarr_set_const($db, $maskconstticket, $maskticket, 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -113,7 +113,7 @@ elseif ($action == 'setmod') { } else { $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', '', 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -124,7 +124,7 @@ elseif ($action == 'setmod') { } else { $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', '', 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -134,7 +134,7 @@ elseif ($action == 'setmod') { } else { $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $langs->trans('TicketMessageMailIntroText'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -144,7 +144,7 @@ elseif ($action == 'setmod') { } else { $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $langs->trans('TicketMessageMailSignatureText'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } } @@ -152,13 +152,13 @@ elseif ($action == 'setmod') { if ($action == 'setvarother') { $param_must_exists = GETPOST('TICKET_EMAIL_MUST_EXISTS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_EMAIL_MUST_EXISTS', $param_must_exists, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_disable_email = GETPOST('TICKET_DISABLE_NOTIFICATION_MAILS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_DISABLE_NOTIFICATION_MAILS', $param_disable_email, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -166,7 +166,7 @@ if ($action == 'setvarother') { { $param_show_module_logo = GETPOST('TICKET_SHOW_MODULE_LOGO', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_SHOW_MODULE_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } @@ -175,20 +175,20 @@ if ($action == 'setvarother') { { $param_notification_also_main_addressemail = GETPOST('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } $param_limit_view = GETPOST('TICKET_LIMIT_VIEW_ASSIGNED_ONLY', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_LIMIT_VIEW_ASSIGNED_ONLY', $param_limit_view, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_auto_assign = GETPOST('TICKET_AUTO_ASSIGN_USER_CREATE', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_AUTO_ASSIGN_USER_CREATE', $param_auto_assign, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } diff --git a/htdocs/admin/ticket_public.php b/htdocs/admin/ticket_public.php index 80f458a2b5c..2bbf620b3c6 100644 --- a/htdocs/admin/ticket_public.php +++ b/htdocs/admin/ticket_public.php @@ -63,7 +63,7 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', '', 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -73,7 +73,7 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $langs->trans('TicketPublicInterfaceTextHome'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -83,7 +83,7 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -93,7 +93,7 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_NEW', $langs->trans('TicketMessageMailNewText'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -103,13 +103,13 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_URL_PUBLIC_INTERFACE', '', 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_public_notification_new_message_default_email = GETPOST('TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL', $param_public_notification_new_message_default_email, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } @@ -117,25 +117,25 @@ if ($action == 'setvar') { if ($action == 'setvarother') { $param_enable_public_interface = GETPOST('TICKET_ENABLE_PUBLIC_INTERFACE', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', $param_enable_public_interface, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_must_exists = GETPOST('TICKET_EMAIL_MUST_EXISTS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_EMAIL_MUST_EXISTS', $param_must_exists, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_disable_email = GETPOST('TICKET_DISABLE_CUSTOMER_MAILS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_DISABLE_CUSTOMER_MAILS', $param_disable_email, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_show_module_logo = GETPOST('TICKET_SHOW_COMPANY_LOGO', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_SHOW_COMPANY_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -143,7 +143,7 @@ if ($action == 'setvarother') { { $param_notification_also_main_addressemail = GETPOST('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } diff --git a/htdocs/admin/workstation.php b/htdocs/admin/workstation.php index 502a573e98b..98d72bf9f00 100755 --- a/htdocs/admin/workstation.php +++ b/htdocs/admin/workstation.php @@ -67,7 +67,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/bookmarks/admin/bookmark.php b/htdocs/bookmarks/admin/bookmark.php index c049d4af16f..5f30db5d7f2 100644 --- a/htdocs/bookmarks/admin/bookmark.php +++ b/htdocs/bookmarks/admin/bookmark.php @@ -38,7 +38,7 @@ if ($action == 'setvalue') { $showmenu = GETPOST('BOOKMARKS_SHOW_IN_MENU', 'alpha'); $res = dolibarr_set_const($db, "BOOKMARKS_SHOW_IN_MENU", $showmenu, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } diff --git a/htdocs/cashdesk/admin/cashdesk.php b/htdocs/cashdesk/admin/cashdesk.php index 5f0e9baddf5..21e10c05fc7 100644 --- a/htdocs/cashdesk/admin/cashdesk.php +++ b/htdocs/cashdesk/admin/cashdesk.php @@ -62,7 +62,7 @@ if (GETPOST('action', 'alpha') == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/collab/index.php b/htdocs/collab/index.php index 7353ea881ee..e5fe22c9168 100644 --- a/htdocs/collab/index.php +++ b/htdocs/collab/index.php @@ -114,7 +114,7 @@ if ($action == 'delete') if ($res > 0) { $res = $objectpage->delete($user); - if (!$res > 0) + if (!($res > 0)) { $error++; setEventMessages($objectpage->error, $objectpage->errors, 'errors'); diff --git a/htdocs/comm/remx.php b/htdocs/comm/remx.php index 57c1cf40114..e2900858c84 100644 --- a/htdocs/comm/remx.php +++ b/htdocs/comm/remx.php @@ -70,7 +70,7 @@ if ($action == 'confirm_split' && GETPOST("confirm", "alpha") == 'yes') $remid = (GETPOST("remid", 'int') ? GETPOST("remid", 'int') : 0); $discount = new DiscountAbsolute($db); $res = $discount->fetch($remid); - if (!$res > 0) + if (!($res > 0)) { $error++; setEventMessages($langs->trans("ErrorFailedToLoadDiscount"), null, 'errors'); diff --git a/htdocs/core/actions_setmoduleoptions.inc.php b/htdocs/core/actions_setmoduleoptions.inc.php index 31af34e3ad1..d662d3c85c9 100644 --- a/htdocs/core/actions_setmoduleoptions.inc.php +++ b/htdocs/core/actions_setmoduleoptions.inc.php @@ -73,7 +73,7 @@ if ($action == 'setModuleOptions') if ($param) { $res = dolibarr_set_const($db, $param, $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } } } diff --git a/htdocs/don/admin/donation.php b/htdocs/don/admin/donation.php index 78a3d50dfcc..7b0896134e0 100644 --- a/htdocs/don/admin/donation.php +++ b/htdocs/don/admin/donation.php @@ -118,7 +118,7 @@ if ($action == 'set_DONATION_ACCOUNTINGACCOUNT') $res = dolibarr_set_const($db, "DONATION_ACCOUNTINGACCOUNT", $account, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -134,7 +134,7 @@ if ($action == 'set_DONATION_MESSAGE') $res = dolibarr_set_const($db, "DONATION_MESSAGE", $freemessage, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/modulebuilder/template/admin/setup.php b/htdocs/modulebuilder/template/admin/setup.php index 417eb5a4e0f..058f15baae3 100644 --- a/htdocs/modulebuilder/template/admin/setup.php +++ b/htdocs/modulebuilder/template/admin/setup.php @@ -85,7 +85,7 @@ if ($action == 'updateMask') { $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } diff --git a/htdocs/paypal/admin/paypal.php b/htdocs/paypal/admin/paypal.php index 5ab913f7ce9..b16748f66b4 100644 --- a/htdocs/paypal/admin/paypal.php +++ b/htdocs/paypal/admin/paypal.php @@ -92,7 +92,7 @@ if ($action == "setlive") { $liveenable = GETPOST('value', 'int') ? 0 : 1; $res = dolibarr_set_const($db, "PAYPAL_API_SANDBOX", $liveenable, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/product/admin/product.php b/htdocs/product/admin/product.php index 25c5c8b1142..f268003e1bb 100644 --- a/htdocs/product/admin/product.php +++ b/htdocs/product/admin/product.php @@ -89,12 +89,12 @@ if ($action == 'setcodeproduct') if ($action == 'other' && GETPOST('value_PRODUIT_LIMIT_SIZE') >= 0) { $res = dolibarr_set_const($db, "PRODUIT_LIMIT_SIZE", GETPOST('value_PRODUIT_LIMIT_SIZE'), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if ($action == 'other' && GETPOST('value_PRODUIT_MULTIPRICES_LIMIT') > 0) { $res = dolibarr_set_const($db, "PRODUIT_MULTIPRICES_LIMIT", GETPOST('value_PRODUIT_MULTIPRICES_LIMIT'), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if ($action == 'other') { @@ -252,7 +252,7 @@ if ($action == 'set') $value = GETPOST('value'); if (GETPOST('value', 'alpha')) $res = dolibarr_set_const($db, $const, $value, 'chaine', 0, '', $conf->entity); else $res = dolibarr_del_const($db, $const, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } //if ($action == 'other') diff --git a/htdocs/projet/admin/project.php b/htdocs/projet/admin/project.php index a46c64464f8..f36aae34c4f 100644 --- a/htdocs/projet/admin/project.php +++ b/htdocs/projet/admin/project.php @@ -58,7 +58,7 @@ if ($action == 'updateMask') if ($maskconstproject) $res = dolibarr_set_const($db, $maskconstproject, $maskproject, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -75,7 +75,7 @@ if ($action == 'updateMaskTask') if ($maskconstmasktask) $res = dolibarr_set_const($db, $maskconstmasktask, $masktaskt, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/recruitment/admin/public_interface.php b/htdocs/recruitment/admin/public_interface.php index a457c2a4427..31925608811 100644 --- a/htdocs/recruitment/admin/public_interface.php +++ b/htdocs/recruitment/admin/public_interface.php @@ -52,7 +52,7 @@ if ($action == 'update') { $res = dolibarr_set_const($db, "RECRUITMENT_ENABLE_PUBLIC_INTERFACE", $public, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/recruitment/admin/setup.php b/htdocs/recruitment/admin/setup.php index 342d32840c5..1c2d76ffd40 100644 --- a/htdocs/recruitment/admin/setup.php +++ b/htdocs/recruitment/admin/setup.php @@ -83,7 +83,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/recruitment/admin/setup_candidatures.php b/htdocs/recruitment/admin/setup_candidatures.php index 818e1479f0a..9bc3cd96d5a 100644 --- a/htdocs/recruitment/admin/setup_candidatures.php +++ b/htdocs/recruitment/admin/setup_candidatures.php @@ -83,7 +83,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/societe/admin/societe.php b/htdocs/societe/admin/societe.php index 49b58d61d08..aa738f0845b 100644 --- a/htdocs/societe/admin/societe.php +++ b/htdocs/societe/admin/societe.php @@ -75,7 +75,7 @@ if ($action == 'updateoptions') { $companysearch = GETPOST('activate_COMPANY_USE_SEARCH_TO_SELECT', 'alpha'); $res = dolibarr_set_const($db, "COMPANY_USE_SEARCH_TO_SELECT", $companysearch, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -88,7 +88,7 @@ if ($action == 'updateoptions') { $contactsearch = GETPOST('activate_CONTACT_USE_SEARCH_TO_SELECT', 'alpha'); $res = dolibarr_set_const($db, "CONTACT_USE_SEARCH_TO_SELECT", $contactsearch, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -101,7 +101,7 @@ if ($action == 'updateoptions') { $customertypedefault = GETPOST('defaultcustomertype', 'int'); $res = dolibarr_set_const($db, "THIRDPARTY_CUSTOMERTYPE_BY_DEFAULT", $customertypedefault, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -176,7 +176,7 @@ if ($action == 'setdoc') if ($action == "setaddrefinlist") { $setaddrefinlist = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_ADD_REF_IN_LIST", $setaddrefinlist, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -189,7 +189,7 @@ if ($action == "setaddrefinlist") { if ($action == "setaddadressinlist") { $val = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "COMPANY_SHOW_ADDRESS_SELECTLIST", $val, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -202,7 +202,7 @@ if ($action == "setaddadressinlist") { if ($action == "setaddemailphonetownincontactlist") { $val = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "CONTACT_SHOW_EMAIL_PHONE_TOWN_SELECTLIST", $val, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -214,7 +214,7 @@ if ($action == "setaddemailphonetownincontactlist") { if ($action == "setaskforshippingmet") { $setaskforshippingmet = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_ASK_FOR_SHIPPING_METHOD", $setaskforshippingmet, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -227,7 +227,7 @@ if ($action == "setaskforshippingmet") { if ($action == "setdisableprospectcustomer") { $setdisableprospectcustomer = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_DISABLE_PROSPECTSCUSTOMERS", $setdisableprospectcustomer, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -297,7 +297,7 @@ if ($action == 'sethideinactivethirdparty') if ($action == 'setonsearchandlistgooncustomerorsuppliercard') { $setonsearchandlistgooncustomerorsuppliercard = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_ON_SEARCH_AND_LIST_GO_ON_CUSTOMER_OR_SUPPLIER_CARD", $setonsearchandlistgooncustomerorsuppliercard, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/takepos/admin/appearance.php b/htdocs/takepos/admin/appearance.php index baceed47f3e..eb956ea9f32 100644 --- a/htdocs/takepos/admin/appearance.php +++ b/htdocs/takepos/admin/appearance.php @@ -47,7 +47,7 @@ if (GETPOST('action', 'alpha') == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/takepos/admin/other.php b/htdocs/takepos/admin/other.php index 6874665ace7..e0beeedf502 100644 --- a/htdocs/takepos/admin/other.php +++ b/htdocs/takepos/admin/other.php @@ -86,7 +86,7 @@ if (GETPOST('action', 'alpha') == 'set') { dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { $db->commit(); diff --git a/htdocs/takepos/admin/receipt.php b/htdocs/takepos/admin/receipt.php index 30a9d45ad5a..01873d317c4 100644 --- a/htdocs/takepos/admin/receipt.php +++ b/htdocs/takepos/admin/receipt.php @@ -52,7 +52,7 @@ if (GETPOST('action', 'alpha') == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/takepos/admin/setup.php b/htdocs/takepos/admin/setup.php index 84efe32839e..f3c17f6ee23 100644 --- a/htdocs/takepos/admin/setup.php +++ b/htdocs/takepos/admin/setup.php @@ -85,7 +85,7 @@ if ($action == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -97,7 +97,7 @@ if ($action == 'set') $maskconst = GETPOST('maskconst', 'alpha'); $maskvalue = GETPOST('maskvalue', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } elseif ($action == 'setrefmod') { diff --git a/htdocs/takepos/admin/terminal.php b/htdocs/takepos/admin/terminal.php index d8ad03a057c..ed4ef31af36 100644 --- a/htdocs/takepos/admin/terminal.php +++ b/htdocs/takepos/admin/terminal.php @@ -101,7 +101,7 @@ if (GETPOST('action', 'alpha') == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 42b39e7e902..2d477ec41b9 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -757,7 +757,7 @@ class Website extends CommonObject // Restore id of home page $object->fk_default_home = $newidforhome; $res = $object->update($user); - if (!$res > 0) + if (!($res > 0)) { $error++; setEventMessages($object->error, $object->errors, 'errors'); diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 9aa556b9fe3..3979dc90fbe 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -1576,7 +1576,7 @@ if ($action == 'setashome') $object->fk_default_home = $pageid; $res = $object->update($user); - if (!$res > 0) + if (! ($res > 0)) { $error++; setEventMessages($object->error, $object->errors, 'errors'); From 452aea1d8bfeef9a6a957f0dfa1cf7d2ac03ff06 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 17:49:08 +0100 Subject: [PATCH 048/219] Fix bad test --- htdocs/accountancy/admin/index.php | 37 ++++++++++++++----- htdocs/adherents/admin/adherent.php | 2 +- htdocs/adherents/admin/adherent_emails.php | 2 +- htdocs/adherents/admin/website.php | 2 +- htdocs/admin/agenda.php | 2 +- htdocs/admin/agenda_extsites.php | 12 +++--- htdocs/admin/bank.php | 2 +- htdocs/admin/bom.php | 6 +-- htdocs/admin/chequereceipts.php | 4 +- htdocs/admin/commande.php | 14 +++---- htdocs/admin/contract.php | 2 +- htdocs/admin/delivery.php | 4 +- htdocs/admin/expensereport.php | 4 +- htdocs/admin/facture.php | 12 +++--- htdocs/admin/fichinter.php | 14 +++---- htdocs/admin/holiday.php | 2 +- htdocs/admin/mailing.php | 10 +++-- htdocs/admin/mailman.php | 2 +- htdocs/admin/mrp.php | 6 +-- htdocs/admin/payment.php | 6 +-- htdocs/admin/paymentbybanktransfer.php | 12 +++--- htdocs/admin/prelevement.php | 4 +- htdocs/admin/propal.php | 12 +++--- htdocs/admin/spip.php | 2 +- htdocs/admin/stock.php | 2 +- htdocs/admin/supplier_invoice.php | 4 +- htdocs/admin/supplier_order.php | 4 +- htdocs/admin/supplier_payment.php | 4 +- htdocs/admin/supplier_proposal.php | 8 ++-- htdocs/admin/syslog.php | 4 +- htdocs/admin/taxes.php | 10 ++--- htdocs/admin/ticket.php | 22 +++++------ htdocs/admin/ticket_public.php | 22 +++++------ htdocs/bookmarks/admin/bookmark.php | 2 +- htdocs/cashdesk/admin/cashdesk.php | 2 +- htdocs/collab/index.php | 2 +- htdocs/comm/remx.php | 2 +- htdocs/core/actions_setmoduleoptions.inc.php | 2 +- htdocs/don/admin/donation.php | 4 +- htdocs/modulebuilder/template/admin/setup.php | 15 ++++---- htdocs/paypal/admin/paypal.php | 2 +- htdocs/product/admin/product.php | 6 +-- htdocs/projet/admin/project.php | 4 +- htdocs/recruitment/admin/public_interface.php | 2 +- htdocs/recruitment/admin/setup.php | 2 +- .../recruitment/admin/setup_candidatures.php | 2 +- htdocs/societe/admin/societe.php | 18 ++++----- htdocs/takepos/admin/appearance.php | 2 +- htdocs/takepos/admin/other.php | 2 +- htdocs/takepos/admin/receipt.php | 2 +- htdocs/takepos/admin/setup.php | 4 +- htdocs/takepos/admin/terminal.php | 2 +- htdocs/website/class/website.class.php | 2 +- htdocs/website/index.php | 2 +- 54 files changed, 180 insertions(+), 156 deletions(-) diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index 516af988334..00922f90454 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -103,8 +103,9 @@ if ($action == 'update') { if ($action == 'setlistsorttodo') { $setlistsorttodo = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_LIST_SORT_VENTILATION_TODO", $setlistsorttodo, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -116,8 +117,10 @@ if ($action == 'setlistsorttodo') { if ($action == 'setlistsortdone') { $setlistsortdone = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_LIST_SORT_VENTILATION_DONE", $setlistsortdone, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -128,8 +131,10 @@ if ($action == 'setlistsortdone') { if ($action == 'setmanagezero') { $setmanagezero = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_MANAGE_ZERO", $setmanagezero, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -140,8 +145,10 @@ if ($action == 'setmanagezero') { if ($action == 'setdisabledirectinput') { $setdisabledirectinput = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "BANK_DISABLE_DIRECT_INPUT", $setdisabledirectinput, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -152,8 +159,10 @@ if ($action == 'setdisabledirectinput') { if ($action == 'setenabledraftexport') { $setenabledraftexport = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL", $setenabledraftexport, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -164,8 +173,10 @@ if ($action == 'setenabledraftexport') { if ($action == 'setenablesubsidiarylist') { $setenablesubsidiarylist = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTANCY_COMBO_FOR_AUX", $setenablesubsidiarylist, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -176,8 +187,10 @@ if ($action == 'setenablesubsidiarylist') { if ($action == 'setdisablebindingonsales') { $setdisablebindingonsales = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_DISABLE_BINDING_ON_SALES", $setdisablebindingonsales, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -188,8 +201,10 @@ if ($action == 'setdisablebindingonsales') { if ($action == 'setdisablebindingonpurchases') { $setdisablebindingonpurchases = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_DISABLE_BINDING_ON_PURCHASES", $setdisablebindingonpurchases, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -200,8 +215,10 @@ if ($action == 'setdisablebindingonpurchases') { if ($action == 'setdisablebindingonexpensereports') { $setdisablebindingonexpensereports = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS", $setdisablebindingonexpensereports, 'yesno', 0, '', $conf->entity); - if (!$res > 0) + if (!($res > 0)) { $error++; + } + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -209,9 +226,11 @@ if ($action == 'setdisablebindingonexpensereports') { } } + /* * View */ + $form = new Form($db); $title = $langs->trans('ConfigAccountingExpert'); diff --git a/htdocs/adherents/admin/adherent.php b/htdocs/adherents/admin/adherent.php index 8acf1f1b191..fef3bd53177 100644 --- a/htdocs/adherents/admin/adherent.php +++ b/htdocs/adherents/admin/adherent.php @@ -136,7 +136,7 @@ if ($action == 'update' || $action == 'add') { $constnote = GETPOST('constnote'); $res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/adherents/admin/adherent_emails.php b/htdocs/adherents/admin/adherent_emails.php index 4374d281895..21ce5037ef5 100644 --- a/htdocs/adherents/admin/adherent_emails.php +++ b/htdocs/adherents/admin/adherent_emails.php @@ -92,7 +92,7 @@ if ($action == 'update' || $action == 'add') { $res = dolibarr_set_const($db, $constname, $constvalue, $typetouse, 0, $constnote, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/adherents/admin/website.php b/htdocs/adherents/admin/website.php index d0cdb098bae..e3acf3c4d99 100644 --- a/htdocs/adherents/admin/website.php +++ b/htdocs/adherents/admin/website.php @@ -63,7 +63,7 @@ if ($action == 'update') { $res = dolibarr_set_const($db, "MEMBER_NEWFORM_FORCETYPE", $forcetype, 'chaine', 0, '', $conf->entity); } - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/admin/agenda.php b/htdocs/admin/agenda.php index b1cc1d7619b..efdd6213dd5 100644 --- a/htdocs/admin/agenda.php +++ b/htdocs/admin/agenda.php @@ -97,7 +97,7 @@ if ($action == "save" && empty($cancel)) if ($search_event === '' || preg_match('/'.preg_quote($search_event, '/').'/i', $keyparam)) { $res = dolibarr_set_const($db, $keyparam, (GETPOST($keyparam, 'alpha') ?GETPOST($keyparam, 'alpha') : ''), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } } diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php index 7fbd139072d..f99c530c7e2 100644 --- a/htdocs/admin/agenda_extsites.php +++ b/htdocs/admin/agenda_extsites.php @@ -82,15 +82,15 @@ if ($actionsave) //print '-name='.$name.'-color='.$color; $res = dolibarr_set_const($db, 'AGENDA_EXT_NAME'.$i, $name, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'AGENDA_EXT_SRC'.$i, $src, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'AGENDA_EXT_OFFSETTZ'.$i, $offsettz, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'AGENDA_EXT_COLOR'.$i, $color, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'AGENDA_EXT_ENABLED'.$i, $enabled, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $i++; } @@ -98,7 +98,7 @@ if ($actionsave) if (!$error) { $res = dolibarr_set_const($db, 'AGENDA_EXT_NB', trim(GETPOST('AGENDA_EXT_NB', 'int')), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB = 5; $MAXAGENDA = empty($conf->global->AGENDA_EXT_NB) ? 5 : $conf->global->AGENDA_EXT_NB; } diff --git a/htdocs/admin/bank.php b/htdocs/admin/bank.php index d21ffdb1630..4cd7bff4ed8 100644 --- a/htdocs/admin/bank.php +++ b/htdocs/admin/bank.php @@ -112,7 +112,7 @@ if ($actionsave) if ($color == '-1') $color = ''; $res = dolibarr_set_const($db, 'BANK_COLORIZE_MOVEMENT_COLOR'.$i, $color, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $i++; } diff --git a/htdocs/admin/bom.php b/htdocs/admin/bom.php index 34c3af89c53..36b5ab91f67 100644 --- a/htdocs/admin/bom.php +++ b/htdocs/admin/bom.php @@ -52,7 +52,7 @@ if ($action == 'updateMask') if ($maskconstbom) $res = dolibarr_set_const($db, $maskconstbom, $maskbom, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -141,7 +141,7 @@ elseif ($action == 'setdoc') $draft = GETPOST("BOM_DRAFT_WATERMARK"); $res = dolibarr_set_const($db, "BOM_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -155,7 +155,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "BOM_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/chequereceipts.php b/htdocs/admin/chequereceipts.php index 8c2acb5dc8b..f00e6454761 100644 --- a/htdocs/admin/chequereceipts.php +++ b/htdocs/admin/chequereceipts.php @@ -55,7 +55,7 @@ if ($action == 'updateMask') $maskchequereceipts = GETPOST('maskchequereceipts', 'alpha'); if ($maskconstchequereceipts) $res = dolibarr_set_const($db, $maskconstchequereceipts, $maskchequereceipts, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -76,7 +76,7 @@ if ($action == 'set_BANK_CHEQUERECEIPT_FREE_TEXT') $res = dolibarr_set_const($db, "BANK_CHEQUERECEIPT_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php index cde0253f99a..5e5655f918f 100644 --- a/htdocs/admin/commande.php +++ b/htdocs/admin/commande.php @@ -61,7 +61,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -146,7 +146,7 @@ elseif ($action == 'setdoc') { $draft = GETPOST("COMMANDE_DRAFT_WATERMARK"); $res = dolibarr_set_const($db, "COMMANDE_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -160,7 +160,7 @@ elseif ($action == 'setdoc') { $res = dolibarr_set_const($db, "ORDER_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -172,7 +172,7 @@ elseif ($action == 'setdoc') { // Activate Set Shippable Icon In List $setshippableiconinlist = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SHIPPABLE_ORDER_ICON_IN_LIST", $setshippableiconinlist, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -186,7 +186,7 @@ elseif ($action == 'setdoc') { $res = dolibarr_set_const($db, "FACTURE_RIB_NUMBER", $rib, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "FACTURE_CHQ_NUMBER", $chq, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -201,7 +201,7 @@ elseif ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_ORDER') { $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_ORDER", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -216,7 +216,7 @@ elseif ($action == 'set_WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER') { $res = dolibarr_set_const($db, "WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/contract.php b/htdocs/admin/contract.php index b5e4c0ddf45..05330e92b89 100644 --- a/htdocs/admin/contract.php +++ b/htdocs/admin/contract.php @@ -57,7 +57,7 @@ if ($action == 'updateMask') $maskvalue = GETPOST('maskcontract', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/delivery.php b/htdocs/admin/delivery.php index b1606268205..9b9060aa054 100644 --- a/htdocs/admin/delivery.php +++ b/htdocs/admin/delivery.php @@ -58,7 +58,7 @@ if ($action == 'updateMask') $maskdelivery = GETPOST('maskdelivery', 'alpha'); if ($maskconstdelivery) $res = dolibarr_set_const($db, $maskconstdelivery, $maskdelivery, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -73,7 +73,7 @@ if ($action == 'set_DELIVERY_FREE_TEXT') $free = GETPOST('DELIVERY_FREE_TEXT', 'restricthtml'); // No alpha here, we want exact string $res = dolibarr_set_const($db, "DELIVERY_FREE_TEXT", $free, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/expensereport.php b/htdocs/admin/expensereport.php index a93f5c3c608..8a76b46049e 100644 --- a/htdocs/admin/expensereport.php +++ b/htdocs/admin/expensereport.php @@ -58,7 +58,9 @@ if ($action == 'updateMask') $maskvalue = GETPOST('maskvalue', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) { + $error++; + } if (!$error) { diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php index 00dcb7c3180..c5b8262c4be 100644 --- a/htdocs/admin/facture.php +++ b/htdocs/admin/facture.php @@ -66,7 +66,7 @@ if ($action == 'updateMask') if ($maskconstcredit) $res = dolibarr_set_const($db, $maskconstcredit, $maskcredit, 'chaine', 0, '', $conf->entity); if ($maskconstdeposit) $res = dolibarr_set_const($db, $maskconstdeposit, $maskdeposit, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -156,7 +156,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "FACTURE_RIB_NUMBER", $rib, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "FACTURE_CHQ_NUMBER", $chq, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -170,7 +170,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "FACTURE_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -184,7 +184,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "INVOICE_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -198,7 +198,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "FAC_FORCE_DATE_VALIDATION", $forcedate, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -217,7 +217,7 @@ elseif ($action == 'setdoc') foreach ($invoicetypemodels as $type => $value) { $res = dolibarr_set_const($db, 'FACTURE_ADDON_PDF_'.intval($type), $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (!$error) diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php index e3178d946a0..afe6bc2239c 100644 --- a/htdocs/admin/fichinter.php +++ b/htdocs/admin/fichinter.php @@ -58,7 +58,7 @@ if ($action == 'updateMask') $maskvalue = GETPOST('maskvalue', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -147,7 +147,7 @@ elseif ($action == 'setdoc') $freetext = GETPOST('FICHINTER_FREE_TEXT', 'restricthtml'); // No alpha here, we want exact string $res = dolibarr_set_const($db, "FICHINTER_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -160,7 +160,7 @@ elseif ($action == 'setdoc') $draft = GETPOST('FICHINTER_DRAFT_WATERMARK', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -173,7 +173,7 @@ elseif ($action == 'setdoc') $val = GETPOST('FICHINTER_PRINT_PRODUCTS', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_PRINT_PRODUCTS", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -185,7 +185,7 @@ elseif ($action == 'setdoc') $val = GETPOST('FICHINTER_USE_SERVICE_DURATION', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_USE_SERVICE_DURATION", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -198,7 +198,7 @@ elseif ($action == 'setdoc') $val = GETPOST('FICHINTER_WITHOUT_DURATION', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_WITHOUT_DURATION", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -211,7 +211,7 @@ elseif ($action == 'setdoc') $val = GETPOST('FICHINTER_DATE_WITHOUT_HOUR', 'alpha'); $res = dolibarr_set_const($db, "FICHINTER_DATE_WITHOUT_HOUR", ($val == 'on' ? 1 : 0), 'bool', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } diff --git a/htdocs/admin/holiday.php b/htdocs/admin/holiday.php index eca8319d661..d8de2dd847d 100644 --- a/htdocs/admin/holiday.php +++ b/htdocs/admin/holiday.php @@ -59,7 +59,7 @@ if ($action == 'updateMask') $maskvalue = GETPOST('maskholiday', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/mailing.php b/htdocs/admin/mailing.php index 1c96ce68780..1bf77419f34 100644 --- a/htdocs/admin/mailing.php +++ b/htdocs/admin/mailing.php @@ -51,15 +51,17 @@ if ($action == 'setvalue') $mailingdelay = GETPOST('MAILING_DELAY', 'int'); $res = dolibarr_set_const($db, "MAILING_EMAIL_FROM", $mailfrom, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, "MAILING_EMAIL_ERRORSTO", $mailerror, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, "MAILING_DELAY", $mailingdelay, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; + $res = dolibarr_set_const($db, "MAILING_CONTACT_DEFAULT_BULK_STATUS", $contactbulkdefault, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) $error++; // Create temporary encryption key if nedded $res = dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE_KEY", $checkread_key, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/mailman.php b/htdocs/admin/mailman.php index 8070beab59b..3c9c634a8cd 100644 --- a/htdocs/admin/mailman.php +++ b/htdocs/admin/mailman.php @@ -59,7 +59,7 @@ if ($action == 'update' || $action == 'add') $constnote = $_POST["constnote"][$key]; $res = dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (!$error) diff --git a/htdocs/admin/mrp.php b/htdocs/admin/mrp.php index af6210eee1f..a5ae9d15e63 100644 --- a/htdocs/admin/mrp.php +++ b/htdocs/admin/mrp.php @@ -53,7 +53,7 @@ if ($action == 'updateMask') if ($maskconstmrp) $res = dolibarr_set_const($db, $maskconstmrp, $maskmrp, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -142,7 +142,7 @@ elseif ($action == 'setdoc') $draft = GETPOST("MRP_MO_DRAFT_WATERMARK"); $res = dolibarr_set_const($db, "MRP_MO_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -156,7 +156,7 @@ elseif ($action == 'setdoc') $res = dolibarr_set_const($db, "MRP_MO_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/payment.php b/htdocs/admin/payment.php index 378e1b4fe68..925c8fd6ff4 100644 --- a/htdocs/admin/payment.php +++ b/htdocs/admin/payment.php @@ -51,7 +51,7 @@ if ($action == 'updateMask') $maskpayment = GETPOST('maskpayment', 'alpha'); if ($maskconstpayment) $res = dolibarr_set_const($db, $maskconstpayment, $maskpayment, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -70,10 +70,10 @@ if ($action == 'setparams') { $freetext = GETPOST('FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS', 'restricthtml'); // No alpha here, we want exact string $res = dolibarr_set_const($db, "FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, "PAYMENTS_REPORT_GROUP_BY_MOD", GETPOST('PAYMENTS_REPORT_GROUP_BY_MOD', 'int'), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if ($error) { diff --git a/htdocs/admin/paymentbybanktransfer.php b/htdocs/admin/paymentbybanktransfer.php index cd0db2a1def..7d5ed1dafa8 100644 --- a/htdocs/admin/paymentbybanktransfer.php +++ b/htdocs/admin/paymentbybanktransfer.php @@ -53,7 +53,7 @@ if ($action == "set") if ($account->fetch($id) > 0) { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT", $id, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; /* $res = dolibarr_set_const($db, "PRELEVEMENT_CODE_BANQUE", $account->code_banque,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; @@ -73,29 +73,29 @@ if ($action == "set") } else $error++; $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ICS", GETPOST("PAYMENTBYBANKTRANSFER_ICS"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (GETPOST("PAYMENTBYBANKTRANSFER_USER") > 0) { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_USER", GETPOST("PAYMENTBYBANKTRANSFER_USER"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } /* if (GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END") || GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END") == "") { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_END_TO_END", GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (GETPOST("PAYMENTBYBANKTRANSFER_USTRD") || GETPOST("PAYMENTBYBANKTRANSFER_USTRD") == "") { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_USTRD", GETPOST("PAYMENTBYBANKTRANSFER_USTRD"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } */ if (GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS") || GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS") == "") { $res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ADDDAYS", GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS"), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } elseif (!$error) { $db->commit(); diff --git a/htdocs/admin/prelevement.php b/htdocs/admin/prelevement.php index c7bae90b373..2871049108b 100644 --- a/htdocs/admin/prelevement.php +++ b/htdocs/admin/prelevement.php @@ -55,7 +55,7 @@ if ($action == "set") if ($account->fetch($id) > 0) { $res = dolibarr_set_const($db, "PRELEVEMENT_ID_BANKACCOUNT", $id, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; /* $res = dolibarr_set_const($db, "PRELEVEMENT_CODE_BANQUE", $account->code_banque,'chaine',0,'',$conf->entity); if (! $res > 0) $error++; @@ -75,7 +75,7 @@ if ($action == "set") } else $error++; $res = dolibarr_set_const($db, "PRELEVEMENT_ICS", GETPOST("PRELEVEMENT_ICS"), 'chaine', 0, '', $conf->entity); - if (! ($res > 0)) $error++; + if (!($res > 0)) $error++; if (GETPOST("PRELEVEMENT_USER") > 0) { $res = dolibarr_set_const($db, "PRELEVEMENT_USER", GETPOST("PRELEVEMENT_USER"), 'chaine', 0, '', $conf->entity); diff --git a/htdocs/admin/propal.php b/htdocs/admin/propal.php index 78c22e7b397..6d80aa78211 100644 --- a/htdocs/admin/propal.php +++ b/htdocs/admin/propal.php @@ -57,7 +57,7 @@ if ($action == 'updateMask') { $maskpropal = GETPOST('maskpropal', 'alpha'); if ($maskconstpropal) $res = dolibarr_set_const($db, $maskconstpropal, $maskpropal, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -109,7 +109,7 @@ if ($action == 'updateMask') { $res = dolibarr_set_const($db, "FACTURE_RIB_NUMBER", $rib, 'chaine', 0, '', $conf->entity); $res = dolibarr_set_const($db, "FACTURE_CHQ_NUMBER", $chq, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -121,7 +121,7 @@ if ($action == 'updateMask') { $draft = GETPOST('PROPALE_DRAFT_WATERMARK', 'alpha'); $res = dolibarr_set_const($db, "PROPALE_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -134,7 +134,7 @@ if ($action == 'updateMask') { $res = dolibarr_set_const($db, "PROPOSAL_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -145,7 +145,7 @@ if ($action == 'updateMask') { } elseif ($action == 'setdefaultduration') { $res = dolibarr_set_const($db, "PROPALE_VALIDITY_DURATION", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -156,7 +156,7 @@ if ($action == 'updateMask') { } elseif ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL') { $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/admin/spip.php b/htdocs/admin/spip.php index 2fa111578a9..018fb70a80d 100644 --- a/htdocs/admin/spip.php +++ b/htdocs/admin/spip.php @@ -67,7 +67,7 @@ if ($action == 'update' || $action == 'add') $res = dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (!$error) diff --git a/htdocs/admin/stock.php b/htdocs/admin/stock.php index 031b0ef102f..39a9e5ae601 100644 --- a/htdocs/admin/stock.php +++ b/htdocs/admin/stock.php @@ -96,7 +96,7 @@ if ($action == 'warehouse') if ($value == -1 || empty($value) && !empty($conf->global->MAIN_DEFAULT_WAREHOUSE)) { $res = dolibarr_del_const($db, "MAIN_DEFAULT_WAREHOUSE", $conf->entity); } - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if ($action == 'specimen') diff --git a/htdocs/admin/supplier_invoice.php b/htdocs/admin/supplier_invoice.php index 86faa655687..b7a14a53541 100644 --- a/htdocs/admin/supplier_invoice.php +++ b/htdocs/admin/supplier_invoice.php @@ -65,7 +65,7 @@ if ($action == 'updateMask') if ($maskconstinvoice) $res = dolibarr_set_const($db, $maskconstinvoice, $maskinvoice, 'chaine', 0, '', $conf->entity); if ($maskconstcredit) $res = dolibarr_set_const($db, $maskconstcredit, $maskcredit, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -170,7 +170,7 @@ if ($action == 'set_SUPPLIER_INVOICE_FREE_TEXT') $res = dolibarr_set_const($db, "SUPPLIER_INVOICE_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/supplier_order.php b/htdocs/admin/supplier_order.php index e2433c5348b..f255a77348a 100644 --- a/htdocs/admin/supplier_order.php +++ b/htdocs/admin/supplier_order.php @@ -63,7 +63,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -194,7 +194,7 @@ elseif ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER') { $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/supplier_payment.php b/htdocs/admin/supplier_payment.php index 3408496de31..c0e0d650d90 100644 --- a/htdocs/admin/supplier_payment.php +++ b/htdocs/admin/supplier_payment.php @@ -52,7 +52,7 @@ if ($action == 'updateMask') $masksupplierpayment = GETPOST('masksupplierpayment', 'alpha'); if ($maskconstsupplierpayment) $res = dolibarr_set_const($db, $maskconstsupplierpayment, $masksupplierpayment, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -136,7 +136,7 @@ elseif ($action == 'setdoc') } elseif ($action == 'setparams') { $res = dolibarr_set_const($db, "PAYMENTS_FOURN_REPORT_GROUP_BY_MOD", GETPOST('PAYMENTS_FOURN_REPORT_GROUP_BY_MOD', 'int'), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if ($error) { diff --git a/htdocs/admin/supplier_proposal.php b/htdocs/admin/supplier_proposal.php index 0855a41cf8f..dac0a733782 100644 --- a/htdocs/admin/supplier_proposal.php +++ b/htdocs/admin/supplier_proposal.php @@ -55,7 +55,7 @@ if ($action == 'updateMask') $masksupplier_proposal = GETPOST('masksupplier_proposal', 'alpha'); if ($maskconstsupplier_proposal) $res = dolibarr_set_const($db, $maskconstsupplier_proposal, $masksupplier_proposal, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -111,7 +111,7 @@ if ($action == 'set_SUPPLIER_PROPOSAL_DRAFT_WATERMARK') $draft = GETPOST('SUPPLIER_PROPOSAL_DRAFT_WATERMARK', 'alpha'); $res = dolibarr_set_const($db, "SUPPLIER_PROPOSAL_DRAFT_WATERMARK", trim($draft), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -127,7 +127,7 @@ if ($action == 'set_SUPPLIER_PROPOSAL_FREE_TEXT') $res = dolibarr_set_const($db, "SUPPLIER_PROPOSAL_FREE_TEXT", $freetext, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -141,7 +141,7 @@ if ($action == 'set_BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL') { $res = dolibarr_set_const($db, "BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL", $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/admin/syslog.php b/htdocs/admin/syslog.php index 45500843aed..c884e30da75 100644 --- a/htdocs/admin/syslog.php +++ b/htdocs/admin/syslog.php @@ -138,7 +138,7 @@ if ($action == 'setlevel') $res = dolibarr_set_const($db, "SYSLOG_LEVEL", $level, 'chaine', 0, '', 0); dol_syslog("admin/syslog: level ".$level); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -146,7 +146,7 @@ if ($action == 'setlevel') $res = dolibarr_set_const($db, "SYSLOG_FILE_SAVES", $file_saves, 'chaine', 0, '', 0); dol_syslog("admin/syslog: file saves ".$file_saves); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if (!$error) diff --git a/htdocs/admin/taxes.php b/htdocs/admin/taxes.php index 0963a264c52..4efc95061d4 100644 --- a/htdocs/admin/taxes.php +++ b/htdocs/admin/taxes.php @@ -65,7 +65,7 @@ if ($action == 'update') { $db->begin(); $res = dolibarr_set_const($db, 'TAX_MODE', $tax_mode, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; switch ($tax_mode) { @@ -90,13 +90,13 @@ if ($action == 'update') { } $res = dolibarr_set_const($db, 'TAX_MODE_SELL_PRODUCT', $valuesellproduct, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'TAX_MODE_BUY_PRODUCT', $valuebuyproduct, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'TAX_MODE_SELL_SERVICE', $valuesellservice, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; $res = dolibarr_set_const($db, 'TAX_MODE_BUY_SERVICE', $valuebuyservice, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'alpha'), 'chaine', 0, '', $conf->entity); diff --git a/htdocs/admin/ticket.php b/htdocs/admin/ticket.php index f7e72f53e7e..690fee6a222 100644 --- a/htdocs/admin/ticket.php +++ b/htdocs/admin/ticket.php @@ -59,7 +59,7 @@ if ($action == 'updateMask') { $res = dolibarr_set_const($db, $maskconstticket, $maskticket, 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -113,7 +113,7 @@ elseif ($action == 'setmod') { } else { $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', '', 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -124,7 +124,7 @@ elseif ($action == 'setmod') { } else { $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', '', 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -134,7 +134,7 @@ elseif ($action == 'setmod') { } else { $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $langs->trans('TicketMessageMailIntroText'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -144,7 +144,7 @@ elseif ($action == 'setmod') { } else { $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $langs->trans('TicketMessageMailSignatureText'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } } @@ -152,13 +152,13 @@ elseif ($action == 'setmod') { if ($action == 'setvarother') { $param_must_exists = GETPOST('TICKET_EMAIL_MUST_EXISTS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_EMAIL_MUST_EXISTS', $param_must_exists, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_disable_email = GETPOST('TICKET_DISABLE_NOTIFICATION_MAILS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_DISABLE_NOTIFICATION_MAILS', $param_disable_email, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -166,7 +166,7 @@ if ($action == 'setvarother') { { $param_show_module_logo = GETPOST('TICKET_SHOW_MODULE_LOGO', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_SHOW_MODULE_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } @@ -175,20 +175,20 @@ if ($action == 'setvarother') { { $param_notification_also_main_addressemail = GETPOST('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } $param_limit_view = GETPOST('TICKET_LIMIT_VIEW_ASSIGNED_ONLY', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_LIMIT_VIEW_ASSIGNED_ONLY', $param_limit_view, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_auto_assign = GETPOST('TICKET_AUTO_ASSIGN_USER_CREATE', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_AUTO_ASSIGN_USER_CREATE', $param_auto_assign, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } diff --git a/htdocs/admin/ticket_public.php b/htdocs/admin/ticket_public.php index 80f458a2b5c..2bbf620b3c6 100644 --- a/htdocs/admin/ticket_public.php +++ b/htdocs/admin/ticket_public.php @@ -63,7 +63,7 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', '', 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -73,7 +73,7 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $langs->trans('TicketPublicInterfaceTextHome'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -83,7 +83,7 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -93,7 +93,7 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_NEW', $langs->trans('TicketMessageMailNewText'), 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -103,13 +103,13 @@ if ($action == 'setvar') { } else { $res = dolibarr_set_const($db, 'TICKET_URL_PUBLIC_INTERFACE', '', 'chaine', 0, '', $conf->entity); } - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_public_notification_new_message_default_email = GETPOST('TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL', $param_public_notification_new_message_default_email, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } @@ -117,25 +117,25 @@ if ($action == 'setvar') { if ($action == 'setvarother') { $param_enable_public_interface = GETPOST('TICKET_ENABLE_PUBLIC_INTERFACE', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', $param_enable_public_interface, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_must_exists = GETPOST('TICKET_EMAIL_MUST_EXISTS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_EMAIL_MUST_EXISTS', $param_must_exists, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_disable_email = GETPOST('TICKET_DISABLE_CUSTOMER_MAILS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_DISABLE_CUSTOMER_MAILS', $param_disable_email, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } $param_show_module_logo = GETPOST('TICKET_SHOW_COMPANY_LOGO', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_SHOW_COMPANY_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } @@ -143,7 +143,7 @@ if ($action == 'setvarother') { { $param_notification_also_main_addressemail = GETPOST('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', 'alpha'); $res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } diff --git a/htdocs/bookmarks/admin/bookmark.php b/htdocs/bookmarks/admin/bookmark.php index c049d4af16f..5f30db5d7f2 100644 --- a/htdocs/bookmarks/admin/bookmark.php +++ b/htdocs/bookmarks/admin/bookmark.php @@ -38,7 +38,7 @@ if ($action == 'setvalue') { $showmenu = GETPOST('BOOKMARKS_SHOW_IN_MENU', 'alpha'); $res = dolibarr_set_const($db, "BOOKMARKS_SHOW_IN_MENU", $showmenu, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } diff --git a/htdocs/cashdesk/admin/cashdesk.php b/htdocs/cashdesk/admin/cashdesk.php index 5f0e9baddf5..21e10c05fc7 100644 --- a/htdocs/cashdesk/admin/cashdesk.php +++ b/htdocs/cashdesk/admin/cashdesk.php @@ -62,7 +62,7 @@ if (GETPOST('action', 'alpha') == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/collab/index.php b/htdocs/collab/index.php index 7353ea881ee..e5fe22c9168 100644 --- a/htdocs/collab/index.php +++ b/htdocs/collab/index.php @@ -114,7 +114,7 @@ if ($action == 'delete') if ($res > 0) { $res = $objectpage->delete($user); - if (!$res > 0) + if (!($res > 0)) { $error++; setEventMessages($objectpage->error, $objectpage->errors, 'errors'); diff --git a/htdocs/comm/remx.php b/htdocs/comm/remx.php index 57c1cf40114..e2900858c84 100644 --- a/htdocs/comm/remx.php +++ b/htdocs/comm/remx.php @@ -70,7 +70,7 @@ if ($action == 'confirm_split' && GETPOST("confirm", "alpha") == 'yes') $remid = (GETPOST("remid", 'int') ? GETPOST("remid", 'int') : 0); $discount = new DiscountAbsolute($db); $res = $discount->fetch($remid); - if (!$res > 0) + if (!($res > 0)) { $error++; setEventMessages($langs->trans("ErrorFailedToLoadDiscount"), null, 'errors'); diff --git a/htdocs/core/actions_setmoduleoptions.inc.php b/htdocs/core/actions_setmoduleoptions.inc.php index 31af34e3ad1..d662d3c85c9 100644 --- a/htdocs/core/actions_setmoduleoptions.inc.php +++ b/htdocs/core/actions_setmoduleoptions.inc.php @@ -73,7 +73,7 @@ if ($action == 'setModuleOptions') if ($param) { $res = dolibarr_set_const($db, $param, $value, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } } } diff --git a/htdocs/don/admin/donation.php b/htdocs/don/admin/donation.php index 78a3d50dfcc..7b0896134e0 100644 --- a/htdocs/don/admin/donation.php +++ b/htdocs/don/admin/donation.php @@ -118,7 +118,7 @@ if ($action == 'set_DONATION_ACCOUNTINGACCOUNT') $res = dolibarr_set_const($db, "DONATION_ACCOUNTINGACCOUNT", $account, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -134,7 +134,7 @@ if ($action == 'set_DONATION_MESSAGE') $res = dolibarr_set_const($db, "DONATION_MESSAGE", $freemessage, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/modulebuilder/template/admin/setup.php b/htdocs/modulebuilder/template/admin/setup.php index c7cc61171a7..e4545390457 100644 --- a/htdocs/modulebuilder/template/admin/setup.php +++ b/htdocs/modulebuilder/template/admin/setup.php @@ -76,17 +76,18 @@ if ((float) DOL_VERSION >= 6) include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; } -if ($action == 'updateMask') -{ +if ($action == 'updateMask') { $maskconstorder = GETPOST('maskconstorder', 'alpha'); $maskorder = GETPOST('maskorder', 'alpha'); - if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); + if ($maskconstorder) { + $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + } - if (!$res > 0) $error++; - - if (!$error) - { + if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { setEventMessages($langs->trans("Error"), null, 'errors'); diff --git a/htdocs/paypal/admin/paypal.php b/htdocs/paypal/admin/paypal.php index 5ab913f7ce9..b16748f66b4 100644 --- a/htdocs/paypal/admin/paypal.php +++ b/htdocs/paypal/admin/paypal.php @@ -92,7 +92,7 @@ if ($action == "setlive") { $liveenable = GETPOST('value', 'int') ? 0 : 1; $res = dolibarr_set_const($db, "PAYPAL_API_SANDBOX", $liveenable, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/product/admin/product.php b/htdocs/product/admin/product.php index 6cd727d33b8..6057b6926b7 100644 --- a/htdocs/product/admin/product.php +++ b/htdocs/product/admin/product.php @@ -89,12 +89,12 @@ if ($action == 'setcodeproduct') if ($action == 'other' && GETPOST('value_PRODUIT_LIMIT_SIZE') >= 0) { $res = dolibarr_set_const($db, "PRODUIT_LIMIT_SIZE", GETPOST('value_PRODUIT_LIMIT_SIZE'), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if ($action == 'other' && GETPOST('value_PRODUIT_MULTIPRICES_LIMIT') > 0) { $res = dolibarr_set_const($db, "PRODUIT_MULTIPRICES_LIMIT", GETPOST('value_PRODUIT_MULTIPRICES_LIMIT'), 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } if ($action == 'other') { @@ -249,7 +249,7 @@ if ($action == 'set') $value = GETPOST('value'); if (GETPOST('value', 'alpha')) $res = dolibarr_set_const($db, $const, $value, 'chaine', 0, '', $conf->entity); else $res = dolibarr_del_const($db, $const, $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; } //if ($action == 'other') diff --git a/htdocs/projet/admin/project.php b/htdocs/projet/admin/project.php index a46c64464f8..f36aae34c4f 100644 --- a/htdocs/projet/admin/project.php +++ b/htdocs/projet/admin/project.php @@ -58,7 +58,7 @@ if ($action == 'updateMask') if ($maskconstproject) $res = dolibarr_set_const($db, $maskconstproject, $maskproject, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -75,7 +75,7 @@ if ($action == 'updateMaskTask') if ($maskconstmasktask) $res = dolibarr_set_const($db, $maskconstmasktask, $masktaskt, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/recruitment/admin/public_interface.php b/htdocs/recruitment/admin/public_interface.php index a457c2a4427..31925608811 100644 --- a/htdocs/recruitment/admin/public_interface.php +++ b/htdocs/recruitment/admin/public_interface.php @@ -52,7 +52,7 @@ if ($action == 'update') { $res = dolibarr_set_const($db, "RECRUITMENT_ENABLE_PUBLIC_INTERFACE", $public, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/recruitment/admin/setup.php b/htdocs/recruitment/admin/setup.php index 342d32840c5..1c2d76ffd40 100644 --- a/htdocs/recruitment/admin/setup.php +++ b/htdocs/recruitment/admin/setup.php @@ -83,7 +83,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/recruitment/admin/setup_candidatures.php b/htdocs/recruitment/admin/setup_candidatures.php index 818e1479f0a..9bc3cd96d5a 100644 --- a/htdocs/recruitment/admin/setup_candidatures.php +++ b/htdocs/recruitment/admin/setup_candidatures.php @@ -83,7 +83,7 @@ if ($action == 'updateMask') if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/societe/admin/societe.php b/htdocs/societe/admin/societe.php index 49b58d61d08..aa738f0845b 100644 --- a/htdocs/societe/admin/societe.php +++ b/htdocs/societe/admin/societe.php @@ -75,7 +75,7 @@ if ($action == 'updateoptions') { $companysearch = GETPOST('activate_COMPANY_USE_SEARCH_TO_SELECT', 'alpha'); $res = dolibarr_set_const($db, "COMPANY_USE_SEARCH_TO_SELECT", $companysearch, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -88,7 +88,7 @@ if ($action == 'updateoptions') { $contactsearch = GETPOST('activate_CONTACT_USE_SEARCH_TO_SELECT', 'alpha'); $res = dolibarr_set_const($db, "CONTACT_USE_SEARCH_TO_SELECT", $contactsearch, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -101,7 +101,7 @@ if ($action == 'updateoptions') { $customertypedefault = GETPOST('defaultcustomertype', 'int'); $res = dolibarr_set_const($db, "THIRDPARTY_CUSTOMERTYPE_BY_DEFAULT", $customertypedefault, 'chaine', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -176,7 +176,7 @@ if ($action == 'setdoc') if ($action == "setaddrefinlist") { $setaddrefinlist = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_ADD_REF_IN_LIST", $setaddrefinlist, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -189,7 +189,7 @@ if ($action == "setaddrefinlist") { if ($action == "setaddadressinlist") { $val = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "COMPANY_SHOW_ADDRESS_SELECTLIST", $val, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -202,7 +202,7 @@ if ($action == "setaddadressinlist") { if ($action == "setaddemailphonetownincontactlist") { $val = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "CONTACT_SHOW_EMAIL_PHONE_TOWN_SELECTLIST", $val, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { @@ -214,7 +214,7 @@ if ($action == "setaddemailphonetownincontactlist") { if ($action == "setaskforshippingmet") { $setaskforshippingmet = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_ASK_FOR_SHIPPING_METHOD", $setaskforshippingmet, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -227,7 +227,7 @@ if ($action == "setaskforshippingmet") { if ($action == "setdisableprospectcustomer") { $setdisableprospectcustomer = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_DISABLE_PROSPECTSCUSTOMERS", $setdisableprospectcustomer, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); @@ -297,7 +297,7 @@ if ($action == 'sethideinactivethirdparty') if ($action == 'setonsearchandlistgooncustomerorsuppliercard') { $setonsearchandlistgooncustomerorsuppliercard = GETPOST('value', 'int'); $res = dolibarr_set_const($db, "SOCIETE_ON_SEARCH_AND_LIST_GO_ON_CUSTOMER_OR_SUPPLIER_CARD", $setonsearchandlistgooncustomerorsuppliercard, 'yesno', 0, '', $conf->entity); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); diff --git a/htdocs/takepos/admin/appearance.php b/htdocs/takepos/admin/appearance.php index baceed47f3e..eb956ea9f32 100644 --- a/htdocs/takepos/admin/appearance.php +++ b/htdocs/takepos/admin/appearance.php @@ -47,7 +47,7 @@ if (GETPOST('action', 'alpha') == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/takepos/admin/other.php b/htdocs/takepos/admin/other.php index 6874665ace7..e0beeedf502 100644 --- a/htdocs/takepos/admin/other.php +++ b/htdocs/takepos/admin/other.php @@ -86,7 +86,7 @@ if (GETPOST('action', 'alpha') == 'set') { dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { $db->commit(); diff --git a/htdocs/takepos/admin/receipt.php b/htdocs/takepos/admin/receipt.php index 30a9d45ad5a..01873d317c4 100644 --- a/htdocs/takepos/admin/receipt.php +++ b/htdocs/takepos/admin/receipt.php @@ -52,7 +52,7 @@ if (GETPOST('action', 'alpha') == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/takepos/admin/setup.php b/htdocs/takepos/admin/setup.php index 84efe32839e..f3c17f6ee23 100644 --- a/htdocs/takepos/admin/setup.php +++ b/htdocs/takepos/admin/setup.php @@ -85,7 +85,7 @@ if ($action == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { @@ -97,7 +97,7 @@ if ($action == 'set') $maskconst = GETPOST('maskconst', 'alpha'); $maskvalue = GETPOST('maskvalue', 'alpha'); if ($maskconst) $res = dolibarr_set_const($db, $maskconst, $maskvalue, 'chaine', 0, '', $conf->entity); - if (!$res > 0) { + if (!($res > 0)) { $error++; } } elseif ($action == 'setrefmod') { diff --git a/htdocs/takepos/admin/terminal.php b/htdocs/takepos/admin/terminal.php index d8ad03a057c..ed4ef31af36 100644 --- a/htdocs/takepos/admin/terminal.php +++ b/htdocs/takepos/admin/terminal.php @@ -101,7 +101,7 @@ if (GETPOST('action', 'alpha') == 'set') dol_syslog("admin/cashdesk: level ".GETPOST('level', 'alpha')); - if (!$res > 0) $error++; + if (!($res > 0)) $error++; if (!$error) { diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 42b39e7e902..2d477ec41b9 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -757,7 +757,7 @@ class Website extends CommonObject // Restore id of home page $object->fk_default_home = $newidforhome; $res = $object->update($user); - if (!$res > 0) + if (!($res > 0)) { $error++; setEventMessages($object->error, $object->errors, 'errors'); diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 9aa556b9fe3..3979dc90fbe 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -1576,7 +1576,7 @@ if ($action == 'setashome') $object->fk_default_home = $pageid; $res = $object->update($user); - if (!$res > 0) + if (! ($res > 0)) { $error++; setEventMessages($object->error, $object->errors, 'errors'); From b4783f69d61610a50d3153fe2f1e68802e4d9f71 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 18:13:50 +0100 Subject: [PATCH 049/219] Show if permission is an advanced permission --- htdocs/langs/en_US/admin.lang | 3 ++- htdocs/user/perms.php | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 19903326e70..48a44577528 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -2089,4 +2089,5 @@ ModuleActivatedDoNotUseInProduction=A module designed for the development has be CombinationsSeparator=Separator character for product combinations SeeLinkToOnlineDocumentation=See link to online documention on top menu for examples SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module %s is used, show details of subproducts of a kit on PDF. -AskThisIDToYourBank=Contact your bank to get this ID \ No newline at end of file +AskThisIDToYourBank=Contact your bank to get this ID +AdvancedModeOnly=Permision available in Advanced permission mode only \ No newline at end of file diff --git a/htdocs/user/perms.php b/htdocs/user/perms.php index b058bae9743..68238b63c29 100644 --- a/htdocs/user/perms.php +++ b/htdocs/user/perms.php @@ -325,8 +325,8 @@ if ($result) // TODO Define familyposition $family = $modules[$obj->module]->family_position; $familyposition = 0; - $sqlupdate = 'UPDATE '.MAIN_DB_PREFIX."rights_def SET module_position = ".$modules[$obj->module]->module_position.","; - $sqlupdate .= " family_position = ".$familyposition; + $sqlupdate = 'UPDATE '.MAIN_DB_PREFIX."rights_def SET module_position = ".((int) $modules[$obj->module]->module_position).","; + $sqlupdate .= " family_position = ".((int) $familyposition); $sqlupdate .= " WHERE module_position = 0 AND module = '".$db->escape($obj->module)."'"; $db->query($sqlupdate); } @@ -438,9 +438,16 @@ if ($result) print ' '; } - // Label - $permlabel = ($conf->global->MAIN_USE_ADVANCED_PERMS && ($langs->trans("PermissionAdvanced".$obj->id) != ("PermissionAdvanced".$obj->id)) ? $langs->trans("PermissionAdvanced".$obj->id) : (($langs->trans("Permission".$obj->id) != ("Permission".$obj->id)) ? $langs->trans("Permission".$obj->id) : $langs->trans($obj->label))); - print ''.$permlabel.''; + // Label of permission + $permlabel = (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ($langs->trans("PermissionAdvanced".$obj->id) != ("PermissionAdvanced".$obj->id)) ? $langs->trans("PermissionAdvanced".$obj->id) : (($langs->trans("Permission".$obj->id) != ("Permission".$obj->id)) ? $langs->trans("Permission".$obj->id) : $langs->trans($obj->label))); + print ''; + print $permlabel; + if (!empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { + if (preg_match('/_advance$/', $obj->perms)) { + print ' ('.$langs->trans("AdvancedModeOnly").')'; + } + } + print ''; // Permission id if ($user->admin) print ''.$obj->id.''; From ae2b61d5ef15d39d85e850cde8d97a41dbe4e527 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sat, 23 Jan 2021 18:49:11 +0100 Subject: [PATCH 050/219] Fix stripe off_session set/unset --- htdocs/stripe/class/stripe.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 83b3905de43..a691b7bff40 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -428,11 +428,11 @@ class Stripe extends CommonObject // payment_method = // payment_method_types = array('card') //var_dump($dataforintent); - if ($off_session) - { - unset($dataforintent['setup_future_usage']); - $dataforintent["off_session"] = true; - } + if ($off_session) + { + unset($dataforintent['setup_future_usage']); + $dataforintent["setup_future_usage"] = "off_session"; + } if (!is_null($payment_method)) { $dataforintent["payment_method"] = $payment_method; From c5bbaffb5083ca426678d9d89e7b2741ead6bf1f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2021 19:50:04 +0100 Subject: [PATCH 051/219] Fix look and feel v13 --- htdocs/core/class/commonobject.class.php | 25 +++++++------------ htdocs/core/class/html.formticket.class.php | 2 +- .../class/recruitmentcandidature.class.php | 2 +- .../class/recruitmentjobposition.class.php | 8 +++--- htdocs/theme/eldy/global.inc.php | 4 +-- htdocs/ticket/card.php | 1 + 6 files changed, 18 insertions(+), 24 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index eb360b4a328..cc6dc21ba95 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -5912,8 +5912,7 @@ abstract class CommonObject $objectid = $this->id; - if ($computed) - { + if ($computed) { if (!preg_match('/^search_/', $keyprefix)) return ''.$langs->trans("AutomaticallyCalculated").''; else return ''; } @@ -5922,26 +5921,20 @@ abstract class CommonObject if (empty($morecss) && !empty($val['css'])) { $morecss = $val['css']; } elseif (empty($morecss)) { - if ($type == 'date') - { + if ($type == 'date') { $morecss = 'minwidth100imp'; - } elseif ($type == 'datetime' || $type == 'link') // link means an foreign key to another primary id - { + } elseif ($type == 'datetime' || $type == 'link') { // link means an foreign key to another primary id $morecss = 'minwidth200imp'; - } elseif (in_array($type, array('int', 'integer', 'price')) || preg_match('/^double(\([0-9],[0-9]\)){0,1}/', $type)) - { + } elseif (in_array($type, array('int', 'integer', 'price')) || preg_match('/^double(\([0-9],[0-9]\)){0,1}/', $type)) { $morecss = 'maxwidth75'; } elseif ($type == 'url') { $morecss = 'minwidth400'; - } elseif ($type == 'boolean') - { + } elseif ($type == 'boolean') { $morecss = ''; } else { - if (round($size) < 12) - { + if (round($size) < 12) { $morecss = 'minwidth100'; - } elseif (round($size) <= 48) - { + } elseif (round($size) <= 48) { $morecss = 'minwidth200'; } else { $morecss = 'minwidth400'; @@ -6338,13 +6331,13 @@ abstract class CommonObject if (!preg_match('/search_/', $keyprefix)) { if (!empty($param_list_array[2])) { // If the entry into $fields is set to add a create button - if ($this->fields[$key]['picto']) { + if (!empty($this->fields[$key]['picto'])) { $morecss .= ' widthcentpercentminusxx'; } else { $morecss .= ' widthcentpercentminusx'; } } else { - if ($this->fields[$key]['picto']) { + if (!empty($this->fields[$key]['picto'])) { $morecss .= ' widthcentpercentminusx'; } } diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index 60debed9f2d..d7cf03c41e0 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -408,7 +408,7 @@ class FormTicket { $formproject = new FormProjets($this->db); print ''; - print $formproject->select_projects(-1, GETPOST('projectid', 'int'), 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth500'); + print img_picto('', 'project').$formproject->select_projects(-1, GETPOST('projectid', 'int'), 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500'); print ''; } diff --git a/htdocs/recruitment/class/recruitmentcandidature.class.php b/htdocs/recruitment/class/recruitmentcandidature.class.php index 3049f83a053..9e99cbc29fb 100644 --- a/htdocs/recruitment/class/recruitmentcandidature.class.php +++ b/htdocs/recruitment/class/recruitmentcandidature.class.php @@ -115,7 +115,7 @@ class RecruitmentCandidature extends CommonObject 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2,), 'lastname' => array('type'=>'varchar(128)', 'label'=>'Lastname', 'enabled'=>'1', 'position'=>20, 'notnull'=>0, 'visible'=>1,), 'firstname' => array('type'=>'varchar(128)', 'label'=>'Firstname', 'enabled'=>'1', 'position'=>21, 'notnull'=>0, 'visible'=>1,), - 'email' => array('type'=>'varchar(255)', 'label'=>'EMail', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1,), + 'email' => array('type'=>'varchar(255)', 'label'=>'EMail', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'picto'=>'email'), 'phone' => array('type'=>'varchar(64)', 'label'=>'Phone', 'enabled'=>'1', 'position'=>31, 'notnull'=>0, 'visible'=>1,), 'date_birth' => array('type'=>'date', 'label'=>'DateOfBirth', 'enabled'=>'1', 'position'=>70, 'visible'=>-1,), 'email_msgid' => array('type'=>'varchar(255)', 'label'=>'EmailMsgID', 'visible'=>-2, 'enabled'=>1, 'position'=>540, 'notnull'=>-1, 'help'=>'EmailMsgIDDesc'), diff --git a/htdocs/recruitment/class/recruitmentjobposition.class.php b/htdocs/recruitment/class/recruitmentjobposition.class.php index c202a523e58..6861717d825 100644 --- a/htdocs/recruitment/class/recruitmentjobposition.class.php +++ b/htdocs/recruitment/class/recruitmentjobposition.class.php @@ -103,13 +103,13 @@ class RecruitmentJobPosition extends CommonObject 'entity' => array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'position'=>5, 'notnull'=>1, 'default'=>'1', 'index'=>1), 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>'1', 'position'=>10, 'notnull'=>1, 'visible'=>4, 'noteditable'=>'1', 'default'=>'(PROV)', 'index'=>1, 'searchall'=>1, 'showoncombobox'=>'1', 'comment'=>"Reference of object"), 'label' => array('type'=>'varchar(255)', 'label'=>'JobLabel', 'enabled'=>'1', 'position'=>30, 'notnull'=>1, 'visible'=>1, 'searchall'=>1, 'css'=>'minwidth500', 'csslist'=>'tdoverflowmax300', 'showoncombobox'=>'1', 'autofocusoncreate'=>1), - 'qty' => array('type'=>'integer', 'label'=>'NbOfEmployeesExpected', 'enabled'=>'1', 'position'=>45, 'notnull'=>1, 'visible'=>1, 'default'=>'1', 'isameasure'=>'1', 'css'=>'maxwidth75imp',), - 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'enabled'=>'1', 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1,), + 'qty' => array('type'=>'integer', 'label'=>'NbOfEmployeesExpected', 'enabled'=>'1', 'position'=>45, 'notnull'=>1, 'visible'=>1, 'default'=>'1', 'isameasure'=>'1', 'css'=>'maxwidth75imp'), + 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php:1', 'label'=>'Project', 'enabled'=>'1', 'position'=>52, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'css'=>'maxwidth500', 'picto'=>'project'), 'fk_user_recruiter' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'ResponsibleOfRecruitement', 'enabled'=>'1', 'position'=>54, 'notnull'=>1, 'visible'=>1, 'foreignkey'=>'user.rowid', 'csslist'=>'tdoverflowmax150'), - 'email_recruiter' => array('type'=>'varchar(255)', 'label'=>'EmailRecruiter', 'enabled'=>'1', 'position'=>54, 'notnull'=>0, 'visible'=>-1, 'help'=>'ToUseAGenericEmail'), + 'email_recruiter' => array('type'=>'varchar(255)', 'label'=>'EmailRecruiter', 'enabled'=>'1', 'position'=>54, 'notnull'=>0, 'visible'=>-1, 'help'=>'ToUseAGenericEmail', 'picto'=>'email'), 'fk_user_supervisor' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'FutureManager', 'enabled'=>'1', 'position'=>55, 'notnull'=>0, 'visible'=>-1, 'foreignkey'=>'user.rowid',), 'fk_establishment' => array('type'=>'integer:Establishment:hrm/class/establishment.class.php', 'label'=>'Establishment', 'enabled'=>'$conf->hrm->enabled', 'position'=>56, 'notnull'=>0, 'visible'=>-1, 'foreignkey'=>'establishment.rowid',), - 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'WorkPlace', 'enabled'=>'1', 'position'=>57, 'notnull'=>-1, 'visible'=>-1, 'index'=>1, 'help'=>"IfJobIsLocatedAtAPartner",), + 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'WorkPlace', 'enabled'=>'1', 'position'=>57, 'notnull'=>-1, 'visible'=>-1, 'css'=>'maxwidth500', 'index'=>1, 'help'=>"IfJobIsLocatedAtAPartner", 'picto'=>'company'), 'date_planned' => array('type'=>'date', 'label'=>'DateExpected', 'enabled'=>'1', 'position'=>60, 'notnull'=>0, 'visible'=>1,), 'remuneration_suggested' => array('type'=>'varchar(255)', 'label'=>'Remuneration', 'enabled'=>'1', 'position'=>62, 'notnull'=>0, 'visible'=>1,), 'description' => array('type'=>'html', 'label'=>'Description', 'enabled'=>'1', 'position'=>65, 'notnull'=>0, 'visible'=>3,), diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index f700dbd0e2a..ce0ecf3d31f 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1313,11 +1313,11 @@ table[summary="list_of_modules"] .fa-cog { .minwidth500imp { min-width: 250px !important; } } -select.widthcentpercentminusx, span.widthcentpercentminusx, input.widthcentpercentminusx { +select.widthcentpercentminusx, span.widthcentpercentminusx:not(.select2-selection), input.widthcentpercentminusx { width: calc(100% - 52px) !important; display: inline-block; } -select.widthcentpercentminusxx, span.widthcentpercentminusxx, input.widthcentpercentminusxx { +select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-selection), input.widthcentpercentminusxx { width: calc(100% - 70px) !important; display: inline-block; } diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index d4185e7dbc6..6abb2464394 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -637,6 +637,7 @@ if (empty($reshook)) { if (GETPOSTISSET('actionbis') && $action == 'presend') $action = 'presend_addmessage'; } + /* * View */ From 58207589683d17826462d0f71edc34cb5693d449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sat, 23 Jan 2021 20:59:23 +0100 Subject: [PATCH 052/219] fix class name Tva --- htdocs/accountancy/journal/bankjournal.php | 2 +- htdocs/compta/bank/bankentries_list.php | 13 ++++++------- htdocs/compta/bank/releve.php | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index c47255647cb..71839ecf08a 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -150,7 +150,7 @@ $userstatic = new User($db); $bankaccountstatic = new Account($db); $chargestatic = new ChargeSociales($db); $paymentdonstatic = new PaymentDonation($db); -$paymentvatstatic = new TVA($db); +$paymentvatstatic = new Tva($db); $paymentsalstatic = new PaymentSalary($db); $paymentexpensereportstatic = new PaymentExpenseReport($db); $paymentvariousstatic = new PaymentVarious($db); diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index 63021eb3b07..ae0840c5b86 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -286,8 +286,9 @@ if (GETPOST('save') && !$cancel && $user->rights->banque->modifier) $cat1 = GETPOST("cat1", 'alpha'); $bankaccountid = $id; - if (GETPOST('add_account', 'int') > 0) $bankaccountid = GETPOST('add_account', 'int'); - + if (GETPOST('add_account', 'int') > 0) { + $bankaccountid = GETPOST('add_account', 'int'); + } if (!$dateop) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors'); @@ -304,8 +305,7 @@ if (GETPOST('save') && !$cancel && $user->rights->banque->modifier) $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Amount")), null, 'errors'); } - if (!$bankaccountid > 0) - { + if (!$bankaccountid > 0) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("BankAccount")), null, 'errors'); } @@ -315,8 +315,7 @@ if (GETPOST('save') && !$cancel && $user->rights->banque->modifier) $error++; }*/ - if (!$error && !empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)) - { + if (!$error && !empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)) { $objecttmp = new Account($db); $objecttmp->fetch($bankaccountid); $insertid = $objecttmp->addline($dateop, $operation, $label, $amount, $num_chq, ($cat1 > 0 ? $cat1 : 0), $user, '', '', $search_accountancy_code); @@ -368,7 +367,7 @@ $donstatic = new Don($db); $paymentstatic = new Paiement($db); $paymentsupplierstatic = new PaiementFourn($db); $paymentscstatic = new PaymentSocialContribution($db); -$paymentvatstatic = new TVA($db); +$paymentvatstatic = new Tva($db); $paymentsalstatic = new PaymentSalary($db); $paymentdonationstatic = new PaymentDonation($db); $paymentvariousstatic = new PaymentVarious($db); diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index 9a534b76320..c14c1bf6ab5 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -199,7 +199,7 @@ $chargestatic = new ChargeSociales($db); $memberstatic = new Adherent($db); $paymentstatic = new Paiement($db); $paymentsupplierstatic = new PaiementFourn($db); -$paymentvatstatic = new TVA($db); +$paymentvatstatic = new Tva($db); $bankstatic = new Account($db); $banklinestatic = new AccountLine($db); $remisestatic = new RemiseCheque($db); From 332db70fca16e93c88cfd0857cf79d948a81a5fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 13:04:02 +0100 Subject: [PATCH 053/219] Fix typo --- htdocs/website/class/website.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 2d477ec41b9..0c90b499bed 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -1300,7 +1300,7 @@ class Website extends CommonObject $object = $this; if (empty($object->ref)) { - $this->error = 'Function importWebSite called on object not loaded (object->ref is empty)'; + $this->error = 'Function rebuildWebSiteFiles called on object not loaded (object->ref is empty)'; return -1; } From 15b818da30a269839d6c59e5a19c456fe5c31d27 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 13:27:52 +0100 Subject: [PATCH 054/219] Code comment --- htdocs/core/lib/website2.lib.php | 18 +++++++++++------- htdocs/website/class/website.class.php | 3 ++- htdocs/website/index.php | 6 ++++-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index 3462212ee25..e558e4ee545 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -52,8 +52,8 @@ function dolSaveMasterFile($filemaster) } /** - * Save content of a page on disk. - * It can save file into root directory or into language subdirectory. + * Save an alias page on disk (A page that include the reference page). + * It saves file into the root directory but also into language subdirectory. * * @param string $filealias Full path of filename to generate * @param Website $object Object website @@ -82,7 +82,7 @@ function dolSavePageAlias($filealias, $object, $objectpage) @chmod($filealias, octdec($conf->global->MAIN_UMASK)); } - // Save also alias into language subdirectory if we have to + // Save also alias into language subdirectory if it is not a main language if ($objectpage->lang && in_array($objectpage->lang, explode(',', $object->otherlang))) { $dirname = dirname($filealias); $filename = basename($filealias); @@ -103,13 +103,16 @@ function dolSavePageAlias($filealias, $object, $objectpage) } } + // Save also alias into all language subdirectories if it is a main language + // TODO + return ($result ?true:false); } /** - * Save content of a page on disk. - * Page contents are always saved into root directory. + * Save content of a page on disk (page name is generally ID_of_page.php). + * Page contents are always saved into "root" directory. Only aliases pages saved with dolSavePageAlias() can be in root or language subdir. * * @param string $filetpl Full path of filename to generate * @param Website $object Object website @@ -230,10 +233,11 @@ function dolSavePageContent($filetpl, Website $object, WebsitePage $objectpage) //var_dump($filetpl);exit; $result = file_put_contents($filetpl, $tplcontent); - if (!empty($conf->global->MAIN_UMASK)) + if (!empty($conf->global->MAIN_UMASK)) { @chmod($filetpl, octdec($conf->global->MAIN_UMASK)); + } - return $result; + return $result; } diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 0c90b499bed..1f2212668f7 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -1316,6 +1316,7 @@ class Website extends CommonObject $num = $this->db->num_rows($resql); + // Loop on each container/page $i = 0; while ($i < $num) { $obj = $this->db->fetch_object($resql); @@ -1333,7 +1334,7 @@ class Website extends CommonObject $error++; } - // Regenerate alternative aliases pages + // Regenerate aliases pages (pages with a natural name) if (is_array($aliasesarray)) { foreach ($aliasesarray as $aliasshortcuttocreate) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 3979dc90fbe..30937b74c34 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2429,15 +2429,17 @@ if (!GETPOST('hide_websitemenu')) //print ''; print ''; + print ''; print ''; + // Regenerate all pages + print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("RegenerateWebsiteContent")).'">'; + print '   '; print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("ReplaceWebsiteContent")).'">'; - - print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("RegenerateWebsiteContent")).'">'; } print ''; From 0203965fbf8d07f7afb842713576f8be9594158e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 13:04:02 +0100 Subject: [PATCH 055/219] Fix typo --- htdocs/website/class/website.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 2d477ec41b9..0c90b499bed 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -1300,7 +1300,7 @@ class Website extends CommonObject $object = $this; if (empty($object->ref)) { - $this->error = 'Function importWebSite called on object not loaded (object->ref is empty)'; + $this->error = 'Function rebuildWebSiteFiles called on object not loaded (object->ref is empty)'; return -1; } From d9908efdef7b825111026a48e15eb0d3d3525d64 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 13:27:52 +0100 Subject: [PATCH 056/219] Code comment --- htdocs/core/lib/website2.lib.php | 18 +++++++++++------- htdocs/website/class/website.class.php | 3 ++- htdocs/website/index.php | 6 ++++-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index 3462212ee25..e558e4ee545 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -52,8 +52,8 @@ function dolSaveMasterFile($filemaster) } /** - * Save content of a page on disk. - * It can save file into root directory or into language subdirectory. + * Save an alias page on disk (A page that include the reference page). + * It saves file into the root directory but also into language subdirectory. * * @param string $filealias Full path of filename to generate * @param Website $object Object website @@ -82,7 +82,7 @@ function dolSavePageAlias($filealias, $object, $objectpage) @chmod($filealias, octdec($conf->global->MAIN_UMASK)); } - // Save also alias into language subdirectory if we have to + // Save also alias into language subdirectory if it is not a main language if ($objectpage->lang && in_array($objectpage->lang, explode(',', $object->otherlang))) { $dirname = dirname($filealias); $filename = basename($filealias); @@ -103,13 +103,16 @@ function dolSavePageAlias($filealias, $object, $objectpage) } } + // Save also alias into all language subdirectories if it is a main language + // TODO + return ($result ?true:false); } /** - * Save content of a page on disk. - * Page contents are always saved into root directory. + * Save content of a page on disk (page name is generally ID_of_page.php). + * Page contents are always saved into "root" directory. Only aliases pages saved with dolSavePageAlias() can be in root or language subdir. * * @param string $filetpl Full path of filename to generate * @param Website $object Object website @@ -230,10 +233,11 @@ function dolSavePageContent($filetpl, Website $object, WebsitePage $objectpage) //var_dump($filetpl);exit; $result = file_put_contents($filetpl, $tplcontent); - if (!empty($conf->global->MAIN_UMASK)) + if (!empty($conf->global->MAIN_UMASK)) { @chmod($filetpl, octdec($conf->global->MAIN_UMASK)); + } - return $result; + return $result; } diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 0c90b499bed..1f2212668f7 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -1316,6 +1316,7 @@ class Website extends CommonObject $num = $this->db->num_rows($resql); + // Loop on each container/page $i = 0; while ($i < $num) { $obj = $this->db->fetch_object($resql); @@ -1333,7 +1334,7 @@ class Website extends CommonObject $error++; } - // Regenerate alternative aliases pages + // Regenerate aliases pages (pages with a natural name) if (is_array($aliasesarray)) { foreach ($aliasesarray as $aliasshortcuttocreate) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 3979dc90fbe..30937b74c34 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2429,15 +2429,17 @@ if (!GETPOST('hide_websitemenu')) //print ''; print ''; + print ''; print ''; + // Regenerate all pages + print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("RegenerateWebsiteContent")).'">'; + print '   '; print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("ReplaceWebsiteContent")).'">'; - - print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("RegenerateWebsiteContent")).'">'; } print ''; From 4857a04acd9c01dc4e9294369345e337915d540a Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 24 Jan 2021 13:37:05 +0100 Subject: [PATCH 057/219] ADD new payment method for stripe still in development (work for support more payment modes) --- htdocs/stripe/admin/stripe.php | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index c304a00ce3f..9198277e2f7 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -387,6 +387,21 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) // TODO Not used by current code print ''; } +// Activate Bancontact +if ($conf->global->MAIN_FEATURES_LEVEL >= 2) // TODO Not used by current code +{ + print ''; + print $langs->trans("STRIPE_BANCONTACT").''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('STRIPE_BANCONTACT'); + } else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("STRIPE_BANCONTACT", $arrval, $conf->global->STRIPE_BANCONTACT); + } + print '   '.$langs->trans("ExampleOnlyForBECustomers").''; + print ''; +} + // Activate iDEAL if ($conf->global->MAIN_FEATURES_LEVEL >= 2) // TODO Not used by current code { @@ -402,6 +417,36 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) // TODO Not used by current code print ''; } +// Activate Giropay +if ($conf->global->MAIN_FEATURES_LEVEL >= 2) // TODO Not used by current code +{ + print ''; + print $langs->trans("STRIPE_GIROPAY").''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('STRIPE_GIROPAY'); + } else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("STRIPE_GIROPAY", $arrval, $conf->global->STRIPE_GIROPAY); + } + print '   '.$langs->trans("ExampleOnlyForDECustomers").''; + print ''; +} + +// Activate Sofort +if ($conf->global->MAIN_FEATURES_LEVEL >= 2) // TODO Not used by current code +{ + print ''; + print $langs->trans("STRIPE_SOFORT").''; + if ($conf->use_javascript_ajax) { + print ajax_constantonoff('STRIPE_SOFORT'); + } else { + $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); + print $form->selectarray("STRIPE_SOFORT", $arrval, $conf->global->STRIPE_SOFORT); + } + print '   '.$langs->trans("ExampleOnlyForATBEDEITNLESCustomers").''; + print ''; +} + // Warehouse for automatic decrement //if ($conf->global->MAIN_FEATURES_LEVEL >= 2) // warehouse to reduce stock for online payment //{ From 4765d7fb4f78a7b784b80787e803edb07855e88d Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 24 Jan 2021 13:38:03 +0100 Subject: [PATCH 058/219] Update stripe.class.php --- htdocs/stripe/class/stripe.class.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index db225196ea7..6c508e4f974 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2018-2021 Thibault FOUCART * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -409,7 +409,10 @@ class Stripe extends CommonObject // list of payment method types $paymentmethodtypes = array("card"); if (!empty($conf->global->STRIPE_SEPA_DIRECT_DEBIT)) $paymentmethodtypes[] = "sepa_debit"; //&& ($object->thirdparty->isInEEC()) - if (!empty($conf->global->STRIPE_IDEAL)) $paymentmethodtypes[] = "ideal"; //&& ($object->thirdparty->isInEEC()) + if (!empty($conf->global->STRIPE_BANCONTACT)) $paymentmethodtypes[] = "bancontact"; + if (!empty($conf->global->STRIPE_IDEAL)) $paymentmethodtypes[] = "ideal"; + if (!empty($conf->global->STRIPE_GIROPAY)) $paymentmethodtypes[] = "giropay"; + if (!empty($conf->global->STRIPE_SOFORT)) $paymentmethodtypes[] = "sofort"; $dataforintent = array( "confirm" => $confirmnow, // Do not confirm immediatly during creation of intent @@ -430,8 +433,9 @@ class Stripe extends CommonObject if ($off_session) { unset($dataforintent['setup_future_usage']); - $dataforintent["off_session"] = true; + $dataforintent["setup_future_usage"] = "off_session"; } + if (!empty($conf->global->STRIPE_GIROPAY)) unset($dataforintent['setup_future_usage']); if (!is_null($payment_method)) { $dataforintent["payment_method"] = $payment_method; @@ -578,7 +582,10 @@ class Stripe extends CommonObject // list of payment method types $paymentmethodtypes = array("card"); if (!empty($conf->global->STRIPE_SEPA_DIRECT_DEBIT)) $paymentmethodtypes[] = "sepa_debit"; //&& ($object->thirdparty->isInEEC()) - // iDEAL not supported with setupIntent + if (!empty($conf->global->STRIPE_BANCONTACT)) $paymentmethodtypes[] = "bancontact"; + if (!empty($conf->global->STRIPE_IDEAL)) $paymentmethodtypes[] = "ideal"; + // Giropay not possible for setup intent + if (!empty($conf->global->STRIPE_SOFORT)) $paymentmethodtypes[] = "sofort"; $dataforintent = array( "confirm" => $confirmnow, // Do not confirm immediatly during creation of intent From 25de39368557aa69d046a9d5f3748a3e17d4bc17 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 24 Jan 2021 13:38:23 +0100 Subject: [PATCH 059/219] Update stripe.php --- htdocs/stripe/admin/stripe.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index 9198277e2f7..efa8472ce78 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -2,7 +2,7 @@ /* Copyright (C) 2017 Alexandre Spangaro * Copyright (C) 2017 Olivier Geffroy * Copyright (C) 2017 Saasprov - * Copyright (C) 2018-2019 Thibault FOUCART + * Copyright (C) 2018-2021 Thibault FOUCART * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify From c9dd854c2c12aabc6aaa63c7852538f3d5e41424 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Sun, 24 Jan 2021 12:40:36 +0000 Subject: [PATCH 060/219] Fixing style errors. --- htdocs/stripe/class/stripe.class.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 6c508e4f974..97d45a49a1f 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -409,10 +409,10 @@ class Stripe extends CommonObject // list of payment method types $paymentmethodtypes = array("card"); if (!empty($conf->global->STRIPE_SEPA_DIRECT_DEBIT)) $paymentmethodtypes[] = "sepa_debit"; //&& ($object->thirdparty->isInEEC()) - if (!empty($conf->global->STRIPE_BANCONTACT)) $paymentmethodtypes[] = "bancontact"; - if (!empty($conf->global->STRIPE_IDEAL)) $paymentmethodtypes[] = "ideal"; - if (!empty($conf->global->STRIPE_GIROPAY)) $paymentmethodtypes[] = "giropay"; - if (!empty($conf->global->STRIPE_SOFORT)) $paymentmethodtypes[] = "sofort"; + if (!empty($conf->global->STRIPE_BANCONTACT)) $paymentmethodtypes[] = "bancontact"; + if (!empty($conf->global->STRIPE_IDEAL)) $paymentmethodtypes[] = "ideal"; + if (!empty($conf->global->STRIPE_GIROPAY)) $paymentmethodtypes[] = "giropay"; + if (!empty($conf->global->STRIPE_SOFORT)) $paymentmethodtypes[] = "sofort"; $dataforintent = array( "confirm" => $confirmnow, // Do not confirm immediatly during creation of intent @@ -435,7 +435,7 @@ class Stripe extends CommonObject unset($dataforintent['setup_future_usage']); $dataforintent["setup_future_usage"] = "off_session"; } - if (!empty($conf->global->STRIPE_GIROPAY)) unset($dataforintent['setup_future_usage']); + if (!empty($conf->global->STRIPE_GIROPAY)) unset($dataforintent['setup_future_usage']); if (!is_null($payment_method)) { $dataforintent["payment_method"] = $payment_method; @@ -582,10 +582,10 @@ class Stripe extends CommonObject // list of payment method types $paymentmethodtypes = array("card"); if (!empty($conf->global->STRIPE_SEPA_DIRECT_DEBIT)) $paymentmethodtypes[] = "sepa_debit"; //&& ($object->thirdparty->isInEEC()) - if (!empty($conf->global->STRIPE_BANCONTACT)) $paymentmethodtypes[] = "bancontact"; - if (!empty($conf->global->STRIPE_IDEAL)) $paymentmethodtypes[] = "ideal"; - // Giropay not possible for setup intent - if (!empty($conf->global->STRIPE_SOFORT)) $paymentmethodtypes[] = "sofort"; + if (!empty($conf->global->STRIPE_BANCONTACT)) $paymentmethodtypes[] = "bancontact"; + if (!empty($conf->global->STRIPE_IDEAL)) $paymentmethodtypes[] = "ideal"; + // Giropay not possible for setup intent + if (!empty($conf->global->STRIPE_SOFORT)) $paymentmethodtypes[] = "sofort"; $dataforintent = array( "confirm" => $confirmnow, // Do not confirm immediatly during creation of intent From 005292054daf719cafd1924245997cf0d789c75a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 14:31:29 +0100 Subject: [PATCH 061/219] FIX Generation of aliases (main alias and alt alias into subdirs) --- htdocs/core/lib/website2.lib.php | 25 +++++++++++++++++++++++-- htdocs/website/class/website.class.php | 16 +++++++++------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index e558e4ee545..004ac154aee 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -102,9 +102,30 @@ function dolSavePageAlias($filealias, $object, $objectpage) @chmod($filealias, octdec($conf->global->MAIN_UMASK)); } } - // Save also alias into all language subdirectories if it is a main language - // TODO + elseif (empty($objectpage->lang) || !in_array($objectpage->lang, explode(',', $object->otherlang))) { + if (empty($conf->global->WEBSITE_DISABLE_MAIN_LANGUAGE_INTO_LANGSUBDIR)) { + $dirname = dirname($filealias); + $filename = basename($filealias); + foreach (explode(',', $object->otherlang) as $sublang) { + $filealias = $dirname.'/'.$sublang.'/'.$filename; + + $aliascontent = 'id.'.tpl.php\'; '; + $aliascontent .= 'else require $dolibarr_main_data_root.\'/website/\'.$website->ref.\'/page'.$objectpage->id.'.tpl.php\';'."\n"; + $aliascontent .= '?>'."\n"; + $result = file_put_contents($filealias, $aliascontent); + if ($result === false) { + dol_syslog("Failed to write file ".$filealias, LOG_WARNING); + } + if (!empty($conf->global->MAIN_UMASK)) { + @chmod($filealias, octdec($conf->global->MAIN_UMASK)); + } + } + } + } return ($result ?true:false); } diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 1f2212668f7..34cc78e9a05 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -1334,13 +1334,15 @@ class Website extends CommonObject $error++; } - // Regenerate aliases pages (pages with a natural name) - if (is_array($aliasesarray)) - { - foreach ($aliasesarray as $aliasshortcuttocreate) - { - if (trim($aliasshortcuttocreate)) - { + // Add main alias to list of alternative aliases + if (!empty($objectpagestatic->pageurl) && !in_array($objectpagestatic->pageurl, $aliasesarray)) { + $aliasesarray[] = $objectpagestatic->pageurl; + } + + // Regenerate all aliases pages (pages with a natural name) + if (is_array($aliasesarray)) { + foreach ($aliasesarray as $aliasshortcuttocreate) { + if (trim($aliasshortcuttocreate)) { $filealias = $conf->website->dir_output.'/'.$object->ref.'/'.trim($aliasshortcuttocreate).'.php'; $result = dolSavePageAlias($filealias, $object, $objectpagestatic); if (!$result) { From c5cda97c197dae1187be490c8810dc2c81e9e629 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 14:31:29 +0100 Subject: [PATCH 062/219] FIX Generation of aliases (main alias and alt alias into subdirs) --- htdocs/core/lib/website2.lib.php | 25 +++++++++++++++++++++++-- htdocs/website/class/website.class.php | 16 +++++++++------- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index e558e4ee545..004ac154aee 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -102,9 +102,30 @@ function dolSavePageAlias($filealias, $object, $objectpage) @chmod($filealias, octdec($conf->global->MAIN_UMASK)); } } - // Save also alias into all language subdirectories if it is a main language - // TODO + elseif (empty($objectpage->lang) || !in_array($objectpage->lang, explode(',', $object->otherlang))) { + if (empty($conf->global->WEBSITE_DISABLE_MAIN_LANGUAGE_INTO_LANGSUBDIR)) { + $dirname = dirname($filealias); + $filename = basename($filealias); + foreach (explode(',', $object->otherlang) as $sublang) { + $filealias = $dirname.'/'.$sublang.'/'.$filename; + + $aliascontent = 'id.'.tpl.php\'; '; + $aliascontent .= 'else require $dolibarr_main_data_root.\'/website/\'.$website->ref.\'/page'.$objectpage->id.'.tpl.php\';'."\n"; + $aliascontent .= '?>'."\n"; + $result = file_put_contents($filealias, $aliascontent); + if ($result === false) { + dol_syslog("Failed to write file ".$filealias, LOG_WARNING); + } + if (!empty($conf->global->MAIN_UMASK)) { + @chmod($filealias, octdec($conf->global->MAIN_UMASK)); + } + } + } + } return ($result ?true:false); } diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 1f2212668f7..34cc78e9a05 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -1334,13 +1334,15 @@ class Website extends CommonObject $error++; } - // Regenerate aliases pages (pages with a natural name) - if (is_array($aliasesarray)) - { - foreach ($aliasesarray as $aliasshortcuttocreate) - { - if (trim($aliasshortcuttocreate)) - { + // Add main alias to list of alternative aliases + if (!empty($objectpagestatic->pageurl) && !in_array($objectpagestatic->pageurl, $aliasesarray)) { + $aliasesarray[] = $objectpagestatic->pageurl; + } + + // Regenerate all aliases pages (pages with a natural name) + if (is_array($aliasesarray)) { + foreach ($aliasesarray as $aliasshortcuttocreate) { + if (trim($aliasshortcuttocreate)) { $filealias = $conf->website->dir_output.'/'.$object->ref.'/'.trim($aliasshortcuttocreate).'.php'; $result = dolSavePageAlias($filealias, $object, $objectpagestatic); if (!$result) { From 643309dc6ad280ad8fee15cceaaccc97f557aa9c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 15:50:19 +0100 Subject: [PATCH 063/219] Update doc --- ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index aff7be3c35e..7282e2e3423 100644 --- a/ChangeLog +++ b/ChangeLog @@ -238,7 +238,7 @@ Following changes may create regressions for some external modules, but were nec * All properties ->titre have been renamed into ->title * Property $paiementid in API 'api_supplier_invoices.php' has been renamed into into $payment_mode_id * Property 'num_paiement' has been renamed 'num_payment' everywhere for better code consistency. -* The deprecated subsitution key __SIGNATURE__ has been removed. Use __USER_SIGNATURE__ if you used the old syntax in your email templates. +* The deprecated subsitution key __SIGNATURE__ has been removed. Replace it with __USER_SIGNATURE__ if you used the old syntax in your email templates. * The hidden option HOLIDAY_MORE_PUBLIC_HOLIDAYS has been removed. Use instead the dictionary table if you need to define custom days of holiday. * If you build a class that implement CommonObject to use the incoterm properties or methods (->fk_incoterm, ->label_incoterm, ->location_incoterm), you must now also include declaration of the Trait 'CommonIncoterm' in your class. All incoterm functions were moved into this Trait. @@ -251,6 +251,7 @@ Following changes may create regressions for some external modules, but were nec * Context for hook showSocinfoOnPrint has been moved from "showsocinfoonprint" to "main" * Library htdocs/includes/phpoffice/phpexcel as been removed (replaced with htdocs/includes/phpoffice/PhpSpreadsheet) * Databse transaction in your triggers must be correctly balanced (one close for one open). If not, an error will be returned by the trigger, even if trigger did return error code. +* Dolibarr v13 is still compatible with any PHP version between 5.6.0 and 7.4.*; Unit tests are OK with PHP 8.0 but some warnings or troubles may appears with PHP 8.0. ***** ChangeLog for 12.0.4 compared to 12.0.3 ***** From 56d13c96f4483257f0538f041557908d78419e2b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 15:51:14 +0100 Subject: [PATCH 064/219] Doc --- ChangeLog | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7282e2e3423..a6f0d9d7086 100644 --- a/ChangeLog +++ b/ChangeLog @@ -182,8 +182,7 @@ NEW: add option "If the feature to manage kits of module Stock is used, show det For developers: --------------- -NEW: add __MEMBER_TYPE__ substitution key -NEW: add __TYPE__ substitution key +NEW: add __MEMBER_TYPE__ and __TYPE__ substitution key NEW: add function dolButtonToOpenUrlInDialogPopup() to be able to open page into a popup NEW: show line number on intervention card (via MAIN_VIEW_LINE_NUMBER) NEW: Add some fields to link website page to an other object @@ -198,7 +197,6 @@ NEW: allow to edit "demand reason" field though API NEW: fetch contact by email with REST API NEW: field ref_ext in llx_commandedet NEW: fields ref_ext for Attributes and Combinations -NEW: get state by REST API NEW: get state dictionnary by REST API NEW: improve Product API for variant products NEW: OAuth SCOPE for Admin SDK From 84bab7169e827b115853e40478e7ab8971a921e3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Jan 2021 15:52:17 +0100 Subject: [PATCH 065/219] Document --- ChangeLog | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index a6f0d9d7086..f4afde7fb45 100644 --- a/ChangeLog +++ b/ChangeLog @@ -194,16 +194,10 @@ NEW: can add event to log into blockedlog module with a constant NEW: add property cssview when declaring fields of an object NEW: Can use dynamic code into the 'enabled' property of DAO fields NEW: allow to edit "demand reason" field though API -NEW: fetch contact by email with REST API NEW: field ref_ext in llx_commandedet NEW: fields ref_ext for Attributes and Combinations -NEW: get state dictionnary by REST API -NEW: improve Product API for variant products NEW: OAuth SCOPE for Admin SDK -NEW: retrieve discount from invoice from API NEW: standardizes API thirdparties by email like other object -NEW: Thirdparty REST API: endpoint to set price level -NEW: use new category API for project list view NEW: Triggers Attributes and Attributes values NEW: added incoterms data into the substitution array NEW: add send context for ticket @@ -219,6 +213,12 @@ NEW: API can update a payment NEW: API get member by thirdparty NEW: API get thirdparty by barcode NEW: API get users by email / login +NEW: fetch contact by email with REST API +NEW: get state dictionnary by REST API +NEW: improve Product API for variant products +NEW: retrieve discount from invoice from API +NEW: Thirdparty REST API: endpoint to set price level +NEW: use new category API for project list view HOOKs NEW: Hook on propal card From 6d0cf7bd01d90e77593426fd637a2bdc8970df5a Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 24 Jan 2021 17:18:21 +0100 Subject: [PATCH 066/219] NEW support sepa_debit in stripe paymentmethods list alternatives methods as sofort , ideal or giropay are saved as sepa_debit for futur use --- htdocs/societe/paymentmodes.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 06d0deb8ba3..40f7932b9fb 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -6,7 +6,7 @@ * Copyright (C) 2013 Peter Fontaine * Copyright (C) 2015-2016 Marcos García * Copyright (C) 2017 Ferran Marcet - * Copyright (C) 2018 ptibogxiv + * Copyright (C) 2018 -2021Thibault FOUCART * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -957,17 +957,21 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' try { if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage - $paymentmethodobjs = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card")); + $paymentmethodobjsA = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card")); + $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit")); } else { - $paymentmethodobjs = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card"), array("stripe_account" => $stripeacc)); + $paymentmethodobjsA = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card"), array("stripe_account" => $stripeacc)); + $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit"), array("stripe_account" => $stripeacc)); } - $listofsources = $paymentmethodobjs->data; + if ($paymentmethodobjsA->data != null && $paymentmethodobjsB->data != null) { $listofsources = array_merge((array) $paymentmethodobjsA->data, (array) $paymentmethodobjsB->data); + } elseif ($paymentmethodobjsB->data != null) { $listofsources = $paymentmethodobjsB->data; } + else { $listofsources = $paymentmethodobjsA->data; } } catch (Exception $e) { $error++; setEventMessages($e->getMessage(), null, 'errors'); - } + } } } } catch (Exception $e) @@ -1181,7 +1185,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print getCountry($src->card->country, 1); } else print img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } elseif ($src->object == 'source' && $src->type == 'sepa_debit') { - print 'SEPA debit'; + print ''.$src->billing_details->name.'
    ....'.$src->sepa_debit->last4; print ''; if ($src->sepa_debit->country) { $img = picto_from_langcode($src->sepa_debit->country); @@ -1198,7 +1202,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print getCountry($src->card->country, 1); } else print img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } elseif ($src->object == 'payment_method' && $src->type == 'sepa_debit') { - print 'SEPA debit'; + print ''.$src->billing_details->name.'
    ....'.$src->sepa_debit->last4; print ''; if ($src->sepa_debit->country) { $img = picto_from_langcode($src->sepa_debit->country); From 15b6acd37fc0ff62f4249fa5c5656dae97d7c6ee Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Sun, 24 Jan 2021 16:22:49 +0000 Subject: [PATCH 067/219] Fixing style errors. --- htdocs/societe/paymentmodes.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 40f7932b9fb..8956a80d0d8 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -958,20 +958,20 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' try { if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage $paymentmethodobjsA = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card")); - $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit")); + $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit")); } else { $paymentmethodobjsA = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "card"), array("stripe_account" => $stripeacc)); - $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit"), array("stripe_account" => $stripeacc)); + $paymentmethodobjsB = \Stripe\PaymentMethod::all(array("customer" => $customerstripe->id, "type" => "sepa_debit"), array("stripe_account" => $stripeacc)); } - if ($paymentmethodobjsA->data != null && $paymentmethodobjsB->data != null) { $listofsources = array_merge((array) $paymentmethodobjsA->data, (array) $paymentmethodobjsB->data); - } elseif ($paymentmethodobjsB->data != null) { $listofsources = $paymentmethodobjsB->data; } - else { $listofsources = $paymentmethodobjsA->data; } + if ($paymentmethodobjsA->data != null && $paymentmethodobjsB->data != null) { $listofsources = array_merge((array) $paymentmethodobjsA->data, (array) $paymentmethodobjsB->data); + } elseif ($paymentmethodobjsB->data != null) { $listofsources = $paymentmethodobjsB->data; } + else { $listofsources = $paymentmethodobjsA->data; } } catch (Exception $e) { $error++; setEventMessages($e->getMessage(), null, 'errors'); - } + } } } } catch (Exception $e) @@ -1202,7 +1202,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print getCountry($src->card->country, 1); } else print img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; } elseif ($src->object == 'payment_method' && $src->type == 'sepa_debit') { - print ''.$src->billing_details->name.'
    ....'.$src->sepa_debit->last4; + print ''.$src->billing_details->name.'
    ....'.$src->sepa_debit->last4; print ''; if ($src->sepa_debit->country) { $img = picto_from_langcode($src->sepa_debit->country); From 4b248263c88e06eebcfd67102cf5839cc3ab683a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Jan 2021 12:29:31 +0100 Subject: [PATCH 068/219] Doxygen --- htdocs/core/db/pgsql.class.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index fe80f1ad28e..6ceb39b7080 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -37,20 +37,26 @@ class DoliDBPgsql extends DoliDB { //! Database type public $type = 'pgsql'; // Name of manager + //! Database label const LABEL = 'PostgreSQL'; // Label of manager + //! Charset public $forcecharset = 'UTF8'; // Can't be static as it may be forced with a dynamic value + //! Collate used to force collate when creating database public $forcecollate = ''; // Can't be static as it may be forced with a dynamic value + //! Version min database const VERSIONMIN = '9.0.0'; // Version min database - /** @var resource Resultset of last query */ + + /** @var resource|boolean Resultset of last query */ private $_results; public $unescapeslashquot; public $standard_conforming_strings; + /** * Constructor. * This create an opened connexion to a database server and eventually to a database From 470cd5c68225a90dace0bf622a384a4f8bc7ce43 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Jan 2021 12:39:44 +0100 Subject: [PATCH 069/219] Clean code --- htdocs/core/class/commonobject.class.php | 6 ++-- .../class/workstationresource.class.php | 35 ++++++++++++++----- .../class/workstationusergroup.class.php | 32 +++++++++++++---- 3 files changed, 56 insertions(+), 17 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index c4ab884b6f7..42dc528aada 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -3668,7 +3668,7 @@ abstract class CommonObject * @param string $field_select name of field we need to get a list * @param string $field_where name of field of object we need to get linked items * @param string $table_element name of association table - * @return array + * @return array Array of record */ static public function getAllItemsLinkedByObjectID($fk_object_where, $field_select, $field_where, $table_element) { @@ -3697,7 +3697,7 @@ abstract class CommonObject * @param int $fk_object_where id of object we need to remove linked items * @param string $field_where name of field of object we need to delete linked items * @param string $table_element name of association table - * @return int + * @return int <0 if KO, 0 if nothing done, >0 if OK and something done */ static public function deleteAllItemsLinkedByObjectID($fk_object_where, $field_where, $table_element) { @@ -7143,7 +7143,7 @@ abstract class CommonObject $("#"+child_list).show() } }); - + //When we change parent list $("select[name=\""+parent_list+"\"]").change(function() { showOptions(child_list, parent_list, orig_select[child_list]); diff --git a/htdocs/workstation/class/workstationresource.class.php b/htdocs/workstation/class/workstationresource.class.php index 21398460eca..7b0dcf96002 100644 --- a/htdocs/workstation/class/workstationresource.class.php +++ b/htdocs/workstation/class/workstationresource.class.php @@ -22,10 +22,10 @@ * \brief This file is a CRUD class file for WorkstationResource (Create/Read/Update/Delete) */ -/** - * Class for WorkstationResource - */ +/** + * Class to link resource with Workstations + */ class WorkstationResource extends CommonObject { /** @var string $table_element Table name in SQL */ @@ -34,17 +34,34 @@ class WorkstationResource extends CommonObject /** @var string $element Name of the element (tip for better integration in Dolibarr: this value should be the reflection of the class name with ucfirst() function) */ public $element = 'workstationresource'; - public $fields = array( + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields = array( 'fk_workstation' => array ('type' => 'integer'), 'fk_resource' => array ('type' => 'integer') ); + /** + * @var int ID of workstation + */ + public $fk_workstation; + + /** + * @var int ID of dolresource + */ + public $fk_resource; + + /** * WorkstationResource constructor. + * * @param DoliDB $db Database connector */ public function __construct($db) { + global $langs; + $this->db = $db; // Unset fields that are disabled @@ -74,8 +91,9 @@ class WorkstationResource extends CommonObject /** * Function used to get an array with all resources linked to a workstation - * @param int $fk_workstation id of workstation we need to get linked resources - * @return array + * + * @param int $fk_workstation Id of workstation we need to get linked resources + * @return array Array of record */ static public function getAllResourcesOfWorkstation($fk_workstation) { @@ -86,8 +104,9 @@ class WorkstationResource extends CommonObject /** * Function used to remove all resources linked to a workstation - * @param int $fk_workstation id of workstation we need to remove linked resources - * @return int + * + * @param int $fk_workstation Id of workstation we need to remove linked resources + * @return int <0 if KO, 0 if nothing done, >0 if OK and something done */ static public function deleteAllResourcesOfWorkstation($fk_workstation) { diff --git a/htdocs/workstation/class/workstationusergroup.class.php b/htdocs/workstation/class/workstationusergroup.class.php index b45d24c7c60..83ef89973c8 100644 --- a/htdocs/workstation/class/workstationusergroup.class.php +++ b/htdocs/workstation/class/workstationusergroup.class.php @@ -23,9 +23,8 @@ */ /** - * Class for WorkstationUserGroup + * Class to link User groups and Workstations */ - class WorkstationUserGroup extends CommonObject { /** @var string $table_element Table name in SQL */ @@ -34,17 +33,34 @@ class WorkstationUserGroup extends CommonObject /** @var string $element Name of the element (tip for better integration in Dolibarr: this value should be the reflection of the class name with ucfirst() function) */ public $element = 'workstationusergroup'; - public $fields = array( + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields = array( 'fk_workstation' => array ('type' => 'integer'), 'fk_usergroup' => array ('type' => 'integer') ); + /** + * @var int ID of workstation + */ + public $fk_workstation; + + /** + * @var int ID of user group + */ + public $fk_usergroup; + + /** * WorkstationUserGroup constructor. + * * @param DoliDB $db Database connector */ public function __construct($db) { + global $langs; + $this->db = $db; // Unset fields that are disabled @@ -74,24 +90,28 @@ class WorkstationUserGroup extends CommonObject /** * Function used to get an array with all usergroups linked to a workstation + * * @param int $fk_workstation id of workstation we need to get linked usergroups - * @return array + * @return array Array of record */ static public function getAllGroupsOfWorkstation($fk_workstation) { global $db; + $obj = new self($db); return parent::getAllItemsLinkedByObjectID($fk_workstation, 'fk_usergroup', 'fk_workstation', $obj->table_element); } /** * Function used to remove all usergroups linked to a workstation - * @param int $fk_workstation id of workstation we need to remove linked usergroups - * @return int + * + * @param int $fk_workstation Id of workstation we need to remove linked usergroups + * @return int <0 if KO, 0 if nothing done, >0 if OK and something done */ static public function deleteAllGroupsOfWorkstation($fk_workstation) { global $db; + $obj = new self($db); return parent::deleteAllItemsLinkedByObjectID($fk_workstation, 'fk_workstation', $obj->table_element); } From 0861c639aefd952e1c34b4b705ae20a0d6c9ba80 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Jan 2021 12:40:52 +0100 Subject: [PATCH 070/219] Fix sql injection --- htdocs/core/class/commonobject.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 42dc528aada..e0ba83e13c2 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -3678,7 +3678,7 @@ abstract class CommonObject global $db; - $sql = 'SELECT '.$field_select.' FROM '.MAIN_DB_PREFIX.$table_element.' WHERE '.$field_where.' = '.$fk_object_where; + $sql = 'SELECT '.$field_select.' FROM '.MAIN_DB_PREFIX.$table_element.' WHERE '.$field_where.' = '.((int) $fk_object_where); $resql = $db->query($sql); $TRes = array(); From dcc6c8b5b06ec59d48bc859ecee4cb4789f934cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 25 Jan 2021 16:23:09 +0100 Subject: [PATCH 071/219] fix phpcs --- htdocs/workstation/class/workstationresource.class.php | 6 +++--- htdocs/workstation/class/workstationusergroup.class.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/workstation/class/workstationresource.class.php b/htdocs/workstation/class/workstationresource.class.php index 7b0dcf96002..d1a4bb61875 100644 --- a/htdocs/workstation/class/workstationresource.class.php +++ b/htdocs/workstation/class/workstationresource.class.php @@ -37,7 +37,7 @@ class WorkstationResource extends CommonObject /** * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. */ - public $fields = array( + public $fields = array( 'fk_workstation' => array ('type' => 'integer'), 'fk_resource' => array ('type' => 'integer') ); @@ -45,12 +45,12 @@ class WorkstationResource extends CommonObject /** * @var int ID of workstation */ - public $fk_workstation; + public $fk_workstation; /** * @var int ID of dolresource */ - public $fk_resource; + public $fk_resource; /** diff --git a/htdocs/workstation/class/workstationusergroup.class.php b/htdocs/workstation/class/workstationusergroup.class.php index 83ef89973c8..920fb896bdc 100644 --- a/htdocs/workstation/class/workstationusergroup.class.php +++ b/htdocs/workstation/class/workstationusergroup.class.php @@ -36,7 +36,7 @@ class WorkstationUserGroup extends CommonObject /** * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. */ - public $fields = array( + public $fields = array( 'fk_workstation' => array ('type' => 'integer'), 'fk_usergroup' => array ('type' => 'integer') ); From 9c3cb5552a1bf494acd5625b8b0b567629afc6ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 25 Jan 2021 16:24:27 +0100 Subject: [PATCH 072/219] fix phpcs --- .../workstation/class/workstationresource.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/workstation/class/workstationresource.class.php b/htdocs/workstation/class/workstationresource.class.php index d1a4bb61875..6e6860f2230 100644 --- a/htdocs/workstation/class/workstationresource.class.php +++ b/htdocs/workstation/class/workstationresource.class.php @@ -42,14 +42,14 @@ class WorkstationResource extends CommonObject 'fk_resource' => array ('type' => 'integer') ); - /** - * @var int ID of workstation - */ + /** + * @var int ID of workstation + */ public $fk_workstation; - /** - * @var int ID of dolresource - */ + /** + * @var int ID of dolresource + */ public $fk_resource; From 22522f5aa2e127b945182065c8a9a969e764973d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 25 Jan 2021 17:06:25 +0100 Subject: [PATCH 073/219] fix include --- htdocs/core/boxes/box_clients.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/boxes/box_clients.php b/htdocs/core/boxes/box_clients.php index 11e8b6a8f29..adcff0d158c 100644 --- a/htdocs/core/boxes/box_clients.php +++ b/htdocs/core/boxes/box_clients.php @@ -2,7 +2,7 @@ /* Copyright (C) 2003-2007 Rodolphe Quiedeville * Copyright (C) 2004-2010 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2015 Frederic France + * Copyright (C) 2015-2021 Frederic France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -79,7 +79,7 @@ class box_clients extends ModeleBoxes $this->max = $max; - include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; + include_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; $thirdpartystatic = new Client($this->db); $this->info_box_head = array('text' => $langs->trans("BoxTitleLastModifiedCustomers", $max)); From b4be97ec157a9b4f50b5a90ea558ca1c0dfb6e98 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Jan 2021 18:59:04 +0100 Subject: [PATCH 074/219] Draft code --- htdocs/core/modules/modSociete.class.php | 14 ++++++++++++-- htdocs/langs/en_US/admin.lang | 3 ++- htdocs/societe/list.php | 6 ++++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index 1bb0c61b83e..e5a3c584adb 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -197,15 +197,25 @@ class modSociete extends DolibarrModules $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][4] = 'export'; - // 262 : Resteindre l'acces des commerciaux + // 262 : Restrict access to sales representative $r++; $this->rights[$r][0] = 262; - $this->rights[$r][1] = 'Read all third parties by internal users (otherwise only if commercial contact). Not effective for external users (limited to themselves).'; + $this->rights[$r][1] = 'Read all third parties (and their objects) by internal users (otherwise only if commercial contact). Not effective for external users (limited to themselves).'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'client'; $this->rights[$r][5] = 'voir'; + /* + $r++; + $this->rights[$r][0] = 263; + $this->rights[$r][1] = 'Read all third parties (without their objects) by internal users (otherwise only if commercial contact). Not effective for external users (limited to themselves).'; + $this->rights[$r][2] = 'r'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'client'; + $this->rights[$r][5] = 'readallthirdparties_advance'; + */ + $r++; $this->rights[$r][0] = 281; // id de la permission $this->rights[$r][1] = 'Read contacts'; // libelle de la permission diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 2cf34ace170..b9ee83f44af 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -805,7 +805,8 @@ PermissionAdvanced253=Create/modify internal/external users and permissions Permission254=Create/modify external users only Permission255=Modify other users password Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties for which that user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). +Permission262=Extend access to all third parties AND their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). +Permission263=Extend access to all third parties WITHOUT their objects (not only third parties for which the user is a sale representative).
    Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).
    Not effective for projects (only rules on project permissions, visibility and assignment matters). Permission271=Read CA Permission272=Read invoices Permission273=Issue invoices diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 33875fb67da..d3991d06c0c 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -436,9 +436,11 @@ if (!empty($search_categ_sup)) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_f $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."c_stcomm as st ON s.fk_stcomm = st.id"; // We'll need this table joined to the select in order to filter by sale if ($search_sale == -2) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON sc.fk_soc = s.rowid"; -elseif ($search_sale || (!$user->rights->societe->client->voir && !$socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +//elseif ($search_sale || (empty($user->rights->societe->client->voir) && (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->societe->client->readallthirdparties_advance)) && !$socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +elseif ($search_sale || (empty($user->rights->societe->client->voir) && !$socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql .= " WHERE s.entity IN (".getEntity('societe').")"; -if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; +//if (empty($user->rights->societe->client->voir) && (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->societe->client->readallthirdparties_advance)) && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; +if (empty($user->rights->societe->client->voir) && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; if ($search_sale && $search_sale != -2) $sql .= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale if (!$user->rights->fournisseur->lire) $sql .= " AND (s.fournisseur <> 1 OR s.client <> 0)"; // client=0, fournisseur=0 must be visible if ($search_sale == -2) $sql .= " AND sc.fk_user IS NULL"; From 79574faabec9587ef1b9c2083dc739921623de55 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Jan 2021 19:12:14 +0100 Subject: [PATCH 075/219] Fix phpcs --- htdocs/workstation/class/workstationresource.class.php | 2 +- htdocs/workstation/class/workstationusergroup.class.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/workstation/class/workstationresource.class.php b/htdocs/workstation/class/workstationresource.class.php index 7b0dcf96002..698bba47d29 100644 --- a/htdocs/workstation/class/workstationresource.class.php +++ b/htdocs/workstation/class/workstationresource.class.php @@ -37,7 +37,7 @@ class WorkstationResource extends CommonObject /** * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. */ - public $fields = array( + public $fields = array( 'fk_workstation' => array ('type' => 'integer'), 'fk_resource' => array ('type' => 'integer') ); diff --git a/htdocs/workstation/class/workstationusergroup.class.php b/htdocs/workstation/class/workstationusergroup.class.php index 83ef89973c8..920fb896bdc 100644 --- a/htdocs/workstation/class/workstationusergroup.class.php +++ b/htdocs/workstation/class/workstationusergroup.class.php @@ -36,7 +36,7 @@ class WorkstationUserGroup extends CommonObject /** * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. */ - public $fields = array( + public $fields = array( 'fk_workstation' => array ('type' => 'integer'), 'fk_usergroup' => array ('type' => 'integer') ); From 6a12de741f2b79c78fe3addc6d007b15db009070 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Jan 2021 22:46:09 +0100 Subject: [PATCH 076/219] FIX Report by Ricardo Matias --- htdocs/core/lib/functions.lib.php | 12 ++++----- htdocs/main.inc.php | 15 +++++++++++ htdocs/user/class/user.class.php | 41 ++++++++++++++++--------------- htdocs/user/home.php | 2 +- test/phpunit/SecurityTest.php | 28 +++++++++++++++++---- 5 files changed, 66 insertions(+), 32 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 68c8775fd81..7fd4a416790 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -686,7 +686,7 @@ function checkVal($out = '', $check = 'alphanohtml', $filter = null, $options = $out = dol_string_nohtmltag($out, 0); } break; - case 'alphawithlgt': // No " and no ../ but we keep < > tags. Can be used for email string like "Name " + case 'alphawithlgt': // No " and no ../ but we keep balanced < > tags with no special chars inside. Can be used for email string like "Name " if (!is_array($out)) { // '"' is dangerous because param in url can close the href= or src= and add javascript functions. // '../' is dangerous because it allows dir transversals @@ -5762,7 +5762,7 @@ function picto_required() * @param string $stringtoclean String to clean * @param integer $removelinefeed 1=Replace all new lines by 1 space, 0=Only ending new lines are removed others are replaced with \n, 2=Ending new lines are removed but others are kept with a same number of \n than nb of
    when there is both "...
    \n..." * @param string $pagecodeto Encoding of input/output string - * @param integer $strip_tags 0=Use internal strip, 1=Use strip_tags() php function (bugged when text contains a < char that is not for a html tag) + * @param integer $strip_tags 0=Use internal strip, 1=Use strip_tags() php function (bugged when text contains a < char that is not for a html tag or when tags is not closed like '0000-021 - $temp = preg_replace($pattern, "", $temp); // pass 1 - // $temp after pass 1: 0000-021 - $temp = preg_replace($pattern, "", $temp); // pass 2 - // $temp after pass 2: 0000-021 + $temp = preg_replace($pattern, "", $temp); // pass 1 - $temp after pass 1: 0000-021 + $temp = preg_replace($pattern, "", $temp); // pass 2 - $temp after pass 2: 0000-021 + // removed '<' into non closing html tags like 'error=alert(1) to bypass test on onerror + $tmpval = preg_replace('/<[^<]+>/', '', $val); + // List of dom events is on https://www.w3schools.com/jsref/dom_obj_event.asp + $inj += preg_match('/onmouse([a-z]*)\s*=/i', $tmpval); // onmousexxx can be set on img or any html tag like + $inj += preg_match('/ondrag([a-z]*)\s*=/i', $tmpval); // + $inj += preg_match('/ontouch([a-z]*)\s*=/i', $tmpval); // + $inj += preg_match('/on(abort|afterprint|beforeprint|beforeunload|blur|canplay|canplaythrough|change|click|contextmenu|copy|cut)\s*=/i', $tmpval); + $inj += preg_match('/on(dblclick|drop|durationchange|ended|error|focus|focusin|focusout|hashchange|input|invalid)\s*=/i', $tmpval); + $inj += preg_match('/on(keydown|keypress|keyup|load|loadeddata|loadedmetadata|loadstart|offline|online|pagehide|pageshow)\s*=/i', $tmpval); + $inj += preg_match('/on(paste|pause|play|playing|progress|ratechange|resize|reset|scroll|search|seeking|select|show|stalled|start|submit|suspend)\s*=/i', $tmpval); + $inj += preg_match('/on(timeupdate|toggle|unload|volumechange|waiting)\s*=/i', $tmpval); + //$inj += preg_match('/on[A-Z][a-z]+\*=/', $val); // To lock event handlers onAbort(), ... $inj += preg_match('/:|:|:/i', $val); // refused string ':' encoded (no reason to have it encoded) to lock 'javascript:...' $inj += preg_match('/javascript\s*:/i', $val); diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 1aac46933f2..8f8f8c67ca8 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -2398,53 +2398,54 @@ class User extends CommonObject $label .= '
    '; $label .= img_picto('', $this->picto).' '.$langs->trans("User").''; $label .= ' '.$this->getLibStatut(4); - $label .= '
    '.$langs->trans('Name').': '.$this->getFullName($langs, ''); + $label .= '
    '.$langs->trans('Name').': '.dol_string_nohtmltag($this->getFullName($langs, '')); if (!empty($this->login)) { - $label .= '
    '.$langs->trans('Login').': '.$this->login; + $label .= '
    '.$langs->trans('Login').': '.dol_string_nohtmltag($this->login); } if (!empty($this->job)) { - $label .= '
    '.$langs->trans("Job").': '.$this->job; + $label .= '
    '.$langs->trans("Job").': '.dol_string_nohtmltag($this->job); } - $label .= '
    '.$langs->trans("Email").': '.$this->email; + $label .= '
    '.$langs->trans("Email").': '.dol_string_nohtmltag($this->email); if (!empty($this->phone)) { - $label .= '
    '.$langs->trans("Phone").': '.$this->phone; + $label .= '
    '.$langs->trans("Phone").': '.dol_string_nohtmltag($this->phone); } if (!empty($this->admin)) { $label .= '
    '.$langs->trans("Administrator").': '.yn($this->admin); } + $company = ''; if (!empty($this->socid)) { // Add thirdparty for external users $thirdpartystatic = new Societe($db); $thirdpartystatic->fetch($this->socid); if (empty($hidethirdpartylogo)) { $companylink = ' '.$thirdpartystatic->getNomUrl(2, (($option == 'nolink') ? 'nolink' : '')); // picto only of company } - $company = ' ('.$langs->trans("Company").': '.$thirdpartystatic->name.')'; + $company = ' ('.$langs->trans("Company").': '.dol_string_nohtmltag($thirdpartystatic->name).')'; } $type = ($this->socid ? $langs->trans("External").$company : $langs->trans("Internal")); - $label .= '
    '.$langs->trans("Type").': '.$type; + $label .= '
    '.$langs->trans("Type").': '.dol_string_nohtmltag($type); $label .= '
    '; if ($infologin > 0) { $label .= '
    '; $label .= '
    '.$langs->trans("Session").''; - $label .= '
    '.$langs->trans("IPAddress").': '.$_SERVER["REMOTE_ADDR"]; + $label .= '
    '.$langs->trans("IPAddress").': '.dol_string_nohtmltag(getUserRemoteIP()); if (!empty($conf->global->MAIN_MODULE_MULTICOMPANY)) { - $label .= '
    '.$langs->trans("ConnectedOnMultiCompany").': '.$conf->entity.' (user entity '.$this->entity.')'; + $label .= '
    '.$langs->trans("ConnectedOnMultiCompany").': '.$conf->entity.' (User entity '.$this->entity.')'; } - $label .= '
    '.$langs->trans("AuthenticationMode").': '.$_SESSION["dol_authmode"].(empty($dolibarr_main_demo) ? '' : ' (demo)'); + $label .= '
    '.$langs->trans("AuthenticationMode").': '.dol_string_nohtmltag($_SESSION["dol_authmode"].(empty($dolibarr_main_demo) ? '' : ' (demo)')); $label .= '
    '.$langs->trans("ConnectedSince").': '.dol_print_date($this->datelastlogin, "dayhour", 'tzuser'); $label .= '
    '.$langs->trans("PreviousConnexion").': '.dol_print_date($this->datepreviouslogin, "dayhour", 'tzuser'); - $label .= '
    '.$langs->trans("CurrentTheme").': '.$conf->theme; - $label .= '
    '.$langs->trans("CurrentMenuManager").': '.$menumanager->name; + $label .= '
    '.$langs->trans("CurrentTheme").': '.dol_string_nohtmltag($conf->theme); + $label .= '
    '.$langs->trans("CurrentMenuManager").': '.dol_string_nohtmltag($menumanager->name); $s = picto_from_langcode($langs->getDefaultLang()); - $label .= '
    '.$langs->trans("CurrentUserLanguage").': '.($s ? $s.' ' : '').$langs->getDefaultLang(); - $label .= '
    '.$langs->trans("Browser").': '.$conf->browser->name.($conf->browser->version ? ' '.$conf->browser->version : '').' ('.$_SERVER['HTTP_USER_AGENT'].')'; - $label .= '
    '.$langs->trans("Layout").': '.$conf->browser->layout; - $label .= '
    '.$langs->trans("Screen").': '.$_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight']; + $label .= '
    '.$langs->trans("CurrentUserLanguage").': '.dol_string_nohtmltag(($s ? $s.' ' : '').$langs->getDefaultLang()); + $label .= '
    '.$langs->trans("Browser").': '.dol_string_nohtmltag($conf->browser->name.($conf->browser->version ? ' '.$conf->browser->version : '').' ('.$_SERVER['HTTP_USER_AGENT'].')'); + $label .= '
    '.$langs->trans("Layout").': '.dol_string_nohtmltag($conf->browser->layout); + $label .= '
    '.$langs->trans("Screen").': '.dol_string_nohtmltag($_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight']); if ($conf->browser->layout == 'phone') { $label .= '
    '.$langs->trans("Phone").': '.$langs->trans("Yes"); } if (!empty($_SESSION["disablemodules"])) { - $label .= '
    '.$langs->trans("DisabledModules").':
    '.join(', ', explode(',', $_SESSION["disablemodules"])); + $label .= '
    '.$langs->trans("DisabledModules").':
    '.dol_string_nohtmltag(join(', ', explode(',', $_SESSION["disablemodules"]))); } } if ($infologin < 0) { @@ -2508,12 +2509,12 @@ class User extends CommonObject } if ($withpictoimg > -2 && $withpictoimg != 2) { if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $result .= ''; + $result .= ''; } if ($mode == 'login') { - $result .= dol_trunc($this->login, $maxlen); + $result .= dol_string_nohtmltag(dol_trunc($this->login, $maxlen)); } else { - $result .= $this->getFullName($langs, '', ($mode == 'firstelselast' ? 3 : ($mode == 'firstname' ? 2 : -1)), $maxlen); + $result .= dol_string_nohtmltag($this->getFullName($langs, '', ($mode == 'firstelselast' ? 3 : ($mode == 'firstname' ? 2 : -1)), $maxlen)); } if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $result .= ''; diff --git a/htdocs/user/home.php b/htdocs/user/home.php index 4d215685f53..e294be6a219 100644 --- a/htdocs/user/home.php +++ b/htdocs/user/home.php @@ -128,7 +128,7 @@ if ($resql) print ''; print ''; print ''; - print ''; + print ''."\n"; $i = 0; while ($i < $num && $i < $max) diff --git a/test/phpunit/SecurityTest.php b/test/phpunit/SecurityTest.php index 8709c66f15d..8cfa5d10db5 100644 --- a/test/phpunit/SecurityTest.php +++ b/test/phpunit/SecurityTest.php @@ -186,7 +186,11 @@ class SecurityTest extends PHPUnit\Framework\TestCase $_SERVER["PHP_SELF"]='/DIR WITH SPACE/htdocs/admin/index.php?mainmenu=home&leftmenu=setup&username=weservices'; $result=testSqlAndScriptInject($_SERVER["PHP_SELF"], 2); - $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject 1a'); + $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject expected 0a'); + + $test = 'This is a < inside string with < and > also and tag like before the >'; + $result=testSqlAndScriptInject($test, 0); + $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject expected 0b'); // Should detect XSS $expectedresult=1; @@ -275,6 +279,10 @@ class SecurityTest extends PHPUnit\Framework\TestCase $test="onerror=alert(1)"; $result=testSqlAndScriptInject($test, 0); $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject jjj'); + + $test="rror=alert(document.location)"; + $result=testSqlAndScriptInject($test, 0); + $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject kkk'); } /** @@ -299,7 +307,9 @@ class SecurityTest extends PHPUnit\Framework\TestCase $_GET["param5"]="a_1-b"; $_POST["param6"]="">objnotdefined\''; $_POST["param11"]=' Name '; @@ -363,10 +373,18 @@ class SecurityTest extends PHPUnit\Framework\TestCase print __METHOD__." result=".$result."\n"; $this->assertEquals('"c:\this is a path~1\aaan" abcdef', $result); - // With alphanohtml, we must convert the html entities like n - $result=GETPOST("param8", 'alphanohtml'); + // With alphanohtml, we must convert the html entities like n and disable all entities + $result=GETPOST("param8a", 'alphanohtml'); print __METHOD__." result=".$result."\n"; - $this->assertEquals("HackerassertEquals("Hackersvg onload='console.log(123)'", $result); + + $result=GETPOST("param8b", 'alphanohtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('img src=x onerror=alert(document.location) t=', $result, 'Test a string with non closing html tag with alphanohtml'); + + $result=GETPOST("param8c", 'alphanohtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($_POST['param8c'], $result, 'Test a string with non closing html tag with alphanohtml'); $result=GETPOST("param9", 'alphanohtml'); print __METHOD__." result=".$result."\n"; From 13378897a876c38a4abbd17d16dabcd5982afe88 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 25 Jan 2021 22:46:09 +0100 Subject: [PATCH 077/219] FIX Report by Ricardo Matias Conflicts: test/phpunit/SecurityTest.php --- htdocs/core/lib/functions.lib.php | 12 +- htdocs/main.inc.php | 15 +++ htdocs/user/class/user.class.php | 41 +++---- htdocs/user/home.php | 2 +- test/phpunit/SecurityTest.php | 178 ++++++++++++++++-------------- 5 files changed, 141 insertions(+), 107 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 4a639c69a69..142d91565d6 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -686,7 +686,7 @@ function checkVal($out = '', $check = 'alphanohtml', $filter = null, $options = $out = dol_string_nohtmltag($out, 0); } break; - case 'alphawithlgt': // No " and no ../ but we keep < > tags. Can be used for email string like "Name " + case 'alphawithlgt': // No " and no ../ but we keep balanced < > tags with no special chars inside. Can be used for email string like "Name " if (!is_array($out)) { // '"' is dangerous because param in url can close the href= or src= and add javascript functions. // '../' is dangerous because it allows dir transversals @@ -5762,7 +5762,7 @@ function picto_required() * @param string $stringtoclean String to clean * @param integer $removelinefeed 1=Replace all new lines by 1 space, 0=Only ending new lines are removed others are replaced with \n, 2=Ending new lines are removed but others are kept with a same number of \n than nb of
    when there is both "...
    \n..." * @param string $pagecodeto Encoding of input/output string - * @param integer $strip_tags 0=Use internal strip, 1=Use strip_tags() php function (bugged when text contains a < char that is not for a html tag) + * @param integer $strip_tags 0=Use internal strip, 1=Use strip_tags() php function (bugged when text contains a < char that is not for a html tag or when tags is not closed like '0000-021
    - $temp = preg_replace($pattern, "", $temp); // pass 1 - // $temp after pass 1: 0000-021 - $temp = preg_replace($pattern, "", $temp); // pass 2 - // $temp after pass 2: 0000-021 + $temp = preg_replace($pattern, "", $temp); // pass 1 - $temp after pass 1: 0000-021 + $temp = preg_replace($pattern, "", $temp); // pass 2 - $temp after pass 2: 0000-021 + // removed '<' into non closing html tags like 'error=alert(1) to bypass test on onerror + $tmpval = preg_replace('/<[^<]+>/', '', $val); + // List of dom events is on https://www.w3schools.com/jsref/dom_obj_event.asp + $inj += preg_match('/onmouse([a-z]*)\s*=/i', $tmpval); // onmousexxx can be set on img or any html tag like + $inj += preg_match('/ondrag([a-z]*)\s*=/i', $tmpval); // + $inj += preg_match('/ontouch([a-z]*)\s*=/i', $tmpval); // + $inj += preg_match('/on(abort|afterprint|beforeprint|beforeunload|blur|canplay|canplaythrough|change|click|contextmenu|copy|cut)\s*=/i', $tmpval); + $inj += preg_match('/on(dblclick|drop|durationchange|ended|error|focus|focusin|focusout|hashchange|input|invalid)\s*=/i', $tmpval); + $inj += preg_match('/on(keydown|keypress|keyup|load|loadeddata|loadedmetadata|loadstart|offline|online|pagehide|pageshow)\s*=/i', $tmpval); + $inj += preg_match('/on(paste|pause|play|playing|progress|ratechange|resize|reset|scroll|search|seeking|select|show|stalled|start|submit|suspend)\s*=/i', $tmpval); + $inj += preg_match('/on(timeupdate|toggle|unload|volumechange|waiting)\s*=/i', $tmpval); + //$inj += preg_match('/on[A-Z][a-z]+\*=/', $val); // To lock event handlers onAbort(), ... $inj += preg_match('/:|:|:/i', $val); // refused string ':' encoded (no reason to have it encoded) to lock 'javascript:...' $inj += preg_match('/javascript\s*:/i', $val); diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 89c13670890..241057047e5 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -2430,53 +2430,54 @@ class User extends CommonObject $label .= '
    '; $label .= img_picto('', $this->picto).' '.$langs->trans("User").''; $label .= ' '.$this->getLibStatut(4); - $label .= '
    '.$langs->trans('Name').': '.$this->getFullName($langs, ''); + $label .= '
    '.$langs->trans('Name').': '.dol_string_nohtmltag($this->getFullName($langs, '')); if (!empty($this->login)) { - $label .= '
    '.$langs->trans('Login').': '.$this->login; + $label .= '
    '.$langs->trans('Login').': '.dol_string_nohtmltag($this->login); } if (!empty($this->job)) { - $label .= '
    '.$langs->trans("Job").': '.$this->job; + $label .= '
    '.$langs->trans("Job").': '.dol_string_nohtmltag($this->job); } - $label .= '
    '.$langs->trans("Email").': '.$this->email; + $label .= '
    '.$langs->trans("Email").': '.dol_string_nohtmltag($this->email); if (!empty($this->phone)) { - $label .= '
    '.$langs->trans("Phone").': '.$this->phone; + $label .= '
    '.$langs->trans("Phone").': '.dol_string_nohtmltag($this->phone); } if (!empty($this->admin)) { $label .= '
    '.$langs->trans("Administrator").': '.yn($this->admin); } + $company = ''; if (!empty($this->socid)) { // Add thirdparty for external users $thirdpartystatic = new Societe($db); $thirdpartystatic->fetch($this->socid); if (empty($hidethirdpartylogo)) { $companylink = ' '.$thirdpartystatic->getNomUrl(2, (($option == 'nolink') ? 'nolink' : '')); // picto only of company } - $company = ' ('.$langs->trans("Company").': '.$thirdpartystatic->name.')'; + $company = ' ('.$langs->trans("Company").': '.dol_string_nohtmltag($thirdpartystatic->name).')'; } $type = ($this->socid ? $langs->trans("External").$company : $langs->trans("Internal")); - $label .= '
    '.$langs->trans("Type").': '.$type; + $label .= '
    '.$langs->trans("Type").': '.dol_string_nohtmltag($type); $label .= '
    '; if ($infologin > 0) { $label .= '
    '; $label .= '
    '.$langs->trans("Session").''; - $label .= '
    '.$langs->trans("IPAddress").': '.$_SERVER["REMOTE_ADDR"]; + $label .= '
    '.$langs->trans("IPAddress").': '.dol_string_nohtmltag(getUserRemoteIP()); if (!empty($conf->global->MAIN_MODULE_MULTICOMPANY)) { - $label .= '
    '.$langs->trans("ConnectedOnMultiCompany").': '.$conf->entity.' (user entity '.$this->entity.')'; + $label .= '
    '.$langs->trans("ConnectedOnMultiCompany").': '.$conf->entity.' (User entity '.$this->entity.')'; } - $label .= '
    '.$langs->trans("AuthenticationMode").': '.$_SESSION["dol_authmode"].(empty($dolibarr_main_demo) ? '' : ' (demo)'); + $label .= '
    '.$langs->trans("AuthenticationMode").': '.dol_string_nohtmltag($_SESSION["dol_authmode"].(empty($dolibarr_main_demo) ? '' : ' (demo)')); $label .= '
    '.$langs->trans("ConnectedSince").': '.dol_print_date($this->datelastlogin, "dayhour", 'tzuser'); $label .= '
    '.$langs->trans("PreviousConnexion").': '.dol_print_date($this->datepreviouslogin, "dayhour", 'tzuser'); - $label .= '
    '.$langs->trans("CurrentTheme").': '.$conf->theme; - $label .= '
    '.$langs->trans("CurrentMenuManager").': '.$menumanager->name; + $label .= '
    '.$langs->trans("CurrentTheme").': '.dol_string_nohtmltag($conf->theme); + $label .= '
    '.$langs->trans("CurrentMenuManager").': '.dol_string_nohtmltag($menumanager->name); $s = picto_from_langcode($langs->getDefaultLang()); - $label .= '
    '.$langs->trans("CurrentUserLanguage").': '.($s ? $s.' ' : '').$langs->getDefaultLang(); - $label .= '
    '.$langs->trans("Browser").': '.$conf->browser->name.($conf->browser->version ? ' '.$conf->browser->version : '').' ('.$_SERVER['HTTP_USER_AGENT'].')'; - $label .= '
    '.$langs->trans("Layout").': '.$conf->browser->layout; - $label .= '
    '.$langs->trans("Screen").': '.$_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight']; + $label .= '
    '.$langs->trans("CurrentUserLanguage").': '.dol_string_nohtmltag(($s ? $s.' ' : '').$langs->getDefaultLang()); + $label .= '
    '.$langs->trans("Browser").': '.dol_string_nohtmltag($conf->browser->name.($conf->browser->version ? ' '.$conf->browser->version : '').' ('.$_SERVER['HTTP_USER_AGENT'].')'); + $label .= '
    '.$langs->trans("Layout").': '.dol_string_nohtmltag($conf->browser->layout); + $label .= '
    '.$langs->trans("Screen").': '.dol_string_nohtmltag($_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight']); if ($conf->browser->layout == 'phone') { $label .= '
    '.$langs->trans("Phone").': '.$langs->trans("Yes"); } if (!empty($_SESSION["disablemodules"])) { - $label .= '
    '.$langs->trans("DisabledModules").':
    '.join(', ', explode(',', $_SESSION["disablemodules"])); + $label .= '
    '.$langs->trans("DisabledModules").':
    '.dol_string_nohtmltag(join(', ', explode(',', $_SESSION["disablemodules"]))); } } if ($infologin < 0) { @@ -2540,12 +2541,12 @@ class User extends CommonObject } if ($withpictoimg > -2 && $withpictoimg != 2) { if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $result .= ''; + $result .= ''; } if ($mode == 'login') { - $result .= dol_trunc($this->login, $maxlen); + $result .= dol_string_nohtmltag(dol_trunc($this->login, $maxlen)); } else { - $result .= $this->getFullName($langs, '', ($mode == 'firstelselast' ? 3 : ($mode == 'firstname' ? 2 : -1)), $maxlen); + $result .= dol_string_nohtmltag($this->getFullName($langs, '', ($mode == 'firstelselast' ? 3 : ($mode == 'firstname' ? 2 : -1)), $maxlen)); } if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $result .= ''; diff --git a/htdocs/user/home.php b/htdocs/user/home.php index 4d215685f53..e294be6a219 100644 --- a/htdocs/user/home.php +++ b/htdocs/user/home.php @@ -128,7 +128,7 @@ if ($resql) print '
    '.$langs->trans("LastUsersCreated", min($num, $max)).''.$langs->trans("FullList").'
    '; print ''; print ''; - print ''; + print ''."\n"; $i = 0; while ($i < $num && $i < $max) diff --git a/test/phpunit/SecurityTest.php b/test/phpunit/SecurityTest.php index c38cf49d018..f485102e06e 100644 --- a/test/phpunit/SecurityTest.php +++ b/test/phpunit/SecurityTest.php @@ -171,7 +171,11 @@ class SecurityTest extends PHPUnit\Framework\TestCase $_SERVER["PHP_SELF"]='/DIR WITH SPACE/htdocs/admin/index.php?mainmenu=home&leftmenu=setup&username=weservices'; $result=testSqlAndScriptInject($_SERVER["PHP_SELF"], 2); - $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject 1a'); + $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject expected 0a'); + + $test = 'This is a < inside string with < and > also and tag like before the >'; + $result=testSqlAndScriptInject($test, 0); + $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject expected 0b'); // Should detect XSS $expectedresult=1; @@ -260,6 +264,10 @@ class SecurityTest extends PHPUnit\Framework\TestCase $test="onerror=alert(1)"; $result=testSqlAndScriptInject($test, 0); $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject jjj'); + + $test="rror=alert(document.location)"; + $result=testSqlAndScriptInject($test, 0); + $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject kkk'); } /** @@ -270,106 +278,116 @@ class SecurityTest extends PHPUnit\Framework\TestCase public function testGETPOST() { global $conf,$user,$langs,$db; - $conf=$this->savconf; - $user=$this->savuser; - $langs=$this->savlangs; - $db=$this->savdb; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; - $_COOKIE["id"]=111; - $_GET["param1"]="222"; - $_POST["param1"]="333"; - $_GET["param2"]='a/b#e(pr)qq-rr\cc'; - $_GET["param3"]='"na/b#e(pr)qq-rr\cc'; // Same than param2 + " and n - $_GET["param4"]='../dir'; - $_GET["param5"]="a_1-b"; - $_POST["param6"]="">objnotdefined\''; - $_POST["param11"]=' Name '; + $_COOKIE["id"]=111; + $_GET["param1"]="222"; + $_POST["param1"]="333"; + $_GET["param2"]='a/b#e(pr)qq-rr\cc'; + $_GET["param3"]='"na/b#e(pr)qq-rr\cc'; // Same than param2 + " and n + $_GET["param4"]='../dir'; + $_GET["param5"]="a_1-b"; + $_POST["param6"]="">objnotdefined\''; + $_POST["param11"]=' Name '; - $result=GETPOST('id', 'int'); // Must return nothing - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, ''); + $result=GETPOST('id', 'int'); // Must return nothing + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, ''); - $result=GETPOST("param1", 'int'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, 222, 'Test on param1 with no 3rd param'); + $result=GETPOST("param1", 'int'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, 222, 'Test on param1 with no 3rd param'); - $result=GETPOST("param1", 'int', 2); - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, 333, 'Test on param1 with 3rd param = 2'); + $result=GETPOST("param1", 'int', 2); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, 333, 'Test on param1 with 3rd param = 2'); - // Test alpha - $result=GETPOST("param2", 'alpha'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, $_GET["param2"], 'Test on param2'); + // Test alpha + $result=GETPOST("param2", 'alpha'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, $_GET["param2"], 'Test on param2'); - $result=GETPOST("param3", 'alpha'); // Must return string sanitized from char " - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, 'na/b#e(pr)qq-rr\cc', 'Test on param3'); + $result=GETPOST("param3", 'alpha'); // Must return string sanitized from char " + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, 'na/b#e(pr)qq-rr\cc', 'Test on param3'); - $result=GETPOST("param4", 'alpha'); // Must return string sanitized from ../ - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, 'dir'); + $result=GETPOST("param4", 'alpha'); // Must return string sanitized from ../ + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, 'dir'); - // Test aZ09 - $result=GETPOST("param1", 'aZ09'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, $_GET["param1"]); + // Test aZ09 + $result=GETPOST("param1", 'aZ09'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, $_GET["param1"]); - $result=GETPOST("param2", 'aZ09'); // Must return '' as string contains car not in aZ09 definition - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, ''); + $result=GETPOST("param2", 'aZ09'); // Must return '' as string contains car not in aZ09 definition + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, ''); - $result=GETPOST("param3", 'aZ09'); // Must return '' as string contains car not in aZ09 definition - print __METHOD__." result=".$result."\n"; - $this->assertEquals($result, ''); + $result=GETPOST("param3", 'aZ09'); // Must return '' as string contains car not in aZ09 definition + print __METHOD__." result=".$result."\n"; + $this->assertEquals($result, ''); - $result=GETPOST("param4", 'aZ09'); // Must return '' as string contains car not in aZ09 definition - print __METHOD__." result=".$result."\n"; - $this->assertEquals('', $result); + $result=GETPOST("param4", 'aZ09'); // Must return '' as string contains car not in aZ09 definition + print __METHOD__." result=".$result."\n"; + $this->assertEquals('', $result); - $result=GETPOST("param5", 'aZ09'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals($_GET["param5"], $result); + $result=GETPOST("param5", 'aZ09'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($_GET["param5"], $result); - $result=GETPOST("param6", 'alpha'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals('>', $result); + $result=GETPOST("param6", 'alpha'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('>', $result); - $result=GETPOST("param6", 'nohtml'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals('">', $result); + $result=GETPOST("param6", 'nohtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('">', $result); - // With restricthtml we must remove html open/close tag and content but not htmlentities like n - $result=GETPOST("param7", 'restricthtml'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals('"c:\this is a path~1\aaan" abcdef', $result); + // With restricthtml we must remove html open/close tag and content but not htmlentities like n + $result=GETPOST("param7", 'restricthtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('"c:\this is a path~1\aaan" abcdef', $result); - // With alphanohtml, we must convert the html entities like n - $result=GETPOST("param8", 'alphanohtml'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals("HackerassertEquals("Hackersvg onload='console.log(123)'", $result); - $result=GETPOST("param9", 'alphanohtml'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals($_POST["param9"], $result); + $result=GETPOST("param8b", 'alphanohtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('img src=x onerror=alert(document.location) t=', $result, 'Test a string with non closing html tag with alphanohtml'); - $result=GETPOST("param10", 'alphanohtml'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals($_POST["param9"], $result, 'We should get param9 after processing param10'); + $result=GETPOST("param8c", 'alphanohtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($_POST['param8c'], $result, 'Test a string with non closing html tag with alphanohtml'); - $result=GETPOST("param11", 'alphanohtml'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals("Name", $result, 'Test an email string with alphanohtml'); + $result=GETPOST("param9", 'alphanohtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($_POST["param9"], $result); - $result=GETPOST("param11", 'alphawithlgt'); - print __METHOD__." result=".$result."\n"; - $this->assertEquals(trim($_POST["param11"]), $result, 'Test an email string with alphawithlgt'); + $result=GETPOST("param10", 'alphanohtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals($_POST["param9"], $result, 'We should get param9 after processing param10'); - return $result; + $result=GETPOST("param11", 'alphanohtml'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals("Name", $result, 'Test an email string with alphanohtml'); + + $result=GETPOST("param11", 'alphawithlgt'); + print __METHOD__." result=".$result."\n"; + $this->assertEquals(trim($_POST["param11"]), $result, 'Test an email string with alphawithlgt'); + + return $result; } /** From 7670a4f76ce4949a8bd9141eb23ca89076662e3c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 26 Jan 2021 04:46:09 +0100 Subject: [PATCH 078/219] Missing file language & uniformize --- htdocs/accountancy/customer/lines.php | 4 ++-- htdocs/accountancy/customer/list.php | 2 +- htdocs/accountancy/supplier/lines.php | 8 ++++---- htdocs/accountancy/supplier/list.php | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index af636c5609d..a5c603c2504 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bills", "compta", "accountancy", "productbatch")); +$langs->loadLangs(array("bills", "compta", "accountancy", "productbatch", "products")); $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') @@ -339,7 +339,7 @@ if ($result) { print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.ref, fd.rowid", "", $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); //print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "fd.description", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("ProductDescription", $_SERVER["PHP_SELF"], "fd.description", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "fd.total_ht", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "fd.tva_tx", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("ThirdParty", $_SERVER["PHP_SELF"], "s.nom", "", $param, '', $sortfield, $sortorder); diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index a45bccbf4e1..80396319a1a 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bills", "companies", "compta", "accountancy", "other", "productbatch")); +$langs->loadLangs(array("bills", "companies", "compta", "accountancy", "other", "productbatch", "products")); $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 4bb163b6653..70d6d89216f 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("compta", "bills", "other", "accountancy", "productbatch")); +$langs->loadLangs(array("compta", "bills", "other", "accountancy", "productbatch", "products")); $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') @@ -334,16 +334,16 @@ if ($result) { print '
    '; print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("InvoiceLabel", $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder); + //print_liste_field_titre("InvoiceLabel", $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); //print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("ProductDescription", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("ThirdParty", $_SERVER["PHP_SELF"], "s.nom", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("VATIntraShort", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("AccountAccounting", $_SERVER["PHP_SELF"], "aa.account_number", "", $param, '', $sortfield, $sortorder); $checkpicto = $form->showCheckAddButtons(); print_liste_field_titre($checkpicto, '', '', '', '', '', '', '', 'center '); diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index b4b54389453..2de31383375 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -39,7 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; // Load translation files required by the page -$langs->loadLangs(array("bills", "companies", "compta", "accountancy", "other", "productbatch")); +$langs->loadLangs(array("bills", "companies", "compta", "accountancy", "other", "productbatch", "products")); $action = GETPOST('action', 'aZ09'); $massaction = GETPOST('massaction', 'alpha'); From 94d4f2da8e34cde669388deef93ad977ac92986e Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 26 Jan 2021 05:14:01 +0100 Subject: [PATCH 079/219] Missing language key & error translation --- htdocs/core/modules/modCommande.class.php | 4 ++-- htdocs/langs/en_US/admin.lang | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/core/modules/modCommande.class.php b/htdocs/core/modules/modCommande.class.php index ac4d26725bc..f257c6e3132 100644 --- a/htdocs/core/modules/modCommande.class.php +++ b/htdocs/core/modules/modCommande.class.php @@ -271,7 +271,7 @@ class modCommande extends DolibarrModules $r++; $this->import_code[$r] = 'commande_'.$r; - $this->import_label[$r] = 'Sales Orders'; + $this->import_label[$r] = 'CustomersOrders'; $this->import_icon[$r] = $this->picto; $this->import_entities_array[$r] = []; $this->import_tables_array[$r] = ['c' => MAIN_DB_PREFIX.'commande', 'extra' => MAIN_DB_PREFIX.'commande_extrafields']; @@ -357,7 +357,7 @@ class modCommande extends DolibarrModules //Import CPV Lines $r++; $this->import_code[$r] = 'commande_lines_'.$r; - $this->import_label[$r] = 'Order Details'; + $this->import_label[$r] = 'OrderLine'; $this->import_icon[$r] = $this->picto; $this->import_entities_array[$r] = []; $this->import_tables_array[$r] = ['cd' => MAIN_DB_PREFIX.'commandedet', 'extra' => MAIN_DB_PREFIX.'commandedet_extrafields']; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 48a44577528..bba6966fa45 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -541,6 +541,8 @@ Module40Name=Vendors Module40Desc=Vendors and purchase management (purchase orders and billing of supplier invoices) Module42Name=Debug Logs Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module43Name=Debug Bar +Module43Desc=A tool for developper adding a debug bar in your browser. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -639,6 +641,8 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3200Name=Unalterable Archives Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries. +Module3400Name=Social Networks +Module3400Desc=Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...). Module4000Name=HRM Module4000Desc=Human resources management (management of department, employee contracts and feelings) Module5000Name=Multi-company @@ -2090,4 +2094,4 @@ CombinationsSeparator=Separator character for product combinations SeeLinkToOnlineDocumentation=See link to online documention on top menu for examples SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module
    %s is used, show details of subproducts of a kit on PDF. AskThisIDToYourBank=Contact your bank to get this ID -AdvancedModeOnly=Permision available in Advanced permission mode only \ No newline at end of file +AdvancedModeOnly=Permision available in Advanced permission mode only From 0ef02880ebaa91caec77dc2ee0a40a706c3b536f Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 26 Jan 2021 08:54:21 +0100 Subject: [PATCH 080/219] Fix: Fa-icon on movement --- htdocs/core/lib/functions.lib.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 142d91565d6..eaffe04e24d 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3279,7 +3279,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'object_recruitmentjobposition', 'object_recruitmentcandidature', 'object_shipment', 'object_share-alt', 'object_supplier_invoice', 'object_supplier_invoicea', 'object_supplier_invoiced', 'object_supplier_order', 'object_supplier_proposal', 'object_service', 'object_stock', 'object_technic', 'object_ticket', 'object_trip', 'object_user', 'object_group', 'object_member', - 'object_phoning', 'object_phoning_mobile', 'object_phoning_fax', 'object_email', 'object_website', + 'object_phoning', 'object_phoning_mobile', 'object_phoning_fax', 'object_email', 'object_website', 'object_movement', 'off', 'on', 'order', 'paiment', 'play', 'pdf', 'playdisabled', 'previous', 'poll', 'printer', 'product', 'propal', 'projecttask', 'stock', 'resize', 'service', 'stats', 'trip', 'setup', 'share-alt', 'sign-out', 'split', 'stripe-s', 'switch_off', 'switch_on', 'tools', 'unlink', 'uparrow', 'user', 'vcard', 'wrench', @@ -3316,7 +3316,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'edit'=>'pencil-alt', 'grip_title'=>'arrows-alt', 'grip'=>'arrows-alt', 'help'=>'question-circle', 'generic'=>'file', 'holiday'=>'umbrella-beach', 'label'=>'layer-group', 'member'=>'users', 'mrp'=>'cubes', 'next'=>'arrow-alt-circle-right', - 'trip'=>'wallet', 'group'=>'users', + 'trip'=>'wallet', 'group'=>'users', 'movement'=>'people-carry', 'sign-out'=>'sign-out-alt', 'switch_off'=>'toggle-off', 'switch_on'=>'toggle-on', 'check'=>'check', 'bookmark'=>'star', 'bookmark'=>'star', 'bank'=>'university', 'close_title'=>'times', 'delete'=>'trash', 'edit'=>'pencil-alt', 'filter'=>'filter', @@ -3405,7 +3405,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ 'companies'=>'#6c6aa8', 'company'=>'#6c6aa8', 'contact'=>'#6c6aa8', 'dynamicprice'=>'#a69944', 'edit'=>'#444', 'note'=>'#999', 'error'=>'', 'help'=>'#bbb', 'listlight'=>'#999', 'dolly'=>'#a69944', 'dollyrevert'=>'#a69944', 'lot'=>'#a69944', - 'map-marker-alt'=>'#aaa', 'mrp'=>'#a69944', 'product'=>'#a69944', 'service'=>'#a69944', 'stock'=>'#a69944', + 'map-marker-alt'=>'#aaa', 'mrp'=>'#a69944', 'product'=>'#a69944', 'service'=>'#a69944', 'stock'=>'#a69944', 'movement'=>'#a69944', 'other'=>'#ddd', 'playdisabled'=>'#ccc', 'printer'=>'#444', 'projectpub'=>'#986c6a', 'resize'=>'#444', 'rss'=>'#cba', 'shipment'=>'#a69944', 'stats'=>'#444', 'switch_off'=>'#999', 'uparrow'=>'#555', 'globe-americas'=>'#aaa', From 6ab63a10d6f77c6a65029b8c538fbc90c25c37ee Mon Sep 17 00:00:00 2001 From: Adrien Raze Date: Tue, 26 Jan 2021 09:37:28 +0100 Subject: [PATCH 081/219] FIX : Linked extrafields don't work with string value --- htdocs/core/class/commonobject.class.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index e0ba83e13c2..712b0b51ef5 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -7111,7 +7111,17 @@ abstract class CommonObject { var val = $("select[name=\""+parent_list+"\"]").val(); var parentVal = parent_list + ":" + val; - if(val > 0) { + if(typeof val == "string"){ + if(val != "") { + var options = orig_select.find("option[parent=\""+parentVal+"\"]").clone(); + $("select[name=\""+child_list+"\"] option[parent]").remove(); + $("select[name=\""+child_list+"\"]").append(options); + } else { + var options = orig_select.find("option[parent]").clone(); + $("select[name=\""+child_list+"\"] option[parent]").remove(); + $("select[name=\""+child_list+"\"]").append(options); + } + } else if(val > 0) { var options = orig_select.find("option[parent=\""+parentVal+"\"]").clone(); $("select[name=\""+child_list+"\"] option[parent]").remove(); $("select[name=\""+child_list+"\"]").append(options); From 8db80ff44dadfb76b55771e7a244a3d7a6445fcb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 11:19:13 +0100 Subject: [PATCH 082/219] Fix reponsive --- htdocs/admin/mails.php | 8 +++++++- htdocs/core/lib/admin.lib.php | 10 +++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index 5e32a637c8f..88ae8964c1b 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -532,6 +532,7 @@ if ($action == 'edit') print ''.$langs->trans("EMailsDesc")."
    \n"; print "
    \n"; + print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '
    '.$langs->trans("LastUsersCreated", min($num, $max)).''.$langs->trans("FullList").'
    '; print ''; @@ -552,10 +553,12 @@ if ($action == 'edit') } print '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '; + print ''; if (empty($conf->global->MAIN_DISABLE_ALL_MAILS)) { print '
    '; + print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table print ''; print ''; @@ -663,6 +666,7 @@ if ($action == 'edit') } print '
    '.$langs->trans("MAIN_MAIL_SENDMODE").'
    '; + print '
    '; if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP)) { print info_admin($langs->trans("WarningPHPMail").'
    '.$langs->trans("WarningPHPMailA").'
    '.$langs->trans("WarningPHPMailB").'
    '.$langs->trans("WarningPHPMailC").'

    '.$langs->trans("WarningPHPMailD"), 0, 0, 'warning'); @@ -670,11 +674,12 @@ if ($action == 'edit') print '
    '; + print '
    '; // You can use div-table-responsive-no-min if you dont need reserved height for your table print ''; print ''; // From - print ''; + print ''; print ''; @@ -746,6 +751,7 @@ if ($action == 'edit') print ''; print '
    '.$langs->trans("OtherOptions").'
    '.$langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ?ini_get('sendmail_from') : $langs->transnoentities("Undefined")).'
    '.$langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ?ini_get('sendmail_from') : $langs->transnoentities("Undefined")).''.$conf->global->MAIN_MAIL_EMAIL_FROM; if (!empty($conf->global->MAIN_MAIL_EMAIL_FROM) && !isValidEmail($conf->global->MAIN_MAIL_EMAIL_FROM)) print img_warning($langs->trans("ErrorBadEMail")); print '
    '.$langs->trans("MAIN_MAIL_ENABLED_USER_DEST_SELECT").''.yn($conf->global->MAIN_MAIL_ENABLED_USER_DEST_SELECT).'
    '; + print '
    '; } print dol_get_fiche_end(); diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index f3faeda4b3a..ce9ffb31697 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -1870,11 +1870,6 @@ function email_admin_prepare_head() } } - $head[$h][0] = DOL_URL_ROOT."/admin/mails_templates.php"; - $head[$h][1] = $langs->trans("EMailTemplates"); - $head[$h][2] = 'templates'; - $h++; - if (!empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates')) { $head[$h][0] = DOL_URL_ROOT."/admin/mails_senderprofile_list.php"; $head[$h][1] = $langs->trans("EmailSenderProfiles"); @@ -1882,6 +1877,11 @@ function email_admin_prepare_head() $h++; } + $head[$h][0] = DOL_URL_ROOT."/admin/mails_templates.php"; + $head[$h][1] = $langs->trans("EMailTemplates"); + $head[$h][2] = 'templates'; + $h++; + complete_head_from_modules($conf, $langs, null, $head, $h, 'email_admin', 'remove'); return $head; From c417f730b91a9b103a6e0989ece8d9f4a9d3d437 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 11:31:48 +0100 Subject: [PATCH 083/219] Clean language file --- htdocs/langs/en_US/mrp.lang | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index 9f0ddf152db..5ca0dbc6981 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -83,8 +83,6 @@ Workstations=Workstations WorkstationsDescription=Workstations management WorkstationSetup = Workstations setup WorkstationSetupPage = Workstations setup page -WorkstationAbout = About Workstation -WorkstationAboutPage = Workstations about page WorkstationList=Workstation list WorkstationCreate=Add new workstation ConfirmEnableWorkstation=Are you sure you want to enable workstation %s ? From 6313fb8be0d5b9953d98e4c766a2cfc597efdf67 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 11:38:07 +0100 Subject: [PATCH 084/219] Fix lang --- htdocs/langs/en_US/stocks.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index ace97c85c3f..ad4946ee9f9 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -62,7 +62,7 @@ EnhancedValueOfWarehouses=Warehouses value UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product RuleForWarehouse=Rule for warehouses -WarehouseAskWarehouseDuringPropal=Set a warehouse on Sale propal +WarehouseAskWarehouseDuringPropal=Set a warehouse on Commercial proposals WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders UserDefaultWarehouse=Set a warehouse on Users MainDefaultWarehouse=Default warehouse From 19dd36aa5901b78169a97b07ee4b8ccd2f3f7949 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 11:45:29 +0100 Subject: [PATCH 085/219] Trans --- htdocs/langs/en_US/admin.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index b9ee83f44af..ee7b0052b7c 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -349,7 +349,7 @@ UpdateServerOffline=Update server offline WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
    {000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
    {000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
    {000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
    {dd} day (01 to 31).
    {mm} month (01 to 12).
    {yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
    GenericMaskCodes2={cccc} the client code on n characters
    {cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
    {tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
    -GenericMaskCodes3=All other characters in the mask will remain intact (except * or ? in 13th position in EAN13).
    Spaces are not allowed.
    In EAN13 the last character after the last } in 13th position
    should be * or ? it will be replaced by the calculated key.
    +GenericMaskCodes3=All other characters in the mask will remain intact (except * or ? in 13th position in EAN13).
    Spaces are not allowed.
    In EAN13, the last character after the last } in 13th position should be * or ? . It will be replaced by the calculated key.
    GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
    GenericMaskCodes4b=Example on third party created on 2007-03-01:
    GenericMaskCodes4c=Example on product created on 2007-03-01:
    From 977e4dde865f3ccf1ab8618af8bc7fbdd1c71ec1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 12:08:54 +0100 Subject: [PATCH 086/219] Fix regression --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 142d91565d6..d2e919e49fe 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -5786,7 +5786,7 @@ function dol_string_nohtmltag($stringtoclean, $removelinefeed = 1, $pagecodeto = $temp = preg_replace($pattern, "", $temp); // pass 1 - $temp after pass 1:
    0000-021 $temp = preg_replace($pattern, "", $temp); // pass 2 - $temp after pass 2: 0000-021 // removed '<' into non closing html tags like ' Date: Tue, 26 Jan 2021 12:42:04 +0100 Subject: [PATCH 087/219] FIX 11.0: when a new intervention is created from an object, a new $extrafields object is instantiated but not initialized Because of this, missing mandatory extrafields are not checked and no extrafields are inserted --- htdocs/fichinter/card.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index ed6d7996eff..754ef061247 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -258,7 +258,13 @@ if (empty($reshook)) } // Extrafields - $extrafields = new ExtraFields($db); + + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost(null, $object); + if ($ret < 0) { + $error++; + $action = 'create'; + } $array_options = $extrafields->getOptionalsFromPost($object->table_element); $object->array_options = $array_options; From 02098bf37b8ba9b2a90f535d86f85b662ffabb28 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 12:43:23 +0100 Subject: [PATCH 088/219] Fix default --- htdocs/website/class/websitepage.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/website/class/websitepage.class.php b/htdocs/website/class/websitepage.class.php index 30961013806..d0f11a6c9cf 100644 --- a/htdocs/website/class/websitepage.class.php +++ b/htdocs/website/class/websitepage.class.php @@ -161,7 +161,7 @@ class WebsitePage extends CommonObject //'status' =>array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'index'=>true, 'position'=>1000), 'fk_website' =>array('type'=>'integer', 'label'=>'WebsiteId', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>40, 'searchall'=>0, 'foreignkey'=>'websitepage.rowid'), 'fk_page' =>array('type'=>'integer', 'label'=>'ParentPageId', 'enabled'=>1, 'visible'=>1, 'notnull'=>-1, 'position'=>45, 'searchall'=>0, 'foreignkey'=>'website.rowid'), - 'allowed_in_frames' =>array('type'=>'integer', 'label'=>'AllowedInFrames', 'enabled'=>1, 'visible'=>-1, 'position'=>48, 'searchall'=>0), + 'allowed_in_frames' =>array('type'=>'integer', 'label'=>'AllowedInFrames', 'enabled'=>1, 'visible'=>-1, 'position'=>48, 'searchall'=>0, 'default'=>0), 'htmlheader' =>array('type'=>'text', 'label'=>'HtmlHeader', 'enabled'=>1, 'visible'=>0, 'position'=>50, 'searchall'=>0), 'content' =>array('type'=>'mediumtext', 'label'=>'Content', 'enabled'=>1, 'visible'=>0, 'position'=>51, 'searchall'=>0), 'grabbed_from' =>array('type'=>'varchar(255)', 'label'=>'GrabbedFrom', 'enabled'=>1, 'visible'=>1, 'index'=>1, 'position'=>400, 'comment'=>'URL page content was grabbed from'), From a1147319d2e22450b0811c1f289d634044a83358 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 13:11:10 +0100 Subject: [PATCH 089/219] Fix countAll --- htdocs/website/class/websitepage.class.php | 23 +++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/htdocs/website/class/websitepage.class.php b/htdocs/website/class/websitepage.class.php index d0f11a6c9cf..bacc4664791 100644 --- a/htdocs/website/class/websitepage.class.php +++ b/htdocs/website/class/websitepage.class.php @@ -400,7 +400,7 @@ class WebsitePage extends CommonObject $sql .= " t.fk_object"; $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; $sql .= ' WHERE t.fk_website = '.$websiteid; - // Manage filter + // Manage filter (same than into countAll) $sqlwhere = array(); if (count($filter) > 0) { foreach ($filter as $key => $value) { @@ -501,14 +501,27 @@ class WebsitePage extends CommonObject $sql = 'SELECT COUNT(t.rowid) as nb'; $sql .= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t'; $sql .= ' WHERE t.fk_website = '.$websiteid; - // Manage filter + // Manage filter (same than into fetchAll) $sqlwhere = array(); if (count($filter) > 0) { foreach ($filter as $key => $value) { - if ($key == 't.rowid' || $key == 't.fk_website') { - $sqlwhere[] = $key.'='.$value; + if ($key == 't.rowid' || $key == 't.fk_website' || $key == 'status') { + $sqlwhere[] = $key.' = '.$value; + } elseif ($key == 'type_container') { + $sqlwhere[] = $key." = '".$this->db->escape($value)."'"; } elseif ($key == 'lang' || $key == 't.lang') { - $sqlwhere[] = $key." = '".$this->db->escape(substr($value, 0, 2))."'"; + $listoflang = array(); + $foundnull = 0; + foreach (explode(',', $value) as $tmpvalue) { + if ($tmpvalue == 'null') { + $foundnull++; + continue; + } + $listoflang[] = "'".$this->db->escape(substr(str_replace("'", '', $tmpvalue), 0, 2))."'"; + } + $stringtouse = $key." IN (".join(',', $listoflang).")"; + if ($foundnull) $stringtouse = '('.$stringtouse.' OR '.$key.' IS NULL)'; + $sqlwhere[] = $stringtouse; } else { $sqlwhere[] = $key.' LIKE \'%'.$this->db->escape($value).'%\''; } From 26c22e1b28ea109f6c07c1af2d66bb2d98f28a5d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 13:22:20 +0100 Subject: [PATCH 090/219] Fix warning --- htdocs/admin/mails.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index 88ae8964c1b..08e7c2b5446 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -679,9 +679,10 @@ if ($action == 'edit') print ''.$langs->trans("OtherOptions").''; // From - print ''.$langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ?ini_get('sendmail_from') : $langs->transnoentities("Undefined")).''; + print ''.$langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ?ini_get('sendmail_from') : $langs->transnoentities("Undefined")).''; print ''.$conf->global->MAIN_MAIL_EMAIL_FROM; - if (!empty($conf->global->MAIN_MAIL_EMAIL_FROM) && !isValidEmail($conf->global->MAIN_MAIL_EMAIL_FROM)) print img_warning($langs->trans("ErrorBadEMail")); + if (empty($conf->global->MAIN_MAIL_EMAIL_FROM)) print img_warning($langs->trans("Mandatory")); + elseif (!isValidEmail($conf->global->MAIN_MAIL_EMAIL_FROM)) print img_warning($langs->trans("ErrorBadEMail")); print ''; // Default from type From aa2d581b41321fe12b96e406d210e463e25bdf4c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 13:38:41 +0100 Subject: [PATCH 091/219] Fix rename of alias --- htdocs/core/lib/website2.lib.php | 16 ++++++++-------- htdocs/website/index.php | 11 +++++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index 004ac154aee..380a7c0dc12 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -86,7 +86,7 @@ function dolSavePageAlias($filealias, $object, $objectpage) if ($objectpage->lang && in_array($objectpage->lang, explode(',', $object->otherlang))) { $dirname = dirname($filealias); $filename = basename($filealias); - $filealias = $dirname.'/'.$objectpage->lang.'/'.$filename; + $filealiassub = $dirname.'/'.$objectpage->lang.'/'.$filename; $aliascontent = 'id.'.tpl.php\'; '; $aliascontent .= 'else require $dolibarr_main_data_root.\'/website/\'.$website->ref.\'/page'.$objectpage->id.'.tpl.php\';'."\n"; $aliascontent .= '?>'."\n"; - $result = file_put_contents($filealias, $aliascontent); + $result = file_put_contents($filealiassub, $aliascontent); if ($result === false) { - dol_syslog("Failed to write file ".$filealias, LOG_WARNING); + dol_syslog("Failed to write file ".$filealiassub, LOG_WARNING); } if (!empty($conf->global->MAIN_UMASK)) { - @chmod($filealias, octdec($conf->global->MAIN_UMASK)); + @chmod($filealiassub, octdec($conf->global->MAIN_UMASK)); } } // Save also alias into all language subdirectories if it is a main language @@ -108,7 +108,7 @@ function dolSavePageAlias($filealias, $object, $objectpage) $dirname = dirname($filealias); $filename = basename($filealias); foreach (explode(',', $object->otherlang) as $sublang) { - $filealias = $dirname.'/'.$sublang.'/'.$filename; + $filealiassub = $dirname.'/'.$sublang.'/'.$filename; $aliascontent = 'id.'.tpl.php\'; '; $aliascontent .= 'else require $dolibarr_main_data_root.\'/website/\'.$website->ref.\'/page'.$objectpage->id.'.tpl.php\';'."\n"; $aliascontent .= '?>'."\n"; - $result = file_put_contents($filealias, $aliascontent); + $result = file_put_contents($filealiassub, $aliascontent); if ($result === false) { - dol_syslog("Failed to write file ".$filealias, LOG_WARNING); + dol_syslog("Failed to write file ".$filealiassub, LOG_WARNING); } if (!empty($conf->global->MAIN_UMASK)) { - @chmod($filealias, octdec($conf->global->MAIN_UMASK)); + @chmod($filealiassub, octdec($conf->global->MAIN_UMASK)); } } } diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 30937b74c34..05ef2f7e64d 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2037,6 +2037,17 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf { dol_syslog("We regenerate alias page new name=".$filealias.", old name=".$fileoldalias); dol_delete_file($fileoldalias); + + // Delete also pages into language subdirectories + if (empty($objectpage->lang) || !in_array($objectpage->lang, explode(',', $object->otherlang))) { + $dirname = dirname($fileoldalias); + $filename = basename($fileoldalias); + foreach (explode(',', $object->otherlang) as $sublang) { + $fileoldaliassub = $dirname.'/'.$sublang.'/'.$filename; + dol_delete_file($fileoldaliassub); + } + } + } // Save page alias From c0426b866f5f57442b07fc85b170bbf2b6a98e18 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 13:40:38 +0100 Subject: [PATCH 092/219] Fix loop --- htdocs/website/index.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 05ef2f7e64d..4ed4f727d17 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2042,7 +2042,8 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf if (empty($objectpage->lang) || !in_array($objectpage->lang, explode(',', $object->otherlang))) { $dirname = dirname($fileoldalias); $filename = basename($fileoldalias); - foreach (explode(',', $object->otherlang) as $sublang) { + $sublangs = explode(',', $object->otherlang); + foreach ($sublangs as $sublang) { $fileoldaliassub = $dirname.'/'.$sublang.'/'.$filename; dol_delete_file($fileoldaliassub); } From b3d2d50a0ce40625b3fa3913b6401f024f408ce4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 13:57:56 +0100 Subject: [PATCH 093/219] Fix delete aliases --- htdocs/website/index.php | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 4ed4f727d17..ebcf31ad2c5 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -1752,7 +1752,6 @@ if ($action == 'updatemeta') dol_mkdir($pathofwebsite); - // Now generate the master.inc.php page $result = dolSaveMasterFile($filemaster); if (!$result) setEventMessages('Failed to write file '.$filemaster, null, 'errors'); @@ -1762,6 +1761,17 @@ if ($action == 'updatemeta') { dol_syslog("We delete old alias page name=".$fileoldalias." to build a new alias page=".$filealias); dol_delete_file($fileoldalias); + + // Delete also pages into language subdirectories + if (empty($objectpage->lang) || !in_array($objectpage->lang, explode(',', $object->otherlang))) { + $dirname = dirname($fileoldalias); + $filename = basename($fileoldalias); + $sublangs = explode(',', $object->otherlang); + foreach ($sublangs as $sublang) { + $fileoldaliassub = $dirname.'/'.$sublang.'/'.$filename; + dol_delete_file($fileoldaliassub); + } + } } // Now delete the alternative alias.php pages if (!empty($objectpage->old_object->aliasalt)) @@ -1773,11 +1783,22 @@ if ($action == 'updatemeta') { dol_syslog("We delete old alt alias pages name=".trim($tmpaliasalt)); dol_delete_file($pathofwebsite.'/'.trim($tmpaliasalt).'.php'); + + // Delete also pages into language subdirectories + if (empty($objectpage->lang) || !in_array($objectpage->lang, explode(',', $object->otherlang))) { + $dirname = dirname($pathofwebsite.'/'.trim($tmpaliasalt).'.php'); + $filename = basename($pathofwebsite.'/'.trim($tmpaliasalt).'.php'); + $sublangs = explode(',', $object->otherlang); + foreach ($sublangs as $sublang) { + $fileoldaliassub = $dirname.'/'.$sublang.'/'.$filename; + dol_delete_file($fileoldaliassub); + } + } } } } - // Save page alias + // Save page main alias $result = dolSavePageAlias($filealias, $object, $objectpage); if (!$result) setEventMessages('Failed to write file '.$filealias, null, 'errors'); // Save alt aliases @@ -2025,15 +2046,13 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf dol_mkdir($pathofwebsite); - // Now generate the master.inc.php page $result = dolSaveMasterFile($filemaster); if (!$result) setEventMessages('Failed to write the master file file '.$filemaster, null, 'errors'); - - // Now generate the alias.php page - if (!empty($fileoldalias)) + // Now delete the old alias.php page if we removed one + /*if (!empty($fileoldalias)) { dol_syslog("We regenerate alias page new name=".$filealias.", old name=".$fileoldalias); dol_delete_file($fileoldalias); @@ -2048,8 +2067,7 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf dol_delete_file($fileoldaliassub); } } - - } + }*/ // Save page alias $result = dolSavePageAlias($filealias, $object, $objectpage); From f331ce802881455e6b07181a24e8a15da29286ea Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 14:24:32 +0100 Subject: [PATCH 094/219] Look and feel v14 --- htdocs/projet/activity/perday.php | 8 ++++---- htdocs/projet/activity/permonth.php | 8 ++++---- htdocs/projet/activity/perweek.php | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php index a4a37f22a31..c582507ec50 100644 --- a/htdocs/projet/activity/perday.php +++ b/htdocs/projet/activity/perday.php @@ -504,19 +504,19 @@ $moreforfilter .= '
    '; $moreforfilter .= '
    '; $includeonly = 'hierarchyme'; if (empty($user->rights->user->user->lire)) $includeonly = array($user->id); -$moreforfilter .= img_picto($langs->trans('User'), 'user').$form->select_dolusers($search_usertoprocessid ? $search_usertoprocessid : $usertoprocess->id, 'search_usertoprocessid', $user->rights->user->user->lire ? 0 : 0, null, 0, $includeonly, null, 0, 0, 0, '', 0, '', 'maxwidth200 marginleftonly'); +$moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('User'), 'user').$form->select_dolusers($search_usertoprocessid ? $search_usertoprocessid : $usertoprocess->id, 'search_usertoprocessid', $user->rights->user->user->lire ? 0 : 0, null, 0, $includeonly, null, 0, 0, 0, '', 0, '', 'maxwidth200 marginleftonly'); $moreforfilter .= '
    '; if (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)) { $moreforfilter .= '
    '; $moreforfilter .= '
    '; - $moreforfilter .= img_picto($langs->trans('Project'), 'project').''; + $moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('Project'), 'project').''; $moreforfilter .= '
    '; $moreforfilter .= '
    '; $moreforfilter .= '
    '; - $moreforfilter .= img_picto($langs->trans('ThirdParty'), 'company').''; + $moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('ThirdParty'), 'company').''; $moreforfilter .= '
    '; } @@ -594,7 +594,7 @@ if (!empty($arrayfields['t.progress']['checked'])) if ($usertoprocess->id == $user->id) print ''.$langs->trans("TimeSpentByYou").''; else print ''.$langs->trans("TimeSpentByUser").'';*/ print ''.$langs->trans("TimeSpent").'
    '.$langs->trans("Everybody").''; -print ''.$langs->trans("TimeSpent").($usertoprocess->firstname ? '
    '.dol_trunc($usertoprocess->firstname, 10).'' : '').''; +print ''.$langs->trans("TimeSpent").($usertoprocess->firstname ? '
    '.$usertoprocess->getNomUrl(-2).''.dol_trunc($usertoprocess->firstname, 10).'' : '').''; print ''.$langs->trans("HourStart").''; // By default, we can edit only tasks we are assigned to diff --git a/htdocs/projet/activity/permonth.php b/htdocs/projet/activity/permonth.php index 9a95f8abf79..626634b13cd 100644 --- a/htdocs/projet/activity/permonth.php +++ b/htdocs/projet/activity/permonth.php @@ -429,19 +429,19 @@ $moreforfilter .= '
    '; $moreforfilter .= '
    '; $includeonly = 'hierachyme'; if (empty($user->rights->user->user->lire)) $includeonly = array($user->id); -$moreforfilter .= img_picto($langs->trans('User'), 'user').$form->select_dolusers($search_usertoprocessid ? $search_usertoprocessid : $usertoprocess->id, 'search_usertoprocessid', $user->rights->user->user->lire ? 0 : 0, null, 0, $includeonly, null, 0, 0, 0, '', 0, '', 'maxwidth200'); +$moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('User'), 'user').$form->select_dolusers($search_usertoprocessid ? $search_usertoprocessid : $usertoprocess->id, 'search_usertoprocessid', $user->rights->user->user->lire ? 0 : 0, null, 0, $includeonly, null, 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter .= '
    '; if (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)) { $moreforfilter .= '
    '; $moreforfilter .= '
    '; - $moreforfilter .= img_picto($langs->trans('Project'), 'project').''; + $moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('Project'), 'project').''; $moreforfilter .= '
    '; $moreforfilter .= '
    '; $moreforfilter .= '
    '; - $moreforfilter .= img_picto($langs->trans('ThirdParty'), 'company').''; + $moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('ThirdParty'), 'company').''; $moreforfilter .= '
    '; } @@ -488,7 +488,7 @@ print ''.$langs->trans("ProgressDeclared"). if ($usertoprocess->id == $user->id) print ''.$langs->trans("TimeSpentByYou").''; else print ''.$langs->trans("TimeSpentByUser").'';*/ print ''.$langs->trans("TimeSpent").'
    '.$langs->trans("Everybody").''; -print ''.$langs->trans("TimeSpent").($usertoprocess->firstname ? '
    '.dol_trunc($usertoprocess->firstname, 10).'' : '').''; +print ''.$langs->trans("TimeSpent").($usertoprocess->firstname ? '
    '.$usertoprocess->getNomUrl(-2).''.dol_trunc($usertoprocess->firstname, 10).'' : '').''; foreach ($TWeek as $week_number) { diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php index c29486302af..9dff5fbc0f6 100644 --- a/htdocs/projet/activity/perweek.php +++ b/htdocs/projet/activity/perweek.php @@ -559,19 +559,19 @@ $moreforfilter .= '
    '; $moreforfilter .= '
    '; $includeonly = 'hierarchyme'; if (empty($user->rights->user->user->lire)) $includeonly = array($user->id); -$moreforfilter .= img_picto($langs->trans('User'), 'user').$form->select_dolusers($search_usertoprocessid ? $search_usertoprocessid : $usertoprocess->id, 'search_usertoprocessid', $user->rights->user->user->lire ? 0 : 0, null, 0, $includeonly, null, 0, 0, 0, '', 0, '', 'maxwidth200'); +$moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('User'), 'user').$form->select_dolusers($search_usertoprocessid ? $search_usertoprocessid : $usertoprocess->id, 'search_usertoprocessid', $user->rights->user->user->lire ? 0 : 0, null, 0, $includeonly, null, 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter .= '
    '; if (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)) { $moreforfilter .= '
    '; $moreforfilter .= '
    '; - $moreforfilter .= img_picto($langs->trans('Project'), 'project').''; + $moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('Project'), 'project').''; $moreforfilter .= '
    '; $moreforfilter .= '
    '; $moreforfilter .= '
    '; - $moreforfilter .= img_picto($langs->trans('ThirdParty'), 'company').''; + $moreforfilter .= img_picto($langs->trans('Filter').' '.$langs->trans('ThirdParty'), 'company').''; $moreforfilter .= '
    '; } @@ -652,7 +652,7 @@ if (!empty($arrayfields['t.progress']['checked'])) if ($usertoprocess->id == $user->id) print ''.$langs->trans("TimeSpentByYou").''; else print ''.$langs->trans("TimeSpentByUser").'';*/ print ''.$langs->trans("TimeSpent").'
    '.$langs->trans("Everybody").''; -print ''.$langs->trans("TimeSpent").($usertoprocess->firstname ? '
    '.dol_trunc($usertoprocess->firstname, 10).'' : '').''; +print ''.$langs->trans("TimeSpent").($usertoprocess->firstname ? '
    '.$usertoprocess->getNomUrl(-2).''.dol_trunc($usertoprocess->firstname, 10).'' : '').''; for ($idw = 0; $idw < 7; $idw++) { From 1637b6af7dd0cfea6efb9f18ca879cbf0cfdf147 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 15:16:06 +0100 Subject: [PATCH 095/219] Look and feel v14 --- htdocs/core/lib/project.lib.php | 2 ++ htdocs/projet/activity/perday.php | 2 +- htdocs/projet/activity/perweek.php | 2 +- htdocs/theme/eldy/global.inc.php | 3 +++ htdocs/theme/md/style.css.php | 3 +++ 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index d7c7c53f8de..c5467c08357 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -1118,6 +1118,7 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr $projectstatic->ref = $lines[$i]->projectref; $projectstatic->title = $lines[$i]->projectlabel; $projectstatic->public = $lines[$i]->public; + $projectstatic->status = $lines[$i]->projectstatus; $taskstatic->id = $lines[$i]->id; $taskstatic->ref = ($lines[$i]->ref ? $lines[$i]->ref : $lines[$i]->id); @@ -1491,6 +1492,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$ $projectstatic->title = $lines[$i]->projectlabel; $projectstatic->public = $lines[$i]->public; $projectstatic->thirdparty_name = $lines[$i]->thirdparty_name; + $projectstatic->status = $lines[$i]->projectstatus; $taskstatic->id = $lines[$i]->id; $taskstatic->ref = ($lines[$i]->ref ? $lines[$i]->ref : $lines[$i]->id); diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php index c582507ec50..c6b38390ac9 100644 --- a/htdocs/projet/activity/perday.php +++ b/htdocs/projet/activity/perday.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2016 Laurent Destailleur * Copyright (C) 2005-2010 Regis Houssin * Copyright (C) 2010 François Legastelois - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php index 9dff5fbc0f6..f001a73d0f4 100644 --- a/htdocs/projet/activity/perweek.php +++ b/htdocs/projet/activity/perweek.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2015 Laurent Destailleur * Copyright (C) 2005-2010 Regis Houssin * Copyright (C) 2010 François Legastelois - * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index eaa1bf8c2e2..c4f862863e1 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -2577,6 +2577,9 @@ img.userphotosmall { /* size for user photo in lists */ img.userphoto[alt="Gravatar avatar"], img.photouserphoto.dropdown-user-image[alt="Gravatar avatar"] { background: #fff; } +form[name="addtime"] img.userphoto { + border: 1px solid #444; +} .span-icon-user { background-image: url(); background-repeat: no-repeat; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index f0e4d593f00..a9fbc589a12 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2568,6 +2568,9 @@ img.userphotosmall { /* size for user photo in lists */ img.userphoto[alt="Gravatar avatar"] { background: #fff; } +form[name="addtime"] img.userphoto { + border: 1px solid #444; +} .span-icon-user { background-image: url(); background-repeat: no-repeat; From 8bc639fe02b13e5bd02f10bf930e3047313e77c9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 16:10:27 +0100 Subject: [PATCH 096/219] Fix too many logs --- htdocs/includes/odtphp/odf.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 88fa70c5646..e7ce32cf4b9 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -136,9 +136,8 @@ class Odf // instead of {aaa} so we should enhance this function. //print $key.'-'.$value.'-'.strpos($this->contentXml, $this->config['DELIMITER_LEFT'] . $key . $this->config['DELIMITER_RIGHT']).'
    '; if (strpos($this->contentXml, $tag) === false && strpos($this->stylesXml, $tag) === false) { - //if (strpos($this->contentXml, '">'. $key . '') === false) { - throw new OdfException("var $key not found in the document"); - //} + // Add the throw only for development. In most cases, it is normal to not having the key into the document (only few keys are presents). + //throw new OdfException("var $key not found in the document"); } $this->vars[$tag] = $this->convertVarToOdf($value, $encode, $charset); From 69344a71703eddf3b07da829685f6b600f9526d4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 16:33:47 +0100 Subject: [PATCH 097/219] Fix create temp dir --- htdocs/includes/odtphp/odf.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 88fa70c5646..bc15530a777 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -820,11 +820,13 @@ IMG; // Export to PDF using LibreOffice if ($conf->global->MAIN_ODT_AS_PDF == 'libreoffice') { + dol_mkdir($conf->user->dir_temp); // We must be sure the directory exists and is writable + // Install prerequisites: apt install soffice libreoffice-common libreoffice-writer // using windows libreoffice that must be in path // using linux/mac libreoffice that must be in path // Note PHP Config "fastcgi.impersonate=0" must set to 0 - Default is 1 - $command ='soffice --headless -env:UserInstallation=file:"//'.$conf->user->dir_temp.'" --convert-to pdf --outdir '. escapeshellarg(dirname($name)). " ".escapeshellarg($name); + $command ='soffice --headless -env:UserInstallation=file:\''.$conf->user->dir_temp.'\' --convert-to pdf --outdir '. escapeshellarg(dirname($name)). " ".escapeshellarg($name); } elseif (preg_match('/unoconv/', $conf->global->MAIN_ODT_AS_PDF)) { From 23c0a302633ff145a0f725ba0fd3bcad8f1b0403 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 16:40:57 +0100 Subject: [PATCH 098/219] Use a better temp directory --- htdocs/includes/odtphp/odf.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index bc15530a777..7b165b53142 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -821,12 +821,13 @@ IMG; if ($conf->global->MAIN_ODT_AS_PDF == 'libreoffice') { dol_mkdir($conf->user->dir_temp); // We must be sure the directory exists and is writable + dol_mkdir($conf->user->dir_temp.'/odtaspdf'); // We create a subdir because the soffice change pemrissions on it // Install prerequisites: apt install soffice libreoffice-common libreoffice-writer // using windows libreoffice that must be in path // using linux/mac libreoffice that must be in path // Note PHP Config "fastcgi.impersonate=0" must set to 0 - Default is 1 - $command ='soffice --headless -env:UserInstallation=file:\''.$conf->user->dir_temp.'\' --convert-to pdf --outdir '. escapeshellarg(dirname($name)). " ".escapeshellarg($name); + $command ='soffice --headless -env:UserInstallation=file:\''.$conf->user->dir_temp.'/odtaspdf\' --convert-to pdf --outdir '. escapeshellarg(dirname($name)). " ".escapeshellarg($name); } elseif (preg_match('/unoconv/', $conf->global->MAIN_ODT_AS_PDF)) { From 0de06b7ef4ca24852fcf09c68916012ff7645d9f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Jan 2021 16:49:54 +0100 Subject: [PATCH 099/219] Fix odttopdf generation --- htdocs/includes/odtphp/odf.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 7b165b53142..0f5861caf68 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -821,7 +821,10 @@ IMG; if ($conf->global->MAIN_ODT_AS_PDF == 'libreoffice') { dol_mkdir($conf->user->dir_temp); // We must be sure the directory exists and is writable - dol_mkdir($conf->user->dir_temp.'/odtaspdf'); // We create a subdir because the soffice change pemrissions on it + + // We delete and recreate a subdir because the soffice may have change pemrissions on it + dol_delete_dir_recursive($conf->user->dir_temp.'/odtaspdf'); + dol_mkdir($conf->user->dir_temp.'/odtaspdf'); // Install prerequisites: apt install soffice libreoffice-common libreoffice-writer // using windows libreoffice that must be in path From 8a13ad2f269b6a9b9094cf737265a308e4984bcd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 27 Jan 2021 19:31:30 +0100 Subject: [PATCH 100/219] Close #16075 --- htdocs/contact/card.php | 6 ++++-- htdocs/install/mysql/migration/13.0.0-14.0.0.sql | 2 ++ htdocs/install/mysql/tables/llx_socpeople.sql | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 84aa0d7950e..943c704b17f 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -665,8 +665,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) print $formcompany->select_civility(GETPOSTISSET("civility_code") ? GETPOST("civility_code", 'alpha') : $object->civility_code, 'civility_code'); print ''; + // Job position print ''; - print 'poste).'">'; + print 'poste).'">'; $colspan = 3; if ($conf->use_javascript_ajax && $socid > 0) $colspan = 2; @@ -968,8 +969,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) print $formcompany->select_civility(GETPOSTISSET("civility_code") ? GETPOST("civility_code", "aZ09") : $object->civility_code, 'civility_code'); print ''; + // Job position print ''; - print 'poste).'">'; + print 'poste).'">'; // Address print ''; diff --git a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql index 287a568c646..9e1e6a15866 100644 --- a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql +++ b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql @@ -119,3 +119,5 @@ ALTER TABLE llx_societe CHANGE fk_entrepot fk_warehouse INTEGER DEFAULT NULL; --ALTER TABLE llx_societe ADD CONSTRAINT fk_propal_fk_warehouse FOREIGN KEY (fk_warehouse) REFERENCES llx_entrepot(rowid); ALTER TABLE llx_societe ADD INDEX idx_societe_warehouse(fk_warehouse); +ALTER TABLE llx_socpeople MODIFY poste varchar(255); + diff --git a/htdocs/install/mysql/tables/llx_socpeople.sql b/htdocs/install/mysql/tables/llx_socpeople.sql index decc229e3e7..1f28534d5d3 100644 --- a/htdocs/install/mysql/tables/llx_socpeople.sql +++ b/htdocs/install/mysql/tables/llx_socpeople.sql @@ -36,7 +36,7 @@ create table llx_socpeople fk_departement integer, fk_pays integer DEFAULT 0, birthday date, - poste varchar(80), + poste varchar(255), phone varchar(30), phone_perso varchar(30), phone_mobile varchar(30), From b50728d4fbf2d7a537cf7ca687ebc18c7d056002 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 27 Jan 2021 21:04:48 +0100 Subject: [PATCH 101/219] FIX #16076 --- htdocs/user/list.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/htdocs/user/list.php b/htdocs/user/list.php index 9c63dc3e664..bd12c0fbb99 100644 --- a/htdocs/user/list.php +++ b/htdocs/user/list.php @@ -301,19 +301,22 @@ $sql .= " u.salary, u.datelastlogin, u.datepreviouslogin,"; $sql .= " u.ldap_sid, u.statut, u.entity,"; $sql .= " u.tms as date_update, u.datec as date_creation,"; $sql .= " u2.rowid as id2, u2.login as login2, u2.firstname as firstname2, u2.lastname as lastname2, u2.admin as admin2, u2.fk_soc as fk_soc2, u2.email as email2, u2.gender as gender2, u2.photo as photo2, u2.entity as entity2, u2.statut as statut2,"; -$sql .= " s.nom as name, s.canvas"; +$sql .= " s.nom as name, s.canvas, "; // Add fields from extrafields if (!empty($extrafields->attributes[$object->table_element]['label'])) { - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + $sql .= ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : ''); + } } // Add fields from hooks $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook $sql .= preg_replace('/^,/', '', $hookmanager->resPrint); $sql = preg_replace('/,\s*$/', '', $sql); -$sql .= $hookmanager->resPrint; $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (u.rowid = ef.fk_object)"; +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (u.rowid = ef.fk_object)"; +} $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON u.fk_soc = s.rowid"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as u2 ON u.fk_user = u2.rowid"; if (!empty($search_categ) || !empty($catid)) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_user as cu ON u.rowid = cu.fk_user"; // We'll need this table joined to the select in order to filter by categ From 8dfe39258b856e91ee5d3b47c2bf230f323069f3 Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Wed, 27 Jan 2021 23:46:09 +0100 Subject: [PATCH 102/219] FIX 11.0 - when a mandatory extrafield of type sellist contains '0' it should be considered empty and trigger an error message upon insertion --- htdocs/core/class/commonobject.class.php | 1 + htdocs/core/class/extrafields.class.php | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 1ff633f46ce..f2c61bc86a3 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -5238,6 +5238,7 @@ abstract class CommonObject $mandatorypb = false; if ($attributeType == 'link' && $this->array_options[$key] == '-1') $mandatorypb = true; if ($this->array_options[$key] === '') $mandatorypb = true; + if ($attributeType == 'sellist' && $this->array_options[$key] == '0') $mandatorypb = true; if ($mandatorypb) { dol_syslog("Mandatory extra field ".$key." is empty"); diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 57e2bf4284a..ed85a328edc 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -2060,9 +2060,12 @@ class ExtraFields if ($this->attributes[$object->table_element]['required'][$key]) // Value is required { - // Check if empty without using GETPOST, value can be alpha, int, array, etc... + // check if functionally empty without using GETPOST (depending on the type of extrafield, a + // technically non-empty value may be treated as empty functionally). + // value can be alpha, int, array, etc... if ((!is_array($_POST["options_".$key]) && empty($_POST["options_".$key]) && $this->attributes[$object->table_element]['type'][$key] != 'select' && $_POST["options_".$key] != '0') || (!is_array($_POST["options_".$key]) && empty($_POST["options_".$key]) && $this->attributes[$object->table_element]['type'][$key] == 'select') + || (!is_array($_POST["options_".$key]) && isset($_POST["options_".$key]) && $this->attributes[$object->table_element]['type'][$key] == 'sellist' && $_POST['options_' . $key] == '0') || (is_array($_POST["options_".$key]) && empty($_POST["options_".$key]))) { //print 'ccc'.$value.'-'.$this->attributes[$object->table_element]['required'][$key]; From 2be157c91f7e978e6dba86cdfcc26c29f0597221 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 00:18:11 +0100 Subject: [PATCH 103/219] Trans --- htdocs/commande/stats/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/commande/stats/index.php b/htdocs/commande/stats/index.php index d89559af113..e990fc31d49 100644 --- a/htdocs/commande/stats/index.php +++ b/htdocs/commande/stats/index.php @@ -289,7 +289,7 @@ if ($mode == 'customer') if ($mode == 'supplier') { $cat_type = Categorie::TYPE_SUPPLIER; - $cat_label = $langs->trans("Supplier").' '.lcfirst($langs->trans("Customer")); + $cat_label = $langs->trans("Category").' '.lcfirst($langs->trans("Supplier")); } print ''.$cat_label.''; print $formother->select_categories($cat_type, $categ_id, 'categ_id', true); From b488bca02016766462fe9042f94c374dc6038f69 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 08:53:13 +0100 Subject: [PATCH 104/219] FIX 16084 --- htdocs/core/lib/project.lib.php | 3 ++- htdocs/projet/index.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index d7c7c53f8de..aaa1e144202 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -2183,7 +2183,8 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks $sql2 .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = p.fk_soc"; $sql2 .= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task as t ON p.rowid = t.fk_projet"; $sql2 .= " WHERE p.rowid IN (".join(',', $arrayidofprojects).")"; - $sql2 .= " GROUP BY p.rowid, p.ref, p.title, p.fk_soc, s.nom, p.fk_user_creat, p.public, p.fk_statut, p.fk_opp_status, p.opp_percent, p.opp_amount, p.dateo, p.datee"; + $sql2 .= " GROUP BY p.rowid, p.ref, p.title, p.fk_soc, s.rowid, s.nom, s.name_alias, s.code_client, s.code_compta, s.client, s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur,"; + $sql2 .= " s.logo, s.email, s.entity, p.fk_user_creat, p.public, p.fk_statut, p.fk_opp_status, p.opp_percent, p.opp_amount, p.dateo, p.datee"; $sql2 .= " ORDER BY p.title, p.ref"; $resql = $db->query($sql2); diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index 6c376fc35f3..f2b1820c019 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -322,7 +322,7 @@ $sql .= " WHERE p.entity IN (".getEntity('project').")"; $sql .= " AND p.fk_statut = 1"; if ($mine || empty($user->rights->projet->all->lire)) $sql .= " AND p.rowid IN (".$projectsListId.")"; // If we have this test true, it also means projectset is not 2 if ($socid) $sql .= " AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".$socid.")"; -$sql .= " GROUP BY s.rowid, s.nom, s.email, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.canvas, s.status"; +$sql .= " GROUP BY s.rowid, s.nom, s.name_alias, s.code_client, s.code_compta, s.client, s.code_fournisseur, s.code_compta_fournisseur, s.fournisseur, s.logo, s.email, s.entity, s.canvas, s.status"; $sql .= $db->order($sortfield, $sortorder); //$sql .= $db->plimit($max + 1, 0); From f024f06df7831c4456d4ae1bac635308ba1d1d1e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 09:23:28 +0100 Subject: [PATCH 105/219] Fix url --- build/debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/debian/control b/build/debian/control index 0ef5367072f..eed54669555 100755 --- a/build/debian/control +++ b/build/debian/control @@ -4,7 +4,7 @@ Priority: optional Maintainer: Laurent Destailleur (eldy) # Uploaders: Laurent Destailleur (eldy) # Only if differs from Maintainer Standards-Version: 3.9.6 -Homepage: http://www.dolibarr.org +Homepage: https://www.dolibarr.org Build-Depends: debhelper (>= 9), po-debconf # This package need at least debian 7 or ubuntu 13.04 or any distribution based on this version From ba3e90229214bb5cfcc5f88f2d0892a569571961 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 09:25:58 +0100 Subject: [PATCH 106/219] FIX #16080 --- htdocs/comm/mailing/list.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php index 9da825e262e..8a005d2dc82 100644 --- a/htdocs/comm/mailing/list.php +++ b/htdocs/comm/mailing/list.php @@ -119,9 +119,8 @@ llxHeader('', $langs->trans("Mailing"), 'EN:Module_EMailing|FR:Module_Mailing|ES $form = new Form($db); -if ($filteremail) -{ - $sql = "SELECT m.rowid, m.titre, m.nbemail, m.statut, m.date_creat as datec, m.date_envoi as date_envoi,"; +if ($filteremail) { + $sql = "SELECT m.rowid, m.titre as title, m.nbemail, m.statut, m.date_creat as datec, m.date_envoi as date_envoi,"; $sql .= " mc.statut as sendstatut"; $sql .= " FROM ".MAIN_DB_PREFIX."mailing as m, ".MAIN_DB_PREFIX."mailing_cibles as mc"; $sql .= " WHERE m.rowid = mc.fk_mailing AND m.entity = ".$conf->entity; @@ -131,7 +130,7 @@ if ($filteremail) if (!$sortorder) $sortorder = "ASC"; if (!$sortfield) $sortfield = "m.rowid"; } else { - $sql = "SELECT m.rowid, m.titre, m.nbemail, m.statut, m.date_creat as datec, m.date_envoi as date_envoi"; + $sql = "SELECT m.rowid, m.titre as title, m.nbemail, m.statut, m.date_creat as datec, m.date_envoi as date_envoi"; $sql .= " FROM ".MAIN_DB_PREFIX."mailing as m"; $sql .= " WHERE m.entity = ".$conf->entity; if ($search_ref) $sql .= " AND m.rowid = '".$db->escape($search_ref)."'"; @@ -238,9 +237,10 @@ if ($resql) print $email->getNomUrl(1); print ''; + // Title print ''.$obj->title.''; - // Date creation + // Date creation print ''; print dol_print_date($db->jdate($obj->datec), 'day'); print ''; From 0b393676e6816c5f4008125ac5594bb6224fdfec Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 09:30:01 +0100 Subject: [PATCH 107/219] Fix group by --- htdocs/compta/index.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 5614659eac0..1d4d1a37354 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -161,8 +161,9 @@ if (!empty($conf->facture->enabled) && $user->rights->facture->lire) $sql .= $hookmanager->resPrint; $sql .= " GROUP BY f.rowid, f.ref, f.datef, f.total, f.tva, f.total_ttc, f.ref_client, f.type, f.fk_statut, f.paye,"; - $sql .= " s.email, s.nom, s.rowid, s.code_client, s.code_compta, s.code_fournisseur, s.code_compta_fournisseur,"; + $sql .= " s.nom, s.rowid, s.email, s.code_client, s.code_compta, s.code_fournisseur, s.code_compta_fournisseur,"; $sql .= " cc.rowid, cc.code"; + if (!$user->rights->societe->client->voir && !$socid) $sql.= ", sc.fk_soc, sc.fk_user"; // Add Group from hooks $parameters = array(); From f462e353e92e0c268a12220760d5b14ab83c7762 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 09:59:13 +0100 Subject: [PATCH 108/219] FIX #16079 --- htdocs/compta/facture/class/facture.class.php | 18 +++++------ htdocs/core/lib/date.lib.php | 31 +++++++++++++------ 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 24f5b748e52..f036145161d 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -1191,23 +1191,23 @@ class Facture extends CommonInvoice { unset($object->lines[$i]); } - // Bloc to update dates of service (month by month only if previously filled at 1d near start or end of month) + + // Bloc to update dates of service (month by month only if previously filled and similare to start and end of month) // If it's a service with start and end dates - if (!empty($line->date_start) && !empty($line->date_end)) { + if (!empty($conf->global->INVOICE_AUTO_NEXT_MONTH_ON_LINES) && !empty($line->date_start) && !empty($line->date_end)) { // Get the dates $start = dol_getdate($line->date_start); $end = dol_getdate($line->date_end); // Get the first and last day of the month $first = dol_get_first_day($start['year'], $start['mon']); - $last = dol_get_first_day($end['year'], $end['mon']); + $last = dol_get_last_day($end['year'], $end['mon']); - // Get diff betweend start/end of month and previously filled - $diffFirst = num_between_day($first, dol_mktime($start['hours'], $start['minutes'], $start['seconds'], $start['mon'], $start['mday'], $start['year'], 'user')); - $diffLast = num_between_day(dol_mktime($end['hours'], $end['minutes'], $end['seconds'], $end['mon'], $end['mday'], $end['year'], 'user'), $last); - - // If there is <= 1d (or 2?) of start/or/end of month - if ($diffFirst <= 2 && $diffLast <= 2) { + //print dol_print_date(dol_mktime(0, 0, 0, $start['mon'], $start['mday'], $start['year'], 'gmt'), 'dayhour').' '.dol_print_date($first, 'dayhour').'
    '; + //print dol_mktime(23, 59, 59, $end['mon'], $end['mday'], $end['year'], 'gmt').' '.$last.'
    ';exit; + // If start date is first date of month and end date is last date of month + if (dol_mktime(0, 0, 0, $start['mon'], $start['mday'], $start['year'], 'gmt') == $first + && dol_mktime(23, 59, 59, $end['mon'], $end['mday'], $end['year'], 'gmt') == $last) { $nextMonth = dol_get_next_month($end['mon'], $end['year']); $newFirst = dol_get_first_day($nextMonth['year'], $nextMonth['month']); $newLast = dol_get_last_day($nextMonth['year'], $nextMonth['month']); diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 3a889367dc1..74b091865ff 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -356,7 +356,8 @@ function dol_stringtotime($string, $gm = 1) } -/** Return previous day +/** + * Return previous day * * @param int $day Day * @param int $month Month @@ -371,7 +372,8 @@ function dol_get_prev_day($day, $month, $year) return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']); } -/** Return next day +/** + * Return next day * * @param int $day Day * @param int $month Month @@ -386,7 +388,8 @@ function dol_get_next_day($day, $month, $year) return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']); } -/** Return previous month +/** + * Return previous month * * @param int $month Month * @param int $year Year @@ -405,7 +408,8 @@ function dol_get_prev_month($month, $year) return array('year' => $prev_year, 'month' => $prev_month); } -/** Return next month +/** + * Return next month * * @param int $month Month * @param int $year Year @@ -424,7 +428,8 @@ function dol_get_next_month($month, $year) return array('year' => $next_year, 'month' => $next_month); } -/** Return previous week +/** + * Return previous week * * @param int $day Day * @param int $week Week @@ -442,7 +447,8 @@ function dol_get_prev_week($day, $week, $month, $year) return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']); } -/** Return next week +/** + * Return next week * * @param int $day Day * @param int $week Week @@ -461,7 +467,8 @@ function dol_get_next_week($day, $week, $month, $year) return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']); } -/** Return GMT time for first day of a month or year +/** + * Return GMT time for first day of a month or year * * @param int $year Year * @param int $month Month @@ -478,7 +485,9 @@ function dol_get_first_day($year, $month = 1, $gm = false) } -/** Return GMT time for last day of a month or year +/** + * Return GMT time for last day of a month or year. + * Note: The timestamp contains last day and last hours (23:59:59) * * @param int $year Year * @param int $month Month @@ -504,7 +513,8 @@ function dol_get_last_day($year, $month = 12, $gm = false) return $datelim; } -/** Return GMT time for last hour of a given GMT date (it removes hours, min and second part) +/** + * Return GMT time for last hour of a given GMT date (it removes hours, min and second part) * * @param int $date Date * @return int Date for last hour of a given date @@ -515,7 +525,8 @@ function dol_get_last_hour($date) return dol_mktime(23, 59, 59, $tmparray['mon'], $tmparray['mday'], $tmparray['year'], false); } -/** Return GMT time for first hour of a given GMT date (it removes hours, min and second part) +/** + * Return GMT time for first hour of a given GMT date (it removes hours, min and second part) * * @param int $date Date * @return int Date for last hour of a given date From 9d0945bbe2bb892b198f824391190d51c74699a7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 10:30:09 +0100 Subject: [PATCH 109/219] FIX #16077 --- htdocs/core/lib/functions.lib.php | 2 +- htdocs/fichinter/card.php | 23 ++++++++++------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 31939708663..26f62320b3b 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1984,7 +1984,7 @@ function dol_print_date($time, $format = '', $tzoutput = 'auto', $outputlangs = { global $conf, $langs; - if ($tzoutput == 'auto') { + if ($tzoutput === 'auto') { $tzoutput = (empty($conf) ? 'tzserver' : $conf->tzuserinputkey); } diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index 2805089aaf3..a4fed934936 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -217,8 +217,9 @@ if (empty($reshook)) if (!empty($origin) && !empty($originid)) { // Parse element/subelement (ex: project_task) - $element = $subelement = $_POST['origin']; - if (preg_match('/^([^_]+)_([^_]+)/i', $_POST['origin'], $regs)) + $regs = array(); + $element = $subelement = GETPOST('origin', 'alphanohtml'); + if (preg_match('/^([^_]+)_([^_]+)/i', GETPOST('origin', 'alphanohtml'), $regs)) { $element = $regs[1]; $subelement = $regs[2]; @@ -478,8 +479,7 @@ if (empty($reshook)) $desc = GETPOST('np_desc', 'restricthtml'); $date_intervention = dol_mktime(GETPOST('dihour', 'int'), GETPOST('dimin', 'int'), 0, GETPOST('dimonth', 'int'), GETPOST('diday', 'int'), GETPOST('diyear', 'int')); - $duration = empty($conf->global->FICHINTER_WITHOUT_DURATION) ?convertTime2Seconds(GETPOST('durationhour', 'int'), GETPOST('durationmin', 'int')) : 0; - + $duration = empty($conf->global->FICHINTER_WITHOUT_DURATION) ? convertTime2Seconds(GETPOST('durationhour', 'int'), GETPOST('durationmin', 'int')) : 0; // Extrafields $extrafields->fetch_name_optionals_label($object->table_element_line); @@ -1335,8 +1335,7 @@ if ($action == 'create') print '
    '; print ''; print ''; - if ($action == 'editline') - { + if ($action == 'editline') { print ''; print ''; } else { @@ -1348,8 +1347,9 @@ if ($action == 'create') $sql .= ' ft.date as date_intervention'; $sql .= ' FROM '.MAIN_DB_PREFIX.'fichinterdet as ft'; $sql .= ' WHERE ft.fk_fichinter = '.$object->id; - if (!empty($conf->global->FICHINTER_HIDE_EMPTY_DURATION)) + if (!empty($conf->global->FICHINTER_HIDE_EMPTY_DURATION)) { $sql .= ' AND ft.duree <> 0'; + } $sql .= ' ORDER BY ft.rang ASC, ft.date ASC, ft.rowid'; $resql = $db->query($sql); @@ -1376,13 +1376,11 @@ if ($action == 'create') print ' '; print "\n"; } - while ($i < $num) - { + while ($i < $num) { $objp = $db->fetch_object($resql); // Ligne en mode visu - if ($action != 'editline' || GETPOST('line_id', 'int') != $objp->rowid) - { + if ($action != 'editline' || GETPOST('line_id', 'int') != $objp->rowid) { print ''; // No. @@ -1402,8 +1400,7 @@ if ($action == 'create') print "\n"; - - // Econ to edit and delete + // Icon to edit and delete if ($object->statut == 0 && $user->rights->ficheinter->creer) { print ''; From 4d5cda20e73a6e8e0ebe9c87bdbbbee9a4990c72 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 11:15:11 +0100 Subject: [PATCH 110/219] Update functions.lib.php --- htdocs/core/lib/functions.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 181e6b4c448..9d888c56cc0 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9239,6 +9239,6 @@ function readfileLowMemory($fullpath_original_file_osencoded, $method = -1) */ function showValueWithCopyAndPasteButton($valuetoprint) { - return ''.dol_escape_js($valuetoprint).' - '; + $result = ''.$valuetoprint.''; + return $result; } From 1a7f3938f2ef43afdef4edfb2c3d3ae0aa9f0712 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 12:02:16 +0100 Subject: [PATCH 111/219] FIX Missing language ico --- htdocs/core/lib/functions.lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 989609ba65c..ec866514272 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -7399,6 +7399,7 @@ function picto_from_langcode($codelang, $moreatt = '') 'da_DA' => 'dk', 'fr_CA' => 'mq', 'sv_SV' => 'se', + 'sw_SW' => 'unknown', 'AQ' => 'unknown', 'CW' => 'unknown', 'IM' => 'unknown', @@ -9247,6 +9248,6 @@ function readfileLowMemory($fullpath_original_file_osencoded, $method = -1) */ function showValueWithCopyAndPasteButton($valuetoprint) { - $result = ''.$valuetoprint.''; + $result = ''.$valuetoprint.''; return $result; } From cf4a12d715bc316b9e9397b472cb21ba5a019e52 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 12:02:16 +0100 Subject: [PATCH 112/219] FIX Missing language ico Conflicts: htdocs/core/lib/functions.lib.php --- htdocs/core/lib/functions.lib.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 26f62320b3b..a509d3bd7a6 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -7391,6 +7391,7 @@ function picto_from_langcode($codelang, $moreatt = '') 'da_DA' => 'dk', 'fr_CA' => 'mq', 'sv_SV' => 'se', + 'sw_SW' => 'unknown', 'AQ' => 'unknown', 'CW' => 'unknown', 'IM' => 'unknown', From ce3279c462eb14008810307648cd6eb6e151dd93 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 12:34:54 +0100 Subject: [PATCH 113/219] NEW Add function showValueWithCopyAndPasteButton() to add a copy/paste button on a text. --- htdocs/core/js/lib_foot.js.php | 31 +++++++++++++++++++++---------- htdocs/core/lib/functions.lib.php | 10 ++++++---- htdocs/langs/en_US/companies.lang | 1 - htdocs/langs/en_US/main.lang | 3 ++- htdocs/theme/eldy/global.inc.php | 9 +++++++++ 5 files changed, 38 insertions(+), 16 deletions(-) diff --git a/htdocs/core/js/lib_foot.js.php b/htdocs/core/js/lib_foot.js.php index c277beefe70..13e5226eaa6 100644 --- a/htdocs/core/js/lib_foot.js.php +++ b/htdocs/core/js/lib_foot.js.php @@ -212,23 +212,34 @@ print ' });'."\n"; print "\n/* JS CODE TO ENABLE ClipBoard copy paste*/\n"; -print 'jQuery(\'.clipboardCopyPaste\').click(function() { - console.log(this.firstChild.innerText); - if ( window.getSelection ) { - +print 'jQuery(\'.clipboardCPShowOnHover\').hover( + function() { + console.log("We hover a value with a copy paste feature"); + $(this).children(".clipboardCPButton, .clipboardCPText").show(); + }, + function() { + console.log("We hover out the value with a copy paste feature"); + $(this).children(".clipboardCPButton, .clipboardCPText").hide(); + } + );'; +print 'jQuery(\'.clipboardCPButton\').click(function() { + /* console.log(this.parentNode); */ + console.log("We click on a clipboardCPButton tag"); + if (window.getSelection) { selection = window.getSelection(); - + range = document.createRange(); - range.selectNodeContents( this.firstChild ); - + range.selectNodeContents(this.parentNode.firstChild); + selection.removeAllRanges(); selection.addRange( range ); - } document.execCommand( \'copy\' ); window.getSelection().removeAllRanges(); - var lastchild = this.lastChild - var tmp =lastchild.innerHTML + + /* Show message */ + var lastchild = this.parentNode.lastChild; + var tmp = lastchild.innerHTML lastchild.innerHTML = \''.dol_escape_js($langs->trans('CopiedToClipboard')).'\'; setTimeout(() => { lastchild.innerHTML = tmp; }, 1000); })'."\n"; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index ec866514272..1bdd1cd1d2f 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9243,11 +9243,13 @@ function readfileLowMemory($fullpath_original_file_osencoded, $method = -1) /** * Create a button to copy $valuetoprint in the clipboard - * @param string $valuetoprint the value to print - * @return string the string to print for the button + * + * @param string $valuetoprint The value to print + * @param int $showonlyonhover Show the copypaste button only on hover + * @return string The string to print for the button */ -function showValueWithCopyAndPasteButton($valuetoprint) +function showValueWithCopyAndPasteButton($valuetoprint, $showonlyonhover = 1) { - $result = ''.$valuetoprint.''; + $result = ''.$valuetoprint.''; return $result; } diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index e0381d6fdef..99bed13179f 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -467,4 +467,3 @@ RestOfEurope=Rest of Europe (EEC) OutOfEurope=Out of Europe (EEC) CurrentOutstandingBillLate=Current outstanding bill late BecarefullChangeThirdpartyBeforeAddProductToInvoice=Be carefull, depending on your product price settings, you should change thirdparty before adding product to POS. -CopiedToClipboard = Copied to clipboard \ No newline at end of file diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 5cdb042f933..a5cd750e3d6 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -1119,4 +1119,5 @@ Civility=Civility AffectTag=Affect Tag ConfirmAffectTag=Bulk Tag Affect ConfirmAffectTagQuestion=Are you sure you want to affect tags to the %s selected record(s)? -CategTypeNotFound=No tag type found for type of records \ No newline at end of file +CategTypeNotFound=No tag type found for type of records +CopiedToClipboard=Copied to clipboard diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index c4f862863e1..ee60348454e 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -6562,6 +6562,15 @@ div.phpdebugbar-widgets-templates a.phpdebugbar-widgets-editor-link:before } +/* ============================================================================== */ +/* For copypaste feature */ +/* ============================================================================== */ + +.clipboardCPShowOnHover .clipboardCPButton { + display: none; +} + + /* ============================================================================== */ /* CSS style used for small screen */ /* ============================================================================== */ From 3eebbc6426250959f1442d1f5934d286c9bc545a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 12:44:45 +0100 Subject: [PATCH 114/219] NEW Add function showValueWithClipboardCPButton() to add a copy/paste button on a text. --- htdocs/core/lib/functions.lib.php | 2 +- htdocs/societe/card.php | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 1bdd1cd1d2f..d0f3bb622b2 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -9248,7 +9248,7 @@ function readfileLowMemory($fullpath_original_file_osencoded, $method = -1) * @param int $showonlyonhover Show the copypaste button only on hover * @return string The string to print for the button */ -function showValueWithCopyAndPasteButton($valuetoprint, $showonlyonhover = 1) +function showValueWithClipboardCPButton($valuetoprint, $showonlyonhover = 1) { $result = ''.$valuetoprint.''; return $result; diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 0347efa7411..260800a77f0 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2415,7 +2415,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) // Prefix if (!empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field { - print ''.$langs->trans('Prefix').''.$object->prefix_comm.''; + print ''.$langs->trans('Prefix').''.dol_escape_htmltag($object->prefix_comm).''; print ''; } @@ -2426,7 +2426,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) print $langs->trans('CustomerCode'); print ''; print ''; - print showValueWithCopyAndPasteButton($object->code_client); + print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_client)); print ''; $tmpcheck = $object->check_codeclient(); if ($tmpcheck != 0 && $tmpcheck != -5) { @@ -2441,7 +2441,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''; print $langs->trans('SupplierCode').''; - print $object->code_fournisseur; + print showValueWithClipboardCPButton(dol_escape_htmltag($object->code_fournisseur)); $tmpcheck = $object->check_codefournisseur(); if ($tmpcheck != 0 && $tmpcheck != -5) { print ' ('.$langs->trans("WrongSupplierCode").')'; @@ -2454,7 +2454,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) if (!empty($conf->barcode->enabled)) { print ''; - print $langs->trans('Gencod').''.dol_escape_htmltag($object->barcode); + print $langs->trans('Gencod').''.showValueWithClipboardCPButton(dol_escape_htmltag($object->barcode)); print ''; print ''; } @@ -2470,7 +2470,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) print ''; print ''.$idprof.''; $key = 'idprof'.$i; - print $object->$key; + print showValueWithClipboardCPButton(dol_escape_htmltag($object->$key)); if ($object->$key) { if ($object->id_prof_check($i, $object) > 0) print '   '.$object->id_prof_url($i, $object); From 2f98d8035c866cd93fa559d096fd55c6fa41e947 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Thu, 28 Jan 2021 13:37:43 +0100 Subject: [PATCH 115/219] Fix: Bad supplier price updater --- htdocs/fourn/commande/dispatch.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 2ada245ff8b..a47e544848d 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2016 Laurent Destailleur * Copyright (C) 2005 Eric Seigne * Copyright (C) 2005-2009 Regis Houssin - * Copyright (C) 2010-2019 Juanjo Menent + * Copyright (C) 2010-2021 Juanjo Menent * Copyright (C) 2014 Cedric Gross * Copyright (C) 2016 Florian Henry * Copyright (C) 2017 Ferran Marcet @@ -268,12 +268,16 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner) if (!$error && !empty($conf->global->SUPPLIER_ORDER_CAN_UPDATE_BUYINGPRICE_DURING_RECEIPT)) { if (empty($conf->multicurrency->enabled) && empty($conf->dynamicprices->enabled)) { $dto = GETPOST("dto_".$reg[1].'_'.$reg[2]); + if (empty($dto)) { + $dto = 0; + } + //update supplier price if (isset($_POST[$saveprice])) { // TODO Use class $sql = "UPDATE ".MAIN_DB_PREFIX."product_fournisseur_price"; - $sql .= " SET unitprice='".GETPOST($pu)."'"; - $sql .= ", price=".GETPOST($pu)."*quantity"; + $sql .= " SET unitprice='".price2num(GETPOST($pu),'MT')."'"; + $sql .= ", price=".price2num(GETPOST($pu),'MT')."*quantity"; $sql .= ", remise_percent='".$dto."'"; $sql .= " WHERE fk_soc=".$object->socid; $sql .= " AND fk_product=".GETPOST($prod, 'int'); From c63a124d1c3813a4400b814bcc0c4e8f5c79c8b4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 14:13:29 +0100 Subject: [PATCH 116/219] More complete fix --- htdocs/fourn/commande/dispatch.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index a47e544848d..c6813af0eba 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -227,6 +227,7 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner) foreach ($_POST as $key => $value) { // without batch module enabled + $reg = array(); if (preg_match('/^product_([0-9]+)_([0-9]+)$/i', $key, $reg)) { $pos++; @@ -276,11 +277,11 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner) if (isset($_POST[$saveprice])) { // TODO Use class $sql = "UPDATE ".MAIN_DB_PREFIX."product_fournisseur_price"; - $sql .= " SET unitprice='".price2num(GETPOST($pu),'MT')."'"; - $sql .= ", price=".price2num(GETPOST($pu),'MT')."*quantity"; + $sql .= " SET unitprice='".price2num(GETPOST($pu), 'MU')."'"; + $sql .= ", price=".price2num(GETPOST($pu), 'MU')."*quantity"; $sql .= ", remise_percent='".$dto."'"; - $sql .= " WHERE fk_soc=".$object->socid; - $sql .= " AND fk_product=".GETPOST($prod, 'int'); + $sql .= " WHERE fk_soc=".((int) $object->socid); + $sql .= " AND fk_product=".((int) GETPOST($prod, 'int')); $resql = $db->query($sql); } From f3c33be871a37a047b3b8accccfa0c89e5ac94ad Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 15:47:32 +0100 Subject: [PATCH 117/219] Fix css --- htdocs/societe/card.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 2f51995c785..7b997fbd613 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -1199,9 +1199,8 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) print ''; // Name, firstname - print '
    '; - if ($object->particulier || $private) - { + print '
    '; + if ($object->particulier || $private) { print ''.$langs->trans('ThirdPartyName').' / '.$langs->trans('LastName', 'name').''; } else { print ''.$form->editfieldkey('ThirdPartyName', 'name', '', $object, 0).''; From 745e2be67832e4b26f79ca0f255774af8d6de5c6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 16:00:22 +0100 Subject: [PATCH 118/219] FIX encoding status in graph of vendor proposals --- .../class/supplier_proposal.class.php | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index a939b95ffca..890dff34812 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -2183,16 +2183,16 @@ class SupplierProposal extends CommonObject { global $langs; $langs->load("supplier_proposal"); - $this->labelStatus[self::STATUS_DRAFT] = $langs->trans("SupplierProposalStatusDraft"); - $this->labelStatus[self::STATUS_VALIDATED] = $langs->trans("SupplierProposalStatusValidated"); - $this->labelStatus[self::STATUS_SIGNED] = $langs->trans("SupplierProposalStatusSigned"); - $this->labelStatus[self::STATUS_NOTSIGNED] = $langs->trans("SupplierProposalStatusNotSigned"); - $this->labelStatus[self::STATUS_CLOSE] = $langs->trans("SupplierProposalStatusClosed"); - $this->labelStatusShort[self::STATUS_DRAFT] = $langs->trans("SupplierProposalStatusDraftShort"); - $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->trans("Opened"); - $this->labelStatusShort[self::STATUS_SIGNED] = $langs->trans("SupplierProposalStatusSignedShort"); - $this->labelStatusShort[self::STATUS_NOTSIGNED] = $langs->trans("SupplierProposalStatusNotSignedShort"); - $this->labelStatusShort[self::STATUS_CLOSE] = $langs->trans("SupplierProposalStatusClosedShort"); + $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv("SupplierProposalStatusDraft"); + $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv("SupplierProposalStatusValidated"); + $this->labelStatus[self::STATUS_SIGNED] = $langs->transnoentitiesnoconv("SupplierProposalStatusSigned"); + $this->labelStatus[self::STATUS_NOTSIGNED] = $langs->transnoentitiesnoconv("SupplierProposalStatusNotSigned"); + $this->labelStatus[self::STATUS_CLOSE] = $langs->transnoentitiesnoconv("SupplierProposalStatusClosed"); + $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv("SupplierProposalStatusDraftShort"); + $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv("Opened"); + $this->labelStatusShort[self::STATUS_SIGNED] = $langs->transnoentitiesnoconv("SupplierProposalStatusSignedShort"); + $this->labelStatusShort[self::STATUS_NOTSIGNED] = $langs->transnoentitiesnoconv("SupplierProposalStatusNotSignedShort"); + $this->labelStatusShort[self::STATUS_CLOSE] = $langs->transnoentitiesnoconv("SupplierProposalStatusClosedShort"); } $statusnew = ''; From 32c33b72d6df48fa03a7cf4ce4b3b643a3d3eaa5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 16:10:13 +0100 Subject: [PATCH 119/219] FIX Sql error in group by with postgresql --- htdocs/fourn/facture/list.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index b0c58572955..317def67098 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -497,7 +497,9 @@ if (!$search_all) $sql .= " GROUP BY f.rowid, f.ref, f.ref_supplier, f.type, f.datef, f.date_lim_reglement, f.fk_mode_reglement, f.fk_cond_reglement,"; $sql .= " f.total_ht, f.total_ttc, f.total_tva, f.paye, f.fk_statut, f.libelle, f.datec, f.tms,"; $sql .= " f.localtax1, f.localtax2,"; + $sql .= ' f.fk_multicurrency, f.multicurrency_code, f.multicurrency_tx, f.multicurrency_total_ht, f.multicurrency_total_tva, f.multicurrency_total_ttc,'; $sql .= " f.note_public, f.note_private,"; + $sql .= " f.fk_user_author,"; $sql .= ' s.rowid, s.nom, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,'; $sql .= " typent.code,"; $sql .= " state.code_departement, state.nom,"; From db9b6b53daf121ec8d463491fa3609314036ac0d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 16:31:32 +0100 Subject: [PATCH 120/219] NEW Can set a label as placeholder for combo lists. --- htdocs/admin/modules.php | 16 ++++++++++------ htdocs/core/class/html.form.class.php | 2 +- htdocs/core/lib/ajax.lib.php | 5 ++++- htdocs/theme/eldy/global.inc.php | 19 +++++++++++++++---- htdocs/theme/md/style.css.php | 7 +++++++ 5 files changed, 37 insertions(+), 12 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 1cf784de3c5..78f06b0ee2e 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -523,10 +523,10 @@ if ($mode == 'common' || $mode == 'commonkanban') { $moreforfilter .= '
    '; $moreforfilter .= '
    '; - $moreforfilter .= $langs->trans('Keyword').': '; + $moreforfilter .= img_picto($langs->trans("Filter"), 'filter', 'class="paddingright opacitymedium"').''; $moreforfilter .= '
    '; $moreforfilter .= '
    '; - $moreforfilter .= $langs->trans('Origin').': '.$form->selectarray('search_nature', $arrayofnatures, dol_escape_htmltag($search_nature), 1, 0, 0, '', 0, 0, 0, '', 'maxwidth200', 1); + $moreforfilter .= $form->selectarray('search_nature', $arrayofnatures, dol_escape_htmltag($search_nature), $langs->trans('Origin'), 0, 0, '', 0, 0, 0, '', 'maxwidth200', 1); $moreforfilter .= '
    '; if (!empty($conf->global->MAIN_FEATURES_LEVEL)) { $array_version = array('stable'=>$langs->transnoentitiesnoconv("Stable")); @@ -540,11 +540,11 @@ if ($mode == 'common' || $mode == 'commonkanban') { $array_version['development'] = $langs->trans("Development"); } $moreforfilter .= '
    '; - $moreforfilter .= $langs->trans('Version').': '.$form->selectarray('search_version', $array_version, $search_version, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth150', 1); + $moreforfilter .= $form->selectarray('search_version', $array_version, $search_version, $langs->trans('Version'), 0, 0, '', 0, 0, 0, '', 'maxwidth150', 1); $moreforfilter .= '
    '; } $moreforfilter .= '
    '; - $moreforfilter .= $langs->trans('Status').': '.$form->selectarray('search_status', array('active'=>$langs->transnoentitiesnoconv("Enabled"), 'disabled'=>$langs->transnoentitiesnoconv("Disabled")), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth150', 1); + $moreforfilter .= $form->selectarray('search_status', array('active'=>$langs->transnoentitiesnoconv("Enabled"), 'disabled'=>$langs->transnoentitiesnoconv("Disabled")), $search_status, $langs->trans('Status'), 0, 0, '', 0, 0, 0, '', 'maxwidth150', 1); $moreforfilter .= '
    '; $moreforfilter .= ' '; $moreforfilter .= '
    '; @@ -937,6 +937,8 @@ if ($mode == 'common' || $mode == 'commonkanban') { if ($mode == 'marketplace') { print dol_get_fiche_head($head, $mode, '', -1); + print '
    '; + // Marketplace print '
    '; print ''."\n"; @@ -977,8 +979,8 @@ if ($mode == 'marketplace') { ?> -
    trans('Keyword') ?>: -
    +
    +
    @@ -1190,6 +1192,8 @@ if ($mode == 'deploy') { if ($mode == 'develop') { print dol_get_fiche_head($head, $mode, '', -1); + print '
    '; + // Marketplace print "
    \n"; print "\n"; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 3bb3afae852..64996e4e6c2 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -6427,7 +6427,7 @@ class Form * @param string $htmlname Name of html select area. Must start with "multi" if this is a multiselect * @param array $array Array like array(key => value) or array(key=>array('label'=>..., 'data-...'=>..., 'disabled'=>..., 'css'=>...)) * @param string|string[] $id Preselected key or preselected keys for multiselect - * @param int|string $show_empty 0 no empty value allowed, 1 or string to add an empty value into list (key is -1 and value is '' or ' ' if 1, key is -1 and value is text if string), <0 to add an empty value with key that is this value. + * @param int|string $show_empty 0 no empty value allowed, 1 or string to add an empty value into list (key is -1 and value is '' or ' ' if 1, key is -1 and value is the text if it is a placeholder string), <0 to add an empty value with key that is this value. * @param int $key_in_label 1 to show key into label with format "[key] value" * @param int $value_as_key 1 to use value as key * @param string $moreparam Add more parameters onto the select tag. For example 'style="width: 95%"' to avoid select2 component to go over parent container diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php index 92748f8e26f..24bf79143f3 100644 --- a/htdocs/core/lib/ajax.lib.php +++ b/htdocs/core/lib/ajax.lib.php @@ -434,14 +434,17 @@ function ajax_combobox($htmlname, $events = array(), $minLengthToAutocomplete = minimumInputLength: '.$minLengthToAutocomplete.', language: select2arrayoflanguage, containerCssClass: \':all:\', /* Line to add class of origin SELECT propagated to the new tag */ templateResult: function (data, container) { /* Format visible output into combo list */ /* Code to add class of origin OPTION propagated to the new select2
  • tag */ if (data.element) { $(container).addClass($(data.element).attr("class")); } //console.log(data.html); + if (data.id == -1) return \' \'; if ($(data.element).attr("data-html") != undefined) return htmlEntityDecodeJs($(data.element).attr("data-html")); // If property html set, we decode html entities and use this - return data.text; + return data.text; }, templateSelection: function (selection) { /* Format visible output of selected value */ + if (selection.id == -1) return \'\'+selection.text+\'\'; return selection.text; }, escapeMarkup: function(markup) { diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index ee60348454e..3b69dfbc0ba 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -125,6 +125,10 @@ th.liste_titre a div div:hover, th.liste_titre_sel a div div:hover { text-decora tr.liste_titre th.liste_titre_sel:not(.maxwidthsearch), tr.liste_titre td.liste_titre_sel:not(.maxwidthsearch), tr.liste_titre th.liste_titre:not(.maxwidthsearch), tr.liste_titre td.liste_titre:not(.maxwidthsearch) { opacity: 0.8; } /* th.liste_titre_sel a, th.liste_titre a, td.liste_titre_sel a, td.liste_titre a { color: #766; } */ + +input { + font-size: unset; +} input, input.flat, textarea, textarea.flat, form.flat select, select, select.flat, .dataTables_length label select { background-color: var(--inputbackgroundcolor); color: var(--colortext); @@ -174,9 +178,12 @@ input, input.flat, textarea, textarea.flat, form.flat select, select, select.fla input { line-height: 1.3em; - padding: 5px; + padding: 4px; padding-left: 5px; } +.liste_titre input { + padding: 5px; +} select { padding-top: 5px; padding-right: 4px; @@ -440,8 +447,12 @@ input:-webkit-autofill { background-image:none !important; -webkit-box-shadow: 0 0 0 50px #FDFFF0 inset; } -::-webkit-input-placeholder { color:#ccc; } -input:-moz-placeholder { color:#ccc; } + +/* CSS for placeholder */ +.placeholder { color: #ccc; } +::-webkit-input-placeholder { color: #ccc; } +input:-moz-placeholder { color: #ccc; } + input[name=price], input[name=weight], input[name=volume], input[name=surface], input[name=sizeheight], input[name=net_measure], select[name=incoterm_id] { margin-right: 6px; } fieldset { border: 1px solid #AAAAAA !important; } .legendforfieldsetstep { padding-bottom: 10px; } @@ -4139,7 +4150,7 @@ div.boximport { .fieldrequired { font-weight: bold; color: var(--fieldrequiredcolor) !important; } -td.widthpictotitle { width: 26px; text-align: ; } +td.widthpictotitle { width: 38px; text-align: ; } span.widthpictotitle { font-size: 1.7em; } table.titlemodulehelp tr td img.widthpictotitle { width: 80px; } diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index a9fbc589a12..ae60254ea13 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -297,6 +297,9 @@ a:link, a:visited, a:hover, a:active { font-family: ; fo a:hover { text-decoration: underline; color: rgb(); } a.commonlink { color: rgb() !important; text-decoration: none; } +input { + font-size: unset; +} input, input.flat, textarea, textarea.flat, form.flat select, select, select.flat, .dataTables_length label select { background-color: #FDFDFD; } @@ -568,11 +571,15 @@ input:-webkit-autofill { background-image:none !important; -webkit-box-shadow: 0 0 0 50px #FBFFEA inset; } + +/* CSS for placeholder */ +.placeholder { color: #ccc; } ::-webkit-input-placeholder { color:#ccc; } :-moz-placeholder { color:#bbb; } /* firefox 18- */ ::-moz-placeholder { color:#bbb; } /* firefox 19+ */ :-ms-input-placeholder { color:#ccc; } /* ie */ input:-moz-placeholder { color:#ccc; } + input[name=price], input[name=weight], input[name=volume], input[name=surface], input[name=sizeheight], input[name=net_measure], select[name=incoterm_id] { margin-right: 6px; } fieldset { border: 1px solid #AAAAAA !important; } .legendforfieldsetstep { padding-bottom: 10px; } From cce38a9e6d3e992439e265d4cc4bdc34d72ad18d Mon Sep 17 00:00:00 2001 From: Gauthier PC portable 024 Date: Thu, 28 Jan 2021 16:58:55 +0100 Subject: [PATCH 121/219] NEW : fk_user on social charge --- htdocs/compta/sociales/card.php | 41 ++++++++++++++++++- .../sociales/class/chargesociales.class.php | 9 ++-- htdocs/compta/sociales/list.php | 34 +++++++++++++-- .../mysql/tables/llx_chargesociales.sql | 1 + 4 files changed, 77 insertions(+), 8 deletions(-) diff --git a/htdocs/compta/sociales/card.php b/htdocs/compta/sociales/card.php index d7f20622a43..486049159b2 100644 --- a/htdocs/compta/sociales/card.php +++ b/htdocs/compta/sociales/card.php @@ -3,6 +3,7 @@ * Copyright (C) 2005-2013 Regis Houssin * Copyright (C) 2016-2018 Frédéric France * Copyright (C) 2017 Alexandre Spangaro + * Copyright (C) 2021 Gauthier VERDOL * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,9 +28,11 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsocialcontrib.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; if (!empty($conf->projet->enabled)) { include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; @@ -40,7 +43,7 @@ if (!empty($conf->accounting->enabled)) { } // Load translation files required by the page -$langs->loadLangs(array('compta', 'bills', 'banks')); +$langs->loadLangs(array('compta', 'bills', 'banks', 'hrm')); $id = GETPOST('id', 'int'); $action = GETPOST('action', 'aZ09'); @@ -51,6 +54,7 @@ $dateech = dol_mktime(GETPOST('echhour'), GETPOST('echmin'), GETPOST('echsec'), $dateperiod = dol_mktime(GETPOST('periodhour'), GETPOST('periodmin'), GETPOST('periodsec'), GETPOST('periodmonth'), GETPOST('periodday'), GETPOST('periodyear')); $label = GETPOST('label', 'alpha'); $actioncode = GETPOST('actioncode'); +$fk_user = GETPOST('userid', 'int'); // Security check $socid = GETPOST('socid', 'int'); @@ -94,6 +98,12 @@ if ($action == 'classin' && $user->rights->tax->charges->creer) $object->setProject(GETPOST('projectid')); } +if($action == 'setfk_user' && $user->rights->tax->charges->creer) { + $object->fetch($id); + $object->fk_user = $fk_user; + $object->update($user); +} + if ($action == 'setlib' && $user->rights->tax->charges->creer) { $object->fetch($id); @@ -173,6 +183,7 @@ if ($action == 'add' && $user->rights->tax->charges->creer) $object->date_ech = $dateech; $object->periode = $dateperiod; $object->amount = $amount; + $object->fk_user = $fk_user; $object->mode_reglement_id = GETPOST('mode_reglement_id'); $object->fk_account = GETPOST('fk_account', 'int'); $object->fk_project = GETPOST('fk_project'); @@ -218,6 +229,7 @@ if ($action == 'update' && !$_POST["cancel"] && $user->rights->tax->charges->cre $object->date_ech = $dateech; $object->periode = $dateperiod; $object->amount = price2num($amount); + $object->fk_user = $fk_user; $result = $object->update($user); if ($result <= 0) @@ -365,6 +377,12 @@ if ($action == 'create') print '
  • '; print ''; + // Employee + print ''; + print ''; + // Project if (!empty($conf->projet->enabled)) { @@ -467,6 +485,26 @@ if ($id > 0) // Ref customer $morehtmlref .= $form->editfieldkey("Label", 'lib', $object->label, $object, $user->rights->tax->charges->creer, 'string', '', 0, 1); $morehtmlref .= $form->editfieldval("Label", 'lib', $object->label, $object, $user->rights->tax->charges->creer, 'string', '', null, null, '', 1); + + // Employee + if($action != 'editfk_user') { + $morehtmlref .= '
    ' . $form->editfieldkey("Employee", 'fk_user', $object->label, $object, $user->rights->tax->charges->creer, 'string', '', 0, 1); + + if(!empty($object->fk_user)) { + $userstatic = new User($db); + $userstatic->fetch($object->fk_user); + $morehtmlref .= $userstatic->getNomUrl(1); + } + } else { + $morehtmlref .= '
    '.$langs->trans('Employee').' : '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $form->select_dolusers($object->fk_user, 'userid', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; + } + // Project if (!empty($conf->projet->enabled)) { @@ -553,6 +591,7 @@ if ($id > 0) print ''; } + // Mode of payment print '
    '; + print $langs->trans('Employee'); + print ''.$form->select_dolusers($fk_user, 'userid', 1).'
    '.$langs->trans("AmountTTC").''.price($object->amount, 0, $outputlangs, 1, -1, -1, $conf->currency).'
    '; print ''; // Type print ''; // Ref Project if (!empty($conf->projet->enabled)) print ''; @@ -256,6 +267,7 @@ if ($resql) print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "id", "", $param, "", $sortfield, $sortorder); print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "cs.libelle", "", $param, 'class="left"', $sortfield, $sortorder); print_liste_field_titre("Type", $_SERVER["PHP_SELF"], "type", "", $param, 'class="left"', $sortfield, $sortorder); + print_liste_field_titre("Employee", $_SERVER["PHP_SELF"], "u.lastname", "", $param, 'class="left"', $sortfield, $sortorder); if (!empty($conf->projet->enabled)) print_liste_field_titre('ProjectRef', $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "cs.date_ech", "", $param, 'align="center"', $sortfield, $sortorder); print_liste_field_titre("PeriodEndDate", $_SERVER["PHP_SELF"], "periode", "", $param, 'align="center"', $sortfield, $sortorder); @@ -265,7 +277,7 @@ if ($resql) print "\n"; $i = 0; - $totalarray = array(); + $totalarray = $TLoadedUsers = array(); while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); @@ -294,6 +306,20 @@ if ($resql) print "\n"; if (!$i) $totalarray['nbfield']++; + // Employee + print "\n"; + if (!$i) $totalarray['nbfield']++; + // Project Ref if (!empty($conf->projet->enabled)) { print '"; if (!$i) $totalarray['nbfield']++; From 83dc1e8cd088313721487601a8abce3755c3eaea Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 23:27:01 +0100 Subject: [PATCH 138/219] Fix responsive --- htdocs/societe/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index a4ad5ec590e..402e85d9b39 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -1259,7 +1259,7 @@ while ($i < min($num, $limit)) if (!empty($arrayfields['s.fk_prospectlevel']['checked'])) { // Prospect level - print '"; if (!$i) $totalarray['nbfield']++; From 4812dd27433d93cb7d2d9ed6ec5a1cea564d4461 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 23:28:33 +0100 Subject: [PATCH 139/219] Fix responsive --- htdocs/societe/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 714f376eb2d..2553179acb8 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -1287,7 +1287,7 @@ while ($i < min($num, $limit)) if (!empty($arrayfields['s.fk_prospectlevel']['checked'])) { // Prospect level - print '"; if (!$i) $totalarray['nbfield']++; @@ -1311,7 +1311,7 @@ while ($i < min($num, $limit)) // Parent company if (!empty($arrayfields['s2.nom']['checked'])) { - print '"; if (!$i) $totalarray['nbfield']++; @@ -1283,7 +1283,7 @@ while ($i < min($num, $limit)) // Parent company if (!empty($arrayfields['s2.nom']['checked'])) { - print '"; } - // Valeur CA du mois + // Value turnover of month print '"; - // Pourcentage du mois - if ($annee_decalage > $minyear && $case <= $casenow) - { - if ($cum[$caseprev] && $cum[$case]) + // Percentage of month + print ''; + if ($cum[$caseprev] && $cum[$case]) + { + $percent = (round(($cum[$case] - $cum[$caseprev]) / $cum[$caseprev], 4) * 100); + //print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X"; + print ($percent >= 0 ? "+$percent" : "$percent").'%'; + } + if ($cum[$caseprev] && !$cum[$case]) + { + print '-100%'; + } + if (!$cum[$caseprev] && $cum[$case]) + { + //print ''; + print '-'; + } + if (isset($cum[$caseprev]) && !$cum[$caseprev] && !$cum[$case]) + { + print '+0%'; + } + if (!isset($cum[$caseprev]) && !$cum[$case]) + { + print '-'; + } + } else { + if ($minyearmonth <= $case && $case <= $maxyearmonth) { print '-'; } else { print ' '; } } - if ($cum[$caseprev] && !$cum[$case]) - { - print ''; - } - if (!$cum[$caseprev] && $cum[$case]) - { - //print ''; - print ''; - } - if (isset($cum[$caseprev]) && !$cum[$caseprev] && !$cum[$case]) - { - print ''; - } - if (!isset($cum[$caseprev]) && !$cum[$case]) - { - print ''; - } - } else { - print ''; } + print ''; if ($annee_decalage < $year_end || ($annee_decalage == $year_end && $mois > 12 && $annee < $year_end)) print ''; } - $total_ht[$annee] += ((!empty($cum_ht[$case])) ? $cum_ht[$case] : 0); - $total[$annee] += $cum[$case]; + if ($annee < $year_end || ($annee == $year_end && $mois <= $month_end)) { + $total_ht[$annee] += ((!empty($cum_ht[$case])) ? $cum_ht[$case] : 0); + $total[$annee] += $cum[$case]; + } } print ''; @@ -470,34 +479,37 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) } */ -// Affiche total +// Show total print ''; for ($annee = $year_start; $annee <= $year_end; $annee++) { if ($modecompta == 'CREANCES-DETTES') { // Montant total HT - if ($total_ht[$annee] || ($annee >= $minyear && $annee <= max($nowyear, $maxyear))) - { - print '"; + if ($total_ht[$annee] || ($annee >= $minyear && $annee <= max($nowyear, $maxyear))) { + print '"; } else { print ''; } } - // Montant total - if ($total[$annee] || ($annee >= $minyear && $annee <= max($nowyear, $maxyear))) - { - print '"; + // Total amount + if ($total[$annee] || ($annee >= $minyear && $annee <= max($nowyear, $maxyear))) { + print '"; } else { print ''; } // Pourcentage total - if ($annee > $minyear && $annee <= max($nowyear, $maxyear)) - { + if ($annee > $minyear && $annee <= max($nowyear, $maxyear)) { if ($total[$annee - 1] && $total[$annee]) { $percent = (round(($total[$annee] - $total[$annee - 1]) / $total[$annee - 1], 4) * 100); - print ''; + print ''; } if ($total[$annee - 1] && !$total[$annee]) { From 244ee05a9c3a07123b1805e4df0e2797b31fdcf1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 30 Jan 2021 18:09:13 +0100 Subject: [PATCH 158/219] FIX #14290 #15900 --- htdocs/comm/propal/list.php | 2 +- htdocs/commande/list.php | 2 +- htdocs/compta/facture/list.php | 2 +- htdocs/expedition/list.php | 17 ++++++++++++----- htdocs/fourn/commande/list.php | 2 +- htdocs/supplier_proposal/list.php | 2 +- 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 76914e2c13a..7a06f7f4a86 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -282,7 +282,7 @@ $help_url = 'EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos' //llxHeader('',$langs->trans('Proposal'),$help_url); $sql = 'SELECT'; -if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; +if ($sall || $search_product_category > 0 || $search_user > 0) $sql = 'SELECT DISTINCT'; $sql .= ' s.rowid as socid, s.nom as name, s.email, s.town, s.zip, s.fk_pays, s.client, s.code_client, '; $sql .= " typent.code as typent_code,"; $sql .= " ava.rowid as availability,"; diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index 1e7e0d1d9d7..ef10ffac25f 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -263,7 +263,7 @@ $help_url = "EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_P // llxHeader('',$title,$help_url); $sql = 'SELECT'; -if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; +if ($sall || $search_product_category > 0 || $search_user > 0) $sql = 'SELECT DISTINCT'; $sql .= ' s.rowid as socid, s.nom as name, s.email, s.town, s.zip, s.fk_pays, s.client, s.code_client,'; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index 71184d905b3..f655de32646 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -416,7 +416,7 @@ $formcompany = new FormCompany($db); $thirdpartystatic = new Societe($db); $sql = 'SELECT'; -if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; +if ($sall || $search_product_category > 0 || $search_user > 0) $sql = 'SELECT DISTINCT'; $sql .= ' f.rowid as id, f.ref, f.ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.fk_cond_reglement, f.total as total_ht, f.tva as total_vat, f.total_ttc,'; $sql .= ' f.localtax1 as total_localtax1, f.localtax2 as total_localtax2,'; $sql .= ' f.fk_user_author,'; diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php index a7f44bf483e..9bc0b6c0fac 100644 --- a/htdocs/expedition/list.php +++ b/htdocs/expedition/list.php @@ -213,8 +213,9 @@ $helpurl = 'EN:Module_Shipments|FR:Module_Expéditions|ES:Módulo_Ex llxHeader('', $langs->trans('ListOfSendings'), $helpurl); $sql = 'SELECT'; -if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; -$sql .= " e.rowid, e.ref, e.ref_customer, e.date_expedition as date_expedition, e.weight, e.weight_units, e.date_delivery as date_livraison, l.date_delivery as date_reception, e.fk_statut, e.billed,"; +if ($sall || $search_product_category > 0 || $search_user > 0) $sql = 'SELECT DISTINCT'; +$sql .= " e.rowid, e.ref, e.ref_customer, e.date_expedition as date_expedition, e.weight, e.weight_units, e.date_delivery as date_livraison, e.fk_statut, e.billed,"; +$sql .= " l.date_delivery as date_reception,"; $sql .= " s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, "; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; @@ -244,11 +245,12 @@ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as ee ON e.rowid = ee.fk_source AND ee.sourcetype = 'shipping' AND ee.targettype = 'delivery'"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."livraison as l ON l.rowid = ee.fk_target"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user as u ON e.fk_user_author = u.rowid'; - +if ($search_user > 0) { // Get link to order to get the order id in eesource.fk_source + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as eesource ON eesource.fk_target = e.rowid AND eesource.targettype = 'shipping' AND eesource.sourcetype = 'commande'"; +} // We'll need this table joined to the select in order to filter by sale if ($search_sale > 0 || (!$user->rights->societe->client->voir && !$socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; -if ($search_user > 0) -{ +if ($search_user > 0) { $sql .= ", ".MAIN_DB_PREFIX."element_contact as ec"; $sql .= ", ".MAIN_DB_PREFIX."c_type_contact as tc"; } @@ -275,6 +277,11 @@ if ($search_state) $sql .= natural_search("state.nom", $search_state); if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')'; if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')'; if ($search_sale > 0) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$search_sale; +if ($search_user > 0) +{ + // The contact on a shipment is also the contact of the order. + $sql .= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='commande' AND tc.source='internal' AND ec.element_id = eesource.fk_source AND ec.fk_socpeople = ".$db->escape($search_user); +} if ($search_ref_exp) $sql .= natural_search('e.ref', $search_ref_exp); if ($search_ref_liv) $sql .= natural_search('l.ref', $search_ref_liv); if ($search_company) $sql .= natural_search('s.nom', $search_company); diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index ce638cdffcb..7b5fc220357 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -501,7 +501,7 @@ $help_url = ''; // llxHeader('',$title,$help_url); $sql = 'SELECT'; -if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; +if ($sall || $search_product_category > 0 || $search_user > 0) $sql = 'SELECT DISTINCT'; $sql .= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, s.email,'; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php index ded5d9ca2bf..662e0591611 100644 --- a/htdocs/supplier_proposal/list.php +++ b/htdocs/supplier_proposal/list.php @@ -255,7 +255,7 @@ $help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur'; //llxHeader('',$langs->trans('CommRequest'),$help_url); $sql = 'SELECT'; -if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; +if ($sall || $search_product_category > 0 || $search_user > 0) $sql = 'SELECT DISTINCT'; $sql .= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client,'; $sql .= " typent.code as typent_code,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; From 80714d8d6d0deab3a7c13322b4bfadbb9fa954a3 Mon Sep 17 00:00:00 2001 From: "Paul Vincent M. Ancajas" Date: Sun, 31 Jan 2021 16:09:35 +0800 Subject: [PATCH 159/219] Fix/FIX: Show notification in Event box of user in his dashboard if assigned by others --- htdocs/comm/action/class/actioncomm.class.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 7355040e00c..a79060e6af8 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -1201,14 +1201,21 @@ class ActionComm extends CommonObject } $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON a.fk_soc = sc.fk_soc"; + if (!$user->rights->agenda->allactions->read) { // If bloack Added by PV + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_resources AS ar ON a.id = ar.fk_actioncomm"; + } $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON a.fk_soc = s.rowid"; $sql .= " WHERE 1 = 1"; if (empty($load_state_board)) $sql .= " AND a.percent >= 0 AND a.percent < 100"; $sql .= " AND a.entity IN (".getEntity('agenda').")"; if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND (a.fk_soc IS NULL OR sc.fk_user = ".$user->id.")"; if ($user->socid) $sql .= " AND a.fk_soc = ".$user->socid; - if (!$user->rights->agenda->allactions->read) $sql .= " AND (a.fk_user_author = ".$user->id." OR a.fk_user_action = ".$user->id." OR a.fk_user_done = ".$user->id.")"; - + if (!$user->rights->agenda->allactions->read) { + $sql .= " AND (a.fk_user_author = ".$user->id." OR a.fk_user_action = ".$user->id." OR a.fk_user_done = ".$user->id; + $sql .= " OR ar.fk_element = ".$user->id; // Added by PV + $sql .= ")"; + } + $resql = $this->db->query($sql); if ($resql) { From 726e0ceff043339ef56d479faedaaf48c4fc2c14 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Sun, 31 Jan 2021 08:16:59 +0000 Subject: [PATCH 160/219] Fixing style errors. --- htdocs/comm/action/class/actioncomm.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index a79060e6af8..143dbf064a9 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -1215,7 +1215,7 @@ class ActionComm extends CommonObject $sql .= " OR ar.fk_element = ".$user->id; // Added by PV $sql .= ")"; } - + $resql = $this->db->query($sql); if ($resql) { From 7887d4cc8e8f9e039d72621e472dc13ae957cbdc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 12:48:40 +0100 Subject: [PATCH 161/219] Fix price2num on all GETPOST('remise_percent') --- htdocs/comm/propal/card.php | 10 ++--- htdocs/commande/card.php | 10 ++--- htdocs/compta/facture/card-rec.php | 6 +-- htdocs/compta/facture/card.php | 63 ++++++++++++++---------------- htdocs/contrat/card.php | 12 +++--- htdocs/core/lib/date.lib.php | 4 +- htdocs/core/lib/functions.lib.php | 6 +-- htdocs/fourn/commande/card.php | 12 +++--- htdocs/fourn/facture/card.php | 8 ++-- htdocs/product/card.php | 18 ++++----- htdocs/product/fournisseurs.php | 6 +-- htdocs/product/price.php | 6 +-- htdocs/supplier_proposal/card.php | 18 ++++----- 13 files changed, 87 insertions(+), 92 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 8b5054afd7f..e823ec95cdc 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -354,8 +354,8 @@ if (empty($reshook)) $object->cond_reglement_id = GETPOST('cond_reglement_id'); $object->mode_reglement_id = GETPOST('mode_reglement_id'); $object->fk_account = GETPOST('fk_account', 'int'); - $object->remise_percent = GETPOST('remise_percent'); - $object->remise_absolue = GETPOST('remise_absolue'); + $object->remise_percent = price2num(GETPOST('remise_percent'), 2); + $object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU'); $object->socid = GETPOST('socid', 'int'); $object->contact_id = GETPOST('contactid', 'int'); $object->fk_project = GETPOST('projectid', 'int'); @@ -812,7 +812,7 @@ if (empty($reshook)) } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); - $remise_percent = GETPOST('remise_percent'.$predef); + $remise_percent = price2num(GETPOST('remise_percent'.$predef), 2); if (empty($remise_percent)) $remise_percent = 0; // Extrafields @@ -1210,7 +1210,7 @@ if (empty($reshook)) $price_min = $product->multiprices_min [$object->thirdparty->price_level]; $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min)))) { + if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent'), 2) / 100) < price2num($price_min)))) { setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); $error++; } @@ -1243,7 +1243,7 @@ if (empty($reshook)) $qty = price2num(GETPOST('qty', 'alpha'), 'MS'); - $result = $object->updateline(GETPOST('lineid', 'int'), $pu_ht, $qty, GETPOST('remise_percent'), $vat_rate, $localtax1_rate, $localtax2_rate, $description, 'HT', $info_bits, $special_code, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $type, $date_start, $date_end, $array_options, $_POST["units"], $pu_ht_devise); + $result = $object->updateline(GETPOST('lineid', 'int'), $pu_ht, $qty, price2num(GETPOST('remise_percent'), 2), $vat_rate, $localtax1_rate, $localtax2_rate, $description, 'HT', $info_bits, $special_code, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $type, $date_start, $date_end, $array_options, GETPOST("units"), $pu_ht_devise); if ($result >= 0) { $db->commit(); diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 287150e6ca2..1d2f12132e5 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -607,9 +607,9 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } elseif ($action == 'setremisepercent' && $usercancreate) { - $result = $object->set_remise($user, GETPOST('remise_percent')); + $result = $object->set_remise($user, price2num(GETPOST('remise_percent'), 2)); } elseif ($action == 'setremiseabsolue' && $usercancreate) { - $result = $object->set_remise_absolue($user, GETPOST('remise_absolue')); + $result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 'MU')); } elseif ($action == 'addline' && GETPOST('submitforalllines', 'aZ09') && GETPOST('vatforalllines', 'alpha')) { // Define vat_rate $vat_rate = (GETPOST('vatforalllines') ? GETPOST('vatforalllines') : 0); @@ -640,7 +640,7 @@ if (empty($reshook)) } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); - $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef, 'alpha')) : 0); + $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef), 2) : 0); // Extrafields $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); @@ -1032,7 +1032,7 @@ if (empty($reshook)) $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min)))) { + if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent'), 2) / 100) < price2num($price_min)))) { setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); $error++; } @@ -1060,7 +1060,7 @@ if (empty($reshook)) } } } - $result = $object->updateline(GETPOST('lineid'), $description, $pu_ht, GETPOST('qty'), GETPOST('remise_percent'), $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $info_bits, $date_start, $date_end, $type, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $special_code, $array_options, GETPOST('units'), $pu_ht_devise); + $result = $object->updateline(GETPOST('lineid', 'int'), $description, $pu_ht, price2num(GETPOST('qty'), 'MS'), price2num(GETPOST('remise_percent'), 2), $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $info_bits, $date_start, $date_end, $type, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $special_code, $array_options, GETPOST('units'), $pu_ht_devise); if ($result >= 0) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { diff --git a/htdocs/compta/facture/card-rec.php b/htdocs/compta/facture/card-rec.php index 35d70e1edd6..1a125a38147 100644 --- a/htdocs/compta/facture/card-rec.php +++ b/htdocs/compta/facture/card-rec.php @@ -451,7 +451,7 @@ if (empty($reshook)) } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); - $remise_percent = GETPOST('remise_percent'.$predef); + $remise_percent = price2num(GETPOST('remise_percent'.$predef), 2); // Extrafields $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); @@ -801,7 +801,7 @@ if (empty($reshook)) $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); // Check price is not lower than minimum (check is done only for standard or replacement invoices) - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min)))) + if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)) && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent', 2)) / 100) < price2num($price_min)))) { setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); $error++; @@ -837,7 +837,7 @@ if (empty($reshook)) $localtax1_rate, $localtax1_rate, GETPOST('productid'), - GETPOST('remise_percent'), + price2num(GETPOST('remise_percent'), 2), 'HT', $info_bits, 0, diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 16a472d878c..f4f1c5cde1a 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -476,19 +476,15 @@ if (empty($reshook)) } } } // Set incoterm - elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled)) - { + elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled)) { $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); } // bank account - elseif ($action == 'setbankaccount' && $usercancreate) - { + elseif ($action == 'setbankaccount' && $usercancreate) { $result = $object->setBankAccount(GETPOST('fk_account', 'int')); - } elseif ($action == 'setremisepercent' && $usercancreate) - { + } elseif ($action == 'setremisepercent' && $usercancreate) { $object->fetch($id); - $result = $object->set_remise($user, $_POST['remise_percent']); - } elseif ($action == "setabsolutediscount" && $usercancreate) - { + $result = $object->set_remise($user, price2num(GETPOST('remise_percent'), 2)); + } elseif ($action == "setabsolutediscount" && $usercancreate) { // POST[remise_id] or POST[remise_id_for_payment] // We use the credit to reduce amount of invoice @@ -981,7 +977,7 @@ if (empty($reshook)) $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors'); $action = 'create'; - } elseif ($dateinvoice > (dol_now() + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { + } elseif ($dateinvoice > (dol_get_last_hour(dol_now()) + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { $error++; setEventMessages($langs->trans("ErrorDateIsInFuture"), null, 'errors'); $action = 'create'; @@ -993,26 +989,25 @@ if (empty($reshook)) $action = 'create'; } - $date_pointoftax = dol_mktime(12, 0, 0, $_POST['date_pointoftaxmonth'], $_POST['date_pointoftaxday'], $_POST['date_pointoftaxyear']); + $date_pointoftax = dol_mktime(12, 0, 0, GETPOST('date_pointoftaxmonth', 'int'), GETPOST('date_pointoftaxday', 'int'), GETPOST('date_pointoftaxyear', 'int')); if (!$error) { // This is a replacement invoice - $result = $object->fetch($_POST['fac_replacement']); + $result = $object->fetch(GETPOST('fac_replacement', 'int')); $object->fetch_thirdparty(); $object->date = $dateinvoice; $object->date_pointoftax = $date_pointoftax; $object->note_public = trim(GETPOST('note_public', 'restricthtml')); // We do not copy the private note - $object->ref_client = $_POST['ref_client']; - $object->ref_int = $_POST['ref_int']; - $object->model_pdf = $_POST['model']; - $object->fk_project = $_POST['projectid']; - $object->cond_reglement_id = $_POST['cond_reglement_id']; - $object->mode_reglement_id = $_POST['mode_reglement_id']; + $object->ref_client = GETPOST('ref_client', 'alphanohtml'); + $object->model_pdf = GETPOST('model', 'alphanohtml'); + $object->fk_project = GETPOST('projectid', 'int'); + $object->cond_reglement_id = GETPOST('cond_reglement_id', 'int'); + $object->mode_reglement_id = GETPOST('mode_reglement_id', 'int'); $object->fk_account = GETPOST('fk_account', 'int'); - $object->remise_absolue = $_POST['remise_absolue']; - $object->remise_percent = $_POST['remise_percent']; + $object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU'); + $object->remise_percent = price2num(GETPOST('remise_percent'), 2); $object->fk_incoterms = GETPOST('incoterm_id', 'int'); $object->location_incoterms = GETPOST('location_incoterms', 'alpha'); $object->multicurrency_code = GETPOST('multicurrency_code', 'alpha'); @@ -1067,11 +1062,11 @@ if (empty($reshook)) $object->ref_client = GETPOST('ref_client'); $object->model_pdf = GETPOST('model'); $object->fk_project = GETPOST('projectid', 'int'); - $object->cond_reglement_id = 0; - $object->mode_reglement_id = GETPOST('mode_reglement_id'); + $object->cond_reglement_id = 0; // No payment term for a credit note + $object->mode_reglement_id = GETPOST('mode_reglement_id', 'int'); $object->fk_account = GETPOST('fk_account', 'int'); - $object->remise_absolue = GETPOST('remise_absolue'); - $object->remise_percent = GETPOST('remise_percent'); + $object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU'); + $object->remise_percent = price2num(GETPOST('remise_percent'), 2); $object->fk_incoterms = GETPOST('incoterm_id', 'int'); $object->location_incoterms = GETPOST('location_incoterms', 'alpha'); $object->multicurrency_code = GETPOST('multicurrency_code', 'alpha'); @@ -1289,8 +1284,8 @@ if (empty($reshook)) $object->mode_reglement_id = GETPOST('mode_reglement_id', 'int'); $object->fk_account = GETPOST('fk_account', 'int'); $object->amount = price2num(GETPOST('amount')); - $object->remise_absolue = GETPOST('remise_absolue'); - $object->remise_percent = GETPOST('remise_percent'); + $object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU'); + $object->remise_percent = price2num(GETPOST('remise_percent'), 2); $object->fk_incoterms = GETPOST('incoterm_id', 'int'); $object->location_incoterms = GETPOST('location_incoterms', 'alpha'); $object->multicurrency_code = GETPOST('multicurrency_code', 'alpha'); @@ -1343,8 +1338,8 @@ if (empty($reshook)) $object->mode_reglement_id = GETPOST('mode_reglement_id'); $object->fk_account = GETPOST('fk_account', 'int'); $object->amount = price2num(GETPOST('amount')); - $object->remise_absolue = GETPOST('remise_absolue'); - $object->remise_percent = GETPOST('remise_percent'); + $object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU'); + $object->remise_percent = price2num(GETPOST('remise_percent'), 2); $object->fk_incoterms = GETPOST('incoterm_id', 'int'); $object->location_incoterms = GETPOST('location_incoterms', 'alpha'); $object->multicurrency_code = GETPOST('multicurrency_code', 'alpha'); @@ -1837,8 +1832,8 @@ if (empty($reshook)) $object->fk_project = GETPOST('projectid', 'int'); $object->cond_reglement_id = GETPOST('cond_reglement_id', 'int'); $object->mode_reglement_id = GETPOST('mode_reglement_id', 'int'); - $object->remise_absolue = GETPOST('remise_absolue', 'int'); - $object->remise_percent = GETPOST('remise_percent', 'int'); + $object->remise_absolue =price2num(GETPOST('remise_absolue'), 'MU'); + $object->remise_percent = price2num(GETPOST('remise_percent'), 2); // Proprietes particulieres a facture de remplacement @@ -1923,8 +1918,8 @@ if (empty($reshook)) $tva_tx = ''; } - $qty = GETPOST('qty'.$predef); - $remise_percent = GETPOST('remise_percent'.$predef); + $qty = price2num(GETPOST('qty'.$predef), 'MS'); + $remise_percent = price2num(GETPOST('remise_percent'.$predef), 2); // Extrafields $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); @@ -2314,7 +2309,7 @@ if (empty($reshook)) $label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : ''); // Check price is not lower than minimum (check is done only for standard or replacement invoices) - if ($usercanproductignorepricemin && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min)))) { + if ($usercanproductignorepricemin && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent'), 2) / 100) < price2num($price_min)))) { setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors'); $error++; } @@ -2367,7 +2362,7 @@ if (empty($reshook)) } } - $result = $object->updateline(GETPOST('lineid', 'int'), $description, $pu_ht, $qty, price2num(GETPOST('remise_percent', 'alpha')), + $result = $object->updateline(GETPOST('lineid', 'int'), $description, $pu_ht, $qty, price2num(GETPOST('remise_percent'), 2), $date_start, $date_end, $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $info_bits, $type, GETPOST('fk_parent_line', 'int'), 0, $fournprice, $buyingprice, $label, $special_code, $array_options, price2num(GETPOST('progress', 'alpha')), GETPOST('units', 'alpha'), $pu_ht_devise); diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index ca03905b834..8d78b410329 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -213,7 +213,7 @@ if (empty($reshook)) $object->note_private = GETPOST('note_private', 'alpha'); $object->note_public = GETPOST('note_public', 'alpha'); $object->fk_project = GETPOST('projectid', 'int'); - $object->remise_percent = GETPOST('remise_percent', 'alpha'); + $object->remise_percent = price2num(GETPOST('remise_percent'), 2); $object->ref = GETPOST('ref', 'alpha'); $object->ref_customer = GETPOST('ref_customer', 'alpha'); $object->ref_supplier = GETPOST('ref_supplier', 'alpha'); @@ -396,7 +396,7 @@ if (empty($reshook)) } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); - $remise_percent = ((GETPOST('remise_percent'.$predef) != '') ? GETPOST('remise_percent'.$predef) : 0); + $remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef), 2) : 0); if ($qty == '') { @@ -673,10 +673,10 @@ if (empty($reshook)) $objectline->fk_product = GETPOST('idprod', 'int'); $objectline->description = GETPOST('product_desc', 'restricthtml'); - $objectline->price_ht = GETPOST('elprice'); - $objectline->subprice = GETPOST('elprice'); - $objectline->qty = GETPOST('elqty'); - $objectline->remise_percent = GETPOST('elremise_percent'); + $objectline->price_ht = price2num(GETPOST('elprice'), 'MU'); + $objectline->subprice = price2num(GETPOST('elprice'), 'MU'); + $objectline->qty = price2num(GETPOST('elqty'), 'MS'); + $objectline->remise_percent = price2num(GETPOST('elremise_percent'), 2); $objectline->tva_tx = ($txtva ? $txtva : 0); // Field may be disabled, so we use vat rate 0 $objectline->vat_src_code = $vat_src_code; $objectline->localtax1_tx = is_numeric($localtax1_tx) ? $localtax1_tx : 0; diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 74b091865ff..b632bf44110 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -514,9 +514,9 @@ function dol_get_last_day($year, $month = 12, $gm = false) } /** - * Return GMT time for last hour of a given GMT date (it removes hours, min and second part) + * Return GMT time for last hour of a given GMT date (it replaces hours, min and second part to 23:59:59) * - * @param int $date Date + * @param int $date Date GMT * @return int Date for last hour of a given date */ function dol_get_last_hour($date) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 68941b92387..5e97eceaaea 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4830,13 +4830,13 @@ function price($amount, $form = 0, $outlangs = '', $trunc = 1, $rounding = -1, $ * should be roundtext2num(). * * @param string|float $amount Amount to convert/clean or round - * @param string $rounding ''=No rounding + * @param string|int $rounding ''=No rounding * 'MU'=Round to Max unit price (MAIN_MAX_DECIMALS_UNIT) * 'MT'=Round to Max for totals with Tax (MAIN_MAX_DECIMALS_TOT) * 'MS'=Round to Max for stock quantity (MAIN_MAX_DECIMALS_STOCK) * 'CU'=Round to Max unit price of foreign currency accuracy * 'CT'=Round to Max for totals with Tax of foreign currency accuracy - * Numeric = Nb of digits for rounding + * Numeric = Nb of digits for rounding (For example 2 for a percentage) * @param int $option Put 1 if you know that content is already universal format number (so no correction on decimal will be done) * Put 2 if you know that number is a user input (so we know we don't have to fix decimal separator). * @return string Amount with universal numeric format (Example: '99.99999'). @@ -4911,7 +4911,7 @@ function price2num($amount, $rounding = '', $option = 0) elseif ($rounding == 'CT') { $nbofdectoround = max($conf->global->MAIN_MAX_DECIMALS_TOT, 8); // TODO Use param of currency } - elseif (is_numeric($rounding)) $nbofdectoround = $rounding; + elseif (is_numeric($rounding)) $nbofdectoround = (int) $rounding; //print "RR".$amount.' - '.$nbofdectoround.'
    '; if (dol_strlen($nbofdectoround)) $amount = round(is_string($amount) ? (float) $amount : $amount, $nbofdectoround); // $nbofdectoround can be 0. else return 'ErrorBadParameterProvidedToFunction'; diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index c00e1d2d6e2..4238d0ee041 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -372,7 +372,7 @@ if (empty($reshook)) } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); - $remise_percent = GETPOST('remise_percent'.$predef); + $remise_percent = price2num(GETPOST('remise_percent'.$predef), 2); $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU'); // Extrafields @@ -721,21 +721,21 @@ if (empty($reshook)) $result = $object->updateline( $lineid, - $_POST['product_desc'], + GETPOST('product_desc', 'restricthtml'), $ht, - GETPOST('qty', 'int'), - $_POST['remise_percent'], + price2num(GETPOST('qty'), 'MS'), + price2num(GETPOST('remise_percent'), 2), $vat_rate, $localtax1_rate, $localtax2_rate, $price_base_type, 0, - isset($_POST["type"]) ? $_POST["type"] : $line->product_type, + GETPOSTISSET("type") ? GETPOST("type") : $line->product_type, false, $date_start, $date_end, $array_options, - $_POST['units'], + GETPOST('units'), $pu_ht_devise, GETPOST('fourn_ref', 'alpha') ); diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index bfac45b15ac..9b8d0d959f3 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -1137,8 +1137,8 @@ if (empty($reshook)) $localtax1_tx = get_localtax($tva_tx, 1, $mysoc, $object->thirdparty); $localtax2_tx = get_localtax($tva_tx, 2, $mysoc, $object->thirdparty); - $remise_percent = GETPOST('remise_percent'); - $pu_ht_devise = GETPOST('multicurrency_subprice'); + $remise_percent = price2num(GETPOST('remise_percent'), 2); + $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), 'CU'); // Extrafields Lines $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); @@ -1150,7 +1150,7 @@ if (empty($reshook)) } } - $result = $object->updateline(GETPOST('lineid'), $label, $up, $tva_tx, $localtax1_tx, $localtax2_tx, GETPOST('qty'), GETPOST('productid'), $price_base_type, $info_bits, $type, $remise_percent, 0, $date_start, $date_end, $array_options, $_POST['units'], $pu_ht_devise, GETPOST('fourn_ref', 'alpha')); + $result = $object->updateline(GETPOST('lineid', 'int'), $label, $up, $tva_tx, $localtax1_tx, $localtax2_tx, price2num(GETPOST('qty'), 'MS'), GETPOST('productid', 'int'), $price_base_type, $info_bits, $type, $remise_percent, 0, $date_start, $date_end, $array_options, GETPOST('units'), $pu_ht_devise, GETPOST('fourn_ref', 'alpha')); if ($result >= 0) { unset($_POST['label']); @@ -1206,7 +1206,7 @@ if (empty($reshook)) } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); - $remise_percent = GETPOST('remise_percent'.$predef); + $remise_percent = price2num(GETPOST('remise_percent'.$predef), 2); $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU'); // Extrafields diff --git a/htdocs/product/card.php b/htdocs/product/card.php index c6dfd68d2c4..55c29aa1381 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -743,7 +743,7 @@ if (empty($reshook)) if (GETPOST('propalid') > 0) { // Define cost price for margin calculation $buyprice = 0; - if (($result = $propal->defineBuyPrice($pu_ht, GETPOST('remise_percent'), $object->id)) < 0) + if (($result = $propal->defineBuyPrice($pu_ht, price2num(GETPOST('remise_percent'), 2), $object->id)) < 0) { dol_syslog($langs->trans('FailedToGetCostPrice')); setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors'); @@ -754,12 +754,12 @@ if (empty($reshook)) $result = $propal->addline( $desc, $pu_ht, - GETPOST('qty'), + price2num(GETPOST('qty'), 'MS'), $tva_tx, $localtax1_tx, // localtax1 $localtax2_tx, // localtax2 $object->id, - GETPOST('remise_percent'), + price2num(GETPOST('remise_percent'), 2), $price_base_type, $pu_ttc, 0, @@ -784,7 +784,7 @@ if (empty($reshook)) } elseif (GETPOST('commandeid') > 0) { // Define cost price for margin calculation $buyprice = 0; - if (($result = $commande->defineBuyPrice($pu_ht, GETPOST('remise_percent'), $object->id)) < 0) + if (($result = $commande->defineBuyPrice($pu_ht, GETPOST('remise_percent', 2), $object->id)) < 0) { dol_syslog($langs->trans('FailedToGetCostPrice')); setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors'); @@ -795,12 +795,12 @@ if (empty($reshook)) $result = $commande->addline( $desc, $pu_ht, - GETPOST('qty'), + price2num(GETPOST('qty'), 'MS'), $tva_tx, $localtax1_tx, // localtax1 $localtax2_tx, // localtax2 $object->id, - GETPOST('remise_percent'), + price2num(GETPOST('remise_percent'), 2), '', '', $price_base_type, @@ -825,7 +825,7 @@ if (empty($reshook)) } elseif (GETPOST('factureid') > 0) { // Define cost price for margin calculation $buyprice = 0; - if (($result = $facture->defineBuyPrice($pu_ht, GETPOST('remise_percent'), $object->id)) < 0) + if (($result = $facture->defineBuyPrice($pu_ht, GETPOST('remise_percent', 2), $object->id)) < 0) { dol_syslog($langs->trans('FailedToGetCostPrice')); setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors'); @@ -836,12 +836,12 @@ if (empty($reshook)) $result = $facture->addline( $desc, $pu_ht, - GETPOST('qty'), + price2nm(GETPOST('qty'), 'MS'), $tva_tx, $localtax1_tx, $localtax2_tx, $object->id, - GETPOST('remise_percent'), + price2num(GETPOST('remise_percent'), 2), '', '', '', diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php index 2aadd4b3813..88c5259f48d 100644 --- a/htdocs/product/fournisseurs.php +++ b/htdocs/product/fournisseurs.php @@ -160,7 +160,7 @@ if (empty($reshook)) if (empty($ref_fourn_old)) $ref_fourn_old = $ref_fourn; $quantity = price2num(GETPOST("qty", 'nohtml'), 'MS'); $remise_percent = price2num(GETPOST('remise_percent', 'alpha')); - $npr = preg_match('/\*/', $_POST['tva_tx']) ? 1 : 0; + $npr = preg_match('/\*/', GETPOST('tva_tx', 'alpha')) ? 1 : 0; $tva_tx = str_replace('*', '', GETPOST('tva_tx', 'alpha')); $tva_tx = price2num($tva_tx); $price_expression = GETPOST('eid', 'int') ? GETPOST('eid', 'int') : ''; // Discard expression if not in expression mode @@ -697,14 +697,14 @@ END; print '
    '; print ''; } // Discount qty min print ''; - print ''; print ''; diff --git a/htdocs/product/price.php b/htdocs/product/price.php index 3785f50f213..89695690d38 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -419,10 +419,10 @@ if (empty($reshook)) // Récupération des variables $rowid = GETPOST('rowid', 'int'); $priceid = GETPOST('priceid', 'int'); - $newprice = price2num(GETPOST("price", 'alpha'), 'MU'); + $newprice = price2num(GETPOST("price"), 'MU'); // $newminprice=price2num(GETPOST("price_min"),'MU'); // TODO : Add min price management - $quantity = GETPOST('quantity', 'int'); - $remise_percent = price2num(GETPOST('remise_percent', 'alpha')); + $quantity = price2num(GETPOST('quantity'), 'MS'); + $remise_percent = price2num(GETPOST('remise_percent'), 2); $remise = 0; // TODO : allow discount by amount when available on documents if (empty($quantity)) { diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index d7ee97e1b9d..34f9ff78380 100644 --- a/htdocs/supplier_proposal/card.php +++ b/htdocs/supplier_proposal/card.php @@ -263,8 +263,8 @@ if (empty($reshook)) $object->cond_reglement_id = GETPOST('cond_reglement_id'); $object->mode_reglement_id = GETPOST('mode_reglement_id'); $object->fk_account = GETPOST('fk_account', 'int'); - $object->remise_percent = GETPOST('remise_percent'); - $object->remise_absolue = GETPOST('remise_absolue'); + $object->remise_percent = price2num(GETPOST('remise_percent'), 2); + $object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU'); $object->socid = GETPOST('socid'); $object->fk_project = GETPOST('projectid', 'int'); $object->model_pdf = GETPOST('model'); @@ -556,7 +556,7 @@ if (empty($reshook)) } $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS'); - $remise_percent = GETPOST('remise_percent'.$predef); + $remise_percent = price2num(GETPOST('remise_percent'.$predef), 2); $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU'); // Extrafields @@ -929,10 +929,10 @@ if (empty($reshook)) $fk_unit = GETPOST('units'); $result = $object->updateline( - GETPOST('lineid'), + GETPOST('lineid', 'int'), $ht, - GETPOST('qty'), - GETPOST('remise_percent'), + price2num(GETPOST('qty'), 'MS'), + price2num(GETPOST('remise_percent'), 2), $vat_rate, $localtax1_rate, $localtax2_rate, @@ -940,7 +940,7 @@ if (empty($reshook)) $price_base_type, $info_bits, $special_code, - GETPOST('fk_parent_line'), + GETPOST('fk_parent_line', 'int'), 0, $fournprice, $buyingprice, @@ -1018,9 +1018,9 @@ if (empty($reshook)) elseif ($action == 'setconditions' && $usercancreate) { $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int')); } elseif ($action == 'setremisepercent' && $usercancreate) { - $result = $object->set_remise_percent($user, GETPOST('remise_percent', 'alpha')); + $result = $object->set_remise_percent($user, price2num(GETPOST('remise_percent'), 2)); } elseif ($action == 'setremiseabsolue' && $usercancreate) { - $result = $object->set_remise_absolue($user, GETPOST('remise_absolue', 'alpha')); + $result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 2)); } // Payment mode From d047cf488dc678c0404e894c3475db77786ed337 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 12:51:11 +0100 Subject: [PATCH 162/219] Fix price2num --- htdocs/supplier_proposal/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index 34f9ff78380..05bc3aec44d 100644 --- a/htdocs/supplier_proposal/card.php +++ b/htdocs/supplier_proposal/card.php @@ -1020,7 +1020,7 @@ if (empty($reshook)) } elseif ($action == 'setremisepercent' && $usercancreate) { $result = $object->set_remise_percent($user, price2num(GETPOST('remise_percent'), 2)); } elseif ($action == 'setremiseabsolue' && $usercancreate) { - $result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 2)); + $result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 'MU')); } // Payment mode From b349290cd1c515ff678be4202d5b2327023afc30 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 12:57:54 +0100 Subject: [PATCH 163/219] Fix test for date in future --- htdocs/compta/facture/card.php | 8 ++++---- htdocs/fourn/facture/card.php | 6 +++--- htdocs/langs/en_US/errors.lang | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index f4f1c5cde1a..c0a9a15739a 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -1040,7 +1040,7 @@ if (empty($reshook)) $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors'); $action = 'create'; - } elseif ($dateinvoice > (dol_now() + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { + } elseif ($dateinvoice > (dol_get_last_hour(dol_now()) + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { $error++; setEventMessages($langs->trans("ErrorDateIsInFuture"), null, 'errors'); $action = 'create'; @@ -1260,7 +1260,7 @@ if (empty($reshook)) $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors'); $action = 'create'; - } elseif ($dateinvoice > (dol_now() + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { + } elseif ($dateinvoice > (dol_get_last_hour(dol_now()) + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { $error++; setEventMessages($langs->trans("ErrorDateIsInFuture"), null, 'errors'); $action = 'create'; @@ -1313,7 +1313,7 @@ if (empty($reshook)) $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors'); $action = 'create'; - } elseif ($dateinvoice > (dol_now() + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { + } elseif ($dateinvoice > (dol_get_last_hour(dol_now()) + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { $error++; setEventMessages($langs->trans("ErrorDateIsInFuture"), null, 'errors'); $action = 'create'; @@ -1737,7 +1737,7 @@ if (empty($reshook)) $error++; $mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")); setEventMessages($mesg, null, 'errors'); - } elseif ($dateinvoice > (dol_now() + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { + } elseif ($dateinvoice > (dol_get_last_hour(dol_now()) + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { $error++; setEventMessages($langs->trans("ErrorDateIsInFuture"), null, 'errors'); $action = 'create'; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 9b8d0d959f3..4d8d19e8bde 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -666,7 +666,7 @@ if (empty($reshook)) $action = 'create'; $_GET['socid'] = $_POST['socid']; $error++; - } elseif ($dateinvoice > (dol_now() + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { + } elseif ($dateinvoice > (dol_get_last_hour(dol_now()) + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { $error++; setEventMessages($langs->trans("ErrorDateIsInFuture"), null, 'errors'); $action = 'create'; @@ -733,7 +733,7 @@ if (empty($reshook)) $action = 'create'; $_GET['socid'] = $_POST['socid']; $error++; - } elseif ($dateinvoice > (dol_now() + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { + } elseif ($dateinvoice > (dol_get_last_hour(dol_now()) + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { $error++; setEventMessages($langs->trans("ErrorDateIsInFuture"), null, 'errors'); $action = 'create'; @@ -851,7 +851,7 @@ if (empty($reshook)) $action = 'create'; $_GET['socid'] = $_POST['socid']; $error++; - } elseif ($dateinvoice > (dol_now() + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { + } elseif ($dateinvoice > (dol_get_last_hour(dol_now()) + (empty($conf->global->INVOICE_MAX_FUTURE_DELAY) ? 0 : $conf->global->INVOICE_MAX_FUTURE_DELAY))) { $error++; setEventMessages($langs->trans("ErrorDateIsInFuture"), null, 'errors'); $action = 'create'; diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index a7a7e12db14..baf04bbe4b8 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -256,6 +256,7 @@ ErrorPublicInterfaceNotEnabled=Public interface was not enabled ErrorLanguageRequiredIfPageIsTranslationOfAnother=The language of new page must be defined if it is set as a translation of another page ErrorLanguageMustNotBeSourceLanguageIfPageIsTranslationOfAnother=The language of new page must not be the source language if it is set as a translation of another page ErrorAParameterIsRequiredForThisOperation=A parameter is mandatory for this operation +ErrorDateIsInFuture=Error, the date can't be in the future # Warnings WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. From dad67785700bf8616d96830c0498478b912b5e0e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 13:07:41 +0100 Subject: [PATCH 164/219] Prepare removal of libelle and lib into label --- .../sociales/class/cchargesociales.class.php | 18 ++++++++++-------- .../sociales/class/chargesociales.class.php | 9 +++++++-- .../class/paymentsocialcontribution.class.php | 7 ++++++- htdocs/compta/sociales/list.php | 6 +++--- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/htdocs/compta/sociales/class/cchargesociales.class.php b/htdocs/compta/sociales/class/cchargesociales.class.php index ceace76bba9..c5ec3b24968 100644 --- a/htdocs/compta/sociales/class/cchargesociales.class.php +++ b/htdocs/compta/sociales/class/cchargesociales.class.php @@ -46,9 +46,15 @@ class Cchargesociales /** * @var string Label + * @deprecated */ public $libelle; + /** + * @var string Label + */ + public $label; + public $deductible; public $active; public $code; @@ -107,7 +113,6 @@ class Cchargesociales // Insert request $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.'('; - $sql .= 'libelle,'; $sql .= 'deductible,'; $sql .= 'active,'; @@ -115,10 +120,7 @@ class Cchargesociales $sql .= 'fk_pays,'; $sql .= 'module'; $sql .= 'accountancy_code'; - - $sql .= ') VALUES ('; - $sql .= ' '.(!isset($this->libelle) ? 'NULL' : "'".$this->db->escape($this->libelle)."'").','; $sql .= ' '.(!isset($this->deductible) ? 'NULL' : $this->deductible).','; $sql .= ' '.(!isset($this->active) ? 'NULL' : $this->active).','; @@ -126,8 +128,6 @@ class Cchargesociales $sql .= ' '.(!isset($this->fk_pays) ? 'NULL' : $this->fk_pays).','; $sql .= ' '.(!isset($this->module) ? 'NULL' : "'".$this->db->escape($this->module)."'").','; $sql .= ' '.(!isset($this->accountancy_code) ? 'NULL' : "'".$this->db->escape($this->accountancy_code)."'"); - - $sql .= ')'; $this->db->begin(); @@ -179,7 +179,7 @@ class Cchargesociales $sql = 'SELECT'; $sql .= " t.id,"; - $sql .= " t.libelle,"; + $sql .= " t.libelle as label,"; $sql .= " t.deductible,"; $sql .= " t.active,"; $sql .= " t.code,"; @@ -201,7 +201,8 @@ class Cchargesociales $this->id = $obj->id; - $this->libelle = $obj->libelle; + $this->libelle = $obj->label; + $this->label = $obj->label; $this->deductible = $obj->deductible; $this->active = $obj->active; $this->code = $obj->code; @@ -501,6 +502,7 @@ class Cchargesociales $this->id = 0; $this->libelle = ''; + $this->label = ''; $this->deductible = ''; $this->active = ''; $this->code = ''; diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php index 95e4bd1df77..34f58969a46 100644 --- a/htdocs/compta/sociales/class/chargesociales.class.php +++ b/htdocs/compta/sociales/class/chargesociales.class.php @@ -108,6 +108,11 @@ class ChargeSociales extends CommonObject */ public $fk_project; + /** + * @var int ID + */ + public $fk_user; + const STATUS_UNPAID = 0; const STATUS_PAID = 1; @@ -135,7 +140,7 @@ class ChargeSociales extends CommonObject $sql = "SELECT cs.rowid, cs.date_ech"; $sql .= ", cs.libelle as label, cs.fk_type, cs.amount, cs.fk_projet as fk_project, cs.paye, cs.periode, cs.import_key"; $sql .= ", cs.fk_account, cs.fk_mode_reglement, cs.fk_user"; - $sql .= ", c.libelle"; + $sql .= ", c.libelle as type_label"; $sql .= ', p.code as mode_reglement_code, p.libelle as mode_reglement_libelle'; $sql .= " FROM ".MAIN_DB_PREFIX."chargesociales as cs"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_chargesociales as c ON cs.fk_type = c.id"; @@ -158,7 +163,7 @@ class ChargeSociales extends CommonObject $this->lib = $obj->label; $this->label = $obj->label; $this->type = $obj->fk_type; - $this->type_label = $obj->libelle; + $this->type_label = $obj->type_label; $this->fk_account = $obj->fk_account; $this->mode_reglement_id = $obj->fk_mode_reglement; $this->mode_reglement_code = $obj->mode_reglement_code; diff --git a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php index 2f4f772fca0..78cf7e1c22f 100644 --- a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php +++ b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php @@ -46,6 +46,11 @@ class PaymentSocialContribution extends CommonObject */ public $picto = 'payment'; + /** + * @var string Label + */ + public $label; + /** * @var int ID */ @@ -679,7 +684,7 @@ class PaymentSocialContribution extends CommonObject $result = ''; - if (empty($this->ref)) $this->ref = $this->lib; + if (empty($this->ref)) $this->ref = $this->label; $label = img_picto('', $this->picto).' '.$langs->trans("SocialContributionPayment").''; $label .= '
    '.$langs->trans('Ref').': '.$this->ref; diff --git a/htdocs/compta/sociales/list.php b/htdocs/compta/sociales/list.php index a8a71e3e254..ce65dde989b 100644 --- a/htdocs/compta/sociales/list.php +++ b/htdocs/compta/sociales/list.php @@ -149,7 +149,7 @@ if (!empty($conf->projet->enabled)) $projectstatic = new Project($db); llxHeader('', $langs->trans("SocialContributions")); $sql = "SELECT cs.rowid, cs.fk_type as type, cs.fk_user, "; -$sql .= " cs.amount, cs.date_ech, cs.libelle, cs.paye, cs.periode,"; +$sql .= " cs.amount, cs.date_ech, cs.libelle as label, cs.paye, cs.periode,"; if (!empty($conf->projet->enabled)) $sql .= " p.rowid as project_id, p.ref as project_ref, p.title as project_label,"; $sql .= " c.libelle as type_label,"; $sql .= " SUM(pc.amount) as alreadypayed"; @@ -381,7 +381,7 @@ while ($i < min($num, $limit)) $chargesociale_static->id = $obj->rowid; $chargesociale_static->ref = $obj->rowid; - $chargesociale_static->label = $obj->libelle; + $chargesociale_static->label = $obj->label; $chargesociale_static->type_label = $obj->type_label; if (!empty($conf->projet->enabled)) { $projectstatic->id = $obj->project_id; @@ -405,7 +405,7 @@ while ($i < min($num, $limit)) // Label if (!empty($arrayfields['cs.libelle']['checked'])) { - print '
    '; + print ''; if (!$i) $totalarray['nbfield']++; } From 4c9bf1d97ea73127f9382490dd58921798e679e1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 13:21:12 +0100 Subject: [PATCH 165/219] Advice for ajax services --- ChangeLog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f4afde7fb45..3a591059b36 100644 --- a/ChangeLog +++ b/ChangeLog @@ -248,9 +248,9 @@ Following changes may create regressions for some external modules, but were nec * Function showStripePaymentUrl, getStripePaymentUrl, showPaypalPaymentUrl and getPaypalPaymentUrl has been removed. The generic one showOnlinePaymentUrl and getOnlinePaymentUrl are always used. * Context for hook showSocinfoOnPrint has been moved from "showsocinfoonprint" to "main" * Library htdocs/includes/phpoffice/phpexcel as been removed (replaced with htdocs/includes/phpoffice/PhpSpreadsheet) -* Databse transaction in your triggers must be correctly balanced (one close for one open). If not, an error will be returned by the trigger, even if trigger did return error code. +* Database transaction in your triggers must be correctly balanced (one close for one open). If not, an error will be returned by the trigger, even if trigger did return error code. * Dolibarr v13 is still compatible with any PHP version between 5.6.0 and 7.4.*; Unit tests are OK with PHP 8.0 but some warnings or troubles may appears with PHP 8.0. - +* All your Ajax services must contains such a line at begin of file: if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disables token renewal ***** ChangeLog for 12.0.4 compared to 12.0.3 ***** FIX: make formConfirm an addreplace-type hook From f461bccc02c54cc72c23a8df4c6f545aeeb8bd3a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 17:06:42 +0100 Subject: [PATCH 166/219] Fix var not defined --- htdocs/projet/element.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php index aa01ef5d3ef..6802d0e84a9 100644 --- a/htdocs/projet/element.php +++ b/htdocs/projet/element.php @@ -1361,7 +1361,6 @@ if ($conf->use_javascript_ajax) { include_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; $comboenhancement = ajax_combobox('.elementselect'); - $out .= $comboenhancement; print $comboenhancement; } From 3473e0a5d0b246b04246980193aeef10efdb6ac1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 17:10:31 +0100 Subject: [PATCH 167/219] Exclude include if not required --- htdocs/main.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index e0055890152..370e7ac1278 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -386,7 +386,7 @@ if (!defined('NOLOGIN') && !defined('NOIPCHECK') && !empty($dolibarr_main_restri // Loading of additional presentation includes if (!defined('NOREQUIREHTML')) require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; // Need 660ko memory (800ko in 2.2) -require_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; // Need 22ko memory +if (!defined('NOREQUIREAJAX')) require_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; // Need 22ko memory // If install or upgrade process not done or not completely finished, we call the install page. if (!empty($conf->global->MAIN_NOT_INSTALLED) || !empty($conf->global->MAIN_NOT_UPGRADED)) From 18d222f32f97bd8a3fee6311cf40ebdd4952452f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 18:06:02 +0100 Subject: [PATCH 168/219] Fix code comment --- htdocs/core/class/html.form.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 64996e4e6c2..4ae71d46309 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -1448,7 +1448,7 @@ class Form * @param string $htmlid Html id to use instead of htmlname * @param bool $multiple add [] in the name of element and add 'multiple' attribut * @param integer $disableifempty Set tag 'disabled' on select if there is no choice - * @return int <0 if KO, Nb of contact in list if OK + * @return int|string <0 if KO, HTML with select string if OK. */ public function selectcontacts($socid, $selected = '', $htmlname = 'contactid', $showempty = 0, $exclude = '', $limitto = '', $showfunction = 0, $moreclass = '', $options_only = false, $showsoc = 0, $forcecombo = 0, $events = array(), $moreparam = '', $htmlid = '', $multiple = false, $disableifempty = 0) { From d80709a7b9368b31651e5ef66bad49febc9685af Mon Sep 17 00:00:00 2001 From: "Paul Vincent M. Ancajas" Date: Mon, 1 Feb 2021 01:41:19 +0800 Subject: [PATCH 169/219] Fix/FIX: making sure the return agenda is only specific to user --- htdocs/comm/action/class/actioncomm.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 143dbf064a9..9e562173b04 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -1201,8 +1201,8 @@ class ActionComm extends CommonObject } $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON a.fk_soc = sc.fk_soc"; - if (!$user->rights->agenda->allactions->read) { // If bloack Added by PV - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_resources AS ar ON a.id = ar.fk_actioncomm"; + if (!$user->rights->agenda->allactions->read) { + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_resources AS ar ON a.id = ar.fk_actioncomm AND ar.element_type ='user' AND ar.fk_element = ".$user->id; } $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON a.fk_soc = s.rowid"; $sql .= " WHERE 1 = 1"; From 582c37c3782790f6968791ce9bf25c632cecdbbd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 31 Jan 2021 18:52:11 +0100 Subject: [PATCH 170/219] Code comment --- .../interface_20_modWorkflow_WorkflowManager.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php index d8eda6a8baf..dac1368b8f4 100644 --- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php +++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php @@ -271,9 +271,10 @@ class InterfaceWorkflowManager extends DolibarrTriggers } } - //Build array of quantity ordered by product + //Build array of quantity ordered to be shipped if (is_array($order->lines) && count($order->lines) > 0) { foreach ($order->lines as $orderline) { + // Exclude lines not qualified for shipment, similar code is found into calcAndSetStatusDispatch() for vendors if (empty($conf->global->STOCK_SUPPORTS_SERVICES) && $orderline->product_type > 0) continue; $qtyordred[$orderline->fk_product] += $orderline->qty; } From ed258b95da6676d2e5fbfaf7963a48a56533e8bf Mon Sep 17 00:00:00 2001 From: andreubisquerra Date: Sun, 31 Jan 2021 22:33:07 +0100 Subject: [PATCH 171/219] Clean template code to create after edit in receipt printer module Cleaning template code is more clear to users --- htdocs/admin/receiptprinter.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/admin/receiptprinter.php b/htdocs/admin/receiptprinter.php index 3c878c5c664..31f2228d401 100644 --- a/htdocs/admin/receiptprinter.php +++ b/htdocs/admin/receiptprinter.php @@ -443,7 +443,6 @@ if ($mode == 'template' && $user->admin) { print ''; print ''; print ''; From e6deed1601a2aa36fb56b0ef112b2050e47887b2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Feb 2021 15:40:59 +0100 Subject: [PATCH 172/219] Fix collapse --- htdocs/core/class/commonobject.class.php | 12 ++++++------ htdocs/core/class/extrafields.class.php | 15 ++++++++------- htdocs/core/tpl/extrafields_view.tpl.php | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index e4c3acb85ed..47bfab139d1 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -7043,10 +7043,10 @@ abstract class CommonObject $labeltoshow = $langs->trans($label); $helptoshow = $langs->trans($extrafields->attributes[$this->table_element]['help'][$key]); - if ($display_type=='card') { - $out .= ''; + if ($display_type == 'card') { + $out .= ''; $out .= 'id)?'_'.$object->id:''); /*if ($extrafields_collapse_num && $extrafields_collapse_num_old && $extrafields_collapse_num != $extrafields_collapse_num_old) { print ' trextrafields_collapse_new'; }*/ From 2f5eb2aff7aca3642e360532d0c3a6bb7ea7c1ff Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Feb 2021 20:09:50 +0100 Subject: [PATCH 173/219] FIX #16131 --- build/debian/dolibarr.postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/debian/dolibarr.postinst b/build/debian/dolibarr.postinst index 7684d02ff3d..26a08a55826 100644 --- a/build/debian/dolibarr.postinst +++ b/build/debian/dolibarr.postinst @@ -23,7 +23,7 @@ setup_empty_conf() { mkdir -p /etc/dolibarr touch /etc/dolibarr/conf.php chown root:www-data /etc/dolibarr/conf.php - chmod 664 /etc/dolibarr/conf.php + chmod 660 /etc/dolibarr/conf.php } is_new_upstream_version() { From e2a65ad23105e5182dc9e7bc6b5dbf2f2ed4c958 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 1 Feb 2021 20:09:50 +0100 Subject: [PATCH 174/219] FIX #16131 --- build/debian/dolibarr.postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/debian/dolibarr.postinst b/build/debian/dolibarr.postinst index 7684d02ff3d..26a08a55826 100644 --- a/build/debian/dolibarr.postinst +++ b/build/debian/dolibarr.postinst @@ -23,7 +23,7 @@ setup_empty_conf() { mkdir -p /etc/dolibarr touch /etc/dolibarr/conf.php chown root:www-data /etc/dolibarr/conf.php - chmod 664 /etc/dolibarr/conf.php + chmod 660 /etc/dolibarr/conf.php } is_new_upstream_version() { From daf88944f8da802e219d4d2f39d49f482f3636fd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 00:19:41 +0100 Subject: [PATCH 175/219] FIX #16118 Timezone problem on some fields --- htdocs/admin/system/dolibarr.php | 36 +++++++++-------- htdocs/comm/action/card.php | 36 ++++++++--------- htdocs/comm/action/list.php | 14 +++---- htdocs/compta/facture/card-rec.php | 3 +- htdocs/core/class/html.form.class.php | 6 +-- htdocs/core/class/html.formactions.class.php | 2 +- htdocs/core/lib/functions.lib.php | 11 ++--- htdocs/core/lib/security.lib.php | 42 +++++++++++--------- htdocs/core/lib/ticket.lib.php | 10 ++--- htdocs/core/modules/modTicket.class.php | 2 + htdocs/install/upgrade2.php | 1 + htdocs/main.inc.php | 8 ++++ htdocs/ticket/card.php | 6 +-- htdocs/ticket/class/ticket.class.php | 15 +++---- htdocs/ticket/list.php | 8 +++- 15 files changed, 114 insertions(+), 86 deletions(-) diff --git a/htdocs/admin/system/dolibarr.php b/htdocs/admin/system/dolibarr.php index 1100b86f412..2efb2a14a7d 100644 --- a/htdocs/admin/system/dolibarr.php +++ b/htdocs/admin/system/dolibarr.php @@ -202,7 +202,7 @@ if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_S // Localisation print '
    '; print '
    '; diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php index 6d3f4dffa4a..7bee283fd2f 100644 --- a/htdocs/compta/sociales/class/chargesociales.class.php +++ b/htdocs/compta/sociales/class/chargesociales.class.php @@ -133,7 +133,7 @@ class ChargeSociales extends CommonObject { $sql = "SELECT cs.rowid, cs.date_ech"; $sql .= ", cs.libelle as label, cs.fk_type, cs.amount, cs.fk_projet as fk_project, cs.paye, cs.periode, cs.import_key"; - $sql .= ", cs.fk_account, cs.fk_mode_reglement"; + $sql .= ", cs.fk_account, cs.fk_mode_reglement, cs.fk_user"; $sql .= ", c.libelle"; $sql .= ', p.code as mode_reglement_code, p.libelle as mode_reglement_libelle'; $sql .= " FROM ".MAIN_DB_PREFIX."chargesociales as cs"; @@ -164,6 +164,7 @@ class ChargeSociales extends CommonObject $this->mode_reglement = $obj->mode_reglement_libelle; $this->amount = $obj->amount; $this->fk_project = $obj->fk_project; + $this->fk_user = $obj->fk_user; $this->paye = $obj->paye; $this->periode = $this->db->jdate($obj->periode); $this->import_key = $this->import_key; @@ -226,7 +227,7 @@ class ChargeSociales extends CommonObject $this->db->begin(); - $sql = "INSERT INTO ".MAIN_DB_PREFIX."chargesociales (fk_type, fk_account, fk_mode_reglement, libelle, date_ech, periode, amount, fk_projet, entity, fk_user_author, date_creation)"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."chargesociales (fk_type, fk_account, fk_mode_reglement, libelle, date_ech, periode, amount, fk_projet, entity, fk_user_author, fk_user, date_creation)"; $sql .= " VALUES (".$this->type; $sql .= ", ".($this->fk_account > 0 ? $this->fk_account : 'NULL'); $sql .= ", ".($this->mode_reglement_id > 0 ? $this->mode_reglement_id : "NULL"); @@ -237,6 +238,7 @@ class ChargeSociales extends CommonObject $sql .= ", ".($this->fk_project > 0 ? $this->fk_project : 'NULL'); $sql .= ", ".$conf->entity; $sql .= ", ".$user->id; + $sql .= ", ".($this->fk_user > 0 ? $this->db->escape($this->fk_user) : 'NULL'); $sql .= ", '".$this->db->idate($now)."'"; $sql .= ")"; @@ -354,7 +356,8 @@ class ChargeSociales extends CommonObject $sql .= ", date_ech='".$this->db->idate($this->date_ech)."'"; $sql .= ", periode='".$this->db->idate($this->periode)."'"; $sql .= ", amount='".price2num($this->amount, 'MT')."'"; - $sql .= ", fk_projet=".($this->fk_project > 0 ? $this->db->escape($this->fk_project) : "NULL"); + $sql .= ", fk_projet=".($this->fk_project > 0 ? $this->db->escape($this->fk_project) : "NULL"); + $sql .= ", fk_user=".($this->fk_user > 0 ? $this->db->escape($this->fk_user) : "NULL"); $sql .= ", fk_user_modif=".$user->id; $sql .= " WHERE rowid=".$this->id; diff --git a/htdocs/compta/sociales/list.php b/htdocs/compta/sociales/list.php index 8ccd8aa35aa..50ac12e8517 100644 --- a/htdocs/compta/sociales/list.php +++ b/htdocs/compta/sociales/list.php @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2016 Frédéric France * Copyright (C) 2020 Pierre Ardoin + * Copyright (C) 2021 Gauthier VERDOL * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; if (!empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; // Load translation files required by the page -$langs->loadLangs(array('compta', 'banks', 'bills')); +$langs->loadLangs(array('compta', 'banks', 'bills', 'hrm')); $action = GETPOST('action', 'alpha'); $massaction = GETPOST('massaction', 'alpha'); @@ -56,6 +57,7 @@ $search_month_lim = GETPOST('search_month_lim', 'int'); $search_year_lim = GETPOST('search_year_lim', 'int'); $search_project_ref = GETPOST('search_project_ref', 'alpha'); $search_project = GETPOST('search_project', 'alpha'); +$search_users = GETPOST('search_users'); $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST("sortfield", 'alpha'); @@ -99,6 +101,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_month_lim = ''; $search_project_ref = ''; $search_project = ''; + $search_users = ''; $toselect = ''; $search_array_options = array(); } @@ -116,7 +119,7 @@ if (!empty($conf->projet->enabled)) $projectstatic = new Project($db); llxHeader('', $langs->trans("SocialContributions")); -$sql = "SELECT cs.rowid as id, cs.fk_type as type, "; +$sql = "SELECT cs.rowid as id, cs.fk_type as type, cs.fk_user, "; $sql .= " cs.amount, cs.date_ech, cs.libelle as label, cs.paye, cs.periode,"; if (!empty($conf->projet->enabled)) $sql .= " p.rowid as project_id, p.ref as project_ref, p.title as project_label,"; $sql .= " c.libelle as type_label,"; @@ -125,12 +128,14 @@ $sql .= " FROM ".MAIN_DB_PREFIX."c_chargesociales as c,"; $sql .= " ".MAIN_DB_PREFIX."chargesociales as cs"; if (!empty($conf->projet->enabled)) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = cs.fk_projet"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."paiementcharge as pc ON pc.fk_charge = cs.rowid"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON (cs.fk_user = u.rowid)"; $sql .= " WHERE cs.fk_type = c.id"; $sql .= " AND cs.entity = ".$conf->entity; // Search criteria if ($search_ref) $sql .= " AND cs.rowid=".$db->escape($search_ref); if ($search_label) $sql .= natural_search("cs.libelle", $search_label); if (!empty($conf->projet->enabled)) if ($search_project_ref != '') $sql .= natural_search("p.ref", $search_project_ref); +if (!empty($search_users)) $sql .= ' AND cs.fk_user IN('.implode(', ', $search_users).')'; if ($search_amount) $sql .= natural_search("cs.amount", $search_amount, 1); if ($search_status != '' && $search_status >= 0) $sql .= " AND cs.paye = ".$db->escape($search_status); $sql .= dolSqlDateFilter("cs.periode", $search_day_lim, $search_month_lim, $search_year_lim); @@ -177,6 +182,9 @@ if ($resql) if ($search_project_ref >= 0) $param .= "&search_project_ref=".urlencode($search_project_ref); if ($search_amount) $param .= '&search_amount='.urlencode($search_amount); if ($search_typeid) $param .= '&search_typeid='.urlencode($search_typeid); + if ($search_users) { + foreach ($search_users as $id_user) $param .= '&search_users[]='.urlencode($id_user); + } if ($search_status != '' && $search_status != '-1') $param .= '&search_status='.urlencode($search_status); if ($year) $param .= '&year='.urlencode($year); @@ -224,7 +232,10 @@ if ($resql) print ''; - $formsocialcontrib->select_type_socialcontrib($search_typeid, 'search_typeid', 1, 0, 0, 'maxwidth100onsmartphone'); + $formsocialcontrib->select_type_socialcontrib($search_typeid, 'search_typeid', 1, 0, 0, 'maxwidth100onsmartphone'); + // Employee + print ''; + print $form->select_dolusers($search_users, 'search_users', 1, null, 0, '', '', '0', '0', 0, '', 0, '', '', 0, 0, true); print '
    ".$obj->type_label.""; + if(!empty($obj->fk_user)) { + if(!empty($TLoadedUsers[$obj->fk_user])) $ustatic = $TLoadedUsers[$obj->fk_user]; + else { + $ustatic = new User($db); + $ustatic->fetch($obj->fk_user); + $TLoadedUsers[$obj->fk_user] = $ustatic; + } + print $ustatic->getNomUrl(-1); + } + print "'; diff --git a/htdocs/install/mysql/tables/llx_chargesociales.sql b/htdocs/install/mysql/tables/llx_chargesociales.sql index 57434c93d98..720fd45a62d 100644 --- a/htdocs/install/mysql/tables/llx_chargesociales.sql +++ b/htdocs/install/mysql/tables/llx_chargesociales.sql @@ -28,6 +28,7 @@ create table llx_chargesociales tms timestamp, date_creation datetime, -- date de creation date_valid datetime, -- date de validation + fk_user integer DEFAULT NULL, -- utilisateur concerné fk_user_author integer, -- user making creation fk_user_modif integer, -- user making last change fk_user_valid integer, -- user validating From d3647557920af982753d03842b8a36b0dc86b562 Mon Sep 17 00:00:00 2001 From: Gauthier PC portable 024 Date: Thu, 28 Jan 2021 17:20:01 +0100 Subject: [PATCH 122/219] NEW : migration script --- htdocs/install/mysql/migration/13.0.0-14.0.0.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql index 9e1e6a15866..bfdecd334b7 100644 --- a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql +++ b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql @@ -121,3 +121,4 @@ ALTER TABLE llx_societe ADD INDEX idx_societe_warehouse(fk_warehouse); ALTER TABLE llx_socpeople MODIFY poste varchar(255); +ALTER TABLE llx_chargesociales ADD COLUMN fk_user integer DEFAULT NULL; From 5adcc3361bfd885b769b3d2edb842c75b61e9f44 Mon Sep 17 00:00:00 2001 From: Gauthier PC portable 024 Date: Thu, 28 Jan 2021 17:24:47 +0100 Subject: [PATCH 123/219] FIX : credits --- htdocs/install/mysql/tables/llx_chargesociales.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/install/mysql/tables/llx_chargesociales.sql b/htdocs/install/mysql/tables/llx_chargesociales.sql index e6ade132f60..220c85410ce 100644 --- a/htdocs/install/mysql/tables/llx_chargesociales.sql +++ b/htdocs/install/mysql/tables/llx_chargesociales.sql @@ -2,6 +2,7 @@ -- Copyright (C) 2001-2002 Rodolphe Quiedeville -- Copyright (C) 2005-2009 Regis Houssin -- Copyright (C) 2017 Alexandre Spangaro +-- Copyright (C) 2021 Gauthier VERDOL -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by From b4d0668ceafe2ea19660cf7f92c28f29f4fd3e1e Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Thu, 28 Jan 2021 16:27:55 +0000 Subject: [PATCH 124/219] Fixing style errors. --- htdocs/compta/sociales/card.php | 6 +++--- htdocs/compta/sociales/list.php | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/compta/sociales/card.php b/htdocs/compta/sociales/card.php index 1775aa3efb9..d27155e572f 100644 --- a/htdocs/compta/sociales/card.php +++ b/htdocs/compta/sociales/card.php @@ -99,7 +99,7 @@ if ($action == 'classin' && $user->rights->tax->charges->creer) $object->setProject(GETPOST('projectid')); } -if($action == 'setfk_user' && $user->rights->tax->charges->creer) { +if ($action == 'setfk_user' && $user->rights->tax->charges->creer) { $object->fetch($id); $object->fk_user = $fk_user; $object->update($user); @@ -463,10 +463,10 @@ if ($id > 0) $morehtmlref .= $form->editfieldval("Label", 'lib', $object->label, $object, $user->rights->tax->charges->creer, 'string', '', null, null, '', 1); // Employee - if($action != 'editfk_user') { + if ($action != 'editfk_user') { $morehtmlref .= '
    ' . $form->editfieldkey("Employee", 'fk_user', $object->label, $object, $user->rights->tax->charges->creer, 'string', '', 0, 1); - if(!empty($object->fk_user)) { + if (!empty($object->fk_user)) { $userstatic = new User($db); $userstatic->fetch($object->fk_user); $morehtmlref .= $userstatic->getNomUrl(1); diff --git a/htdocs/compta/sociales/list.php b/htdocs/compta/sociales/list.php index 37383b633df..a8a71e3e254 100644 --- a/htdocs/compta/sociales/list.php +++ b/htdocs/compta/sociales/list.php @@ -418,8 +418,8 @@ while ($i < min($num, $limit)) if (!empty($arrayfields['cs.fk_user']['checked'])) { // Employee print "
    "; - if(!empty($obj->fk_user)) { - if(!empty($TLoadedUsers[$obj->fk_user])) $ustatic = $TLoadedUsers[$obj->fk_user]; + if (!empty($obj->fk_user)) { + if (!empty($TLoadedUsers[$obj->fk_user])) $ustatic = $TLoadedUsers[$obj->fk_user]; else { $ustatic = new User($db); $ustatic->fetch($obj->fk_user); From 4c3dc6be1bdfc9f2c4b27d518f0e82a3179a031b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 19:37:37 +0100 Subject: [PATCH 125/219] Fix can't use the link button twice. --- htdocs/admin/mails.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index 08e7c2b5446..0d6a36e07b7 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -768,17 +768,17 @@ if ($action == 'edit') { if (function_exists('fsockopen') && $port && $server) { - print ''.$langs->trans("DoTestServerAvailability").''; + print ''.$langs->trans("DoTestServerAvailability").''; } } else { print ''.$langs->trans("DoTestServerAvailability").''; } - print ''.$langs->trans("DoTestSend").''; + print ''.$langs->trans("DoTestSend").''; if (!empty($conf->fckeditor->enabled)) { - print ''.$langs->trans("DoTestSendHTML").''; + print ''.$langs->trans("DoTestSendHTML").''; } } From e5b4c76a26f49c555272e6316613701d44dbdb6b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 19:38:47 +0100 Subject: [PATCH 126/219] Fix combo to select action status --- htdocs/comm/action/list.php | 2 +- htdocs/core/class/html.formactions.class.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index 16c2a315cdd..a2e020fcb24 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -366,7 +366,7 @@ if ($socid > 0) $sql .= " AND s.rowid = ".$socid; if ($filtert > 0 || $usergroup > 0) $sql .= " AND ar.fk_actioncomm = a.id AND ar.element_type='user'"; if ($type) $sql .= " AND c.id = ".(int) $type; if ($search_status == '0') { $sql .= " AND a.percent = 0"; } -if ($search_status == '-1') { $sql .= " AND a.percent = -1"; } // Not applicable +if ($search_status == 'na') { $sql .= " AND a.percent = -1"; } // Not applicable if ($search_status == '50') { $sql .= " AND (a.percent > 0 AND a.percent < 100)"; } // Running already started if ($search_status == '100') { $sql .= " AND a.percent = 100"; } if ($search_status == 'done') { $sql .= " AND (a.percent = 100)"; } diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php index cbd17b30568..34fd72e28b9 100644 --- a/htdocs/core/class/html.formactions.class.php +++ b/htdocs/core/class/html.formactions.class.php @@ -70,7 +70,7 @@ class FormActions global $langs, $conf; $listofstatus = array( - '-1' => $langs->trans("ActionNotApplicable"), + 'na' => $langs->trans("ActionNotApplicable"), '0' => $langs->trans("ActionsToDoShort"), '50' => $langs->trans("ActionRunningShort"), '100' => $langs->trans("ActionDoneShort") From 1764d3528bb43bb63c54d0899ea1265b3f60cc1b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 19:45:52 +0100 Subject: [PATCH 127/219] Fix test email --- htdocs/admin/mails.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index 0d6a36e07b7..b0b18de20dc 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -768,17 +768,17 @@ if ($action == 'edit') { if (function_exists('fsockopen') && $port && $server) { - print ''.$langs->trans("DoTestServerAvailability").''; + print ''.$langs->trans("DoTestServerAvailability").''; } } else { print ''.$langs->trans("DoTestServerAvailability").''; } - print ''.$langs->trans("DoTestSend").''; + print ''.$langs->trans("DoTestSend").''; if (!empty($conf->fckeditor->enabled)) { - print ''.$langs->trans("DoTestSendHTML").''; + print ''.$langs->trans("DoTestSendHTML").''; } } @@ -844,6 +844,7 @@ if ($action == 'edit') // Run the test to connect if ($action == 'testconnect') { + print '
    '; print load_fiche_titre($langs->trans("DoTestServerAvailability")); include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; @@ -858,6 +859,7 @@ if ($action == 'edit') } setEventMessages($errormsg, null, 'errors'); + print $errormsg; } print '
    '; } From 099fcd7e4efe2b869e6eece3c6901fe1daeefef9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 19:45:52 +0100 Subject: [PATCH 128/219] Fix test email Conflicts: htdocs/admin/mails.php --- htdocs/admin/mails.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index 00d954883f9..4b471263542 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -719,7 +719,7 @@ else { if (function_exists('fsockopen') && $port && $server) { - print ''.$langs->trans("DoTestServerAvailability").''; + print ''.$langs->trans("DoTestServerAvailability").''; } } else @@ -789,6 +789,7 @@ else // Run the test to connect if ($action == 'testconnect') { + print '
    '; print load_fiche_titre($langs->trans("DoTestServerAvailability")); include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; @@ -804,6 +805,7 @@ else } setEventMessages($errormsg, null, 'errors'); + print $errormsg; } print '
    '; } From 1a2748092714cb9be79298972c0fdef57b89c23c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 22:01:39 +0100 Subject: [PATCH 129/219] Test to fix a regression --- htdocs/stripe/class/stripe.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 97d45a49a1f..0912562c460 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -434,6 +434,7 @@ class Stripe extends CommonObject { unset($dataforintent['setup_future_usage']); $dataforintent["setup_future_usage"] = "off_session"; + $dataforintent["off_session"] = true; // Restore value to test if it solve a regression } if (!empty($conf->global->STRIPE_GIROPAY)) unset($dataforintent['setup_future_usage']); if (!is_null($payment_method)) From 1ea1dd9c330a70fb935674e3a7e4ca68fabe3da2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 22:06:13 +0100 Subject: [PATCH 130/219] Add doc --- htdocs/stripe/class/stripe.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 0912562c460..b3a0b7b1fad 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -397,6 +397,7 @@ class Stripe extends CommonObject if (empty($paymentintent)) { + // Try to create intent. See https://stripe.com/docs/api/payment_intents/create $ipaddress = getUserRemoteIP(); $metadata = array('dol_version'=>DOL_VERSION, 'dol_entity'=>$conf->entity, 'ipaddress'=>$ipaddress); if (is_object($object)) From 3571b868fe2a45cbdf16014ea25053350ec4254c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 22:10:38 +0100 Subject: [PATCH 131/219] Add log --- htdocs/stripe/class/stripe.class.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index b3a0b7b1fad..f280995de95 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -466,6 +466,9 @@ class Stripe extends CommonObject if (!empty($key)) { // If the Stripe connect account not set, we use common API usage $arrayofoptions["stripe_account"] = $key; } + + dol_syslog("dataforintent to create paymentintent = ".var_export($dataforintent, true)); + $paymentintent = \Stripe\PaymentIntent::create($dataforintent, $arrayofoptions); // Store the payment intent From f3af16f2080389143d5fb023b466877f50e46a11 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 22:30:13 +0100 Subject: [PATCH 132/219] Typo --- htdocs/stripe/admin/stripe.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index efa8472ce78..6a52b57268b 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -538,7 +538,7 @@ $token = ''; include DOL_DOCUMENT_ROOT.'/core/tpl/onlinepaymentlinks.tpl.php'; -print info_admin($langs->trans("ExampleOfTestCreditCard", '4242424242424242 (no 3DSecure) or 4000000000003063 (3DSecure required) or 4000002760003184 (3DSecure2 required on all transaction) or 4000003800000446 (3DSecure2 required the off-seesion allowed)', '4000000000000101', '4000000000000069', '4000000000000341')); +print info_admin($langs->trans("ExampleOfTestCreditCard", '4242424242424242 (no 3DSecure) or 4000000000003063 (3DSecure required) or 4000002760003184 (3DSecure2 required on all transaction) or 4000003800000446 (3DSecure2 required, the off-session allowed)', '4000000000000101', '4000000000000069', '4000000000000341')); if (!empty($conf->use_javascript_ajax)) { From 616a66702c58af49cf8d93533b33703103721bc9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 22:32:00 +0100 Subject: [PATCH 133/219] Try a fix to solve offline payment problems --- htdocs/stripe/class/stripe.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index f280995de95..793e370f634 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -434,10 +434,11 @@ class Stripe extends CommonObject if ($off_session) { unset($dataforintent['setup_future_usage']); - $dataforintent["setup_future_usage"] = "off_session"; + //$dataforintent["setup_future_usage"] = "off_session"; $dataforintent["off_session"] = true; // Restore value to test if it solve a regression } if (!empty($conf->global->STRIPE_GIROPAY)) unset($dataforintent['setup_future_usage']); + if (!is_null($payment_method)) { $dataforintent["payment_method"] = $payment_method; From 848b4db509c33ef7e0a43c8b8aca91e9726bba6a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 23:13:43 +0100 Subject: [PATCH 134/219] Fix regression: It was not more possible to create payment offline --- htdocs/stripe/class/stripe.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 4e534276c47..2198493d0fd 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -430,7 +430,8 @@ class Stripe extends CommonObject if ($off_session) { unset($dataforintent['setup_future_usage']); - $dataforintent["setup_future_usage"] = "off_session"; + //$dataforintent["setup_future_usage"] = "off_session"; + $dataforintent["off_session"] = true; } if (!is_null($payment_method)) { From 62622a206579ccdde1cfaf8d27d0684a4e12f63d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 23:16:24 +0100 Subject: [PATCH 135/219] Fix: It was no more possible to create paymentintent for offline payment --- htdocs/stripe/class/stripe.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index a691b7bff40..9f44645d3a0 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -431,7 +431,8 @@ class Stripe extends CommonObject if ($off_session) { unset($dataforintent['setup_future_usage']); - $dataforintent["setup_future_usage"] = "off_session"; + //$dataforintent["setup_future_usage"] = "off_session"; + $dataforintent["off_session"] = true; } if (!is_null($payment_method)) { From 6ed3a1c227a5c60cfb4e4a17fbb6a022a9850663 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 23:18:10 +0100 Subject: [PATCH 136/219] Fix idempotencey make stripe payment fails --- htdocs/stripe/class/stripe.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 2198493d0fd..e1ee0138287 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -321,7 +321,7 @@ class Stripe extends CommonObject * @param string $noidempotency_key Do not use the idempotency_key when creating the PaymentIntent * @return \Stripe\PaymentIntent|null Stripe PaymentIntent or null if not found and failed to create */ - public function getPaymentIntent($amount, $currency_code, $tag, $description = '', $object = null, $customer = null, $key = null, $status = 0, $usethirdpartyemailforreceiptemail = 0, $mode = 'automatic', $confirmnow = false, $payment_method = null, $off_session = 0, $noidempotency_key = 0) + public function getPaymentIntent($amount, $currency_code, $tag, $description = '', $object = null, $customer = null, $key = null, $status = 0, $usethirdpartyemailforreceiptemail = 0, $mode = 'automatic', $confirmnow = false, $payment_method = null, $off_session = 0, $noidempotency_key = 1) { global $conf, $user; From 6544ba010e5ce7781b13b30c5c1e8f9ce494d9b0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 23:27:01 +0100 Subject: [PATCH 137/219] Fix responsive --- htdocs/societe/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index d3991d06c0c..714f376eb2d 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -1287,7 +1287,7 @@ while ($i < min($num, $limit)) if (!empty($arrayfields['s.fk_prospectlevel']['checked'])) { // Prospect level - print '
    '; + print ''; print $companystatic->getLibProspLevel(); print "'; + print ''; print $companystatic->getLibProspLevel(); print "'; + print ''; print $companystatic->getLibProspLevel(); print "'; + print ''; if ($companystatic->fk_parent > 0) { $companyparent->fetch($companystatic->fk_parent); From 086b23f66c497e0177b658cde41ab12ed8282946 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 28 Jan 2021 23:28:33 +0100 Subject: [PATCH 140/219] Fix responsive --- htdocs/societe/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index 402e85d9b39..5b5e9685628 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -1259,7 +1259,7 @@ while ($i < min($num, $limit)) if (!empty($arrayfields['s.fk_prospectlevel']['checked'])) { // Prospect level - print ''; + print ''; print $companystatic->getLibProspLevel(); print "'; + print ''; if ($companystatic->fk_parent > 0) { $companyparent->fetch($companystatic->fk_parent); From 413fc95f9a3daec0924c5fcd52a8756fd6986cee Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Thu, 28 Jan 2021 23:40:15 +0100 Subject: [PATCH 141/219] FIX: Accountancy - label_operation is used instead of label_compte --- htdocs/accountancy/class/bookkeeping.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index a700ebecb1b..7e7cd787a56 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -365,7 +365,7 @@ class BookKeeping extends CommonObject $sql .= ", ".(!empty($this->subledger_account) ? ("'".$this->db->escape($this->subledger_account)."'") : "NULL"); $sql .= ", ".(!empty($this->subledger_label) ? ("'".$this->db->escape($this->subledger_label)."'") : "NULL"); $sql .= ", '".$this->db->escape($this->numero_compte)."'"; - $sql .= ", ".(!empty($this->label_operation) ? ("'".$this->db->escape($this->label_operation)."'") : "NULL"); + $sql .= ", ".(!empty($this->label_compte) ? ("'".$this->db->escape($this->label_compte)."'") : "NULL"); $sql .= ", '".$this->db->escape($this->label_operation)."'"; $sql .= ", ".$this->debit; $sql .= ", ".$this->credit; From 2915bf89d9c14c0121ca95eaf57a706a2a03c0d7 Mon Sep 17 00:00:00 2001 From: Gauthier PC portable 024 Date: Fri, 29 Jan 2021 09:32:00 +0100 Subject: [PATCH 142/219] FIX : stickler feedback on br tag --- htdocs/compta/sociales/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/sociales/card.php b/htdocs/compta/sociales/card.php index 1775aa3efb9..a900fe73d67 100644 --- a/htdocs/compta/sociales/card.php +++ b/htdocs/compta/sociales/card.php @@ -464,7 +464,7 @@ if ($id > 0) // Employee if($action != 'editfk_user') { - $morehtmlref .= '
    ' . $form->editfieldkey("Employee", 'fk_user', $object->label, $object, $user->rights->tax->charges->creer, 'string', '', 0, 1); + $morehtmlref .= '
    ' . $form->editfieldkey("Employee", 'fk_user', $object->label, $object, $user->rights->tax->charges->creer, 'string', '', 0, 1); if(!empty($object->fk_user)) { $userstatic = new User($db); From fcf72d5e5086d3ff42c33680488564f054c0db51 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Fri, 29 Jan 2021 10:35:48 +0100 Subject: [PATCH 143/219] Update pdf_azur.modules.php --- htdocs/core/modules/propale/doc/pdf_azur.modules.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 3b09d639bf0..1be02c55180 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -243,7 +243,7 @@ class pdf_azur extends ModelePDFPropales $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { - $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; // default + $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product'); // default $pdir[1] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; // alternative } @@ -257,7 +257,7 @@ class pdf_azur extends ModelePDFPropales } else { $dir = $conf->product->dir_output.'/'.$midir; //Check repertory of the current product } - +$dirphoto=$pdir[1]; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo @@ -418,6 +418,7 @@ class pdf_azur extends ModelePDFPropales // Affiche notes $notetoshow = empty($object->note_public) ? '' : $object->note_public; + $notetoshow .= '
    photo'.$obj['photo'].'-'.$realpath.'-'.$dir.'-'.$filename.'-'.$dirphoto; if (!empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE)) { // Get first sale rep From 400243a1579b409a14701aad222aea086e9a3d69 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Fri, 29 Jan 2021 09:41:05 +0000 Subject: [PATCH 144/219] Fixing style errors. --- htdocs/core/modules/propale/doc/pdf_azur.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 1be02c55180..1271be00dbe 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -257,7 +257,7 @@ class pdf_azur extends ModelePDFPropales } else { $dir = $conf->product->dir_output.'/'.$midir; //Check repertory of the current product } -$dirphoto=$pdir[1]; + $dirphoto=$pdir[1]; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo From 720a11877d296fb3f81ed076bbc57ed630f36b2f Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Fri, 29 Jan 2021 10:48:58 +0100 Subject: [PATCH 145/219] Update pdf_azur.modules.php --- htdocs/core/modules/propale/doc/pdf_azur.modules.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 1271be00dbe..be3f53847bf 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -257,7 +257,6 @@ class pdf_azur extends ModelePDFPropales } else { $dir = $conf->product->dir_output.'/'.$midir; //Check repertory of the current product } - $dirphoto=$pdir[1]; foreach ($objphoto->liste_photos($dir, 1) as $key => $obj) { if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES)) // If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo @@ -418,7 +417,6 @@ class pdf_azur extends ModelePDFPropales // Affiche notes $notetoshow = empty($object->note_public) ? '' : $object->note_public; - $notetoshow .= '
    photo'.$obj['photo'].'-'.$realpath.'-'.$dir.'-'.$filename.'-'.$dirphoto; if (!empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE)) { // Get first sale rep From 77b0075d71a32f44fcc06426cf4f63478e7c6c31 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Fri, 29 Jan 2021 10:50:11 +0100 Subject: [PATCH 146/219] Update pdf_azur.modules.php --- htdocs/core/modules/propale/doc/pdf_azur.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 3b09d639bf0..a17f8c9a8ac 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -243,7 +243,7 @@ class pdf_azur extends ModelePDFPropales $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { - $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; // default + $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product'); // default $pdir[1] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; // alternative } From 215e36bb2ef791d148e1e014c87f9021e983314f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 29 Jan 2021 11:19:33 +0100 Subject: [PATCH 147/219] Fix typo --- htdocs/langs/en_US/errors.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 5634905da6e..a7a7e12db14 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -59,6 +59,7 @@ ErrorDirNotFound=Directory %s not found (Bad path, wrong permissions or a ErrorFunctionNotAvailableInPHP=Function %s is required for this feature but is not available in this version/setup of PHP. ErrorDirAlreadyExists=A directory with this name already exists. ErrorFileAlreadyExists=A file with this name already exists. +ErrorDestinationAlreadyExists=Another file with the name %s already exists. ErrorPartialFile=File not received completely by server. ErrorNoTmpDir=Temporary directy %s does not exists. ErrorUploadBlockedByAddon=Upload blocked by a PHP/Apache plugin. From e48fc6c3d05dcd9746373ea102be5aab87251ea2 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Fri, 29 Jan 2021 13:51:06 +0100 Subject: [PATCH 148/219] Update pdf_cyan.modules.php --- htdocs/core/modules/propale/doc/pdf_cyan.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index 80433eb2201..760e678e839 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -242,7 +242,7 @@ class pdf_cyan extends ModelePDFPropales $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { - $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; // default + $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product'); // default $pdir[1] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; // alternative } From 6b62d039930cc5727ade964461dab876de93f191 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Fri, 29 Jan 2021 13:56:04 +0100 Subject: [PATCH 149/219] Update pdf_cyan.modules.php --- htdocs/core/modules/propale/doc/pdf_cyan.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index 80433eb2201..760e678e839 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -242,7 +242,7 @@ class pdf_cyan extends ModelePDFPropales $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { - $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; // default + $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product'); // default $pdir[1] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; // alternative } From cfca26a727e1aac64e73cca026f31dc4385cd079 Mon Sep 17 00:00:00 2001 From: atm-lena Date: Fri, 29 Jan 2021 16:20:43 +0100 Subject: [PATCH 150/219] Fix fix --- htdocs/install/mysql/migration/12.0.0-13.0.0.sql | 4 ---- htdocs/install/mysql/tables/llx_mrp_production.sql | 1 - htdocs/mrp/class/mo.class.php | 2 +- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql index f1ea3d237a3..31cdf9c8d62 100644 --- a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql +++ b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql @@ -554,7 +554,3 @@ INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ALTER TABLE llx_product_fournisseur_price ADD COLUMN packaging varchar(64); ALTER TABLE llx_projet ADD COLUMN fk_opp_status_end integer DEFAULT NULL; - -ALTER TABLE llx_mrp_production ADD COLUMN fk_soc integer NOT NULL; - - diff --git a/htdocs/install/mysql/tables/llx_mrp_production.sql b/htdocs/install/mysql/tables/llx_mrp_production.sql index d2b44427f58..36129a54aea 100644 --- a/htdocs/install/mysql/tables/llx_mrp_production.sql +++ b/htdocs/install/mysql/tables/llx_mrp_production.sql @@ -17,7 +17,6 @@ CREATE TABLE llx_mrp_production( rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, fk_mo integer NOT NULL, - fk_soc integer NOT NULL, position integer NOT NULL DEFAULT 0, fk_product integer NOT NULL, fk_warehouse integer, diff --git a/htdocs/mrp/class/mo.class.php b/htdocs/mrp/class/mo.class.php index 274782a14ea..2de6aecc4bf 100644 --- a/htdocs/mrp/class/mo.class.php +++ b/htdocs/mrp/class/mo.class.php @@ -1352,7 +1352,7 @@ class Mo extends CommonObject */ public static function replaceThirdparty($db, $origin_id, $dest_id) { - $tables = array('mrp_production'); + $tables = array('mrp_mo'); return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } From 2436e7c5b24dc9332e6208056ef3efa4ac0ab88f Mon Sep 17 00:00:00 2001 From: Francis Appels Date: Fri, 29 Jan 2021 19:39:50 +0100 Subject: [PATCH 151/219] FIX: 13 create MO, Column 'tms' cannot be null --- htdocs/mrp/class/mo.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/mrp/class/mo.class.php b/htdocs/mrp/class/mo.class.php index 274782a14ea..17d4217bbcd 100644 --- a/htdocs/mrp/class/mo.class.php +++ b/htdocs/mrp/class/mo.class.php @@ -106,7 +106,7 @@ class Mo extends CommonObject 'note_public' => array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>61, 'notnull'=>-1,), 'note_private' => array('type'=>'html', 'label'=>'NotePrivate', 'enabled'=>1, 'visible'=>0, 'position'=>62, 'notnull'=>-1,), 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>500, 'notnull'=>1,), - 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'position'=>501, 'notnull'=>-1,), + 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'position'=>501, 'notnull'=>1,), 'date_valid' => array('type'=>'datetime', 'label'=>'DateValidation', 'enabled'=>1, 'visible'=>-2, 'position'=>502,), 'fk_user_creat' => array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'position'=>510, 'notnull'=>1, 'foreignkey'=>'user.rowid',), 'fk_user_modif' => array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'position'=>511, 'notnull'=>-1,), From ccf283293894a6277a2f51c835f25f43df6c2c75 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 30 Jan 2021 12:45:43 +0100 Subject: [PATCH 152/219] Clean code --- htdocs/admin/tools/export.php | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/htdocs/admin/tools/export.php b/htdocs/admin/tools/export.php index 0c3679c62fa..b2fd7f5c2ee 100644 --- a/htdocs/admin/tools/export.php +++ b/htdocs/admin/tools/export.php @@ -80,7 +80,7 @@ $_SESSION["commandbackuptorun"] = ''; $_SESSION["commandbackupresult"] = ''; // Increase limit of time. Works only if we are not in safe mode -$ExecTimeLimit = 600; +$ExecTimeLimit = 600; // Set it to 0 to not use a forced time limit if (!empty($ExecTimeLimit)) { $err = error_reporting(); @@ -95,8 +95,6 @@ if (!empty($MemoryLimit)) @ini_set('memory_limit', $MemoryLimit); } -$form = new Form($db); -$formfile = new FormFile($db); //$help_url='EN:Backups|FR:Sauvegardes|ES:Copias_de_seguridad'; //llxHeader('','',$help_url); @@ -222,16 +220,7 @@ if ($errormsg) } -/* -$filearray=dol_dir_list($conf->admin->dir_output.'/backup','files',0,'','',$sortfield,(strtolower($sortorder)=='asc'?SORT_ASC:SORT_DESC),1); -$result=$formfile->list_of_documents($filearray,null,'systemtools','',1,'backup/',1,0,($langs->trans("NoBackupFileAvailable").'
    '.$langs->trans("ToBuildBackupFileClickHere",DOL_URL_ROOT.'/admin/tools/dolibarr_export.php')),0,$langs->trans("PreviousDumpFiles")); - -print '
    '; -*/ - // Redirect to backup page header("Location: dolibarr_export.php".(GETPOST('page_y', 'int') ? '?page_y='.GETPOST('page_y', 'int') : '')); -$time_end = time(); - $db->close(); From 0f19a11ebe91708492666658e9af83427ed601ca Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Sat, 30 Jan 2021 12:54:10 +0100 Subject: [PATCH 153/219] missing declaration --- htdocs/core/modules/commande/doc/pdf_einstein.modules.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 0b99583e08e..f02f04728cd 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -47,6 +47,11 @@ class pdf_einstein extends ModelePDFCommandes */ public $db; + /** + * @var int The environment ID when using a multicompany module + */ + public $entity; + /** * @var string model name */ From 1063b97c221bf02387edd8999a784d867c1b65dc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 30 Jan 2021 12:55:38 +0100 Subject: [PATCH 154/219] Close #16099 Close #16098 --- htdocs/core/modules/propale/doc/pdf_cyan.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index 80433eb2201..760e678e839 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -242,7 +242,7 @@ class pdf_cyan extends ModelePDFPropales $pdir[0] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; $pdir[1] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; } else { - $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product').dol_sanitizeFileName($objphoto->ref).'/'; // default + $pdir[0] = get_exdir(0, 0, 0, 0, $objphoto, 'product'); // default $pdir[1] = get_exdir($objphoto->id, 2, 0, 0, $objphoto, 'product').$objphoto->id."/photos/"; // alternative } From e584792382c280c168347d107852c59d9faf324b Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Sat, 30 Jan 2021 12:57:06 +0100 Subject: [PATCH 155/219] missing declaration --- htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php index d1492dbc5eb..9232797a008 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -47,6 +47,11 @@ class pdf_eratosthene extends ModelePDFCommandes */ public $db; + /** + * @var int The environment ID when using a multicompany module + */ + public $entity; + /** * @var string model name */ From ca7738c9b392128b872adb55f73536139e0c952e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 30 Jan 2021 13:57:42 +0100 Subject: [PATCH 156/219] FIX #16107 --- htdocs/api/class/api_documents.class.php | 2 +- htdocs/core/lib/functions.lib.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/api/class/api_documents.class.php b/htdocs/api/class/api_documents.class.php index 2d6a598398c..ebeeac5c5b9 100644 --- a/htdocs/api/class/api_documents.class.php +++ b/htdocs/api/class/api_documents.class.php @@ -425,7 +425,7 @@ class Documents extends DolibarrApi throw new RestException(500, 'Error while fetching object: '.$object->error); } - $upload_dir = $conf->product->multidir_output[$object->entity].'/'.get_exdir(0, 0, 0, 0, $object, 'product').dol_sanitizeFileName($object->ref); + $upload_dir = $conf->product->multidir_output[$object->entity].'/'.get_exdir(0, 0, 0, 1, $object, 'product'); } elseif ($modulepart == 'agenda' || $modulepart == 'action' || $modulepart == 'event') { diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index a509d3bd7a6..694612bde07 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -5652,7 +5652,7 @@ function get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart = ' $arrayforoldpath = array('cheque', 'category', 'holiday', 'supplier_invoice', 'invoice_supplier', 'mailing', 'supplier_payment'); if (!empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) $arrayforoldpath[] = 'product'; if (!empty($level) && in_array($modulepart, $arrayforoldpath)) { - // This part should be removed once all code is using "get_exdir" to forge path, with all parameters provided. + // This part should be removed once all code is using "get_exdir" to forge path, with parameter $object and $modulepart provided. if (empty($alpha)) $num = preg_replace('/([^0-9])/i', '', $num); else $num = preg_replace('/^.*\-/i', '', $num); $num = substr("000".$num, -$level); From 58dec39f94e2edef22855e2c19ccba19a65de196 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 30 Jan 2021 17:07:13 +0100 Subject: [PATCH 157/219] Fix start and end month for turnover report. --- htdocs/compta/stats/index.php | 138 ++++++++++++++++++---------------- 1 file changed, 75 insertions(+), 63 deletions(-) diff --git a/htdocs/compta/stats/index.php b/htdocs/compta/stats/index.php index 0be6659f7b4..03c128e841f 100644 --- a/htdocs/compta/stats/index.php +++ b/htdocs/compta/stats/index.php @@ -44,12 +44,12 @@ $nbofyear = 4; $year = GETPOST('year', 'int'); if (empty($year)) { - $year_current = strftime("%Y", dol_now()); - $month_current = strftime("%m", dol_now()); + $year_current = dol_print_date(dol_now(), "%Y"); + $month_current = dol_print_date(dol_now(), "%m"); $year_start = $year_current - ($nbofyear - 1); } else { $year_current = $year; - $month_current = strftime("%m", dol_now()); + $month_current = dol_print_date(dol_now(), "%m"); $year_start = $year - ($nbofyear - 1); } $date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear); @@ -58,12 +58,12 @@ $date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear); // We define date_start and date_end if (empty($date_start) || empty($date_end)) // We define date_start and date_end { - $q = GETPOST("q") ?GETPOST("q") : 0; + $q = GETPOST("q") ? GETPOST("q") : 0; if ($q == 0) { // We define date_start and date_end $year_end = $year_start + ($nbofyear - 1); - $month_start = GETPOST("month") ?GETPOST("month") : ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1); + $month_start = GETPOSTISSET("month") ? GETPOST("month", 'int') : ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1); if (!GETPOST('month')) { if (!GETPOST("year") && $month_start > $month_current) @@ -86,8 +86,10 @@ $userid = GETPOST('userid', 'int'); $socid = GETPOST('socid', 'int'); $tmps = dol_getdate($date_start); +$mothn_start = $tmps['mon']; $year_start = $tmps['year']; $tmpe = dol_getdate($date_end); +$month_end = $tmpe['mon']; $year_end = $tmpe['year']; $nbofyear = ($year_end - $year_start) + 1; @@ -306,7 +308,7 @@ $now = dol_now(); $casenow = dol_print_date($now, "%Y-%m"); // Loop on each month -$nb_mois_decalage = $conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START - 1) : 0; +$nb_mois_decalage = GETPOSTISSET('date_startmonth') ? (GETPOST('date_startmonth', 'int') - 1) : (empty($conf->global->SOCIETE_FISCAL_MONTH_START) ? 0 : ($conf->global->SOCIETE_FISCAL_MONTH_START - 1)); for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) { $mois_modulo = $mois; // ajout @@ -338,68 +340,75 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) if ($annee >= $year_start) // We ignore $annee < $year_start, we loop on it to be able to make delta, nothing is output. { if ($modecompta == 'CREANCES-DETTES') { - // Valeur CA du mois w/o VAT + // Value turnover of month w/o VAT print '
    '; - if ($cum_ht[$case]) - { - $now_show_delta = 1; // On a trouve le premier mois de la premiere annee generant du chiffre. - print ''.price($cum_ht[$case], 1).''; - } else { - if ($minyearmonth < $case && $case <= max($maxyearmonth, $nowyearmonth)) { print '0'; } else { print ' '; } + if ($annee < $year_end || ($annee == $year_end && $mois <= $month_end)) { + if ($cum_ht[$case]) { + $now_show_delta = 1; // On a trouve le premier mois de la premiere annee generant du chiffre. + print ''.price($cum_ht[$case], 1).''; + } else { + if ($minyearmonth < $case && $case <= max($maxyearmonth, $nowyearmonth)) { print '0'; } else { print ' '; } + } } print "'; - if ($cum[$case]) - { - $now_show_delta = 1; // On a trouve le premier mois de la premiere annee generant du chiffre. - if ($modecompta != 'BOOKKEEPING') print ''; - print price($cum[$case], 1); - if ($modecompta != 'BOOKKEEPING') print ''; - } else { - if ($minyearmonth < $case && $case <= max($maxyearmonth, $nowyearmonth)) { print '0'; } else { print ' '; } + if ($annee < $year_end || ($annee == $year_end && $mois <= $month_end)) { + if ($cum[$case]) { + $now_show_delta = 1; // On a trouve le premier mois de la premiere annee generant du chiffre. + if ($modecompta != 'BOOKKEEPING') print ''; + print price($cum[$case], 1); + if ($modecompta != 'BOOKKEEPING') print ''; + } else { + if ($minyearmonth < $case && $case <= max($maxyearmonth, $nowyearmonth)) { print '0'; } else { print ' '; } + } } print "'; + //var_dump($annee.' '.$year_end.' '.$mois.' '.$month_end); + if ($annee < $year_end || ($annee == $year_end && $mois <= $month_end)) { + if ($annee_decalage > $minyear && $case <= $casenow) { - $percent = (round(($cum[$case] - $cum[$caseprev]) / $cum[$caseprev], 4) * 100); - //print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X"; - print ''.($percent >= 0 ? "+$percent" : "$percent").'%+Inf%-100%+Inf%-+0%-'; - if ($minyearmonth <= $case && $case <= $maxyearmonth) { print '-'; } else { print ' '; } - print ' 
    '.$langs->trans("Total").''.($total_ht[$annee] ?price($total_ht[$annee]) : "0")."'; + print ($total_ht[$annee] ?price($total_ht[$annee]) : "0"); + print " '.($total[$annee] ?price($total[$annee]) : "0")."'; + print ($total[$annee] ?price($total[$annee]) : "0"); + print " '.($percent >= 0 ? "+$percent" : "$percent").'%'; + print ($percent >= 0 ? "+$percent" : "$percent").'%'; + print '
    '.$langs->trans("PriceQtyMin").''; print ' '; - print $form->selectPriceBaseType((GETPOST('price_base_type') ? GETPOST('price_base_type') : 'HT'), "price_base_type"); // We keep 'HT' here, price_base_type is not yet supported for supplier prices + print $form->selectPriceBaseType((GETPOSTISSET('price_base_type') ? GETPOST('price_base_type') : 'HT'), "price_base_type"); // We keep 'HT' here, price_base_type is not yet supported for supplier prices print '
    '.$langs->trans("DiscountQtyMin").' %'; + print ' %'; print '
    '.dol_trunc($obj->libelle, 42).''.dol_trunc($obj->label, 42).''; print ''; print '
    '; $out .= '
    '; - } elseif ($display_type=='line') { + } elseif ($display_type == 'line') { $out .= '
    '; } diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 156c29d7a13..e3870a1ed00 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1955,9 +1955,9 @@ class ExtraFields $collapse_display = ((isset($_COOKIE['DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.(!empty($object->id)?'_'.$object->id:'')]) || GETPOST('ignorecollapsesetup', 'int')) ? ($_COOKIE['DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.(!empty($object->id)?'_'.$object->id:'')] ? true : false) : ($extrafield_collapse_display_value == 2 ? false : true)); $extrafields_collapse_num = $this->attributes[$object->table_element]['pos'][$key].(!empty($object->id)?'_'.$object->id:''); - $out .= ''; - $out .= ''; + $out .= ' });'."\n"; + $out .= ' });'."\n"; + $out .= '});'."\n"; + $out .= ''."\n"; } } } diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php index ed775c21e6c..f8d86f2abee 100644 --- a/htdocs/core/tpl/extrafields_view.tpl.php +++ b/htdocs/core/tpl/extrafields_view.tpl.php @@ -112,7 +112,7 @@ if (empty($reshook) && is_array($extrafields->attributes[$object->table_element] $lastseparatorkeyfound = $tmpkeyextra; } else { - print '
    '; -print ''."\n"; +print ''."\n"; print ''."\n"; print ''."\n"; // Thousands @@ -222,7 +222,22 @@ if (($thousand != ',' && $thousand != '.') || ($thousand != ' ')) print "\n"; } print ''."\n"; -// Timezone + +// Timezones + +// Database timezone +if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') +{ + print ''."\n"; +} $txt = $langs->trans("OSTZ").' (variable system TZ): '.(!empty($_ENV["TZ"]) ? $_ENV["TZ"] : $langs->trans("NotDefined")).'
    '."\n"; $txt .= $langs->trans("PHPTZ").' (date_default_timezone_get() / php.ini date.timezone): '.(getServerTimeZoneString()." / ".(ini_get("date.timezone") ? ini_get("date.timezone") : $langs->trans("NotDefined")))."
    \n"; // date.timezone must be in valued defined in http://fr3.php.net/manual/en/timezones.europe.php $txt .= $langs->trans("Dolibarr constant MAIN_SERVER_TZ").': '.(empty($conf->global->MAIN_SERVER_TZ) ? $langs->trans("NotDefined") : $conf->global->MAIN_SERVER_TZ); @@ -238,23 +253,10 @@ $val .= '       '.getServerTimeZoneString(); $val .= '       '.$langs->trans("DaylingSavingTime").': '.($daylight === 'unknown' ? 'unknown' : ($a == $c ?yn($daylight) : yn(0).($daylight ? '     ('.$langs->trans('YesInSummer').')' : ''))); print $form->textwithtooltip($val, $txt, 2, 1, img_info('')); print ''."\n"; // value defined in http://fr3.php.net/manual/en/timezones.europe.php -print ''."\n"; +print ''."\n"; print ''; print ''; print ''; -// Database timezone -if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') -{ - print ''."\n"; -} // Client $tz = (int) $_SESSION['dol_tz'] + (int) $_SESSION['dol_dst']; print ''."\n"; print ''."\n"; -print ''."\n"; +print ''."\n"; $filesystemencoding = ini_get("unicode.filesystem_encoding"); // Disponible avec PHP 6.0 print ''."\n"; diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 6499db671cb..6f1e83103d5 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -228,8 +228,8 @@ if (empty($reshook) && $action == 'add') $percentage = in_array(GETPOST('status'), array(-1, 100)) ?GETPOST('status') : (in_array(GETPOST('complete'), array(-1, 100)) ?GETPOST('complete') : GETPOST("percentage")); // If status is -1 or 100, percentage is not defined and we must use status // Clean parameters - $datep = dol_mktime($fulldayevent ? '00' : GETPOST("aphour", 'int'), $fulldayevent ? '00' : GETPOST("apmin", 'int'), $fulldayevent ? '00' : GETPOST("apsec", 'int'), GETPOST("apmonth", 'int'), GETPOST("apday", 'int'), GETPOST("apyear", 'int')); - $datef = dol_mktime($fulldayevent ? '23' : GETPOST("p2hour", 'int'), $fulldayevent ? '59' : GETPOST("p2min", 'int'), $fulldayevent ? '59' : GETPOST("apsec", 'int'), GETPOST("p2month", 'int'), GETPOST("p2day", 'int'), GETPOST("p2year", 'int')); + $datep = dol_mktime($fulldayevent ? '00' : GETPOST("aphour", 'int'), $fulldayevent ? '00' : GETPOST("apmin", 'int'), $fulldayevent ? '00' : GETPOST("apsec", 'int'), GETPOST("apmonth", 'int'), GETPOST("apday", 'int'), GETPOST("apyear", 'int'), 'tzuser'); + $datef = dol_mktime($fulldayevent ? '23' : GETPOST("p2hour", 'int'), $fulldayevent ? '59' : GETPOST("p2min", 'int'), $fulldayevent ? '59' : GETPOST("apsec", 'int'), GETPOST("p2month", 'int'), GETPOST("p2day", 'int'), GETPOST("p2year", 'int'), 'tzuser'); // Check parameters if (!$datef && $percentage == 100) @@ -479,8 +479,8 @@ if (empty($reshook) && $action == 'update') $object->fetch_userassigned(); $object->oldcopy = clone $object; - $datep = dol_mktime($fulldayevent ? '00' : $aphour, $fulldayevent ? '00' : $apmin, 0, GETPOST("apmonth", 'int'), GETPOST("apday", 'int'), GETPOST("apyear", 'int')); - $datef = dol_mktime($fulldayevent ? '23' : $p2hour, $fulldayevent ? '59' : $p2min, $fulldayevent ? '59' : '0', GETPOST("p2month", 'int'), GETPOST("p2day", 'int'), GETPOST("p2year", 'int')); + $datep = dol_mktime($fulldayevent ? '00' : $aphour, $fulldayevent ? '00' : $apmin, 0, GETPOST("apmonth", 'int'), GETPOST("apday", 'int'), GETPOST("apyear", 'int'), 'tzuser'); + $datef = dol_mktime($fulldayevent ? '23' : $p2hour, $fulldayevent ? '59' : $p2min, $fulldayevent ? '59' : '0', GETPOST("p2month", 'int'), GETPOST("p2day", 'int'), GETPOST("p2year", 'int'), 'tzuser'); $object->type_id = dol_getIdFromCode($db, GETPOST("actioncode", 'aZ09'), 'c_actioncomm'); $object->label = GETPOST("label", "alphanohtml"); @@ -953,7 +953,7 @@ if ($action == 'create') // Full day print ''; - $datep = ($datep ? $datep : $object->datep); + $datep = ($datep ? $datep : (is_null($object->datep) ? '' : $object->datep)); if (GETPOST('datep', 'int', 1)) $datep = dol_stringtotime(GETPOST('datep', 'int', 1), 0); $datef = ($datef ? $datef : $object->datef); if (GETPOST('datef', 'int', 1)) $datef = dol_stringtotime(GETPOST('datef', 'int', 1), 0); @@ -1324,8 +1324,8 @@ if ($id > 0) { $percentage = in_array(GETPOST('status'), array(-1, 100)) ?GETPOST('status') : (in_array(GETPOST('complete'), array(-1, 100)) ?GETPOST('complete') : GETPOST("percentage")); // If status is -1 or 100, percentage is not defined and we must use status - $datep = dol_mktime($fulldayevent ? '00' : $aphour, $fulldayevent ? '00' : $apmin, 0, GETPOST("apmonth", 'int'), GETPOST("apday", 'int'), GETPOST("apyear", 'int')); - $datef = dol_mktime($fulldayevent ? '23' : $p2hour, $fulldayevent ? '59' : $p2min, $fulldayevent ? '59' : '0', GETPOST("p2month", 'int'), GETPOST("p2day", 'int'), GETPOST("p2year", 'int')); + $datep = dol_mktime($fulldayevent ? '00' : $aphour, $fulldayevent ? '00' : $apmin, 0, GETPOST("apmonth", 'int'), GETPOST("apday", 'int'), GETPOST("apyear", 'int'), 'tzuser'); + $datef = dol_mktime($fulldayevent ? '23' : $p2hour, $fulldayevent ? '59' : $p2min, $fulldayevent ? '59' : '0', GETPOST("p2month", 'int'), GETPOST("p2day", 'int'), GETPOST("p2year", 'int'), 'tzuser'); $object->type_id = dol_getIdFromCode($db, GETPOST("actioncode", 'aZ09'), 'c_actioncomm'); $object->label = GETPOST("label", "alphanohtml"); @@ -1430,23 +1430,23 @@ if ($id > 0) // Full day event print ''; - + print dol_print_date($object->datep, 'dayhour', 'gmt'); // Date start - end print ''; @@ -1884,16 +1884,16 @@ if ($id > 0) // Date start print ''; print ''; // Date end print ''; diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index f5a0a6783da..991e945b16d 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -136,9 +136,9 @@ $arrayfields = array( 's.nom'=>array('label'=>"ThirdParty", 'checked'=>1), 'a.fk_contact'=>array('label'=>"Contact", 'checked'=>0), 'a.fk_element'=>array('label'=>"LinkedObject", 'checked'=>1, 'enabled'=>(!empty($conf->global->AGENDA_SHOW_LINKED_OBJECT))), - 'a.percent'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), - 'a.datec'=>array('label'=>'DateCreation', 'checked'=>0), - 'a.tms'=>array('label'=>'DateModification', 'checked'=>0) + 'a.datec'=>array('label'=>'DateCreation', 'checked'=>0, 'position'=>510), + 'a.tms'=>array('label'=>'DateModification', 'checked'=>0, 'position'=>520), + 'a.percent'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000) ); // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; @@ -736,7 +736,7 @@ if ($resql) // Start date if (!empty($arrayfields['a.datep']['checked'])) { print ''; } @@ -834,11 +834,11 @@ if ($resql) // Date creation if (!empty($arrayfields['a.datec']['checked'])) { // Status/Percent - print ''; + print ''; } // Date update if (!empty($arrayfields['a.tms']['checked'])) { - print ''; + print ''; } if (!empty($arrayfields['a.percent']['checked'])) { // Status/Percent diff --git a/htdocs/compta/facture/card-rec.php b/htdocs/compta/facture/card-rec.php index 64b00aaa156..eb7b8c83b34 100644 --- a/htdocs/compta/facture/card-rec.php +++ b/htdocs/compta/facture/card-rec.php @@ -923,7 +923,8 @@ if (empty($reshook)) * View */ -llxHeader('', $langs->trans("RepeatableInvoices"), 'ch-facture.html#s-fac-facture-rec'); +$help_url = ''; +llxHeader('', $langs->trans("RepeatableInvoices"), $help_url); $form = new Form($db); $formother = new FormOther($db); diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 808a1cd0043..448bdad3cd9 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5536,7 +5536,7 @@ class Form * @param int $stepminutes Specify step for minutes between 1 and 30 * @param string $labeladddateof Label to use for the $adddateof parameter. * @param string $placeholder Placeholder - * @param mixed $gm 'auto', 'gmt' or 'tzserver' or 'tzuserrel' + * @param mixed $gm 'auto' (for backward compatibility, avoid this), 'gmt' or 'tzserver' or 'tzuserrel' * @return string Html for selectDate * @see form_date(), select_month(), select_year(), select_dayofweek() */ @@ -5544,8 +5544,8 @@ class Form { global $conf, $langs; - if ($gm == 'auto') { - $gm = $conf->tzuserinputkey; + if ($gm === 'auto') { + $gm = (empty($conf) ? 'tzserver' : $conf->tzuserinputkey); } $retstring = ''; diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php index 843c9ec759f..610b8276790 100644 --- a/htdocs/core/class/html.formactions.class.php +++ b/htdocs/core/class/html.formactions.class.php @@ -202,7 +202,7 @@ class FormActions $newcardbutton = ''; if (!empty($conf->agenda->enabled) && !empty($user->rights->agenda->myactions->create)) { - $newcardbutton .= dolGetButtonTitle($langs->trans("AddEvent"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create&datep='.urlencode(dol_print_date(dol_now(), 'dayhourlog')).'&origin='.urlencode($typeelement).'&originid='.$object->id.($object->socid > 0 ? '&socid='.$object->socid : ($socid > 0 ? '&socid='.$socid : '')).($projectid > 0 ? '&projectid='.$projectid : '').'&backtopage='.urlencode($urlbacktopage)); + $newcardbutton .= dolGetButtonTitle($langs->trans("AddEvent"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/comm/action/card.php?action=create&datep='.urlencode(dol_print_date(dol_now(), 'dayhourlog', 'tzuser')).'&origin='.urlencode($typeelement).'&originid='.$object->id.($object->socid > 0 ? '&socid='.$object->socid : ($socid > 0 ? '&socid='.$socid : '')).($projectid > 0 ? '&projectid='.$projectid : '').'&backtopage='.urlencode($urlbacktopage)); } diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 694612bde07..99a66a9a682 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2209,9 +2209,10 @@ function dol_mktime($hour, $minute, $second, $month, $day, $year, $gm = 'auto', { global $conf; //print "- ".$hour.",".$minute.",".$second.",".$month.",".$day.",".$year.",".$_SERVER["WINDIR"]." -"; + //print 'gm:'.$gm.' gm==auto:'.($gm == 'auto').'
    '; - if ($gm == 'auto') { - $gm = $conf->tzuserinputkey; + if ($gm === 'auto') { + $gm = (empty($conf) ? 'tzserver' : $conf->tzuserinputkey); } // Clean parameters @@ -2273,7 +2274,7 @@ function dol_mktime($hour, $minute, $second, $month, $day, $year, $gm = 'auto', /** * Return date for now. In most cases, we use this function without parameters (that means GMT time). * - * @param string $mode 'auto' + * @param string $mode 'auto' => for backward compatibility (avoid this), * 'gmt' => we return GMT timestamp, * 'tzserver' => we add the PHP server timezone * 'tzref' => we add the company timezone. Not implemented. @@ -2284,8 +2285,8 @@ function dol_now($mode = 'auto') { $ret = 0; - if ($mode == 'auto') { - $mode = 'tzserver'; + if ($mode === 'auto') { + $mode = 'gmt'; } if ($mode == 'gmt') $ret = time(); // Time for now at greenwich. diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 9667a67d360..2f1e3d5596b 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -444,7 +444,7 @@ function checkUserAccessToObject($user, $featuresarray, $objectid = 0, $tableand $checksoc = array('societe'); // Test for societe object $checkother = array('contact', 'agenda'); // Test on entity and link to third party. Allowed if link is empty (Ex: contacts...). $checkproject = array('projet', 'project'); // Test for project object - $checktask = array('projet_task'); + $checktask = array('projet_task'); // Test for task object $nocheck = array('barcode', 'stock'); // No test //$checkdefault = 'all other not already defined'; // Test on entity and link to third party. Not allowed if link is empty (Ex: invoice, orders...). @@ -582,29 +582,35 @@ function checkUserAccessToObject($user, $featuresarray, $objectid = 0, $tableand $sql .= " WHERE dbt.".$dbt_select." IN (".$objectid.")"; $sql .= " AND dbt.entity IN (".getEntity($sharedelement, 1).")"; } - } elseif (!in_array($feature, $nocheck)) // By default (case of $checkdefault), we check on object entity + link to third party on field $dbt_keyfield - { + } elseif (!in_array($feature, $nocheck)) { // By default (case of $checkdefault), we check on object entity + link to third party on field $dbt_keyfield // If external user: Check permission for external users - if ($user->socid > 0) - { + if ($user->socid > 0) { if (empty($dbt_keyfield)) dol_print_error('', 'Param dbt_keyfield is required but not defined'); $sql = "SELECT COUNT(dbt.".$dbt_keyfield.") as nb"; $sql .= " FROM ".MAIN_DB_PREFIX.$dbtablename." as dbt"; $sql .= " WHERE dbt.rowid IN (".$objectid.")"; $sql .= " AND dbt.".$dbt_keyfield." = ".$user->socid; - } // If internal user: Check permission for internal users that are restricted on their objects - elseif (!empty($conf->societe->enabled) && ($user->rights->societe->lire && !$user->rights->societe->client->voir)) - { - if (empty($dbt_keyfield)) dol_print_error('', 'Param dbt_keyfield is required but not defined'); - $sql = "SELECT COUNT(sc.fk_soc) as nb"; - $sql .= " FROM ".MAIN_DB_PREFIX.$dbtablename." as dbt"; - $sql .= ", ".MAIN_DB_PREFIX."societe as s"; - $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; - $sql .= " WHERE dbt.".$dbt_select." IN (".$objectid.")"; - $sql .= " AND sc.fk_soc = dbt.".$dbt_keyfield; - $sql .= " AND dbt.".$dbt_keyfield." = s.rowid"; - $sql .= " AND dbt.entity IN (".getEntity($sharedelement, 1).")"; - $sql .= " AND sc.fk_user = ".$user->id; + } elseif (!empty($conf->societe->enabled)) { + // If internal user: Check permission for internal users that are restricted on their objects + if ($feature != 'ticket' && !$user->rights->societe->client->voir) { + if (empty($dbt_keyfield)) dol_print_error('', 'Param dbt_keyfield is required but not defined'); + $sql = "SELECT COUNT(sc.fk_soc) as nb"; + $sql .= " FROM ".MAIN_DB_PREFIX.$dbtablename." as dbt"; + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql .= " WHERE dbt.".$dbt_select." IN (".$objectid.")"; + $sql .= " AND dbt.entity IN (".getEntity($sharedelement, 1).")"; + $sql .= " AND sc.fk_soc = dbt.".$dbt_keyfield; + $sql .= " AND sc.fk_user = ".$user->id; + } + // On ticket, the thirdparty is not mandatory, so we need a special test to accept record with no thirdparties. + if ($feature == 'ticket' && !$user->rights->societe->client->voir) { + $sql = "SELECT COUNT(dbt.".$dbt_select.") as nb"; + $sql .= " FROM ".MAIN_DB_PREFIX.$dbtablename." as dbt"; + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON sc.fk_soc = dbt.".$dbt_keyfield." AND sc.fk_user = ".$user->id; + $sql .= " WHERE dbt.".$dbt_select." IN (".$objectid.")"; + $sql .= " AND dbt.entity IN (".getEntity($sharedelement, 1).")"; + $sql .= " AND (sc.fk_user = ".$user->id." OR sc.fk_user IS NULL)"; + } } // If multicompany and internal users with all permissions, check user is in correct entity elseif (!empty($conf->multicompany->enabled)) { diff --git a/htdocs/core/lib/ticket.lib.php b/htdocs/core/lib/ticket.lib.php index 92fdfa21aff..c90892d603c 100644 --- a/htdocs/core/lib/ticket.lib.php +++ b/htdocs/core/lib/ticket.lib.php @@ -283,7 +283,7 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no $out = ''; $histo = array(); $numaction = 0; - $now = dol_now('tzuser'); + $now = dol_now(); // Open DSI -- Fix order by -- Begin $sortfield_list = explode(',', $sortfield); @@ -622,7 +622,7 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no $out .= ''; $out .= '
  • '; $out .= ''; - $out .= dol_print_date($histo[$key]['datestart'], 'daytext', 'tzserver', $langs); + $out .= dol_print_date($histo[$key]['datestart'], 'daytext', 'tzuserrel', $langs); $out .= ''; $out .= '
  • '; $out .= ''; @@ -660,14 +660,14 @@ function show_ticket_messaging($conf, $langs, $db, $filterobj, $objcon = '', $no $out .= ''; // Date $out .= ' '; - $out .= dol_print_date($histo[$key]['datestart'], 'dayhour'); + $out .= dol_print_date($histo[$key]['datestart'], 'dayhour', 'tzuserrel'); if ($histo[$key]['dateend'] && $histo[$key]['dateend'] != $histo[$key]['datestart']) { $tmpa = dol_getdate($histo[$key]['datestart'], true); $tmpb = dol_getdate($histo[$key]['dateend'], true); if ($tmpa['mday'] == $tmpb['mday'] && $tmpa['mon'] == $tmpb['mon'] && $tmpa['year'] == $tmpb['year']) { - $out .= '-'.dol_print_date($histo[$key]['dateend'], 'hour'); + $out .= '-'.dol_print_date($histo[$key]['dateend'], 'hour', 'tzuserrel'); } else { - $out .= '-'.dol_print_date($histo[$key]['dateend'], 'dayhour'); + $out .= '-'.dol_print_date($histo[$key]['dateend'], 'dayhour', 'tzuserrel'); } } $late = 0; diff --git a/htdocs/core/modules/modTicket.class.php b/htdocs/core/modules/modTicket.class.php index 448d1eb694b..7746bf9ca52 100644 --- a/htdocs/core/modules/modTicket.class.php +++ b/htdocs/core/modules/modTicket.class.php @@ -177,6 +177,7 @@ class modTicket extends DolibarrModules $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][4] = 'manage'; + /* Seems not used and in conflict with societe->client->voir (see all thirdparties) $r++; $this->rights[$r][0] = 56005; // id de la permission $this->rights[$r][1] = 'See all tickets, even if not assigned to (not effective for external users, always restricted to the thirdpardy they depends on)'; // libelle de la permission @@ -184,6 +185,7 @@ class modTicket extends DolibarrModules $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut $this->rights[$r][4] = 'view'; $this->rights[$r][5] = 'all'; + */ // Main menu entries $this->menus = array(); // List of menus to add diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 3a2b8889d96..dabb826149c 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -486,6 +486,7 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ 'MAIN_MODULE_SYSLOG'=>'newboxdefonly', 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', 'MAIN_MODULE_SERVICE'=>'newboxdefonly', + 'MAIN_MODULE_TICKET'=>'newboxdefonly', 'MAIN_MODULE_TAKEPOS'=>'newboxdefonly', 'MAIN_MODULE_USER'=>'newboxdefonly', //This one must be always done and only into last targeted version) 'MAIN_MODULE_VARIANTS'=>'newboxdefonly', diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index e0055890152..3e64482fdc6 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1890,6 +1890,14 @@ function top_menu_user($hideloginname = 0, $urllogout = '') $dropdownBody .= '
    '.$langs->trans("CurrentMenuManager").': '.$menumanager->name; $langFlag = picto_from_langcode($langs->getDefaultLang()); $dropdownBody .= '
    '.$langs->trans("CurrentUserLanguage").': '.($langFlag ? $langFlag.' ' : '').$langs->getDefaultLang(); + + $tz = (int) $_SESSION['dol_tz'] + (int) $_SESSION['dol_dst']; + $dropdownBody .= '
    '.$langs->trans("ClientTZ").': '.($tz ? ($tz >= 0 ? '+' : '').$tz : ''); + $dropdownBody .= ' ('.$_SESSION['dol_tz_string'].')'; + //$dropdownBody .= '       '.$langs->trans("DaylingSavingTime").': '; + //if ($_SESSION['dol_dst'] > 0) $dropdownBody .= yn(1); + //else $dropdownBody .= yn(0); + $dropdownBody .= '
    '.$langs->trans("Browser").': '.$conf->browser->name.($conf->browser->version ? ' '.$conf->browser->version : '').' ('.dol_escape_htmltag($_SERVER['HTTP_USER_AGENT']).')'; $dropdownBody .= '
    '.$langs->trans("Layout").': '.$conf->browser->layout; $dropdownBody .= '
    '.$langs->trans("Screen").': '.$_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight']; diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index 6abb2464394..6d14d29202f 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -938,14 +938,14 @@ elseif (empty($action) || $action == 'view' || $action == 'addlink' || $action = // Creation date print '
    '; // Read date print ''; diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php index 03e87067d10..306f861097b 100644 --- a/htdocs/ticket/class/ticket.class.php +++ b/htdocs/ticket/class/ticket.class.php @@ -223,9 +223,10 @@ class Ticket extends CommonObject /** - * 'type' if the field format ('integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter]]', 'varchar(x)', 'double(24,8)', 'real', 'price', 'text', 'html', 'date', 'datetime', 'timestamp', 'duration', 'mail', 'phone', 'url', 'password') + * 'type' field format ('integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter]]', 'sellist:TableName:LabelFieldName[:KeyFieldName[:KeyFieldParent[:Filter]]]', 'varchar(x)', 'double(24,8)', 'real', 'price', 'text', 'text:none', 'html', 'date', 'datetime', 'timestamp', 'duration', 'mail', 'phone', 'url', 'password') * Note: Filter can be a string like "(t.ref:like:'SO-%') or (t.date_creation:<:'20160101') or (t.nature:is:NULL)" * 'label' the translation key. + * 'picto' is code of a picto to show before value in forms * 'enabled' is a condition when the field must be managed (Example: 1 or '$conf->global->MY_SETUP_PARAM) * 'position' is the sort order of field. * 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0). @@ -236,8 +237,8 @@ class Ticket extends CommonObject * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...). * 'searchall' is 1 if we want to search in this field when making a search from the quick search button. * 'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8). - * 'css' and 'cssview' is the CSS style to use on field. 'css' is used in creation and update. 'cssview' is used in view mode. For example: 'maxwidth200', 'wordbreak' - * 'help' is a string visible as a tooltip on field + * 'css' and 'cssview' and 'csslist' is the CSS style to use on field. 'css' is used in creation and update. 'cssview' is used in view mode. 'csslist' is used for columns in lists. For example: 'maxwidth200', 'wordbreak', 'tdoverflowmax200' + * 'help' is a 'TranslationString' to use to show a tooltip on field. You can also use 'TranslationString:keyfortooltiponlick' for a tooltip on click. * 'showoncombobox' if value of the field must be visible into the label of the combobox that list record * 'disabled' is 1 if we want to have the field locked by a 'disabled' attribute. In most cases, this is never set into the definition of $fields into class, but is set dynamically by some part of code. * 'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel") @@ -255,16 +256,16 @@ class Ticket extends CommonObject 'track_id' => array('type'=>'varchar(255)', 'label'=>'TicketTrackId', 'visible'=>-2, 'enabled'=>1, 'position'=>11, 'notnull'=>-1, 'searchall'=>1, 'help'=>"Help text"), 'fk_user_create' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Author', 'visible'=>1, 'enabled'=>1, 'position'=>15, 'notnull'=>1, 'css'=>'tdoverflowmax150 maxwidth150onsmartphone'), 'origin_email' => array('type'=>'mail', 'label'=>'OriginEmail', 'visible'=>-2, 'enabled'=>1, 'position'=>16, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", 'css'=>'tdoverflowmax150'), - 'subject' => array('type'=>'varchar(255)', 'label'=>'Subject', 'visible'=>1, 'enabled'=>1, 'position'=>18, 'notnull'=>-1, 'searchall'=>1, 'help'=>"", 'css'=>'maxwidth200', 'autofocusoncreate'=>1), - 'type_code' => array('type'=>'varchar(32)', 'label'=>'Type', 'visible'=>1, 'enabled'=>1, 'position'=>20, 'notnull'=>-1, 'help'=>"", 'css'=>'maxwidth150 tdoverflowmax50'), + 'subject' => array('type'=>'varchar(255)', 'label'=>'Subject', 'visible'=>1, 'enabled'=>1, 'position'=>18, 'notnull'=>-1, 'searchall'=>1, 'help'=>"", 'css'=>'maxwidth200 tdoverflowmax200', 'autofocusoncreate'=>1), + 'type_code' => array('type'=>'varchar(32)', 'label'=>'Type', 'visible'=>1, 'enabled'=>1, 'position'=>20, 'notnull'=>-1, 'help'=>"", 'css'=>'maxwidth125 tdoverflowmax50'), 'category_code' => array('type'=>'varchar(32)', 'label'=>'TicketCategory', 'visible'=>-1, 'enabled'=>1, 'position'=>21, 'notnull'=>-1, 'help'=>"", 'css'=>'maxwidth100'), 'severity_code' => array('type'=>'varchar(32)', 'label'=>'Severity', 'visible'=>1, 'enabled'=>1, 'position'=>22, 'notnull'=>-1, 'help'=>"", 'css'=>'maxwidth100'), - 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'visible'=>1, 'enabled'=>1, 'position'=>50, 'notnull'=>-1, 'index'=>1, 'searchall'=>1, 'help'=>"LinkToThirparty", 'css'=>'tdoverflowmax150 maxwidth150onsmartphone'), + 'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'visible'=>1, 'enabled'=>'$conf->societe->enabled', 'position'=>50, 'notnull'=>-1, 'index'=>1, 'searchall'=>1, 'help'=>"LinkToThirparty", 'css'=>'tdoverflowmax150 maxwidth150onsmartphone'), 'notify_tiers_at_create' => array('type'=>'integer', 'label'=>'NotifyThirdparty', 'visible'=>-1, 'enabled'=>0, 'position'=>51, 'notnull'=>1, 'index'=>1), 'fk_project' => array('type'=>'integer:Project:projet/class/project.class.php', 'label'=>'Project', 'visible'=>-1, 'enabled'=>1, 'position'=>52, 'notnull'=>-1, 'index'=>1, 'help'=>"LinkToProject"), 'timing' => array('type'=>'varchar(20)', 'label'=>'Timing', 'visible'=>-1, 'enabled'=>1, 'position'=>42, 'notnull'=>-1, 'help'=>""), 'datec' => array('type'=>'datetime', 'label'=>'DateCreation', 'visible'=>1, 'enabled'=>1, 'position'=>500, 'notnull'=>1), - 'date_read' => array('type'=>'datetime', 'label'=>'TicketReadOn', 'visible'=>1, 'enabled'=>1, 'position'=>501, 'notnull'=>1), + 'date_read' => array('type'=>'datetime', 'label'=>'TicketReadOn', 'visible'=>-1, 'enabled'=>1, 'position'=>501, 'notnull'=>1), 'fk_user_assign' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'AssignedTo', 'visible'=>1, 'enabled'=>1, 'position'=>505, 'notnull'=>1, 'css'=>'tdoverflowmax150'), 'date_close' => array('type'=>'datetime', 'label'=>'TicketCloseOn', 'visible'=>-1, 'enabled'=>1, 'position'=>510, 'notnull'=>1), 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'visible'=>-1, 'enabled'=>1, 'position'=>520, 'notnull'=>1), diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php index 8db50076bbf..0c6db4a4a2d 100644 --- a/htdocs/ticket/list.php +++ b/htdocs/ticket/list.php @@ -428,7 +428,7 @@ if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $ // Output page // -------------------------------------------------------------------- -llxHeader('', $title, $help_url); +llxHeader('', $title, $help_url, '', 0, 0, '', '', '', 'classforhorizontalscrolloftabs'); if ($socid && !$projectid && !$project_ref && $user->rights->societe->lire) { @@ -811,6 +811,12 @@ while ($i < min($num, $limit)) if ($cssforfield || $val['css']) print '"'; print '>'; if ($key == 'fk_statut') print $object->getLibStatut(5); + elseif ($key == 'subject') { + $s = $obj->subject; + print ''; + print $s; + print ''; + } elseif ($key == 'type_code') { $s = $langs->getLabelFromKey($db, 'TicketTypeShort'.$object->type_code, 'c_ticket_type', 'code', 'label', $object->type_code); print ''; From a19eec779168818db11b045b863f8d32e32dab8b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 00:41:44 +0100 Subject: [PATCH 176/219] FIX #16135 --- .../install/mysql/migration/12.0.0-13.0.0.sql | 15 +++++++++++--- .../mysql/tables/llx_c_product_nature.key.sql | 20 ++++++++++++++++++- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql index 31cdf9c8d62..96a681d4c56 100644 --- a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql +++ b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql @@ -415,8 +415,10 @@ ALTER TABLE llx_website_page ADD COLUMN fk_object varchar(255); DELETE FROM llx_const WHERE name in ('MAIN_INCLUDE_ZERO_VAT_IN_REPORTS'); -UPDATE llx_projet_task_time SET tms = null WHERE tms = 0; -ALTER TABLE llx_projet_task_time MODIFY COLUMN tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; + +-- VMYSQL4.1 UPDATE llx_projet_task_time SET tms = null WHERE tms = 0; + +ALTER TABLE llx_projet_task_time CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE llx_projet_task_time MODIFY COLUMN datec datetime; @@ -432,12 +434,19 @@ CREATE TABLE llx_c_product_nature ( active tinyint DEFAULT 1 NOT NULL ) ENGINE=innodb; -ALTER TABLE llx_c_product_nature ADD UNIQUE INDEX uk_c_product_nature(code, active); + +ALTER TABLE llx_product DROP FOREIGN KEY fk_product_finished; + +-- VMYSQL4.1 DROP INDEX uk_c_product_nature on llx_c_product_nature; +-- VPGSQL8.2 DROP INDEX uk_c_product_nature; + +ALTER TABLE llx_c_product_nature ADD UNIQUE INDEX uk_c_product_nature(code); INSERT INTO llx_c_product_nature (code, label, active) VALUES (0, 'RowMaterial', 1); INSERT INTO llx_c_product_nature (code, label, active) VALUES (1, 'Finished', 1); ALTER TABLE llx_product MODIFY COLUMN finished tinyint DEFAULT NULL; + ALTER TABLE llx_product ADD CONSTRAINT fk_product_finished FOREIGN KEY (finished) REFERENCES llx_c_product_nature (code); -- MIGRATION TO DO AFTER RENAMING AN OBJECT diff --git a/htdocs/install/mysql/tables/llx_c_product_nature.key.sql b/htdocs/install/mysql/tables/llx_c_product_nature.key.sql index b6a3d2130bf..e1190e5ab19 100644 --- a/htdocs/install/mysql/tables/llx_c_product_nature.key.sql +++ b/htdocs/install/mysql/tables/llx_c_product_nature.key.sql @@ -1 +1,19 @@ -ALTER TABLE llx_c_product_nature ADD UNIQUE INDEX uk_c_product_nature(code, active); +-- ======================================================================== +-- Copyright (C) 2021 Laurent Destailleur +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ======================================================================== + +ALTER TABLE llx_c_product_nature ADD UNIQUE INDEX uk_c_product_nature(code); From f5df3b1d695b156f1cf7da0001b072972897e0f4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 01:30:23 +0100 Subject: [PATCH 177/219] Clean code to try to fix #16123 --- htdocs/barcode/printsheet.php | 29 +++++++++++++------ .../doc/pdf_standardlabel.class.php | 18 ------------ .../printsheet/doc/pdf_tcpdflabel.class.php | 17 ----------- .../modules/printsheet/modules_labels.php | 21 ++++++++++++++ 4 files changed, 41 insertions(+), 44 deletions(-) diff --git a/htdocs/barcode/printsheet.php b/htdocs/barcode/printsheet.php index 8a513034a4a..2a3a13cca69 100644 --- a/htdocs/barcode/printsheet.php +++ b/htdocs/barcode/printsheet.php @@ -22,6 +22,11 @@ * \ingroup member * \brief Page to print sheets with barcodes using the document templates into core/modules/printsheets */ + +if (!empty($_POST['mode']) && $_POST['mode'] === 'label') { // Page is called to build a PDF and output, we must ne renew the token. + if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) +} + require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/format_cards.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -237,16 +242,22 @@ if ($action == 'builddoc') $outfile = $langs->trans("BarCode").'_sheets_'.dol_print_date(dol_now(), 'dayhourlog').'.pdf'; - if (!$mesg) $result = doc_label_pdf_create($db, $arrayofrecords, $modellabel, $outputlangs, $diroutput, $template, dol_sanitizeFileName($outfile)); + if (!$mesg) { + $outputlangs = $langs; + + // This generates and send PDF to output + // TODO Move + $result = doc_label_pdf_create($db, $arrayofrecords, $modellabel, $outputlangs, $diroutput, $template, dol_sanitizeFileName($outfile)); + } } - if ($result <= 0) - { - dol_print_error('', $result); - } + if ($result <= 0 || $mesg) { + if (empty($mesg)) { + $mesg = 'Error '.$result; + } - if (!$mesg) - { + setEventMessages($mesg, null, 'errors'); + } else { $db->close(); exit; } @@ -275,10 +286,10 @@ dol_htmloutput_errors($mesg); //print img_picto('','puce').' '.$langs->trans("PrintsheetForOneBarCode").'
    '; //print '
    '; -print '
    '; +print ''; // The target is for brothers that open the file instead of downloading it print ''; print ''; -print ''; +print ''; // The page will not renew the token but force download of a file, so we must use here currentToken print '
    '; diff --git a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php index 90836ca4fd9..0b4db8c2619 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php @@ -321,24 +321,6 @@ class pdf_standardlabel extends CommonStickerGenerator if (!empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); - // Output to http stream - clearstatcache(); - - $attachment = true; - if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment = false; - $type = dol_mimetype($filename); - - //if ($encoding) header('Content-Encoding: '.$encoding); - if ($type) header('Content-Type: '.$type); - if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"'); - else header('Content-Disposition: inline; filename="'.$filename.'"'); - - // Ajout directives pour resoudre bug IE - header('Cache-Control: Public, must-revalidate'); - header('Pragma: public'); - - readfile($file); - $this->result = array('fullpath'=>$file); return 1; diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php index 1540fc29e8e..e4f46d269e2 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php @@ -359,23 +359,6 @@ class pdf_tcpdflabel extends CommonStickerGenerator if (!empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); - // Output to http stream - clearstatcache(); - - $attachment = true; - if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment = false; - $type = dol_mimetype($filename); - - //if ($encoding) header('Content-Encoding: '.$encoding); - if ($type) header('Content-Type: '.$type); - if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"'); - else header('Content-Disposition: inline; filename="'.$filename.'"'); - - // Ajout directives pour resoudre bug IE - header('Cache-Control: Public, must-revalidate'); - header('Pragma: public'); - - readfile($file); $this->result = array('fullpath'=>$file); diff --git a/htdocs/core/modules/printsheet/modules_labels.php b/htdocs/core/modules/printsheet/modules_labels.php index 3320b4ff928..c04d0acc4ed 100644 --- a/htdocs/core/modules/printsheet/modules_labels.php +++ b/htdocs/core/modules/printsheet/modules_labels.php @@ -150,6 +150,27 @@ function doc_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $outp if ($obj->write_file($arrayofrecords, $outputlangs, $srctemplatepath, $outputdir, $filename) > 0) { $outputlangs->charset_output = $sav_charset_output; + + $fullpath = $obj->result['fullpath']; + + // Output to http stream + clearstatcache(); + + $attachment = true; + if (!empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment = false; + $type = dol_mimetype($filename); + + //if ($encoding) header('Content-Encoding: '.$encoding); + if ($type) header('Content-Type: '.$type); + if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"'); + else header('Content-Disposition: inline; filename="'.$filename.'"'); + + // Ajout directives pour resoudre bug IE + header('Cache-Control: Public, must-revalidate'); + header('Pragma: public'); + + readfile($fullpath); + return 1; } else { $outputlangs->charset_output = $sav_charset_output; From 53014486d3c42a6976db877b1420bf99c474ee4f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 02:24:21 +0100 Subject: [PATCH 178/219] Fix default fields --- htdocs/product/stock/class/entrepot.class.php | 22 +++---- htdocs/product/stock/list.php | 58 ++++++++----------- 2 files changed, 35 insertions(+), 45 deletions(-) diff --git a/htdocs/product/stock/class/entrepot.class.php b/htdocs/product/stock/class/entrepot.class.php index d7a52cd1910..f32b2a0e586 100644 --- a/htdocs/product/stock/class/entrepot.class.php +++ b/htdocs/product/stock/class/entrepot.class.php @@ -119,24 +119,24 @@ class Entrepot extends CommonObject public $fields = array( 'rowid' =>array('type'=>'integer', 'label'=>'ID', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>10), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>15), - 'ref' =>array('type'=>'varchar(255)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'showoncombobox'=>1, 'position'=>25), + 'ref' =>array('type'=>'varchar(255)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'showoncombobox'=>1, 'position'=>25, 'searchall'=>1), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>30), - 'description' =>array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-2, 'position'=>35), - 'lieu' =>array('type'=>'varchar(64)', 'label'=>'LocationSummary', 'enabled'=>1, 'visible'=>1, 'position'=>40, 'showoncombobox'=>1), + 'description' =>array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-2, 'position'=>35, 'searchall'=>1), + 'lieu' =>array('type'=>'varchar(64)', 'label'=>'LocationSummary', 'enabled'=>1, 'visible'=>1, 'position'=>40, 'showoncombobox'=>1, 'searchall'=>1), 'fk_parent' =>array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php:1:statut=1 AND entity IN (__SHARED_ENTITIES__)', 'label'=>'ParentWarehouse', 'enabled'=>1, 'visible'=>-2, 'position'=>41), - 'address' =>array('type'=>'varchar(255)', 'label'=>'Address', 'enabled'=>1, 'visible'=>-2, 'position'=>45), - 'zip' =>array('type'=>'varchar(10)', 'label'=>'Zip', 'enabled'=>1, 'visible'=>-2, 'position'=>50), - 'town' =>array('type'=>'varchar(50)', 'label'=>'Town', 'enabled'=>1, 'visible'=>-2, 'position'=>55), + 'address' =>array('type'=>'varchar(255)', 'label'=>'Address', 'enabled'=>1, 'visible'=>-2, 'position'=>45, 'searchall'=>1), + 'zip' =>array('type'=>'varchar(10)', 'label'=>'Zip', 'enabled'=>1, 'visible'=>-2, 'position'=>50, 'searchall'=>1), + 'town' =>array('type'=>'varchar(50)', 'label'=>'Town', 'enabled'=>1, 'visible'=>-2, 'position'=>55, 'searchall'=>1), 'fk_departement' =>array('type'=>'sellist:c_departements:label:rowid::active=1', 'label'=>'State', 'enabled'=>1, 'visible'=>0, 'position'=>60), 'fk_pays' =>array('type'=>'sellist:c_country:label:rowid::active=1', 'label'=>'Country', 'enabled'=>1, 'visible'=>-2, 'position'=>65), - 'phone' =>array('type'=>'varchar(20)', 'label'=>'Phone', 'enabled'=>1, 'visible'=>-2, 'position'=>70), - 'fax' =>array('type'=>'varchar(20)', 'label'=>'Fax', 'enabled'=>1, 'visible'=>-2, 'position'=>75), + 'phone' =>array('type'=>'varchar(20)', 'label'=>'Phone', 'enabled'=>1, 'visible'=>-2, 'position'=>70, 'searchall'=>1), + 'fax' =>array('type'=>'varchar(20)', 'label'=>'Fax', 'enabled'=>1, 'visible'=>-2, 'position'=>75, 'searchall'=>1), //'fk_user_author' =>array('type'=>'integer', 'label'=>'Fk user author', 'enabled'=>1, 'visible'=>-2, 'position'=>82), - 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>500), - 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>501), + 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>300), + 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>301), //'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>1000), //'model_pdf' =>array('type'=>'varchar(255)', 'label'=>'ModelPDF', 'enabled'=>1, 'visible'=>0, 'position'=>1010), - 'statut' =>array('type'=>'tinyint(4)', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'position'=>200), + 'statut' =>array('type'=>'tinyint(4)', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'position'=>500), ); /** diff --git a/htdocs/product/stock/list.php b/htdocs/product/stock/list.php index f2c7133618b..6aec9bd2307 100644 --- a/htdocs/product/stock/list.php +++ b/htdocs/product/stock/list.php @@ -84,18 +84,6 @@ $extrafields->fetch_name_optionals_label($object->table_element); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); -// List of fields to search into when doing a "search in all" -$fieldstosearchall = array( - 't.ref'=>"Ref", - 't.lieu'=>"LocationSummary", - 't.description'=>"Description", - 't.address'=>"Address", - 't.zip'=>'Zip', - 't.town'=>'Town', - 't.phone'=>'Phone', - 't.fax'=>'Fax', -); - // Initialize array of search criterias $search_all = GETPOST("search_all", 'alpha'); $search = array(); @@ -106,37 +94,39 @@ foreach ($object->fields as $key => $val) if (GETPOST('search_'.$search_key, 'alpha') !== '') $search[$search_key] = GETPOST('search_'.$search_key, 'alpha'); } -// Definition of fields for list -$arrayfields = array( - 'stockqty'=>array('type'=>'float', 'label'=>'PhysicalStock', 'enabled'=>1, 'visible'=>-2, 'position'=>70), - 'estimatedvalue'=>array('type'=>'float', 'label'=>'EstimatedStockValue', 'enabled'=>1, 'visible'=>-2, 'position'=>71), - 'estimatedstockvaluesell'=>array('type'=>'float', 'label'=>'EstimatedStockValueSell', 'enabled'=>1, 'visible'=>-2, 'position'=>72), -); +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array(); foreach ($object->fields as $key => $val) { - // If $val['visible']==0, then we never show the field - if (!empty($val['visible'])) $arrayfields['t.'.$key] = array('label'=>$val['label'], 'checked'=>(($val['visible'] < 0) ? 0 : 1), 'enabled'=>($val['enabled'] && ($val['visible'] != 3)), 'position'=>$val['position']); + if ($val['searchall']) $fieldstosearchall['t.'.$key] = $val['label']; } -// Extra fields -if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) -{ - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) - { - if (!empty($extrafields->attributes[$object->table_element]['list'][$key])) { - $arrayfields["ef.".$key] = array( - 'label'=>$extrafields->attributes[$object->table_element]['label'][$key], - 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key] < 0) ? 0 : 1), - 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], - 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key]) != 3 && $extrafields->attributes[$object->table_element]['perms'][$key]) - ); - } + +// Definition of array of fields for columns +$arrayfields = array( + 'stockqty'=>array('type'=>'float', 'label'=>'PhysicalStock', 'enabled'=>1, 'visible'=>-2, 'checked'=>0, 'position'=>170), + 'estimatedvalue'=>array('type'=>'float', 'label'=>'EstimatedStockValue', 'enabled'=>1, 'visible'=>1, 'checked'=>1, 'position'=>171), + 'estimatedstockvaluesell'=>array('type'=>'float', 'label'=>'EstimatedStockValueSell', 'enabled'=>1, 'checked'=>1, 'visible'=>2, 'position'=>172), +); +foreach ($object->fields as $key => $val) { + // If $val['visible']==0, then we never show the field + if (!empty($val['visible'])) { + $visible = (int) dol_eval($val['visible'], 1); + $arrayfields['t.'.$key] = array( + 'label'=>$val['label'], + 'checked'=>(($visible < 0) ? 0 : 1), + 'enabled'=>($visible != 3 && dol_eval($val['enabled'], 1)), + 'position'=>$val['position'], + 'help'=>$val['help'] + ); } } +// Extra fields +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_array_fields.tpl.php'; + $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields = dol_sort_array($arrayfields, 'position'); - /* * Actions */ From 9a057386aa820036866f543605ae818edc153bed Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 02:38:02 +0100 Subject: [PATCH 179/219] Fix look and feel --- htdocs/product/stock/product.php | 14 +++++++------- htdocs/product/stock/replenish.php | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 89df906feda..d1c1ea99ff7 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -636,13 +636,13 @@ if ($id > 0 || $ref) // Real stock $text_stock_options = $langs->trans("RealStockDesc").'
    '; $text_stock_options .= $langs->trans("RealStockWillAutomaticallyWhen").'
    '; - $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE) ? $langs->trans("DeStockOnShipment").'
    ' : ''); - $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) ? $langs->trans("DeStockOnValidateOrder").'
    ' : ''); - $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_BILL) ? $langs->trans("DeStockOnBill").'
    ' : ''); - $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) ? $langs->trans("ReStockOnBill").'
    ' : ''); - $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) ? $langs->trans("ReStockOnValidateOrder").'
    ' : ''); - $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) ? $langs->trans("ReStockOnDispatchOrder").'
    ' : ''); - $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE) ? $langs->trans("StockOnReception").'
    ' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE) ? '- '.$langs->trans("DeStockOnShipment").'
    ' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) ? '- '.$langs->trans("DeStockOnValidateOrder").'
    ' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_BILL) ? '- '.$langs->trans("DeStockOnBill").'
    ' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) ? '- '.$langs->trans("ReStockOnBill").'
    ' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) ? '- '.$langs->trans("ReStockOnValidateOrder").'
    ' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) ? '- '.$langs->trans("ReStockOnDispatchOrder").'
    ' : ''); + $text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE) ? '- '.$langs->trans("StockOnReception").'
    ' : ''); print '
    '.$langs->trans("LocalisationDolibarrParameters").''.$langs->trans("Value").'
    '.$langs->trans("LocalisationDolibarrParameters").''.$langs->trans("Value").'
    '.$langs->trans("LanguageBrowserParameter", "HTTP_ACCEPT_LANGUAGE").''.$_SERVER["HTTP_ACCEPT_LANGUAGE"].'
    '.$langs->trans("CurrentUserLanguage").''.$langs->getDefaultLang().'
      => price(1234.56)'.price(1234.56).'
    '.$langs->trans("MySQLTimeZone").' (database)'; // Timezone server base + $sql = "SHOW VARIABLES where variable_name = 'system_time_zone'"; + $resql = $db->query($sql); + if ($resql) + { + $obj = $db->fetch_object($resql); + print $form->textwithtooltip($obj->Value, $langs->trans('TZHasNoEffect'), 2, 1, img_info('')); + } + print '
      => '.$langs->trans("CurrentHour").''.dol_print_date(dol_now(), 'dayhour', 'tzserver').'
      => '.$langs->trans("CurrentHour").''.dol_print_date(dol_now('gmt'), 'dayhour', 'tzserver').'
      => dol_print_date(0,"dayhourtext")'.dol_print_date(0, "dayhourtext").'
      => dol_get_first_day(1970,1,false)'.dol_get_first_day(1970, 1, false).'     (=> dol_print_date() or idate() of this value = '.dol_print_date(dol_get_first_day(1970, 1, false), 'dayhour').')
      => dol_get_first_day(1970,1,true)'.dol_get_first_day(1970, 1, true).'     (=> dol_print_date() or idate() of this value = '.dol_print_date(dol_get_first_day(1970, 1, true), 'dayhour').')
    '.$langs->trans("MySQLTimeZone").' (database)'; // Timezone server base - $sql = "SHOW VARIABLES where variable_name = 'system_time_zone'"; - $resql = $db->query($sql); - if ($resql) - { - $obj = $db->fetch_object($resql); - print $form->textwithtooltip($obj->Value, $langs->trans('TZHasNoEffect'), 2, 1, img_info('')); - } - print '
    '.$langs->trans("ClientTZ").''.($tz ? ($tz >= 0 ? '+' : '').$tz : '').' ('.($tz >= 0 ? '+' : '').($tz * 60 * 60).')'; @@ -265,7 +267,7 @@ else print yn(0); if (!empty($_SESSION['dol_dst_first'])) print '     ('.dol_print_date(dol_stringtotime($_SESSION['dol_dst_first']), 'dayhour', 'gmt').' - '.dol_print_date(dol_stringtotime($_SESSION['dol_dst_second']), 'dayhour', 'gmt').')'; print '
      => '.$langs->trans("ClientHour").''.dol_print_date(dol_now(), 'dayhour', 'tzuser').'
      => '.$langs->trans("ClientHour").''.dol_print_date(dol_now('gmt'), 'dayhour', 'tzuser').'
    '.$langs->trans("File encoding").' (php.ini unicode.filesystem_encoding)'.$filesystemencoding.'
    '.$langs->trans("EventOnFullDay").'
    '.$langs->trans("EventOnFullDay").'fulldayevent ? ' checked' : '').'>
    '.$langs->trans("DateActionStart").' - '.$langs->trans("DateActionEnd").''; if (GETPOST("afaire") == 1) { - print $form->selectDate($datep ? $datep : $object->datep, 'ap', 1, 1, 0, "action", 1, 1, 0, 'fulldaystart'); + print $form->selectDate($datep ? $datep : $object->datep, 'ap', 1, 1, 0, "action", 1, 1, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuser'); } elseif (GETPOST("afaire") == 2) { - print $form->selectDate($datep ? $datep : $object->datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldaystart'); + print $form->selectDate($datep ? $datep : $object->datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuser'); } else { - print $form->selectDate($datep ? $datep : $object->datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldaystart'); + print $form->selectDate($datep ? $datep : $object->datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuser'); } print ' - '; if (GETPOST("afaire") == 1) { - print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend'); + print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend', '', '', '', 1, '', '', 'tzuser'); } elseif (GETPOST("afaire") == 2) { - print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend'); + print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend', '', '', '', 1, '', '', 'tzuser'); } else { - print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend'); + print $form->selectDate($datef ? $datef : $object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend', '', '', '', 1, '', '', 'tzuser'); } print '
    '.$langs->trans("DateActionStart").''; - if (!$object->fulldayevent) print dol_print_date($object->datep, 'dayhour'); - else print dol_print_date($object->datep, 'day'); + if (!$object->fulldayevent) print dol_print_date($object->datep, 'dayhour', 'tzuser'); + else print dol_print_date($object->datep, 'day', 'tzuser'); if ($object->percentage == 0 && $object->datep && $object->datep < ($now - $delay_warning)) print img_warning($langs->trans("Late")); print '
    '.$langs->trans("DateActionEnd").''; - if (!$object->fulldayevent) print dol_print_date($object->datef, 'dayhour'); - else print dol_print_date($object->datef, 'day'); + if (!$object->fulldayevent) print dol_print_date($object->datef, 'dayhour', 'tzuser'); + else print dol_print_date($object->datef, 'day', 'tzuser'); if ($object->percentage > 0 && $object->percentage < 100 && $object->datef && $object->datef < ($now - $delay_warning)) print img_warning($langs->trans("Late")); print '
    '; - print dol_print_date($db->jdate($obj->dp), $formatToUse); + print dol_print_date($db->jdate($obj->dp), $formatToUse, 'tzuser'); $late = 0; if ($obj->percent == 0 && $obj->dp && $db->jdate($obj->dp) < ($now - $delay_warning)) $late = 1; if ($obj->percent == 0 && !$obj->dp && $obj->dp2 && $db->jdate($obj->dp) < ($now - $delay_warning)) $late = 1; @@ -749,7 +749,7 @@ if ($resql) // End date if (!empty($arrayfields['a.datep2']['checked'])) { print ''; - print dol_print_date($db->jdate($obj->dp2), $formatToUse); + print dol_print_date($db->jdate($obj->dp2), $formatToUse, 'tzuser'); print ''.dol_print_date($db->jdate($obj->datec), 'dayhour').''.dol_print_date($db->jdate($obj->datec), 'dayhour', 'tzuser').''.dol_print_date($db->jdate($obj->datem), 'dayhour').''.dol_print_date($db->jdate($obj->datem), 'dayhour', 'tzuser').'
    '.$langs->trans("DateCreation").''; - print dol_print_date($object->datec, 'dayhour'); + print dol_print_date($object->datec, 'dayhour', 'tzuser'); print ' - '.$langs->trans("TimeElapsedSince").': '.convertSecondToTime(roundUpToNextMultiple($now - $object->datec, 60)).''; print '
    '.$langs->trans("TicketReadOn").''; if (!empty($object->date_read)) { - print dol_print_date($object->date_read, 'dayhour'); + print dol_print_date($object->date_read, 'dayhour', 'tzuser'); print ' - '.$langs->trans("TicketTimeToRead").': '.convertSecondToTime(roundUpToNextMultiple($object->date_read - $object->datec, 60)).''; print ' - '.$langs->trans("TimeElapsedSince").': '.convertSecondToTime(roundUpToNextMultiple($now - $object->date_read, 60)).''; } @@ -954,7 +954,7 @@ elseif (empty($action) || $action == 'view' || $action == 'addlink' || $action = // Close date print '
    '.$langs->trans("TicketCloseOn").''; if (!empty($object->date_close)) { - print dol_print_date($object->date_close, 'dayhour'); + print dol_print_date($object->date_close, 'dayhour', 'tzuser'); } print '
    '; print $form->textwithpicto($langs->trans("PhysicalStock"), $text_stock_options, 1); diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php index ed537f1bd4e..64dd485671d 100644 --- a/htdocs/product/stock/replenish.php +++ b/htdocs/product/stock/replenish.php @@ -538,9 +538,9 @@ print dol_get_fiche_head($head, 'replenish', '', -1, ''); print ''.$langs->trans("ReplenishmentStatusDesc").''."\n"; if (empty($fk_warhouse) && !empty($conf->global->STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE)) { - print ''.$langs->trans("ReplenishmentStatusDescPerWarehouse").''."
    \n"; + print ''.$langs->trans("ReplenishmentStatusDescPerWarehouse").''."\n"; } -print '
    '; +print '

    '; if ($usevirtualstock == 1) { print $langs->trans("CurentSelectionMode").': '; From 01b7b7692d60a2aa3abf1357b14decf55bc9d7c6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 03:22:54 +0100 Subject: [PATCH 180/219] Prepare 13.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 97f02998e83..1cc471e0244 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', '13.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', '13.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 f4f9a7c461789881fed4c3d023090bf26ec73ce8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 09:44:51 +0100 Subject: [PATCH 181/219] Clean page of info tools --- htdocs/admin/system/dolibarr.php | 10 +-- htdocs/admin/system/phpinfo.php | 118 ++++++++----------------------- htdocs/admin/system/security.php | 29 +++++--- htdocs/langs/en_US/admin.lang | 1 + 4 files changed, 55 insertions(+), 103 deletions(-) diff --git a/htdocs/admin/system/dolibarr.php b/htdocs/admin/system/dolibarr.php index 2efb2a14a7d..5e89d8ae683 100644 --- a/htdocs/admin/system/dolibarr.php +++ b/htdocs/admin/system/dolibarr.php @@ -73,7 +73,7 @@ print load_fiche_titre($title, '', 'title_setup'); // Version print '
    '; print ''; -print ''."\n"; +print ''."\n"; print '
    '.$langs->trans("Version").''.$langs->trans("Value").'
    '.$langs->trans("Version").''.$langs->trans("Value").'
    '.$langs->trans("CurrentVersion").' ('.$langs->trans("Programs").')'.DOL_VERSION; // If current version differs from last upgrade if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE)) @@ -139,7 +139,7 @@ print '
    '; // Session print '
    '; print ''; -print ''."\n"; +print ''."\n"; print ''."\n"; print ''."\n"; print ''."\n"; @@ -180,7 +180,7 @@ if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_S print '
    '; print '
    '.$langs->trans("Session").''.$langs->trans("Value").'
    '.$langs->trans("Session").''.$langs->trans("Value").'
    '.$langs->trans("SessionSavePath").''.session_save_path().'
    '.$langs->trans("SessionName").''.session_name().'
    '.$langs->trans("SessionId").''.session_id().'
    '; print ''; - print ''; + print ''; print ''; print ''; print ''."\n"; @@ -202,7 +202,7 @@ if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_S // Localisation print '
    '; print '
    '.$langs->trans("LanguageFilesCachedIntoShmopSharedMemory").''.$langs->trans("LanguageFilesCachedIntoShmopSharedMemory").''.$langs->trans("NbOfEntries").''.$langs->trans("Address").'
    '; -print ''."\n"; +print ''."\n"; print ''."\n"; print ''."\n"; // Thousands @@ -342,7 +342,7 @@ $configfileparameters = array( print '
    '; print '
    '.$langs->trans("LocalisationDolibarrParameters").''.$langs->trans("Value").'
    '.$langs->trans("LocalisationDolibarrParameters").''.$langs->trans("Value").'
    '.$langs->trans("LanguageBrowserParameter", "HTTP_ACCEPT_LANGUAGE").''.$_SERVER["HTTP_ACCEPT_LANGUAGE"].'
    '.$langs->trans("CurrentUserLanguage").''.$langs->getDefaultLang().'
    '; print ''; -print ''; print ''; diff --git a/htdocs/admin/system/phpinfo.php b/htdocs/admin/system/phpinfo.php index cf38687f66f..a7bce7a3025 100644 --- a/htdocs/admin/system/phpinfo.php +++ b/htdocs/admin/system/phpinfo.php @@ -69,13 +69,13 @@ if ($maxphp > 0 && $maxphp2 > 0 && $maxphp > $maxphp2) print '
    '.$langs->trans("Parameters").' '; +print ''.$langs->trans("Parameters").' '; print $langs->trans("ConfigurationFile").' ('.$conffiletoshowshort.')'; print ''.$langs->trans("Parameter").'
    '; -print ''; +print ''; $ErrorPicturePath = "../../theme/eldy/img/error.png"; $WarningPicturePath = "../../theme/eldy/img/warning.png"; $OkayPicturePath = "../../theme/eldy/img/tick.png"; -print ''; // Status print ''; - // Amount payed + // Amount paid print ''; print "\n"; if ($objp->paye == 1) // If at least one invoice is paid, disable delete diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index fb2f114b579..721d7c10111 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -370,7 +370,7 @@ class BonPrelevement extends CommonObject $num = count($facs); for ($i = 0; $i < $num; $i++) { - /* Tag invoice as payed */ + /* Tag invoice as paid */ dol_syslog(get_class($this)."::set_credite set_paid fac ".$facs[$i]); $fac = new Facture($this->db); $fac->fetch($facs[$i]); diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php index ffb2d04e155..a281aeb2198 100644 --- a/htdocs/compta/sociales/class/chargesociales.class.php +++ b/htdocs/compta/sociales/class/chargesociales.class.php @@ -421,7 +421,7 @@ class ChargeSociales extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Tag social contribution as payed completely + * Tag social contribution as paid completely * * @param User $user Object user making change * @return int <0 if KO, >0 if OK @@ -439,7 +439,7 @@ class ChargeSociales extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Remove tag payed on social contribution + * Remove tag paid on social contribution * * @param User $user Object user making change * @return int <0 if KO, >0 if OK @@ -459,7 +459,7 @@ class ChargeSociales extends CommonObject * Retourne le libelle du statut d'une charge (impaye, payee) * * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=short label + picto, 6=Long label + picto - * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise) + * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount paid if you have it, 1 otherwise) * @return string Label */ public function getLibStatut($mode = 0, $alreadypaid = -1) @@ -473,7 +473,7 @@ class ChargeSociales extends CommonObject * * @param int $status Id status * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=short label + picto, 6=Long label + picto - * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise) + * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount paid if you have it, 1 otherwise) * @return string Label */ public function LibStatut($status, $mode = 0, $alreadypaid = -1) diff --git a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php index 2f4f772fca0..ca46bdadfea 100644 --- a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php +++ b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php @@ -110,7 +110,7 @@ class PaymentSocialContribution extends CommonObject * Use this->amounts to have list of lines for the payment * * @param User $user User making payment - * @param int $closepaidcontrib 1=Also close payed contributions to paid, 0=Do nothing more + * @param int $closepaidcontrib 1=Also close paid contributions to paid, 0=Do nothing more * @return int <0 if KO, id of payment if OK */ public function create($user, $closepaidcontrib = 0) @@ -178,7 +178,7 @@ class PaymentSocialContribution extends CommonObject { $amount = price2num($amount); - // If we want to closed payed invoices + // If we want to closed paid invoices if ($closepaidcontrib) { $contrib = new ChargeSociales($this->db); diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php index 51cac4c7394..4b97070cce6 100644 --- a/htdocs/compta/tva/class/tva.class.php +++ b/htdocs/compta/tva/class/tva.class.php @@ -413,7 +413,7 @@ class Tva extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * VAT payed + * Total of VAT paid into invoice * * @param int $year Year * @return double Amount @@ -451,7 +451,7 @@ class Tva extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Total of the VAT payed + * Total of the VAT paid * * @param int $year Year * @return double Amount diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php index 4a16d996ab8..576a9038165 100644 --- a/htdocs/compta/tva/index.php +++ b/htdocs/compta/tva/index.php @@ -543,7 +543,7 @@ print '
    '; /* - * Payed + * Paid */ print load_fiche_titre($langs->trans("VATPaid"), '', ''); diff --git a/htdocs/core/boxes/box_factures_fourn_imp.php b/htdocs/core/boxes/box_factures_fourn_imp.php index d345f3d33b0..99848d916f4 100644 --- a/htdocs/core/boxes/box_factures_fourn_imp.php +++ b/htdocs/core/boxes/box_factures_fourn_imp.php @@ -26,7 +26,7 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; /** - * Class to manage the box to show not payed suppliers invoices + * Class to manage the box to show not paid suppliers invoices */ class box_factures_fourn_imp extends ModeleBoxes { diff --git a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php index 19e78eb4ff9..bcb90df2bb1 100644 --- a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php @@ -748,7 +748,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $pdf->SetFont('', '', $default_font_size - 1); $pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L'); - // Payed + // Paid $thirdparty = $object->thirdparty; $carac_client_name = pdfBuildThirdpartyName($thirdparty, $outputlangs); diff --git a/htdocs/don/payment/card.php b/htdocs/don/payment/card.php index c7c16ee970b..e827bca338d 100644 --- a/htdocs/don/payment/card.php +++ b/htdocs/don/payment/card.php @@ -184,7 +184,7 @@ if ($resql) print '
    '; // Status print ''; - // Amount payed + // Amount paid print ''; print "\n"; if ($objp->paid == 1) { diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index babe69206ce..ad55ec4b537 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -66,14 +66,14 @@ class ExpenseReport extends CommonObject public $date_fin; /** - * 0=draft, 2=validated (attente approb), 4=canceled, 5=approved, 6=payed, 99=denied + * 0=draft, 2=validated (attente approb), 4=canceled, 5=approved, 6=paid, 99=denied * * @var int Status */ public $status; /** - * 0=draft, 2=validated (attente approb), 4=canceled, 5=approved, 6=payed, 99=denied + * 0=draft, 2=validated (attente approb), 4=canceled, 5=approved, 6=paid, 99=denied * * @var int Status * @deprecated diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index c8ae31398c0..83408d9ba6c 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1248,7 +1248,7 @@ class FactureFournisseur extends CommonInvoice // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Tag invoice as a payed invoice + * Tag invoice as a paid invoice * * @param User $user Object user * @param string $close_code Code indicates whether the class has paid in full while payment is incomplete. Not implementd yet. diff --git a/htdocs/fourn/class/paiementfourn.class.php b/htdocs/fourn/class/paiementfourn.class.php index 56d4af045f4..bb0ecbcfa7c 100644 --- a/htdocs/fourn/class/paiementfourn.class.php +++ b/htdocs/fourn/class/paiementfourn.class.php @@ -229,7 +229,7 @@ class PaiementFourn extends Paiement $invoice = new FactureFournisseur($this->db); $invoice->fetch($facid); - // If we want to closed payed invoices + // If we want to closed paid invoices if ($closepaidinvoices) { $paiement = $invoice->getSommePaiement(); diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 00e0e33ea1e..ac8b7b75dbf 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -489,7 +489,7 @@ if (empty($reshook)) $result = $discountcheck->fetch(0, 0, $object->id); $canconvert = 0; - if ($object->type == FactureFournisseur::TYPE_DEPOSIT && empty($discountcheck->id)) $canconvert = 1; // we can convert deposit into discount if deposit is payed (completely, partially or not at all) and not already converted (see real condition into condition used to show button converttoreduc) + if ($object->type == FactureFournisseur::TYPE_DEPOSIT && empty($discountcheck->id)) $canconvert = 1; // we can convert deposit into discount if deposit is paid (completely, partially or not at all) and not already converted (see real condition into condition used to show button converttoreduc) if (($object->type == FactureFournisseur::TYPE_CREDIT_NOTE || $object->type == FactureFournisseur::TYPE_STANDARD) && $object->paye == 0 && empty($discountcheck->id)) $canconvert = 1; // we can convert credit note into discount if credit note is not refunded completely and not already converted and amount of payment is 0 (see also the real condition used as the condition to show button converttoreduc) if ($canconvert) { diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php index 8a7e0cc8054..a7619cd84ac 100644 --- a/htdocs/fourn/facture/paiement.php +++ b/htdocs/fourn/facture/paiement.php @@ -511,7 +511,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie if (empty($reshook)) { /* - * All unpayed supplier invoices + * All unpaid supplier invoices */ $sql = 'SELECT f.rowid as facid, f.ref, f.ref_supplier, f.type, f.total_ht, f.total_ttc,'; $sql .= ' f.multicurrency_code, f.multicurrency_tx, f.multicurrency_total_ht, f.multicurrency_total_tva, f.multicurrency_total_ttc,'; diff --git a/htdocs/fourn/paiement/card.php b/htdocs/fourn/paiement/card.php index 06cff4b5c9e..355b84796f2 100644 --- a/htdocs/fourn/paiement/card.php +++ b/htdocs/fourn/paiement/card.php @@ -305,7 +305,7 @@ if ($result > 0) print ''; // Expected to pay print ''; - // Payed + // Paid print ''; // Status print ''; diff --git a/htdocs/install/mysql/data/llx_c_action_trigger.sql b/htdocs/install/mysql/data/llx_c_action_trigger.sql index eeca137dbc0..7390c3234a5 100644 --- a/htdocs/install/mysql/data/llx_c_action_trigger.sql +++ b/htdocs/install/mysql/data/llx_c_action_trigger.sql @@ -101,7 +101,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAYED','Expense report billed','Executed when an expense report is set as billed','expensereport',204); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAID','Expense report billed','Executed when an expense report is set as billed','expensereport',204); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',205); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',211); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',212); diff --git a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql index 96a681d4c56..2af0c3373c4 100644 --- a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql +++ b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql @@ -563,3 +563,6 @@ INSERT INTO llx_c_socialnetworks (entity, code, label, url, icon, active) VALUES ALTER TABLE llx_product_fournisseur_price ADD COLUMN packaging varchar(64); ALTER TABLE llx_projet ADD COLUMN fk_opp_status_end integer DEFAULT NULL; + + +UPDATE llx_c_action_trigger SET code = 'EXPENSE_REPORT_PAID' where code = 'EXPENSE_REPORT_PAYED'; diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql index 00bf30f6672..c6325454b86 100644 --- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql +++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql @@ -248,7 +248,7 @@ CREATE TABLE llx_expensereport ( fk_user_approve integer DEFAULT NULL, fk_user_refuse integer DEFAULT NULL, fk_user_cancel integer DEFAULT NULL, - fk_statut integer NOT NULL, -- 1=brouillon, 2=validé (attente approb), 4=annulé, 5=approuvé, 6=payed, 99=refusé + fk_statut integer NOT NULL, -- 1=draft, 2=validate (waiting approbation), 4=cancel, 5=approved, 6=paid, 99=refused fk_c_paiement integer DEFAULT NULL, paid smallint DEFAULT 0 NOT NULL, note_public text, @@ -524,13 +524,13 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_PAYED','Customer invoice paid','Executed when a customer invoice is paid','facture',7); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_PAYED','Supplier invoice paid','Executed when a supplier invoice is paid','invoice_supplier',16); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20); diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 6d662e64893..6e9ea4601f8 100644 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -509,7 +509,7 @@ UPDATE llx_facturedet SET situation_percent = 100 WHERE situation_percent IS NUL -- from llx_facturedet as fd, llx_facture as f where fd.fk_facture = f.rowid AND (total_ht - situation_percent / 100 * subprice * qty * (1 - (fd.remise_percent / 100))) > 0.01 and f.type = 5; --- Note to make all deposit as payed when there is already a discount generated from it. +-- Note to make all deposit as paid when there is already a discount generated from it. --drop table tmp_invoice_deposit_mark_as_available; --create table tmp_invoice_deposit_mark_as_available as select * from llx_facture as f where f.type = 3 and f.paye = 0 and f.rowid in (select fk_facture_source from llx_societe_remise_except); --update llx_facture set paye = 1, fk_statut = 2 where rowid in (select rowid from tmp_invoice_deposit_mark_as_available); diff --git a/htdocs/install/mysql/tables/llx_expensereport.sql b/htdocs/install/mysql/tables/llx_expensereport.sql index 772888620fb..d591de78436 100644 --- a/htdocs/install/mysql/tables/llx_expensereport.sql +++ b/htdocs/install/mysql/tables/llx_expensereport.sql @@ -43,7 +43,7 @@ CREATE TABLE llx_expensereport ( fk_user_approve integer DEFAULT NULL, fk_user_refuse integer DEFAULT NULL, fk_user_cancel integer DEFAULT NULL, - fk_statut integer NOT NULL, -- 1=brouillon, 2=validated (waiting approval), 4=canceled, 5=approved, 6=payed, 99=refused + fk_statut integer NOT NULL, -- 1=brouillon, 2=validated (waiting approval), 4=canceled, 5=approved, 6=paid, 99=refused fk_c_paiement integer DEFAULT NULL, -- deprecated paid smallint default 0 NOT NULL, -- deprecated (status is used instead) note_public text, diff --git a/htdocs/loan/class/loan.class.php b/htdocs/loan/class/loan.class.php index ae683c829a5..1a888375bf3 100644 --- a/htdocs/loan/class/loan.class.php +++ b/htdocs/loan/class/loan.class.php @@ -377,7 +377,7 @@ class Loan extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Tag loan as payed completely + * Tag loan as paid completely * * @param User $user Object user making change * @return int <0 if KO, >0 if OK @@ -445,7 +445,7 @@ class Loan extends CommonObject * Return label of loan status (unpaid, paid) * * @param int $mode 0=label, 1=short label, 2=Picto + Short label, 3=Picto, 4=Picto + Label - * @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise) + * @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount paid if you have it, 1 otherwise) * @return string Label */ public function getLibStatut($mode = 0, $alreadypaid = -1) @@ -459,7 +459,7 @@ class Loan extends CommonObject * * @param int $status Id status * @param int $mode 0=Label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Label, 5=Short label + Picto - * @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise) + * @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount paid if you have it, 1 otherwise) * @return string Label */ public function LibStatut($status, $mode = 0, $alreadypaid = -1) diff --git a/htdocs/loan/list.php b/htdocs/loan/list.php index 79e38dbdeb1..744a6929fc8 100644 --- a/htdocs/loan/list.php +++ b/htdocs/loan/list.php @@ -93,7 +93,7 @@ $help_url = ''; $title = $langs->trans('Loans'); $sql = "SELECT l.rowid, l.label, l.capital, l.datestart, l.dateend, l.paid,"; -$sql .= " SUM(pl.amount_capital) as alreadypayed"; +$sql .= " SUM(pl.amount_capital) as alreadypaid"; $sql .= " FROM ".MAIN_DB_PREFIX."loan as l LEFT JOIN ".MAIN_DB_PREFIX."payment_loan AS pl"; $sql .= " ON l.rowid = pl.fk_loan"; $sql .= " WHERE l.entity = ".$conf->entity; @@ -229,7 +229,7 @@ if ($resql) print ''; print ''; print ''; diff --git a/htdocs/loan/payment/card.php b/htdocs/loan/payment/card.php index 6aebd9fb33d..ac76dbf9053 100644 --- a/htdocs/loan/payment/card.php +++ b/htdocs/loan/payment/card.php @@ -149,7 +149,7 @@ print ''; /* - * List of loans payed + * List of loans paid */ $disable_delete = 0; @@ -194,7 +194,7 @@ if ($resql) // print ''; // Status print ''; - // Amount payed + // Amount paid $amount_payed = $objp->amount_capital + $objp->amount_insurance + $objp->amount_interest; print ''; diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index 1a643323dce..8672fa1c2bf 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -1855,7 +1855,7 @@ if (preg_match('/^dopayment/', $action)) // If we choosed/click on the payment { $noidempotency_key = (GETPOSTISSET('noidempotency') ? GETPOST('noidempotency', 'int') : 0); // By default noidempotency is unset, so we must use a different tag/ref for each payment. If set, we can pay several times the same tag/ref. $paymentintent = $stripe->getPaymentIntent($amount, $currency, $tag, 'Stripe payment: '.$fulltag.(is_object($object) ? ' ref='.$object->ref : ''), $object, $stripecu, $stripeacc, $servicestatus, 0, 'automatic', false, null, 0, $noidempotency_key); - // The paymentintnent has status 'requires_payment_method' (even if paymentintent was already payed) + // The paymentintnent has status 'requires_payment_method' (even if paymentintent was already paid) //var_dump($paymentintent); if ($stripe->error) setEventMessages($stripe->error, null, 'errors'); } diff --git a/htdocs/public/payment/paymentok.php b/htdocs/public/payment/paymentok.php index 346e4003e4c..f4b9f0feb5b 100644 --- a/htdocs/public/payment/paymentok.php +++ b/htdocs/public/payment/paymentok.php @@ -614,7 +614,7 @@ if ($ispaymentok) $ispostactionok = -1; } } else { - $postactionmessages[] = 'Member '.$tmptag['MEM'].' for subscription payed was not found'; + $postactionmessages[] = 'Member '.$tmptag['MEM'].' for subscription paid was not found'; $ispostactionok = -1; } } elseif (array_key_exists('INV', $tmptag) && $tmptag['INV'] > 0) @@ -718,7 +718,7 @@ if ($ispaymentok) $ispostactionok = -1; } } else { - $postactionmessages[] = 'Invoice payed '.$tmptag['INV'].' was not found'; + $postactionmessages[] = 'Invoice paid '.$tmptag['INV'].' was not found'; $ispostactionok = -1; } } else { diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php index 81a1c167a02..3e8a6c91f92 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -1068,7 +1068,7 @@ class Thirdparties extends DolibarrApi /** * Return list of invoices qualified to be corrected by a credit note. * Invoices matching the following rules are returned - * (validated + payment on process) or classified (payed completely or payed partialy) + not already replaced + not already a credit note + * (validated + payment on process) or classified (paid completely or paid partialy) + not already replaced + not already a credit note * * @param int $id Id of thirdparty * From 3798892fd3348ec66b555a089240af5a45e643b7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 3 Feb 2021 19:53:28 +0100 Subject: [PATCH 212/219] FIX Hide/Unhide external ICSS calendars --- htdocs/comm/action/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index 016201be0f3..a603010f46a 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -514,7 +514,7 @@ if (!empty($conf->use_javascript_ajax)) // If javascript on { $s .= '
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("Parameter").''.$langs->trans("Value").'
    '.$langs->trans("Version").''; +print '
    '.$langs->trans("Version").''; $arrayphpminversionerror = array(5, 5, 0); $arrayphpminversionwarning = array(5, 6, 0); @@ -129,11 +129,8 @@ $loadedExtensions = array_map('strtolower', get_loaded_extensions(false)); print ''; print ''; -print ''; -//print ''; -print ''; -print ''; -print ''; +print ''; +print ''; print ''; $functions = ["mb_check_encoding"]; @@ -141,9 +138,6 @@ $name = "MBString"; print ""; print ""; -//print getTableColumn($name, $activatedExtensions); -print getTableColumn($name, $loadedExtensions); -print getTableColumnFunction($functions); print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); print ""; @@ -152,9 +146,6 @@ $name = "JSON"; print ""; print ""; -//print getTableColumn($name, $activatedExtensions); -print getTableColumn($name, $loadedExtensions); -print getTableColumnFunction($functions); print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); print ""; @@ -163,8 +154,6 @@ $name = "GD"; print ""; print ""; -print getTableColumn($name, $loadedExtensions); -print getTableColumnFunction($functions); print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); print ""; @@ -173,8 +162,6 @@ $name = "Curl"; print ""; print ""; -print getTableColumn($name, $loadedExtensions); -print getTableColumnFunction($functions); print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); print ""; @@ -185,8 +172,6 @@ if (empty($_SERVER["SERVER_ADMIN"]) || $_SERVER["SERVER_ADMIN"] != 'doliwamp@loc print ""; print ""; - print getTableColumn($name, $loadedExtensions); - print getTableColumnFunction($functions); print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); print ""; } @@ -196,8 +181,6 @@ $name = "IMAP"; print ""; print ""; -print getTableColumn($name, $loadedExtensions); -print getTableColumnFunction($functions); print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); print ""; @@ -206,8 +189,6 @@ $name = "xDebug"; print ""; print ""; -print getTableColumn($name, $loadedExtensions); -print getTableColumnFunction($functions); print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions); print ""; @@ -222,7 +203,7 @@ foreach ($phparray as $key => $value) print '
    '; print '
    '.$langs->trans("Extension").''.$langs->trans("EnabledInSetup").''.$langs->trans("Loaded").''.$langs->trans("FunctionTest").''.$langs->trans("Result").''.$langs->trans("Extension").''.$langs->trans("Test").'
    ".$name."
    ".$name."
    ".$name."
    ".$name."
    ".$name."
    ".$name."
    ".$name."
    '; print ''; - print ''; + print ''; print ''; print "\n"; @@ -269,69 +250,6 @@ llxFooter(); $db->close(); -/** - * Return a table column with a indicator (okay or warning), based on the given name and list - * - * @param string $name The name to check inside the given list - * @param array $list A list that should contains the given name - * - * @return string - */ -function getTableColumn($name, array $list) -{ - global $langs; - - $name = strtolower($name); - $html = ""; - - return $html; -} - -/** - * Return a table column with a indicator (okay or warning), based on the given functions to check - * - * @param array $functions A list with functions to check - * - * @return string - */ -function getTableColumnFunction(array $functions) -{ - if (count($functions) < 1) - { - return ""; - } - - $result = true; - $html = ""; - - return $html; -} - /** * Return a result column with a translated result text * @@ -339,7 +257,6 @@ function getTableColumnFunction(array $functions) * @param array $activated A list with all activated PHP extensions. Deprecated. * @param array $loaded A list with all loaded PHP extensions * @param array $functions A list with all PHP functions to check - * * @return string */ function getResultColumn($name, array $activated, array $loaded, array $functions) @@ -347,6 +264,7 @@ function getResultColumn($name, array $activated, array $loaded, array $function global $langs; $result = true; + //$result = $result && in_array(strtolower($name), $activated); $result = $result && in_array(strtolower($name), $loaded); @@ -356,7 +274,29 @@ function getResultColumn($name, array $activated, array $loaded, array $function } $html = ""; return $html; diff --git a/htdocs/admin/system/security.php b/htdocs/admin/system/security.php index f978c0dcd81..f0ada86a393 100644 --- a/htdocs/admin/system/security.php +++ b/htdocs/admin/system/security.php @@ -43,9 +43,6 @@ if (GETPOST('action', 'aZ09') == 'donothing') * View */ -$form = new Form($db); -$nowstring = dol_print_date(dol_now(), 'dayhourlog'); - llxHeader(); print load_fiche_titre($langs->trans("Security"), '', 'title_setup'); @@ -78,7 +75,7 @@ else { print '
    '; print '
    '; -print load_fiche_titre($langs->trans("ConfigFile"), '', 'folder'); +print load_fiche_titre($langs->trans("ConfigurationFile"), '', 'folder'); print ''.$langs->trans("dolibarr_main_prod").': '.$dolibarr_main_prod; if (empty($dolibarr_main_prod)) { @@ -90,7 +87,12 @@ print ''.$langs->trans("dolibarr_nocsrfcheck").': '.$dolibarr_n if (!empty($dolibarr_nocsrfcheck)) { print img_picto('', 'warning').'   '.$langs->trans("IfYouAreOnAProductionSetThis", 0); } +print '
    '; +print ''.$langs->trans("dolibarr_main_restrict_ip").': '.$dolibarr_main_restrict_ip; +/*if (empty($dolibarr_main_restrict_ip)) { + print '   '.img_picto('', 'warning').' '.$langs->trans("IfYouAreOnAProductionSetThis", 1); +}*/ print '
    '; print '
    '; @@ -102,9 +104,17 @@ print ''.$langs->trans("PermissionsOnFilesInWebRoot").': '; print 'TODO'; print '
    '; -print ''.$langs->trans("PermissionsOnFile", 'conf.php').': '; -// TODO Check permission on file conf.php (read only for the web user) -print 'TODO'; +print ''.$langs->trans("PermissionsOnFile", $conffile).': '; // $conffile is defined into filefunc.inc.php +$perms = fileperms($dolibarr_main_document_root.'/'.$conffile); +if ($perms) { + if (($perms & 0x0004) || ($perms & 0x0002)) { + print img_warning().' '.$langs->trans("ConfFileIsReadableOrWritableByAnyUsers"); + } else { + print img_picto('', 'tick'); + } +} else { + print img_warning().' '.$langs->trans("FailedToReadFile", $conffile); +} print '
    '; print '
    '; @@ -137,14 +147,15 @@ print '
    '; print load_fiche_titre($langs->trans("Menu").' '.$langs->trans("SecuritySetup"), '', 'folder'); //print ''.$langs->trans("PasswordEncryption").': '; -print 'MAIN_SECURITY_HASH_ALGO = '.(empty($conf->global->MAIN_SECURITY_HASH_ALGO) ? 'unset' : '')."   "; +print 'MAIN_SECURITY_HASH_ALGO = '.(empty($conf->global->MAIN_SECURITY_HASH_ALGO) ? $langs->trans("Undefined") : '')."   "; print '   If unset: \'md5\' '; print ' - Recommanded value: \'password_hash\'
    '; -print 'MAIN_SECURITY_SALT = '.$conf->global->MAIN_SECURITY_SALT.'
    '; +print 'MAIN_SECURITY_SALT = '.(empty($conf->global->MAIN_SECURITY_SALT) ? $langs->trans("Undefined") : '').'
    '; print '
    '; // TODO print ''.$langs->trans("AntivirusEnabledOnUpload").': '; +print empty($conf->global->MAIN_ANTIVIRUS_COMMAND) ? '' : img_picto('', 'tick').' '; print yn($conf->global->MAIN_ANTIVIRUS_COMMAND ? 1 : 0); if (!empty($conf->global->MAIN_ANTIVIRUS_COMMAND)) { print '   - '.$conf->global->MAIN_ANTIVIRUS_COMMAND; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index bba6966fa45..cc10b054606 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -2095,3 +2095,4 @@ SeeLinkToOnlineDocumentation=See link to online documention on top menu for exam SHOW_SUBPRODUCT_REF_IN_PDF=If the feature "%s" of module %s is used, show details of subproducts of a kit on PDF. AskThisIDToYourBank=Contact your bank to get this ID AdvancedModeOnly=Permision available in Advanced permission mode only +ConfFileIsReadableOrWritableByAnyUsers=The conf file is reabable or writable by any users. Give permission to web server user and group only. From fc1d8a2c5bf134ed04f9d26b7f2abaa73dfc8251 Mon Sep 17 00:00:00 2001 From: ibuiv <50403308+ibuiv@users.noreply.github.com> Date: Tue, 2 Feb 2021 10:01:54 +0100 Subject: [PATCH 182/219] FIX(path) htdocs removed --- htdocs/fourn/class/fournisseur.commande.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index d7af9b46470..14589374e3d 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -3234,7 +3234,7 @@ class CommandeFournisseur extends CommonOrder { if (is_array($supplierorderdispatch->lines) && count($supplierorderdispatch->lines) > 0) { - require_once DOL_DOCUMENT_ROOT.'/htdocs/product/class/product.class.php'; + require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; $date_liv = dol_now(); // Build array with quantity deliverd by product From 2f6a8c85c21b3a13976080140f0b6adcf9a1d53d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 10:25:57 +0100 Subject: [PATCH 183/219] Doc --- htdocs/stripe/class/stripe.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index e1ee0138287..9722de167f9 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -317,7 +317,7 @@ class Stripe extends CommonObject * @param int $mode automatic=automatic confirmation/payment when conditions are ok, manual=need to call confirm() on intent * @param boolean $confirmnow false=default, true=try to confirm immediatly after create (if conditions are ok) * @param string $payment_method 'pm_....' (if known) - * @param string $off_session If we use an already known payment method to pay off line. + * @param string $off_session If we use an already known payment method to pay when customer is not available during the checkout flow. * @param string $noidempotency_key Do not use the idempotency_key when creating the PaymentIntent * @return \Stripe\PaymentIntent|null Stripe PaymentIntent or null if not found and failed to create */ From 3b050c34520fd072a95c529a920af50373ce0eca Mon Sep 17 00:00:00 2001 From: lvessiller Date: Tue, 2 Feb 2021 10:34:33 +0100 Subject: [PATCH 184/219] FIX select default mail template --- htdocs/core/class/html.formmail.class.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index 855ce1ed7ad..d19269ffd5f 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -455,9 +455,11 @@ class FormMail extends Form // Zone to select email template if (count($modelmail_array) > 0) { + $model_mail_selected_id = GETPOSTISSET('modelmailselected') ? GETPOST('modelmailselected', 'int') : $arraydefaultmessage->id; + // If list of template is filled $out .= '
    '."\n"; - $out .= ''.$langs->trans('SelectMailModel').': '.$this->selectarray('modelmailselected', $modelmail_array, 0, 1, 0, 0, '', 0, 0, 0, '', 'minwidth100'); + $out .= ''.$langs->trans('SelectMailModel').': '.$this->selectarray('modelmailselected', $modelmail_array, $model_mail_selected_id, 1, 0, 0, '', 0, 0, 0, '', 'minwidth100'); if ($user->admin) $out .= info_admin($langs->trans("YouCanChangeValuesForThisListFrom", $langs->transnoentitiesnoconv('Setup').' - '.$langs->transnoentitiesnoconv('EMails')), 1); $out .= '   '; $out .= ''; From 95e255747fa0b79e54f1ee96105c96d4fcce4427 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 10:53:59 +0100 Subject: [PATCH 185/219] Fix accent on graph of expense report --- htdocs/expensereport/class/expensereport.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 8d5cbd3c2cc..babe69206ce 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -2319,7 +2319,7 @@ class ExpenseReport extends CommonObject while ($i < $num) { $obj = $this->db->fetch_object($result); - $ret[$obj->code] = (($langs->trans($obj->code) != $obj->code) ? $langs->trans($obj->code) : $obj->label); + $ret[$obj->code] = (($langs->transnoentitiesnoconv($obj->code) != $obj->code) ? $langs->transnoentitiesnoconv($obj->code) : $obj->label); $i++; } } else { From 506ba822e97969b7e1c018df5c39e179962b6402 Mon Sep 17 00:00:00 2001 From: kamel Date: Tue, 2 Feb 2021 11:06:01 +0100 Subject: [PATCH 186/219] FIX: Select transport mode function when create a supplier invoice and add unique key to the table llx_c_transport_mode in migrate sql --- htdocs/fourn/facture/card.php | 2 +- htdocs/install/mysql/migration/12.0.0-13.0.0.sql | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 00e0e33ea1e..3ff3d72e810 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -2095,7 +2095,7 @@ if ($action == 'create') { $langs->loadLangs(array("intracommreport")); print '
    '; } diff --git a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql index 96a681d4c56..ae9f1f901b7 100644 --- a/htdocs/install/mysql/migration/12.0.0-13.0.0.sql +++ b/htdocs/install/mysql/migration/12.0.0-13.0.0.sql @@ -123,6 +123,7 @@ CREATE TABLE llx_c_transport_mode ( label varchar(255) NOT NULL, active tinyint DEFAULT 1 NOT NULL ) ENGINE=innodb; +ALTER TABLE llx_c_transport_mode ADD UNIQUE INDEX uk_c_transport_mode (code, entity); INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('MAR', 'Transport maritime (y compris camions ou wagons sur bateau)', 1); INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('TRA', 'Transport par chemin de fer (y compris camions sur wagon)', 1); From 218a76ee637f011a519cbb6f4c057e7000e0e618 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 11:06:58 +0100 Subject: [PATCH 187/219] FIX SQL Error with postgres or mysql strict mode --- htdocs/core/boxes/box_factures_imp.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/boxes/box_factures_imp.php b/htdocs/core/boxes/box_factures_imp.php index 08233ff754c..b47f948f4ca 100644 --- a/htdocs/core/boxes/box_factures_imp.php +++ b/htdocs/core/boxes/box_factures_imp.php @@ -110,7 +110,8 @@ class box_factures_imp extends ModeleBoxes $sql .= " AND fk_statut = 1"; if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; if ($user->socid) $sql .= " AND s.rowid = ".$user->socid; - $sql .= " GROUP BY s.nom, s.rowid, s.email, s.code_client, s.logo, f.ref, f.date_lim_reglement,"; + $sql .= " GROUP BY s.rowid, s.nom, s.name_alias, s.code_client, s.code_compta, s.client, s.logo, s.email, s.entity, s.tva_intra, s.siren, s.siret, s.ape, s.idprof4, s.idprof5, s.idprof6,"; + $sql .= " f.ref, f.date_lim_reglement,"; $sql .= " f.type, f.datef, f.total, f.tva, f.total_ttc, f.paye, f.fk_statut, f.rowid"; //$sql.= " ORDER BY f.datef DESC, f.ref DESC "; $sql .= " ORDER BY datelimite ASC, f.ref ASC "; From 3b9bd3cc402fa1fdf0ff7ea5e164c345c5ec20aa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 11:15:16 +0100 Subject: [PATCH 188/219] Fix responsive --- htdocs/core/boxes/box_last_ticket.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/boxes/box_last_ticket.php b/htdocs/core/boxes/box_last_ticket.php index 268a6861524..dbc453eced6 100644 --- a/htdocs/core/boxes/box_last_ticket.php +++ b/htdocs/core/boxes/box_last_ticket.php @@ -134,7 +134,7 @@ class box_last_ticket extends ModeleBoxes $thirdparty->name = $objp->company_name; $link = $thirdparty->getNomUrl(1); } else { - $link = dol_print_email($objp->origin_email); + $link = ''.dol_print_email($objp->origin_email).''; } $r = 0; @@ -149,15 +149,15 @@ class box_last_ticket extends ModeleBoxes // Subject $this->info_box_contents[$i][$r] = array( - 'td' => '', - 'text' => $objp->subject, // Some event have no ref + 'td' => 'class="tdoverflowmax200"', + 'text' => ''.$objp->subject.'', // Some event have no ref 'url' => DOL_URL_ROOT."/ticket/card.php?track_id=".$objp->track_id, ); $r++; // Customer $this->info_box_contents[$i][$r] = array( - 'td' => '', + 'td' => 'class="tdoverflowmax100"', 'text' => $link, 'asis' => 1, ); From c2db7ccf14d0ec8b8a6de941613ab1d9e13cd167 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 11:15:24 +0100 Subject: [PATCH 189/219] Look and feel v14 --- htdocs/theme/eldy/global.inc.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 3b69dfbc0ba..05b0f1308ec 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -3066,6 +3066,9 @@ tr.nocellnopadd td.nobordernopadding, tr.nocellnopadd td.nocellnopadd .smallpaddingimp { padding: 4px !important; } +input.button.smallpaddingimp { + font-size: 0.8em; +} .nopaddingleft { padding-: 0px; } @@ -5662,6 +5665,8 @@ a span.select2-chosen } span#select2-boxbookmark-container, span#select2-boxcombo-container { text-align: ; +} +span#select2-boxbookmark-container { opacity: 0.4; } .select2-container .select2-selection--single .select2-selection__rendered { From 1fd2f126731960b96fd50aed0da5a3de1115575b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 11:15:16 +0100 Subject: [PATCH 190/219] Fix responsive --- htdocs/core/boxes/box_last_ticket.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/boxes/box_last_ticket.php b/htdocs/core/boxes/box_last_ticket.php index 268a6861524..dbc453eced6 100644 --- a/htdocs/core/boxes/box_last_ticket.php +++ b/htdocs/core/boxes/box_last_ticket.php @@ -134,7 +134,7 @@ class box_last_ticket extends ModeleBoxes $thirdparty->name = $objp->company_name; $link = $thirdparty->getNomUrl(1); } else { - $link = dol_print_email($objp->origin_email); + $link = ''.dol_print_email($objp->origin_email).''; } $r = 0; @@ -149,15 +149,15 @@ class box_last_ticket extends ModeleBoxes // Subject $this->info_box_contents[$i][$r] = array( - 'td' => '', - 'text' => $objp->subject, // Some event have no ref + 'td' => 'class="tdoverflowmax200"', + 'text' => ''.$objp->subject.'', // Some event have no ref 'url' => DOL_URL_ROOT."/ticket/card.php?track_id=".$objp->track_id, ); $r++; // Customer $this->info_box_contents[$i][$r] = array( - 'td' => '', + 'td' => 'class="tdoverflowmax100"', 'text' => $link, 'asis' => 1, ); From c94ecb8a42375db322dc34683e86574b4920c65b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 11:34:34 +0100 Subject: [PATCH 191/219] Limit list of draft element in home sections --- htdocs/comm/index.php | 76 ++++++++++++++++++++++++++++++++++++++--- htdocs/compta/index.php | 36 +++++++++++++++++-- 2 files changed, 106 insertions(+), 6 deletions(-) diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php index 384b88655f6..89ca2513ab2 100644 --- a/htdocs/comm/index.php +++ b/htdocs/comm/index.php @@ -161,10 +161,18 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { if ($num > 0) { $i = 0; + $othernb = 0; - while ($i < $nbofloop) { + while ($i < $num && $i < $conf->liste_limit) { $obj = $db->fetch_object($resql); + if ($i >= $max) { + $othernb += 1; + $i++; + $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc); + continue; + } + $propalstatic->id = $obj->rowid; $propalstatic->ref = $obj->ref; $propalstatic->ref_client = $obj->ref_client; @@ -196,6 +204,15 @@ if (!empty($conf->propal->enabled) && $user->rights->propal->lire) { $i++; $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc); } + + if ($othernb) { + print ''; + print ''; + print "\n"; + } + } addSummaryTableLine(3, $num, $nbofloop, $total, "NoProposal"); @@ -236,10 +253,18 @@ if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposa if ($num > 0) { $i = 0; + $othernb = 0; - while ($i < $nbofloop) { + while ($i < $num && $i < $conf->liste_limit) { $obj = $db->fetch_object($resql); + if ($i >= $max) { + $othernb += 1; + $i++; + $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc); + continue; + } + $supplierproposalstatic->id = $obj->rowid; $supplierproposalstatic->ref = $obj->ref; $supplierproposalstatic->total_ht = $obj->total_ht; @@ -270,6 +295,15 @@ if (!empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposa $i++; $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc); } + + if ($othernb) { + print ''; + print ''; + print "\n"; + } + } addSummaryTableLine(3, $num, $nbofloop, $total, "NoProposal"); @@ -310,10 +344,18 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { if ($num > 0) { $i = 0; + $othernb = 0; - while ($i < $nbofloop) { + while ($i < $num && $i < $conf->liste_limit) { $obj = $db->fetch_object($resql); + if ($i >= $max) { + $othernb += 1; + $i++; + $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc); + continue; + } + $orderstatic->id = $obj->rowid; $orderstatic->ref = $obj->ref; $orderstatic->ref_client = $obj->ref_client; @@ -345,6 +387,15 @@ if (!empty($conf->commande->enabled) && $user->rights->commande->lire) { $i++; $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc); } + + if ($othernb) { + print ''; + print ''; + print "\n"; + } + } addSummaryTableLine(3, $num, $nbofloop, $total, "NoProposal"); @@ -385,10 +436,18 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU if ($num > 0) { $i = 0; + $othernb = 0; - while ($i < $nbofloop) { + while ($i < $num && $i < $conf->liste_limit) { $obj = $db->fetch_object($resql); + if ($i >= $max) { + $othernb += 1; + $i++; + $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc); + continue; + } + $supplierorderstatic->id = $obj->rowid; $supplierorderstatic->ref = $obj->ref; $supplierorderstatic->ref_supplier = $obj->ref_suppliert; @@ -420,6 +479,15 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU $i++; $total += (!empty($conf->global->MAIN_DASHBOARD_USE_TOTAL_HT) ? $obj->total_ht : $obj->total_ttc); } + + if ($othernb) { + print ''; + print ''; + print "\n"; + } + } addSummaryTableLine(3, $num, $nbofloop, $total, "NoProposal"); diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 1d4d1a37354..5f5da8f83d9 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -193,11 +193,19 @@ if (!empty($conf->facture->enabled) && $user->rights->facture->lire) $companystatic = new Societe($db); $i = 0; + $othernb = 0; $tot_ttc = 0; - while ($i < $num) + while ($i < $num && $i < $conf->liste_limit) { $obj = $db->fetch_object($resql); + if ($i >= $max) { + $othernb += 1; + $i++; + $tot_ttc += $obj->total_ttc; + continue; + } + $tmpinvoice->id = $obj->rowid; $tmpinvoice->ref = $obj->ref; $tmpinvoice->date = $db->jdate($obj->date); @@ -232,6 +240,14 @@ if (!empty($conf->facture->enabled) && $user->rights->facture->lire) $i++; } + if ($othernb) { + print ''; + print ''; + print "\n"; + } + print ''; print ''; print ''; @@ -290,11 +306,19 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU $companystatic = new Societe($db); $i = 0; + $othernb = 0; $tot_ttc = 0; - while ($i < $num) + while ($i < $num && $i < $conf->liste_limit) { $obj = $db->fetch_object($resql); + if ($i >= $max) { + $othernb += 1; + $i++; + $tot_ttc += $obj->total_ttc; + continue; + } + $facturesupplierstatic->ref = $obj->ref; $facturesupplierstatic->id = $obj->rowid; $facturesupplierstatic->total_ht = $obj->total_ht; @@ -328,6 +352,14 @@ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SU $i++; } + if ($othernb) { + print ''; + print ''; + print "\n"; + } + print ''; print ''; print ''; From 7ff5cd50c322f41557a2d76a0275959f6dbd1e16 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 11:41:32 +0100 Subject: [PATCH 192/219] Fix responsive --- htdocs/compta/bank/various_payment/list.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/htdocs/compta/bank/various_payment/list.php b/htdocs/compta/bank/various_payment/list.php index 9c936c1d943..0d91eb38e7d 100644 --- a/htdocs/compta/bank/various_payment/list.php +++ b/htdocs/compta/bank/various_payment/list.php @@ -424,6 +424,10 @@ if ($result) { $obj = $db->fetch_object($result); + $variousstatic->id = $obj->rowid; + $variousstatic->ref = $obj->rowid; + $variousstatic->label = $obj->label; + print ''; // No @@ -433,15 +437,13 @@ if ($result) // Ref if ($arrayfields['ref']['checked']) { - $variousstatic->id = $obj->rowid; - $variousstatic->ref = $obj->rowid; - print ""; + print '"; if (!$i) $totalarray['nbfield']++; } // Label payment if ($arrayfields['label']['checked']) { - print ""; + print '"; if (!$i) $totalarray['nbfield']++; } @@ -460,7 +462,13 @@ if ($result) // Type if ($arrayfields['type']['checked']) { - print ''; + print ''; if (!$i) $totalarray['nbfield']++; } From b80de4aeaf2f28c17769611951e05a4d659bb164 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 13:04:41 +0100 Subject: [PATCH 193/219] FIX CSRF errors on margin forms --- htdocs/core/class/html.form.class.php | 13 ++++++---- htdocs/core/lib/ajax.lib.php | 9 ++++--- htdocs/core/tpl/objectline_create.tpl.php | 3 +-- htdocs/margin/agentMargins.php | 11 ++------- htdocs/margin/customerMargins.php | 16 +++++-------- htdocs/margin/productMargins.php | 29 +++++++---------------- htdocs/variants/combinations.php | 8 ++++--- 7 files changed, 37 insertions(+), 52 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 448bdad3cd9..bc33692e2fc 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -1927,7 +1927,7 @@ class Form * Return list of products for customer in Ajax if Ajax activated or go to select_produits_list * * @param int $selected Preselected products - * @param string $htmlname Name of HTML select field (must be unique in page) + * @param string $htmlname Name of HTML select field (must be unique in page). * @param int $filtertype Filter on product type (''=nofilter, 0=product, 1=service) * @param int $limit Limit on number of returned lines * @param int $price_level Level of price to show @@ -1949,7 +1949,7 @@ class Form * @param string $nooutput No print, return the output into a string * @return void|string */ - public function select_produits($selected = '', $htmlname = 'productid', $filtertype = '', $limit = 0, $price_level = 0, $status = 1, $finished = 2, $selected_input_value = '', $hidelabel = 0, $ajaxoptions = array(), $socid = 0, $showempty = '1', $forcecombo = 0, $morecss = '', $hidepriceinlabel = 0, $warehouseStatus = '', $selected_combinations = array(), $nooutput = 0) + public function select_produits($selected = '', $htmlname = 'productid', $filtertype = '', $limit = 0, $price_level = 0, $status = 1, $finished = 2, $selected_input_value = '', $hidelabel = 0, $ajaxoptions = array(), $socid = 0, $showempty = '1', $forcecombo = 0, $morecss = '', $hidepriceinlabel = 0, $warehouseStatus = '', $selected_combinations = null, $nooutput = 0) { // phpcs:enable global $langs, $conf; @@ -1997,10 +1997,13 @@ class Form } $out .= ajax_autocompleter($selected, $htmlname, DOL_URL_ROOT.'/product/ajax/products.php', $urloption, $conf->global->PRODUIT_USE_SEARCH_TO_SELECT, 1, $ajaxoptions); - if (!empty($conf->variants->enabled)) { + if (!empty($conf->variants->enabled) && is_array($selected_combinations)) { + // Code to automatically insert with javascript the select of attributes under the select of product + // when a parent of variant has been selected. $out .= ' + '."\n"; - // End of page llxFooter(); $db->close(); diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php index 0a015f0f73d..468d633875d 100644 --- a/htdocs/margin/customerMargins.php +++ b/htdocs/margin/customerMargins.php @@ -87,6 +87,7 @@ $picto = 'margin'; print ''; +print ''; print dol_get_fiche_head($head, 'customerMargins', $titre, 0, $picto); @@ -101,7 +102,7 @@ if ($socid > 0) { { print ''; print ''; $client = true; @@ -111,7 +112,7 @@ if ($socid > 0) { } else { print ''; print ''; } @@ -138,16 +139,16 @@ foreach ($TRes as $prod) { $TProducts[$prod['key']] = $prod['label']; } -print ''; +print ''; print ''; // Categories $TCats = $form->select_all_categories(0, array(), '', 64, 0, 1); print ''; -print ''; +print ''; print ''; @@ -365,11 +366,6 @@ $db->free($result); print ' '; diff --git a/htdocs/variants/combinations.php b/htdocs/variants/combinations.php index 24da596f3c2..933d379e48a 100644 --- a/htdocs/variants/combinations.php +++ b/htdocs/variants/combinations.php @@ -107,7 +107,9 @@ if (($action == 'add' || $action == 'create') && empty($massaction) && !GETPOST( $features = $_SESSION['addvariant_'.$object->id]; if (!$features) { - setEventMessages($langs->trans('ErrorFieldsRequired'), null, 'errors'); + if ($action == 'create') { + setEventMessages($langs->trans('ErrorFieldsRequired'), null, 'errors'); + } } else { $reference = trim($reference); if (empty($reference)) { @@ -763,11 +765,11 @@ if (!empty($id) || !empty($ref)) print '
    '; - print ''.$langs->trans('NewProductCombination').''; // NewVariant + print ''.$langs->trans('NewProductCombination').''; // NewVariant if ($productCombinations) { - print ''.$langs->trans('PropagateVariant').''; + print ''.$langs->trans('PropagateVariant').''; } print '
    '; From 85357a34c8b58d91b2997f2612a6b4ad832a34b8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 13:12:12 +0100 Subject: [PATCH 194/219] Fix style of injected combo to select variant --- htdocs/core/class/html.form.class.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index bc33692e2fc..2482795147a 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2022,7 +2022,7 @@ class Form return; } - console.log("After change we get variants"); + console.log("A change has started. We get variants fields to inject html select"); jQuery.getJSON("'.DOL_URL_ROOT.'/variants/ajax/getCombinations.php", { id: jQuery(this).val() @@ -2040,8 +2040,7 @@ class Form span.append( jQuery(document.createElement(\'div\')).text(val.label).css({ \'font-weight\': \'bold\', - \'display\': \'table-cell\', - \'text-align\': \'right\' + \'display\': \'table-cell\' }) ); From 6b32fd33fd2b6e857d832a650867b3fee649218f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 13:33:44 +0100 Subject: [PATCH 195/219] Fix export with excell --- ...el2007new.modules.php => export_excel2007.modules.php} | 8 ++++---- htdocs/install/upgrade2.php | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) rename htdocs/core/modules/export/{export_excel2007new.modules.php => export_excel2007.modules.php} (98%) diff --git a/htdocs/core/modules/export/export_excel2007new.modules.php b/htdocs/core/modules/export/export_excel2007.modules.php similarity index 98% rename from htdocs/core/modules/export/export_excel2007new.modules.php rename to htdocs/core/modules/export/export_excel2007.modules.php index eb111ebb985..b93a0a0c8de 100644 --- a/htdocs/core/modules/export/export_excel2007new.modules.php +++ b/htdocs/core/modules/export/export_excel2007.modules.php @@ -17,7 +17,7 @@ */ /** - * \file htdocs/core/modules/export/export_excel2007new.modules.php + * \file htdocs/core/modules/export/export_excel2007.modules.php * \ingroup export * \brief File of class to generate export file with Excel format */ @@ -32,7 +32,7 @@ use PhpOffice\PhpSpreadsheet\Cell\Coordinate; /** * Class to build export files with Excel format */ -class ExportExcel2007new extends ModeleExports +class ExportExcel2007 extends ModeleExports { /** * @var string ID @@ -79,7 +79,7 @@ class ExportExcel2007new extends ModeleExports global $conf, $langs; $this->db = $db; - $this->id = 'excel2007new'; // Same value then xxx in file name export_xxx.modules.php + $this->id = 'excel2007'; // Same value then xxx in file name export_xxx.modules.php $this->label = 'Excel 2007'; // Label of driver $this->desc = $langs->trans('Excel2007FormatDesc'); $this->extension = 'xlsx'; // Extension for generated file by this driver @@ -199,7 +199,7 @@ class ExportExcel2007new extends ModeleExports require_once DOL_DOCUMENT_ROOT.'/includes/Psr/autoloader.php'; require_once PHPEXCELNEW_PATH.'Spreadsheet.php'; - if ($this->id == 'excel2007new') + if ($this->id == 'excel2007') { if (!class_exists('ZipArchive')) // For Excel2007, PHPSpreadSheet may need ZipArchive { diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index dabb826149c..c588959ae90 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -4205,6 +4205,7 @@ function migrate_delete_old_files($db, $langs, $conf) '/core/modules/mailings/kiwi.modules.php', '/core/modules/facture/pdf_crabe.modules.php', '/core/modules/facture/pdf_oursin.modules.php', + '/core/modules/export/export_excel2007new.modules.php', '/api/class/api_generic.class.php', '/categories/class/api_category.class.php', From f11037c6bfa6d637ab0b73c3c978cf7cf20622e0 Mon Sep 17 00:00:00 2001 From: JC Prieto Date: Tue, 2 Feb 2021 13:40:09 +0100 Subject: [PATCH 196/219] Update bonprelevement.class.php Bad sender ICS_transfer --- htdocs/compta/prelevement/class/bonprelevement.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 89687997a59..37fe6520eeb 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -1704,7 +1704,7 @@ class BonPrelevement extends CommonObject fputs($this->file, ' '.$CrLf); fputs($this->file, ' '.$CrLf); fputs($this->file, ' '.$CrLf); - fputs($this->file, ' '.$conf->global->PAYMENTBYBANKTRANSFER_ICS.''.$CrLf); + fputs($this->file, ' '.$this->emetteur_ics.''.$CrLf); fputs($this->file, ' '.$CrLf); fputs($this->file, ' '.$CrLf); fputs($this->file, ' '.$CrLf); From 31aebf34574a13d2f4d19ed0f862a5786f8cb03d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 13:44:54 +0100 Subject: [PATCH 197/219] Fix log --- build/generate_filelist_xml.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/generate_filelist_xml.php b/build/generate_filelist_xml.php index 41c20740d78..50eb6c84def 100755 --- a/build/generate_filelist_xml.php +++ b/build/generate_filelist_xml.php @@ -105,8 +105,8 @@ if (empty($includecustom)) { } } -print "Release : ".$release."\n"; print "Working on files into : ".DOL_DOCUMENT_ROOT."\n"; +print "Release : ".$release."\n"; print "Include custom in signature : ".$includecustom."\n"; print "Include constants in signature : "; foreach ($includeconstants as $countrycode => $tmp) { From 3021c221983eb4ef3176581a304d70bed74b5c5b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 13:49:03 +0100 Subject: [PATCH 198/219] Clean files --- htdocs/install/upgrade2.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index c588959ae90..708d8834123 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -4205,6 +4205,7 @@ function migrate_delete_old_files($db, $langs, $conf) '/core/modules/mailings/kiwi.modules.php', '/core/modules/facture/pdf_crabe.modules.php', '/core/modules/facture/pdf_oursin.modules.php', + '/core/modules/export/export_excel.modules.php', '/core/modules/export/export_excel2007new.modules.php', '/api/class/api_generic.class.php', From fed99aa3bbbf1e0cd9b4cc7c22985a5ea1951b70 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 15:35:40 +0100 Subject: [PATCH 199/219] FIX Assignement of actors on tasks --- htdocs/core/class/commonobject.class.php | 1 - htdocs/projet/tasks/contact.php | 56 ++++++++++++------------ 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 47bfab139d1..684f5d65948 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1055,7 +1055,6 @@ abstract class CommonObject { $this->error = $this->db->errno(); $this->db->rollback(); - echo 'err rollback'; return -2; } else { $this->error = $this->db->error(); diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php index 253c2c787e4..eff772dfce9 100644 --- a/htdocs/projet/tasks/contact.php +++ b/htdocs/projet/tasks/contact.php @@ -57,11 +57,22 @@ $projectstatic = new Project($db); // Add new contact if ($action == 'addcontact' && $user->rights->projet->creer) { + $source = 'internal'; + if (GETPOST("addsourceexternal")) { + $source ='external'; + } + $result = $object->fetch($id, $ref); if ($result > 0 && $id > 0) { - $idfortaskuser = (GETPOST("contactid") != 0) ?GETPOST("contactid") : GETPOST("userid"); // GETPOST('contactid') may val -1 to mean empty or -2 to means "everybody" + if ($source == 'internal') { + $idfortaskuser = ((GETPOST("userid") != 0 && GETPOST('userid') != -1) ? GETPOST("userid") : 0); // GETPOST('contactid') may val -1 to mean empty or -2 to means "everybody" + $typeid = GETPOST('type'); + } else { + $idfortaskuser = ((GETPOST("contactid") > 0) ? GETPOST("contactid", 'int') : 0); // GETPOST('contactid') may val -1 to mean empty or -2 to means "everybody" + $typeid = GETPOST('typecontact'); + } if ($idfortaskuser == -2) { $result = $projectstatic->fetch($object->fk_project); @@ -72,13 +83,11 @@ if ($action == 'addcontact' && $user->rights->projet->creer) $contactsofproject = $projectstatic->getListContactId('internal'); foreach ($contactsofproject as $key => $val) { - $typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type')); - $result = $object->add_contact($val, $type, GETPOST("source", 'aZ09')); + $result = $object->add_contact($val, $typeid, $source); } } } else { - $typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type')); - $result = $object->add_contact($idfortaskuser, $typeid, GETPOST("source", 'aZ09')); + $result = $object->add_contact($idfortaskuser, $typeid, $source); } } @@ -353,6 +362,12 @@ if ($id > 0 || !empty($ref)) /* * Add a new contact line */ + print ''; + print ''; + print ''; + print ''; + if ($withproject) print ''; + print '
    '.$key.''.$key.''.$langs->trans("Value").'
    "; - - if (in_array($name, $list)) - { - if ($name == 'xdebug') $html .= ''; - else $html .= ''; - } else { - if ($name == 'xdebug') $html .= yn(0); - else $html .= ''; - } - - $html .= "-"; - - foreach ($functions as $function) - { - $result = $result && function_exists($function); - } - - if ($result) - { - $html .= 'Ok'; - } else { - $html .= 'Warning'; - } - - $html .= ""; - $html .= $result ? $langs->trans("PHPSupport", $name) : $langs->trans("ErrorPHPDoesNotSupport", $name); + if ($result) { + if (strtolower($name) == 'xdebug') $html .= img_warning($langs->trans("ModuleActivated", "xdebug")); + else $html .= img_picto($langs->trans("Ok"), 'tick'); + if (in_array(strtolower($name), $loaded)) { + $html .= ' '.$langs->trans("Loaded").' - '; + } else { + //$html .= ' '.$langs->trans("NotLoaded").' - '; + } + if (strtolower($name) == 'xdebug') { + $html .= ' '.$langs->trans("ModuleActivated", "xdebug"); + } else { + $html .= ' '.$langs->trans("PHPSupport", $name); + } + } else { + if (strtolower($name) == 'xdebug') $html .= yn(0); + else $html .= img_warning($langs->trans("ModuleActivated", "xdebug")); + if (in_array(strtolower($name), $loaded)) { + $html .= ' '.$langs->trans("Loaded").' - '; + } else { + //$html .= ' '.$langs->trans("NotLoaded").' - '; + } + $html .= ' '.$langs->trans("ErrorPHPDoesNotSupport", $name); + } $html .= "
    '.$langs->trans('IntracommReportTransportMode').''; - $form->selectModeTransport(isset($_POST['transport_mode_id']) ? $_POST['transport_mode_id'] : $transport_mode_id, 'transport_mode_id'); + $form->selectTransportMode(isset($_POST['transport_mode_id']) ? $_POST['transport_mode_id'] : $transport_mode_id, 'transport_mode_id'); print '
    '; + print ''.$langs->trans("More").'... ('.$othernb.')'; + print '
    '; + print ''.$langs->trans("More").'... ('.$othernb.')'; + print '
    '; + print ''.$langs->trans("More").'... ('.$othernb.')'; + print '
    '; + print ''.$langs->trans("More").'... ('.$othernb.')'; + print '
    '; + print ''.$langs->trans("More").'... ('.$othernb.')'; + print '
    '.$langs->trans("Total").''.price($tot_ttc).'
    '; + print ''.$langs->trans("More").'... ('.$othernb.')'; + print '
    '.$langs->trans("Total").''.price($tot_ttc).'
    ".$variousstatic->getNomUrl(1)."'.$variousstatic->getNomUrl(1)."".dol_trunc($obj->label, 40)."'.$variousstatic->label."'.$langs->trans("PaymentTypeShort".$obj->payment_code).' '.$obj->num_payment.''; + if ($obj->payment_code) { + print $langs->trans("PaymentTypeShort".$obj->payment_code); + print ' '; + } + print $obj->num_payment; + print '
    '.$langs->trans('ThirdPartyName').''; - print $form->select_company($socid, 'socid', '(client=1 OR client=3)', 1, 0, 0); + print img_picto('', 'company').$form->select_company($socid, 'socid', '(client=1 OR client=3)', 1, 0, 0); print '
    '.$langs->trans('ThirdPartyName').''; - print $form->select_company(null, 'socid', '(client=1 OR client=3)', 1, 0, 0); + print img_picto('', 'company').$form->select_company(null, 'socid', '(client=1 OR client=3)', 1, 0, 0); print '
    '.$langs->trans('ChooseProduct/Service').'
    '.$langs->trans('ProductOrService').''; -print $form->multiselectarray('products', $TProducts, $TSelectedProducts, 0, 0, 'minwidth500'); +print img_picto('', 'product').$form->multiselectarray('products', $TProducts, $TSelectedProducts, 0, 0, 'minwidth500'); print '
    '.$langs->trans('ChooseCategory').''.$langs->trans('Category').''; print img_picto('', 'category').$form->multiselectarray('categories', $TCats, $TSelectedCats, 0, 0, 'quatrevingtpercent widthcentpercentminusx'); print '
    '; if ($action != 'editline' && $user->rights->projet->creer) @@ -365,13 +380,6 @@ if ($id > 0 || !empty($ref)) print ''; print "\n"; - print ''; - print ''; - print ''; - print ''; - print ''; - if ($withproject) print ''; - // Ligne ajout pour contact interne print ''; @@ -387,26 +395,17 @@ if ($id > 0 || !empty($ref)) // On recupere les id des users deja selectionnes if ($object->project->public) $contactsofproject = ''; // Everybody else $contactsofproject = $projectstatic->getListContactId('internal'); - print $form->select_dolusers((GETPOST('contactid') ?GETPOST('contactid') : $user->id), 'contactid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 1, $langs->trans("ResourceNotAssignedToProject")); + print $form->select_dolusers((GETPOSTISSET('userid') ? GETPOST('userid', 'int') : $user->id), 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 1, $langs->trans("ResourceNotAssignedToProject")); print ''; print ''; - print ''; + print ''; print ''; - print ''; - // Line to add an external contact. Only if project linked to a third party. if ($projectstatic->socid) { - print ''; - print ''; - print ''; - print ''; - print ''; - if ($withproject) print ''; - print ''; print ''; print ''; - print ''; print ''; - - print ""; } } @@ -535,6 +532,9 @@ if ($id > 0 || !empty($ref)) } } print "
     
    '; $formcompany->selectTypeContact($object, '', 'type', 'internal', 'rowid'); print '
    '; @@ -421,18 +420,16 @@ if ($id > 0 || !empty($ref)) print ''; $contactofproject = $projectstatic->getListContactId('external'); - print $form->selectcontacts($selectedCompany, '', 'contactid', 0, '', $contactofproject); + print $form->selectcontacts($selectedCompany, '', 'contactid', 0, '', $contactofproject, 0, '', false, 0, 0); $nbofcontacts = $form->num; print ''; - $formcompany->selectTypeContact($object, '', 'type', 'external', 'rowid'); + $formcompany->selectTypeContact($object, '', 'typecontact', 'external', 'rowid'); print '
    "; + + print ""; + } else { print "ErrorRecordNotFound"; } From bd9eb4c9499cfef62b7ec10cf56edf6eb9d5112a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 15:35:40 +0100 Subject: [PATCH 200/219] FIX Assignement of actors on tasks --- htdocs/core/class/commonobject.class.php | 1 - htdocs/projet/tasks/contact.php | 56 ++++++++++++------------ 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index d8fac5e8e41..23924814d04 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1054,7 +1054,6 @@ abstract class CommonObject { $this->error = $this->db->errno(); $this->db->rollback(); - echo 'err rollback'; return -2; } else { $this->error = $this->db->error(); diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php index 253c2c787e4..eff772dfce9 100644 --- a/htdocs/projet/tasks/contact.php +++ b/htdocs/projet/tasks/contact.php @@ -57,11 +57,22 @@ $projectstatic = new Project($db); // Add new contact if ($action == 'addcontact' && $user->rights->projet->creer) { + $source = 'internal'; + if (GETPOST("addsourceexternal")) { + $source ='external'; + } + $result = $object->fetch($id, $ref); if ($result > 0 && $id > 0) { - $idfortaskuser = (GETPOST("contactid") != 0) ?GETPOST("contactid") : GETPOST("userid"); // GETPOST('contactid') may val -1 to mean empty or -2 to means "everybody" + if ($source == 'internal') { + $idfortaskuser = ((GETPOST("userid") != 0 && GETPOST('userid') != -1) ? GETPOST("userid") : 0); // GETPOST('contactid') may val -1 to mean empty or -2 to means "everybody" + $typeid = GETPOST('type'); + } else { + $idfortaskuser = ((GETPOST("contactid") > 0) ? GETPOST("contactid", 'int') : 0); // GETPOST('contactid') may val -1 to mean empty or -2 to means "everybody" + $typeid = GETPOST('typecontact'); + } if ($idfortaskuser == -2) { $result = $projectstatic->fetch($object->fk_project); @@ -72,13 +83,11 @@ if ($action == 'addcontact' && $user->rights->projet->creer) $contactsofproject = $projectstatic->getListContactId('internal'); foreach ($contactsofproject as $key => $val) { - $typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type')); - $result = $object->add_contact($val, $type, GETPOST("source", 'aZ09')); + $result = $object->add_contact($val, $typeid, $source); } } } else { - $typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type')); - $result = $object->add_contact($idfortaskuser, $typeid, GETPOST("source", 'aZ09')); + $result = $object->add_contact($idfortaskuser, $typeid, $source); } } @@ -353,6 +362,12 @@ if ($id > 0 || !empty($ref)) /* * Add a new contact line */ + print '
    '; + print ''; + print ''; + print ''; + if ($withproject) print ''; + print ''; if ($action != 'editline' && $user->rights->projet->creer) @@ -365,13 +380,6 @@ if ($id > 0 || !empty($ref)) print ''; print "\n"; - print ''; - print ''; - print ''; - print ''; - print ''; - if ($withproject) print ''; - // Ligne ajout pour contact interne print ''; @@ -387,26 +395,17 @@ if ($id > 0 || !empty($ref)) // On recupere les id des users deja selectionnes if ($object->project->public) $contactsofproject = ''; // Everybody else $contactsofproject = $projectstatic->getListContactId('internal'); - print $form->select_dolusers((GETPOST('contactid') ?GETPOST('contactid') : $user->id), 'contactid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 1, $langs->trans("ResourceNotAssignedToProject")); + print $form->select_dolusers((GETPOSTISSET('userid') ? GETPOST('userid', 'int') : $user->id), 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 1, $langs->trans("ResourceNotAssignedToProject")); print ''; print ''; - print ''; + print ''; print ''; - print ''; - // Line to add an external contact. Only if project linked to a third party. if ($projectstatic->socid) { - print ''; - print ''; - print ''; - print ''; - print ''; - if ($withproject) print ''; - print ''; print ''; print ''; - print ''; print ''; - - print ""; } } @@ -535,6 +532,9 @@ if ($id > 0 || !empty($ref)) } } print "
     
    '; $formcompany->selectTypeContact($object, '', 'type', 'internal', 'rowid'); print '
    '; @@ -421,18 +420,16 @@ if ($id > 0 || !empty($ref)) print ''; $contactofproject = $projectstatic->getListContactId('external'); - print $form->selectcontacts($selectedCompany, '', 'contactid', 0, '', $contactofproject); + print $form->selectcontacts($selectedCompany, '', 'contactid', 0, '', $contactofproject, 0, '', false, 0, 0); $nbofcontacts = $form->num; print ''; - $formcompany->selectTypeContact($object, '', 'type', 'external', 'rowid'); + $formcompany->selectTypeContact($object, '', 'typecontact', 'external', 'rowid'); print '
    "; + + print ""; + } else { print "ErrorRecordNotFound"; } From c5201b95bb9c6f26a09a4dd8df65e1b420c5b4b3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 16:12:03 +0100 Subject: [PATCH 201/219] FIX Must not be able to edit vat of all lines if not draft --- htdocs/commande/card.php | 2 +- htdocs/commande/class/commande.class.php | 2 ++ htdocs/compta/facture/class/facture.class.php | 2 ++ htdocs/core/class/commonobject.class.php | 6 ++++++ htdocs/core/tpl/objectline_title.tpl.php | 1 + 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 42ad4ac6af6..27dd6b2308e 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -615,7 +615,7 @@ if (empty($reshook)) $result = $object->set_remise($user, GETPOST('remise_percent')); } elseif ($action == 'setremiseabsolue' && $usercancreate) { $result = $object->set_remise_absolue($user, GETPOST('remise_absolue')); - } elseif ($action == 'addline' && GETPOST('submitforalllines', 'aZ09') && GETPOST('vatforalllines', 'alpha')) { + } elseif ($action == 'addline' && GETPOST('submitforalllines', 'alpha') && GETPOST('vatforalllines', 'alpha')) { // Define vat_rate $vat_rate = (GETPOST('vatforalllines') ? GETPOST('vatforalllines') : 0); $vat_rate = str_replace('*', '', $vat_rate); diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 7ed6d5e7199..fae2fefefaa 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -1824,6 +1824,8 @@ class Commande extends CommonOrder $this->project = null; // Clear if another value was already set by fetch_projet $this->statut = $obj->fk_statut; + $this->status = $obj->fk_statut; + $this->user_author_id = $obj->fk_user_author; $this->user_valid = $obj->fk_user_valid; $this->total_ht = $obj->total_ht; diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index f036145161d..1ce1ea84f93 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -1594,6 +1594,8 @@ class Facture extends CommonInvoice $this->project = null; // Clear if another value was already set by fetch_projet $this->statut = $obj->fk_statut; + $this->status = $obj->fk_statut; + $this->date_lim_reglement = $this->db->jdate($obj->dlr); $this->mode_reglement_id = $obj->fk_mode_reglement; $this->mode_reglement_code = $obj->mode_reglement_code; diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 23924814d04..9e6204bd364 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -221,6 +221,12 @@ abstract class CommonObject */ public $statut; + /** + * @var int The object's status + * @see setStatut() + */ + public $status; + /** * @var string * @see getFullAddress() diff --git a/htdocs/core/tpl/objectline_title.tpl.php b/htdocs/core/tpl/objectline_title.tpl.php index bfced08e5c8..8a7c38f8ada 100644 --- a/htdocs/core/tpl/objectline_title.tpl.php +++ b/htdocs/core/tpl/objectline_title.tpl.php @@ -65,6 +65,7 @@ if (!empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || !empty($conf->global->FA } else { print $langs->trans('VAT'); } + if (in_array($object->element, array('propal', 'commande', 'facture')) && $object->status == $object::STATUS_DRAFT) { global $mysoc; From c7a4baf7c5c77f1a853f8fb94eab0cb2e95eb304 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 16:14:40 +0100 Subject: [PATCH 202/219] Fix phpunit export excel2007 --- test/phpunit/ExportTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/phpunit/ExportTest.php b/test/phpunit/ExportTest.php index 0f5b0bd82e3..92d08e81101 100644 --- a/test/phpunit/ExportTest.php +++ b/test/phpunit/ExportTest.php @@ -259,14 +259,14 @@ class ExportTest extends PHPUnit\Framework\TestCase $expectedresult=1; $this->assertEquals($expectedresult, $result, 'Error in TSV export'); - $model='excel2007new'; + $model='excel2007'; // Build export file /* ko on php 7.4 on travis (zip not available) */ print "Process build_file for model = ".$model."\n"; $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), $sql); $expectedresult=1; - $this->assertEquals($expectedresult, $result, 'Error in Excel2007new export'); + $this->assertEquals($expectedresult, $result, 'Error in Excel2007 export'); return true; From 29410cac6f8d7f8afcf53f38493586033013c89a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Feb 2021 16:22:16 +0100 Subject: [PATCH 203/219] Fix phpcs --- htdocs/compta/tva/info.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/compta/tva/info.php b/htdocs/compta/tva/info.php index ddabf6e2b49..45799c8e1f5 100644 --- a/htdocs/compta/tva/info.php +++ b/htdocs/compta/tva/info.php @@ -83,6 +83,8 @@ dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, print '
    '; print '
    '; +print '
    '; + print '
    '; dol_print_object_info($object); print '
    '; From 3132877349a342e0d52a7834b822cc647e7f76e1 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 2 Feb 2021 23:09:23 +0100 Subject: [PATCH 204/219] FIX cash fence for takepos with multientity --- htdocs/takepos/index.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/takepos/index.php b/htdocs/takepos/index.php index 51b6334a2c9..2182973a219 100644 --- a/htdocs/takepos/index.php +++ b/htdocs/takepos/index.php @@ -730,10 +730,9 @@ $( document ).ready(function() { else print "TerminalsDialog();"; } if ($conf->global->TAKEPOS_CONTROL_CASH_OPENING) - { - $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."pos_cash_fence WHERE "; - $sql .= "date(date_creation) = CURDATE() "; - $sql .= ""; + $sql = "SELECT rowid, status FROM ".MAIN_DB_PREFIX."pos_cash_fence WHERE"; + $sql .= " entity = ".$conf->entity." AND "; + $sql .= " date(date_creation) = CURDATE()"; $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); @@ -917,8 +916,9 @@ if ($conf->global->TAKEPOS_PRINT_METHOD == "receiptprinter") { ); } -$sql = "SELECT rowid, status FROM ".MAIN_DB_PREFIX."pos_cash_fence WHERE "; -$sql .= "date(date_creation) = CURDATE() "; +$sql = "SELECT rowid, status, entity FROM ".MAIN_DB_PREFIX."pos_cash_fence WHERE"; +$sql .= " entity = ".$conf->entity." AND "; +$sql .= " date(date_creation) = CURDATE()"; $resql = $db->query($sql); if ($resql) { From eb15c4d800857d2421b2583d7a88b3348da5db9b Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Wed, 3 Feb 2021 11:29:54 +0100 Subject: [PATCH 205/219] 20200203 --- htdocs/comm/propal/list.php | 159 ++++++++++++++++++++------------- htdocs/langs/fr_FR/propal.lang | 5 ++ 2 files changed, 103 insertions(+), 61 deletions(-) diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 07ff1c64dbb..16e6214cc98 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -271,6 +271,98 @@ if (empty($reshook)) include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } +if ($action == 'validate') { + if (GETPOST('confirm') == 'yes') { + $tmpproposal = new Propal($db); + $db->begin(); + $error = 0; + foreach ($toselect as $checked) { + if ($tmpproposal->fetch($checked)) { + if ($tmpproposal->statut == 0) { + if ($tmpproposal->valid($user)) { + setEventMessage($tmpproposal->ref." ".$langs->trans('PassedInOpenStatus'), 'mesgs'); + } else { + setEventMessage($langs->trans('CantBeValidated'), 'errors'); + $error++; + } + } else { + setEventMessage($tmpproposal->ref." ".$langs->trans('IsNotADraft'), 'errors'); + $error++; + } + } + dol_print_error($db); + $error++; + } + if ($error) { + $db->rollback(); + } else { + $db->commit(); + } + } + } + + if ($action == "sign") { + if (GETPOST('confirm') == 'yes') { + $tmpproposal = new Propal($db); + $db->begin(); + $error = 0; + foreach ($toselect as $checked) { + if ($tmpproposal->fetch($checked)) { + if ($tmpproposal->statut == 1) { + $tmpproposal->statut = 2; + if ($tmpproposal->update($user)) { + setEventMessage($tmpproposal->ref." ".$langs->trans('Signed'), 'mesgs'); + } else { + dol_print_error($db); + $error++; + } + } else { + setEventMessage($tmpproposal->ref." ".$langs->trans('CantBeSign'), 'errors'); + $error++; + } + } else { + dol_print_error($db); + $error++; + } + } + if ($error) { + $db->rollback(); + } else { + $db->commit(); + } + } + } + if ($action == "nosign") { + if (GETPOST('confirm') == 'yes') { + $tmpproposal = new Propal($db); + $db->begin(); + $error = 0; + foreach ($toselect as $checked) { + if ($tmpproposal->fetch($checked)) { + if ($tmpproposal->statut == 1) { + $tmpproposal->statut = 3; + if ($tmpproposal->update($user)) { + setEventMessage($tmpproposal->ref." ".$langs->trans('NoSigned'), 'mesgs'); + } else { + dol_print_error($db); + $error++; + } + } else { + setEventMessage($tmpproposal->ref." ".$langs->trans('CantBeSign'), 'errors'); + $error++; + } + } else { + dol_print_error($db); + $error++; + } + } + if ($error) { + $db->rollback(); + } else { + $db->commit(); + } + } + } /* @@ -493,6 +585,7 @@ if ($resql) 'presend'=>$langs->trans("SendByMail"), 'prevalidate'=>$langs->trans("Validate"), 'presign'=>$langs->trans("Sign"), + 'nopresign'=>$langs->trans("NoSign"), ); if ($user->rights->propal->supprimer) $arrayofmassactions['predelete'] = ''.$langs->trans("Delete"); if ($user->rights->propal->cloturer) $arrayofmassactions['closed'] = $langs->trans("Close"); @@ -531,6 +624,11 @@ if ($resql) print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassSignature"), $langs->trans("ConfirmMassSignatureQuestion"), "sign", null, '', 0, 200, 500, 1); } + if ($massaction == 'nopresign') + { + print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassNoSignature"), $langs->trans("ConfirmMassNoSignatureQuestion"), "nosign", null, '', 0, 200, 500, 1); + } + if ($sall) { foreach ($fieldstosearchall as $key => $val) $fieldstosearchall[$key] = $langs->trans($val); @@ -1389,67 +1487,6 @@ if ($resql) print $formfile->showdocuments('massfilesarea_proposals', '', $filedir, $urlsource, 0, $delallowed, '', 1, 1, 0, 48, 1, $param, $title, '', '', '', null, $hidegeneratedfilelistifempty); - if ($action == 'validate') { - if (GETPOST('confirm') == 'yes') { - $tmpproposal = new Propal($db); - $db->begin(); - $error = 0; - foreach ($toselect as $checked) { - if ($tmpproposal->fetch($checked)) { - if ($tmpproposal->statut == 0) { - if ($tmpproposal->valid($user)) { - setEventMessage($tmpproposal->ref." ".$langs->trans('PassedInOpenStatus'), 'mesgs'); - } else { - setEventMessage($langs->trans('CantBeValidated'), 'errors'); - $error++; - } - } else { - setEventMessage($tmpproposal->ref." ".$langs->trans('IsNotADraft'), 'errors'); - $error++; - } - } - dol_print_error($db); - $error++; - } - if ($error) { - $db->rollback(); - } else { - $db->commit(); - } - } - } - - if ($action == "sign") { - if (GETPOST('confirm') == 'yes') { - $tmpproposal = new Propal($db); - $db->begin(); - $error = 0; - foreach ($toselect as $checked) { - if ($tmpproposal->fetch($checked)) { - if ($tmpproposal->statut == 1) { - $tmpproposal->statut = 2; - if ($tmpproposal->update($user)) { - setEventMessage($tmpproposal->ref." ".$langs->trans('Signed'), 'mesgs'); - } else { - dol_print_error($db); - $error++; - } - } else { - setEventMessage($tmpproposal->ref." ".$langs->trans('CantBeSign'), 'errors'); - $error++; - } - } else { - dol_print_error($db); - $error++; - } - } - if ($error) { - $db->rollback(); - } else { - $db->commit(); - } - } - } } else { dol_print_error($db); } diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang index 64199c5248d..aaff4579427 100644 --- a/htdocs/langs/fr_FR/propal.lang +++ b/htdocs/langs/fr_FR/propal.lang @@ -90,12 +90,17 @@ PassedInOpenStatus = passé au statut "ouvert" CantBeSign = ne peut pas être signée Sign = Signer Signed = signé +NoSign = Non signer +NoSigned = Non signé CantBeSign = ne peut pas être signé +CantBeSign = ne peut pas être non signé CantBeValidated = Ne peut pas être validé ConfirmMassValidation = Confirmer la validation ? ConfirmMassSignature = Confirmer la signature ? +ConfirmMassNoSignature = Confirmer la non signature ? ConfirmMassValidationQuestion = Voulez-vous confirmer la validation des devis brouillons selectionnés ? ConfirmMassSignatureQuestion = Voulez-vous confirmer la signature des devis ouvert selectionnés ? +ConfirmMassNoSignatureQuestion = Voulez-vous confirmer la non signature des devis ouvert selectionnés ? PropNoProductOrService = devis ne contient pas de produits ni de services PropsNoProductOrService = devis ne contiennent pas de produits ni de services IdProposal=ID de proposition From 609428bc093343279c7b0a2c3cd99f041e6e6532 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Wed, 3 Feb 2021 10:37:15 +0000 Subject: [PATCH 206/219] Fixing style errors. --- htdocs/comm/propal/list.php | 142 ++++++++++++++++++------------------ 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 16e6214cc98..f7b42fae261 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -272,97 +272,97 @@ if (empty($reshook)) } if ($action == 'validate') { - if (GETPOST('confirm') == 'yes') { - $tmpproposal = new Propal($db); - $db->begin(); - $error = 0; - foreach ($toselect as $checked) { - if ($tmpproposal->fetch($checked)) { - if ($tmpproposal->statut == 0) { - if ($tmpproposal->valid($user)) { - setEventMessage($tmpproposal->ref." ".$langs->trans('PassedInOpenStatus'), 'mesgs'); - } else { - setEventMessage($langs->trans('CantBeValidated'), 'errors'); - $error++; - } + if (GETPOST('confirm') == 'yes') { + $tmpproposal = new Propal($db); + $db->begin(); + $error = 0; + foreach ($toselect as $checked) { + if ($tmpproposal->fetch($checked)) { + if ($tmpproposal->statut == 0) { + if ($tmpproposal->valid($user)) { + setEventMessage($tmpproposal->ref." ".$langs->trans('PassedInOpenStatus'), 'mesgs'); } else { - setEventMessage($tmpproposal->ref." ".$langs->trans('IsNotADraft'), 'errors'); + setEventMessage($langs->trans('CantBeValidated'), 'errors'); $error++; } + } else { + setEventMessage($tmpproposal->ref." ".$langs->trans('IsNotADraft'), 'errors'); + $error++; } + } + dol_print_error($db); + $error++; + } + if ($error) { + $db->rollback(); + } else { + $db->commit(); + } + } +} + +if ($action == "sign") { + if (GETPOST('confirm') == 'yes') { + $tmpproposal = new Propal($db); + $db->begin(); + $error = 0; + foreach ($toselect as $checked) { + if ($tmpproposal->fetch($checked)) { + if ($tmpproposal->statut == 1) { + $tmpproposal->statut = 2; + if ($tmpproposal->update($user)) { + setEventMessage($tmpproposal->ref." ".$langs->trans('Signed'), 'mesgs'); + } else { + dol_print_error($db); + $error++; + } + } else { + setEventMessage($tmpproposal->ref." ".$langs->trans('CantBeSign'), 'errors'); + $error++; + } + } else { dol_print_error($db); $error++; } - if ($error) { - $db->rollback(); - } else { - $db->commit(); - } + } + if ($error) { + $db->rollback(); + } else { + $db->commit(); } } - - if ($action == "sign") { - if (GETPOST('confirm') == 'yes') { - $tmpproposal = new Propal($db); - $db->begin(); - $error = 0; - foreach ($toselect as $checked) { - if ($tmpproposal->fetch($checked)) { - if ($tmpproposal->statut == 1) { - $tmpproposal->statut = 2; - if ($tmpproposal->update($user)) { - setEventMessage($tmpproposal->ref." ".$langs->trans('Signed'), 'mesgs'); - } else { - dol_print_error($db); - $error++; - } +} +if ($action == "nosign") { + if (GETPOST('confirm') == 'yes') { + $tmpproposal = new Propal($db); + $db->begin(); + $error = 0; + foreach ($toselect as $checked) { + if ($tmpproposal->fetch($checked)) { + if ($tmpproposal->statut == 1) { + $tmpproposal->statut = 3; + if ($tmpproposal->update($user)) { + setEventMessage($tmpproposal->ref." ".$langs->trans('NoSigned'), 'mesgs'); } else { - setEventMessage($tmpproposal->ref." ".$langs->trans('CantBeSign'), 'errors'); + dol_print_error($db); $error++; } } else { - dol_print_error($db); + setEventMessage($tmpproposal->ref." ".$langs->trans('CantBeSign'), 'errors'); $error++; } - } - if ($error) { - $db->rollback(); } else { - $db->commit(); + dol_print_error($db); + $error++; } } - } - if ($action == "nosign") { - if (GETPOST('confirm') == 'yes') { - $tmpproposal = new Propal($db); - $db->begin(); - $error = 0; - foreach ($toselect as $checked) { - if ($tmpproposal->fetch($checked)) { - if ($tmpproposal->statut == 1) { - $tmpproposal->statut = 3; - if ($tmpproposal->update($user)) { - setEventMessage($tmpproposal->ref." ".$langs->trans('NoSigned'), 'mesgs'); - } else { - dol_print_error($db); - $error++; - } - } else { - setEventMessage($tmpproposal->ref." ".$langs->trans('CantBeSign'), 'errors'); - $error++; - } - } else { - dol_print_error($db); - $error++; - } - } - if ($error) { - $db->rollback(); - } else { - $db->commit(); - } + if ($error) { + $db->rollback(); + } else { + $db->commit(); } } +} /* From bf2defbef4a83292f103ba49b2ec2e5047127134 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 3 Feb 2021 12:04:28 +0100 Subject: [PATCH 207/219] More complete log --- htdocs/stripe/class/stripe.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 9722de167f9..c2029c7133d 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -923,7 +923,7 @@ class Stripe extends CommonObject dol_syslog("* createPaymentStripe get stripeacc", LOG_DEBUG); $stripeacc = $stripe->getStripeAccount($service); // Get Stripe OAuth connect account if it exists (no network access here) - dol_syslog("* createPaymentStripe Create payment on card ".$stripecard->id.", amounttopay=".$amounttopay.", amountstripe=".$amountstripe.", FULLTAG=".$FULLTAG, LOG_DEBUG); + dol_syslog("* createPaymentStripe Create payment for customer ".$customer->id." on source card ".$stripecard->id.", amounttopay=".$amounttopay.", amountstripe=".$amountstripe.", FULLTAG=".$FULLTAG, LOG_DEBUG); // Create payment intent and charge payment (confirmnow = true) $paymentintent = $stripe->getPaymentIntent($amounttopay, $currency, $FULLTAG, $description, $invoice, $customer->id, $stripeacc, $servicestatus, 0, 'automatic', true, $stripecard->id, 1); From 6ab723e85caf920cc8c2ce0924057094f1002644 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 3 Feb 2021 17:09:26 +0100 Subject: [PATCH 208/219] Fix bad path of include --- htdocs/fourn/class/fournisseur.commande.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index defd0fe7ef0..ab605e38e8d 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -3173,7 +3173,7 @@ class CommandeFournisseur extends CommonOrder { if (is_array($supplierorderdispatch->lines) && count($supplierorderdispatch->lines) > 0) { - require_once DOL_DOCUMENT_ROOT.'/htdocs/product/class/product.class.php'; + require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; $date_liv = dol_now(); // Build array with quantity deliverd by product From 5a969539d235c2d0102929ba0b55975356cecb2a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 3 Feb 2021 17:20:05 +0100 Subject: [PATCH 209/219] Better log --- htdocs/stripe/class/stripe.class.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 3effbb4b9cb..ff816dd2a88 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -325,7 +325,7 @@ class Stripe extends CommonObject { global $conf, $user; - dol_syslog("getPaymentIntent", LOG_INFO, 1); + dol_syslog(get_class($this)."::getPaymentIntent", LOG_INFO, 1); $error = 0; @@ -534,10 +534,9 @@ class Stripe extends CommonObject } } - dol_syslog("getPaymentIntent return error=".$error." this->error=".$this->error, LOG_INFO, -1); + dol_syslog(get_class($this)."::getPaymentIntent return error=".$error." this->error=".$this->error, LOG_INFO, -1); - if (!$error) - { + if (!$error) { return $paymentintent; } else { return null; From c9e232f2ffb43bc475aa41601546836216ab0e24 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 3 Feb 2021 18:00:27 +0100 Subject: [PATCH 210/219] Try to fix import/export timeout by dynamic increase --- htdocs/admin/system/phpinfo.php | 2 +- htdocs/exports/export.php | 7 ++++--- htdocs/imports/import.php | 8 ++++++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/htdocs/admin/system/phpinfo.php b/htdocs/admin/system/phpinfo.php index a7bce7a3025..b6160d2d2e9 100644 --- a/htdocs/admin/system/phpinfo.php +++ b/htdocs/admin/system/phpinfo.php @@ -288,7 +288,7 @@ function getResultColumn($name, array $activated, array $loaded, array $function $html .= ' '.$langs->trans("PHPSupport", $name); } } else { - if (strtolower($name) == 'xdebug') $html .= yn(0); + if (strtolower($name) == 'xdebug') $html .= yn(0).' - '; else $html .= img_warning($langs->trans("ModuleActivated", "xdebug")); if (in_array(strtolower($name), $loaded)) { $html .= ' '.$langs->trans("Loaded").' - '; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index c9db970cd0b..c80ee4d248f 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -270,11 +270,12 @@ if ($step == 1 || $action == 'cleanselect') if ($action == 'builddoc') { - $max_execution_time_for_export = (empty($conf->global->EXPORT_MAX_EXECUTION_TIME) ? 300 : $conf->global->EXPORT_MAX_EXECUTION_TIME); // 5mn if not defined + $max_execution_time_for_importexport = (empty($conf->global->EXPORT_MAX_EXECUTION_TIME) ? 300 : $conf->global->EXPORT_MAX_EXECUTION_TIME); // 5mn if not defined $max_time = @ini_get("max_execution_time"); - if ($max_time && $max_time < $max_execution_time_for_export) + if ($max_time && $max_time < $max_execution_time_for_importexport) { - @ini_set("max_execution_time", $max_execution_time_for_export); // This work only if safe mode is off. also web servers has timeout of 300 + dol_syslog("max_execution_time=".$max_time." is lower than max_execution_time_for_importexport=".$max_execution_time_for_importexport.". We try to increase it dynamically."); + @ini_set("max_execution_time", $max_execution_time_for_importexport); // This work only if safe mode is off. also web servers has timeout of 300 } // Build export file diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index fbb17e15280..8814fa584fa 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -1518,6 +1518,14 @@ if ($step == 5 && $datatoimport) } print '
    '; } else { + $max_execution_time_for_importexport = (empty($conf->global->IMPORT_MAX_EXECUTION_TIME) ? 300 : $conf->global->IMPORT_MAX_EXECUTION_TIME); // 5mn if not defined + $max_time = @ini_get("max_execution_time"); + if ($max_time && $max_time < $max_execution_time_for_importexport) + { + dol_syslog("max_execution_time=".$max_time." is lower than max_execution_time_for_importexport=".$max_execution_time_for_importexport.". We try to increase it dynamically."); + @ini_set("max_execution_time", $max_execution_time_for_importexport); // This work only if safe mode is off. also web servers has timeout of 300 + } + // Launch import $arrayoferrors = array(); $arrayofwarnings = array(); From 348fd0fcb5ff8a2403240a9dadb0a9762d7e2ac7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 3 Feb 2021 19:36:02 +0100 Subject: [PATCH 211/219] FIX #16160 --- htdocs/cashdesk/validation_verif.php | 2 +- htdocs/compta/facture/class/api_invoices.class.php | 2 +- htdocs/compta/index.php | 2 +- htdocs/compta/localtax/class/localtax.class.php | 5 ++--- htdocs/compta/localtax/index.php | 2 +- htdocs/compta/payment_sc/card.php | 4 ++-- htdocs/compta/prelevement/class/bonprelevement.class.php | 2 +- htdocs/compta/sociales/class/chargesociales.class.php | 8 ++++---- .../sociales/class/paymentsocialcontribution.class.php | 4 ++-- htdocs/compta/tva/class/tva.class.php | 4 ++-- htdocs/compta/tva/index.php | 2 +- htdocs/core/boxes/box_factures_fourn_imp.php | 2 +- .../modules/supplier_payment/doc/pdf_standard.modules.php | 2 +- htdocs/don/payment/card.php | 2 +- htdocs/expensereport/class/expensereport.class.php | 4 ++-- htdocs/fourn/class/fournisseur.facture.class.php | 2 +- htdocs/fourn/class/paiementfourn.class.php | 2 +- htdocs/fourn/facture/card.php | 2 +- htdocs/fourn/facture/paiement.php | 2 +- htdocs/fourn/paiement/card.php | 2 +- htdocs/install/mysql/data/llx_c_action_trigger.sql | 2 +- htdocs/install/mysql/migration/12.0.0-13.0.0.sql | 3 +++ htdocs/install/mysql/migration/3.7.0-3.8.0.sql | 6 +++--- htdocs/install/mysql/migration/repair.sql | 2 +- htdocs/install/mysql/tables/llx_expensereport.sql | 2 +- htdocs/loan/class/loan.class.php | 6 +++--- htdocs/loan/list.php | 4 ++-- htdocs/loan/payment/card.php | 4 ++-- htdocs/public/payment/newpayment.php | 2 +- htdocs/public/payment/paymentok.php | 4 ++-- htdocs/societe/class/api_thirdparties.class.php | 2 +- 31 files changed, 48 insertions(+), 46 deletions(-) diff --git a/htdocs/cashdesk/validation_verif.php b/htdocs/cashdesk/validation_verif.php index 9468c395756..1df6f805ff6 100644 --- a/htdocs/cashdesk/validation_verif.php +++ b/htdocs/cashdesk/validation_verif.php @@ -318,7 +318,7 @@ switch ($action) if ($invoice->total_ttc == $obj_facturation->amountWithTax() && $obj_facturation->getSetPaymentMode() != 'DIFF') { - // We set status to payed + // We set status to paid $result = $invoice->set_paid($user); //print 'set paid';exit; } diff --git a/htdocs/compta/facture/class/api_invoices.class.php b/htdocs/compta/facture/class/api_invoices.class.php index 19a5c8c287b..316f43bc011 100644 --- a/htdocs/compta/facture/class/api_invoices.class.php +++ b/htdocs/compta/facture/class/api_invoices.class.php @@ -1051,7 +1051,7 @@ class Invoices extends DolibarrApi } if ($this->invoice->paye) { - throw new RestException(500, 'Alreay payed'); + throw new RestException(500, 'Alreay paid'); } $this->invoice->fetch($id); diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 1d4d1a37354..e161ab82e23 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -1090,7 +1090,7 @@ if (!empty($conf->facture->enabled) && $user->rights->facture->lire) } /* - * Unpayed supplier invoices + * Unpaid supplier invoices */ if ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled)) && $user->rights->fournisseur->facture->lire) { diff --git a/htdocs/compta/localtax/class/localtax.class.php b/htdocs/compta/localtax/class/localtax.class.php index b14c567a01d..18367a04a46 100644 --- a/htdocs/compta/localtax/class/localtax.class.php +++ b/htdocs/compta/localtax/class/localtax.class.php @@ -381,7 +381,7 @@ class Localtax extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * localtax payed + * Total of localtax paid in invoice * * @param int $year Year * @return int ??? @@ -419,8 +419,7 @@ class Localtax extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * localtax payed - * Total de la localtax payed + * Total of localtax paid * * @param int $year Year * @return int ??? diff --git a/htdocs/compta/localtax/index.php b/htdocs/compta/localtax/index.php index 7d48d6e1f2d..bedb7259184 100644 --- a/htdocs/compta/localtax/index.php +++ b/htdocs/compta/localtax/index.php @@ -565,7 +565,7 @@ print '
    '; /* - * Payed + * Paid */ print load_fiche_titre($langs->transcountry($LTPaid, $mysoc->country_code), '', ''); diff --git a/htdocs/compta/payment_sc/card.php b/htdocs/compta/payment_sc/card.php index 11c8512a265..78fa11fc70b 100644 --- a/htdocs/compta/payment_sc/card.php +++ b/htdocs/compta/payment_sc/card.php @@ -162,7 +162,7 @@ print dol_get_fiche_end(); /* - * List of social contributions payed + * List of social contributions paid */ $disable_delete = 0; @@ -213,7 +213,7 @@ if ($resql) print '
    '.price($objp->sc_amount).''.$socialcontrib->getLibStatut(4, $objp->amount).''.price($objp->amount).'
    '.price($objp->d_amount).''.$don->getLibStatut(4, $objp->amount).''.price($objp->amount).'
    '.img_object($langs->trans('ShowCompany'), 'company').' '.$objp->name.''.price($objp->total_ttc).''.price($objp->amount).''.$facturestatic->LibStatut($objp->paye, $objp->status, 6, 1).''.dol_print_date($db->jdate($obj->dateend), 'day').''; - print $loan_static->LibStatut($obj->paid, 5, $obj->alreadypayed); + print $loan_static->LibStatut($obj->paid, 5, $obj->alreadypaid); print ''.price($objp->capital).''.$loan->getLibStatut(4, $objp->amount_capital).''.price($amount_payed).'