From da51a2876625d33df66ae4037988dd6f1da8eb0a Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Mon, 23 Nov 2015 17:22:29 +0100 Subject: [PATCH 01/27] Fix : situation percent should be 100 by default --- htdocs/compta/facture/class/facture.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 6f8484cbc42..099dc9f4185 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -3897,7 +3897,7 @@ class FactureLigne extends CommonInvoiceLine if (empty($this->special_code)) $this->special_code=0; if (empty($this->fk_parent_line)) $this->fk_parent_line=0; if (empty($this->fk_prev_id)) $this->fk_prev_id = 'null'; - if (empty($this->situation_percent)) $this->situation_percent = 0; + if (empty($this->situation_percent)) $this->situation_percent = 100; if (empty($this->pa_ht)) $this->pa_ht=0; From d7e9c9214426a8a33c652b0a5997144afef0899e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 19 Dec 2015 13:55:27 +0100 Subject: [PATCH 02/27] Fix bad link on category Fix cancel button on categories Css enhancement. --- htdocs/categories/categorie.php | 2 +- htdocs/categories/edit.php | 45 +++++++++++++--------- htdocs/categories/index.php | 5 ++- htdocs/categories/viewcat.php | 13 ++++--- htdocs/comm/action/card.php | 2 + htdocs/core/class/html.form.class.php | 2 +- htdocs/core/class/html.formother.class.php | 2 +- htdocs/core/lib/treeview.lib.php | 3 +- htdocs/core/lib/usergroups.lib.php | 14 +++---- htdocs/theme/eldy/style.css.php | 15 ++++++++ htdocs/theme/md/style.css.php | 18 +++++++++ 11 files changed, 84 insertions(+), 37 deletions(-) diff --git a/htdocs/categories/categorie.php b/htdocs/categories/categorie.php index d86a351cdff..1775c14767d 100644 --- a/htdocs/categories/categorie.php +++ b/htdocs/categories/categorie.php @@ -2,7 +2,7 @@ /* Copyright (C) 2001-2007 Rodolphe Quiedeville * Copyright (C) 2005 Brice Davoleau * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2006-2014 Laurent Destailleur + * Copyright (C) 2006-2015 Laurent Destailleur * Copyright (C) 2007 Patrick Raguin * Copyright (C) 2010 Juanjo Menent * Copyright (C) 2013 Florian Henry diff --git a/htdocs/categories/edit.php b/htdocs/categories/edit.php index 9ffd7ac6401..715547c3311 100644 --- a/htdocs/categories/edit.php +++ b/htdocs/categories/edit.php @@ -36,6 +36,7 @@ $ref=GETPOST('ref'); $type=GETPOST('type'); $action=GETPOST('action'); $confirm=GETPOST('confirm'); +$cancel=GETPOST('cancel'); $socid=GETPOST('socid','int'); $label=GETPOST('label'); @@ -54,6 +55,10 @@ if ($id == "") $result = restrictedArea($user, 'categorie', $id, '&category'); $object = new Categorie($db); +if ($id > 0) +{ + $result=$object->fetch($id); +} $extrafields = new ExtraFields($db); $extralabels=$extrafields->fetch_name_optionals_label($object->table_element); @@ -61,52 +66,56 @@ $extralabels=$extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('categorycard')); + /* * Actions */ +if ($cancel) +{ + header('Location: '.DOL_URL_ROOT.'/categories/viewcat.php?id='.$object->id.'&type='.$type); + exit; +} + // Action mise a jour d'une categorie if ($action == 'update' && $user->rights->categorie->creer) { - $categorie = new Categorie($db); - $result=$categorie->fetch($id); - - $categorie->label = $label; - $categorie->description = dol_htmlcleanlastbr($description); - $categorie->color = $color; - $categorie->socid = ($socid ? $socid : 'null'); - $categorie->visible = $visible; + $object->label = $label; + $object->description = dol_htmlcleanlastbr($description); + $object->color = $color; + $object->socid = ($socid ? $socid : 'null'); + $object->visible = $visible; if ($parent != "-1") - $categorie->fk_parent = $parent; + $object->fk_parent = $parent; else - $categorie->fk_parent = ""; + $object->fk_parent = ""; - if (empty($categorie->label)) + if (empty($object->label)) { $error++; $action = 'edit'; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors'); } - if (! $error && empty($categorie->error)) + if (! $error && empty($object->error)) { - $ret = $extrafields->setOptionalsFromPost($extralabels,$categorie); + $ret = $extrafields->setOptionalsFromPost($extralabels,$object); if ($ret < 0) $error++; - if (! $error && $categorie->update($user) > 0) + if (! $error && $object->update($user) > 0) { - header('Location: '.DOL_URL_ROOT.'/categories/viewcat.php?id='.$categorie->id.'&type='.$type); + header('Location: '.DOL_URL_ROOT.'/categories/viewcat.php?id='.$object->id.'&type='.$type); exit; } else { - setEventMessages($categorie->error, $categorie->errors, 'errors'); + setEventMessages($object->error, $object->errors, 'errors'); } } else { - setEventMessages($categorie->error, $categorie->errors, 'errors'); + setEventMessages($object->error, $object->errors, 'errors'); } } @@ -176,7 +185,7 @@ print ''; dol_fiche_end(); -print '
'; +print '
 
'; print ''; diff --git a/htdocs/categories/index.php b/htdocs/categories/index.php index ff585212dff..e57cd22d5fd 100644 --- a/htdocs/categories/index.php +++ b/htdocs/categories/index.php @@ -146,6 +146,7 @@ foreach($fulltree as $key => $val) { $categstatic->id=$val['id']; $categstatic->ref=$val['label']; + $categstatic->color=$val['color']; $categstatic->type=$type; $li=$categstatic->getNomUrl(1,'',60); $desc=dol_htmlcleanlastbr($val['description']); @@ -153,8 +154,8 @@ foreach($fulltree as $key => $val) $data[] = array( 'rowid'=>$val['rowid'], 'fk_menu'=>$val['fk_parent'], - 'entry'=>''. + 'entry'=>'
'.$li. - ''.dolGetFirstLineOfText($desc).'
'. + ''. ''. '
color?' style="background: #'.$categstatic->color.';"':' style="background: #aaa"').'>'.$li.''.dolGetFirstLineOfText($desc).''.img_view().'
' ); diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php index 39f8d62fb7b..3b5d0b64a86 100644 --- a/htdocs/categories/viewcat.php +++ b/htdocs/categories/viewcat.php @@ -1,6 +1,6 @@ - * Copyright (C) 2006-2010 Laurent Destailleur + * Copyright (C) 2006-2015 Laurent Destailleur * Copyright (C) 2007 Patrick Raguin * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2015 Raphaël Doursenaud @@ -294,6 +294,7 @@ else print "\n"; } + // List of products or services (type is type of category) if ($object->type == Categorie::TYPE_PRODUCT) { @@ -339,7 +340,7 @@ if ($object->type == Categorie::TYPE_PRODUCT) $var=!$var; print "\t\n"; print ''; - print $prod->getNomUrl(1,'category'); + print $prod->getNomUrl(1); print "\n"; print ''.$prod->label."\n"; // Link to delete from category @@ -390,7 +391,7 @@ if ($object->type == Categorie::TYPE_SUPPLIER) print "\t\n"; print ''; - print $soc->getNomUrl(1,'category_supplier'); + print $soc->getNomUrl(1); print "\n"; // Link to delete from category print ''; @@ -444,7 +445,7 @@ if($object->type == Categorie::TYPE_CUSTOMER) $var=!$var; print "\t\n"; print ''; - print $soc->getNomUrl(1,'category'); + print $soc->getNomUrl(1); print "\n"; // Link to delete from category print ''; @@ -497,7 +498,7 @@ if ($object->type == Categorie::TYPE_MEMBER) print "\t\n"; print ''; $member->ref=$member->login; - print $member->getNomUrl(1,0,'category'); + print $member->getNomUrl(1,0); print "\n"; print ''.$member->lastname."\n"; print ''.$member->firstname."\n"; @@ -526,7 +527,7 @@ if ($object->type == Categorie::TYPE_MEMBER) } } -//Categorie contact +// Categorie contact if($object->type == Categorie::TYPE_CONTACT) { $contacts = $object->getObjectsInCateg("contact"); diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 0f561622bd1..440a5d11833 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -1081,8 +1081,10 @@ if ($id > 0) print ''; + print '

'; + print ''; // Thirdparty - Contact diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 4b86fa378cd..6d8eaf3c495 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4909,7 +4909,7 @@ class Form $ways = $c->print_all_ways(); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formated text foreach($ways as $way) { - $toprint[] = '
  • color?' style="background: #'.$c->color.';"':'').'>'.img_object('','category').' '.$way.'
  • '; + $toprint[] = '
  • color?' style="background: #'.$c->color.';"':' style="background: #aaa"').'>'.img_object('','category').' '.$way.'
  • '; } } return '
      '.implode(' ', $toprint).'
    '; diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index 51cf8a9c7a7..d6f1521e49d 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -598,7 +598,7 @@ class FormOther include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; $color = colorArrayToHex(colorStringToArray($color,array()),''); - if ($color) print ''; + if ($color) print ''; else print $textifnotdefined; } diff --git a/htdocs/core/lib/treeview.lib.php b/htdocs/core/lib/treeview.lib.php index b3f3e16a3bd..e900931037e 100644 --- a/htdocs/core/lib/treeview.lib.php +++ b/htdocs/core/lib/treeview.lib.php @@ -98,6 +98,7 @@ function tree_showpad(&$fulltree,$key,$silent=0) /** * Recursive function to output menu tree.
    • ...
    + * It is also used for the tree of categories. * Note: To have this function working, check you have loaded the js and css for treeview. * $arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', * '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js'); @@ -132,7 +133,7 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree') print '
      '; } - if ($rang > 10) return; // Protection contre boucle infinie + if ($rang > 50) return; // Protect against infinite loop. Max 50 depth //ballayage du tableau $sizeoftab=count($tab); diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php index c1d13b49429..ed95bdc4023 100644 --- a/htdocs/core/lib/usergroups.lib.php +++ b/htdocs/core/lib/usergroups.lib.php @@ -410,7 +410,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) else { $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); - if ($color) print ''; + if ($color) print ''; else print ''; } if ($edit) print '
      ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; @@ -430,7 +430,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) else { $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_BACKBODY,array()),''); - if ($color) print ''; + if ($color) print ''; else print $langs->trans("Default"); } print '   ('.$langs->trans("Default").': ffffff, '.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; @@ -455,7 +455,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) else { $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); - if ($color) print ''; + if ($color) print ''; else print ''; } if ($edit) print '
      ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; @@ -474,7 +474,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) else { $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); - if ($color) print ''; + if ($color) print ''; else print $langs->trans("Default"); } print '   ('.$langs->trans("Default").': 7882aa, '.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; @@ -567,7 +567,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) else $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_USE_HOVER,array()),''); if ($color) { - if ($color != 'edf4fb') print ''; + if ($color != 'edf4fb') print ''; else print $langs->trans("Default"); } else print $langs->trans("None"); @@ -595,7 +595,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) else { $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TOPMENU_BACK1,array()),''); - if ($color) print ''; + if ($color) print ''; else print ''; } if ($edit) print '
      ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; @@ -614,7 +614,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false) else { $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTLINK,array()),''); - if ($color) print ''; + if ($color) print ''; else print $langs->trans("Default"); } print '   ('.$langs->trans("Default").': 000078, '.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')'; diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index e31cbb4e5d4..e2f40105c4a 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -636,6 +636,7 @@ div.ficheaddleft { padding-right: 1px; padding-top: 1px; padding-bottom: 1px; + width: 44px; } div.attacharea { padding-top: 10px; @@ -3642,7 +3643,21 @@ a span.select2-chosen .noborderoncategories { border: none !important; + border-radius: 5px !important; + box-shadow: none; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: #fff !important; } +span.noborderoncategories a, li.noborderoncategories a { + color: #fff; + line-height: normal; + vertical-align: top; +} +span.noborderoncategories { + padding: 3px 5px 0px 5px; +} + /* ============================================================================== */ /* Multiselect with checkbox */ diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index dd93e172366..742a0a93a19 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -686,6 +686,7 @@ div.ficheaddleft { padding-right: 1px; padding-top: 1px; padding-bottom: 1px; + width: 44px; } div.attacharea { padding-top: 10px; @@ -3482,6 +3483,23 @@ a span.select2-chosen overflow: hidden; } +.noborderoncategories { + border: none !important; + border-radius: 5px !important; + box-shadow: none; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: #fff !important; +} +span.noborderoncategories a, li.noborderoncategories a { + color: #fff; + line-height: normal; + vertical-align: top; +} +span.noborderoncategories { + padding: 3px 5px 0px 5px; +} + /* ============================================================================== */ /* Multiselect with checkbox */ From 3b2a9213784bf83bf63eb1315ee8f1d4c5f92fd0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 19 Dec 2015 14:05:38 +0100 Subject: [PATCH 03/27] Fix a serial is required for stock change --- htdocs/product/stock/product.php | 21 +++++++++++++++---- .../product/stock/tpl/stockcorrection.tpl.php | 4 ++-- .../product/stock/tpl/stocktransfer.tpl.php | 2 +- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index ad4acbe362a..7038c745364 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2004-2015 Laurent Destailleur * Copyright (C) 2004 Eric Seigne * Copyright (C) 2005 Simon TOSSER * Copyright (C) 2005-2009 Regis Houssin @@ -115,8 +115,9 @@ if ($action == "correct_stock" && ! $cancel) $object = new Product($db); $result=$object->fetch($id); - if ($object->hasbatch() && (! GETPOST("sellby")) && (! GETPOST("eatby")) && (! GETPOST("batch_number"))) { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("atleast1batchfield")), null, 'errors'); + if ($object->hasbatch() && ! GETPOST("batch_number")) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("batch_number")), null, 'errors'); $error++; $action='correction'; } @@ -202,7 +203,19 @@ if ($action == "transfert_stock" && ! $cancel) $error++; $action='transfert'; } - + if (! empty($conf->productbatch->enabled)) + { + $object = new Product($db); + $result=$object->fetch($id); + + if ($object->hasbatch() && ! GETPOST("batch_number")) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("batch_number")), null, 'errors'); + $error++; + $action='transfert'; + } + } + if (! $error) { if ($id) diff --git a/htdocs/product/stock/tpl/stockcorrection.tpl.php b/htdocs/product/stock/tpl/stockcorrection.tpl.php index b1121731293..90a7468a351 100644 --- a/htdocs/product/stock/tpl/stockcorrection.tpl.php +++ b/htdocs/product/stock/tpl/stockcorrection.tpl.php @@ -80,11 +80,11 @@ print '
    '; print ''; - // Eat-by date + // Serial / Eat-by date if ((! empty($conf->productbatch->enabled)) && is_object($product) && $product->hasbatch()) { print ''; - print ''; print ''; diff --git a/htdocs/product/stock/tpl/stocktransfer.tpl.php b/htdocs/product/stock/tpl/stocktransfer.tpl.php index 93c3135e5f1..0f13a5452da 100644 --- a/htdocs/product/stock/tpl/stocktransfer.tpl.php +++ b/htdocs/product/stock/tpl/stocktransfer.tpl.php @@ -75,7 +75,7 @@ if ((! empty($conf->productbatch->enabled)) && $product->hasbatch()) { print ''; - print ''; print ''; From 9334cf8fd189e31509452f8d1b9483b7e3bbf367 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 19 Dec 2015 18:03:08 +0100 Subject: [PATCH 04/27] FIX #4243 sql injection --- htdocs/core/class/html.form.class.php | 12 ++++++------ htdocs/product/ajax/products.php | 2 +- htdocs/product/class/product.class.php | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 902fff35bcb..10db9442ca6 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -1399,13 +1399,13 @@ class Form foreach ($scrit as $crit) { if ($i > 0) $sql.=" AND "; - $sql.="(p.ref LIKE '".$prefix.$crit."%' OR p.label LIKE '".$prefix.$crit."%'"; - if (! empty($conf->global->MAIN_MULTILANGS)) $sql.=" OR pl.label LIKE '".$prefix.$crit."%'"; + $sql.="(p.ref LIKE '".$db->escape($prefix.$crit)."%' OR p.label LIKE '".$db->escape($prefix.$crit)."%'"; + if (! empty($conf->global->MAIN_MULTILANGS)) $sql.=" OR pl.label LIKE '".$db->escape($prefix.$crit)."%'"; $sql.=")"; $i++; } if (count($scrit) > 1) $sql.=")"; - if (! empty($conf->barcode->enabled)) $sql.= " OR p.barcode LIKE '".$prefix.$filterkey."%'"; + if (! empty($conf->barcode->enabled)) $sql.= " OR p.barcode LIKE '".$db->escape($prefix.$filterkey)."%'"; $sql.=')'; } $sql.= $db->order("p.ref"); @@ -1750,7 +1750,7 @@ class Form $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON pfp.fk_soc = s.rowid"; $sql.= " WHERE p.entity IN (".getEntity('product', 1).")"; $sql.= " AND p.tobuy = 1"; - if (strval($filtertype) != '') $sql.=" AND p.fk_product_type=".$filtertype; + if (strval($filtertype) != '') $sql.=" AND p.fk_product_type=".$this->db->escape($filtertype); if (! empty($filtre)) $sql.=" ".$filtre; // Add criteria on ref/label if ($filterkey != '') @@ -1764,11 +1764,11 @@ class Form foreach ($scrit as $crit) { if ($i > 0) $sql.=" AND "; - $sql.="(pfp.ref_fourn LIKE '".$prefix.$crit."%' OR p.ref LIKE '".$prefix.$crit."%' OR p.label LIKE '".$prefix.$crit."%')"; + $sql.="(pfp.ref_fourn LIKE '".$this->db->escape($prefix.$crit)."%' OR p.ref LIKE '".$this->db->escape($prefix.$crit)."%' OR p.label LIKE '".$this->db->escape($prefix.$crit)."%')"; $i++; } if (count($scrit) > 1) $sql.=")"; - if (! empty($conf->barcode->enabled)) $sql.= " OR p.barcode LIKE '".$prefix.$filterkey."%'"; + if (! empty($conf->barcode->enabled)) $sql.= " OR p.barcode LIKE '".$this->db->escape($prefix.$filterkey)."%'"; $sql.=')'; } $sql.= " ORDER BY pfp.ref_fourn DESC, pfp.quantity ASC"; diff --git a/htdocs/product/ajax/products.php b/htdocs/product/ajax/products.php index 61a1c3bff73..c8f78a11c42 100644 --- a/htdocs/product/ajax/products.php +++ b/htdocs/product/ajax/products.php @@ -169,7 +169,7 @@ if (! empty($action) && $action == 'fetch' && ! empty($id)) { $match = preg_grep('/(' . $htmlname . '[0-9]+)/', array_keys($_GET)); sort($match); - $idprod = (! empty($match [0]) ? $match [0] : ''); + $idprod = (! empty($match[0]) ? $match[0] : ''); if (! GETPOST($htmlname) && ! GETPOST($idprod)) return; diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 22dde9accc7..72f826d546f 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -2863,7 +2863,7 @@ class Product extends CommonObject { global $langs; $langs->load('products'); - if ($conf->productbatch->enabled) $langs->load("productbatch"); + if (! empty($conf->productbatch->enabled)) $langs->load("productbatch"); if ($type == 2) { From 3517b640317577580804a8514d3dd3ec136d9d8e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 19 Dec 2015 18:18:24 +0100 Subject: [PATCH 05/27] FIX #4228 PHP7 error --- .../compta/paiement/class/paiement.class.php | 20 +++++++++---------- htdocs/fourn/class/paiementfourn.class.php | 20 ++++++++++++++----- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/htdocs/compta/paiement/class/paiement.class.php b/htdocs/compta/paiement/class/paiement.class.php index 35d0f838ff9..7e94a1f5448 100644 --- a/htdocs/compta/paiement/class/paiement.class.php +++ b/htdocs/compta/paiement/class/paiement.class.php @@ -29,8 +29,8 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; -/** \class Paiement - * \brief Classe permettant la gestion des paiements des factures clients +/** + * Class to manage payments of customer invoices */ class Paiement extends CommonObject { @@ -78,7 +78,7 @@ class Paiement extends CommonObject * @param int $id Id of payment to get * @param string $ref Ref of payment to get (currently ref = id but this may change in future) * @param int $fk_bank Id of bank line associated to payment - * @return int <0 if KO, 0 if not found, >0 if OK + * @return int <0 if KO, 0 if not found, >0 if OK */ function fetch($id, $ref='', $fk_bank='') { @@ -96,14 +96,12 @@ class Paiement extends CommonObject else if ($fk_bank) $sql.= ' AND p.fk_bank = '.$fk_bank; - dol_syslog(get_class($this)."::fetch", LOG_DEBUG); - $result = $this->db->query($sql); - - if ($result) + $resql = $this->db->query($sql); + if ($resql) { - if ($this->db->num_rows($result)) + if ($this->db->num_rows($resql)) { - $obj = $this->db->fetch_object($result); + $obj = $this->db->fetch_object($resql); $this->id = $obj->rowid; $this->ref = $obj->ref; $this->date = $this->db->jdate($obj->dp); @@ -120,12 +118,12 @@ class Paiement extends CommonObject $this->fk_account = $obj->fk_account; $this->bank_line = $obj->fk_bank; - $this->db->free($result); + $this->db->free($resql); return 1; } else { - $this->db->free($result); + $this->db->free($resql); return 0; } } diff --git a/htdocs/fourn/class/paiementfourn.class.php b/htdocs/fourn/class/paiementfourn.class.php index 5326bbde85e..df122ef1fff 100644 --- a/htdocs/fourn/class/paiementfourn.class.php +++ b/htdocs/fourn/class/paiementfourn.class.php @@ -65,18 +65,28 @@ class PaiementFourn extends Paiement /** * Load payment object * - * @param int $id Id if payment to get - * @return int <0 if ko, >0 if ok + * @param int $id Id if payment to get + * @param string $ref Ref of payment to get (currently ref = id but this may change in future) + * @param int $fk_bank Id of bank line associated to payment + * @return int <0 if KO, -2 if not found, >0 if OK */ - function fetch($id) + function fetch($id, $ref='', $fk_bank='') { + $error=0; + $sql = 'SELECT p.rowid, p.datep as dp, p.amount, p.statut, p.fk_bank,'; $sql.= ' c.code as paiement_code, c.libelle as paiement_type,'; $sql.= ' p.num_paiement, p.note, b.fk_account'; $sql.= ' FROM '.MAIN_DB_PREFIX.'c_paiement as c, '.MAIN_DB_PREFIX.'paiementfourn as p'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid '; $sql.= ' WHERE p.fk_paiement = c.id'; - $sql.= ' AND p.rowid = '.$id; + if ($id > 0) + $sql.= ' AND p.rowid = '.$id; + else if ($ref) + $sql.= ' AND p.rowid = '.$ref; + else if ($fk_bank) + $sql.= ' AND p.fk_bank = '.$fk_bank; + $resql = $this->db->query($sql); if ($resql) { @@ -99,7 +109,7 @@ class PaiementFourn extends Paiement } else { - $error = -2; + $error = -2; // TODO Use 0 instead } $this->db->free($resql); } From f5c5dfd37faaafa57ee55dd478ce9f25908b9f43 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 19 Dec 2015 18:26:15 +0100 Subject: [PATCH 06/27] FIX #4185 --- htdocs/langs/es_ES/accountancy.lang | 1921 ++++++++++++++++++++++++-- htdocs/langs/es_ES/agenda.lang | 6 +- htdocs/langs/es_ES/ftp.lang | 4 +- htdocs/langs/es_ES/incoterm.lang | 12 +- htdocs/langs/es_ES/languages.lang | 2 +- htdocs/langs/es_ES/link.lang | 2 +- htdocs/langs/es_ES/productbatch.lang | 2 +- htdocs/langs/es_ES/suppliers.lang | 1 + htdocs/langs/es_ES/workflow.lang | 6 +- htdocs/langs/es_VE/incoterm.lang | 2 - htdocs/langs/pt_BR/trips.lang | 1 - 11 files changed, 1810 insertions(+), 149 deletions(-) diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index 1a9074f60a6..9cffafa1772 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -1,157 +1,1820 @@ -# Dolibarr language file - en_US - Accounting Expert -ACCOUNTING_EXPORT_SEPARATORCSV=Separador de columnas en el archivo de exportación -ACCOUNTING_EXPORT_DATE=Formato de fecha en el archivo de exportación -ACCOUNTING_EXPORT_PIECE=Export the number of piece -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account -ACCOUNTING_EXPORT_LABEL=Export the label -ACCOUNTING_EXPORT_AMOUNT=Export the amount -ACCOUNTING_EXPORT_DEVISE=Export the devise -Selectformat=Select the format for the file -ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name -Accounting=Contabilidad -Globalparameters=Configuración global -Menuaccount=Cuentas contables -Menuthirdpartyaccount=Cuentas de terceros -MenuTools=Utilidades -ConfigAccountingExpert=Configuración del módulo contable -Journaux=Diarios -JournalFinancial=Diarios financieros -Exports=Exportaciones -Export=Exportar -Modelcsv=Modelo de exportación -OptionsDeactivatedForThisExportModel=Las opciones están desactivadas para este modelo de exportación -Selectmodelcsv=Seleccione un modelo de exportación -Modelcsv_normal=Exportación clásica -Modelcsv_CEGID=Exportar a Cegid Expert -BackToChartofaccounts=Volver al plan contable -Back=Volver -Definechartofaccounts=Definir plan contable -Selectchartofaccounts=Seleccione un plan contable -Addanaccount=Añadir una cuenta contable -AccountAccounting=Cuenta contable -AccountAccountingSuggest=Accounting account suggest -Ventilation=Contabilizar -CustomersVentilation=Contabilizar clientes -SuppliersVentilation=Contabilizar proveedores -TradeMargin=Margen de beneficio -Reports=Informes -ByCustomerInvoice=Por facturas a clientes -NewAccount=Nueva cuenta contable -Create=Crear -CreateMvts=Crear movimiento -UpdateAccount=Modificar una cuenta contable -UpdateMvts=Modificar un movimiento -WriteBookKeeping=Registrar los asientos en el libro mayor -Bookkeeping=Libro Mayor -AccountBalanceByMonth=Saldo mensual + + + + + + + -AccountingVentilation=Descuadre contabilidad -AccountingVentilationSupplier=Contablilización compras -AccountingVentilationCustomer=Contabilización ventas -CAHTF=Total purchase supplier before tax -InvoiceLines=Líneas de factura para contabilizar -InvoiceLinesDone=Líneas de facturas contabilizadas -IntoAccount=Ventilate in the accounting account +dolibarr/accountancy.lang at develop · Dolibarr/dolibarr · GitHub + + + + + + + -Ventilate=Contabilizar -VentilationAuto=Contabilización automática + + + + + -Processing=Tratamiento -EndProcessing=Final del tratamiento -AnyLineVentilate=No hay líneas para contabilizar -SelectedLines=Líneas seleccionadas -Lineofinvoice=Línea de la factura -VentilatedinAccount=Contabilizada con éxito en la cuenta contable -NotVentilatedinAccount=Cuenta sin contabilización en la contabilidad + -ACCOUNTING_SEPARATORCSV=Separador de columnas en el archivo de exportación -ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos a contabilizar que se muestran por página (máximo recomendado: 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Ordenar las páginas de contabilización "A contabilizar" por los elementos más recientes -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Ordenar las páginas de contabilización "Contabilizadas" por los elementos más recientes + + + -AccountLength=Longitud de las cuentas contables mostradas en Dolibarr -AccountLengthDesc=Función para simular una longitud de cuenta contable sustituyendo los espacios por cero. Esta función sólo afecta a la pantalla, no cambia las cuentas contables registradas en Dolibarr. Esta función es necesaria para la exportación, para ser compatible con algunos programas. -ACCOUNTING_LENGTH_DESCRIPTION=Longitud para la visualización de productos y servicios en los listados (Ideal = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Longitud para la visualización de la descripción de productos y servicios en los listados (Ideal = 50) -ACCOUNTING_LENGTH_GACCOUNT=Longitud de las cuentas generales -ACCOUNTING_LENGTH_AACCOUNT=Longitud de las subcuentas + + -ACCOUNTING_SELL_JOURNAL=Diario de ventas -ACCOUNTING_PURCHASE_JOURNAL=Diario de compras -ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario de operaciones diversas -ACCOUNTING_EXPENSEREPORT_JOURNAL=Informe de gastos diario -ACCOUNTING_SOCIAL_JOURNAL=Diario social + + + -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta de caja -ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta operaciones pendientes de asignar -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable predeterminada para los productos comprados (si no se define en el producto) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta contable predeterminada para los productos vendidos (si no se define en el producto) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta contable predeterminada para los servicios comprados (si no se define en el servicio) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta contable predeterminada para los servicios vendidos (si no se define en el servicio) + -Doctype=Tipo de documento -Docdate=Fecha -Docref=Referencia -Numerocompte=Cuenta -Code_tiers=Tercero -Labelcompte=Descripción -Sens=Sentido -Codejournal=Diario -DelBookKeeping=Eliminar los registros del Diario Mayor -DescSellsJournal=Diario de ventas -DescPurchasesJournal=Diario de compras -BankJournal=Diario bancario -DescBankJournal=El diario bancario incluye todos los tipos pagos que no sean de efectivo -CashJournal=Diario de caja -DescCashJournal=El diario de caja incluye el tipo de pago efectivo -FinanceJournal=Diario financiero -DescFinanceJournal=El diario financiero incluye todos los tipos de pagos por cuenta bancaria + + -CashPayment=Pago en efectivo + -SupplierInvoicePayment=Pago de factura de proveedor -CustomerInvoicePayment=Cobro de factura a cliente + + -ThirdPartyAccount=Cuenta de tercero + -NewAccountingMvt=Nuevo movimiento -NumMvts=Número del movimiento -ListeMvts=Listado del movimiento -ErrorDebitCredit=Debe y Haber no pueden contener un valor al mismo tiempo + + -ReportThirdParty=Listado cuentas de terceros -DescThirdPartyReport=Consulte aquí el listado de clientes y proveedores y sus códigos contables -ListAccounts=Listado de cuentas contables -Pcgversion=Versión del plan -Pcgtype=Tipo del plan -Pcgsubtype=Subcuenta -Accountparent=Padre de la cuenta -DescVentilCustomer=Consulte aquí la contabilización anual de sus facturas a clientes -TotalVente=Total turnover before tax -TotalMarge=Total margen ventas -DescVentilDoneCustomer=Consulte aquí las líneas de facturas a clientes y sus cuentas contables -DescVentilTodoCustomer=Contabilice sus líneas de facturas a clientes con una cuenta contable -ChangeAccount=Cambie la cuenta para las líneas seleccionadas a la cuenta: -Vide=- -DescVentilSupplier=Consulte aquí la contabilidad anual de sus facturas de proveedores -DescVentilTodoSupplier=Contabilize sus líneas de facturas de proveedores -DescVentilDoneSupplier=Consulte aquí la lista de facturas de proveedores y sus cuentas contables + -ValidateHistory=Validar automáticamente -ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada + + + + + + + + + + +Skip to content + + + + + + + + +
    '.$langs->trans("batch_number").''; + print ''.$langs->trans("batch_number").''; print ''; print '
    '.$langs->trans("batch_number").''; + print ''.$langs->trans("batch_number").''; print ' 0 ? ' disabled':'').' value="'.(GETPOST('batch_number')?GETPOST('batch_number'):$pdluo->batch).'">'; // If form was opened for a specific pdluoid, field is disabled print '
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +Skip to content + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -FicheVentilation=Ficha contable -GeneralLedgerIsWritten=Operations are written in the general ledger diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang index 339d8f45d6f..93619d60e3c 100644 --- a/htdocs/langs/es_ES/agenda.lang +++ b/htdocs/langs/es_ES/agenda.lang @@ -23,7 +23,7 @@ MenuToDoActions=Eventos incompletos MenuDoneActions=Eventos terminados MenuToDoMyActions=Mis eventos incompletos MenuDoneMyActions=Mis eventos terminados -ListOfEvents=lista de acontecimientos (calendario interno) +ListOfEvents=Lista de acontecimientos (calendario interno) ActionsAskedBy=Eventos registrados por ActionsToDoBy=Eventos asignados a ActionsDoneBy=Eventos realizados por @@ -90,8 +90,8 @@ ExtSiteUrlAgenda=Url de acceso al archivo .ical ExtSiteNoLabel=Sin descripción WorkingTimeRange=Rango temporal WorkingDaysRange=Rango diario -VisibleTimeRange=Visible time range -VisibleDaysRange=Visible days range +VisibleTimeRange=Rango de tiempo visible +VisibleDaysRange=Rango de días visibles AddEvent=Crear evento MyAvailability=Mi disponibilidad ActionType=Tipo de evento diff --git a/htdocs/langs/es_ES/ftp.lang b/htdocs/langs/es_ES/ftp.lang index 32ca18e05eb..c363097056f 100644 --- a/htdocs/langs/es_ES/ftp.lang +++ b/htdocs/langs/es_ES/ftp.lang @@ -10,5 +10,5 @@ FailedToConnectToFTPServerWithCredentials=No se pudo conectar con el login/contr FTPFailedToRemoveFile=No se pudo eliminar el archivo %s. FTPFailedToRemoveDir=No se pudo eliminar el directorio %s (Compruebe los permisos y que el directorio está vacío). FTPPassiveMode=Modo pasivo -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s +ChooseAFTPEntryIntoMenu=Elija una entrada de FTP en el menú ... +FailedToGetFile=No se pudieron obtener los archivos %s diff --git a/htdocs/langs/es_ES/incoterm.lang b/htdocs/langs/es_ES/incoterm.lang index 2396d2acb0e..ff718945cb8 100644 --- a/htdocs/langs/es_ES/incoterm.lang +++ b/htdocs/langs/es_ES/incoterm.lang @@ -1,7 +1,7 @@ -Module210009Name=Incoterm -Module210009Desc=Add features to manage Incoterm +Module62000Name=Incoterm +Module62000Desc=Añade funciones para gestionar Incoterm IncotermLabel=Incoterms -IncotermSetupTitle1=Feature -IncotermSetupTitle2=Status -IncotermSetup=Setup of module Incoterm -IncotermFunctionDesc=Activate Incoterm feature (Thirdparty, Proposal, Customer Order, Customer Invoice, Shipment, Supplier order) +IncotermSetupTitle1=Función +IncotermSetupTitle2=Estado +IncotermSetup=Configuración del módulo Incoterm +IncotermFunctionDesc=Activa funcionalidades Incoterm (Tercero, Presupuesto, Pedido, Factura a cliente, Envío, Pedido a proveedor) diff --git a/htdocs/langs/es_ES/languages.lang b/htdocs/langs/es_ES/languages.lang index f2b048ef189..59ed92d658a 100644 --- a/htdocs/langs/es_ES/languages.lang +++ b/htdocs/langs/es_ES/languages.lang @@ -35,7 +35,7 @@ Language_es_PR=Español (Puerto Rico) Language_et_EE=Estonio Language_eu_ES=Vasco Language_fa_IR=Persa -Language_fi_FI=Finnish +Language_fi_FI=Finés Language_fr_BE=Francés (Bélgica) Language_fr_CA=Francés (Canadá) Language_fr_CH=Francés (Suiza) diff --git a/htdocs/langs/es_ES/link.lang b/htdocs/langs/es_ES/link.lang index ef23d443505..fb8777e0259 100644 --- a/htdocs/langs/es_ES/link.lang +++ b/htdocs/langs/es_ES/link.lang @@ -6,4 +6,4 @@ ErrorFileNotLinked=El archivo no ha podido ser vinculado LinkRemoved=El vínculo %s ha sido eliminado ErrorFailedToDeleteLink= Error al eliminar el vínculo '%s' ErrorFailedToUpdateLink= Error al actualizar el vínculo '%s' -URLToLink=URL to link +URLToLink=URL a enlazar diff --git a/htdocs/langs/es_ES/productbatch.lang b/htdocs/langs/es_ES/productbatch.lang index c64dd71d4fc..e87513b339d 100644 --- a/htdocs/langs/es_ES/productbatch.lang +++ b/htdocs/langs/es_ES/productbatch.lang @@ -19,4 +19,4 @@ printQty=Cant.: %d AddDispatchBatchLine=Añada una línea para despacho por caducidad BatchDefaultNumber=Indefinido WhenProductBatchModuleOnOptionAreForced=Si el módulo de Lotes/Series está activado, el incremento/decremento de stock es forzado a lo último escogido y no puede editarse. Otras opciones pueden definirse si se necesita -ProductDoesNotUseBatchSerial=Este producto no usa numeración por lotes/series +ProductDoesNotUseBatchSerial=Este producto no usa lotes/series diff --git a/htdocs/langs/es_ES/suppliers.lang b/htdocs/langs/es_ES/suppliers.lang index 6cfa8173a46..e54a9bc40a6 100644 --- a/htdocs/langs/es_ES/suppliers.lang +++ b/htdocs/langs/es_ES/suppliers.lang @@ -3,6 +3,7 @@ Suppliers=Proveedores AddSupplier=Crear un proveedor SupplierRemoved=Proveedor eliminado SuppliersInvoice=Factura proveedor +ShowSupplierInvoice=Ver factura de proveedor NewSupplier=Nuevo proveedor History=Histórico ListOfSuppliers=Listado de proveedores diff --git a/htdocs/langs/es_ES/workflow.lang b/htdocs/langs/es_ES/workflow.lang index 38894945931..c2b2220eaba 100644 --- a/htdocs/langs/es_ES/workflow.lang +++ b/htdocs/langs/es_ES/workflow.lang @@ -3,9 +3,9 @@ WorkflowSetup=Configuración del módulo Flujo de trabajo WorkflowDesc=Este módulo está diseñado para modificar el comportamiento de acciones automáticas en la aplicación. Por defecto, el flujo de trabajo está abierto (se pueden hacer cosas en el orden que se desee). Puede activar las acciones automáticas que le interesen. ThereIsNoWorkflowToModify=No hay disponibles modificaciones de flujo de trabajo de los módulos activados. descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear un pedido de cliente automáticamente a la firma de un presupuesto -descWORKFLOW_PROPAL_AUTOCREATE_INVOICEAutomatically Crear una factura a cliente automáticamente a la firma de un presupuesto -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICEAutomatically Crear una factura a cliente automáticamente a la validación de un contrato -descWORKFLOW_ORDER_AUTOCREATE_INVOICEAutomatically Crear una factura a cliente automáticamente al cierre de un pedido de cliente +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente a la firma de un presupuesto +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente al validar un contrato +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente después de cerrar una orden descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificar como facturado el presupuesto cuando el pedido de cliente relacionado se clasifique como pagado descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasificar como facturados los pedidos cuando la factura relacionada se clasifique como pagada descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasificar como facturados los pedidos de cliente relacionados cuando la factura sea validada diff --git a/htdocs/langs/es_VE/incoterm.lang b/htdocs/langs/es_VE/incoterm.lang index 12a690f05d7..e6ee83aa3b5 100644 --- a/htdocs/langs/es_VE/incoterm.lang +++ b/htdocs/langs/es_VE/incoterm.lang @@ -1,5 +1,3 @@ # Dolibarr language file - Source file is en_US - incoterm -IncotermSetupTitle1=Función -IncotermSetupTitle2=Estado IncotermSetup=Configuración del módulo de Incoterm IncotermFunctionDesc=Activar función Incoterm (thirdparty, Propuesta, pedido del cliente, la factura del cliente, envío, orden Proveedor) diff --git a/htdocs/langs/pt_BR/trips.lang b/htdocs/langs/pt_BR/trips.lang index 715aae4929d..a9a5f246df5 100644 --- a/htdocs/langs/pt_BR/trips.lang +++ b/htdocs/langs/pt_BR/trips.lang @@ -24,7 +24,6 @@ TripSalarie=Informações do usuário TripNDF=Informações relatório de despesas PDFStandardExpenseReports=Template padrão para gerar um documento PDF para relatório de despesa ExpenseReportLine=Linha de relatório de despesas -TF_TRANSPORTATION=Transporte TF_TRAIN=Trem TF_BUS=Onibus TF_PEAGE=Pedágio From 55e90c56766b877af078bec4f931b3d75f1d11b2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 19 Dec 2015 18:35:17 +0100 Subject: [PATCH 07/27] Try to restore lost file --- htdocs/langs/es_ES/accountancy.lang | 1977 +++------------------------ 1 file changed, 157 insertions(+), 1820 deletions(-) diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index 9cffafa1772..1a9074f60a6 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -1,1820 +1,157 @@ - - - - - - - - - - - - - -dolibarr/accountancy.lang at develop · Dolibarr/dolibarr · GitHub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - - - - - - -