From b6deda1111fd654086f6faf7d3dc6a0227e55b39 Mon Sep 17 00:00:00 2001 From: atm-quentin Date: Mon, 18 Feb 2019 12:28:18 +0100 Subject: [PATCH 001/944] FIX credit note used on list --- .../fourn/class/fournisseur.facture.class.php | 21 +++++++++++++++++++ htdocs/fourn/facture/list.php | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 086f154184d..4ad0b221c36 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -2574,6 +2574,27 @@ class FactureFournisseur extends CommonInvoice return ($this->statut == self::STATUS_VALIDATED) && ($this->date_echeance < ($now - $conf->facture->fournisseur->warning_delay)); } + + /** + * Is credit note used + * + * @return bool + */ + public function isCreditNoteUsed() + { + global $db; + + $isUsed = false; + + $sql = "SELECT fk_invoice_supplier FROM ".MAIN_DB_PREFIX."societe_remise_except WHERE fk_invoice_supplier_source=".$this->id; + $resql = $db->query($sql); + if(!empty($resql)){ + $obj = $db->fetch_object($resql); + if(!empty($obj->fk_invoice_supplier))$isUsed=true; + } + + return $isUsed; + } } diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 98a6956a809..b53a07104c7 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -833,6 +833,7 @@ if ($resql) $facturestatic->date_echeance = $db->jdate($obj->datelimite); $facturestatic->statut = $obj->fk_statut; + $thirdparty->id=$obj->socid; $thirdparty->name=$obj->name; $thirdparty->client=$obj->client; @@ -850,6 +851,11 @@ if ($resql) $totalpay = $paiement + $totalcreditnotes + $totaldeposits; $remaintopay = $obj->total_ttc - $totalpay; + //If invoice has been converted and the conversion has been used, we dont have remain to pay on invoice + if($facturestatic->type == FactureFournisseur::TYPE_CREDIT_NOTE && $facturestatic->statut == FactureFournisseur::STATUS_CLOSED) { + if($facturestatic->isCreditNoteUsed())$remaintopay=0; + } + print ''; if (! empty($arrayfields['f.ref']['checked'])) { From 785092544115056183e718a831e3ac419c4b797e Mon Sep 17 00:00:00 2001 From: atm-quentin Date: Fri, 22 Feb 2019 15:10:41 +0100 Subject: [PATCH 002/944] FIX amount opened on thirdparty card dont care of credit note not converted --- htdocs/societe/class/societe.class.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 412bf46b082..b894504bb10 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -3727,7 +3727,7 @@ class Societe extends CommonObject $alreadypayed=price2num($paiement + $creditnotes + $deposits,'MT'); $remaintopay=price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits,'MT'); */ - if ($mode == 'supplier') $sql = "SELECT rowid, total_ht as total_ht, total_ttc, paye, fk_statut, close_code FROM ".MAIN_DB_PREFIX.$table." as f"; + if ($mode == 'supplier') $sql = "SELECT rowid, total_ht as total_ht, total_ttc, paye, type, fk_statut, close_code FROM ".MAIN_DB_PREFIX.$table." as f"; else $sql = "SELECT rowid, total as total_ht, total_ttc, paye, fk_statut, close_code FROM ".MAIN_DB_PREFIX.$table." as f"; $sql .= " WHERE fk_soc = ". $this->id; if ($mode == 'supplier') { @@ -3754,7 +3754,13 @@ class Societe extends CommonObject $tmpobject=new Facture($this->db); } while($obj=$this->db->fetch_object($resql)) { - $tmpobject->id=$obj->rowid; + $tmpobject->id=$obj->rowid; + + $paiement = $tmpobject->getSommePaiement(); + $creditnotes = $tmpobject->getSumCreditNotesUsed(); + $deposits = $tmpobject->getSumDepositsUsed(); + + if ($obj->fk_statut != 0 // Not a draft && ! ($obj->fk_statut == 3 && $obj->close_code == 'replaced') // Not a replaced invoice ) @@ -3768,11 +3774,14 @@ class Societe extends CommonObject && $obj->fk_statut != 2) // Not classified as paid //$sql .= " AND (fk_statut <> 3 OR close_code <> 'abandon')"; // Not abandonned for undefined reason { - $paiement = $tmpobject->getSommePaiement(); - $creditnotes = $tmpobject->getSumCreditNotesUsed(); - $deposits = $tmpobject->getSumDepositsUsed(); + $outstandingOpened+=$obj->total_ttc - $paiement - $creditnotes - $deposits; } + + if($mode == 'supplier' && $obj->type == FactureFournisseur::TYPE_CREDIT_NOTE && $obj->fk_statut == FactureFournisseur::STATUS_CLOSED && !$tmpobject->isCreditNoteUsed()) { //if credit note is converted but not used + + $outstandingOpened+=$obj->total_ttc-$paiement; + } } return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax); // 'opened' is 'incl taxes' } From dc7a2fbb30e34b04a5cc88af5ac6234c8be56911 Mon Sep 17 00:00:00 2001 From: atm-quentin Date: Mon, 25 Feb 2019 10:01:26 +0100 Subject: [PATCH 003/944] FIX placement function --- htdocs/societe/class/societe.class.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index b894504bb10..7d54e7ad01e 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -3756,9 +3756,7 @@ class Societe extends CommonObject while($obj=$this->db->fetch_object($resql)) { $tmpobject->id=$obj->rowid; - $paiement = $tmpobject->getSommePaiement(); - $creditnotes = $tmpobject->getSumCreditNotesUsed(); - $deposits = $tmpobject->getSumDepositsUsed(); + if ($obj->fk_statut != 0 // Not a draft @@ -3774,12 +3772,15 @@ class Societe extends CommonObject && $obj->fk_statut != 2) // Not classified as paid //$sql .= " AND (fk_statut <> 3 OR close_code <> 'abandon')"; // Not abandonned for undefined reason { + $paiement = $tmpobject->getSommePaiement(); + $creditnotes = $tmpobject->getSumCreditNotesUsed(); + $deposits = $tmpobject->getSumDepositsUsed(); $outstandingOpened+=$obj->total_ttc - $paiement - $creditnotes - $deposits; } if($mode == 'supplier' && $obj->type == FactureFournisseur::TYPE_CREDIT_NOTE && $obj->fk_statut == FactureFournisseur::STATUS_CLOSED && !$tmpobject->isCreditNoteUsed()) { //if credit note is converted but not used - + if(empty($paiement)) $paiement = $tmpobject->getSommePaiement(); $outstandingOpened+=$obj->total_ttc-$paiement; } } From 6deba39c6a9d67826297d7422f8130bb95133b35 Mon Sep 17 00:00:00 2001 From: atm-quentin Date: Fri, 12 Apr 2019 10:16:13 +0200 Subject: [PATCH 004/944] FIX credit note can be split --- htdocs/core/class/commoninvoice.class.php | 23 ++++++++++++ htdocs/core/class/discount.class.php | 43 +++++++++++++++++++++++ htdocs/fourn/facture/list.php | 7 ++-- htdocs/societe/class/societe.class.php | 8 ++--- 4 files changed, 75 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/commoninvoice.class.php b/htdocs/core/class/commoninvoice.class.php index 3aa8eb4e1ab..35ec6ad283e 100644 --- a/htdocs/core/class/commoninvoice.class.php +++ b/htdocs/core/class/commoninvoice.class.php @@ -195,6 +195,29 @@ abstract class CommonInvoice extends CommonObject } } + /** + * Return amount (with tax) of all converted amount for this credit note + * + * @param int $multicurrency Return multicurrency_amount instead of amount + * @return int <0 if KO, Sum of credit notes and deposits amount otherwise + */ + function getSumFromThisCreditNotesNotUsed($multicurrency=0) + { + require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php'; + + $discountstatic=new DiscountAbsolute($this->db); + $result=$discountstatic->getSumFromThisCreditNotesNotUsed($this, $multicurrency); + if ($result >= 0) + { + return $result; + } + else + { + $this->error=$discountstatic->error; + return -1; + } + } + /** * Renvoie tableau des ids de facture avoir issus de la facture * diff --git a/htdocs/core/class/discount.class.php b/htdocs/core/class/discount.class.php index cfe7ac24dea..2e99a83ec42 100644 --- a/htdocs/core/class/discount.class.php +++ b/htdocs/core/class/discount.class.php @@ -568,6 +568,49 @@ class DiscountAbsolute return -1; } } + /** + * Return amount (with tax) of all converted amount for this credit note + * + * @param CommonInvoice $invoice Object invoice + * @param int $multicurrency Return multicurrency_amount instead of amount + * @return int <0 if KO, Sum of credit notes and deposits amount otherwise + */ + function getSumFromThisCreditNotesNotUsed($invoice, $multicurrency=0) + { + dol_syslog(get_class($this)."::getSumCreditNotesUsed", LOG_DEBUG); + + if ($invoice->element == 'facture' || $invoice->element == 'invoice') + { + $sql = 'SELECT sum(rc.amount_ttc) as amount, sum(rc.multicurrency_amount_ttc) as multicurrency_amount'; + $sql.= ' FROM '.MAIN_DB_PREFIX.'societe_remise_except as rc'; + $sql.= ' WHERE rc.fk_facture IS NULL AND rc.fk_facture_source = '.$invoice->id; + } + else if ($invoice->element == 'invoice_supplier') + { + $sql = 'SELECT sum(rc.amount_ttc) as amount, sum(rc.multicurrency_amount_ttc) as multicurrency_amount'; + $sql.= ' FROM '.MAIN_DB_PREFIX.'societe_remise_except as rc'; + $sql.= ' WHERE rc.fk_invoice_supplier IS NULL AND rc.fk_invoice_supplier_source = '.$invoice->id; + } + else + { + $this->error=get_class($this)."::getSumCreditNotesUsed was called with a bad object as a first parameter"; + dol_print_error($this->error); + return -1; + } + + $resql=$this->db->query($sql); + if ($resql) + { + $obj = $this->db->fetch_object($resql); + if ($multicurrency) return $obj->multicurrency_amount; + else return $obj->amount; + } + else + { + $this->error = $this->db->lasterror(); + return -1; + } + } /** * Return clickable ref of object (with picto or not) diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 3e1827d6818..d8e18257d23 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -852,8 +852,11 @@ if ($resql) $remaintopay = $obj->total_ttc - $totalpay; //If invoice has been converted and the conversion has been used, we dont have remain to pay on invoice - if($facturestatic->type == FactureFournisseur::TYPE_CREDIT_NOTE && $facturestatic->statut == FactureFournisseur::STATUS_CLOSED) { - if($facturestatic->isCreditNoteUsed())$remaintopay=0; + if($facturestatic->type == FactureFournisseur::TYPE_CREDIT_NOTE) { + + if($facturestatic->isCreditNoteUsed()){ + $remaintopay=-$facturestatic->getSumFromThisCreditNotesNotUsed(); + } } print ''; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 7d54e7ad01e..87c4956e48e 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -3778,11 +3778,11 @@ class Societe extends CommonObject $outstandingOpened+=$obj->total_ttc - $paiement - $creditnotes - $deposits; } + + //if credit note is converted but not used + if($mode == 'supplier' && $obj->type == FactureFournisseur::TYPE_CREDIT_NOTE && $tmpobject->isCreditNoteUsed())$outstandingOpened-=$tmpobject->getSumFromThisCreditNotesNotUsed(); + - if($mode == 'supplier' && $obj->type == FactureFournisseur::TYPE_CREDIT_NOTE && $obj->fk_statut == FactureFournisseur::STATUS_CLOSED && !$tmpobject->isCreditNoteUsed()) { //if credit note is converted but not used - if(empty($paiement)) $paiement = $tmpobject->getSommePaiement(); - $outstandingOpened+=$obj->total_ttc-$paiement; - } } return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax); // 'opened' is 'incl taxes' } From 43ada3fcd44b35bdbf8771ec409146848bd158b7 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 3 Jun 2019 09:36:00 +0200 Subject: [PATCH 005/944] FIX better method to check if pdf is protected/encrypted --- htdocs/core/lib/pdf.lib.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 14c0435b4ad..1932fca31a2 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -175,18 +175,29 @@ function pdf_getInstance($format = '', $metric = 'mm', $pagetype = 'P') /** * Return if pdf file is protected/encrypted * - * @param TCPDF $pdf PDF initialized object * @param string $pathoffile Path of file * @return boolean True or false */ -function pdf_getEncryption(&$pdf, $pathoffile) +function pdf_getEncryption($pathoffile) { + require_once TCPDF_PATH.'tcpdf_parser.php'; + $isencrypted = false; - $pdfparser = $pdf->_getPdfParser($pathoffile); - $data = $pdfparser->getParsedData(); - if (isset($data[0]['trailer'][1]['/Encrypt'])) { - $isencrypted = true; + $content = file_get_contents($pathoffile); + + ob_start(); + @($parser = new \TCPDF_PARSER(ltrim($content))); + list($xref, $data) = $parser->getParsedData(); + unset($parser); + ob_end_clean(); + + if (isset($xref['trailer']['encrypt'])) { + $isencrypted = true; // Secured pdf file are currently not supported + } + + if (empty($data)) { + $isencrypted = true; // Object list not found. Possible secured file } return $isencrypted; From 8afffc87627f1236d1355080c835a1dfc840dd76 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 14 Jun 2019 18:28:01 +0200 Subject: [PATCH 006/944] FIX: #11335 --- htdocs/fourn/facture/card.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 3956684d9b2..bca9cb8ad4e 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -4,7 +4,7 @@ * Copyright (C) 2004 Christophe Combelles * Copyright (C) 2005 Marc Barilley * Copyright (C) 2005-2013 Regis Houssin - * Copyright (C) 2010-2014 Juanjo Menent + * Copyright (C) 2010-2019 Juanjo Menent * Copyright (C) 2013-2015 Philippe Grand * Copyright (C) 2013 Florian Henry * Copyright (C) 2014-2016 Marcos García @@ -831,6 +831,8 @@ if (empty($reshook)) // Auto calculation of date due if not filled by user if(empty($object->date_echeance)) $object->date_echeance = $object->calculate_date_lim_reglement(); + $object->fetch_thirdparty(); + // If creation from another object of another module if (! $error && $_POST['origin'] && $_POST['originid']) { From a73ae49c4d623b3e9aabb31230187c4b5d264b04 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 14 Jun 2019 18:56:30 +0200 Subject: [PATCH 007/944] FIX: #11296 --- htdocs/projet/class/project.class.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 549865c63cd..5abf7e76d33 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2013 Florian Henry * Copyright (C) 2014-2017 Marcos García * Copyright (C) 2017 Ferran Marcet + * Copyright (C) 2019 Juanjo Menent * * 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 @@ -695,6 +696,27 @@ class Project extends CommonObject $ret = $this->deleteTasks($user); if ($ret < 0) $error++; + + // Delete all child tables + if (! $error) { + $elements = array('categorie_project'); // elements to delete. TODO Make goodway to delete + foreach($elements as $table) + { + if (! $error) { + $sql = "DELETE FROM ".MAIN_DB_PREFIX.$table; + $sql.= " WHERE fk_project = ".$this->id; + + $result = $this->db->query($sql); + if (! $result) { + $error++; + $this->errors[] = $this->db->lasterror(); + } + } + } + } + + + // Delete project if (! $error) { From c0a30d1ff5484471a9bb9aa8ab4f6c1dad0472c4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 16 Jun 2019 22:17:04 +0200 Subject: [PATCH 008/944] FIX #11325 FIX #5249 Conflicts: htdocs/projet/tasks/time.php --- htdocs/projet/tasks/time.php | 61 +++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index 48167edcc1d..e69f4fcd899 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -317,7 +317,8 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) $object->project = clone $projectstatic; } - $userWrite = $projectstatic->restrictedProjectArea($user,'write'); + $userRead = $projectstatic->restrictedProjectArea($user, 'read'); + $linktocreatetime = ''; if ($projectstatic->id > 0) { @@ -427,33 +428,30 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) print '
'; // Link to create time - //if ((empty($id) && empty($ref)) || ! empty($projectidforalltimes)) - //{ - if ($user->rights->projet->all->creer || $user->rights->projet->creer) - { - if ($projectstatic->public || $userWrite > 0) - { - if (! empty($projectidforalltimes)) // We are on tab 'Time Spent' of project - { - $backtourl = $_SERVER['PHP_SELF'].'?projectid='.$projectstatic->id.($withproject?'&withproject=1':''); - $linktocreatetime = ''.$langs->trans('AddTimeSpent').''; - } - else // We are on tab 'Time Spent' of task - { - $backtourl = $_SERVER['PHP_SELF'].'?id='.$object->id.($withproject?'&withproject=1':''); - $linktocreatetime = ''.$langs->trans('AddTimeSpent').''; - } - } - else - { - $linktocreatetime = ''.$langs->trans('AddTime').''; - } - } - else - { - $linktocreatetime = ''.$langs->trans('AddTime').''; - } - //} + if ($user->rights->projet->all->lire || $user->rights->projet->lire)) // To enter time, read permission is enough + { + if ($projectstatic->public || $userRead > 0) + { + if (! empty($projectidforalltimes)) // We are on tab 'Time Spent' of project + { + $backtourl = $_SERVER['PHP_SELF'].'?projectid='.$projectstatic->id.($withproject?'&withproject=1':''); + $linktocreatetime = ''.$langs->trans('AddTimeSpent').''; + } + else // We are on tab 'Time Spent' of task + { + $backtourl = $_SERVER['PHP_SELF'].'?id='.$object->id.($withproject?'&withproject=1':''); + $linktocreatetime = ''.$langs->trans('AddTimeSpent').''; + } + } + else + { + $linktocreatetime = ''.$langs->trans('AddTime').''; + } + } + else + { + $linktocreatetime = ''.$langs->trans('AddTime').''; + } } } @@ -803,7 +801,12 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) // Duration - Time spent print ''; - print $form->select_duration('timespent_duration', ($_POST['timespent_duration']?$_POST['timespent_duration']:''), 0, 'text'); + $durationtouse = ($_POST['timespent_duration']?$_POST['timespent_duration']:''); + if (GETPOSTISSET('timespent_durationhour') || GETPOSTISSET('timespent_durationmin')) + { + $durationtouse = (GETPOST('timespent_durationhour') * 3600 + GETPOST('timespent_durationmin') * 60); + } + print $form->select_duration('timespent_duration', $durationtouse, 0, 'text'); print ''; // Progress declared From 3afd4e15ad135b74b781a0170d79547fde4208da Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 17 Jun 2019 07:09:19 +0200 Subject: [PATCH 009/944] FIX try to remove ob_* functions --- htdocs/core/lib/pdf.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 1932fca31a2..56ca215e118 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -186,11 +186,11 @@ function pdf_getEncryption($pathoffile) $content = file_get_contents($pathoffile); - ob_start(); + //ob_start(); @($parser = new \TCPDF_PARSER(ltrim($content))); list($xref, $data) = $parser->getParsedData(); unset($parser); - ob_end_clean(); + //ob_end_clean(); if (isset($xref['trailer']['encrypt'])) { $isencrypted = true; // Secured pdf file are currently not supported From 8330078de18ddd00c322398e94c5bf560161f5b5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 12:33:09 +0200 Subject: [PATCH 010/944] Fix default value --- htdocs/core/class/html.formcompany.class.php | 4 ++-- htdocs/societe/card.php | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php index d2fb93000a9..d1366cb8511 100644 --- a/htdocs/core/class/html.formcompany.class.php +++ b/htdocs/core/class/html.formcompany.class.php @@ -908,7 +908,7 @@ class FormCompany $out = ''; - } - } - $object = new stdClass(); - // Other attributes - $parameters=array('objectsrc' => null, 'colspan' => ' colspan="3"'); - $reshook=$hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - if (empty($reshook)) - { - print $object->showOptionals($extrafields, 'edit'); - } - }*/ +// Export is for current company only ! if (! empty($conf->multicompany->enabled) && is_object($mc)) { - print '   -   '.$langs->trans("Entity").' : '; + print '('.$langs->trans("Entity").' : '; $mc->dao->getEntities(); $mc->dao->fetch($conf->entity); print $mc->dao->label; - print "
\n"; + print ")
\n"; } print ''."\n"; @@ -376,10 +356,10 @@ if (!empty($date_start) && !empty($date_stop)) print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print ''; print ''; - print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, 'class="nowrap"', $sortfield, $sortorder); print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -402,12 +382,10 @@ if (!empty($date_start) && !empty($date_stop)) // Balance calculation $balance = 0; foreach($TData as &$data1) { - if ($data1['item']!='Invoice'&& $data1['item']!='Donation' ){ + if ($data1['item']!='Invoice' && $data1['item']!='Donation') + { $data1['amount']=-$data1['amount']; } - if ($data1['amount']>0){ - }else{ - } $balance += $data1['amount']; $data1['balance'] = $balance; } @@ -419,14 +397,19 @@ if (!empty($date_start) && !empty($date_stop)) //if (!empty($data['fk_facture'])) $html_class = 'facid-'.$data['fk_facture']; //elseif (!empty($data['fk_paiement'])) $html_class = 'payid-'.$data['fk_paiement']; print ''; - print "\n"; print ''; print ''; // File link - print '\n"; + print '\n"; print ''; print '\n"; diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 3a4ec85ec58..c7b2c8a69a7 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -281,6 +281,8 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2430__+MAX_llx_menu__, 'accountancy', 'bookkeeping', 2400__+MAX_llx_menu__, '/accountancy/bookkeeping/list.php?mainmenu=accountancy&leftmenu=accountancy_bookeeping', 'Bookkeeping', 1, 'accountancy', '$user->rights->accounting->mouvements->lire', '', 0, 15, __ENTITY__); -- Balance insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2435__+MAX_llx_menu__, 'accountancy', 'balance', 2400__+MAX_llx_menu__, '/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_balance', 'AccountBalance', 1, 'accountancy', '$user->rights->accounting->mouvements->lire', '', 0, 16, __ENTITY__); + -- Export accounting documents + insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2436__+MAX_llx_menu__, 'accountancy', 'accountancy_files', 2400__+MAX_llx_menu__, '/compta/compta-files.php?mainmenu=accountancy&leftmenu=accountancy_files', 'AccountantFiles', 1, 'accountancy', '$user->rights->accounting->mouvements->lire', '', 0, 17, __ENTITY__); -- Reports insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2440__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2400__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'Reportings', 1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 17, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2441__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2440__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'MenuReportInOut', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 18, __ENTITY__); From 08d5ca4ddbc47fcbcddf94a471657dda1e81cb9e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 17:53:43 +0200 Subject: [PATCH 016/944] Debug page to export accounting documents --- htdocs/admin/delais.php | 1 - htdocs/admin/mails_emailing.php | 3 +- htdocs/admin/menus/edit.php | 1 - htdocs/admin/sms.php | 2 +- htdocs/cashdesk/css/style.css | 2 +- ...{compta-files.php => accounting-files.php} | 292 ++++++++++-------- htdocs/core/menus/standard/eldy.lib.php | 8 +- htdocs/expensereport/list.php | 2 +- htdocs/fourn/facture/card.php | 2 +- htdocs/holiday/card.php | 5 +- htdocs/holiday/list.php | 3 +- .../modulebuilder/template/myobject_card.php | 1 + htdocs/opensurvey/results.php | 2 +- htdocs/opensurvey/wizard/choix_date.php | 10 +- htdocs/opensurvey/wizard/create_survey.php | 2 +- htdocs/product/admin/product_tools.php | 3 +- htdocs/theme/eldy/btn.inc.php | 2 +- htdocs/theme/eldy/global.inc.php | 2 +- htdocs/theme/md/style.css.php | 4 +- 19 files changed, 188 insertions(+), 159 deletions(-) rename htdocs/compta/{compta-files.php => accounting-files.php} (60%) diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php index 1d05d5e0afe..6b46468b916 100644 --- a/htdocs/admin/delais.php +++ b/htdocs/admin/delais.php @@ -418,7 +418,6 @@ if($action == 'edit') { print '
'; } else { - // Boutons d'action print '
'; } diff --git a/htdocs/admin/mails_emailing.php b/htdocs/admin/mails_emailing.php index 1e54fdea3dd..12076a00579 100644 --- a/htdocs/admin/mails_emailing.php +++ b/htdocs/admin/mails_emailing.php @@ -493,7 +493,8 @@ else } - // Boutons actions + // Buttons for actions + print '
'; print ''.$langs->trans("Modify").''; diff --git a/htdocs/admin/menus/edit.php b/htdocs/admin/menus/edit.php index b4f5fbd3355..cf42f294d03 100644 --- a/htdocs/admin/menus/edit.php +++ b/htdocs/admin/menus/edit.php @@ -415,7 +415,6 @@ if ($action == 'create') dol_fiche_end(); - // Boutons print '
'; print ''; print '     '; diff --git a/htdocs/admin/sms.php b/htdocs/admin/sms.php index 2fb1e5a8a29..d6f2ee170d8 100644 --- a/htdocs/admin/sms.php +++ b/htdocs/admin/sms.php @@ -243,7 +243,7 @@ else print '
'.$langs->trans("Type").''.$langs->trans("Ref").''.$langs->trans("Link").''.$langs->trans("Document").''.$langs->trans("Paid").''.$langs->trans("Debit").''.$langs->trans("Credit").'
"; + print ""; print dol_print_date($data['date'], 'day'); print "'.$langs->trans($data['item']).''.$data['ref'].'".$data['name']."'; + if ($data['link']) + { + print ''.($data['name'] ? $data['name'] : $data['ref']).''; + } + print "'.$data['paid'].''.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."
'; - // Boutons actions + // Buttons for actions print '
'; diff --git a/htdocs/cashdesk/css/style.css b/htdocs/cashdesk/css/style.css index dc579711aa3..9d9be27f3ce 100644 --- a/htdocs/cashdesk/css/style.css +++ b/htdocs/cashdesk/css/style.css @@ -320,7 +320,7 @@ p.titre { padding: 2px 2px; } -/* -------------- Boutons --------------------- */ +/* -------------- Buttons for SimplePOS --------------------- */ .bouton_ajout_article { margin-top: 10px; width: 60%; diff --git a/htdocs/compta/compta-files.php b/htdocs/compta/accounting-files.php similarity index 60% rename from htdocs/compta/compta-files.php rename to htdocs/compta/accounting-files.php index 656824298fe..5a3097f6aa8 100644 --- a/htdocs/compta/compta-files.php +++ b/htdocs/compta/accounting-files.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2018 Laurent Destailleur + * Copyright (C) 2004-2019 Laurent Destailleur * Copyright (C) 2017 Pierre-Henry Favre * * This program is free software; you can redistribute it and/or modify @@ -16,11 +16,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -/** - * \file htdocs/compta/compta-files.php + + /** + * \file htdocs/compta/accounting-files.php * \ingroup compta * \brief Page to show portoflio and files of a thirdparty and download it */ + require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -89,149 +91,165 @@ $entity = GETPOST('entity', 'int')?GETPOST('entity', 'int'):$conf->entity; $filesarray=array(); $result=false; -if(($action=="searchfiles" || $action=="dl" ) && $date_start && $date_stop) { - $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $sql="SELECT rowid as id, ref as ref, paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture"; - $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Facture::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'SupplierInvoice' as item FROM ".MAIN_DB_PREFIX."facture_fourn"; - $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".FactureFournisseur::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item FROM ".MAIN_DB_PREFIX."expensereport"; - $sql.=" WHERE date_fin between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, amount as total_ttc, '0' as fk_soc, datedon as date, 'Donation' as item FROM ".MAIN_DB_PREFIX."don"; - $sql.=" WHERE datedon between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date, 'SalaryPayment' as item FROM ".MAIN_DB_PREFIX."payment_salary"; - $sql.=" WHERE datep between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item FROM ".MAIN_DB_PREFIX."chargesociales"; - $sql.=" WHERE date_creation between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; - $sql.= $db->order($sortfield, $sortorder); +if (($action=="searchfiles" || $action=="dl" )) { - $resd = $db->query($sql); - $files=array(); - $link=''; + if (empty($date_start)) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateStart")), null, 'errors'); + $error++; + } + if (empty($date_stop)) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), null, 'errors'); + $error++; + } - if ($resd) - { - $numd = $db->num_rows($resd); + if (! $error) + { + $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $tmpinvoice=new Facture($db); - $tmpinvoicesupplier=new FactureFournisseur($db); - $tmpdonation=new Don($db); + $sql="SELECT rowid as id, ref as ref, paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture"; + $sql.=" WHERE datef between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND fk_statut <> ".Facture::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'SupplierInvoice' as item FROM ".MAIN_DB_PREFIX."facture_fourn"; + $sql.=" WHERE datef between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND fk_statut <> ".FactureFournisseur::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item FROM ".MAIN_DB_PREFIX."expensereport"; + $sql.=" WHERE date_fin between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, ref, paid, amount as total_ttc, '0' as fk_soc, datedon as date, 'Donation' as item FROM ".MAIN_DB_PREFIX."don"; + $sql.=" WHERE datedon between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date, 'SalaryPayment' as item FROM ".MAIN_DB_PREFIX."payment_salary"; + $sql.=" WHERE datep between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item FROM ".MAIN_DB_PREFIX."chargesociales"; + $sql.=" WHERE date_creation between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; + $sql.= $db->order($sortfield, $sortorder); - $upload_dir =''; - $i=0; - while ($i < $numd) - { - $objd = $db->fetch_object($resd); + $resd = $db->query($sql); + $files=array(); + $link=''; - switch($objd->item) - { - case "Invoice": - $subdir = ''; - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SupplierInvoice": - $tmpinvoicesupplier->fetch($objd->id); - $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "ExpenseReport": - $subdir = ''; - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; - $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SalaryPayment": - $subdir = ''; - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->salaries->dir_output.'/'.$subdir; - $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "Donation": - $tmpdonation->fetch($objp->id); - $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->don->dir_output . '/' . $subdir; - $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SocialContributions": - $subdir = ''; - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->tax->dir_output . '/' . $subdir; - $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - default: - $subdir = ''; - $upload_dir = ''; - $link = ''; - break; - } + if ($resd) + { + $numd = $db->num_rows($resd); - if (!empty($upload_dir)) - { - $result=true; + $tmpinvoice=new Facture($db); + $tmpinvoicesupplier=new FactureFournisseur($db); + $tmpdonation=new Don($db); - $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); + $upload_dir =''; + $i=0; + while ($i < $numd) + { + $objd = $db->fetch_object($resd); - if (count($files) < 1) - { - $nofile['id']=$objd->id; - $nofile['date']=$db->idate($objd->date); - $nofile['paid']=$objd->paid; - $nofile['amount']=$objd->total_ttc; - $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); - $nofile['fk']=$objd->fk_soc; - $nofile['item']=$objd->item; + switch($objd->item) + { + case "Invoice": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SupplierInvoice": + $tmpinvoicesupplier->fetch($objd->id); + $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "ExpenseReport": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; + $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SalaryPayment": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->salaries->dir_output.'/'.$subdir; + $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "Donation": + $tmpdonation->fetch($objp->id); + $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->don->dir_output . '/' . $subdir; + $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SocialContributions": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->tax->dir_output . '/' . $subdir; + $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + default: + $subdir = ''; + $upload_dir = ''; + $link = ''; + break; + } - $filesarray[]=$nofile; - } - else - { - foreach ($files as $key => $file) - { - $file['id']=$objd->id; - $file['date']=$db->idate($objd->date); - $file['paid']=$objd->paid; - $file['amount']=$objd->total_ttc; - $file['ref']=($objd->ref ? $objd->ref : $objd->id); - $file['fk']=$objd->fk_soc; - $file['item']=$objd->item; - $file['link']=$link.$file['name']; - $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; + if (!empty($upload_dir)) + { + $result=true; - $filesarray[]=$file; - } - } - } - $i++; - } - } - else - { - dol_print_error($db); - } + $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); - $db->free($resd); + if (count($files) < 1) + { + $nofile['id']=$objd->id; + $nofile['date']=$db->idate($objd->date); + $nofile['paid']=$objd->paid; + $nofile['amount']=$objd->total_ttc; + $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); + $nofile['fk']=$objd->fk_soc; + $nofile['item']=$objd->item; + + $filesarray[]=$nofile; + } + else + { + foreach ($files as $key => $file) + { + $file['id']=$objd->id; + $file['date']=$db->idate($objd->date); + $file['paid']=$objd->paid; + $file['amount']=$objd->total_ttc; + $file['ref']=($objd->ref ? $objd->ref : $objd->id); + $file['fk']=$objd->fk_soc; + $file['item']=$objd->item; + $file['link']=$link.$file['name']; + $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; + + $filesarray[]=$file; + } + } + } + $i++; + } + } + else + { + dol_print_error($db); + } + + $db->free($resd); + } } /* @@ -318,7 +336,9 @@ if (! empty($conf->multicompany->enabled) && is_object($mc)) print ")\n"; } -print ''."\n"; +print ''; + +print ''."\n"; dol_fiche_end(); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 3576f35642e..7518093bf77 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1287,7 +1287,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM // Files if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 1) { - $newmenu->add("/compta/compta-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 1, $user->rights->accounting->mouvements->lire); + $newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 1, $user->rights->accounting->mouvements->lire); } // Reports @@ -1329,6 +1329,12 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM // Accountancy (simple) if (! empty($conf->comptabilite->enabled)) { + // Files + if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 1) + { + $newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'files'); + } + // Bilan, resultats $newmenu->add("/compta/resultat/index.php?leftmenu=report&mainmenu=accountancy", $langs->trans("Reportings"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'ca'); diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 94033912a69..34cbdfe89bd 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -434,7 +434,7 @@ if ($resql) $canedit=((in_array($user_id, $childids) && $user->rights->expensereport->creer) || ($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->expensereport->writeall_advance)); - // Boutons d'actions + // Buttons for actions if ($canedit) { print ''.$langs->trans("AddTrip").''; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 2cd27d6d688..1eb38cec66c 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -3021,7 +3021,7 @@ else if ($action != 'presend') { /* - * Boutons actions + * Buttons actions */ print '
'; diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 6c4cb05a17e..c67daf8f92b 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -1391,9 +1391,10 @@ else if (! $edit) { - print '
'; + // Buttons for actions + + print '
'; - // Boutons d'actions if ($cancreate && $object->statut == Holiday::STATUS_DRAFT) { print ''.$langs->trans("EditCP").''; diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 84e7b36c239..ce038709fcf 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -319,11 +319,12 @@ if ($id > 0) // For user tab dol_fiche_end(); + // Buttons for actions + print '
'; $canedit=(($user->id == $user_id && $user->rights->holiday->write) || ($user->id != $user_id && $user->rights->holiday->write_all)); - // Boutons d'actions if ($canedit) { print ''.$langs->trans("AddCP").''; diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index da6f3c5a466..cc2eb5062cb 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -421,6 +421,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Buttons for actions + if ($action != 'presend' && $action != 'editline') { print '
'."\n"; $parameters=array(); diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php index 076461043b8..c648b15664e 100644 --- a/htdocs/opensurvey/results.php +++ b/htdocs/opensurvey/results.php @@ -619,7 +619,7 @@ print ''."\n"; print ''."\n"; print ''."\n"; -//boucle pour l'affichage des boutons de suppression de colonne +// loop to show the delete link if ($user->rights->opensurvey->write) { for ($i = 0; isset($toutsujet[$i]); $i++) { diff --git a/htdocs/opensurvey/wizard/choix_date.php b/htdocs/opensurvey/wizard/choix_date.php index 8840da3f3e7..76f390c470b 100644 --- a/htdocs/opensurvey/wizard/choix_date.php +++ b/htdocs/opensurvey/wizard/choix_date.php @@ -471,7 +471,7 @@ for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) { { $nbofchoice=count($_SESSION["totalchoixjour"]); for ($j = 0; $j < $nbofchoice; $j++) { - //affichage des boutons ROUGES + // show red buttons if (date("j", $_SESSION["totalchoixjour"][$j]) == $numerojour && date("n", $_SESSION["totalchoixjour"][$j]) == $_SESSION["mois"] && date("Y", $_SESSION["totalchoixjour"][$j]) == $_SESSION["annee"]) { print ''."\n"; $dejafait = $numerojour; @@ -479,13 +479,13 @@ for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) { } } - //Si pas de bouton ROUGE alors on affiche un bouton VERT ou GRIS avec le numéro du jour dessus + // If no red button, we show green or grey button with number of day if (isset($dejafait) === false || $dejafait != $numerojour){ - //bouton vert + // green button if (($numerojour >= $jourAJ && $_SESSION["mois"] == $moisAJ && $_SESSION["annee"] == $anneeAJ) || ($_SESSION["mois"] > $moisAJ && $_SESSION["annee"] == $anneeAJ) || $_SESSION["annee"] > $anneeAJ) { print ''."\n"; } else { - //bouton gris + // grey button print ''.$numerojour.''."\n"; } } @@ -547,7 +547,7 @@ if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur) print ''."\n"; - //affichage des boutons de formulaire pour annuler, effacer les jours ou créer le sondage + // show buttons to cancel, delete days or create survey print ''."\n"; print ''."\n"; print ''."\n"; diff --git a/htdocs/opensurvey/wizard/create_survey.php b/htdocs/opensurvey/wizard/create_survey.php index 0c746fcf8b2..c2e6db1a709 100644 --- a/htdocs/opensurvey/wizard/create_survey.php +++ b/htdocs/opensurvey/wizard/create_survey.php @@ -194,7 +194,7 @@ if (GETPOST('choix_sondage')) } else { - // affichage des boutons pour choisir sondage date ou autre + // Show image to selecte between date survey or other survey print '
'."\n"; print ' '."\n"; print ''."\n"; diff --git a/htdocs/product/admin/product_tools.php b/htdocs/product/admin/product_tools.php index e76c6884b7f..cfbedbcb7f1 100644 --- a/htdocs/product/admin/product_tools.php +++ b/htdocs/product/admin/product_tools.php @@ -333,7 +333,8 @@ else print '
'; - // Boutons actions + // Buttons for actions + print '
'; print ''; print '
'; diff --git a/htdocs/theme/eldy/btn.inc.php b/htdocs/theme/eldy/btn.inc.php index c0cd029126d..1d00718401b 100644 --- a/htdocs/theme/eldy/btn.inc.php +++ b/htdocs/theme/eldy/btn.inc.php @@ -5,7 +5,7 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?> /* ============================================================================== */ -/* Boutons actions */ +/* Buttons for actions */ /* ============================================================================== */ div.divButAction { diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index e5e68e59c48..9061595dd1d 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -2362,7 +2362,7 @@ span.tabspan { } /* ============================================================================== */ -/* Boutons actions */ +/* Buttons for actions */ /* ============================================================================== */ diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 752f60541d1..8020a490181 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2400,7 +2400,7 @@ div.tabBar table.tableforservicepart2:last-child { } /* ============================================================================== */ -/* Boutons actions */ +/* Buttons for actions */ /* ============================================================================== */ div.divButAction { @@ -2503,7 +2503,7 @@ span.tabspan { } /* ============================================================================== */ -/* Boutons actions */ +/* Buttons for actions */ /* ============================================================================== */ div.divButAction { From f6f66f2a77ed56e5dc2798fc92792d29d59c11b8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:11:38 +0200 Subject: [PATCH 017/944] Fix syntax error --- htdocs/projet/tasks/time.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index e69f4fcd899..f98c9c4ace5 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -428,7 +428,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) print '
'; // Link to create time - if ($user->rights->projet->all->lire || $user->rights->projet->lire)) // To enter time, read permission is enough + if ($user->rights->projet->all->lire || $user->rights->projet->lire) // To enter time, read permission is enough { if ($projectstatic->public || $userRead > 0) { From f6f86927113f99e52343b10db1438a4f666cd3db Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:12:28 +0200 Subject: [PATCH 018/944] Fix phpcs --- htdocs/bom/bom_card.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index c2ed2ca6705..d788be5354a 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -173,7 +173,6 @@ if (empty($reshook)) $action = ''; } } - } From bde49e05e7aca32b0da06eff0ed0b0235720134e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:23:38 +0200 Subject: [PATCH 019/944] Fix doc --- htdocs/societe/class/societeaccount.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/class/societeaccount.class.php b/htdocs/societe/class/societeaccount.class.php index 3fc7b225c77..a82ad69091b 100644 --- a/htdocs/societe/class/societeaccount.class.php +++ b/htdocs/societe/class/societeaccount.class.php @@ -320,7 +320,7 @@ class SocieteAccount extends CommonObject * @param string $id Id of customer in external system (example: 'cu_xxxxxxxxxxxxx', ...) * @param string $site Site (example: 'stripe', '...') * @param int $status Status (0=test, 1=live) - * @return string Id of third party + * @return int Id of third party * @see getCustomerAccount() */ public function getThirdPartyID($id, $site, $status = 0) From a6d4475afff68f0ce1c0e808aec631a553d97f6a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:24:45 +0200 Subject: [PATCH 020/944] Fix scrutinizer --- 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 dd66c7607e5..d754b8d3962 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -247,6 +247,8 @@ class Stripe extends CommonObject */ public function getPaymentMethodStripe($paymentmethod, $key = '', $status = 0) { + $stripepaymentmethod = null; + try { // Force to use the correct API key global $stripearrayofkeysbyenv; @@ -261,6 +263,7 @@ class Stripe extends CommonObject { $this->error = $e->getMessage(); } + return $stripepaymentmethod; } From 80d4d8754d5e548902878c50fca8a7571349e2a2 Mon Sep 17 00:00:00 2001 From: Eric Seigne <1468823+rycks@users.noreply.github.com> Date: Mon, 17 Jun 2019 18:28:11 +0200 Subject: [PATCH 021/944] allow zero as accountancy code nomber (replace all empty tests by != '') --- .../accountancy/bookkeeping/listbyaccount.php | 2 +- htdocs/accountancy/class/lettering.class.php | 30 +++++++++--------- htdocs/accountancy/journal/bankjournal.php | 14 ++++----- .../journal/expensereportsjournal.php | 14 ++++----- .../accountancy/journal/purchasesjournal.php | 2 +- htdocs/accountancy/journal/sellsjournal.php | 14 ++++----- htdocs/compta/journal/purchasesjournal.php | 4 +-- htdocs/compta/journal/sellsjournal.php | 2 +- .../core/class/html.formaccounting.class.php | 2 +- htdocs/core/lib/accounting.lib.php | 31 ++++++++++++++----- .../societe/mod_codecompta_panicum.php | 4 +-- htdocs/societe/class/societe.class.php | 4 +-- 12 files changed, 70 insertions(+), 53 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index d1ef1377994..bacfdcb714a 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -348,7 +348,7 @@ while ($i < min($num, $limit)) $colspan = 9; print "
"; print ''; print ''; diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php index a0c977a8d5a..2a89c6c1c96 100644 --- a/htdocs/accountancy/class/lettering.class.php +++ b/htdocs/accountancy/class/lettering.class.php @@ -67,11 +67,11 @@ class Lettering extends BookKeeping $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu ON(bk.fk_doc = bu.fk_bank AND bu.type IN ('payment', 'payment_supplier') ) "; $sql .= " WHERE ( "; - if (! empty($object->code_compta)) + if ($object->code_compta != "") $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; - if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) + if ($object->code_compta != "" && $object->code_compta_fournisseur != "") $sql .= " OR "; - if (! empty($object->code_compta_fournisseur)) + if ($object->code_compta_fournisseur != "") $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; $sql .= " ) AND (bk.date_lettering ='' OR bk.date_lettering IS NULL) "; @@ -99,13 +99,13 @@ class Lettering extends BookKeeping $sql .= " AND facf.entity = ".$conf->entity; $sql .= " AND code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") "; $sql .= " AND ( "; - if (! empty($object->code_compta)) { + if ($object->code_compta != "") { $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; } - if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) { + if ($object->code_compta != "" && $object->code_compta_fournisseur != "") { $sql .= " OR "; } - if (! empty($object->code_compta_fournisseur)) { + if ($object->code_compta_fournisseur != "") { $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; } $sql .= " ) "; @@ -127,13 +127,13 @@ class Lettering extends BookKeeping $sql .= " WHERE bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=3 AND entity=".$conf->entity.") "; $sql .= " AND facf.entity = ".$conf->entity; $sql .= " AND ( "; - if (! empty($object->code_compta)) { + if ($object->code_compta != "") { $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; } - if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) { + if ($object->code_compta != "" && $object->code_compta_fournisseur != "") { $sql .= " OR "; } - if (! empty($object->code_compta_fournisseur)) { + if ($object->code_compta_fournisseur != "") { $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; } $sql .= ") "; @@ -159,13 +159,13 @@ class Lettering extends BookKeeping $sql .= " AND bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") "; $sql .= " AND fac.entity IN (".getEntity('invoice', 0).")";// We don't share object for accountancy $sql .= " AND ( "; - if (! empty($object->code_compta)) { + if ($object->code_compta != "") { $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; } - if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) { + if ($object->code_compta != "" && $object->code_compta_fournisseur != "") { $sql .= " OR "; } - if (! empty($object->code_compta_fournisseur)) { + if ($object->code_compta_fournisseur != "") { $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; } $sql .= " ) "; @@ -187,13 +187,13 @@ class Lettering extends BookKeeping $sql .= " WHERE code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=2 AND entity=".$conf->entity.") "; $sql .= " AND fac.entity IN (".getEntity('invoice', 0).")";// We don't share object for accountancy $sql .= " AND ( "; - if (! empty($object->code_compta)) { + if ($object->code_compta != "") { $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; } - if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) { + if ($object->code_compta != "" && $object->code_compta_fournisseur != "") { $sql .= " OR "; } - if (! empty($object->code_compta_fournisseur)) { + if ($object->code_compta_fournisseur != "") { $sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' "; } $sql .= " ) "; diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index e4e07831b44..0f22789d630 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -171,8 +171,8 @@ if ($result) { //print $sql; // Variables - $account_supplier = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined'); // NotDefined is a reserved word - $account_customer = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'); // NotDefined is a reserved word + $account_supplier = (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER != "") ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined'); // NotDefined is a reserved word + $account_customer = ($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER != "") ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'); // NotDefined is a reserved word $account_employee = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined'); // NotDefined is a reserved word $account_pay_vat = (! empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : 'NotDefined'); // NotDefined is a reserved word $account_pay_donation = (! empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : 'NotDefined'); // NotDefined is a reserved word @@ -218,7 +218,7 @@ if ($result) { // Set accountancy code for thirdparty $compta_soc = 'NotDefined'; if ($lineisapurchase > 0) - $compta_soc = (! empty($obj->code_compta_fournisseur) ? $obj->code_compta_fournisseur : $account_supplier); + $compta_soc = (($obj->code_compta_fournisseur != "") ? $obj->code_compta_fournisseur : $account_supplier); if ($lineisasale > 0) $compta_soc = (! empty($obj->code_compta) ? $obj->code_compta : $account_customer); @@ -938,8 +938,8 @@ if (empty($action) || $action == 'view') { // Button to write into Ledger - if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' - || empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1' + if (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "") || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' + || ($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1' || empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') { print '
'.img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone"); print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, ''.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); @@ -950,8 +950,8 @@ if (empty($action) || $action == 'view') { if (! empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print ''; - if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' - || empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') { + if (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "") || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' + || ($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') { print ''; } else { diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 4c50015a2ba..d82381533cf 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -444,10 +444,10 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! foreach ($taber as $key => $val) { $date = dol_print_date($val["date"], 'day'); - + $userstatic->id = $tabuser[$key]['id']; $userstatic->name = $tabuser[$key]['name']; - + // Fees foreach ($tabht[$key] as $k => $mt) { $accountingaccount = new AccountingAccount($db); @@ -474,7 +474,7 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! print "\n"; } } - + // Third party foreach ($tabttc[$key] as $k => $mt) { print '"' . $date . '"' . $sep; @@ -585,7 +585,7 @@ if (empty($action) || $action == 'view') { // Account print "
'. $langs->trans("CreateSurveyDate") .'
'; - if (! empty($line->numero_compte) && $line->numero_compte != '-1') print length_accountg($line->numero_compte) . ' : ' . $object->get_compte_desc($line->numero_compte); + if ($line->numero_compte != "" && $line->numero_compte != '-1') print length_accountg($line->numero_compte) . ' : ' . $object->get_compte_desc($line->numero_compte); else print ''.$langs->trans("Unknown").''; print '
"; $accountoshow = length_accountg($k); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + if (($accountoshow == "") || $accountoshow == 'NotDefined') { print ''.$langs->trans("FeeAccountNotDefined").''; } @@ -615,7 +615,7 @@ if (empty($action) || $action == 'view') { // Account print ""; $accountoshow = length_accounta($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + if (($accountoshow == "") || $accountoshow == 'NotDefined') { print ''.$langs->trans("MainAccountForUsersNotDefined").''; } @@ -624,7 +624,7 @@ if (empty($action) || $action == 'view') { // Subledger account print ""; $accountoshow = length_accounta($k); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + if (($accountoshow == "") || $accountoshow == 'NotDefined') { print ''.$langs->trans("UserAccountNotDefined").''; } @@ -652,7 +652,7 @@ if (empty($action) || $action == 'view') { // Account print ""; $accountoshow = length_accountg($k); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + if (($accountoshow == "") || $accountoshow == 'NotDefined') { print ''.$langs->trans("VATAccountNotDefined").''; } diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index cab5069e1f8..cd82e9f2f27 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -749,7 +749,7 @@ if (empty($action) || $action == 'view') { } print '
'; if (! empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print ''; - if (empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') { + if (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') { print ''; } else { diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 8f82fd95afb..3b0607d34a7 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -146,7 +146,7 @@ if ($result) { $num = $db->num_rows($result); // Variables - $cptcli = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER)) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'; + $cptcli = (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER != "")) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'; $cpttva = (! empty($conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT : 'NotDefined'; $i = 0; @@ -679,14 +679,14 @@ if (empty($action) || $action == 'view') { journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink); // Button to write into Ledger - if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') { + if (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "") || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') { print '
'; print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone"); print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, ''.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); } print '
'; if (! empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print ''; - if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') { + if (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "") || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') { print ''; } else { @@ -813,7 +813,7 @@ if (empty($action) || $action == 'view') { // Account print "
"; $accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + if (($accountoshow == "") || $accountoshow == 'NotDefined') { print ''.$langs->trans("MainAccountForCustomersNotDefined").''; } @@ -822,7 +822,7 @@ if (empty($action) || $action == 'view') { // Subledger account print ""; $accountoshow = length_accounta($k); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + if (($accountoshow == "") || $accountoshow == 'NotDefined') { print ''.$langs->trans("ThirdpartyAccountNotDefined").''; } @@ -849,7 +849,7 @@ if (empty($action) || $action == 'view') { // Account print ""; $accountoshow = length_accountg($k); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + if (($accountoshow == "") || $accountoshow == 'NotDefined') { print ''.$langs->trans("ProductNotDefined").''; } @@ -884,7 +884,7 @@ if (empty($action) || $action == 'view') { // Account print ""; $accountoshow = length_accountg($k); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + if (($accountoshow == "") || $accountoshow == 'NotDefined') { print ''.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("Sale").')'.''; } diff --git a/htdocs/compta/journal/purchasesjournal.php b/htdocs/compta/journal/purchasesjournal.php index cd3bf06f43a..5b4e54fd807 100644 --- a/htdocs/compta/journal/purchasesjournal.php +++ b/htdocs/compta/journal/purchasesjournal.php @@ -123,7 +123,7 @@ if ($result) { $num = $db->num_rows($result); // les variables - $cptfour = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER)?$conf->global->ACCOUNTING_ACCOUNT_SUPPLIER:$langs->trans("CodeNotDef")); + $cptfour = (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER != "")?$conf->global->ACCOUNTING_ACCOUNT_SUPPLIER:$langs->trans("CodeNotDef")); $cpttva = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)?$conf->global->ACCOUNTING_VAT_BUY_ACCOUNT:$langs->trans("CodeNotDef")); $tabfac = array(); @@ -139,7 +139,7 @@ if ($result) { $obj = $db->fetch_object($result); // contrôles - $compta_soc = (! empty($obj->code_compta_fournisseur)?$obj->code_compta_fournisseur:$cptfour); + $compta_soc = (($obj->code_compta_fournisseur != "")?$obj->code_compta_fournisseur:$cptfour); $compta_prod = $obj->accountancy_code_buy; if (empty($compta_prod)) { diff --git a/htdocs/compta/journal/sellsjournal.php b/htdocs/compta/journal/sellsjournal.php index fe51665163e..123bb3c7770 100644 --- a/htdocs/compta/journal/sellsjournal.php +++ b/htdocs/compta/journal/sellsjournal.php @@ -146,7 +146,7 @@ if ($result) { $obj = $db->fetch_object($result); // les variables - $cptcli = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER)?$conf->global->ACCOUNTING_ACCOUNT_CUSTOMER:$langs->trans("CodeNotDef")); + $cptcli = (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER != "")?$conf->global->ACCOUNTING_ACCOUNT_CUSTOMER:$langs->trans("CodeNotDef")); $compta_soc = (! empty($obj->code_compta)?$obj->code_compta:$cptcli); $compta_prod = $obj->accountancy_code_sell; if (empty($compta_prod)) diff --git a/htdocs/core/class/html.formaccounting.class.php b/htdocs/core/class/html.formaccounting.class.php index 87b32902684..cf95e471ddd 100644 --- a/htdocs/core/class/html.formaccounting.class.php +++ b/htdocs/core/class/html.formaccounting.class.php @@ -392,7 +392,7 @@ class FormAccounting extends Form $resql = $this->db->query($sql); if ($resql) { while ($obj = $this->db->fetch_object($resql)) { - if (!empty($obj->code_compta_fournisseur)) { + if ($obj->code_compta_fournisseur != "") { $aux_account[$obj->code_compta_fournisseur] = $obj->code_compta_fournisseur.' ('.$obj->nom.')'; } } diff --git a/htdocs/core/lib/accounting.lib.php b/htdocs/core/lib/accounting.lib.php index 889d9da8a2c..4b5345da62b 100644 --- a/htdocs/core/lib/accounting.lib.php +++ b/htdocs/core/lib/accounting.lib.php @@ -2,6 +2,7 @@ /* Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2014 Florian Henry + * Copyright (C) 2019 Eric Seigne * * 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 @@ -23,6 +24,22 @@ * \brief Library of accountancy functions */ + /** + * Check if a value is empty with some options + * + * @param allow_false : setting this to true will make the function consider a boolean value of false as NOT empty. This parameter is false by default. + * @param allow_ws : setting this to true will make the function consider a string with nothing but white space as NOT empty. This parameter is false by default. + * @return array Bool + * @author Michael - https://www.php.net/manual/fr/function.empty.php#90767 + */ + function is_empty($var, $allow_false = false, $allow_ws = false) { + if (!isset($var) || is_null($var) || ($allow_ws == false && trim($var) == "" && !is_bool($var)) || ($allow_false === false && is_bool($var) && $var === false) || (is_array($var) && empty($var))) { + return true; + } else { + return false; + } + } + /** * Prepare array with list of tabs * @@ -75,12 +92,12 @@ function length_accountg($account) { global $conf; - if ($account < 0 || empty($account)) return ''; + if ($account < 0 || is_empty($account)) return ''; - if (! empty($conf->global->ACCOUNTING_MANAGE_ZERO)) return $account; + if (! is_empty($conf->global->ACCOUNTING_MANAGE_ZERO)) return $account; $g = $conf->global->ACCOUNTING_LENGTH_GACCOUNT; - if (! empty($g)) { + if (! is_empty($g)) { // Clean parameters $i = strlen($account); @@ -110,12 +127,12 @@ function length_accounta($accounta) { global $conf; - if ($accounta < 0 || empty($accounta)) return ''; + if ($accounta < 0 || is_empty($accounta)) return ''; - if (! empty($conf->global->ACCOUNTING_MANAGE_ZERO)) return $accounta; + if (! is_empty($conf->global->ACCOUNTING_MANAGE_ZERO)) return $accounta; $a = $conf->global->ACCOUNTING_LENGTH_AACCOUNT; - if (! empty($a)) { + if (! is_empty($a)) { // Clean parameters $i = strlen($accounta); @@ -158,7 +175,7 @@ function journalHead($nom, $variante, $period, $periodlink, $description, $build print "\n\n\n"; - if(! empty($varlink)) $varlink = '?'.$varlink; + if(! is_empty($varlink)) $varlink = '?'.$varlink; $head=array(); $h=0; diff --git a/htdocs/core/modules/societe/mod_codecompta_panicum.php b/htdocs/core/modules/societe/mod_codecompta_panicum.php index 4c5ffcd66c5..f3106cef761 100644 --- a/htdocs/core/modules/societe/mod_codecompta_panicum.php +++ b/htdocs/core/modules/societe/mod_codecompta_panicum.php @@ -96,8 +96,8 @@ class mod_codecompta_panicum extends ModeleAccountancyCode $this->code=''; if (is_object($societe)) { - if ($type == 'supplier') $this->code = (! empty($societe->code_compta_fournisseur)?$societe->code_compta_fournisseur:''); - else $this->code = (! empty($societe->code_compta)?$societe->code_compta:''); + if ($type == 'supplier') $this->code = (($societe->code_compta_fournisseur != "")?$societe->code_compta_fournisseur:''); + else $this->code = (($societe->code_compta != "")?$societe->code_compta:''); } return 0; // return ok diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 84bda8abd54..ce7617f003d 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -928,7 +928,7 @@ class Societe extends CommonObject if (! empty($allowmodcodefournisseur) && ! empty($this->fournisseur)) { // Attention get_codecompta peut modifier le code suivant le module utilise - if (empty($this->code_compta_fournisseur)) + if ($this->code_compta_fournisseur == "") { $ret=$this->get_codecompta('supplier'); if ($ret < 0) return -1; @@ -1085,7 +1085,7 @@ class Societe extends CommonObject if ($supplier) { $sql .= ", code_fournisseur = ".(! empty($this->code_fournisseur)?"'".$this->db->escape($this->code_fournisseur)."'":"null"); - $sql .= ", code_compta_fournisseur = ".(! empty($this->code_compta_fournisseur)?"'".$this->db->escape($this->code_compta_fournisseur)."'":"null"); + $sql .= ", code_compta_fournisseur = ".(($this->code_compta_fournisseur != "")?"'".$this->db->escape($this->code_compta_fournisseur)."'":"null"); } $sql .= ", fk_user_modif = ".($user->id > 0 ? $user->id:"null"); $sql .= ", fk_multicurrency = ".(int) $this->fk_multicurrency; From 42e58d9ea59f6231dc08836f0e719fb7a83253bb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:38:14 +0200 Subject: [PATCH 022/944] Fix preview of interventions --- htdocs/core/lib/functions.lib.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 4bbd030b1eb..7341bc0c2cb 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1330,10 +1330,10 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi $nophoto=''; $morehtmlleft.='
'; } - //elseif ($conf->browser->layout != 'phone') { // Show no photo link + else { // Show no photo link $nophoto='/public/theme/common/nophoto.png'; $morehtmlleft.='
No photo
'; - //} + } } } elseif ($object->element == 'ticket') @@ -1349,10 +1349,10 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi $nophoto=''; $morehtmlleft.='
'; } - //elseif ($conf->browser->layout != 'phone') { // Show no photo link - $nophoto='/public/theme/common/nophoto.png'; - $morehtmlleft.='
No photo
'; - //} + else { // Show no photo link + $nophoto='/public/theme/common/nophoto.png'; + $morehtmlleft.='
No photo
'; + } } } else @@ -5260,7 +5260,7 @@ function get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart) // Here, object->id, object->ref and modulepart are required. //var_dump($modulepart); if (in_array($modulepart, array('thirdparty','contact','member','propal','proposal','commande','order','facture','invoice', - 'supplier_order','supplier_proposal','shipment','contract','expensereport'))) + 'supplier_order','supplier_proposal','shipment','contract','expensereport','ficheinter'))) { $path=($object->ref?$object->ref:$object->id); } From 0123a18ff86c89272404e57ae6cb65ccfd3c4566 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:44:08 +0200 Subject: [PATCH 023/944] Look and feel v10 --- htdocs/core/tpl/resource_view.tpl.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/tpl/resource_view.tpl.php b/htdocs/core/tpl/resource_view.tpl.php index d2e0441b60b..014560e0299 100644 --- a/htdocs/core/tpl/resource_view.tpl.php +++ b/htdocs/core/tpl/resource_view.tpl.php @@ -53,11 +53,11 @@ if( (array) $linked_resources && count($linked_resources) > 0) } else { - $style=''; + $class=''; if ($linked_resource['rowid'] == GETPOST('lineid')) - $style='style="background: orange;"'; + $class='highlight'; - print '
'; + print '
'; print '
'; print $object_resource->getNomUrl(1); @@ -81,7 +81,7 @@ if( (array) $linked_resources && count($linked_resources) > 0) print ''; print ' '; print ''; - print img_delete(); + print img_picto($langs->trans("Unlink"), 'unlink'); print ''; print '
'; From e4f5ca79f8d20ddff3c8b5d305c78d4bba9c9a96 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Mon, 17 Jun 2019 19:36:21 +0200 Subject: [PATCH 024/944] Fix access category API --- htdocs/categories/class/api_categories.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/categories/class/api_categories.class.php b/htdocs/categories/class/api_categories.class.php index c82d803f31c..c389e1b63d1 100644 --- a/htdocs/categories/class/api_categories.class.php +++ b/htdocs/categories/class/api_categories.class.php @@ -86,7 +86,7 @@ class Categories extends DolibarrApi throw new RestException(404, 'category not found'); } - if ( ! DolibarrApi::_checkAccessToResource('category', $this->category->id)) { + if ( ! DolibarrApi::_checkAccessToResource('categorie', $this->category->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } From f1d64ad164152252a9cb901a966493e6b82aeb1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 17 Jun 2019 23:02:54 +0200 Subject: [PATCH 025/944] Update peruser.php --- htdocs/comm/action/peruser.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 754cb736bc9..d4020f4df92 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -1186,33 +1186,34 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & } } - $ids1='';$ids2=''; - if (count($cases1[$h]) && array_keys($cases1[$h])) $ids1=join(',', array_keys($cases1[$h])); - if (count($cases2[$h]) && array_keys($cases2[$h])) $ids2=join(',', array_keys($cases2[$h])); + $ids1=''; + $ids2=''; + if (is_array($cases1[$h]) && count($cases1[$h]) && array_keys($cases1[$h])) $ids1=join(',', array_keys($cases1[$h])); + if (is_array($cases2[$h]) && count($cases2[$h]) && array_keys($cases2[$h])) $ids2=join(',', array_keys($cases2[$h])); if ($h == $begin_h) echo '
'; else echo ''; - if (count($cases1[$h]) == 1) // only 1 event + if (is_array($cases1[$h]) && count($cases1[$h]) == 1) // only 1 event { $output = array_slice($cases1[$h], 0, 1); $title1=$langs->trans("Ref").' '.$ids1.($title1?' - '.$title1:''); if ($output[0]['string']) $title1.=($title1?' - ':'').$output[0]['string']; if ($output[0]['color']) $color1 = $output[0]['color']; } - elseif (count($cases1[$h]) > 1) + elseif (is_array($cases1[$h]) && count($cases1[$h]) > 1) { $title1=$langs->trans("Ref").' '.$ids1.($title1?' - '.$title1:''); $color1='222222'; } - if (count($cases2[$h]) == 1) // only 1 event + if (is_array($cases2[$h]) && count($cases2[$h]) == 1) // only 1 event { $output = array_slice($cases2[$h], 0, 1); $title2=$langs->trans("Ref").' '.$ids2.($title2?' - '.$title2:''); if ($output[0]['string']) $title2.=($title2?' - ':'').$output[0]['string']; if ($output[0]['color']) $color2 = $output[0]['color']; } - elseif (count($cases2[$h]) > 1) + elseif (is_array($cases2[$h]) && count($cases2[$h]) > 1) { $title2=$langs->trans("Ref").' '.$ids2.($title2?' - '.$title2:''); $color2='222222'; From fd263cb316b34100ec1c4bd0d76a858b0fb0f0fe Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 18 Jun 2019 07:15:59 +0200 Subject: [PATCH 026/944] FIX add v10 in virtualmin script --- build/perl/virtualmin/dolibarr.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build/perl/virtualmin/dolibarr.pl b/build/perl/virtualmin/dolibarr.pl index a28fc430caa..343cebc6abe 100644 --- a/build/perl/virtualmin/dolibarr.pl +++ b/build/perl/virtualmin/dolibarr.pl @@ -1,7 +1,7 @@ #---------------------------------------------------------------------------- # \file dolibarr.pl # \brief Dolibarr script install for Virtualmin Pro -# \author (c)2009-2018 Regis Houssin +# \author (c)2009-2019 Regis Houssin #---------------------------------------------------------------------------- @@ -30,7 +30,7 @@ return "Regis Houssin"; # script_dolibarr_versions() sub script_dolibarr_versions { -return ( "9.0.0", "8.0.3", "7.0.4", "6.0.8", "5.0.7" ); +return ( "10.0.0", "9.0.3", "8.0.5", "7.0.5", "6.0.8" ); } sub script_dolibarr_release @@ -390,6 +390,7 @@ sub script_dolibarr_check_latest { local ($ver) = @_; local @vers = &osdn_package_versions("dolibarr", + $ver >= 10.0 ? "dolibarr\\-(10\\.0\\.[0-9\\.]+)\\.tgz" : $ver >= 9.0 ? "dolibarr\\-(9\\.0\\.[0-9\\.]+)\\.tgz" : $ver >= 8.0 ? "dolibarr\\-(8\\.0\\.[0-9\\.]+)\\.tgz" : $ver >= 7.0 ? "dolibarr\\-(7\\.0\\.[0-9\\.]+)\\.tgz" : From 96c699482791ebd62614a0209849057799cdb924 Mon Sep 17 00:00:00 2001 From: Nicolas ZABOURI Date: Tue, 18 Jun 2019 10:55:16 +0200 Subject: [PATCH 027/944] =?UTF-8?q?FIX=202=20d=C3=A9clarations=20of=20date?= =?UTF-8?q?=5Fvalid=20in=20SQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/install/mysql/tables/llx_bom_bom.sql | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/install/mysql/tables/llx_bom_bom.sql b/htdocs/install/mysql/tables/llx_bom_bom.sql index 9c6e014586d..11e1ce74ffd 100644 --- a/htdocs/install/mysql/tables/llx_bom_bom.sql +++ b/htdocs/install/mysql/tables/llx_bom_bom.sql @@ -27,10 +27,9 @@ CREATE TABLE llx_bom_bom( qty double(24,8), efficiency double(8,4) DEFAULT 1, date_creation datetime NOT NULL, - date_valid datetime NOT NULL, + date_valid datetime, tms timestamp, - date_valid datetime, - fk_user_creat integer NOT NULL, + fk_user_creat integer NOT NULL, fk_user_modif integer, fk_user_valid integer, import_key varchar(14), From 8835b49f3fccc90cbe52d2a83c61d61323017f2e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 14:30:13 +0200 Subject: [PATCH 028/944] Debug the accounting-file tool --- htdocs/compta/accounting-files.php | 278 +++++++++++------- .../install/mysql/migration/9.0.0-10.0.0.sql | 2 + htdocs/install/mysql/migration/repair.sql | 1 + htdocs/user/param_ihm.php | 2 +- 4 files changed, 177 insertions(+), 106 deletions(-) diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index 5a3097f6aa8..c663a179d6d 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -16,13 +16,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - - /** +/** * \file htdocs/compta/accounting-files.php * \ingroup compta * \brief Page to show portoflio and files of a thirdparty and download it */ - require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -34,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -$langs->loadLangs(array("accountancy", "bills", "companies")); +$langs->loadLangs(array("accountancy", "bills", "companies", "salaries")); $date_start =GETPOST('date_start', 'alpha'); $date_startDay= GETPOST('date_startday', 'int'); @@ -46,11 +44,11 @@ $date_stopDay= GETPOST('date_stopday', 'int'); $date_stopMonth= GETPOST('date_stopmonth', 'int'); $date_stopYear= GETPOST('date_stopyear', 'int'); //FIXME doldate -$date_stop=($date_stopDay)?dol_mktime(0, 0, 0, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop); +$date_stop=($date_stopDay)?dol_mktime(23, 59, 59, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop); $action =GETPOST('action', 'alpha'); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('comptafileslist', 'globallist')); +$hookmanager->initHooks(array('comptafileslist','globallist')); // Load variable for pagination $limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; @@ -66,6 +64,7 @@ if (! $sortorder) $sortorder="DESC"; $arrayfields=array( + 'type'=>array('label'=>"Type", 'checked'=>1), 'date'=>array('label'=>"Date", 'checked'=>1), //... ); @@ -83,7 +82,7 @@ if ($user->societe_id > 0) * Actions */ -$entity = GETPOST('entity', 'int')?GETPOST('entity', 'int'):$conf->entity; +$entity = GETPOST('entity','int')?GETPOST('entity','int'):$conf->entity; //$parameters = array('socid' => $id); //$reshook = $hookmanager->executeHooks('doActions', $parameters, $object); // Note that $object may have been modified by some hooks @@ -106,38 +105,45 @@ if (($action=="searchfiles" || $action=="dl" )) { if (! $error) { - $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; + $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $sql="SELECT rowid as id, ref as ref, paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture"; + $sql="SELECT t.rowid as id, t.ref, t.paye as paid, total as total_ht, total_ttc, tva as total_vat, fk_soc, t.datef as date, 'Invoice' as item, s.nom as thirdparty_name, s.code_client as thirdparty_code, c.code as country_code, s.tva_intra as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."facture as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays"; $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Facture::STATUS_DRAFT; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".Facture::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'SupplierInvoice' as item FROM ".MAIN_DB_PREFIX."facture_fourn"; + $sql.=" SELECT t.rowid as id, t.ref, paye as paid, total_ht, total_ttc, total_tva as total_vat, fk_soc, datef as date, 'SupplierInvoice' as item, s.nom as thirdparty_name, s.code_fournisseur as thirdparty_code, c.code as country_code, s.tva_intra as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."facture_fourn as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays"; $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".FactureFournisseur::STATUS_DRAFT; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".FactureFournisseur::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item FROM ".MAIN_DB_PREFIX."expensereport"; + $sql.=" SELECT t.rowid as id, t.ref, paid, total_ht, total_ttc, total_tva as total_vat, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."expensereport as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user_author LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country"; $sql.=" WHERE date_fin between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".ExpenseReport::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, amount as total_ttc, '0' as fk_soc, datedon as date, 'Donation' as item FROM ".MAIN_DB_PREFIX."don"; + $sql.=" SELECT t.rowid as id, t.ref, paid, amount as total_ht, amount as total_ttc, 0 as total_vat, 0 as fk_soc, datedon as date, 'Donation' as item, t.societe as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."don as t LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = t.fk_country"; $sql.=" WHERE datedon between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".Don::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date, 'SalaryPayment' as item FROM ".MAIN_DB_PREFIX."payment_salary"; + $sql.=" SELECT t.rowid as id, t.label as ref, 1 as paid, amount as total_ht, amount as total_ttc, 0 as total_vat, t.fk_user as fk_soc, datep as date, 'SalaryPayment' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."payment_salary as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country"; $sql.=" WHERE datep between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item FROM ".MAIN_DB_PREFIX."chargesociales"; + $sql.=" SELECT t.rowid as id, t.libelle as ref, paye as paid, amount as total_ht, amount as total_ttc, 0 as total_tva, 0 as fk_soc, date_creation as date, 'SocialContributions' as item, '' as thirdparty_name, '' as thirdparty_code, '' as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."chargesociales as t"; $sql.=" WHERE date_creation between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; $sql.= $db->order($sortfield, $sortorder); + //print $sql; $resd = $db->query($sql); $files=array(); @@ -162,63 +168,68 @@ if (($action=="searchfiles" || $action=="dl" )) { case "Invoice": $subdir = ''; $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $upload_dir = $conf->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "SupplierInvoice": $tmpinvoicesupplier->fetch($objd->id); $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "ExpenseReport": $subdir = ''; $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; - $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; + $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "SalaryPayment": $subdir = ''; $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->salaries->dir_output.'/'.$subdir; - $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $upload_dir = $conf->salaries->dir_output.'/'.$subdir; + $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "Donation": - $tmpdonation->fetch($objp->id); - $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->don->dir_output . '/' . $subdir; - $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $tmpdonation->fetch($objp->id); + $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->don->dir_output . '/' . $subdir; + $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "SocialContributions": $subdir = ''; $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->tax->dir_output . '/' . $subdir; - $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $upload_dir = $conf->tax->dir_output . '/' . $subdir; + $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; default: - $subdir = ''; - $upload_dir = ''; - $link = ''; + $subdir=''; + $upload_dir=''; + $link=''; break; } if (!empty($upload_dir)) { $result=true; - $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); - + //var_dump($upload_dir); if (count($files) < 1) { - $nofile['id']=$objd->id; - $nofile['date']=$db->idate($objd->date); + $nofile['id']=$objd->id; + $nofile['date']=$db->idate($objd->date); $nofile['paid']=$objd->paid; - $nofile['amount']=$objd->total_ttc; + $nofile['amount_ht']=$objd->total_ht; + $nofile['amount_ttc']=$objd->total_ttc; + $nofile['amount_vat']=$objd->total_vat; $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); $nofile['fk']=$objd->fk_soc; $nofile['item']=$objd->item; + $nofile['thirdparty_name']=$objd->thirdparty_name; + $nofile['thirdparty_code']=$objd->thirdparty_code; + $nofile['country_code']=$objd->country_code; + $nofile['vatnum']=$objd->vatnum; $filesarray[]=$nofile; } @@ -226,13 +237,21 @@ if (($action=="searchfiles" || $action=="dl" )) { { foreach ($files as $key => $file) { - $file['id']=$objd->id; - $file['date']=$db->idate($objd->date); + $file['id']=$objd->id; + $file['date']=$db->idate($objd->date); $file['paid']=$objd->paid; - $file['amount']=$objd->total_ttc; + $file['amount_ht']=$objd->total_ht; + $file['amount_ttc']=$objd->total_ttc; + $file['amount_vat']=$objd->total_vat; $file['ref']=($objd->ref ? $objd->ref : $objd->id); $file['fk']=$objd->fk_soc; $file['item']=$objd->item; + + $file['thirdparty_name']=$objd->thirdparty_name; + $file['thirdparty_code']=$objd->thirdparty_code; + $file['country_code']=$objd->country_code; + $file['vatnum']=$objd->vatnum; + $file['link']=$link.$file['name']; $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; @@ -252,27 +271,30 @@ if (($action=="searchfiles" || $action=="dl" )) { } } -/* - * cleanup of old ZIP - */ -//FIXME + /* *ZIP creation */ -if ($result && $action == "dl") +$dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->comptabilite->dir_temp); +if (empty($dirfortmpfile)) { - if (! extension_loaded('zip')) - { - setEventMessages('PHPZIPExtentionNotLoaded', null, 'errors'); - exit; - } + setEventMessages($langs->trans("ErrorNoAccountingModuleEnabled"), null, 'errors'); + $error++; +} - $dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->compta->dir_temp); + +if ($result && $action == "dl" && ! $error) +{ + if (! extension_loaded('zip')) + { + setEventMessages('PHPZIPExtentionNotLoaded', null, 'errors'); + exit; + } dol_mkdir($dirfortmpfile); - $log='date,type,ref,total,paid,filename,item_id'."\n"; + $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->trans("ThirdParty").','.$langs->trans("Code").','.$langs->trans("Country").','.$langs->trans("VATIntra")."\n"; $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc')."-".dol_print_date($date_stop, 'dayrfc').'_export.zip'; dol_delete_file($zipname); @@ -281,10 +303,10 @@ if ($result && $action == "dl") $res = $zip->open($zipname, ZipArchive::OVERWRITE|ZipArchive::CREATE); if ($res) { - foreach ($filesarray as $key=> $file) + foreach ($filesarray as $key => $file) { if (file_exists($file["fullname"])) $zip->addFile($file["fullname"], $file["relpathnamelang"]); // - $log.=dol_print_date($file['date'], 'dayrfc').','.$file['item'].','.$file['ref'].','.$file['amount'].','.$file['paid'].','.$file["name"].','.$file['fk']."\n"; + $log.=$file['item'].','.dol_print_date($file['date'], 'dayrfc').','.$file['ref'].','.$file['amount_ht'].','.$file['amount_ttc'].','.$file['amount_vat'].','.$file['paid'].','.$file["name"].','.$file['fk'].','.$file['thirdparty_name'].','.$file['thirdparty_code'].','.$file['country_code'].',"'.$file['vatnum'].'"'."\n"; } $zip->addFromString('transactions.csv', $log); $zip->close(); @@ -299,6 +321,10 @@ if ($result && $action == "dl") exit(); } + else + { + setEventMessages($langs->trans("FailedToOpenFile", $zipname), null, 'errors'); + } } @@ -329,11 +355,11 @@ print ' - '.$form->selectDate($date_stop, 'date_stop', 0, 0, 0, "", 1, 1, 0)."\n // Export is for current company only ! if (! empty($conf->multicompany->enabled) && is_object($mc)) { - print '('.$langs->trans("Entity").' : '; - $mc->dao->getEntities(); - $mc->dao->fetch($conf->entity); - print $mc->dao->label; - print ")\n"; + print '('.$langs->trans("Entity").' : '; + $mc->dao->getEntities(); + $mc->dao->fetch($conf->entity); + print $mc->dao->label; + print ")\n"; } print ''; @@ -376,14 +402,18 @@ if (!empty($date_start) && !empty($date_stop)) print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print ''; print ''; - print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, 'class="nowrap"', $sortfield, $sortorder); - print ''; + print_liste_field_titre($arrayfields['type']['label'], $_SERVER["PHP_SELF"], "type", "", $param, '', $sortfield, $sortorder, 'nowrap '); + print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, '', $sortfield, $sortorder, 'center nowrap '); print ''; print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; if ($result) { @@ -397,18 +427,11 @@ if (!empty($date_start) && !empty($date_stop)) { // Sort array by date ASC to calculate balance + $totalET = 0; + $totalIT = 0; + $totalVAT = 0; $totalDebit = 0; $totalCredit = 0; - // Balance calculation - $balance = 0; - foreach($TData as &$data1) { - if ($data1['item']!='Invoice' && $data1['item']!='Donation') - { - $data1['amount']=-$data1['amount']; - } - $balance += $data1['amount']; - $data1['balance'] = $balance; - } // Display array foreach($TData as $data) @@ -417,11 +440,17 @@ if (!empty($date_start) && !empty($date_stop)) //if (!empty($data['fk_facture'])) $html_class = 'facid-'.$data['fk_facture']; //elseif (!empty($data['fk_paiement'])) $html_class = 'payid-'.$data['fk_paiement']; print ''; - print "'; + + // Date + print '\n"; - print ''; - print ''; + + // Ref + print ''; // File link print '\n"; + print "\n"; + + // Paid + print ''; + + // Total ET + print '\n"; + // Total IT + print '\n"; + // Total VAT + print '\n"; + + print '\n"; + + print '\n"; + + print '\n"; + + print '\n"; + + // Debit + //print '\n"; + // Credit + //print '\n"; + + $totalET += $data['amount_ht']; + $totalIT += $data['amount_ttc']; + $totalVAT += $data['amount_vat']; + + $totalDebit += ($data['amount_ttc'] > 0) ? abs($data['amount_ttc']) : 0; + $totalCredit += ($data['amount_ttc'] > 0) ? 0 : abs($data['amount_ttc']); - print ''; - print '\n"; - $totalDebit += ($data['amount'] > 0) ? abs($data['amount']) : 0; - print '\n"; - $totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']); // Balance - print '\n"; + //print '\n"; + print "\n"; } print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + /*print ''; + print ''; + print ''; + */ print "\n"; } } @@ -453,5 +520,6 @@ if (!empty($date_start) && !empty($date_stop)) print ''; } + llxFooter(); $db->close(); diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index 40f7da3fa95..1270b8b279a 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -60,6 +60,8 @@ CREATE TABLE llx_pos_cash_fence( -- For 10.0 +UPDATE llx_chargesociales SET date_creation = tms WHERE date_creation IS NULL; + DROP TABLE llx_cotisation; ALTER TABLE llx_accounting_bookkeeping DROP COLUMN validated; ALTER TABLE llx_accounting_bookkeeping_tmp DROP COLUMN validated; diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 387f8e159ec..37d3f984824 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -400,6 +400,7 @@ ALTER TABLE llx_accounting_account ADD UNIQUE INDEX uk_accounting_account (accou -- p.tva_tx = 0 -- where price = 17.5 +UPDATE llx_chargesociales SET date_creation = tms WHERE date_creation IS NULL; -- VMYSQL4.1 SET sql_mode = 'ALLOW_INVALID_DATES'; -- VMYSQL4.1 update llx_accounting_account set tms = datec where DATE(STR_TO_DATE(tms, '%Y-%m-%d')) IS NULL; diff --git a/htdocs/user/param_ihm.php b/htdocs/user/param_ihm.php index 2ded2013601..90228aa952e 100644 --- a/htdocs/user/param_ihm.php +++ b/htdocs/user/param_ihm.php @@ -173,7 +173,7 @@ if (! empty($conf->projet->enabled)) $tmparray['projet/index.php?mainmenu=projec if (! empty($conf->holiday->enabled) || ! empty($conf->expensereport->enabled)) $tmparray['hrm/index.php?mainmenu=hrm&leftmenu=']='HRMArea'; // TODO Complete list with first level of menus if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) $tmparray['product/index.php?mainmenu=products&leftmenu=']='ProductsAndServicesArea'; if (! empty($conf->propal->enabled) || ! empty($conf->commande->enabled) || ! empty($conf->ficheinter->enabled) || ! empty($conf->contrat->enabled)) $tmparray['comm/index.php?mainmenu=commercial&leftmenu=']='CommercialArea'; -if (! empty($conf->compta->enabled) || ! empty($conf->accounting->enabled)) $tmparray['compta/index.php?mainmenu=compta&leftmenu=']='AccountancyTreasuryArea'; +if (! empty($conf->comptabilite->enabled) || ! empty($conf->accounting->enabled)) $tmparray['compta/index.php?mainmenu=compta&leftmenu=']='AccountancyTreasuryArea'; if (! empty($conf->adherent->enabled)) $tmparray['adherents/index.php?mainmenu=members&leftmenu=']='MembersArea'; if (! empty($conf->agenda->enabled)) $tmparray['comm/action/index.php?mainmenu=agenda&leftmenu=']='Agenda'; From ad20a5158c2abe0a04efa3b4fa74a265b5071ead Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 14:32:28 +0200 Subject: [PATCH 029/944] Fix columns in csv --- htdocs/compta/accounting-files.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index c663a179d6d..0954a194b73 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -294,7 +294,7 @@ if ($result && $action == "dl" && ! $error) dol_mkdir($dirfortmpfile); - $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->trans("ThirdParty").','.$langs->trans("Code").','.$langs->trans("Country").','.$langs->trans("VATIntra")."\n"; + $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->transnoentitiesnoconv("ThirdParty").','.$langs->transnoentitiesnoconv("Code").','.$langs->transnoentitiesnoconv("Country").','.$langs->transnoentitiesnoconv("VATIntra")."\n"; $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc')."-".dol_print_date($date_stop, 'dayrfc').'_export.zip'; dol_delete_file($zipname); From 27f52dd0bd73fdb2faa9c121ec95fb7fb512839c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 14:32:35 +0200 Subject: [PATCH 030/944] Fix columns in csv --- htdocs/compta/compta-files.php | 474 +++++++++++++++++++-------------- 1 file changed, 276 insertions(+), 198 deletions(-) diff --git a/htdocs/compta/compta-files.php b/htdocs/compta/compta-files.php index be08e264a02..e28df61e658 100644 --- a/htdocs/compta/compta-files.php +++ b/htdocs/compta/compta-files.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2018 Laurent Destailleur + * Copyright (C) 2004-2019 Laurent Destailleur * Copyright (C) 2017 Pierre-Henry Favre * * This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ * along with this program. If not, see . */ /** - * \file htdocs/compta/compta-files.php + * \file htdocs/compta/accounting-files.php * \ingroup compta * \brief Page to show portoflio and files of a thirdparty and download it */ @@ -25,15 +25,14 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; -require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; +require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -$langs->loadLangs(array("accountancy","bills")); +$langs->loadLangs(array("accountancy", "bills", "companies", "salaries")); $date_start =GETPOST('date_start', 'alpha'); $date_startDay= GETPOST('date_startday', 'int'); @@ -45,7 +44,7 @@ $date_stopDay= GETPOST('date_stopday', 'int'); $date_stopMonth= GETPOST('date_stopmonth', 'int'); $date_stopYear= GETPOST('date_stopyear', 'int'); //FIXME doldate -$date_stop=($date_stopDay)?dol_mktime(0, 0, 0, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop); +$date_stop=($date_stopDay)?dol_mktime(23, 59, 59, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop); $action =GETPOST('action', 'alpha'); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context @@ -65,6 +64,7 @@ if (! $sortorder) $sortorder="DESC"; $arrayfields=array( + 'type'=>array('label'=>"Type", 'checked'=>1), 'date'=>array('label'=>"Date", 'checked'=>1), //... ); @@ -74,8 +74,9 @@ if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled)) { accessforbidden(); } if ($user->societe_id > 0) +{ accessforbidden(); - +} /* @@ -90,157 +91,211 @@ $entity = GETPOST('entity','int')?GETPOST('entity','int'):$conf->entity; $filesarray=array(); $result=false; -if(($action=="searchfiles"||$action=="dl" ) && $date_start && $date_stop){ - $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $sql="SELECT rowid as id, facnumber as ref,paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture"; - $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Facture::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'SupplierInvoice' as item FROM ".MAIN_DB_PREFIX."facture_fourn"; - $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".FactureFournisseur::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date,'ExpenseReport' as item FROM ".MAIN_DB_PREFIX."expensereport"; - $sql.=" WHERE date_fin between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref,paid,amount as total_ttc, '0' as fk_soc, datedon as date,'Donation' as item FROM ".MAIN_DB_PREFIX."don"; - $sql.=" WHERE datedon between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date,'SalaryPayment' as item FROM ".MAIN_DB_PREFIX."payment_salary"; - $sql.=" WHERE datep between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item FROM ".MAIN_DB_PREFIX."chargesociales"; - $sql.=" WHERE date_creation between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; - $sql.= $db->order($sortfield, $sortorder); +if (($action=="searchfiles" || $action=="dl" )) { - $resd = $db->query($sql); - $files=array(); - $link=''; - - if ($resd) + if (empty($date_start)) { - $numd = $db->num_rows($resd); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateStart")), null, 'errors'); + $error++; + } + if (empty($date_stop)) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), null, 'errors'); + $error++; + } - $tmpinvoice=new Facture($db); - $tmpinvoicesupplier=new FactureFournisseur($db); - $tmpdonation=new Don($db); + if (! $error) + { + $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $upload_dir =''; - $i=0; - while ($i < $numd) + $sql="SELECT t.rowid as id, t.facnumber as ref, t.paye as paid, total as total_ht, total_ttc, tva as total_vat, fk_soc, t.datef as date, 'Invoice' as item, s.nom as thirdparty_name, s.code_client as thirdparty_code, c.code as country_code, s.tva_intra as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."facture as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays"; + $sql.=" WHERE datef between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".Facture::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.ref, paye as paid, total_ht, total_ttc, total_tva as total_vat, fk_soc, datef as date, 'SupplierInvoice' as item, s.nom as thirdparty_name, s.code_fournisseur as thirdparty_code, c.code as country_code, s.tva_intra as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."facture_fourn as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays"; + $sql.=" WHERE datef between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".FactureFournisseur::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.ref, paid, total_ht, total_ttc, total_tva as total_vat, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."expensereport as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user_author LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country"; + $sql.=" WHERE date_fin between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".ExpenseReport::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.ref, paid, amount as total_ht, amount as total_ttc, 0 as total_vat, 0 as fk_soc, datedon as date, 'Donation' as item, t.societe as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."don as t LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = t.fk_country"; + $sql.=" WHERE datedon between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".Don::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.label as ref, 1 as paid, amount as total_ht, amount as total_ttc, 0 as total_vat, t.fk_user as fk_soc, datep as date, 'SalaryPayment' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."payment_salary as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country"; + $sql.=" WHERE datep between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.libelle as ref, paye as paid, amount as total_ht, amount as total_ttc, 0 as total_tva, 0 as fk_soc, date_creation as date, 'SocialContributions' as item, '' as thirdparty_name, '' as thirdparty_code, '' as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."chargesociales as t"; + $sql.=" WHERE date_creation between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; + $sql.= $db->order($sortfield, $sortorder); + //print $sql; + + $resd = $db->query($sql); + $files=array(); + $link=''; + + if ($resd) { - $objd = $db->fetch_object($resd); + $numd = $db->num_rows($resd); - switch($objd->item) - { - case "Invoice": - $subdir=dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SupplierInvoice": - $tmpinvoicesupplier->fetch($objd->id); - $subdir=get_exdir($tmpinvoicesupplier->id, 2, 0, 0, $tmpinvoicesupplier, 'invoice_supplier').'/'.dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "ExpenseReport": - $subdir=dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; - $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SalaryPayment": - $subdir=dol_sanitizeFileName($objd->id); - $upload_dir = $conf->salaries->dir_output.'/'.$subdir; - $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "Donation": - $tmpdonation->fetch($objp->id); - $subdir=get_exdir(0, 0, 0, 1, $tmpdonation, 'donation'). '/'. dol_sanitizeFileName($objd->id); - $upload_dir = $conf->don->dir_output . '/' . $subdir; - $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SocialContributions": - $subdir=dol_sanitizeFileName($objd->id); - $upload_dir = $conf->tax->dir_output . '/' . $subdir; - $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - default: - $subdir=''; - $upload_dir=''; - $link=''; - break; - } + $tmpinvoice=new Facture($db); + $tmpinvoicesupplier=new FactureFournisseur($db); + $tmpdonation=new Don($db); - if (!empty($upload_dir)) + $upload_dir =''; + $i=0; + while ($i < $numd) { - $result=true; - $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); - //var_dump($upload_dir); - if (count($files) < 1) + $objd = $db->fetch_object($resd); + + switch($objd->item) { - $nofile['date']=$db->idate($objd->date); - $nofile['paid']=$objd->paid; - $nofile['amount']=$objd->total_ttc; - $nofile['ref']=$objd->ref; - $nofile['fk']=$objd->fk_soc; - $nofile['item']=$objd->item; - - $filesarray[]=$nofile; + case "Invoice": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SupplierInvoice": + $tmpinvoicesupplier->fetch($objd->id); + $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "ExpenseReport": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; + $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SalaryPayment": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->salaries->dir_output.'/'.$subdir; + $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "Donation": + $tmpdonation->fetch($objp->id); + $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->don->dir_output . '/' . $subdir; + $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SocialContributions": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->tax->dir_output . '/' . $subdir; + $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + default: + $subdir=''; + $upload_dir=''; + $link=''; + break; } - else - { - foreach ($files as $key => $file) - { - $file['date']=$db->idate($objd->date); - $file['paid']=$objd->paid; - $file['amount']=$objd->total_ttc; - $file['ref']=$objd->ref; - $file['fk']=$objd->fk_soc; - $file['item']=$objd->item; - $file['link']=$link.$file['name']; - $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; - $filesarray[]=$file; + if (!empty($upload_dir)) + { + $result=true; + $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); + //var_dump($upload_dir); + if (count($files) < 1) + { + $nofile['id']=$objd->id; + $nofile['date']=$db->idate($objd->date); + $nofile['paid']=$objd->paid; + $nofile['amount_ht']=$objd->total_ht; + $nofile['amount_ttc']=$objd->total_ttc; + $nofile['amount_vat']=$objd->total_vat; + $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); + $nofile['fk']=$objd->fk_soc; + $nofile['item']=$objd->item; + $nofile['thirdparty_name']=$objd->thirdparty_name; + $nofile['thirdparty_code']=$objd->thirdparty_code; + $nofile['country_code']=$objd->country_code; + $nofile['vatnum']=$objd->vatnum; + + $filesarray[]=$nofile; + } + else + { + foreach ($files as $key => $file) + { + $file['id']=$objd->id; + $file['date']=$db->idate($objd->date); + $file['paid']=$objd->paid; + $file['amount_ht']=$objd->total_ht; + $file['amount_ttc']=$objd->total_ttc; + $file['amount_vat']=$objd->total_vat; + $file['ref']=($objd->ref ? $objd->ref : $objd->id); + $file['fk']=$objd->fk_soc; + $file['item']=$objd->item; + + $file['thirdparty_name']=$objd->thirdparty_name; + $file['thirdparty_code']=$objd->thirdparty_code; + $file['country_code']=$objd->country_code; + $file['vatnum']=$objd->vatnum; + + $file['link']=$link.$file['name']; + $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; + + $filesarray[]=$file; + } } } + $i++; } - $i++; } - } - else - { - dol_print_error($db); - } + else + { + dol_print_error($db); + } - $db->free($resd); + $db->free($resd); + } } -/* - * cleanup of old ZIP - */ -//FIXME + /* *ZIP creation */ -if ($result && $action == "dl") +$dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->comptabilite->dir_temp); +if (empty($dirfortmpfile)) { - $dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->compta->dir_temp); + setEventMessages($langs->trans("ErrorNoAccountingModuleEnabled"), null, 'errors'); + $error++; +} + + +if ($result && $action == "dl" && ! $error) +{ + if (! extension_loaded('zip')) + { + setEventMessages('PHPZIPExtentionNotLoaded', null, 'errors'); + exit; + } dol_mkdir($dirfortmpfile); - $log='date,type,ref,total,paid,filename,item_id'."\n"; + $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->transnoentitiesnoconv("ThirdParty").','.$langs->transnoentitiesnoconv("Code").','.$langs->transnoentitiesnoconv("Country").','.$langs->transnoentitiesnoconv("VATIntra")."\n"; $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc')."-".dol_print_date($date_stop, 'dayrfc').'_export.zip'; dol_delete_file($zipname); @@ -249,10 +304,10 @@ if ($result && $action == "dl") $res = $zip->open($zipname, ZipArchive::OVERWRITE|ZipArchive::CREATE); if ($res) { - foreach ($filesarray as $key=> $file) + foreach ($filesarray as $key => $file) { if (file_exists($file["fullname"])) $zip->addFile($file["fullname"], $file["relpathnamelang"]); // - $log.=dol_print_date($file['date'], 'dayrfc').','.$file['item'].','.$file['ref'].','.$file['amount'].','.$file['paid'].','.$file["name"].','.$file['fk']."\n"; + $log.=$file['item'].','.dol_print_date($file['date'], 'dayrfc').','.$file['ref'].','.$file['amount_ht'].','.$file['amount_ttc'].','.$file['amount_vat'].','.$file['paid'].','.$file["name"].','.$file['fk'].','.$file['thirdparty_name'].','.$file['thirdparty_code'].','.$file['country_code'].',"'.$file['vatnum'].'"'."\n"; } $zip->addFromString('transactions.csv', $log); $zip->close(); @@ -267,6 +322,10 @@ if ($result && $action == "dl") exit(); } + else + { + setEventMessages($langs->trans("FailedToOpenFile", $zipname), null, 'errors'); + } } @@ -283,7 +342,7 @@ llxHeader('', $title, $help_url); $h=0; $head[$h][0] = $_SERVER["PHP_SELF"].$varlink; -$head[$h][1] = $langs->trans("AccountancyFiles"); +$head[$h][1] = $langs->trans("AccountantFiles"); $head[$h][2] = 'AccountancyFiles'; dol_fiche_head($head, 'AccountancyFiles'); @@ -293,45 +352,20 @@ print '
'; print $langs->trans("ReportPeriod").': '.$form->selectDate($date_start, 'date_start', 0, 0, 0, "", 1, 1, 0); print ' - '.$form->selectDate($date_stop, 'date_stop', 0, 0, 0, "", 1, 1, 0)."\n"; -// Multicompany -/*if (! empty($conf->multicompany->enabled) && is_object($mc)) - { - print '
'; - // This is now done with hook formObjectOptions. Keep this code for backward compatibility with old multicompany module - if (method_exists($mc, 'formObjectOptions')) - { - if (empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && $conf->entity == 1 && $user->admin && ! $user->entity) // condition must be same for create and edit mode - { - print "
".''; - print "\n"; - } - else - { - print ''; - } - } - $object = new stdClass(); - // Other attributes - $parameters=array('objectsrc' => null, 'colspan' => ' colspan="3"'); - $reshook=$hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - if (empty($reshook)) - { - print $object->showOptionals($extrafields, 'edit'); - } - }*/ +// Export is for current company only ! if (! empty($conf->multicompany->enabled) && is_object($mc)) { - print '   -   '.$langs->trans("Entity").' : '; + print '('.$langs->trans("Entity").' : '; $mc->dao->getEntities(); $mc->dao->fetch($conf->entity); print $mc->dao->label; - print "
\n"; + print ")
\n"; } -print ''."\n"; +print ''; + +print ''."\n"; dol_fiche_end(); @@ -369,14 +403,18 @@ if (!empty($date_start) && !empty($date_stop)) print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '
'.$langs->trans("Type").''.$langs->trans("Ref").''.$langs->trans("Document").''.$langs->trans("Paid").''.$langs->trans("Debit").''.$langs->trans("Credit").''.$langs->trans("Balance").''.$langs->trans("TotalHT").''.$langs->trans("TotalTTC").''.$langs->trans("TotalVAT").''.$langs->trans("ThirdParty").''.$langs->trans("Code").''.$langs->trans("Country").''.$langs->trans("VATIntra").'
"; + + // Type + print ''.$langs->trans($data['item']).''; print dol_print_date($data['date'], 'day'); print "'.$langs->trans($data['item']).''.$data['ref'].''.$data['ref'].''; @@ -429,23 +458,61 @@ if (!empty($date_start) && !empty($date_stop)) { print ''.($data['name'] ? $data['name'] : $data['ref']).''; } - print "'.$data['paid'].''.price($data['amount_ht'])."'.price($data['amount_ttc'])."'.price($data['amount_vat'])."'.$data['thirdparty_name']."'.$data['thirdparty_code']."'.$data['country_code']."'.$data['vatnum']."'.(($data['amount_ttc'] > 0) ? price(abs($data['amount_ttc'])) : '')."'.(($data['amount_ttc'] > 0) ? '' : price(abs($data['amount_ttc'])))."'.$data['paid'].''.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."'.(($data['amount'] > 0) ? '' : price(abs($data['amount'])))."'.price($data['balance'])."'.price($data['balance'])."
 '.price($totalDebit).''.price($totalCredit).''.price(price2num($totalDebit - $totalCredit, 'MT')).''.price($totalET).''.price($totalIT).''.price($totalVAT).''.price($totalDebit).''.price($totalCredit).''.price(price2num($totalDebit - $totalCredit, 'MT')).'
'.$langs->trans("Entity").'".$mc->select_entities($entity); - print "
'; print ''; - print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); - print ''; + print_liste_field_titre($arrayfields['type']['label'], $_SERVER["PHP_SELF"], "type", "", $param, '', $sortfield, $sortorder, 'nowrap '); + print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, '', $sortfield, $sortorder, 'center nowrap '); print ''; - print ''; + print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; if ($result) { @@ -390,20 +428,11 @@ if (!empty($date_start) && !empty($date_stop)) { // Sort array by date ASC to calculate balance + $totalET = 0; + $totalIT = 0; + $totalVAT = 0; $totalDebit = 0; $totalCredit = 0; - // Balance calculation - $balance = 0; - foreach($TData as &$data1) { - if ($data1['item']!='Invoice'&& $data1['item']!='Donation' ){ - $data1['amount']=-$data1['amount']; - } - if ($data1['amount']>0){ - }else{ - } - $balance += $data1['amount']; - $data1['balance'] = $balance; - } // Display array foreach($TData as $data) @@ -412,30 +441,79 @@ if (!empty($date_start) && !empty($date_stop)) //if (!empty($data['fk_facture'])) $html_class = 'facid-'.$data['fk_facture']; //elseif (!empty($data['fk_paiement'])) $html_class = 'payid-'.$data['fk_paiement']; print ''; - print "'; + + // Date + print '\n"; - print ''; + + // Ref print ''; // File link - print '\n"; + print '\n"; + // Paid print ''; - print '\n"; - $totalDebit += ($data['amount'] > 0) ? abs($data['amount']) : 0; - print '\n"; - $totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']); + + // Total ET + print '\n"; + // Total IT + print '\n"; + // Total VAT + print '\n"; + + print '\n"; + + print '\n"; + + print '\n"; + + print '\n"; + + // Debit + //print '\n"; + // Credit + //print '\n"; + + $totalET += $data['amount_ht']; + $totalIT += $data['amount_ttc']; + $totalVAT += $data['amount_vat']; + + $totalDebit += ($data['amount_ttc'] > 0) ? abs($data['amount_ttc']) : 0; + $totalCredit += ($data['amount_ttc'] > 0) ? 0 : abs($data['amount_ttc']); + // Balance - print '\n"; + //print '\n"; + print "\n"; } print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + /*print ''; + print ''; + print ''; + */ print "\n"; } } From 6bda130835a347b075ae79f4132a0969c418e426 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 14:51:57 +0200 Subject: [PATCH 031/944] Protect from dir scan --- htdocs/bom/admin/index.html | 0 htdocs/bom/class/index.html | 0 htdocs/bom/index.html | 0 htdocs/bom/lib/index.html | 0 htdocs/datapolicy/admin/index.html | 0 htdocs/datapolicy/class/index.html | 0 htdocs/datapolicy/index.html | 0 htdocs/datapolicy/lib/index.html | 0 htdocs/debugbar/index.html | 0 htdocs/website/class/index.html | 0 htdocs/website/lib/index.html | 0 11 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 htdocs/bom/admin/index.html create mode 100644 htdocs/bom/class/index.html create mode 100644 htdocs/bom/index.html create mode 100644 htdocs/bom/lib/index.html create mode 100644 htdocs/datapolicy/admin/index.html create mode 100644 htdocs/datapolicy/class/index.html create mode 100644 htdocs/datapolicy/index.html create mode 100644 htdocs/datapolicy/lib/index.html create mode 100644 htdocs/debugbar/index.html create mode 100644 htdocs/website/class/index.html create mode 100644 htdocs/website/lib/index.html diff --git a/htdocs/bom/admin/index.html b/htdocs/bom/admin/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/bom/class/index.html b/htdocs/bom/class/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/bom/index.html b/htdocs/bom/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/bom/lib/index.html b/htdocs/bom/lib/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/datapolicy/admin/index.html b/htdocs/datapolicy/admin/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/datapolicy/class/index.html b/htdocs/datapolicy/class/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/datapolicy/index.html b/htdocs/datapolicy/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/datapolicy/lib/index.html b/htdocs/datapolicy/lib/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/debugbar/index.html b/htdocs/debugbar/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/website/class/index.html b/htdocs/website/class/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/website/lib/index.html b/htdocs/website/lib/index.html new file mode 100644 index 00000000000..e69de29bb2d From 6afda6a47a8db60cf16e11d3475862c41c435016 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 15:57:22 +0200 Subject: [PATCH 032/944] FIX invalid link on user.fk_user --- htdocs/install/mysql/migration/repair.sql | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 22409441eac..dc9fcc86df6 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -199,6 +199,15 @@ delete from llx_element_element where sourcetype='commande' and fk_source not in DELETE FROM llx_actioncomm_resources WHERE fk_actioncomm not in (select id from llx_actioncomm); +-- Fix link on parent that were removed +DROP table tmp_user; +CREATE TABLE tmp_user as (select * from llx_user); +UPDATE llx_user SET fk_user = NULL where fk_user NOT IN (select rowid from tmp_user); + + +update llx_user set fk_user = null where fk_user not in (select rowid from llx_user); + + UPDATE llx_product SET canvas = NULL where canvas = 'default@product'; UPDATE llx_product SET canvas = NULL where canvas = 'service@product'; From 6e9874b95ad50d6011fbd5677442cc9d69944804 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 16:01:24 +0200 Subject: [PATCH 033/944] FIX A user may read holiday and expense report without permissions --- htdocs/expensereport/list.php | 16 +++++++++++++++- htdocs/holiday/list.php | 12 ++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 3b153bcf843..8b5ef11f128 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -46,10 +46,25 @@ $confirm=GETPOST('confirm','alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'expensereportlist'; +$childids = $user->getAllChildIds(1); + // Security check $socid = GETPOST('socid','int'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'expensereport','',''); +$id = GETPOST('id', 'int'); +// If we are on the view of a specific user +if ($id > 0) +{ + $canread=0; + if ($id == $user->id) $canread=1; + if (! empty($user->rights->holiday->read_all)) $canread=1; + if (! empty($user->rights->holiday->read) && in_array($id, $childids)) $canread=1; + if (! $canread) + { + accessforbidden(); + } +} $diroutputmassaction=$conf->expensereport->dir_output . '/temp/massgeneration/'.$user->id; @@ -66,7 +81,6 @@ $pagenext = $page + 1; if (!$sortorder) $sortorder="DESC"; if (!$sortfield) $sortfield="d.date_debut"; -$id = GETPOST('id', 'int'); $sall = trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml')); $search_ref = GETPOST('search_ref', 'alpha'); diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 5df3fdb314b..d07ec98ca4c 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -60,6 +60,18 @@ if ($user->societe_id > 0) // Protection if external user } $result = restrictedArea($user, 'holiday', $id, ''); $id = GETPOST('id','int'); +// If we are on the view of a specific user +if ($id > 0) +{ + $canread=0; + if ($id == $user->id) $canread=1; + if (! empty($user->rights->holiday->read_all)) $canread=1; + if (! empty($user->rights->holiday->read) && in_array($id, $childids)) $canread=1; + if (! $canread) + { + accessforbidden(); + } +} // Load variable for pagination $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; From 81bca34a08186b79909c41f87ea95c087530c219 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 16:04:25 +0200 Subject: [PATCH 034/944] FIX A user may read holiday and expense report without permissions --- htdocs/expensereport/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 8b5ef11f128..0014cb7999c 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -58,8 +58,8 @@ if ($id > 0) { $canread=0; if ($id == $user->id) $canread=1; - if (! empty($user->rights->holiday->read_all)) $canread=1; - if (! empty($user->rights->holiday->read) && in_array($id, $childids)) $canread=1; + if (! empty($user->rights->expensereport->readall)) $canread=1; + if (! empty($user->rights->expensereport->lire) && in_array($id, $childids)) $canread=1; if (! $canread) { accessforbidden(); From 13abfc3140298227cbaaa02aef53503efe2b0db3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 16:46:12 +0200 Subject: [PATCH 035/944] Code comment --- htdocs/install/mysql/tables/llx_societe.sql | 34 ++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql index ed4919c3fc5..e7a948d67c2 100644 --- a/htdocs/install/mysql/tables/llx_societe.sql +++ b/htdocs/install/mysql/tables/llx_societe.sql @@ -65,34 +65,34 @@ create table llx_societe fk_typent integer DEFAULT 0, -- fk_forme_juridique integer DEFAULT 0, -- juridical status fk_currency varchar(3), -- default currency - siren varchar(128), -- IDProf1: siren or RCS for france, ... - siret varchar(128), -- IDProf2: siret for france, ... - ape varchar(128), -- IDProf3: code ape for france, ... - idprof4 varchar(128), -- IDProf4: nu for france - idprof5 varchar(128), -- IDProf5: nu for france - idprof6 varchar(128), -- IDProf6: nu for france - tva_intra varchar(20), -- tva - capital double(24,8) DEFAULT NULL, -- capital de la societe - fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial statut + siren varchar(128), -- IDProf1: depends on country (example: siren or RCS for france, ...) + siret varchar(128), -- IDProf2: depends on country (example: siret for france, ...) + ape varchar(128), -- IDProf3: depends on country (example: code ape for france, ...) + idprof4 varchar(128), -- IDProf4: depends on country (example: nu for france, ...) + idprof5 varchar(128), -- IDProf5: depends on country (example: nu for france, ...) + idprof6 varchar(128), -- IDProf6: depends on country (example: nu for france, ... + tva_intra varchar(20), -- vat numero + capital double(24,8) DEFAULT NULL, -- capital of company + fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial status note_private text, -- note_public text, -- model_pdf varchar(255), - prefix_comm varchar(5), -- prefix commercial + prefix_comm varchar(5), -- prefix commercial (deprecated) client tinyint DEFAULT 0, -- client 0/1/2 fournisseur tinyint DEFAULT 0, -- fournisseur 0/1 - supplier_account varchar(32), -- compte client chez un fournisseur + supplier_account varchar(32), -- Id of our customer account known by the supplier fk_prospectlevel varchar(12), -- prospect level (in llx_c_prospectlevel) fk_incoterms integer, -- for incoterms location_incoterms varchar(255), -- for incoterms customer_bad tinyint DEFAULT 0, -- mauvais payeur 0/1 customer_rate real DEFAULT 0, -- taux fiabilite client (0 a 1) supplier_rate real DEFAULT 0, -- taux fiabilite fournisseur (0 a 1) - remise_client real DEFAULT 0, -- remise systematique pour le client - remise_supplier real DEFAULT 0, -- remise systematique auprès du fournisseur - mode_reglement tinyint, -- mode de reglement - cond_reglement tinyint, -- condition de reglement - mode_reglement_supplier tinyint, -- mode de reglement fournisseur - cond_reglement_supplier tinyint, -- condition de reglement fournisseur + remise_client real DEFAULT 0, -- discount by default granted to this customer + remise_supplier real DEFAULT 0, -- discount by default granted by this supplier + mode_reglement tinyint, -- payment mode customer + cond_reglement tinyint, -- payment term customer + mode_reglement_supplier tinyint, -- payment mode supplier + cond_reglement_supplier tinyint, -- payment term supplier fk_shipping_method integer, -- preferred shipping method id tva_assuj tinyint DEFAULT 1, -- assujeti ou non a la TVA localtax1_assuj tinyint DEFAULT 0, -- assujeti ou non a local tax 1 From 2e1eb29ca06dfa7273a7b8a15621e711c61a487e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 17:42:45 +0200 Subject: [PATCH 036/944] Fix rendering of amount --- htdocs/compta/facture/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index d12fc90fd77..b6beba5e12e 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -959,11 +959,11 @@ if ($resql) $totalcreditnotes = $facturestatic->getSumCreditNotesUsed(); $totaldeposits = $facturestatic->getSumDepositsUsed(); $totalpay = $paiement + $totalcreditnotes + $totaldeposits; - $remaintopay = $facturestatic->total_ttc - $totalpay; + $remaintopay = price2num($facturestatic->total_ttc - $totalpay); if ($facturestatic->type == Facture::TYPE_CREDIT_NOTE && $obj->paye == 1) { $remaincreditnote = $discount->getAvailableDiscounts($obj->fk_soc, '', 'rc.fk_facture_source='.$facturestatic->id); $remaintopay = -$remaincreditnote; - $totalpay = $facturestatic->total_ttc - $remaintopay; + $totalpay = price2num($facturestatic->total_ttc - $remaintopay); } print ' Date: Tue, 18 Jun 2019 18:07:47 +0200 Subject: [PATCH 037/944] Fix phpcs --- htdocs/compta/accounting-files.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index 0954a194b73..9069045c8b3 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -73,16 +73,17 @@ $arrayfields=array( if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled)) { accessforbidden(); } -if ($user->societe_id > 0) +if ($user->societe_id > 0) { accessforbidden(); +} +$entity = GETPOST('entity', 'int')?GETPOST('entity', 'int'):$conf->entity; /* * Actions */ -$entity = GETPOST('entity','int')?GETPOST('entity','int'):$conf->entity; //$parameters = array('socid' => $id); //$reshook = $hookmanager->executeHooks('doActions', $parameters, $object); // Note that $object may have been modified by some hooks From 20e00ca2905f05474fb441d637c7eafb4029cdb2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 19:41:16 +0200 Subject: [PATCH 038/944] FIX if last char of customercode is accent making the truncate of first chars wrong. --- htdocs/core/lib/functions2.lib.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 649988e785b..5d0f25892c8 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -716,8 +716,8 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m global $conf,$user; if (! is_object($objsoc)) $valueforccc=$objsoc; - else if ($table == "commande_fournisseur" || $table == "facture_fourn" ) $valueforccc=$objsoc->code_fournisseur; - else $valueforccc=$objsoc->code_client; + else if ($table == "commande_fournisseur" || $table == "facture_fourn" ) $valueforccc=dol_string_unaccent($objsoc->code_fournisseur); + else $valueforccc=dol_string_unaccent($objsoc->code_client); $sharetable = $table; if ($table == 'facture' || $table == 'invoice') $sharetable = 'invoicenumber'; // for getEntity function @@ -965,6 +965,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m // Define $maskLike $maskLike = dol_string_nospecial($mask); $maskLike = str_replace("%","_",$maskLike); + // Replace protected special codes with matching number of _ as wild card caracter $maskLike = preg_replace('/\{yyyy\}/i','____',$maskLike); $maskLike = preg_replace('/\{yy\}/i','__',$maskLike); @@ -1140,7 +1141,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m // Now we replace the refclient if ($maskrefclient) { - //print "maskrefclient=".$maskrefclient." maskwithonlyymcode=".$maskwithonlyymcode." maskwithnocode=".$maskwithnocode."\n
"; + //print "maskrefclient=".$maskrefclient." maskwithonlyymcode=".$maskwithonlyymcode." maskwithnocode=".$maskwithnocode." maskrefclient_clientcode=".$maskrefclient_clientcode."\n
";exit; $maskrefclient_maskbefore='{'.$maskrefclient.'}'; $maskrefclient_maskafter=$maskrefclient_clientcode.str_pad($maskrefclient_counter,dol_strlen($maskrefclient_maskcounter),"0",STR_PAD_LEFT); $numFinal = str_replace($maskrefclient_maskbefore,$maskrefclient_maskafter,$numFinal); From 525598f6aa925b0aeb8f7c02ebdd0edaeb065bde Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 20:01:28 +0200 Subject: [PATCH 039/944] Fix scrutinizer warnings --- htdocs/adherents/class/adherent.class.php | 8 ++++---- htdocs/contact/class/contact.class.php | 2 +- htdocs/user/class/user.class.php | 1 - htdocs/user/class/usergroup.class.php | 3 +-- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 3119e044be0..1856de6182f 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -183,14 +183,14 @@ class Adherent extends CommonObject * @var integer */ public $datec; - + /** * Date modification record (tms) * * @var integer */ public $datem; - + public $datevalid; public $gender; @@ -1268,7 +1268,7 @@ class Adherent extends CommonObject $this->ref = $obj->rowid; $this->id = $obj->rowid; $this->ref_ext = $obj->ref_ext; - + $this->civility_id = $obj->civility_code; // Bad. Kept for backard compatibility $this->civility_code = $obj->civility_code; $this->civility = $obj->civility_code?($langs->trans("Civility".$obj->civility_code) != ("Civility".$obj->civility_code) ? $langs->trans("Civility".$obj->civility_code) : $obj->civility_code):''; @@ -2465,7 +2465,7 @@ class Adherent extends CommonObject * * @return array Tableau info des attributs */ - private function _load_ldap_info() + public function _load_ldap_info() { // phpcs:enable global $conf,$langs; diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index dfefb8060fe..5c4df6ab3f9 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -525,7 +525,7 @@ class Contact extends CommonObject * * @return array Tableau info des attributs */ - private function _load_ldap_info() + public function _load_ldap_info() { // phpcs:enable global $conf, $langs; diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 34651304b95..c5ac20e8cc7 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -2300,7 +2300,6 @@ class User extends CommonObject if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) $withpictoimg=0; $result=''; $label=''; - $link=''; $linkstart=''; $linkend=''; if (! empty($this->photo)) { diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php index c3fe000292c..9fb6e600a3b 100644 --- a/htdocs/user/class/usergroup.class.php +++ b/htdocs/user/class/usergroup.class.php @@ -867,7 +867,6 @@ class UserGroup extends CommonObject if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpicto) $withpicto=0; $result=''; $label=''; - $link=''; $linkstart=''; $linkend=''; $label.= '
'; $label.= '' . $langs->trans("Group") . '
'; @@ -957,7 +956,7 @@ class UserGroup extends CommonObject public function _load_ldap_info() { // phpcs:enable - global $conf,$langs; + global $conf; $info=array(); From 663998bab11a371b4162c89c2f5893a8075b352d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 20:15:04 +0200 Subject: [PATCH 040/944] Fix scrutinizer errors --- htdocs/includes/odtphp/odf.php | 2 +- htdocs/opensurvey/results.php | 4 ++-- htdocs/product/price.php | 2 +- htdocs/user/class/user.class.php | 12 ++++++------ htdocs/user/class/usergroup.class.php | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 6b3a6400bc3..21e9b56b4bb 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -745,7 +745,7 @@ IMG; private function _rrmdir($dir) { if ($handle = opendir($dir)) { - while (false !== ($file = readdir($handle))) { + while (($file = readdir($handle)) !== false) { if ($file != '.' && $file != '..') { if (is_dir($dir . '/' . $file)) { $this->_rrmdir($dir . '/' . $file); diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php index c648b15664e..1b3034bb82c 100644 --- a/htdocs/opensurvey/results.php +++ b/htdocs/opensurvey/results.php @@ -249,8 +249,8 @@ if (isset($_POST["ajoutercolonne"]) && $object->format == "D") $dateinsertion = substr("$dateinsertion", 1); - //mise a jour avec les nouveaux sujets dans la base - if (isset($erreur_ajout_date) && !$erreur_ajout_date) + // update with new topics into database + if (isset($erreur_ajout_date) && empty($erreur_ajout_date)) { $sql = 'UPDATE '.MAIN_DB_PREFIX."opensurvey_sondage"; $sql.= " SET sujet = '".$db->escape($dateinsertion)."'"; diff --git a/htdocs/product/price.php b/htdocs/product/price.php index 5b5b9ad48fa..26970f1dd13 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -153,7 +153,7 @@ if (empty($reshook)) $db->begin(); $resql = $object->update($object->id, $user); - if (! $resql || $resql < 0) + if ($resql <= 0) { $error++; setEventMessages($object->error, $object->errors, 'errors'); diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index c5ac20e8cc7..a151fdb5574 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -774,7 +774,7 @@ class User extends CommonObject dol_syslog(get_class($this)."::clearrights reset user->rights"); $this->rights=''; $this->nb_rights=0; - $this->all_permissions_are_loaded=false; + $this->all_permissions_are_loaded=0; $this->_tab_loaded=array(); } @@ -799,16 +799,16 @@ class User extends CommonObject return; } - if ($this->all_permissions_are_loaded) + if (! empty($this->all_permissions_are_loaded)) { // We already loaded all rights for this user, so we leave return; } } - // Recuperation des droits utilisateurs + recuperation des droits groupes + // Get permission of users + Get permissions of groups - // D'abord les droits utilisateurs + // First user permissions $sql = "SELECT DISTINCT r.module, r.perms, r.subperms"; $sql.= " FROM ".MAIN_DB_PREFIX."user_rights as ur"; $sql.= ", ".MAIN_DB_PREFIX."rights_def as r"; @@ -862,7 +862,7 @@ class User extends CommonObject $this->db->free($resql); } - // Maintenant les droits groupes + // Now permissions of groups $sql = "SELECT DISTINCT r.module, r.perms, r.subperms"; $sql.= " FROM ".MAIN_DB_PREFIX."usergroup_rights as gr,"; $sql.= " ".MAIN_DB_PREFIX."usergroup_user as gu,"; @@ -933,7 +933,7 @@ class User extends CommonObject } else { - // Si module defini, on le marque comme charge en cache + // If module defined, we flag it as loaded into cache $this->_tab_loaded[$moduletag]=1; } } diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php index 9fb6e600a3b..d51d82c8d13 100644 --- a/htdocs/user/class/usergroup.class.php +++ b/htdocs/user/class/usergroup.class.php @@ -552,13 +552,13 @@ class UserGroup extends CommonObject if ($moduletag && isset($this->_tab_loaded[$moduletag]) && $this->_tab_loaded[$moduletag]) { - // Le fichier de ce module est deja charge + // Rights for this module are already loaded, so we leave return; } if (! empty($this->all_permissions_are_loaded)) { - // Si les permissions ont deja ete chargees, on quitte + // We already loaded all rights for this group, so we leave return; } @@ -618,7 +618,7 @@ class UserGroup extends CommonObject } else { - // Si module defini, on le marque comme charge en cache + // If module defined, we flag it as loaded into cache $this->_tab_loaded[$moduletag]=1; } From 53923a8581e5a710a46f289b0df61769df1b4f56 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 20:21:22 +0200 Subject: [PATCH 041/944] Fix scrutinizer warnings --- htdocs/core/db/sqlite3.class.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/htdocs/core/db/sqlite3.class.php b/htdocs/core/db/sqlite3.class.php index b7d06870ff5..360b72f80d9 100644 --- a/htdocs/core/db/sqlite3.class.php +++ b/htdocs/core/db/sqlite3.class.php @@ -403,9 +403,13 @@ class DoliDBSqlite3 extends DoliDB */ public function query($query, $usesavepoint = 0, $type = 'auto') { + global $conf; + $ret=null; + $query = trim($query); - $this->error = 0; + + $this->error = ''; // Convert MySQL syntax to SQLite syntax if (preg_match('/ALTER\s+TABLE\s*(.*)\s*ADD\s+CONSTRAINT\s+(.*)\s*FOREIGN\s+KEY\s*\(([\w,\s]+)\)\s*REFERENCES\s+(\w+)\s*\(([\w,\s]+)\)/i', $query, $reg)) { @@ -449,7 +453,8 @@ class DoliDBSqlite3 extends DoliDB } //print "After convertSQLFromMysql:\n".$query."
\n"; - dol_syslog('sql='.$query, LOG_DEBUG); + if (! in_array($query, array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG); + if (empty($query)) return false; // Return false = error if empty request // Ordre SQL ne necessitant pas de connexion a une base (exemple: CREATE DATABASE) try { @@ -481,7 +486,8 @@ class DoliDBSqlite3 extends DoliDB $errormsg .= ' ('.$this->lasterrno.')'; } - dol_syslog($errormsg, LOG_ERR); + if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR); // Log of request was not yet done previously + dol_syslog(get_class($this)."::query SQL Error message: ".$errormsg, LOG_ERR); } $this->lastquery=$query; $this->_results = $ret; From bcd5949bacffd3fdd722bc268e70d3556d5419e4 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 18 Jun 2019 21:39:30 +0200 Subject: [PATCH 042/944] Responsive on project index --- htdocs/projet/index.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index fa77cb4b52c..38ef7ee7cf2 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -179,6 +179,7 @@ $sql.= $db->plimit($max, 0); $resql=$db->query($sql); if ($resql) { + print '
'; print '
'.$langs->trans("Type").''.$langs->trans("Ref").''.$langs->trans("Link").''.$langs->trans("Document").''.$langs->trans("Paid").''.$langs->trans("Debit").''.$langs->trans("Credit").''.$langs->trans("Balance").''.$langs->trans("TotalHT").''.$langs->trans("TotalTTC").''.$langs->trans("TotalVAT").''.$langs->trans("ThirdParty").''.$langs->trans("Code").''.$langs->trans("Country").''.$langs->trans("VATIntra").'
"; + + // Type + print ''.$langs->trans($data['item']).''; print dol_print_date($data['date'], 'day'); print "'.$langs->trans($data['item']).''.$data['ref'].'".$data['name']."'; + if ($data['link']) + { + print ''.($data['name'] ? $data['name'] : $data['ref']).''; + } + print "'.$data['paid'].''.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."'.(($data['amount'] > 0) ? '' : price(abs($data['amount'])))."'.price($data['amount_ht'])."'.price($data['amount_ttc'])."'.price($data['amount_vat'])."'.$data['thirdparty_name']."'.$data['thirdparty_code']."'.$data['country_code']."'.$data['vatnum']."'.(($data['amount_ttc'] > 0) ? price(abs($data['amount_ttc'])) : '')."'.(($data['amount_ttc'] > 0) ? '' : price(abs($data['amount_ttc'])))."'.price($data['balance'])."'.price($data['balance'])."
 '.price($totalDebit).''.price($totalCredit).''.price(price2num($totalDebit - $totalCredit, 'MT')).''.price($totalET).''.price($totalIT).''.price($totalVAT).''.price($totalDebit).''.price($totalCredit).''.price(price2num($totalDebit - $totalCredit, 'MT')).'
'; print ''; print ''; @@ -242,7 +243,7 @@ if ($resql) $i++; } } - print "
'.$langs->trans("LatestModifiedProjects", $max).'

"; + print "

"; } else dol_print_error($db); From 30fb89ad5e55b520588327de1bea36f93c6a8d03 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 18 Jun 2019 22:03:29 +0200 Subject: [PATCH 043/944] Responsive HRM index --- htdocs/hrm/index.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/hrm/index.php b/htdocs/hrm/index.php index 066a21ebad0..54a0837e1fe 100644 --- a/htdocs/hrm/index.php +++ b/htdocs/hrm/index.php @@ -134,6 +134,7 @@ if (! empty($conf->holiday->enabled)) { $user_id = $user->id; + print '
'; print ''; print ''; print ""; @@ -152,7 +153,7 @@ if (! empty($conf->holiday->enabled)) print ''; print ''; - print '
'.$langs->trans("Holidays").'

'; + print '

'; } elseif (! is_numeric($conf->global->HOLIDAY_HIDE_BALANCE)) { From c59de4989455dfc1e438908c4c6d2bc49950e261 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 18 Jun 2019 22:38:52 +0200 Subject: [PATCH 044/944] Translate rights --- htdocs/core/class/html.formaccounting.class.php | 2 +- htdocs/core/lib/accounting.lib.php | 2 +- htdocs/langs/en_US/admin.lang | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.formaccounting.class.php b/htdocs/core/class/html.formaccounting.class.php index 87b32902684..7d9e778ac41 100644 --- a/htdocs/core/class/html.formaccounting.class.php +++ b/htdocs/core/class/html.formaccounting.class.php @@ -21,7 +21,7 @@ /** * \file htdocs/core/class/html.formaccounting.class.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief File of class with all html predefined components */ require_once DOL_DOCUMENT_ROOT .'/core/class/html.form.class.php'; diff --git a/htdocs/core/lib/accounting.lib.php b/htdocs/core/lib/accounting.lib.php index 889d9da8a2c..e55083c4822 100644 --- a/htdocs/core/lib/accounting.lib.php +++ b/htdocs/core/lib/accounting.lib.php @@ -19,7 +19,7 @@ /** * \file htdocs/core/lib/accounting.lib.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Library of accountancy functions */ diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 5fc1994247c..5f69be03dba 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -885,6 +885,12 @@ Permission2802=Use FTP client in write mode (delete or upload files) Permission50101=Use Point of Sale Permission50201=Read transactions Permission50202=Import transactions +Permission50401=Bind products and invoices with accounting accounts +Permission50411=Read operations in ledger +Permission50412=Write/Edit operations in ledger +Permission50420=Report and export reports (turnover, balance, journals, ledger) +Permission50430=Define and close a fiscal year +Permission50440=Manage chart of accounts, setup of accountancy Permission54001=Print Permission55001=Read polls Permission55002=Create/modify polls From ce375440884d31c60a60e80e422870a966c8b47d Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 18 Jun 2019 22:41:18 +0200 Subject: [PATCH 045/944] Translate rights --- htdocs/langs/en_US/admin.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 5f69be03dba..f26088f747c 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -804,6 +804,7 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts +Permission430=Use Debug Bar Permission511=Read payments of salaries Permission512=Create/modify payments of salaries Permission514=Delete payments of salaries From 4de0a57f5cc435afb5c1192e55bac6cf5753dff1 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 18 Jun 2019 22:44:43 +0200 Subject: [PATCH 046/944] Translate rights --- htdocs/langs/en_US/admin.lang | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index f26088f747c..56a8381021e 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -883,6 +883,10 @@ Permission2503=Submit or delete documents Permission2515=Setup documents directories Permission2801=Use FTP client in read mode (browse and download only) Permission2802=Use FTP client in write mode (delete or upload files) +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 Permission50101=Use Point of Sale Permission50201=Read transactions Permission50202=Import transactions From a0ae1e96a374e4e243b73f6b4f53757b49da3d5f Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 18 Jun 2019 22:52:37 +0200 Subject: [PATCH 047/944] Translate rights --- htdocs/langs/en_US/admin.lang | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 56a8381021e..cfc244b0fe0 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -838,6 +838,12 @@ Permission1101=Read delivery orders Permission1102=Create/modify delivery orders Permission1104=Validate delivery orders Permission1109=Delete delivery orders +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 Permission1181=Read suppliers Permission1182=Read purchase orders Permission1183=Create/modify purchase orders From 42b03ec85893b0083161abcafa33b7082e118209 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 18 Jun 2019 22:53:50 +0200 Subject: [PATCH 048/944] Translate rights --- htdocs/langs/en_US/admin.lang | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index cfc244b0fe0..60a80bb15bc 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -902,6 +902,10 @@ Permission50412=Write/Edit operations in ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) Permission50430=Define and close a fiscal year Permission50440=Manage chart of accounts, setup of accountancy +Permission51001=Read assets +Permission51002=Create/Update assets +Permission51003=Delete assets +Permission51005=Setup types of asset Permission54001=Print Permission55001=Read polls Permission55002=Create/modify polls From e1c476e744da16429c72e99b80263e844b0818dc Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 05:48:04 +0200 Subject: [PATCH 049/944] Translate rights --- htdocs/langs/en_US/admin.lang | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 60a80bb15bc..0c4d7de3962 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -819,6 +819,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services +Permission650=Read bom of Bom +Permission651=Create/Update bom of Bom +Permission652=Delete bom of Bom Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations From 9234a5446872983f6cfa4bf01f46234c1b17a445 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 05:49:23 +0200 Subject: [PATCH 050/944] Translate rights --- htdocs/langs/en_US/admin.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 0c4d7de3962..820fac9e2d4 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -892,6 +892,7 @@ Permission2503=Submit or delete documents Permission2515=Setup documents directories Permission2801=Use FTP client in read mode (browse and download only) Permission2802=Use FTP client in write mode (delete or upload files) +Permission3200=Read archived events and fingerprints 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. From f91c40a45c2907c9cd927330b9e58b8f4f8466c3 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 06:00:11 +0200 Subject: [PATCH 051/944] Translate rights --- htdocs/langs/en_US/admin.lang | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 820fac9e2d4..c135fe86206 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -869,16 +869,6 @@ Permission1251=Run mass imports of external data into database (data load) Permission1321=Export customer invoices, attributes and payments Permission1322=Reopen a paid bill Permission1421=Export sales orders and attributes -Permission20001=Read leave requests (your leave and those of your subordinates) -Permission20002=Create/modify your leave requests (your leave and those of your subordinates) -Permission20003=Delete leave requests -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) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job Permission2401=Read actions (events or tasks) linked to his account Permission2402=Create/modify actions (events or tasks) linked to his account Permission2403=Delete actions (events or tasks) linked to his account @@ -893,10 +883,24 @@ Permission2515=Setup documents directories Permission2801=Use FTP client in read mode (browse and download only) Permission2802=Use FTP client in write mode (delete or upload files) Permission3200=Read archived events and fingerprints +Permission4001=See employees +Permission4002=Create employees +Permission4003=Delete employees +Permission4004=Export employees 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) +Permission20003=Delete leave requests +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) +Permission23001=Read Scheduled job +Permission23002=Create/update Scheduled job +Permission23003=Delete Scheduled job +Permission23004=Execute Scheduled job Permission50101=Use Point of Sale Permission50201=Read transactions Permission50202=Import transactions From 13836d3e219514d5aaf84c1287fd9835c65d0634 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 06:21:53 +0200 Subject: [PATCH 052/944] Missing language ley --- htdocs/core/modules/modSalaries.class.php | 2 +- htdocs/langs/en_US/salaries.lang | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/modSalaries.class.php b/htdocs/core/modules/modSalaries.class.php index e111e81ef6b..ed3aec4a48b 100644 --- a/htdocs/core/modules/modSalaries.class.php +++ b/htdocs/core/modules/modSalaries.class.php @@ -144,7 +144,7 @@ class modSalaries extends DolibarrModules $r++; $this->export_code[$r]=$this->rights_class.'_'.$r; - $this->export_label[$r]='Salaries and payments'; + $this->export_label[$r]='SalariesAndPayments'; $this->export_permission[$r]=array(array("salaries","export")); $this->export_fields_array[$r]=array('u.firstname'=>"Firstname",'u.lastname'=>"Lastname",'u.login'=>"Login",'u.salary'=>'CurrentSalary','p.datep'=>'DatePayment','p.datesp'=>'DateStartPeriod','p.dateep'=>'DateEndPeriod','p.amount'=>'AmountPayment','p.num_payment'=>'Numero','p.label'=>'Label','p.note'=>'Note'); $this->export_TypeFields_array[$r]=array('u.firstname'=>"Text",'u.lastname'=>"Text",'u.login'=>'Text','u.salary'=>"Numeric",'p.datep'=>'Date','p.datesp'=>'Date','p.dateep'=>'Date','p.amount'=>'Numeric','p.num_payment'=>'Numeric','p.label'=>'Text'); diff --git a/htdocs/langs/en_US/salaries.lang b/htdocs/langs/en_US/salaries.lang index 1e3607ce7cc..7c3c08a65bd 100644 --- a/htdocs/langs/en_US/salaries.lang +++ b/htdocs/langs/en_US/salaries.lang @@ -17,3 +17,5 @@ TJMDescription=This value is currently for information only and is not used for LastSalaries=Latest %s salary payments AllSalaries=All salary payments SalariesStatistics=Salary statistics +# Export +SalariesAndPayments=Salaries and payments From ffbb14f40ef59410e0a01efcf7f51af2fbfbe1c6 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 06:28:22 +0200 Subject: [PATCH 053/944] Missing language key --- htdocs/langs/en_US/website.lang | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index 43f82e9f1fb..2683c9a90eb 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -100,4 +100,6 @@ DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contai NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. ReplaceWebsiteContent=Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? -DeleteAlsoMedias=Delete also all medias files specific to this website? \ No newline at end of file +DeleteAlsoMedias=Delete also all medias files specific to this website? +# Export +MyWebsitePages=My website pages \ No newline at end of file From a849fbe42e812929ac43c6e90b40c506d03ac8bc Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 07:15:52 +0200 Subject: [PATCH 054/944] Nowrap on amount --- htdocs/compta/bank/treso.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/bank/treso.php b/htdocs/compta/bank/treso.php index 5a4374f47dd..1318dbd4e2d 100644 --- a/htdocs/compta/bank/treso.php +++ b/htdocs/compta/bank/treso.php @@ -293,9 +293,9 @@ if ($_REQUEST["account"] || $_REQUEST["ref"]) }else print ""; } print "".$refcomp.""; - if ($obj->total_ttc < 0) { print "".price(abs($total_ttc))." "; }; - if ($obj->total_ttc >= 0) { print " ".price($total_ttc).""; }; - print ''.price($solde).''; + if ($obj->total_ttc < 0) { print "".price(abs($total_ttc))." "; }; + if ($obj->total_ttc >= 0) { print " ".price($total_ttc).""; }; + print ''.price($solde).''; print ""; } From 9a32117b1d172f6a5e31cf086639be9e5c2cd286 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 08:43:57 +0200 Subject: [PATCH 055/944] Nowrap on amount --- htdocs/compta/resultat/index.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php index addc56a240b..70129e80403 100644 --- a/htdocs/compta/resultat/index.php +++ b/htdocs/compta/resultat/index.php @@ -943,7 +943,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++) } print ""; - print ' '; + print ' '; if ($modecompta == 'BOOKKEEPING') { if (isset($encaiss[$case])) @@ -978,8 +978,8 @@ print ''; for ($annee = $year_start ; $annee <= $year_end ; $annee++) { $nbcols+=2; - print ''.(isset($totsorties[$annee])?price(price2num($totsorties[$annee], 'MT')):' ').''; - print ''.(isset($totentrees[$annee])?price(price2num($totentrees[$annee], 'MT')):' ').''; + print ''.(isset($totsorties[$annee])?price(price2num($totsorties[$annee], 'MT')):' ').''; + print ''.(isset($totentrees[$annee])?price(price2num($totentrees[$annee], 'MT')):' ').''; } print "\n"; From b8311da26212e95c0a727e542dc2a7e60c8cbc5b Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 08:56:45 +0200 Subject: [PATCH 056/944] Nowrap on amount --- htdocs/accountancy/customer/index.php | 20 ++++++++++---------- htdocs/accountancy/customer/lines.php | 2 +- htdocs/accountancy/customer/list.php | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 0131f51d515..f063f832f54 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -211,10 +211,10 @@ if ($resql) { else print $row[1]; print ''; for($i = 2; $i <= 12; $i ++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; - print '' . price($row[14]) . ''; + print '' . price($row[13]) . ''; + print '' . price($row[14]) . ''; print ''; } $db->free($resql); @@ -289,10 +289,10 @@ if ($resql) { print ''; for($i = 2; $i <= 12; $i++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; - print '' . price($row[14]) . ''; + print '' . price($row[13]) . ''; + print '' . price($row[14]) . ''; print ''; } $db->free($resql); @@ -348,9 +348,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. while ($row = $db->fetch_row($resql)) { print '' . $row[0] . ''; for($i = 1; $i <= 12; $i ++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; + print '' . price($row[13]) . ''; print ''; } $db->free($resql); @@ -401,9 +401,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print '' . $row[0] . ''; for($i = 1; $i <= 12; $i ++) { - print '' . price(price2num($row[$i])) . ''; + print '' . price(price2num($row[$i])) . ''; } - print '' . price(price2num($row[13])) . ''; + print '' . price(price2num($row[13])) . ''; print ''; } $db->free($resql); diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index 19e85cdb651..ea174638a2a 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -385,7 +385,7 @@ if ($result) { print $form->textwithtooltip(dol_trunc($text, $trunclength), $objp->description); print ''; - print '' . price($objp->total_ht) . ''; + print '' . price($objp->total_ht) . ''; print '' . vatrate($objp->tva_tx.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')) . ''; diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index ed1c40a6ad7..5314099db1f 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -503,7 +503,7 @@ if ($result) { print $form->textwithtooltip(dol_trunc($text, $trunclength), $objp->description); print ''; - print ''; + print ''; print price($objp->total_ht); print ''; From ec7523d3d2906975fab9e1cf662ff3eae3c074ee Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 09:01:37 +0200 Subject: [PATCH 057/944] Nowrap on amount --- htdocs/accountancy/expensereport/index.php | 16 ++++++++-------- htdocs/accountancy/supplier/index.php | 16 ++++++++-------- htdocs/accountancy/supplier/lines.php | 2 +- htdocs/accountancy/supplier/list.php | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/htdocs/accountancy/expensereport/index.php b/htdocs/accountancy/expensereport/index.php index a5026f920a0..4fe2ee3120b 100644 --- a/htdocs/accountancy/expensereport/index.php +++ b/htdocs/accountancy/expensereport/index.php @@ -203,10 +203,10 @@ if ($resql) { else print $row[1]; print ''; for($i = 2; $i <= 12; $i ++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; - print '' . price($row[14]) . ''; + print '' . price($row[13]) . ''; + print '' . price($row[14]) . ''; print ''; } $db->free($resql); @@ -276,10 +276,10 @@ if ($resql) { else print $row[1]; print ''; for($i = 2; $i <= 12; $i ++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; - print '' . price($row[14]) . ''; + print '' . price($row[13]) . ''; + print '' . price($row[14]) . ''; print ''; } $db->free($resql); @@ -331,9 +331,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. while ($row = $db->fetch_row($resql)) { print '' . $row[0] . ''; for($i = 1; $i <= 12; $i ++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; + print '' . price($row[13]) . ''; print ''; } diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index ca60735fcf0..bc632118da7 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -203,10 +203,10 @@ if ($resql) { else print $row[1]; print ''; for($i = 2; $i <= 12; $i ++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; - print '' . price($row[14]) . ''; + print '' . price($row[13]) . ''; + print '' . price($row[14]) . ''; print ''; } $db->free($resql); @@ -274,10 +274,10 @@ if ($resql) { else print $row[1]; print ''; for($i = 2; $i <= 12; $i++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; - print '' . price($row[14]) . ''; + print '' . price($row[13]) . ''; + print '' . price($row[14]) . ''; print ''; } $db->free($resql); @@ -329,9 +329,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. while ($row = $db->fetch_row($resql)) { print '' . $row[0] . ''; for($i = 1; $i <= 12; $i ++) { - print '' . price($row[$i]) . ''; + print '' . price($row[$i]) . ''; } - print '' . price($row[13]) . ''; + print '' . price($row[13]) . ''; print ''; } $db->free($resql); diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 352a73200fb..a67386f6fbd 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -396,7 +396,7 @@ if ($result) { print $form->textwithtooltip(dol_trunc($text, $trunclength), $objp->description); print ''; - print '' . price($objp->total_ht) . ''; + print '' . price($objp->total_ht) . ''; print '' . vatrate($objp->tva_tx.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')) . ''; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index fc8cc10fec4..17284513650 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -491,7 +491,7 @@ if ($result) { print $form->textwithtooltip(dol_trunc($text, $trunclength), $objp->description); print ''; - print ''; + print ''; print price($objp->total_ht); print ''; From e44b9113b7410a71ca423c1830f05c4ca3208d98 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 09:01:57 +0200 Subject: [PATCH 058/944] Nowrap on amount --- htdocs/accountancy/expensereport/lines.php | 2 +- htdocs/accountancy/expensereport/list.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/expensereport/lines.php b/htdocs/accountancy/expensereport/lines.php index 508dfb7136e..d15ef52ad39 100644 --- a/htdocs/accountancy/expensereport/lines.php +++ b/htdocs/accountancy/expensereport/lines.php @@ -319,7 +319,7 @@ if ($result) { print $form->textwithtooltip(dol_trunc($text, $trunclength), $objp->comments); print ''; - print '' . price($objp->total_ht) . ''; + print '' . price($objp->total_ht) . ''; print '' . vatrate($objp->tva_tx.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')) . ''; diff --git a/htdocs/accountancy/expensereport/list.php b/htdocs/accountancy/expensereport/list.php index 9f70d175d40..60b24638775 100644 --- a/htdocs/accountancy/expensereport/list.php +++ b/htdocs/accountancy/expensereport/list.php @@ -376,7 +376,7 @@ if ($result) { print $form->textwithtooltip(dol_trunc($text, $trunclength), $objp->comments); print ''; - print ''; + print ''; print price($objp->price); print ''; From 9bde7c5229fc3584af4853e4f9707dd7751b238f Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 19 Jun 2019 09:21:18 +0200 Subject: [PATCH 059/944] Nowrap on amount --- htdocs/core/boxes/box_activity.php | 2 +- htdocs/core/boxes/box_commandes.php | 2 +- htdocs/core/boxes/box_factures_fourn_imp.php | 2 +- htdocs/core/boxes/box_factures_imp.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/boxes/box_activity.php b/htdocs/core/boxes/box_activity.php index 300040639a8..995ba93fb64 100644 --- a/htdocs/core/boxes/box_activity.php +++ b/htdocs/core/boxes/box_activity.php @@ -422,7 +422,7 @@ class box_activity extends ModeleBoxes ); $totalnb += $data[$j]->nb; $this->info_box_contents[$line][3] = array( - 'td' => 'class="right"', + 'td' => 'class="nowrap right"', 'text' => price($data[$j]->Mnttot, 1, $langs, 0, 0, -1, $conf->currency), ); $this->info_box_contents[$line][4] = array( diff --git a/htdocs/core/boxes/box_commandes.php b/htdocs/core/boxes/box_commandes.php index 8575e739946..956e73b4acf 100644 --- a/htdocs/core/boxes/box_commandes.php +++ b/htdocs/core/boxes/box_commandes.php @@ -146,7 +146,7 @@ class box_commandes extends ModeleBoxes ); $this->info_box_contents[$line][] = array( - 'td' => 'class="right"', + 'td' => 'class="nowrap right"', 'text' => price($objp->total_ht, 0, $langs, 0, -1, -1, $conf->currency), ); diff --git a/htdocs/core/boxes/box_factures_fourn_imp.php b/htdocs/core/boxes/box_factures_fourn_imp.php index 09de3b874e3..74f8cbc6b64 100644 --- a/htdocs/core/boxes/box_factures_fourn_imp.php +++ b/htdocs/core/boxes/box_factures_fourn_imp.php @@ -151,7 +151,7 @@ class box_factures_fourn_imp extends ModeleBoxes ); $this->info_box_contents[$line][] = array( - 'td' => 'class="right"', + 'td' => 'class="nowrap right"', 'text' => price($objp->total_ht, 0, $langs, 0, -1, -1, $conf->currency), ); diff --git a/htdocs/core/boxes/box_factures_imp.php b/htdocs/core/boxes/box_factures_imp.php index fd85f136f96..a0692c791b2 100644 --- a/htdocs/core/boxes/box_factures_imp.php +++ b/htdocs/core/boxes/box_factures_imp.php @@ -161,7 +161,7 @@ class box_factures_imp extends ModeleBoxes ); $this->info_box_contents[$line][] = array( - 'td' => 'class="right"', + 'td' => 'class="nowrap right"', 'text' => price($objp->total_ht, 0, $langs, 0, -1, -1, $conf->currency), ); From 7331e43db8e12ac4ee3ae0f2602c39053a1eb696 Mon Sep 17 00:00:00 2001 From: gauthier Date: Wed, 19 Jun 2019 10:19:33 +0200 Subject: [PATCH 060/944] FIX : we need to fetch fourn invoice with ref in current entity --- htdocs/fourn/class/fournisseur.facture.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 3a27690e7ac..d7ded8546f1 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -504,7 +504,7 @@ class FactureFournisseur extends CommonInvoice */ public function fetch($id='',$ref='') { - global $langs; + global $langs, $conf; $sql = "SELECT"; $sql.= " t.rowid,"; @@ -555,7 +555,7 @@ class FactureFournisseur extends CommonInvoice $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as p ON t.fk_mode_reglement = p.id"; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON t.fk_incoterms = i.rowid'; if ($id) $sql.= " WHERE t.rowid=".$id; - if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."'"; + if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."' AND t.entity = ".$conf->entity; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $resql=$this->db->query($sql); From 3ad13adf31d6925760587c685f79bd6e694e90fd Mon Sep 17 00:00:00 2001 From: gauthier Date: Wed, 19 Jun 2019 10:43:42 +0200 Subject: [PATCH 061/944] FIX : better syntax --- htdocs/fourn/class/fournisseur.facture.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index d7ded8546f1..4f9cd93021f 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -504,7 +504,7 @@ class FactureFournisseur extends CommonInvoice */ public function fetch($id='',$ref='') { - global $langs, $conf; + global $langs; $sql = "SELECT"; $sql.= " t.rowid,"; @@ -555,7 +555,7 @@ class FactureFournisseur extends CommonInvoice $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as p ON t.fk_mode_reglement = p.id"; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON t.fk_incoterms = i.rowid'; if ($id) $sql.= " WHERE t.rowid=".$id; - if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."' AND t.entity = ".$conf->entity; + if ($ref) $sql.= " WHERE t.ref='".$this->db->escape($ref)."' AND t.entity IN (".getEntity('supplier_invoice').")"; dol_syslog(get_class($this)."::fetch", LOG_DEBUG); $resql=$this->db->query($sql); From 7afcdb46eb9fe7e989b1cf884f157c5e6615f930 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 12:10:05 +0200 Subject: [PATCH 062/944] Debug module ticket --- htdocs/admin/ticket.php | 2 +- htdocs/public/ticket/index.php | 34 +++++++++++++++++++--------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/htdocs/admin/ticket.php b/htdocs/admin/ticket.php index 331d7e992ba..8cb1e85afe4 100644 --- a/htdocs/admin/ticket.php +++ b/htdocs/admin/ticket.php @@ -190,7 +190,7 @@ $head = ticketAdminPrepareHead(); dol_fiche_head($head, 'settings', $langs->trans("Module56000Name"), -1, "ticket"); -print ''.$langs->trans("TicketSetupDictionaries") . ' : ' . dol_buildpath('/admin/dict.php', 2) . '
'; +print ''.$langs->trans("TicketSetupDictionaries") . ' : '.$langs->trans("ClickHereToGoTo", $langs->transnoentitiesnoconv("DictionarySetup")).'
'; dol_fiche_end(); diff --git a/htdocs/public/ticket/index.php b/htdocs/public/ticket/index.php index 05b992b3e40..a3e4d63a4bc 100644 --- a/htdocs/public/ticket/index.php +++ b/htdocs/public/ticket/index.php @@ -1,5 +1,6 @@ +/* Copyright (C) - 2013-2016 Jean-François FERRY + * Copyright (C) - 2019 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 @@ -18,7 +19,7 @@ /** * \file htdocs/public/ticket/index.php * \ingroup ticket - * \brief Public file to add and manage ticket + * \brief Public page to add and manage ticket */ if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); @@ -56,21 +57,24 @@ $formticket = new FormTicket($db); $arrayofjs = array(); $arrayofcss = array('/ticket/css/styles.css.php'); + +if (empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) +{ + print $langs->trans('TicketPublicInterfaceForbidden'); + exit; +} + llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); -if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) { - print '
' . $langs->trans('TicketPublicInterfaceForbidden') . '
'; -} else { - print '
'; - print '

' . ($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")) . '

'; - print ''; - print '
'; -} +print '
'; +print '

' . ($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")) . '

'; +print ''; +print '
'; // End of page htmlPrintOnlinePaymentFooter($mysoc, $langs, 1, $suffix, $object); From f9cc120d7569ae08e698d4e536e73eb8180c6b94 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 12:53:28 +0200 Subject: [PATCH 063/944] Debug module ticket --- htdocs/core/class/dolgraph.class.php | 2 +- htdocs/core/modules/modTicket.class.php | 1 + htdocs/langs/en_US/ticket.lang | 1 + htdocs/ticket/index.php | 71 +++++++++++++------------ 4 files changed, 39 insertions(+), 36 deletions(-) diff --git a/htdocs/core/class/dolgraph.class.php b/htdocs/core/class/dolgraph.class.php index d70a63293c5..5cec0232603 100644 --- a/htdocs/core/class/dolgraph.class.php +++ b/htdocs/core/class/dolgraph.class.php @@ -229,7 +229,7 @@ class DolGraph /** * Set width * - * @param int $w Width + * @param int|string $w Width (Example: 320 or '100%') * @return boolean|null True */ public function SetWidth($w) diff --git a/htdocs/core/modules/modTicket.class.php b/htdocs/core/modules/modTicket.class.php index 9436bfa84e8..e16b6e87fd0 100644 --- a/htdocs/core/modules/modTicket.class.php +++ b/htdocs/core/modules/modTicket.class.php @@ -99,6 +99,7 @@ class modTicket extends DolibarrModules $this->conflictwith = array(); // List of module class names as string this module is in conflict with $this->phpmin = array(5,4); // Minimum version of PHP required by module $this->langfiles = array("ticket"); + // Constants // List of particular constants to add when module is enabled // (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang index 6a2d7e89cb7..70bd8220af0 100644 --- a/htdocs/langs/en_US/ticket.lang +++ b/htdocs/langs/en_US/ticket.lang @@ -133,6 +133,7 @@ TicketsIndex=Ticket - home TicketList=List of tickets TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user NoTicketsFound=No ticket found +NoUnreadTicketsFound=No unread ticket found TicketViewAllTickets=View all tickets TicketViewNonClosedOnly=View only open tickets TicketStatByStatus=Tickets by status diff --git a/htdocs/ticket/index.php b/htdocs/ticket/index.php index 824b1f1833e..e7f7c6bff2f 100644 --- a/htdocs/ticket/index.php +++ b/htdocs/ticket/index.php @@ -24,6 +24,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT . '/ticket/class/ticketstats.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/dolgraph.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; // Load translation files required by the page $langs->loadLangs(array('companies', 'other', 'ticket')); @@ -102,8 +103,8 @@ if (empty($endyear)) { } $startyear = $endyear - 1; -$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '256' : '320'; -$HEIGHT = '192'; +$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '100%' : '80%'; +$HEIGHT = '228'; print '
'; @@ -120,16 +121,14 @@ $tick = array( 'closed' => 0, 'deleted' => 0, ); -$total = 0; + $sql = "SELECT t.fk_statut, COUNT(t.fk_statut) as nb"; $sql .= " FROM " . MAIN_DB_PREFIX . "ticket as t"; if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", " . MAIN_DB_PREFIX . "societe_commerciaux as sc"; } - -$sql .= ' WHERE t.entity IN (' . getEntity('ticket', 1) . ')'; -$sql .= " AND t.fk_statut IS NOT NULL"; -$sql .= " AND date_format(datec,'%Y') = '" . $endyear . "'"; +$sql .= ' WHERE t.entity IN (' . getEntity('ticket') . ')'; +$sql .= dolSqlDateFilter('datec', 0, 0, $endyear); if (!$user->rights->societe->client->voir && !$socid) { $sql .= " AND t.fk_soc = sc.fk_soc AND sc.fk_user = " . $user->id; } @@ -149,44 +148,41 @@ $result = $db->query($sql); if ($result) { while ($objp = $db->fetch_object($result)) { $found = 0; - if ($objp->fk_statut == 0) { + if ($objp->fk_statut == Ticket::STATUS_NOT_READ) { $tick['unread'] = $objp->nb; } - if ($objp->fk_statut == 1) { + if ($objp->fk_statut == Ticket::STATUS_READ) { $tick['read'] = $objp->nb; } - if ($objp->fk_statut == 3) { - $tick['answered'] = $objp->nb; + if ($objp->fk_statut == Ticket::STATUS_NEED_MORE_INFO) { + $tick['needmoreinfo'] = $objp->nb; } - if ($objp->fk_statut == 4) { + if ($objp->fk_statut == Ticket::STATUS_ASSIGNED) { $tick['assigned'] = $objp->nb; } - if ($objp->fk_statut == 5) { + if ($objp->fk_statut == Ticket::STATUS_IN_PROGRESS) { $tick['inprogress'] = $objp->nb; } - if ($objp->fk_statut == 6) { + if ($objp->fk_statut == Ticket::STATUS_WAITING) { $tick['waiting'] = $objp->nb; } - if ($objp->fk_statut == 8) { + if ($objp->fk_statut == Ticket::STATUS_CLOSED) { $tick['closed'] = $objp->nb; } - if ($objp->fk_statut == 9) { - $tick['deleted'] = $objp->nb; + if ($objp->fk_statut == Ticket::STATUS_CANCELED) { + $tick['canceled'] = $objp->nb; } } - if ((round($tick['unread']) ? 1 : 0) +(round($tick['read']) ? 1 : 0) +(round($tick['answered']) ? 1 : 0) +(round($tick['assigned']) ? 1 : 0) +(round($tick['inprogress']) ? 1 : 0) +(round($tick['waiting']) ? 1 : 0) +(round($tick['closed']) ? 1 : 0) +(round($tick['deleted']) ? 1 : 0) >= 2 - ) { - $dataseries = array(); - $dataseries[] = array('label' => $langs->trans("Unread"), 'data' => round($tick['unread'])); - $dataseries[] = array('label' => $langs->trans("Read"), 'data' => round($tick['read'])); - $dataseries[] = array('label' => $langs->trans("Answered"), 'data' => round($tick['answered'])); - $dataseries[] = array('label' => $langs->trans("Assigned"), 'data' => round($tick['assigned'])); - $dataseries[] = array('label' => $langs->trans("InProgress"), 'data' => round($tick['inprogress'])); - $dataseries[] = array('label' => $langs->trans("Waiting"), 'data' => round($tick['waiting'])); - $dataseries[] = array('label' => $langs->trans("Closed"), 'data' => round($tick['closed'])); - $dataseries[] = array('label' => $langs->trans("Deleted"), 'data' => round($tick['deleted'])); - } + $dataseries = array(); + $dataseries[] = array('label' => $langs->trans("Unread"), 'data' => round($tick['unread'])); + $dataseries[] = array('label' => $langs->trans("Read"), 'data' => round($tick['read'])); + $dataseries[] = array('label' => $langs->trans("NeedMoreInformation"), 'data' => round($tick['needmoreinfo'])); + $dataseries[] = array('label' => $langs->trans("Assigned"), 'data' => round($tick['assigned'])); + $dataseries[] = array('label' => $langs->trans("InProgress"), 'data' => round($tick['inprogress'])); + $dataseries[] = array('label' => $langs->trans("Waiting"), 'data' => round($tick['waiting'])); + $dataseries[] = array('label' => $langs->trans("Closed"), 'data' => round($tick['closed'])); + $dataseries[] = array('label' => $langs->trans("Canceled"), 'data' => round($tick['canceled'])); } else { dol_print_error($db); } @@ -210,11 +206,17 @@ $stringtoshow .= '
'; print ''; print ''; -print ''; print '
' . $langs->trans("Statistics") . ' ' . img_picto('', 'filter.png', 'id="idsubimgDOLUSERCOOKIE_ticket_by_status" class="linkobject"') . '
'; +print '
'; +print $stringtoshow; // don't display graph if no series if (! empty($dataseries) && count($dataseries) > 1) { - $data = array(); + $totalnb=0; + foreach ($dataseries as $key => $value) { + $totalnb += $value['data']; + } + + $data = array(); foreach ($dataseries as $key => $value) { $data[] = array($value['label'], $value['data']); } @@ -244,10 +246,9 @@ if (! empty($dataseries) && count($dataseries) > 1) { //$px1->SetTitle($langs->trans("TicketStatByStatus")); $px1->draw($filenamenb, $fileurlnb); - print $px1->show(); + print $px1->show($totalnb?0:1); } } -print $stringtoshow; print '
'; @@ -303,7 +304,7 @@ if ($result) { print '
'; print ''; print ''; - print ''; + print ''; print ''; if ($num > 0) { @@ -359,7 +360,7 @@ if ($result) { $db->free(); } else { - print ''; + print ''; } print "
' . $transRecordedType . ''.$langs->trans("FullList").''.$langs->trans("FullList").'
' . $langs->trans('NoTicketsFound') . '
' . $langs->trans('NoUnreadTicketsFound') . '
"; From a11c816a176da9b0fd930d3767208ad60aff4377 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 14:24:48 +0200 Subject: [PATCH 064/944] Fix tooltip --- htdocs/compta/facture/card.php | 3 ++- htdocs/fourn/facture/card.php | 3 ++- htdocs/langs/en_US/bills.lang | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 0f2669014a8..10de9581dfe 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -3444,6 +3444,7 @@ elseif ($id > 0 || ! empty($ref)) elseif($object->type == Facture::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote'; elseif($object->type == Facture::TYPE_DEPOSIT) $type_fac = 'Deposit'; $text = $langs->trans('ConfirmConvertToReduc', strtolower($langs->transnoentities($type_fac))); + $text.='
'.$langs->trans('ConfirmConvertToReduc2'); $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2); } @@ -4746,7 +4747,7 @@ elseif ($id > 0 || ! empty($ref)) } // For credit note if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercancreate && $object->getSommePaiement() == 0) { - print ''; + print ''; } // For deposit invoice if ($object->type == Facture::TYPE_DEPOSIT && $usercancreate && $object->statut > 0 && empty($discount->id)) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 1eb38cec66c..c25b0afa15b 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -2221,6 +2221,7 @@ else elseif($object->type == FactureFournisseur::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote'; elseif($object->type == FactureFournisseur::TYPE_DEPOSIT) $type_fac = 'Deposit'; $text = $langs->trans('ConfirmConvertToReducSupplier', strtolower($langs->transnoentities($type_fac))); + $text .= '
'.$langs->trans('ConfirmConvertToReducSupplier2'); $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2); } @@ -3107,7 +3108,7 @@ else } // For credit note if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $user->rights->fournisseur->facture->creer && $object->getSommePaiement() == 0) { - print ''; + print ''; } // For deposit invoice if ($object->type == FactureFournisseur::TYPE_DEPOSIT && $object->paye == 1 && $resteapayer == 0 && $user->rights->fournisseur->facture->creer && empty($discount->id)) diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 17882b3b270..9a86e941035 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -66,8 +66,10 @@ paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment ConfirmDeletePayment=Are you sure you want to delete this payment? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?
The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?
The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount? +ConfirmConvertToReduc2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount? +ConfirmConvertToReducSupplier2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. SupplierPayments=Vendor payments ReceivedPayments=Received payments ReceivedCustomersPayments=Payments received from customers From 04f2fb604f680575acfcacd0e0f179cdbfb5b97a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 15:48:04 +0200 Subject: [PATCH 065/944] Fix duplicate 'option_' in prefix --- htdocs/core/class/extrafields.class.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 8e0cf0946dc..eeb653aec8a 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -972,7 +972,10 @@ class ExtraFields $out=''; - $keyprefix = $keyprefix.'options_'; // Because we work on extrafields + if (! preg_match('/options_$/', $keyprefix)) // Because we work on extrafields, we add 'options_' to prefix if not already added + { + $keyprefix = $keyprefix.'options_'; + } if (! empty($extrafieldsobjectkey)) { From daa8b43732d43ec6f391e601855737c691079541 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 15:51:48 +0200 Subject: [PATCH 066/944] css --- htdocs/compta/facture/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index b6beba5e12e..6c325c865a9 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -1075,7 +1075,7 @@ if ($resql) // Town if (! empty($arrayfields['s.town']['checked'])) { - print ''; + print ''; print $obj->town; print ''; if (! $i) $totalarray['nbfield']++; @@ -1083,7 +1083,7 @@ if ($resql) // Zip if (! empty($arrayfields['s.zip']['checked'])) { - print ''; + print ''; print $obj->zip; print ''; if (! $i) $totalarray['nbfield']++; From c3b8582076b7144cf8d23bb07189a39cb1918263 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 15:55:18 +0200 Subject: [PATCH 067/944] Fix use of deprecated function --- 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 d754b8d3962..27346a15f5e 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -536,7 +536,7 @@ class Stripe extends CommonObject //$a = \Stripe\Stripe::getApiKey(); //var_dump($a);var_dump($stripeacc);exit; - dol_syslog("Try to create card dataforcard = ".dol_json_encode($dataforcard)); + dol_syslog("Try to create card dataforcard = ".json_encode($dataforcard)); try { if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage $card = $cu->sources->create($dataforcard); From 5b5028254f8d33215d96c60fdb83a9c526de1f3f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 16:30:03 +0200 Subject: [PATCH 068/944] Fix label --- htdocs/langs/en_US/accountancy.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 449a30acbbb..91234f72aef 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -291,7 +291,7 @@ Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable -Modelcsv_FEC=Export FEC (Art. L47 A) +Modelcsv_FEC=Export FEC Modelcsv_Sage50_Swiss=Export for Sage 50 Switzerland ChartofaccountsId=Chart of accounts Id From 7c4cddf28d3aacf718d226078b3d23dfcb78fc07 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 16:34:01 +0200 Subject: [PATCH 069/944] Fix missing trad --- htdocs/langs/en_US/accountancy.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 91234f72aef..7797fdef7b1 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -336,7 +336,7 @@ UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to ## Import ImportAccountingEntries=Accounting entries - +DateExport=Date export WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. ExpenseReportJournal=Expense Report Journal InventoryJournal=Inventory Journal From 31a53b72aec1bcd2b6524e17bd922a8eda05f028 Mon Sep 17 00:00:00 2001 From: John Botella Date: Wed, 19 Jun 2019 16:55:45 +0200 Subject: [PATCH 070/944] FIX var name --- htdocs/core/actions_massactions.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 34ba465ebff..07766ac7fef 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -209,7 +209,7 @@ if (! $error && $massaction == 'confirm_presend') $resaction.='
'.$langs->trans('ErrorOnlyProposalNotDraftCanBeSentInMassAction',$objectobj->ref).'

'; continue; // Payment done or started or canceled } - if ($objectclass == 'Commande' && $objectoj->statut == Commande::STATUS_DRAFT) + if ($objectclass == 'Commande' && $objectobj->statut == Commande::STATUS_DRAFT) { $langs->load("errors"); $nbignored++; From d6b6f77e74beeab3cb41cbdbbd59b255e4c0614c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 22:05:38 +0200 Subject: [PATCH 071/944] Fix support domains with 3 levels --- htdocs/core/lib/geturl.lib.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/geturl.lib.php b/htdocs/core/lib/geturl.lib.php index 714bc26b7da..83e483b3e97 100644 --- a/htdocs/core/lib/geturl.lib.php +++ b/htdocs/core/lib/geturl.lib.php @@ -172,14 +172,21 @@ function getURLContent($url, $postorget = 'GET', $param = '', $followlocation = * For example: https://www.abc.mydomain.com/dir/page.html return 'mydomain' * * @param string $url Full URL. - * @param int $mode 0=return 'mydomain', 1=return 'mydomain.com' + * @param int $mode 0=return 'mydomain', 1=return 'mydomain.com', 2=return 'abc.mydomain.com' * @return string Returns domaine name */ function getDomainFromURL($url, $mode = 0) { $tmpdomain = preg_replace('/^https?:\/\//i', '', $url); // Remove http(s):// $tmpdomain = preg_replace('/\/.*$/i', '', $tmpdomain); // Remove part after domain - $tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)$/', '\1.\2', $tmpdomain); // Remove part www.abc before domain name + if ($mode == 2) + { + $tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)\.([^\.]+)$/', '\1.\2.\3', $tmpdomain); // Remove part 'www.' before 'abc.mydomain.com' + } + else + { + $tmpdomain = preg_replace('/^.*\.([^\.]+)\.([^\.]+)$/', '\1.\2', $tmpdomain); // Remove part 'www.abc.' before 'mydomain.com' + } if (empty($mode)) { $tmpdomain = preg_replace('/\.[^\.]+$/', '', $tmpdomain); // Remove first level domain (.com, .net, ...) From bf71731fc945afdf66216daf3e37359813638d15 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 22:28:33 +0200 Subject: [PATCH 072/944] Fix phpcs --- htdocs/adherents/class/adherent.class.php | 1 + htdocs/contact/class/contact.class.php | 1 + 2 files changed, 2 insertions(+) diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 1856de6182f..c1bb04d90fc 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -2460,6 +2460,7 @@ class Adherent extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Initialise tableau info (tableau des attributs LDAP) * diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 5c4df6ab3f9..de9494fca8b 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -520,6 +520,7 @@ class Contact extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Initialise tableau info (tableau des attributs LDAP) * From e060af5c977b9a37cf6c054e77f483d617f583c5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 20 Jun 2019 02:50:23 +0200 Subject: [PATCH 073/944] Update treso.php --- htdocs/compta/bank/treso.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/treso.php b/htdocs/compta/bank/treso.php index 1318dbd4e2d..f17e622210e 100644 --- a/htdocs/compta/bank/treso.php +++ b/htdocs/compta/bank/treso.php @@ -293,8 +293,8 @@ if ($_REQUEST["account"] || $_REQUEST["ref"]) }else print ""; } print "".$refcomp.""; - if ($obj->total_ttc < 0) { print "".price(abs($total_ttc))." "; }; - if ($obj->total_ttc >= 0) { print " ".price($total_ttc).""; }; + if ($obj->total_ttc < 0) { print ''.price(abs($total_ttc))." "; }; + if ($obj->total_ttc >= 0) { print ' '.price($total_ttc).""; }; print ''.price($solde).''; print ""; } From 6d38f5ec9cb1fe927106243ab6463c3a39e6d630 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 20 Jun 2019 02:56:44 +0200 Subject: [PATCH 074/944] FIX #11369 --- htdocs/bom/class/bom.class.php | 16 ++++++++-------- .../class/emailcollector.class.php | 6 +++--- .../class/emailcollectoraction.class.php | 8 ++++---- .../class/emailcollectorfilter.class.php | 8 ++++---- .../template/class/myobject.class.php | 6 +++--- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 731136fb7f4..99331de8c62 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -165,7 +165,7 @@ class BOM extends CommonObject */ public function __construct(DoliDB $db) { - global $conf, $langs, $user; + global $conf, $langs; $this->db = $db; @@ -184,11 +184,11 @@ class BOM extends CommonObject // Translate some data of arrayofkeyval foreach($this->fields as $key => $val) { - if (is_array($this->fields['status']['arrayofkeyval'])) + if (is_array($this->fields[$key]['arrayofkeyval'])) { - foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2) + foreach($this->fields[$key]['arrayofkeyval'] as $key2 => $val2) { - $this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2); + $this->fields[$key]['arrayofkeyval'][$key2]=$langs->trans($val2); } } } @@ -1066,7 +1066,7 @@ class BOMLine extends CommonObject */ public function __construct(DoliDB $db) { - global $conf, $langs, $user; + global $conf, $langs; $this->db = $db; @@ -1085,11 +1085,11 @@ class BOMLine extends CommonObject // Translate some data of arrayofkeyval foreach($this->fields as $key => $val) { - if (is_array($this->fields['status']['arrayofkeyval'])) + if (is_array($this->fields[$key]['arrayofkeyval'])) { - foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2) + foreach($this->fields[$key]['arrayofkeyval'] as $key2 => $val2) { - $this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2); + $this->fields[$key]['arrayofkeyval'][$key2]=$langs->trans($val2); } } } diff --git a/htdocs/emailcollector/class/emailcollector.class.php b/htdocs/emailcollector/class/emailcollector.class.php index f60051df970..ff4be06fcab 100644 --- a/htdocs/emailcollector/class/emailcollector.class.php +++ b/htdocs/emailcollector/class/emailcollector.class.php @@ -205,11 +205,11 @@ class EmailCollector extends CommonObject // Translate some data of arrayofkeyval foreach($this->fields as $key => $val) { - if (is_array($this->fields['status']['arrayofkeyval'])) + if (is_array($this->fields[$key]['arrayofkeyval'])) { - foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2) + foreach($this->fields[$key]['arrayofkeyval'] as $key2 => $val2) { - $this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2); + $this->fields[$key]['arrayofkeyval'][$key2]=$langs->trans($val2); } } } diff --git a/htdocs/emailcollector/class/emailcollectoraction.class.php b/htdocs/emailcollector/class/emailcollectoraction.class.php index 11ccfbc858e..ca710f99216 100644 --- a/htdocs/emailcollector/class/emailcollectoraction.class.php +++ b/htdocs/emailcollector/class/emailcollectoraction.class.php @@ -145,7 +145,7 @@ class EmailCollectorAction extends CommonObject */ public function __construct(DoliDB $db) { - global $conf, $langs, $user; + global $conf, $langs; $this->db = $db; @@ -164,11 +164,11 @@ class EmailCollectorAction extends CommonObject // Translate some data of arrayofkeyval foreach($this->fields as $key => $val) { - if (is_array($this->fields['status']['arrayofkeyval'])) + if (is_array($this->fields[$key]['arrayofkeyval'])) { - foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2) + foreach($this->fields[$key]['arrayofkeyval'] as $key2 => $val2) { - $this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2); + $this->fields[$key]['arrayofkeyval'][$key2]=$langs->trans($val2); } } } diff --git a/htdocs/emailcollector/class/emailcollectorfilter.class.php b/htdocs/emailcollector/class/emailcollectorfilter.class.php index f93ac51f673..5c7c7184ffc 100644 --- a/htdocs/emailcollector/class/emailcollectorfilter.class.php +++ b/htdocs/emailcollector/class/emailcollectorfilter.class.php @@ -114,7 +114,7 @@ class EmailCollectorFilter extends CommonObject */ public function __construct(DoliDB $db) { - global $conf, $langs, $user; + global $conf, $langs; $this->db = $db; @@ -133,11 +133,11 @@ class EmailCollectorFilter extends CommonObject // Translate some data of arrayofkeyval foreach($this->fields as $key => $val) { - if (is_array($this->fields['status']['arrayofkeyval'])) + if (is_array($this->fields[$key]['arrayofkeyval'])) { - foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2) + foreach($this->fields[$key]['arrayofkeyval'] as $key2 => $val2) { - $this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2); + $this->fields[$key]['arrayofkeyval'][$key2]=$langs->trans($val2); } } } diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 266b8d1925f..1b4d1c7b52d 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -227,11 +227,11 @@ class MyObject extends CommonObject // Translate some data of arrayofkeyval foreach($this->fields as $key => $val) { - if (is_array($this->fields['status']['arrayofkeyval'])) + if (is_array($this->fields[$key]['arrayofkeyval'])) { - foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2) + foreach($this->fields[$key]['arrayofkeyval'] as $key2 => $val2) { - $this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2); + $this->fields[$key]['arrayofkeyval'][$key2]=$langs->trans($val2); } } } From 7c29fb614c34119ed919b3eb5fa86ba53eb4665f Mon Sep 17 00:00:00 2001 From: John Botella Date: Thu, 20 Jun 2019 09:21:35 +0200 Subject: [PATCH 075/944] Fix replacement and vars names --- htdocs/core/actions_massactions.inc.php | 77 ++++++++++++++++++------- 1 file changed, 55 insertions(+), 22 deletions(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 00ffe03c7ed..c40bd73eff5 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -93,7 +93,7 @@ if (! $error && $massaction == 'confirm_presend') } // Check mandatory parameters - if (empty($user->email)) + if (GETPOST('fromtype','alpha') === 'user' && empty($user->email)) { $error++; setEventMessages($langs->trans("NoSenderEmailDefined"), null, 'warnings'); @@ -208,7 +208,7 @@ if (! $error && $massaction == 'confirm_presend') $resaction.='
'.$langs->trans('ErrorOnlyProposalNotDraftCanBeSentInMassAction',$objectobj->ref).'

'; continue; // Payment done or started or canceled } - if ($objectclass == 'Commande' && $objectoj->statut == Commande::STATUS_DRAFT) + if ($objectclass == 'Commande' && $objectobj->statut == Commande::STATUS_DRAFT) { $langs->load("errors"); $nbignored++; @@ -333,12 +333,16 @@ if (! $error && $massaction == 'confirm_presend') if ($objectclass == 'CommandeFournisseur') $sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_ORDER_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_ORDER_TO)); if ($objectclass == 'FactureFournisseur') $sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO)); - // $listofqualifiedobj is array with key = object id of qualified objects for the current thirdparty + // $listofqualifiedobj is array with key = object id and value is instance of qualified objects, for the current thirdparty (but thirdparty property is not loaded yet) $oneemailperrecipient=(GETPOST('oneemailperrecipient')=='on'?1:0); $looparray=array(); if (! $oneemailperrecipient) { $looparray = $listofqualifiedobj; + foreach ($looparray as $key => $objecttmp) + { + $looparray[$key]->thirdparty = $thirdparty; + } } else { @@ -347,8 +351,9 @@ if (! $error && $massaction == 'confirm_presend') $looparray[0]=$objectforloop; } //var_dump($looparray);exit; - - foreach ($looparray as $objecttmp) // $objecttmp is a real object or an empty if we choose to send one email per thirdparty instead of per record + dol_syslog("We have set an array of ".count($looparray)." emails to send. oneemailperrecipient=".$oneemailperrecipient); + //var_dump($oneemailperrecipient); var_dump($listofqualifiedobj); var_dump($listofqualifiedref); + foreach ($looparray as $objectid => $objecttmp) // $objecttmp is a real object or an empty object if we choose to send one email per thirdparty instead of one per object { // Make substitution in email content $substitutionarray=getCommonSubstitutionArray($langs, 0, null, $objecttmp); @@ -358,10 +363,18 @@ if (! $error && $massaction == 'confirm_presend') $substitutionarray['__CHECK_READ__'] = ''; $parameters=array('mode'=>'formemail'); + + if ( ! empty( $listofobjectthirdparties ) ) { + $parameters['listofobjectthirdparties'] = $listofobjectthirdparties; + } + if ( ! empty( $listofobjectref ) ) { + $parameters['listofobjectref'] = $listofobjectref; + } + complete_substitutions_array($substitutionarray, $langs, $objecttmp, $parameters); - $subject=make_substitutions($subject, $substitutionarray); - $message=make_substitutions($message, $substitutionarray); + $subjectreplaced=make_substitutions($subject, $substitutionarray); + $messagereplaced=make_substitutions($message, $substitutionarray); $filepath = $attachedfiles['paths']; $filename = $attachedfiles['names']; @@ -370,8 +383,8 @@ if (! $error && $massaction == 'confirm_presend') //var_dump($filepath); // Send mail (substitutionarray must be done just before this) - require_once(DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'); - $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1); + require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $mailfile = new CMailFile($subjectreplaced, $sendto, $from, $messagereplaced, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, -1); if ($mailfile->error) { $resaction.='
'.$mailfile->error.'
'; @@ -386,8 +399,12 @@ if (! $error && $massaction == 'confirm_presend') $error=0; // Insert logs into agenda - foreach($listofqualifiedobj as $objid => $objectobj) + foreach($listofqualifiedobj as $objid2 => $objectobj2) { + if ((! $oneemailperrecipient) && $objid2 != $objectid) continue; // We discard this pass to avoid duplicate with other pass in looparray at higher level + + dol_syslog("Try to insert email event into agenda for objid=".$objid2." => objectobj=".get_class($objectobj2)); + /*if ($objectclass == 'Propale') $actiontypecode='AC_PROP'; if ($objectclass == 'Commande') $actiontypecode='AC_COM'; if ($objectclass == 'Facture') $actiontypecode='AC_FAC'; @@ -399,18 +416,18 @@ if (! $error && $massaction == 'confirm_presend') if ($message) { if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc); - $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject); + $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subjectreplaced); $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":"); - $actionmsg = dol_concatdesc($actionmsg, $message); + $actionmsg = dol_concatdesc($actionmsg, $messagereplaced); } $actionmsg2=''; // Initialisation donnees - $objectobj->sendtoid = 0; - $objectobj->actionmsg = $actionmsg; // Long text - $objectobj->actionmsg2 = $actionmsg2; // Short text - $objectobj->fk_element = $objid; - $objectobj->elementtype = $objectobj->element; + $objectobj2->sendtoid = 0; + $objectobj2->actionmsg = $actionmsg; // Long text + $objectobj2->actionmsg2 = $actionmsg2; // Short text + $objectobj2->fk_element = $objid2; + $objectobj2->elementtype = $objectobj2->element; $triggername = strtoupper(get_class($objectobj)) .'_SENTBYMAIL'; if ($triggername == 'SOCIETE_SENTBYMAIL') $triggername = 'COMPANY_SENTBYEMAIL'; @@ -425,9 +442,9 @@ if (! $error && $massaction == 'confirm_presend') if (! empty($triggername)) { // Appel des triggers - include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); + include_once DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"; $interface=new Interfaces($db); - $result=$interface->run_triggers($triggername, $objectobj, $user, $langs, $conf); + $result=$interface->run_triggers($triggername, $objectobj2, $user, $langs, $conf); if ($result < 0) { $error++; $errors=$interface->errors; } // Fin appel triggers @@ -437,9 +454,9 @@ if (! $error && $massaction == 'confirm_presend') dol_syslog("Error in trigger ".$triggername.' '.$db->lasterror(), LOG_ERR); } } - - $nbsent++; } + + $nbsent++; // Nb of email sent (may be lower than number of record selected if we group thirdparties) } else { @@ -504,6 +521,8 @@ if ($massaction == 'confirm_createbills') $objecttmp = new Facture($db); if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) $objecttmp = $TFactThird[$cmd->socid]; // If option "one bill per third" is set, we use already created order. else { + // Load extrafields of order + $cmd->fetch_optionals(); $objecttmp->socid = $cmd->socid; $objecttmp->type = Facture::TYPE_STANDARD; @@ -521,6 +540,8 @@ if ($massaction == 'confirm_createbills') $objecttmp->origin = 'commande'; $objecttmp->origin_id = $id_order; + $objecttmp->array_options = $cmd->array_options; // Copy extrafields + $res = $objecttmp->create($user); if($res > 0) $nb_bills_created++; @@ -560,6 +581,12 @@ if ($massaction == 'confirm_createbills') for ($i=0;$i<$num;$i++) { $desc=($lines[$i]->desc?$lines[$i]->desc:$lines[$i]->libelle); + // If we build one invoice for several order, we must put the invoice of order on the line + if (! empty($createbills_onebythird)) + { + $desc=dol_concatdesc($desc, $langs->trans("Order").' '.$cmd->ref.' - '.dol_print_date($cmd->date, 'day', $langs)); + } + if ($lines[$i]->subprice < 0) { // Negative line, we create a discount line @@ -670,6 +697,7 @@ if ($massaction == 'confirm_createbills') if (! $error && $validate_invoices) { $massaction = $action = 'builddoc'; + foreach($TAllFact as &$objecttmp) { $result = $objecttmp->validate($user); @@ -687,7 +715,12 @@ if ($massaction == 'confirm_createbills') $donotredirect = 1; $upload_dir = $conf->facture->dir_output; $permissioncreate=$user->rights->facture->creer; + + // Call action to build doc + $savobject = $object; + $object = $objecttmp; include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; + $object = $savobject; } $massaction = $action = 'confirm_createbills'; @@ -696,7 +729,7 @@ if ($massaction == 'confirm_createbills') if (! $error) { $db->commit(); - setEventMessage($langs->trans('BillCreated', $nb_bills_created)); + setEventMessages($langs->trans('BillCreated', $nb_bills_created), null, 'mesgs'); // Make a redirect to avoid to bill twice if we make a refresh or back $param=''; From 252bd6d9ba7122447790e6d48c83e4dd64474762 Mon Sep 17 00:00:00 2001 From: John Botella Date: Thu, 20 Jun 2019 09:48:08 +0200 Subject: [PATCH 076/944] FIX condition --- htdocs/core/tpl/massactions_pre.tpl.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/core/tpl/massactions_pre.tpl.php b/htdocs/core/tpl/massactions_pre.tpl.php index 48989b2daec..0a273072e29 100644 --- a/htdocs/core/tpl/massactions_pre.tpl.php +++ b/htdocs/core/tpl/massactions_pre.tpl.php @@ -36,11 +36,12 @@ if ($massaction == 'presend') { $langs->load("mails"); + $listofselectedid = array(); + $listofselectedthirdparties = array(); + $listofselectedref = array(); + if (! GETPOST('cancel', 'alpha')) { - $listofselectedid = array(); - $listofselectedthirdparties = array(); - $listofselectedref = array(); foreach ($arrayofselected as $toselectid) { $result = $objecttmp->fetch($toselectid); @@ -106,7 +107,7 @@ if ($massaction == 'presend') $formmail->withtoreadonly = 1; } - $formmail->withoptiononeemailperrecipient = empty($liste)?0:((GETPOST('oneemailperrecipient')=='on')?1:-1); + $formmail->withoptiononeemailperrecipient = (count($listofselectedref) == 1 || empty($liste))? 0 : ((GETPOST('oneemailperrecipient')=='on')?1:-1); $formmail->withto = empty($liste)?(GETPOST('sendto','alpha')?GETPOST('sendto','alpha'):array()):$liste; $formmail->withtofree = empty($liste)?1:0; $formmail->withtocc = 1; From 9305403bea79f07eef481067718110e03172dab5 Mon Sep 17 00:00:00 2001 From: John Botella Date: Thu, 20 Jun 2019 10:32:32 +0200 Subject: [PATCH 077/944] Fix duplicate pdf in mass sendmail --- htdocs/core/actions_massactions.inc.php | 40 ++++++++++++++++++++----- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index c40bd73eff5..1d3d4b2adea 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -69,6 +69,8 @@ if (! $error && $massaction == 'confirm_presend') $listofobjectid=array(); $listofobjectthirdparties=array(); $listofobjectref=array(); + $attachedfilesThirdpartyObj=array(); + $oneemailperrecipient=(GETPOST('oneemailperrecipient')=='on'?1:0); if (! $error) { @@ -193,7 +195,6 @@ if (! $error && $massaction == 'confirm_presend') $sendtocc=implode(',',$tmparray); //var_dump($listofobjectref);exit; - $attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array()); $listofqualifiedobj=array(); $listofqualifiedref=array(); $thirdpartywithoutemail=array(); @@ -263,12 +264,12 @@ if (! $error && $massaction == 'confirm_presend') if (dol_is_file($file)) { - // Create form object - $attachedfiles=array( - 'paths'=>array_merge($attachedfiles['paths'],array($file)), - 'names'=>array_merge($attachedfiles['names'],array($filename)), - 'mimes'=>array_merge($attachedfiles['mimes'],array($mime)) - ); + // Create form object + $attachedfilesThirdpartyObj[$thirdpartyid][$objectid]=array( + 'paths'=>array($file), + 'names'=>array($filename), + 'mimes'=>array($mime) + ); } else { @@ -334,7 +335,7 @@ if (! $error && $massaction == 'confirm_presend') if ($objectclass == 'FactureFournisseur') $sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_INVOICE_TO)); // $listofqualifiedobj is array with key = object id and value is instance of qualified objects, for the current thirdparty (but thirdparty property is not loaded yet) - $oneemailperrecipient=(GETPOST('oneemailperrecipient')=='on'?1:0); + $looparray=array(); if (! $oneemailperrecipient) { @@ -376,10 +377,33 @@ if (! $error && $massaction == 'confirm_presend') $subjectreplaced=make_substitutions($subject, $substitutionarray); $messagereplaced=make_substitutions($message, $substitutionarray); + $attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array()); + if($oneemailperrecipient) + { + if(is_array($attachedfilesThirdpartyObj[$thirdparty->id]) && count($attachedfilesThirdpartyObj[$thirdparty->id])) + { + foreach ($attachedfilesThirdpartyObj[$thirdparty->id] as $keyObjId => $objAttachedFiles){ + // Create form object + $attachedfiles=array( + 'paths'=>array_merge($attachedfiles['paths'], $objAttachedFiles['paths']), + 'names'=>array_merge($attachedfiles['names'], $objAttachedFiles['names']), + 'mimes'=>array_merge($attachedfiles['mimes'], $objAttachedFiles['mimes']) + ); + } + } + } + elseif(!empty($attachedfilesThirdpartyObj[$thirdparty->id][$objectid])){ + // Create form object + $attachedfiles=$attachedfilesThirdpartyObj[$thirdparty->id][$objectid]; + } + $filepath = $attachedfiles['paths']; $filename = $attachedfiles['names']; $mimetype = $attachedfiles['mimes']; + + + //var_dump($filepath); // Send mail (substitutionarray must be done just before this) From 6a68c8cd996318c4d5997de97035157bddfbd87e Mon Sep 17 00:00:00 2001 From: John Botella Date: Thu, 20 Jun 2019 11:09:37 +0200 Subject: [PATCH 078/944] Fix display option email per participient --- htdocs/core/actions_massactions.inc.php | 3 +++ htdocs/core/tpl/massactions_pre.tpl.php | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 1d3d4b2adea..300c06216f7 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -377,9 +377,11 @@ if (! $error && $massaction == 'confirm_presend') $subjectreplaced=make_substitutions($subject, $substitutionarray); $messagereplaced=make_substitutions($message, $substitutionarray); + $attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array()); if($oneemailperrecipient) { + // if "one email per recipient" isn't check we must collate $attachedfiles by thirdparty if(is_array($attachedfilesThirdpartyObj[$thirdparty->id]) && count($attachedfilesThirdpartyObj[$thirdparty->id])) { foreach ($attachedfilesThirdpartyObj[$thirdparty->id] as $keyObjId => $objAttachedFiles){ @@ -394,6 +396,7 @@ if (! $error && $massaction == 'confirm_presend') } elseif(!empty($attachedfilesThirdpartyObj[$thirdparty->id][$objectid])){ // Create form object + // if "one email per recipient" isn't check we must separate $attachedfiles by object $attachedfiles=$attachedfilesThirdpartyObj[$thirdparty->id][$objectid]; } diff --git a/htdocs/core/tpl/massactions_pre.tpl.php b/htdocs/core/tpl/massactions_pre.tpl.php index 0a273072e29..e525bd739a3 100644 --- a/htdocs/core/tpl/massactions_pre.tpl.php +++ b/htdocs/core/tpl/massactions_pre.tpl.php @@ -107,7 +107,8 @@ if ($massaction == 'presend') $formmail->withtoreadonly = 1; } - $formmail->withoptiononeemailperrecipient = (count($listofselectedref) == 1 || empty($liste))? 0 : ((GETPOST('oneemailperrecipient')=='on')?1:-1); + $formmail->withoptiononeemailperrecipient = ((count($listofselectedref) == 1 && count(reset($listofselectedref)) == 1) || empty($liste)) ? 0 : ((GETPOST('oneemailperrecipient')=='on')?1:-1); + $formmail->withto = empty($liste)?(GETPOST('sendto','alpha')?GETPOST('sendto','alpha'):array()):$liste; $formmail->withtofree = empty($liste)?1:0; $formmail->withtocc = 1; @@ -126,6 +127,7 @@ if ($massaction == 'presend') // Make substitution in email content $substitutionarray = getCommonSubstitutionArray($langs, 0, null, $object); + $substitutionarray['__EMAIL__'] = $sendto; $substitutionarray['__CHECK_READ__'] = (is_object($object) && is_object($object->thirdparty)) ? '' : ''; $substitutionarray['__PERSONALIZED__'] = ''; // deprecated From b21006614c874e9a59c7f25d2a711a0795474a11 Mon Sep 17 00:00:00 2001 From: John Botella Date: Thu, 20 Jun 2019 12:00:44 +0200 Subject: [PATCH 079/944] Fix substitutions null --- htdocs/core/class/html.formmail.class.php | 1 - htdocs/core/lib/functions.lib.php | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index 9b9bb32865e..38987b36185 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -908,7 +908,6 @@ class FormMail extends Form $defaultmessage=preg_replace("/^(
)+/","",$defaultmessage); $defaultmessage=preg_replace("/^\n+/","",$defaultmessage); } - $out.= ''; $out.= ''.$langs->trans("MailText").''; $out.= ''; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 7a70608f303..05024437a63 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -5733,6 +5733,8 @@ function make_substitutions($text, $substitutionarray, $outputlangs=null) // Make substitition for array $substitutionarray foreach ($substitutionarray as $key => $value) { + if (! isset($value)) continue; // If value is null, it same than not having substitution key at all into array, we do not replace. + if ($key == '__SIGNATURE__' && (! empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) $value=''; // Protection if ($key == '__USER_SIGNATURE__' && (! empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) $value=''; // Protection From 0865bdb60f77460b969b730f9bd175bfd90a660b Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Thu, 20 Jun 2019 12:16:48 +0200 Subject: [PATCH 080/944] fix depending extrafeilds list --- 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 78729519775..006c80428f7 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6446,7 +6446,7 @@ abstract class CommonObject jQuery(document).ready(function() { function showOptions(child_list, parent_list) { - var val = $("select[name=\"options_"+parent_list+"\"]").val(); + var val = $("select[name=\""+parent_list+"\"]").val(); var parentVal = parent_list + ":" + val; if(val > 0) { $("select[name=\""+child_list+"\"] option[parent]").hide(); From 1a6dc83d4c886cb69c5c845dd6339fc9f71e3522 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 20 Jun 2019 12:25:58 +0200 Subject: [PATCH 081/944] Fix: default accounting account for eec and export sales were not used. --- htdocs/accountancy/customer/list.php | 66 +++++++++++++------ htdocs/accountancy/supplier/list.php | 44 ++++++++----- .../fourn/class/fournisseur.product.class.php | 6 +- htdocs/langs/en_US/accountancy.lang | 3 + htdocs/product/class/product.class.php | 14 ++-- 5 files changed, 90 insertions(+), 43 deletions(-) diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index 5314099db1f..192585ccedd 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -92,9 +92,6 @@ if (! $user->rights->accounting->bind->write) $hookmanager->initHooks(array('accountancycustomerlist')); $formaccounting = new FormAccounting($db); -$accounting = new AccountingAccount($db); -$aarowid_s = $accounting->fetch('', $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT, 1); -$aarowid_p = $accounting->fetch('', $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT, 1); $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version'); @@ -384,11 +381,11 @@ if ($result) { print ''; print ''; //print ''; - print ''; + print ''; print ''; print ''; print ''; - print $form->select_country($search_country, 'search_country', '', 0, 'maxwidth200', 'code2', 1, 0, 1); + print $form->select_country($search_country, 'search_country', '', 0, 'maxwidth150', 'code2', 1, 0, 1); //print ''; print ''; print ''; @@ -444,29 +441,50 @@ if ($result) { $isBuyerInEEC = isInEEC($objp); + $suggestedaccountingaccountbydefaultfor = ''; if ($objp->type_l == 1) { - $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : ''); - if ($objp->aarowid == '') { - $objp->aarowid_suggest = $aarowid_s; - } + if ($objp->country_code == $mysoc->country_code || empty($objp->country_code)) { // If buyer in same country than seller (if not defined, we assume it is same country) + $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : ''); + $suggestedaccountingaccountbydefaultfor = ''; + } else { + if ($isSellerInEEC && $isBuyerInEEC) { // European intravat sale + $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_INTRA_ACCOUNT : ''); + $suggestedaccountingaccountbydefaultfor = 'eec'; + } else { // Foreign sale + $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_EXPORT_ACCOUNT : ''); + $suggestedaccountingaccountbydefaultfor = 'export'; + } + } } elseif ($objp->type_l == 0) { - $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : ''); - if ($objp->aarowid == '') { - $objp->aarowid_suggest = $aarowid_p; + if ($objp->country_code == $mysoc->country_code || empty($objp->country_code)) { // If buyer in same country than seller (if not defined, we assume it is same country) + $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : ''); + $suggestedaccountingaccountbydefaultfor = ''; + } else { + if ($isSellerInEEC && $isBuyerInEEC) { // European intravat sale + $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT : ''); + $suggestedaccountingaccountbydefaultfor = 'eec'; + } else { + $objp->code_sell_l = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT : ''); + $suggestedaccountingaccountbydefaultfor = 'export'; + } } } if ($objp->code_sell_l == -1) $objp->code_sell_l=''; + $suggestedaccountingaccountfor = ''; if ($objp->country_code == $mysoc->country_code || empty($objp->country_code)) { // If buyer in same country than seller (if not defined, we assume it is same country) $objp->code_sell_p = $objp->code_sell; $objp->aarowid_suggest = $objp->aarowid; + $suggestedaccountingaccountfor = ''; } else { if ($isSellerInEEC && $isBuyerInEEC) { // European intravat sale $objp->code_sell_p = $objp->code_sell_intra; $objp->aarowid_suggest = $objp->aarowid_intra; + $suggestedaccountingaccountfor = 'eec'; } else { // Foreign sale $objp->code_sell_p = $objp->code_sell_export; $objp->aarowid_suggest = $objp->aarowid_export; + $suggestedaccountingaccountfor = 'export'; } } @@ -477,8 +495,8 @@ if ($result) { } if (empty($objp->code_sell_l) && empty($objp->code_sell_p)) $code_sell_p_notset = 'color:red'; - // $objp->code_sell_p is now code of product/service // $objp->code_sell_l is now default code of product/service + // $objp->code_sell_p is now code of product/service print ''; @@ -492,7 +510,7 @@ if ($result) { // Ref Product print ''; - if ($product_static->id) + if ($product_static->id > 0) print $product_static->getNomUrl(1); if ($objp->product_label) print '
'.$objp->product_label; print ''; @@ -514,7 +532,7 @@ if ($result) { print vatrate($objp->tva_tx_line.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')); print ''; - print ''; + print ''; $labelcountry=($objp->country_code && ($langs->trans("Country".$objp->country_code)!="Country".$objp->country_code))?$langs->trans("Country".$objp->country_code):$objp->country_label; print $labelcountry; print ''; @@ -523,17 +541,27 @@ if ($result) { // Current account print ''; - print (($objp->type_l == 1)?$langs->trans("DefaultForService"):$langs->trans("DefaultForProduct")) . ' = ' . ($objp->code_sell_l > 0 ? length_accountg($objp->code_sell_l) : $langs->trans("Unknown")); - if ($objp->product_id > 0) + $s = (($objp->type_l == 1)?$langs->trans("DefaultForService"):$langs->trans("DefaultForProduct")).': '; + $shelp = ''; + if ($suggestedaccountingaccountbydefaultfor == 'eec') $shelp.= $langs->trans("SaleEEC"); + elseif ($suggestedaccountingaccountbydefaultfor == 'export') $shelp.= $langs->trans("SaleExport"); + $s.= ($objp->code_sell_l > 0 ? length_accountg($objp->code_sell_l) : $langs->trans("NotDefined")); + print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1); + if ($objp->product_id > 0) { print '
'; - print (($objp->type_l == 1)?$langs->trans("ThisService"):$langs->trans("ThisProduct")) . ' = ' . (empty($objp->code_sell_p) ? $langs->trans("Unknown") : length_accountg($objp->code_sell_p)); + $s = (($objp->type_l == 1)?$langs->trans("ThisService"):$langs->trans("ThisProduct")).': '; + $shelp = ''; + if ($suggestedaccountingaccountfor == 'eec') $shelp = $langs->trans("SaleEEC"); + elseif ($suggestedaccountingaccountfor == 'export') $shelp = $langs->trans("SaleExport"); + $s.= (empty($objp->code_sell_p) ? $langs->trans("NotDefined") : length_accountg($objp->code_sell_p)); + print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1); } print ''; // Suggested accounting account print ''; - print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth300 maxwidthonsmartphone', 'cachewithshowemptyone'); + print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); print ''; // Column with checkbox diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 17284513650..b3a426bbf5e 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -332,8 +332,8 @@ if ($result) { if ($search_desc) $param.='&search_desc='.urlencode($search_desc); if ($search_amount) $param.='&search_amount='.urlencode($search_amount); if ($search_vat) $param.='&search_vat='.urlencode($search_vat); - if ($search_country) $param .= "&search_country=" . urlencode($search_country); - if ($search_tvaintra) $param .= "&search_tvaintra=" . urlencode($search_tvaintra); + if ($search_country) $param.="&search_country=".urlencode($search_country); + if ($search_tvaintra) $param.="&search_tvaintra=".urlencode($search_tvaintra); $arrayofmassactions = array( 'ventil'=>$langs->trans("Ventilate") @@ -382,11 +382,11 @@ if ($result) { print ''; print ''; //print ''; - print ''; + print ''; print ''; print ''; print ''; - print $form->select_country($search_country, 'search_country', '', 0, 'maxwidth200', 'code2', 1, 0, 1); + print $form->select_country($search_country, 'search_country', '', 0, 'maxwidth150', 'code2', 1, 0, 1); //print ''; print ''; print ''; @@ -418,7 +418,7 @@ if ($result) { print "\n"; $facturefourn_static = new FactureFournisseur($db); - $productfourn_static = new ProductFournisseur($db); + $product_static = new Product($db); while ($i < min($num_lines, $limit)) { $objp = $db->fetch_object($result); @@ -430,10 +430,10 @@ if ($result) { $objp->code_buy_p = ''; $objp->aarowid_suggest = ''; - $productfourn_static->ref = $objp->product_ref; - $productfourn_static->id = $objp->product_id; - $productfourn_static->type = $objp->type; - $productfourn_static->label = $objp->product_label; + $product_static->ref = $objp->product_ref; + $product_static->id = $objp->product_id; + $product_static->type = $objp->type; + $product_static->label = $objp->product_label; $facturefourn_static->ref = $objp->ref; $facturefourn_static->id = $objp->facid; @@ -479,8 +479,8 @@ if ($result) { // Ref product print ''; - if ($productfourn_static->id) - print $productfourn_static->getNomUrl(1); + if ($product_static->id > 0) + print $product_static->getNomUrl(1); if ($objp->product_label) print '
'.$objp->product_label; print ''; @@ -502,26 +502,38 @@ if ($result) { print vatrate($objp->tva_tx_line.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')); print ''; - print ''; + // Country + print ''; $labelcountry=($objp->country_code && ($langs->trans("Country".$objp->country_code)!="Country".$objp->country_code))?$langs->trans("Country".$objp->country_code):$objp->country_label; print $labelcountry; print ''; + // VAT Num print '' . $objp->tva_intra . ''; // Current account print ''; - print (($objp->type_l == 1)?$langs->trans("DefaultForService"):$langs->trans("DefaultForProduct")) . ' = ' . ($objp->code_buy_l > 0 ? length_accountg($objp->code_buy_l) : $langs->trans("Unknown")); + $s = (($objp->type_l == 1)?$langs->trans("DefaultForService"):$langs->trans("DefaultForProduct")).': '; + $shelp = ''; + if ($suggestedaccountingaccountbydefaultfor == 'eec') $shelp.= $langs->trans("SaleEEC"); + elseif ($suggestedaccountingaccountbydefaultfor == 'export') $shelp.= $langs->trans("SaleExport"); + $s.= ($objp->code_buy_l > 0 ? length_accountg($objp->code_buy_l) : $langs->trans("NotDefined")); + print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1); if ($objp->product_id > 0) { - print '
'; - print (($objp->type_l == 1)?$langs->trans("ThisService"):$langs->trans("ThisProduct")) . ' = ' . (empty($objp->code_buy_p) ? $langs->trans("Unknown") : length_accountg($objp->code_buy_p)); + print '
'; + $s = (($objp->type_l == 1)?$langs->trans("ThisService"):$langs->trans("ThisProduct")).': '; + $shelp = ''; + if ($suggestedaccountingaccountfor == 'eec') $shelp = $langs->trans("SaleEEC"); + elseif ($suggestedaccountingaccountfor == 'export') $shelp = $langs->trans("SaleExport"); + $s.= (empty($objp->code_buy_p) ? $langs->trans("NotDefined") : length_accountg($objp->code_buy_p)); + print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1); } print ''; // Suggested accounting account print ''; - print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth300 maxwidthonsmartphone', 'cachewithshowemptyone'); + print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); print ''; // Column with checkbox diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index f2384b13cf2..fc74890f150 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -1009,7 +1009,8 @@ class ProductFournisseur extends Product /** - * Return a link to the object card (with optionaly the picto) + * Return a link to the object card (with optionaly the picto). + * Used getNomUrl of ProductFournisseur if a specific supplier ref is loaded. Otherwise use Product->getNomUrl(). * * @param int $withpicto Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto) * @param string $option On what the link point to ('nolink', ...) @@ -1025,11 +1026,10 @@ class ProductFournisseur extends Product if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips $result = ''; - $companylink = ''; $label = '' . $langs->trans("SupplierRef") . ''; $label.= '
'; - $label.= '' . $langs->trans('Ref') . ': ' . $this->fourn_ref; + $label.= '' . $langs->trans('Ref') . ': ' . $this->ref_supplier; $logPrices = $this->listProductFournisseurPriceLog($this->product_fourn_price_id, 'pfpl.datec', 'DESC'); // set sort order here if (is_array($logPrices) && count($logPrices) > 0) { diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 7797fdef7b1..3a08e422600 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -316,6 +316,9 @@ WithoutValidAccount=Without valid dedicated account WithValidAccount=With valid dedicated account ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account AccountRemovedFromGroup=Account removed from group +SaleLocal=Local sale +SaleExport=Export sale +SaleEEC=Sale in EEC ## Dictionary Range=Range of accounting account diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index de0d28cee83..a5491045c16 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -4059,16 +4059,18 @@ class Product extends CommonObject } } - $linkstart = ''; $linkend=''; $result.=$linkstart; if ($withpicto) { - if ($this->type == Product::TYPE_PRODUCT) { $result.=(img_object(($notooltip?'':$label), 'product', ($notooltip?'class="paddingright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1)); + if ($this->type == Product::TYPE_PRODUCT) { + $result.=(img_object(($notooltip?'':$label), 'product', ($notooltip?'class="paddingright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1)); } - if ($this->type == Product::TYPE_SERVICE) { $result.=(img_object(($notooltip?'':$label), 'service', ($notooltip?'class="paddinright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1)); + if ($this->type == Product::TYPE_SERVICE) { + $result.=(img_object(($notooltip?'':$label), 'service', ($notooltip?'class="paddinright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1)); } } $result.= $newref; @@ -4078,8 +4080,10 @@ class Product extends CommonObject $hookmanager->initHooks(array('productdao')); $parameters=array('id'=>$this->id, 'getnomurl'=>$result); $reshook=$hookmanager->executeHooks('getNomUrl', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks - if ($reshook > 0) { $result = $hookmanager->resPrint; - } else { $result .= $hookmanager->resPrint; + if ($reshook > 0) { + $result = $hookmanager->resPrint; + } else { + $result .= $hookmanager->resPrint; } return $result; From cb057e9c6db20b120fbebb0b11239cfb554904d1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 20 Jun 2019 12:32:14 +0200 Subject: [PATCH 082/944] NEW Add hidden option to be ready for BREXIT --- htdocs/core/lib/company.lib.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index c3b9bcec2cf..1e27cb112d3 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -649,6 +649,8 @@ function getFormeJuridiqueLabel($code) */ function getCountriesInEEC() { + global $conf; + // List of all country codes that are in europe for european vat rules // List found on http://ec.europa.eu/taxation_customs/common/faq/faq_1179_en.htm#9 $country_code_in_EEC=array( @@ -687,6 +689,12 @@ function getCountriesInEEC() //'CH', // Switzerland - No. Swizerland in not in EEC ); + if (! empty($conf->global->MAIN_COUNTRIES_IN_EEC)) + { + // For example MAIN_COUNTRIES_IN_EEC = 'AT,BE,BG,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,NL,HU,IE,IM,IT,LT,LU,LV,MC,MT,PL,PT,RO,SE,SK,SI,UK' + $country_code_in_EEC = explode(',', $conf->global->MAIN_COUNTRIES_IN_EEC); + } + return $country_code_in_EEC; } From 6e069385bc054a2bd2c0032f32f500cfc755b3eb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 20 Jun 2019 12:32:38 +0200 Subject: [PATCH 083/944] Update doc --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index e0f4159c49e..9b91afd128f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -114,6 +114,7 @@ NEW: Option in workflow module to set a reception billed on validate supplier bi NEW: Autocompletion on lists should be available on mobile applications. NEW: Add mass action to close several members. NEW: Add hidden option ADD_UNSPLASH_LOGIN_BACKGROUND for random background +NEW: Add hidden option to be ready for BREXIT For Developers: NEW: Module "DebugBar" is available as a stable module. From bff6260983d0a47f49d04f4e6b1629023b1e013a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 20 Jun 2019 12:34:29 +0200 Subject: [PATCH 084/944] Fix syntax error --- htdocs/accountancy/journal/bankjournal.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 0f22789d630..a9009e725b8 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -172,7 +172,7 @@ if ($result) { // Variables $account_supplier = (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER != "") ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined'); // NotDefined is a reserved word - $account_customer = ($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER != "") ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'); // NotDefined is a reserved word + $account_customer = (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER != "") ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'); // NotDefined is a reserved word $account_employee = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined'); // NotDefined is a reserved word $account_pay_vat = (! empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : 'NotDefined'); // NotDefined is a reserved word $account_pay_donation = (! empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : 'NotDefined'); // NotDefined is a reserved word From afb63623178365f31be9b37658f805ead993c4b5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 20 Jun 2019 13:37:06 +0200 Subject: [PATCH 085/944] Fix look and feel v10 Fix link to direct debit payment order --- htdocs/accountancy/admin/accountmodel.php | 4 +- htdocs/accountancy/admin/categories_list.php | 2 +- htdocs/accountancy/admin/closure.php | 5 +- htdocs/accountancy/admin/defaultaccounts.php | 3 +- htdocs/accountancy/admin/export.php | 5 +- htdocs/accountancy/admin/productaccount.php | 2 +- .../class/accountancyexport.class.php | 78 +++++++++---------- htdocs/accountancy/journal/bankjournal.php | 4 +- .../journal/expensereportsjournal.php | 2 +- .../accountancy/journal/purchasesjournal.php | 2 +- htdocs/accountancy/journal/sellsjournal.php | 2 +- htdocs/admin/dict.php | 3 +- htdocs/compta/bank/bankentries_list.php | 12 ++- .../class/bonprelevement.class.php | 70 +++++++++++++---- htdocs/langs/en_US/banks.lang | 2 +- htdocs/langs/en_US/withdrawals.lang | 4 +- 16 files changed, 121 insertions(+), 79 deletions(-) diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index f44ff0071d2..102d268e218 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2015 Laurent Destailleur + * Copyright (C) 2004-2019 Laurent Destailleur * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2010-2016 Juanjo Menent @@ -462,8 +462,6 @@ $linkback=''; print load_fiche_titre($titre, $linkback, 'title_accountancy'); -print "
\n"; - // Confirmation de la suppression de la ligne if ($action == 'delete') diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php index 3a55e092d94..e7cdc800aee 100644 --- a/htdocs/accountancy/admin/categories_list.php +++ b/htdocs/accountancy/admin/categories_list.php @@ -412,7 +412,7 @@ $titlepicto='title_setup'; print load_fiche_titre($titre, $linkback, $titlepicto); -print $langs->trans("AccountingAccountGroupsDesc", $langs->transnoentitiesnoconv("ByPersonalizedAccountGroups")).'

'; +print ''.$langs->trans("AccountingAccountGroupsDesc", $langs->transnoentitiesnoconv("ByPersonalizedAccountGroups")).'

'; // Confirmation de la suppression de la ligne if ($action == 'delete') diff --git a/htdocs/accountancy/admin/closure.php b/htdocs/accountancy/admin/closure.php index a638d598ac9..479dd410f33 100644 --- a/htdocs/accountancy/admin/closure.php +++ b/htdocs/accountancy/admin/closure.php @@ -21,9 +21,8 @@ * \ingroup Accountancy (Double entries) * \brief Setup page to configure accounting expert module */ -require '../../main.inc.php'; -// Class +require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; @@ -89,7 +88,7 @@ llxHeader(); $linkback = ''; print load_fiche_titre($langs->trans('MenuClosureAccounts'), $linkback, 'title_accountancy'); -print $langs->trans("DefaultClosureDesc").'
'; +print ''.$langs->trans("DefaultClosureDesc").'
'; print '
'; print '
'; diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php index cba9ac92f3b..079e3585341 100644 --- a/htdocs/accountancy/admin/defaultaccounts.php +++ b/htdocs/accountancy/admin/defaultaccounts.php @@ -78,7 +78,6 @@ $list_account = array ( $accounting_mode = empty($conf->global->ACCOUNTING_MODE) ? 'RECETTES-DEPENSES' : $conf->global->ACCOUNTING_MODE; - if (GETPOST('change_chart', 'alpha')) { $chartofaccounts = GETPOST('chartofaccounts', 'int'); @@ -132,7 +131,7 @@ llxHeader(); $linkback = ''; print load_fiche_titre($langs->trans('MenuDefaultAccounts'), $linkback, 'title_accountancy'); -print $langs->trans("DefaultBindingDesc").'
'; +print ''.$langs->trans("DefaultBindingDesc").'
'; print '
'; print ''; diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index 74090e54120..81dc83b2ae5 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -76,6 +76,7 @@ $model_option = array ( ), ); + /* * Actions */ @@ -138,6 +139,7 @@ $form = new Form($db); // $linkback = '' . $langs->trans("BackToModuleList") . ''; print load_fiche_titre($langs->trans('ConfigAccountingExpert'), $linkback, 'title_setup'); + print "\n".''; $stringtoshow.='
'; // hideobject is to start hidden $stringtoshow.=''; + $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; diff --git a/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php b/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php index bba5185c94a..b95cffdb499 100644 --- a/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php +++ b/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php @@ -221,6 +221,7 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes '; $stringtoshow.='
'; // hideobject is to start hidden $stringtoshow.=''; + $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; diff --git a/htdocs/core/boxes/box_graph_orders_permonth.php b/htdocs/core/boxes/box_graph_orders_permonth.php index b06558393aa..271ed4911b4 100644 --- a/htdocs/core/boxes/box_graph_orders_permonth.php +++ b/htdocs/core/boxes/box_graph_orders_permonth.php @@ -220,6 +220,7 @@ class box_graph_orders_permonth extends ModeleBoxes '; $stringtoshow.='
'; // hideobject is to start hidden $stringtoshow.=''; + $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; diff --git a/htdocs/core/boxes/box_graph_orders_supplier_permonth.php b/htdocs/core/boxes/box_graph_orders_supplier_permonth.php index 9cb11aed7c1..b7589e0efd2 100644 --- a/htdocs/core/boxes/box_graph_orders_supplier_permonth.php +++ b/htdocs/core/boxes/box_graph_orders_supplier_permonth.php @@ -219,6 +219,7 @@ class box_graph_orders_supplier_permonth extends ModeleBoxes '; $stringtoshow.='
'; // hideobject is to start hidden $stringtoshow.=''; + $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; diff --git a/htdocs/core/boxes/box_graph_product_distribution.php b/htdocs/core/boxes/box_graph_product_distribution.php index 0fe5c66d532..0cdffafa050 100644 --- a/htdocs/core/boxes/box_graph_product_distribution.php +++ b/htdocs/core/boxes/box_graph_product_distribution.php @@ -338,6 +338,7 @@ class box_graph_product_distribution extends ModeleBoxes '; $stringtoshow.='
'; // hideobject is to start hidden $stringtoshow.=''; + $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; diff --git a/htdocs/core/boxes/box_graph_propales_permonth.php b/htdocs/core/boxes/box_graph_propales_permonth.php index b21381473c2..42643fb72bc 100644 --- a/htdocs/core/boxes/box_graph_propales_permonth.php +++ b/htdocs/core/boxes/box_graph_propales_permonth.php @@ -223,6 +223,7 @@ class box_graph_propales_permonth extends ModeleBoxes '; $stringtoshow.='
'; // hideobject is to start hidden $stringtoshow.=''; + $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index d283abd7d15..5456e2ce1eb 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -374,6 +374,7 @@ if (! defined('NOTOKENRENEWAL')) //var_dump(GETPOST('token').' '.$_SESSION['token'].' - '.$_SESSION['newtoken'].' '.$_SERVER['SCRIPT_FILENAME']); // Check token +//var_dump((! defined('NOCSRFCHECK')).' '.empty($dolibarr_nocsrfcheck).' '.(! empty($conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN)).' '.$_SERVER['REQUEST_METHOD'].' '.(! GETPOSTISSET('token'))); if ((! defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && ! empty($conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN)) || defined('CSRFCHECK_WITH_TOKEN')) // Check validity of token, only if option MAIN_SECURITY_CSRF_WITH_TOKEN enabled or if constant CSRFCHECK_WITH_TOKEN is set { From a75a2ae8e45a730e9a74ac9944acb43aac4c4ee2 Mon Sep 17 00:00:00 2001 From: John Botella Date: Tue, 2 Jul 2019 15:44:42 +0200 Subject: [PATCH 215/944] Fix missing hidden input and short label --- htdocs/admin/dict.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index d160793b735..6bffb7fe535 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -1889,6 +1889,9 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='') { print ''; } + else{ + print ''; + } print ''; } elseif ($fieldlist[$field] == 'price' || preg_match('/^amount/i',$fieldlist[$field])) { @@ -1951,7 +1954,13 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='') } else { - if ($fieldlist[$field]=='sortorder') $fieldlist[$field]='position'; + + $fieldValue = isset($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''; + + if ($fieldlist[$field]=='sortorder') + { + $fieldlist[$field]='position'; + } $classtd=''; $class=''; if ($fieldlist[$field]=='code') $classtd='width100'; @@ -1972,7 +1981,7 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='') } if ($tabname == MAIN_DB_PREFIX.'c_payment_term') { $langs->load("bills"); - $transkey="PaymentCondition".strtoupper($obj->code); + $transkey="PaymentConditionShort".strtoupper($obj->code); } if ($transkey && $langs->trans($transkey) != $transkey) { @@ -1982,8 +1991,11 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='') } if (! $transfound) { - print ''; + print ''; } + else{ + print ''; + } print ''; } } From d9560dbb6187a26c6badf7af3be04e467cccc1bf Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Jul 2019 18:02:06 +0200 Subject: [PATCH 216/944] Fix var not initialized --- htdocs/core/modules/export/export_csv.modules.php | 3 +++ htdocs/core/modules/export/export_excel.modules.php | 2 ++ htdocs/core/modules/export/export_excel2007new.modules.php | 2 ++ 3 files changed, 7 insertions(+) diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php index c3c8431962e..9d606aadc33 100644 --- a/htdocs/core/modules/export/export_csv.modules.php +++ b/htdocs/core/modules/export/export_csv.modules.php @@ -261,6 +261,9 @@ class ExportCsv extends ModeleExports } $this->col=0; + + $reg=array(); + foreach($array_selected_sorted as $code => $value) { if (strpos($code, ' as ') == 0) $alias=str_replace(array('.','-','(',')'), '_', $code); diff --git a/htdocs/core/modules/export/export_excel.modules.php b/htdocs/core/modules/export/export_excel.modules.php index ffb1fd83cce..0e7fd0f1169 100644 --- a/htdocs/core/modules/export/export_excel.modules.php +++ b/htdocs/core/modules/export/export_excel.modules.php @@ -345,6 +345,8 @@ class ExportExcel extends ModeleExports // Define first row $this->col=0; + $reg=array(); + foreach($array_selected_sorted as $code => $value) { if (strpos($code, ' as ') == 0) $alias=str_replace(array('.','-','(',')'), '_', $code); diff --git a/htdocs/core/modules/export/export_excel2007new.modules.php b/htdocs/core/modules/export/export_excel2007new.modules.php index 266cedc1310..038446643a2 100644 --- a/htdocs/core/modules/export/export_excel2007new.modules.php +++ b/htdocs/core/modules/export/export_excel2007new.modules.php @@ -304,6 +304,8 @@ class ExportExcel2007new extends ModeleExports // Define first row $this->col=0; + $reg=array(); + foreach($array_selected_sorted as $code => $value) { if (strpos($code, ' as ') == 0) $alias=str_replace(array('.','-','(',')'), '_', $code); From 9d50c672088b16a6208358e4f1e890ca3ab0eaab Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Jul 2019 18:06:51 +0200 Subject: [PATCH 217/944] FIX option EXPORT_LABEL_FOR_SELECT to restore compatibility in export --- htdocs/core/extrafieldsinexport.inc.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/htdocs/core/extrafieldsinexport.inc.php b/htdocs/core/extrafieldsinexport.inc.php index 13b2d1ae520..78dbba9934e 100644 --- a/htdocs/core/extrafieldsinexport.inc.php +++ b/htdocs/core/extrafieldsinexport.inc.php @@ -34,6 +34,15 @@ if ($resql) // This can fail when class is used on old database (during migra case 'boolean': $typeFilter="Boolean"; break; + case 'select': + if (! empty($conf->global->EXPORT_LABEL_FOR_SELECT)) + { + $tmpparam=unserialize($obj->param); // $tmpparam may be array with 'options' = array(key1=>val1, key2=>val2 ...) + if ($tmpparam['options'] && is_array($tmpparam['options'])) { + $typeFilter="Select:".$obj->param; + } + } + break; case 'sellist': $tmp=''; $tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null From 126479b5a9408bc3c6c55fa640e276fc44d36c4e Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 2 Jul 2019 21:46:00 +0200 Subject: [PATCH 218/944] Fix paymentmethod detach --- htdocs/societe/paymentmodes.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 6a3596f6e24..21af1f0a35c 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -637,6 +637,16 @@ if (empty($reshook)) elseif ($action == 'deletecard' && $source) { try { + if (preg_match('/pm_/', $source)) + { + $payment_method = \Stripe\PaymentMethod::retrieve($source); + if ($payment_method) + { + $payment_method->detach(); + } + } + else + { $cu=$stripe->customerStripe($object, $stripeacc, $servicestatus); $card=$cu->sources->retrieve("$source"); if ($card) @@ -645,6 +655,7 @@ if (empty($reshook)) if (method_exists($card, 'detach')) $card->detach(); else $card->delete(); } + } $url=DOL_URL_ROOT.'/societe/paymentmodes.php?socid='.$object->id; header('Location: '.$url); From 03938e21239396b44353f234a2d8219694722332 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 2 Jul 2019 21:56:50 +0200 Subject: [PATCH 219/944] Update paymentmodes.php --- htdocs/societe/paymentmodes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 21af1f0a35c..0e41e11cbaa 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -639,7 +639,7 @@ if (empty($reshook)) try { if (preg_match('/pm_/', $source)) { - $payment_method = \Stripe\PaymentMethod::retrieve($source); + $payment_method = \Stripe\PaymentMethod::retrieve($source, ["stripe_account" => $stripeacc]); if ($payment_method) { $payment_method->detach(); From ff68b110b27aca9c0f76b12d0ddc38acdd73726a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Jul 2019 23:14:22 +0200 Subject: [PATCH 220/944] Fix phpcs --- .../debugbar/class/DataCollector/DolRequestDataCollector.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/debugbar/class/DataCollector/DolRequestDataCollector.php b/htdocs/debugbar/class/DataCollector/DolRequestDataCollector.php index d6e939a9964..ebf9e2bfbd2 100644 --- a/htdocs/debugbar/class/DataCollector/DolRequestDataCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolRequestDataCollector.php @@ -8,6 +8,11 @@ use \DebugBar\DataCollector\RequestDataCollector; class DolRequestDataCollector extends RequestDataCollector { + /** + * Collects the data from the collectors + * + * @return array + */ public function collect() { $vars = array('_GET', '_POST', '_SESSION', '_COOKIE', '_SERVER'); From 433835860c2cbf470b9421d75f035a2567c33aee Mon Sep 17 00:00:00 2001 From: Ferran Marcet Date: Wed, 3 Jul 2019 13:12:41 +0200 Subject: [PATCH 221/944] FIX: When saving an action it didn't save the label based on the type of event if the label is empty and the type is customized --- htdocs/comm/action/card.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 470a90c355f..8989807a645 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -7,6 +7,7 @@ * Copyright (C) 2013 Florian Henry * Copyright (C) 2014 Cedric GROSS * Copyright (C) 2015 Alexandre Spangaro + * Copyright (C) 2019 Ferran Marcet * * 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 @@ -246,7 +247,10 @@ if ($action == 'add') { $object->label = $langs->transnoentitiesnoconv("Action".$object->type_code)."\n"; } - else $object->label = $cactioncomm->libelle; + else { + $cactioncomm->fetch($object->type_code); + $object->label = $cactioncomm->label; + } } } $object->fk_project = isset($_POST["projectid"])?$_POST["projectid"]:0; From 3e53a06b2ef93b487dbb4b18ffb3b4c82292ad40 Mon Sep 17 00:00:00 2001 From: "atm-florian.m" Date: Wed, 3 Jul 2019 16:17:47 +0200 Subject: [PATCH 222/944] minor spelling issues --- htdocs/fourn/commande/dispatch.php | 4 ++-- htdocs/langs/fr_FR/stocks.lang | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 77fd4b1aa69..dd6fd76a46a 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -245,7 +245,7 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner) // We ask to move a qty if (GETPOST($qty) != 0) { if (! (GETPOST($ent, 'int') > 0)) { - dol_syslog('No dispatch for line ' . $key . ' as no warehouse choosed'); + dol_syslog('No dispatch for line ' . $key . ' as no warehouse was chosen.'); $text = $langs->transnoentities('Warehouse') . ', ' . $langs->transnoentities('Line') . ' ' . ($numline); setEventMessages($langs->trans('ErrorFieldRequired', $text), null, 'errors'); $error ++; @@ -282,7 +282,7 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner) // We ask to move a qty if (GETPOST($qty) > 0) { if (! (GETPOST($ent, 'int') > 0)) { - dol_syslog('No dispatch for line ' . $key . ' as no warehouse choosed'); + dol_syslog('No dispatch for line ' . $key . ' as no warehouse was chosen.'); $text = $langs->transnoentities('Warehouse') . ', ' . $langs->transnoentities('Line') . ' ' . ($numline) . '-' . ($reg[1] + 1); setEventMessages($langs->trans('ErrorFieldRequired', $text), null, 'errors'); $error ++; diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang index 5898f7384e5..df9f738f4d8 100644 --- a/htdocs/langs/fr_FR/stocks.lang +++ b/htdocs/langs/fr_FR/stocks.lang @@ -65,7 +65,7 @@ RuleForStockManagementIncrease=Règle de gestion des incrémentations de stock ( DeStockOnBill=Décrémenter les stocks physiques sur validation des factures/avoirs clients DeStockOnValidateOrder=Décrémenterr les stocks physiques sur validation des commandes clients DeStockOnShipment=Décrémenter les stocks physiques sur validation des expéditions -DeStockOnShipmentOnClosing=Décrémenter les stocks phisiques au classement "clôturée" de l'expédition +DeStockOnShipmentOnClosing=Décrémenter les stocks physiques au classement "clôturée" de l'expédition ReStockOnBill=Incrémenter les stocks physiques sur validation des factures/avoirs fournisseurs ReStockOnValidateOrder=Incrémenter les stocks physiques sur approbation des commandes fournisseurs ReStockOnDispatchOrder=Incrémenter les stocks physiques sur ventilation manuelle dans les entrepôts, après réception de la marchandise From 2f5b9ccb22b9bcd3cce64d3a234bdf3e945b6d1e Mon Sep 17 00:00:00 2001 From: atm-greg Date: Wed, 3 Jul 2019 17:00:18 +0200 Subject: [PATCH 223/944] fix case objecttmp is an invoice --- htdocs/core/class/html.form.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index fe8a812a8a2..a8d96ed4b34 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5558,7 +5558,8 @@ class Form if ($prefixforautocompletemode == 'societe') $prefixforautocompletemode='company'; $confkeyforautocompletemode=strtoupper($prefixforautocompletemode).'_USE_SEARCH_TO_SELECT'; // For example COMPANY_USE_SEARCH_TO_SELECT - $fieldstoshow='t.ref'; + if (DOL_VERSION < 10 && $objecttmp->element == 'facture') $fieldstoshow = 't.facnumber'; + else $fieldstoshow='t.ref'; if (! empty($objecttmp->fields)) // For object that declare it, it is better to use declared fields ( like societe, contact, ...) { $tmpfieldstoshow=''; From 75aa11e5269efcccf6d3b4de08ebfa7f7dc6a217 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 01:58:25 +0200 Subject: [PATCH 224/944] Code comment --- htdocs/core/triggers/interface_20_all_Logevents.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/triggers/interface_20_all_Logevents.class.php b/htdocs/core/triggers/interface_20_all_Logevents.class.php index 1ce13ff2193..92d93eef10f 100644 --- a/htdocs/core/triggers/interface_20_all_Logevents.class.php +++ b/htdocs/core/triggers/interface_20_all_Logevents.class.php @@ -27,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php'; /** - * Class of triggers for security events + * Class of triggers for security audit events */ class InterfaceLogevents extends DolibarrTriggers { @@ -47,7 +47,7 @@ class InterfaceLogevents extends DolibarrTriggers public $version = self::VERSION_DOLIBARR; /** - * Function called when a Dolibarrr business event is done. + * Function called when a Dolibarrr security audit event is done. * All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/code/triggers (and declared) * * @param string $action Event action code From 10e3e37c6c2d560b283263e673ad46d86cc6981a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 10:39:30 +0200 Subject: [PATCH 225/944] Update don.class.php --- htdocs/don/class/don.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/don/class/don.class.php b/htdocs/don/class/don.class.php index caeb70aca94..638de5580e4 100644 --- a/htdocs/don/class/don.class.php +++ b/htdocs/don/class/don.class.php @@ -396,7 +396,7 @@ class Don extends CommonObject $sql.= ", ".$conf->entity; $sql.= ", ".price2num($this->amount); $sql.= ", ".($this->modepaymentid?$this->modepaymentid:"null"); - $sql.= ", ".($this->socid?$this->socid:"null"); + $sql.= ", ".($this->socid > 0 ? $this->socid : "null"); $sql.= ", '".$this->db->escape($this->firstname)."'"; $sql.= ", '".$this->db->escape($this->lastname)."'"; $sql.= ", '".$this->db->escape($this->societe)."'"; From 63c93be94e0a28be0cb05fb08ecc3c76c2f2e7cc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 12:20:34 +0200 Subject: [PATCH 226/944] Update html.form.class.php --- 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 a8d96ed4b34..a462f40ebdc 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -5558,7 +5558,7 @@ class Form if ($prefixforautocompletemode == 'societe') $prefixforautocompletemode='company'; $confkeyforautocompletemode=strtoupper($prefixforautocompletemode).'_USE_SEARCH_TO_SELECT'; // For example COMPANY_USE_SEARCH_TO_SELECT - if (DOL_VERSION < 10 && $objecttmp->element == 'facture') $fieldstoshow = 't.facnumber'; + if (((float) DOL_VERSION) < 10 && $objecttmp->element == 'facture') $fieldstoshow = 't.facnumber'; else $fieldstoshow='t.ref'; if (! empty($objecttmp->fields)) // For object that declare it, it is better to use declared fields ( like societe, contact, ...) { From 657a3ae4c5bfd5d9f7c8d0f561a87922832e979b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 12:43:32 +0200 Subject: [PATCH 227/944] FIX permission to delete a draft purchase order --- htdocs/fourn/commande/card.php | 2 +- htdocs/modulebuilder/template/myobject_card.php | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index da2930ed667..3e42552a942 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -2516,7 +2516,7 @@ elseif (! empty($object->id)) } // Delete - if ($user->rights->fournisseur->commande->supprimer) + if (! empty($user->rights->fournisseur->commande->supprimer) || ($object->statut == CommandeFournisseur::STATUS_DRAFT && ! empty($user->rights->fournisseur->commande->creer))) { print ''.$langs->trans("Delete").''; } diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index cc2eb5062cb..28c817658f6 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -434,7 +434,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print '' . $langs->trans('SendMail') . ''."\n"; // Modify - if ($user->rights->mymodule->write) + if (! empty($user->rights->mymodule->write)) { print ''.$langs->trans("Modify").''."\n"; } @@ -444,7 +444,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } // Clone - if ($user->rights->mymodule->write) + if (! empty($user->rights->mymodule->write)) { print ''; } @@ -463,7 +463,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea } */ - if ($user->rights->mymodule->delete) + // Delete (need delete permission, or if draft, just need create/modify permission) + if (! empty($user->rights->mymodule->delete) || (! empty($object->fields['status']) && $object->status == $object::STATUS_DRAFT && ! empty($user->rights->mymodule->write))) { print ''.$langs->trans('Delete').''."\n"; } From 512b832c77bd1247cd0684f54b7d77e4aca457bc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 13:26:20 +0200 Subject: [PATCH 228/944] CSS --- htdocs/theme/eldy/global.inc.php | 2 +- htdocs/theme/md/style.css.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 15b986d4bff..6f4fd4fa660 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1349,7 +1349,7 @@ img.photorefnoborder { } .trextrafieldseparator td { /* border-bottom: 2px solid rgb() !important; */ - border-bottom: 2px solid rgb() !important; + border-bottom: 2px dashed rgb() !important; } .tdhrthin { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 6fd50fa42b3..332b4964a94 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1562,6 +1562,10 @@ img.photorefnoborder { .underbanner { border-bottom: px solid rgb(); } + +.trextrafieldseparator td { + border-bottom: 1px solid rgb() !important; +} .tdhrthin { margin: 0; padding-bottom: 0 !important; From bfa7f22209ecc36cb4c12bd2b0ab20b742645974 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 22 May 2019 11:53:36 +0200 Subject: [PATCH 229/944] FIX missing "dropdown-icon" replacement --- htdocs/main.inc.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 5456e2ce1eb..4e1a6ecf01d 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1741,7 +1741,7 @@ function top_menu_user(User $user, Translate $langs) $userImage = Form::showphoto('userphoto', $user, 0, 0, 0, 'photouserphoto userphoto', 'small', 0, 1); $userDropDownImage = Form::showphoto('userphoto', $user, 0, 0, 0, 'dropdown-user-image', 'small', 0, 1); } - else{ + else { $nophoto='/public/theme/common/user_anonymous.png'; if ($user->gender == 'man') $nophoto='/public/theme/common/user_man.png'; if ($user->gender == 'woman') $nophoto='/public/theme/common/user_woman.png'; @@ -1755,7 +1755,7 @@ function top_menu_user(User $user, Translate $langs) $dropdownBody.= '
'; // login infos - if (!empty($user->admin)) { + if (! empty($user->admin)) { $dropdownBody.= '
' . $langs->trans("Administrator").': '.yn($user->admin); } if (! empty($user->socid)) // Add thirdparty for external users @@ -1808,7 +1808,7 @@ function top_menu_user(User $user, Translate $langs) $profilName = $user->getFullName($langs).' ('.$user->login.')'; - if($user->admin){ + if (! empty($user->admin)) { $profilName = ' '.$profilName; } @@ -1868,6 +1868,8 @@ function top_menu_user(User $user, Translate $langs) if (!$(event.target).closest("#topmenu-login-dropdown").length) { // Hide the menus. $("#topmenu-login-dropdown").removeClass("open"); + $("#dropdown-icon-down").show(); // use show/hide instead toggle for avoid conflict + $("#dropdown-icon-up").hide(); // use show/hide instead toggle for avoid conflict } }); From 64d1ebf59cd6ee27117cca10fc552257d0e17ea4 Mon Sep 17 00:00:00 2001 From: "atm-florian.m" Date: Thu, 4 Jul 2019 15:06:39 +0200 Subject: [PATCH 230/944] FIX: on shipment delete confirm dialog, a new checkbox allows the user to choose if they want their stock re-incremented after the deletion. --- htdocs/expedition/card.php | 24 ++++++++++++++++++-- htdocs/expedition/class/expedition.class.php | 4 ++-- htdocs/langs/fr_FR/sendings.lang | 2 ++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index aa85132b243..ed6b0227f91 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -468,7 +468,8 @@ if (empty($reshook)) else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->expedition->supprimer) { - $result = $object->delete(); + $also_update_stock = GETPOST('alsoUpdateStock', 'alpha') ?: 0; + $result = $object->delete($also_update_stock); if ($result > 0) { header("Location: ".DOL_URL_ROOT.'/expedition/index.php'); @@ -1648,7 +1649,26 @@ else if ($id || $ref) // Confirm deleteion if ($action == 'delete') { - $formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('DeleteSending'),$langs->trans("ConfirmDeleteSending",$object->ref),'confirm_delete','',0,1); + $formquestion = array(); + if ($object->statut == Expedition::STATUS_CLOSED && !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { + $formquestion = array( + array( + 'label' => $langs->trans('ShipmentIncrementStockOnDelete'), + 'name' => 'alsoUpdateStock', + 'type' => 'checkbox', + 'value' => 0 + ), + ); + } + $formconfirm=$form->formconfirm( + $_SERVER['PHP_SELF'].'?id='.$object->id, + $langs->trans('DeleteSending'), + $langs->trans("ConfirmDeleteSending",$object->ref), + 'confirm_delete', + $formquestion, + 0, + 1 + ); } // Confirmation validation diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 3ab96fed1fa..814d8ccc5a1 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -1079,7 +1079,7 @@ class Expedition extends CommonObject * * @return int >0 if OK, 0 if deletion done but failed to delete files, <0 if KO */ - function delete() + function delete($also_update_stock = false) { global $conf, $langs, $user; @@ -1111,7 +1111,7 @@ class Expedition extends CommonObject } // Stock control - if (! $error && $conf->stock->enabled && $conf->global->STOCK_CALCULATE_ON_SHIPMENT && $this->statut > self::STATUS_DRAFT) + if (! $error && $conf->stock->enabled && $conf->global->STOCK_CALCULATE_ON_SHIPMENT && $this->statut > self::STATUS_DRAFT && $also_update_stock) { require_once(DOL_DOCUMENT_ROOT."/product/stock/class/mouvementstock.class.php"); diff --git a/htdocs/langs/fr_FR/sendings.lang b/htdocs/langs/fr_FR/sendings.lang index 1071d5f23f9..4f4bfc514e2 100644 --- a/htdocs/langs/fr_FR/sendings.lang +++ b/htdocs/langs/fr_FR/sendings.lang @@ -60,6 +60,8 @@ NoProductToShipFoundIntoStock=Aucun produit à expédier n'a été trouver dans WeightVolShort=Poids/vol. ValidateOrderFirstBeforeShipment=Vous devez d'abord valider la commande pour pouvoir créer une expédition. +ShipmentIncrementStockOnDelete=Remettre en stock les éléments de cette expédition + # Sending methods # ModelDocument DocumentModelTyphon=Modèle de bon de réception/livraison complet (logo…) From fb8c93a69ded1430d62baedf987707be0cec45a5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 16:00:14 +0200 Subject: [PATCH 231/944] FIX Bad sql request --- htdocs/core/lib/files.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index f4a25334e00..3e9b2ba8797 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -2568,7 +2568,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, $accessallowed=1; } $original_file=$conf->fournisseur->facture->dir_output.'/'.$original_file; - $sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."facture_fourn WHERE facnumber='".$db->escape($refname)."' AND entity=".$conf->entity; + $sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."facture_fourn WHERE ref='".$db->escape($refname)."' AND entity=".$conf->entity; } // Wrapping pour les rapport de paiements elseif ($modulepart == 'supplier_payment') From ed39849d335252923059502df9f1e857b1d13505 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 16:14:10 +0200 Subject: [PATCH 232/944] Fix css --- htdocs/fourn/commande/list.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 80645e2a486..18ba697bc20 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -777,14 +777,14 @@ if ($resql) print ''; } // Town - if (! empty($arrayfields['s.town']['checked'])) print ''; + if (! empty($arrayfields['s.town']['checked'])) print ''; // Zip - if (! empty($arrayfields['s.zip']['checked'])) print ''; + if (! empty($arrayfields['s.zip']['checked'])) print ''; // State if (! empty($arrayfields['state.nom']['checked'])) { print ''; - print ''; + print ''; print ''; } // Country @@ -1004,7 +1004,7 @@ if ($resql) // Town if (! empty($arrayfields['s.town']['checked'])) { - print ''; + print ''; print $obj->town; print ''; if (! $i) $totalarray['nbfield']++; @@ -1012,7 +1012,7 @@ if ($resql) // Zip if (! empty($arrayfields['s.zip']['checked'])) { - print ''; + print ''; print $obj->zip; print ''; if (! $i) $totalarray['nbfield']++; From 4c03aa6547bd927da00d023746ca26a84b2c9f4f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 17:03:36 +0200 Subject: [PATCH 233/944] Fix selection of profile for demo --- htdocs/public/demo/index.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/public/demo/index.php b/htdocs/public/demo/index.php index 0f6e21f0984..62de885eac6 100644 --- a/htdocs/public/demo/index.php +++ b/htdocs/public/demo/index.php @@ -97,7 +97,7 @@ if (empty($reshook)) ), // All demo profile array('default'=>'0', 'key'=>'profdemoall','label'=>'ChooseYourDemoProfilMore', - 'disablemodules'=>'adherent,don,externalsite,mailmanspip', + 'disablemodules'=>'adherent,don,externalsite,mailmanspip,takepos', //'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot9.png' 'icon'=>DOL_URL_ROOT.'/public/demo/demo-profile-all.jpg' ) @@ -106,10 +106,10 @@ if (empty($reshook)) // Visible $alwayscheckedmodules=array('barcode','bookmark','categorie','externalrss','fckeditor','geoipmaxmind','gravatar','memcached','syslog','user','webservices'); // Technical module we always want - $alwaysuncheckedmodules=array('dav','dynamicprices','incoterm','loan','multicurrency','paybox','paypal','stripe','google','printing','scanner','skype','takepos','workflow','website'); // Module we dont want by default + $alwaysuncheckedmodules=array('dav','dynamicprices','incoterm','loan','multicurrency','paybox','paypal','stripe','google','printing','scanner','skype','website'); // Module we dont want by default // Not visible $alwayshiddencheckedmodules=array('accounting','api','barcode','blockedlog','bookmark','clicktodial','comptabilite','cron','document','domain','externalrss','externalsite','fckeditor','geoipmaxmind','gravatar','label','ldap', - 'mailmanspip','notification','oauth','syslog','user','webservices', + 'mailmanspip','notification','oauth','syslog','user','webservices','workflow', // Extended modules 'memcached','numberwords','zipautofillfr'); $alwayshiddenuncheckedmodules=array('debugbar','emailcollector','ftp','hrm','modulebuilder','webservicesclient','websites', @@ -392,10 +392,10 @@ foreach ($demoprofiles as $profilearray) //if ($modulo == 0) print ''; print ''; print '
'; - print '
'.$val->getName().'

'; + print '>
'; print '
'; //if ($modulo == ($nbcolsmod - 1)) print ''; $j++; From c3715646e746bd8b4ebeaee71b4b8b314d4857df Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 4 Jul 2019 21:29:27 +0200 Subject: [PATCH 234/944] Missing trans --- htdocs/langs/en_US/companies.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index ae189111c15..616b565496a 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact From 3d076d8bf91d3b0512de2d34588144afcace2757 Mon Sep 17 00:00:00 2001 From: ATM-Nicolas Date: Fri, 5 Jul 2019 11:15:43 +0200 Subject: [PATCH 235/944] FIX : We must save code instead of value in database for template invoice modelpdf --- htdocs/compta/facture/fiche-rec.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index 8c45012085d..31a4affb95d 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -1423,8 +1423,8 @@ else include_once DOL_DOCUMENT_ROOT . '/core/modules/facture/modules_facture.php'; $list = array(); $models = ModelePDFFactures::liste_modeles($db); - foreach ($models as $model) { - $list[] = $model . ':' . $model; + foreach ($models as $k => $model) { + $list[] = $k . ':' . $model; } $select = 'select;'.implode(',', $list); print $form->editfieldval($langs->trans("Model"), 'modelpdf', $object->modelpdf, $object, $user->rights->facture->creer, $select); From e3359c6f0fd861515e3c87b3fff52b1519e19da9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jul 2019 11:21:04 +0200 Subject: [PATCH 236/944] FIX Can't submit a ticket from public interface --- htdocs/core/class/html.formticket.class.php | 2 +- htdocs/core/lib/ticket.lib.php | 2 +- htdocs/public/ticket/create_ticket.php | 35 +++++++++++-------- htdocs/public/ticket/index.php | 8 ++--- htdocs/public/ticket/list.php | 15 ++++---- htdocs/public/ticket/view.php | 14 ++++---- htdocs/theme/eldy/global.inc.php | 3 ++ htdocs/theme/md/style.css.php | 38 +++++++++++---------- 8 files changed, 65 insertions(+), 52 deletions(-) diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index 1d681d2672b..6f712fa6c4d 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -419,7 +419,7 @@ class FormTicket if ($withdolfichehead) dol_fiche_end(); - print '
'; + print '
'; print ''; if ($this->withcancel) { diff --git a/htdocs/core/lib/ticket.lib.php b/htdocs/core/lib/ticket.lib.php index c5791e5c89e..9e0c357be05 100644 --- a/htdocs/core/lib/ticket.lib.php +++ b/htdocs/core/lib/ticket.lib.php @@ -159,7 +159,7 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $ top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers - print ''; + print ''; if (! empty($conf->global->TICKET_SHOW_COMPANY_LOGO) || ! empty($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC)) { print '
'; diff --git a/htdocs/public/ticket/create_ticket.php b/htdocs/public/ticket/create_ticket.php index 42774772eb5..b663aaa43c3 100644 --- a/htdocs/public/ticket/create_ticket.php +++ b/htdocs/public/ticket/create_ticket.php @@ -59,7 +59,7 @@ $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); */ // Add file in email form -if (GETPOST('addfile') && !GETPOST('add_ticket')) { +if (GETPOST('addfile', 'alpha') && ! GETPOST('add', 'alpha')) { ////$res = $object->fetch('','',GETPOST('track_id')); ////if($res > 0) ////{ @@ -77,7 +77,7 @@ if (GETPOST('addfile') && !GETPOST('add_ticket')) { } // Remove file -if (GETPOST('removedfile') && !GETPOST('add_ticket')) { +if (GETPOST('removedfile', 'alpha') && !GETPOST('add', 'alpha')) { include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; @@ -89,7 +89,7 @@ if (GETPOST('removedfile') && !GETPOST('add_ticket')) { dol_remove_file_process($_POST['removedfile'], 0, 0); $action = 'create_ticket'; } -if ($action == 'create_ticket' && GETPOST('add_ticket')) { +if ($action == 'create_ticket' && GETPOST('add', 'alpha')) { $error = 0; $origin_email = GETPOST('email', 'alpha'); if (empty($origin_email)) { @@ -311,7 +311,13 @@ if ($action == 'create_ticket' && GETPOST('add_ticket')) { $formmail->remove_attached_files($i); } - setEventMessages($langs->trans('YourTicketSuccessfullySaved'), null, 'mesgs'); + //setEventMessages($langs->trans('YourTicketSuccessfullySaved'), null, 'mesgs'); + + // Make a redirect to avoid to have ticket submitted twice if we make back + setEventMessages($langs->trans('MesgInfosPublicTicketCreatedWithTrackId', '' . $object->track_id . ''), null, 'warnings'); + setEventMessages($langs->trans('PleaseRememberThisId'), null, 'warnings'); + header("Location: index.php"); + exit; } } else { setEventMessages($object->error, $object->errors, 'errors'); @@ -324,21 +330,23 @@ if ($action == 'create_ticket' && GETPOST('add_ticket')) { * View */ -$arrayofjs = array(); -$arrayofcss = array('/opensurvey/css/style.css', '/ticket/css/styles.css.php'); - -llxHeaderTicket($langs->trans("CreateTicket"), "", 0, 0, $arrayofjs, $arrayofcss); - $form = new Form($db); $formticket = new FormTicket($db); -if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) { +if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) +{ print '
' . $langs->trans('TicketPublicInterfaceForbidden') . '
'; $db->close(); exit(); } -print '
'; +$arrayofjs = array(); +$arrayofcss = array('/opensurvey/css/style.css', '/ticket/css/styles.css.php'); + +llxHeaderTicket($langs->trans("CreateTicket"), "", 0, 0, $arrayofjs, $arrayofcss); + + +print '
'; if ($action != "infos_success") { $formticket->withfromsocid = isset($socid) ? $socid : $user->societe_id; @@ -361,11 +369,8 @@ if ($action != "infos_success") { print '
' . $langs->trans('TicketPublicInfoCreateTicket') . '
'; $formticket->showForm(); -} else { - print '
' . $langs->trans('MesgInfosPublicTicketCreatedWithTrackId', '' . $object->track_id . ''); - print '
'; - print $langs->trans('PleaseRememberThisId'); } + print '
'; // End of page diff --git a/htdocs/public/ticket/index.php b/htdocs/public/ticket/index.php index a3e4d63a4bc..2e138312102 100644 --- a/htdocs/public/ticket/index.php +++ b/htdocs/public/ticket/index.php @@ -55,18 +55,18 @@ $action = GETPOST('action', 'alpha'); $form = new Form($db); $formticket = new FormTicket($db); -$arrayofjs = array(); -$arrayofcss = array('/ticket/css/styles.css.php'); - if (empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) { print $langs->trans('TicketPublicInterfaceForbidden'); exit; } +$arrayofjs = array(); +$arrayofcss = array('/ticket/css/styles.css.php'); + llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); -print '
'; +print '
'; print '

' . ($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")) . '

'; print '
'; print '
' . dol_escape_htmltag($langs->trans("CreateTicket")) . '
'; diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index 443af658cb5..9da0a4272e1 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -155,21 +155,23 @@ $user_assign = new User($db); $user_create = new User($db); $formTicket = new FormTicket($db); +if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) { + print '
' . $langs->trans('TicketPublicInterfaceForbidden') . '
'; + $db->close(); + exit(); +} + $arrayofjs = array(); $arrayofcss = array('/ticket/css/styles.css.php'); llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); -if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) { - print '
' . $langs->trans('TicketPublicInterfaceForbidden') . '
'; - $db->close(); - exit(); -} -print '
'; +print '
'; if ($action == "view_ticketlist") { + print '
'; if ($display_ticket_list) { // Filters $search_fk_status = GETPOST("search_fk_status", 'alpha'); @@ -676,6 +678,7 @@ if ($action == "view_ticketlist") } } else { print '

' . $langs->trans("TicketPublicMsgViewLogIn") . '

'; + print '
'; print '
'; print ''; diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index a0311ce1430..4886a0cc3be 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -133,18 +133,18 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | $form = new Form($db); $formticket = new FormTicket($db); +if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) { + print '
' . $langs->trans('TicketPublicInterfaceForbidden') . '
'; + $db->close(); + exit(); +} + $arrayofjs = array(); $arrayofcss = array('/ticket/css/styles.css.php'); llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); -if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) { - print '
' . $langs->trans('TicketPublicInterfaceForbidden') . '
'; - $db->close(); - exit(); -} - -print '
'; +print '
'; if ($action == "view_ticket" || $action == "add_message" || $action == "close" || $action == "confirm_public_close") { if ($display_ticket) { diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 6f4fd4fa660..44c66a979d5 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -5248,6 +5248,9 @@ div.tabsElem a.tab { /* Ticket module */ /* ============================================================================== */ +.publicnewticketform { + margin-top: 25px !important; +} #cd-timeline { position: relative; padding: 2em 0; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 332b4964a94..c15bbf26eef 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1936,7 +1936,6 @@ a.tmenuimage:focus { } - /* Login */ .bodylogin @@ -5388,7 +5387,6 @@ border-top-right-radius: 6px; } - /* ============================================================================== */ /* Public */ /* ============================================================================== */ @@ -5402,26 +5400,14 @@ border-top-right-radius: 6px; } - -::-webkit-scrollbar { - width: 12px; -} -::-webkit-scrollbar-button { - background: #aaa -} -::-webkit-scrollbar-track-piece { - background: #fff -} -::-webkit-scrollbar-thumb { - background: #ddd -}​ - - - /* ============================================================================== */ /* Ticket module */ /* ============================================================================== */ +.publicnewticketform { + margin-top: 25px !important; +} + #cd-timeline { position: relative; padding: 2em 0; @@ -5833,6 +5819,22 @@ border-top-right-radius: 6px; +/* This must be at end */ +::-webkit-scrollbar { + width: 12px; +} +::-webkit-scrollbar-button { + background: #aaa; +} +::-webkit-scrollbar-track-piece { + background: #fff; +} +::-webkit-scrollbar-thumb { + background: #ddd; +}​ + + + global->MAIN_DISABLE_FONT_AWESOME_5)) { ?> Date: Fri, 5 Jul 2019 11:45:10 +0200 Subject: [PATCH 237/944] Fix css --- htdocs/public/ticket/view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index 4886a0cc3be..69a77413b2e 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -298,7 +298,7 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | print ''; } } else { - print '

' . $langs->trans("TicketPublicMsgViewLogIn") . '

'; + print '

' . $langs->trans("TicketPublicMsgViewLogIn") . '

'; print '
'; print ''; From 5c6684bb734fc963838cda82d9d82f40e7bcee25 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jul 2019 11:53:33 +0200 Subject: [PATCH 238/944] Fix setup of ticket module --- htdocs/admin/ticket_public.php | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/htdocs/admin/ticket_public.php b/htdocs/admin/ticket_public.php index 1bcff705aef..4e6b6d75e85 100644 --- a/htdocs/admin/ticket_public.php +++ b/htdocs/admin/ticket_public.php @@ -185,12 +185,6 @@ if ($action == 'setvarother') { 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) { - $error++; - } } @@ -260,7 +254,7 @@ if (! empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) print ''; // Check if email exists - print '' . $langs->trans("TicketsEmailMustExist") . ''; + print '' . $langs->trans("TicketsEmailMustExist") . ''; print ''; if ($conf->use_javascript_ajax) { print ajax_constantonoff('TICKET_EMAIL_MUST_EXISTS'); @@ -277,7 +271,7 @@ if (! empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) /*if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { // Show logo for module - print '' . $langs->trans("TicketsShowModuleLogo") . ''; + print '' . $langs->trans("TicketsShowModuleLogo") . ''; print ''; if ($conf->use_javascript_ajax) { print ajax_constantonoff('TICKET_SHOW_MODULE_LOGO'); @@ -293,7 +287,7 @@ if (! empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) }*/ // Show logo for company - print '' . $langs->trans("TicketsShowCompanyLogo") . ''; + print '' . $langs->trans("TicketsShowCompanyLogo") . ''; print ''; if ($conf->use_javascript_ajax) { print ajax_constantonoff('TICKET_SHOW_COMPANY_LOGO'); @@ -310,7 +304,7 @@ if (! empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) // Also send to main email address if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - print '' . $langs->trans("TicketsEmailAlsoSendToMainAddress") . ''; + print '' . $langs->trans("TicketsEmailAlsoSendToMainAddress") . ''; print ''; if ($conf->use_javascript_ajax) { print ajax_constantonoff('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS'); @@ -330,21 +324,6 @@ if (! empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) print ''; } - // Auto assign ticket at user who created it - print '' . $langs->trans("TicketsAutoAssignTicket") . ''; - print ''; - if ($conf->use_javascript_ajax) { - print ajax_constantonoff('TICKET_AUTO_ASSIGN_USER_CREATE'); - } else { - $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes")); - print $form->selectarray("TICKET_AUTO_ASSIGN_USER_CREATE", $arrval, $conf->global->TICKET_AUTO_ASSIGN_USER_CREATE); - } - print ''; - print ''; - print $form->textwithpicto('', $langs->trans("TicketsAutoAssignTicketHelp"), 1, 'help'); - print ''; - print ''; - print '
'; if (!$conf->use_javascript_ajax) { From 575dce2dffb7cb0e2aee91d4a9b802c3ed0298eb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jul 2019 12:17:36 +0200 Subject: [PATCH 239/944] Fix css --- htdocs/compta/bank/bankentries_list.php | 5 +++-- htdocs/user/hierarchy.php | 2 +- htdocs/user/list.php | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index 811fe663f8c..5609bb6b598 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -603,12 +603,13 @@ if ($resql) print $langs->trans("EventualyAddCategory").': '; print Form::selectarray('cat', $options, GETPOST('cat'), 1); } - print '
'.$langs->trans("ThenCheckLinesAndConciliate").' '; + print '
'.$langs->trans("ThenCheckLinesAndConciliate").' '; print ''; print ' '.$langs->trans("or").' '; print ''; print ' '.$langs->trans("or").' '; print ''; + print '
'; // Show last bank statements $nbmax=15; // We accept to show last 15 receipts (so we can have more than one year) @@ -617,7 +618,7 @@ if ($resql) $sql.= " WHERE fk_account=".$object->id." AND num_releve IS NOT NULL"; $sql.= $db->order("num_releve", "DESC"); $sql.= $db->plimit($nbmax+1); - print '

'; + print '
'; print $langs->trans("LastAccountStatements").' : '; $resqlr=$db->query($sql); if ($resqlr) diff --git a/htdocs/user/hierarchy.php b/htdocs/user/hierarchy.php index be18cb4051a..ca5e0b1862b 100644 --- a/htdocs/user/hierarchy.php +++ b/htdocs/user/hierarchy.php @@ -150,7 +150,7 @@ if ($canadduser) $newcardbutton.= dolGetButtonTitle($langs->trans('NewUser'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/user/card.php?action=create'.($mode == 'employee' ? '&employee=1': '').'&leftmenu='); } -$morehtmlright.= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-list', DOL_URL_ROOT.'/user/list.php'.(($search_statut != '' && $search_statut >= 0) ?'?search_statut='.$search_statut:'')); +$morehtmlright.= dolGetButtonTitle($langs->trans('ViewList'), '', 'fa fa-list paddingleft', DOL_URL_ROOT.'/user/list.php'.(($search_statut != '' && $search_statut >= 0) ?'?search_statut='.$search_statut:'')); print load_fiche_titre($title, $morehtmlright.' '.$newcardbutton); diff --git a/htdocs/user/list.php b/htdocs/user/list.php index ad310b0041e..8c780c703f7 100644 --- a/htdocs/user/list.php +++ b/htdocs/user/list.php @@ -304,7 +304,7 @@ print ''; print ''; -$morehtmlright.= dolGetButtonTitle($langs->trans("HierarchicView"), '', 'fa fa-sitemap', DOL_URL_ROOT.'/user/hierarchy.php'.(($search_statut != '' && $search_statut >= 0) ?'?search_statut='.$search_statut:'')); +$morehtmlright.= dolGetButtonTitle($langs->trans("HierarchicView"), '', 'fa fa-sitemap paddingleft', DOL_URL_ROOT.'/user/hierarchy.php'.(($search_statut != '' && $search_statut >= 0) ?'?search_statut='.$search_statut:'')); print_barre_liste($text, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, "", $num, $nbtotalofrecords, 'title_generic', 0, $morehtmlright.' '.$newcardbutton, '', $limit); From 675b7b2e3215a950ff47415c449d0483b7d72e1e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jul 2019 13:11:30 +0200 Subject: [PATCH 240/944] Fix link to reconcile --- htdocs/compta/bank/releve.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php index ac4d17e4c49..b93f381c555 100644 --- a/htdocs/compta/bank/releve.php +++ b/htdocs/compta/bank/releve.php @@ -415,7 +415,7 @@ if (empty($numref)) if ($object->canBeConciliated() > 0) { // If not cash account and can be reconciliate if ($user->rights->banque->consolidate) { - print ''.$langs->trans("Conciliate").''; + print ''.$langs->trans("Conciliate").''; } else { print ''.$langs->trans("Conciliate").''; } From 9b327639197692f9eb5cf3ac970d594f6f79107f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jul 2019 15:25:29 +0200 Subject: [PATCH 241/944] Fix label for report n ledger for transitionnal bank account on tranfer --- htdocs/accountancy/journal/bankjournal.php | 32 ++++++++++++++++++---- htdocs/core/lib/accounting.lib.php | 5 ++-- htdocs/langs/en_US/accountancy.lang | 1 + 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index cfe49764c74..d4a9ff0d3f6 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -573,7 +573,14 @@ if (! $error && $action == 'writebookkeeping') { { $reflabel = ''; if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . ($val['soclib']?" - ":""); - $reflabel.= dol_string_nohtmltag($val['soclib']); + if ($tabtype[$key] == 'banktransfert') + { + $reflabel.= dol_string_nohtmltag($langs->transnoentitiesnoconv('TransitionalAccount').' '.$account_transfer); + } + else + { + $reflabel.= dol_string_nohtmltag($val['soclib']); + } $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; @@ -702,7 +709,7 @@ if (! $error && $action == 'writebookkeeping') { } } } - else { // If thirdparty unkown, output the waiting account + else { // If thirdparty unknown, output the waiting account foreach ($tabbq[$key] as $k => $mt) { if ($mt) { @@ -831,7 +838,6 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! print '"' . $langs->transnoentitiesnoconv("Note") . '"' . $sep; print "\n"; - foreach ($tabpay as $key => $val) { $date = dol_print_date($db->jdate($val["date"]), 'day'); @@ -869,7 +875,14 @@ if ($action == 'exportcsv') { // ISO and not UTF8 ! { $reflabel = ''; if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . ($val['soclib']?" - ":""); - $reflabel.= dol_string_nohtmltag($val['soclib']); + if ($tabtype[$key] == 'banktransfert') + { + $reflabel.= dol_string_nohtmltag($langs->transnoentitiesnoconv('TransitionalAccount').' '.$account_transfer); + } + else + { + $reflabel.= dol_string_nohtmltag($val['soclib']); + } print '"' . $key . '"' . $sep; print '"' . $date . '"' . $sep; @@ -1087,7 +1100,14 @@ if (empty($action) || $action == 'view') { { $reflabel = ''; if (! empty($val['lib'])) $reflabel .= $val['lib'] . ($val['soclib']?" - ":""); - $reflabel.= $val['soclib']; + if ($tabtype[$key] == 'banktransfert') + { + $reflabel.= $langs->trans('TransitionalAccount').' '.$account_transfer; + } + else + { + $reflabel.= $val['soclib']; + } print ''; print ''; @@ -1115,7 +1135,7 @@ if (empty($action) || $action == 'view') { } else { - print ''.$langs->trans('UnknownAccountForThirdparty', length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE)).''; // We will a waiting account + print ''.$langs->trans('UnknownAccountForThirdparty', length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE)).''; // We will use a waiting account } } else diff --git a/htdocs/core/lib/accounting.lib.php b/htdocs/core/lib/accounting.lib.php index 9545b6961fd..d6bd38b5030 100644 --- a/htdocs/core/lib/accounting.lib.php +++ b/htdocs/core/lib/accounting.lib.php @@ -175,7 +175,7 @@ function journalHead($nom, $variante, $period, $periodlink, $description, $build { global $langs; - print "\n\n\n"; + print "\n\n\n"; if(! is_empty($varlink)) $varlink = '?'.$varlink; @@ -186,6 +186,7 @@ function journalHead($nom, $variante, $period, $periodlink, $description, $build $head[$h][2] = 'journal'; print ''; + print ''; dol_fiche_head($head, 'journal'); @@ -240,5 +241,5 @@ function journalHead($nom, $variante, $period, $periodlink, $description, $build print ''; - print "\n\n\n"; + print "\n\n\n"; } diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 3bb0df59812..ece95cfca29 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations From 42576eb27a820cae0a756e932b6a0e02c6beac04 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jul 2019 17:22:13 +0200 Subject: [PATCH 242/944] Fix status of email templates not visible for non admin users --- htdocs/admin/mails_templates.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/admin/mails_templates.php b/htdocs/admin/mails_templates.php index e2f36f96fe9..b62009c2ba6 100644 --- a/htdocs/admin/mails_templates.php +++ b/htdocs/admin/mails_templates.php @@ -873,6 +873,7 @@ if ($resql) // Status / Active print ''; if ($canbedisabled) print ''.$actl[$obj->active].''; + else print ''.$actl[$obj->active].''; print ""; // Modify link / Delete link From 93d9f73f1d03c7786d3927c20247cd7bcb630cbc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jul 2019 17:44:31 +0200 Subject: [PATCH 243/944] Trans --- htdocs/langs/en_US/accountancy.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index ece95cfca29..6dfe4fc8c4f 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -301,7 +301,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC From 69db6e6aa7e834740eb3eb72ae325058aa2fb299 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Jul 2019 18:45:13 +0200 Subject: [PATCH 244/944] Fix look and feel v10 --- htdocs/admin/supplier_proposal.php | 2 +- .../supplier_proposal/admin/supplier_proposal_extrafields.php | 2 +- .../admin/supplier_proposaldet_extrafields.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/admin/supplier_proposal.php b/htdocs/admin/supplier_proposal.php index 8b17c860fd4..e627068b692 100644 --- a/htdocs/admin/supplier_proposal.php +++ b/htdocs/admin/supplier_proposal.php @@ -220,7 +220,7 @@ print load_fiche_titre($langs->trans("SupplierProposalSetup"), $linkback, 'title $head = supplier_proposal_admin_prepare_head(); -dol_fiche_head($head, 'general', $langs->trans("CommRequests"), 0, 'supplier_proposal'); +dol_fiche_head($head, 'general', $langs->trans("CommRequests"), -1, 'supplier_proposal'); /* * Module numerotation diff --git a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php index 1b5c08119d1..c97ea508448 100644 --- a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php +++ b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php @@ -64,7 +64,7 @@ print load_fiche_titre($langs->trans("SupplierProposalSetup"), $linkback, 'title $head = supplier_proposal_admin_prepare_head(); -dol_fiche_head($head, 'attributes', $langs->trans("CommRequests"), 0, 'supplier_proposal'); +dol_fiche_head($head, 'attributes', $langs->trans("CommRequests"), -1, 'supplier_proposal'); print $langs->trans("DefineHereComplementaryAttributes", $textobject).'
'."\n"; diff --git a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php index b3b0e482f62..c54e65ad825 100644 --- a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php +++ b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php @@ -69,7 +69,7 @@ print load_fiche_titre($langs->trans("SupplierProposalSetup"), $linkback, 'title $head = supplier_proposal_admin_prepare_head(); -dol_fiche_head($head, 'attributeslines', $langs->trans("CommRequests"), 0, 'supplier_proposal'); +dol_fiche_head($head, 'attributeslines', $langs->trans("CommRequests"), -1, 'supplier_proposal'); print $langs->trans("DefineHereComplementaryAttributes", $textobject).'
'."\n"; From e5d34de877fe194c096fa83b5cb62f5b10aded42 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 9 Jul 2019 00:14:01 +0200 Subject: [PATCH 245/944] FIX compatibility mysql 8. rank is reserved FIX Permission for BOM menu --- htdocs/bom/class/bom.class.php | 6 +++--- htdocs/core/class/commonobject.class.php | 4 ++-- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 3 ++- htdocs/install/mysql/tables/llx_bom_bomline.sql | 2 +- htdocs/modulebuilder/template/class/myobject.class.php | 4 ++-- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 73682c7698c..10601303a61 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -889,7 +889,7 @@ class BOM extends CommonObject $this->lines=array(); $objectline = new BOMLine($this->db); - $result = $objectline->fetchAll('ASC', 'rank', 0, 0, array('customsql'=>'fk_bom = '.$this->id)); + $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_bom = '.$this->id)); if (is_numeric($result)) { @@ -1044,7 +1044,7 @@ class BOMLine extends CommonObject 'description' => array('type'=>'text', 'label'=>'Description', 'enabled'=>1, 'visible'=>-1, 'position'=>60, 'notnull'=>-1,), 'qty' => array('type'=>'double(24,8)', 'label'=>'Quantity', 'enabled'=>1, 'visible'=>1, 'position'=>100, 'notnull'=>1, 'isameasure'=>'1',), 'efficiency' => array('type'=>'double(8,4)', 'label'=>'ManufacturingEfficiency', 'enabled'=>1, 'visible'=>1, 'default'=>1, 'position'=>110, 'notnull'=>1, 'css'=>'maxwidth50imp', 'help'=>'ValueOfMeansLoss'), - 'rank' => array('type'=>'integer', 'label'=>'Rank', 'enabled'=>1, 'visible'=>0, 'position'=>200, 'notnull'=>1,), + 'position' => array('type'=>'integer', 'label'=>'Rank', 'enabled'=>1, 'visible'=>0, 'position'=>200, 'notnull'=>1,), 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>1000, 'notnull'=>-1,), ); public $rowid; @@ -1053,7 +1053,7 @@ class BOMLine extends CommonObject public $description; public $qty; public $efficiency; - public $rank; + public $position; public $import_key; // END MODULEBUILDER PROPERTIES diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index c966f39680b..b6fa5e419b1 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2443,9 +2443,9 @@ abstract class CommonObject */ public function updateRangOfLine($rowid, $rang) { - $fieldposition = 'rang'; // @TODO Rename 'rang' and 'position' into 'rank' + $fieldposition = 'rang'; // @TODO Rename 'rang' into 'position' if (in_array($this->table_element_line, array('ecm_files', 'emailcollector_emailcollectoraction'))) $fieldposition = 'position'; - if (in_array($this->table_element_line, array('bom_bomline'))) $fieldposition = 'rank'; + if (in_array($this->table_element_line, array('bom_bomline'))) $fieldposition = 'position'; $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.$rang; $sql.= ' WHERE rowid = '.$rowid; diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 7518093bf77..88595cd366a 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1579,7 +1579,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM { $langs->load("mrp"); - $newmenu->add("", $langs->trans("MenuBOM"), 0, $user->rights->service->lire, '', $mainmenu, 'service'); + $newmenu->add("", $langs->trans("MenuBOM"), 0, $user->rights->bom->read, '', $mainmenu, 'bom'); $newmenu->add("/bom/bom_card.php?leftmenu=bom&action=create", $langs->trans("NewBOM"), 1, $user->rights->bom->write); $newmenu->add("/bom/bom_list.php?leftmenu=bom", $langs->trans("List"), 1, $user->rights->bom->read); } diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index bf08e794a65..c2d4809f958 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -252,12 +252,13 @@ CREATE TABLE llx_bom_bomline( import_key varchar(14), qty double(24,8) NOT NULL, efficiency double(8,4) NOT NULL DEFAULT 1, - rank integer NOT NULL + position integer NOT NULL -- END MODULEBUILDER FIELDS ) ENGINE=innodb; ALTER TABLE llx_bom_bomline ADD COLUMN efficiency double(8,4) DEFAULT 1; ALTER TABLE llx_bom_bomline ADD COLUMN fk_bom_child integer NULL; +ALTER TABLE llx_bom_bomline ADD COLUMN position integer NOT NULL; create table llx_bom_bomline_extrafields ( diff --git a/htdocs/install/mysql/tables/llx_bom_bomline.sql b/htdocs/install/mysql/tables/llx_bom_bomline.sql index bafaaf73694..4b0aa515950 100644 --- a/htdocs/install/mysql/tables/llx_bom_bomline.sql +++ b/htdocs/install/mysql/tables/llx_bom_bomline.sql @@ -23,6 +23,6 @@ CREATE TABLE llx_bom_bomline( import_key varchar(14), qty double(24,8) NOT NULL, efficiency double(8,4) NOT NULL DEFAULT 1, - rank integer NOT NULL + position integer NOT NULL -- END MODULEBUILDER FIELDS ) ENGINE=innodb; diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 13157b2c18f..f6020882502 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -696,7 +696,7 @@ class MyObject extends CommonObject $this->lines=array(); $objectline = new MyObjectLine($this->db); - $result = $objectline->fetchAll('ASC', 'rank', 0, 0, array('customsql'=>'fk_myobject = '.$this->id)); + $result = $objectline->fetchAll('ASC', 'position', 0, 0, array('customsql'=>'fk_myobject = '.$this->id)); if (is_numeric($result)) { @@ -781,5 +781,5 @@ class MyObject extends CommonObject class MyObjectLine { // To complete with content of an object MyObjectLine - // We should have a field rowid, fk_myobject and rank + // We should have a field rowid, fk_myobject and position } From 0aa42fefae40fabaff529fde7a082e4ff20da613 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Tue, 9 Jul 2019 18:13:06 +0200 Subject: [PATCH 246/944] Fix : use RUM if defined in bank account --- htdocs/compta/prelevement/class/bonprelevement.class.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 2187b99eaf3..89aa09523e7 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -1349,7 +1349,7 @@ class BonPrelevement extends CommonObject $sql = "SELECT soc.code_client as code, soc.address, soc.zip, soc.town, c.code as country_code,"; $sql.= " pl.client_nom as nom, pl.code_banque as cb, pl.code_guichet as cg, pl.number as cc, pl.amount as somme,"; - $sql.= " f.facnumber as fac, pf.fk_facture as idfac, rib.datec, rib.iban_prefix as iban, rib.bic as bic, rib.rowid as drum"; + $sql.= " f.facnumber as fac, pf.fk_facture as idfac, rib.datec, rib.iban_prefix as iban, rib.bic as bic, rib.rowid as drum, rib.rum"; $sql.= " FROM"; $sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,"; $sql.= " ".MAIN_DB_PREFIX."facture as f,"; @@ -1375,7 +1375,7 @@ class BonPrelevement extends CommonObject while ($i < $num) { $obj = $this->db->fetch_object($resql); - $fileDebiteurSection .= $this->EnregDestinataireSEPA($obj->code, $obj->nom, $obj->address, $obj->zip, $obj->town, $obj->country_code, $obj->cb, $obj->cg, $obj->cc, $obj->somme, $obj->fac, $obj->idfac, $obj->iban, $obj->bic, $this->db->jdate($obj->datec), $obj->drum); + $fileDebiteurSection .= $this->EnregDestinataireSEPA($obj->code, $obj->nom, $obj->address, $obj->zip, $obj->town, $obj->country_code, $obj->cb, $obj->cg, $obj->cc, $obj->somme, $obj->fac, $obj->idfac, $obj->iban, $obj->bic, $this->db->jdate($obj->datec), $obj->drum, $obj->rum); $this->total = $this->total + $obj->somme; $i++; } @@ -1586,9 +1586,10 @@ class BonPrelevement extends CommonObject * @param string $row_bic rib.bic AS bic, * @param string $row_datec rib.datec, * @param string $row_drum rib.rowid used to generate rum + * @param string $row_rum rib.rum Rum defined on company bank account * @return string Return string with SEPA part DrctDbtTxInf */ - function EnregDestinataireSEPA($row_code_client, $row_nom, $row_address, $row_zip, $row_town, $row_country_code, $row_cb, $row_cg, $row_cc, $row_somme, $row_facnumber, $row_idfac, $row_iban, $row_bic, $row_datec, $row_drum) + function EnregDestinataireSEPA($row_code_client, $row_nom, $row_address, $row_zip, $row_town, $row_country_code, $row_cb, $row_cg, $row_cc, $row_somme, $row_facnumber, $row_idfac, $row_iban, $row_bic, $row_datec, $row_drum, $row_rum) { // phpcs:enable global $conf; @@ -1597,7 +1598,7 @@ class BonPrelevement extends CommonObject // Define value for RUM // Example: RUMCustomerCode-CustomerBankAccountId-01424448606 (note: Date is date of creation of CustomerBankAccountId) - $Rum = $this->buildRumNumber($row_code_client, $row_datec, $row_drum); + $Rum = empty($row_rum) ? $this->buildRumNumber($row_code_client, $row_datec, $row_drum) : $row_rum; // Define date of RUM signature $DtOfSgntr = dol_print_date($row_datec, '%Y-%m-%d'); From 41b004c2b837806eaaa29ffa4b63204e3c7a230e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 10 Jul 2019 12:16:32 +0200 Subject: [PATCH 247/944] FIX better compatibility with multicompany transverse mode --- htdocs/core/class/html.formother.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index 1883ffd0304..28683d23771 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -421,7 +421,7 @@ class FormOther if (! empty($user->admin) && empty($user->entity) && $conf->entity == 1) { $sql_usr.= " WHERE u.entity IS NOT NULL"; // Show all users } else { - $sql_usr.= " WHERE EXISTS (SELECT ug.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug WHERE u.rowid = ug.fk_user AND ug.entity IN (".getEntity('user')."))"; + $sql_usr.= " WHERE EXISTS (SELECT ug.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug WHERE u.rowid = ug.fk_user AND ug.entity IN (".getEntity('usergroup')."))"; $sql_usr.= " OR u.entity = 0"; // Show always superadmin } } @@ -444,7 +444,7 @@ class FormOther if (! empty($user->admin) && empty($user->entity) && $conf->entity == 1) { $sql_usr.= " WHERE u2.entity IS NOT NULL"; // Show all users } else { - $sql_usr.= " WHERE EXISTS (SELECT ug2.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug2 WHERE u2.rowid = ug2.fk_user AND ug2.entity IN (".getEntity('user')."))"; + $sql_usr.= " WHERE EXISTS (SELECT ug2.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug2 WHERE u2.rowid = ug2.fk_user AND ug2.entity IN (".getEntity('usergroup')."))"; } } else From cebf81a5146a6d02b4c9f1ebd736e6298e29b769 Mon Sep 17 00:00:00 2001 From: atm-lena Date: Wed, 10 Jul 2019 15:18:25 +0200 Subject: [PATCH 248/944] FIX helpp text --- htdocs/core/tpl/commonfields_edit.tpl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/tpl/commonfields_edit.tpl.php b/htdocs/core/tpl/commonfields_edit.tpl.php index ce41cff24d0..d23b9f09c2a 100644 --- a/htdocs/core/tpl/commonfields_edit.tpl.php +++ b/htdocs/core/tpl/commonfields_edit.tpl.php @@ -47,7 +47,7 @@ foreach($object->fields as $key => $val) if ($val['notnull'] > 0) print ' fieldrequired'; if ($val['type'] == 'text' || $val['type'] == 'html') print ' tdtop'; print '">'; - if (! empty($val['help'])) print $form->textwithpicto($langs->trans($val['label']), $val['help']); + if (! empty($val['help'])) print $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help'])); else print $langs->trans($val['label']); print ''; print ''; From a3f5397988c7437e34d1435ff86feec19104e0e6 Mon Sep 17 00:00:00 2001 From: atm-lena Date: Wed, 10 Jul 2019 15:55:50 +0200 Subject: [PATCH 249/944] FIX help text 2 --- htdocs/core/tpl/commonfields_view.tpl.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/tpl/commonfields_view.tpl.php b/htdocs/core/tpl/commonfields_view.tpl.php index b6b2e572e49..86a58d346fe 100644 --- a/htdocs/core/tpl/commonfields_view.tpl.php +++ b/htdocs/core/tpl/commonfields_view.tpl.php @@ -52,7 +52,7 @@ foreach($object->fields as $key => $val) if ($val['notnull'] > 0) print ' fieldrequired'; if ($val['type'] == 'text' || $val['type'] == 'html') print ' tdtop'; print '">'; - if (! empty($val['help'])) print $form->textwithpicto($langs->trans($val['label']), $val['help']); + if (! empty($val['help'])) print $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help'])); else print $langs->trans($val['label']); print ''; print ''; @@ -91,7 +91,7 @@ foreach($object->fields as $key => $val) if ($val['notnull'] > 0) print ' fieldrequired'; if ($val['type'] == 'text' || $val['type'] == 'html') print ' tdtop'; print '">'; - if (! empty($val['help'])) print $form->textwithpicto($langs->trans($val['label']), $val['help']); + if (! empty($val['help'])) print $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help'])); else print $langs->trans($val['label']); print ''; print ''; From cce8f98afc7638becb92e2a4e9344c7de40c2b21 Mon Sep 17 00:00:00 2001 From: gauthier Date: Wed, 10 Jul 2019 16:33:03 +0200 Subject: [PATCH 250/944] FIX : accounting mode must be taken from global conf, because there's no way to choose a mode with interface --- htdocs/compta/stats/byratecountry.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/stats/byratecountry.php b/htdocs/compta/stats/byratecountry.php index 2c43db42d13..cd41649cc89 100644 --- a/htdocs/compta/stats/byratecountry.php +++ b/htdocs/compta/stats/byratecountry.php @@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class. // Load translation files required by the page $langs->loadLangs(array("other","compta","banks","bills","companies","product","trips","admin","accountancy")); -$modecompta = GETPOST('modecompta','alpha'); +$modecompta = $conf->global->ACCOUNTING_MODE; // Date range $year=GETPOST("year",'int'); From abd0abf11531b196fe07e8bac545ea95071b95ef Mon Sep 17 00:00:00 2001 From: Nicolas ZABOURI Date: Wed, 10 Jul 2019 18:36:12 +0200 Subject: [PATCH 251/944] FIX element name in update_price --- htdocs/core/class/commonobject.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index f0fe7bf437c..43f78b571de 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -12,7 +12,7 @@ * Copyright (C) 2015 Alexandre Spangaro * Copyright (C) 2016 Bahfir abbes * Copyright (C) 2017 ATM Consulting - * Copyright (C) 2017 Nicolas ZABOURI + * Copyright (C) 2017-2019 Nicolas ZABOURI * Copyright (C) 2017 Rui Strecht * Copyright (C) 2018 Frederic France * @@ -2615,7 +2615,7 @@ abstract class CommonObject $MODULE = ""; if ($this->element == 'propal') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_PROPOSAL"; - elseif ($this->element == 'order') + elseif ($this->element == 'commande') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_ORDER"; elseif ($this->element == 'facture') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_INVOICE"; From 4f0316580672122e1154c148935d5e17264ad433 Mon Sep 17 00:00:00 2001 From: "atm-florian.m" Date: Thu, 11 Jul 2019 12:28:24 +0200 Subject: [PATCH 252/944] FIX: outdated phpdoc --- htdocs/expedition/class/expedition.class.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index a8d9acc7b48..ea6e003d326 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -1073,12 +1073,14 @@ class Expedition extends CommonObject } } - /** - * Delete shipment. - * Warning, do not delete a shipment if a delivery is linked to (with table llx_element_element) - * - * @return int >0 if OK, 0 if deletion done but failed to delete files, <0 if KO - */ + /** + * Delete shipment. + * Warning, do not delete a shipment if a delivery is linked to (with table llx_element_element) + * + * @param bool $also_update_stock true if the stock should be increased back (false by default) + * @return int >0 if OK, 0 if deletion done but failed to delete files, <0 if KO + * @throws Exception + */ function delete($also_update_stock = false) { global $conf, $langs, $user; From 694be619b26adfa705b2fd92675a4599da1f3fe7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 11 Jul 2019 22:16:32 +0200 Subject: [PATCH 253/944] Fix doxygen --- htdocs/product/class/product.class.php | 30 +++++++++++++++----------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index fc966f7f19a..9c515d619c6 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -272,13 +272,26 @@ class Product extends CommonObject public $accountancy_code_buy; /** - * Main barcode - * barcode value + * Main Barcode value * * @var string */ public $barcode; + /** + * Main Barcode type ID + * + * @var int + */ + public $barcode_type; + + /** + * Main Barcode type code + * + * @var string + */ + public $barcode_type_code; + /** * Additional barcodes (Some products have different barcodes according to the country of origin of manufacture) * @@ -294,7 +307,7 @@ class Product extends CommonObject public $multilangs=array(); - //! Taille de l'image + //! Size of image public $imgWidth; public $imgHeight; @@ -348,16 +361,7 @@ class Product extends CommonObject public $fields = array( - 'rowid' => array( - 'type'=>'integer', - 'label'=>'TechnicalID', - 'enabled'=>1, - 'visible'=>-2, - 'notnull'=>1, - 'index'=>1, - 'position'=>1, - 'comment'=>'Id', - ), + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), 'ref' =>array('type'=>'varchar(128)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'), 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), 'note_public' =>array('type'=>'html', 'label'=>'NotePublic', 'enabled'=>1, 'visible'=>0, 'position'=>61), From b1e21ed5fc302ebef8fe6b63dc336074ec997233 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 11 Jul 2019 22:18:44 +0200 Subject: [PATCH 254/944] FIX Computed field were not calculated into lists. --- htdocs/core/class/extrafields.class.php | 2 ++ .../core/tpl/extrafields_list_print_fields.tpl.php | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index eeb653aec8a..9e83a1d836b 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1627,6 +1627,8 @@ class ExtraFields if ($hidden) return ''; // This is a protection. If field is hidden, we should just not call this method. + //if ($computed) $value = // $value is already calculated into $value before calling this method + $showsize=0; if ($type == 'date') { diff --git a/htdocs/core/tpl/extrafields_list_print_fields.tpl.php b/htdocs/core/tpl/extrafields_list_print_fields.tpl.php index 1dad8a6739d..35aefb9f719 100644 --- a/htdocs/core/tpl/extrafields_list_print_fields.tpl.php +++ b/htdocs/core/tpl/extrafields_list_print_fields.tpl.php @@ -40,7 +40,17 @@ if (! empty($extrafieldsobjectkey)) // $extrafieldsobject is the $object->table_ { $value = $obj->$tmpkey; } - + // If field is a computed field, we make computation to get value + if ($extrafields->attributes[$extrafieldsobjectkey]['computed'][$key]) + { + //global $obj, $object; + //var_dump($extrafields->attributes[$extrafieldsobjectkey]['computed'][$key]); + //var_dump($obj); + //var_dump($extrafields->attributes[$extrafieldsobjectkey]['computed'][$key]); + $value = dol_eval($extrafields->attributes[$extrafieldsobjectkey]['computed'][$key], 1); + //var_dump($value); + } + print $extrafields->showOutputField($key, $value, '', $extrafieldsobjectkey); print ''; if (! $i) $totalarray['nbfield']++; From 332abd2a9f845ab0cfe969698ac0dbf38759853c Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 13 Jul 2019 11:02:45 +0200 Subject: [PATCH 255/944] FIX __INFOS__ tag not exists --- htdocs/install/mysql/data/llx_c_email_templates.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/data/llx_c_email_templates.sql b/htdocs/install/mysql/data/llx_c_email_templates.sql index 0c64fcf7d0d..87741d1054b 100644 --- a/htdocs/install/mysql/data/llx_c_email_templates.sql +++ b/htdocs/install/mysql/data/llx_c_email_templates.sql @@ -24,7 +24,7 @@ INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_u INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnAutoSubscription)' ,10,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',null, 0); -INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnMemberValidation)' ,20,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__', '__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourMembershipWasValidated)__
__INFOS__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',null, 0); +INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnMemberValidation)' ,20,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__', '__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourMembershipWasValidated)__
__(FirstName)__ : __MEMBER_FIRSTNAME__
__(LastName)__ : __MEMBER_LASTNAME__
__(ID)__ : __MEMBER_ID__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',null, 0); INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnNewSubscription)' ,30,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__', '__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__
\n\n

\n__(Sincerely)__
__USER_SIGNATURE__',null, 1); INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingReminderForExpiredSubscription)',40,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__', '__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(ThisIsContentOfSubscriptionReminderEmail)__
\n
__ONLINE_PAYMENT_TEXT_AND_URL__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',null, 0); INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnCancelation)' ,50,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__', '__(Hello)__ __MEMBER_FULLNAME__,

\n\n__(YourMembershipWasCanceled)__
\n

\n__(Sincerely)__
__USER_SIGNATURE__',null, 0); From b7df4a2cd04b6b8c13f78162e85a3ee660355dc6 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 13 Jul 2019 11:21:07 +0200 Subject: [PATCH 256/944] FIX this function can not be private --- htdocs/adherents/class/adherent.class.php | 2 +- htdocs/contact/class/contact.class.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 115d1fb8ab4..2001959240d 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -2447,7 +2447,7 @@ class Adherent extends CommonObject * 2=Return key only (uid=qqq) * @return string DN */ - private function _load_ldap_dn($info, $mode = 0) + public function _load_ldap_dn($info, $mode = 0) { // phpcs:enable global $conf; diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index de9494fca8b..74ff7bf5fb4 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -507,7 +507,7 @@ class Contact extends CommonObject * 2=Return key only (uid=qqq) * @return string DN */ - private function _load_ldap_dn($info, $mode = 0) + public function _load_ldap_dn($info, $mode = 0) { // phpcs:enable global $conf; From 4dab57b4947a4d965f253a824582db656239fd24 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 13 Jul 2019 11:24:25 +0200 Subject: [PATCH 257/944] FIX phpcs --- htdocs/adherents/class/adherent.class.php | 1 + htdocs/contact/class/contact.class.php | 1 + 2 files changed, 2 insertions(+) diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 2001959240d..d20fc34ec9d 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -2438,6 +2438,7 @@ class Adherent extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Retourne chaine DN complete dans l'annuaire LDAP pour l'objet * diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 74ff7bf5fb4..d6053a46b35 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -498,6 +498,7 @@ class Contact extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Retourne chaine DN complete dans l'annuaire LDAP pour l'objet * From f041110a7ef88cd8057d515bce96946c0242bf3f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 13 Jul 2019 22:29:50 +0200 Subject: [PATCH 258/944] 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 43f78b571de..579deec88e3 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2615,7 +2615,7 @@ abstract class CommonObject $MODULE = ""; if ($this->element == 'propal') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_PROPOSAL"; - elseif ($this->element == 'commande') + elseif ($this->element == 'commande' || $this->element == 'order') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_ORDER"; elseif ($this->element == 'facture') $MODULE = "MODULE_DISALLOW_UPDATE_PRICE_INVOICE"; From b6571d9fc3a27f147ace6d6794f6d58a9690a749 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 13 Jul 2019 22:39:25 +0200 Subject: [PATCH 259/944] Update byratecountry.php --- htdocs/compta/stats/byratecountry.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/stats/byratecountry.php b/htdocs/compta/stats/byratecountry.php index cd41649cc89..045f5e6429c 100644 --- a/htdocs/compta/stats/byratecountry.php +++ b/htdocs/compta/stats/byratecountry.php @@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class. // Load translation files required by the page $langs->loadLangs(array("other","compta","banks","bills","companies","product","trips","admin","accountancy")); -$modecompta = $conf->global->ACCOUNTING_MODE; +$modecompta = (GETPOST('modecompta', 'alpha') ? GETPOST('modecompta', 'alpha') : $conf->global->ACCOUNTING_MODE); // Date range $year=GETPOST("year",'int'); From 8090a8abb66619753ea5cca54d04ce92d71eae1c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 14 Jul 2019 00:07:27 +0200 Subject: [PATCH 260/944] Fix param [] -> null --- htdocs/adherents/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 0fbee667522..f0d8df454cf 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -646,7 +646,7 @@ if (empty($reshook)) if (empty($labeltouse) || (int) $labeltouse === -1) { //fallback on the old configuration. - setEventMessages('WarningMandatorySetupNotComplete', [], 'errors'); + setEventMessages('WarningMandatorySetupNotComplete', null, 'errors'); $error++; } else { From b66ad24d85577a95b2280285c6dc946fecffe0c1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 14 Jul 2019 00:10:15 +0200 Subject: [PATCH 261/944] Fix save of doc template for recuring invoices. --- htdocs/compta/facture/fiche-rec.php | 2 +- htdocs/core/class/html.form.class.php | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index 31a4affb95d..f195ab84324 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -1424,7 +1424,7 @@ else $list = array(); $models = ModelePDFFactures::liste_modeles($db); foreach ($models as $k => $model) { - $list[] = $k . ':' . $model; + $list[] = str_replace(':', '|', $k) . ':' . $model; } $select = 'select;'.implode(',', $list); print $form->editfieldval($langs->trans("Model"), 'modelpdf', $object->modelpdf, $object, $user->rights->facture->creer, $select); diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index a462f40ebdc..d2130e24291 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -152,7 +152,7 @@ class Form * @param string $value Value to show/edit * @param object $object Object * @param boolean $perm Permission to allow button to edit parameter - * @param string $typeofdata Type of data ('string' by default, 'email', 'amount:99', 'numeric:99', 'text' or 'textarea:rows:cols%', 'datepicker' ('day' do not work, don't know why), 'dayhour' or 'datepickerhour', 'ckeditor:dolibarr_zzz:width:height:savemethod:toolbarstartexpanded:rows:cols', 'select:xxx'...) + * @param string $typeofdata Type of data ('string' by default, 'email', 'amount:99', 'numeric:99', 'text' or 'textarea:rows:cols%', 'datepicker' ('day' do not work, don't know why), 'dayhour' or 'datepickerhour', 'ckeditor:dolibarr_zzz:width:height:savemethod:toolbarstartexpanded:rows:cols', 'select;xkey:xval,ykey:yval,...') * @param string $editvalue When in edit mode, use this value as $value instead of value (for example, you can provide here a formated price instead of value). Use '' to use same than $value * @param object $extObject External object * @param mixed $custommsg String or Array of custom messages : eg array('success' => 'MyMessage', 'error' => 'MyMessage') @@ -172,7 +172,7 @@ class Form if (empty($typeofdata)) return 'ErrorBadParameter'; // When option to edit inline is activated - if (! empty($conf->global->MAIN_USE_JQUERY_JEDITABLE) && ! preg_match('/^select;|datehourpicker/',$typeofdata)) // TODO add jquery timepicker + if (! empty($conf->global->MAIN_USE_JQUERY_JEDITABLE) && ! preg_match('/^select;|datehourpicker/',$typeofdata)) // TODO add jquery timepicker and support select { $ret.=$this->editInPlace($object, $value, $htmlname, $perm, $typeofdata, $editvalue, $extObject, $custommsg); } @@ -229,7 +229,8 @@ class Form foreach($arraydata as $val) { $tmp=explode(':',$val); - $arraylist[$tmp[0]]=$tmp[1]; + $tmpkey=str_replace('|', ':', $tmp[0]); + $arraylist[$tmpkey]=$tmp[1]; } $ret.=$this->selectarray($htmlname,$arraylist,$value); } @@ -298,7 +299,7 @@ class Form * @param string $value Value to show/edit * @param string $htmlname DIV ID (field name) * @param int $condition Condition to edit - * @param string $inputType Type of input ('string', 'numeric', 'datepicker' ('day' do not work, don't know why), 'textarea:rows:cols', 'ckeditor:dolibarr_zzz:width:height:?:1:rows:cols', 'select:xxx') + * @param string $inputType Type of input ('string', 'numeric', 'datepicker' ('day' do not work, don't know why), 'textarea:rows:cols', 'ckeditor:dolibarr_zzz:width:height:?:1:rows:cols', 'select:loadmethod:savemethod:buttononly') * @param string $editvalue When in edit mode, use this value as $value instead of value * @param object $extObject External object * @param mixed $custommsg String or Array of custom messages : eg array('success' => 'MyMessage', 'error' => 'MyMessage') From 2a05164bb119520e8a68c43aea99c399d10a8e43 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 14 Jul 2019 00:31:28 +0200 Subject: [PATCH 262/944] FIX Better PHP compatibility --- htdocs/adherents/card.php | 2 +- .../class/DataCollector/DolLogsCollector.php | 6 +++--- htdocs/public/stripe/confirm_payment.php | 20 ++++++++++--------- .../societe/class/api_thirdparties.class.php | 16 +++++++-------- htdocs/societe/paymentmodes.php | 2 +- htdocs/stripe/class/stripe.class.php | 2 +- 6 files changed, 25 insertions(+), 23 deletions(-) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 1e777d003d9..373e8b953f6 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -734,7 +734,7 @@ if (empty($reshook)) if (empty($labeltouse) || (int) $labeltouse === -1) { //fallback on the old configuration. - setEventMessages('WarningMandatorySetupNotComplete', [], 'errors'); + setEventMessages('WarningMandatorySetupNotComplete', null, 'errors'); $error++; } else { diff --git a/htdocs/debugbar/class/DataCollector/DolLogsCollector.php b/htdocs/debugbar/class/DataCollector/DolLogsCollector.php index 8e39c68b6b7..dd6fabd508f 100644 --- a/htdocs/debugbar/class/DataCollector/DolLogsCollector.php +++ b/htdocs/debugbar/class/DataCollector/DolLogsCollector.php @@ -144,7 +144,7 @@ class DolLogsCollector extends MessagesCollector $linecounter = $lines; $pos = -2; $beginning = false; - $text = []; + $text = array(); while ($linecounter > 0) { $t = " "; while ($t != "\n") { @@ -179,12 +179,12 @@ class DolLogsCollector extends MessagesCollector $pattern = "/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.*/"; $log_levels = $this->getLevels(); preg_match_all($pattern, $file, $matches); - $log = []; + $log = array(); foreach ($matches as $lines) { foreach ($lines as $line) { foreach ($log_levels as $level_key => $level) { if (strpos(strtolower($line), strtolower($level_key)) == 20) { - $log[] = ['level' => $level, 'line' => $line]; + $log[] = array('level' => $level, 'line' => $line); } } } diff --git a/htdocs/public/stripe/confirm_payment.php b/htdocs/public/stripe/confirm_payment.php index ea59b13dcb9..9ff9662ff84 100644 --- a/htdocs/public/stripe/confirm_payment.php +++ b/htdocs/public/stripe/confirm_payment.php @@ -15,6 +15,8 @@ * along with this program. If not, see . */ +// TODO Do we really need this page. We alread have a ipn.php page ! + define("NOLOGIN", 1); // This means this output page does not require to be logged. define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. @@ -105,13 +107,13 @@ $intent = null; try { if (isset($json_obj->payment_method_id)) { // Create the PaymentIntent - $intent = \Stripe\PaymentIntent::create([ + $intent = \Stripe\PaymentIntent::create(array( 'payment_method' => $json_obj->payment_method_id, 'amount' => 1099, 'currency' => 'eur', 'confirmation_method' => 'manual', 'confirm' => true, - ]); + )); } if (isset($json_obj->payment_intent_id)) { $intent = \Stripe\PaymentIntent::retrieve( @@ -122,9 +124,9 @@ try { generatePaymentResponse($intent); } catch (\Stripe\Error\Base $e) { // Display error on client - echo json_encode([ + echo json_encode(array( 'error' => $e->getMessage() - ]); + )); } /* @@ -138,22 +140,22 @@ function generatePaymentResponse($intent) if ($intent->status == 'requires_source_action' && $intent->next_action->type == 'use_stripe_sdk') { // Tell the client to handle the action - echo json_encode([ + echo json_encode(array( 'requires_action' => true, 'payment_intent_client_secret' => $intent->client_secret - ]); + )); } elseif ($intent->status == 'succeeded') { // The payment didn’t need any additional actions and completed! // Handle post-payment fulfillment // TODO - echo json_encode([ + echo json_encode(array( "success" => true - ]); + )); } else { // Invalid status http_response_code(500); - echo json_encode(['error' => 'Invalid PaymentIntent status']); + echo json_encode(array('error' => 'Invalid PaymentIntent status')); } } diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php index adae31e7677..95aad3a003b 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -1041,7 +1041,7 @@ $reshook = $hookmanager->executeHooks('replaceThirdparty', array( $i=0; - $accounts =[]; + $accounts = array(); if ($result) { @@ -1061,12 +1061,12 @@ $reshook = $hookmanager->executeHooks('replaceThirdparty', array( } - $fields = ['socid', 'default_rib', 'frstrecur', '1000110000001', 'datec', 'datem', 'label', 'bank', 'bic', 'iban', 'id', 'rum']; + $fields = array('socid', 'default_rib', 'frstrecur', '1000110000001', 'datec', 'datem', 'label', 'bank', 'bic', 'iban', 'id', 'rum'); - $returnAccounts = []; + $returnAccounts = array(); foreach($accounts as $account){ - $object= []; + $object= array(); foreach($account as $key => $value) if(in_array($key, $fields)){ $object[$key] = $value; @@ -1308,7 +1308,7 @@ $reshook = $hookmanager->executeHooks('replaceThirdparty', array( $i=0; - $accounts =[]; + $accounts = array(); $num = $db->num_rows($result); while ($i < $num) @@ -1322,12 +1322,12 @@ $reshook = $hookmanager->executeHooks('replaceThirdparty', array( $i++; } - $fields = ['id', 'fk_soc', 'key_account', 'site', 'date_creation', 'tms']; + $fields = array('id', 'fk_soc', 'key_account', 'site', 'date_creation', 'tms'); - $returnAccounts = []; + $returnAccounts = array(); foreach($accounts as $account){ - $object= []; + $object= array(); foreach($account as $key => $value) if(in_array($key, $fields)){ $object[$key] = $value; diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 0e41e11cbaa..51a7ccb24bb 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -639,7 +639,7 @@ if (empty($reshook)) try { if (preg_match('/pm_/', $source)) { - $payment_method = \Stripe\PaymentMethod::retrieve($source, ["stripe_account" => $stripeacc]); + $payment_method = \Stripe\PaymentMethod::retrieve($source, array("stripe_account" => $stripeacc)); if ($payment_method) { $payment_method->detach(); diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index d8d0c656dab..6b910236e96 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -389,7 +389,7 @@ class Stripe extends CommonObject "confirmation_method" => $mode, "amount" => $stripeamount, "currency" => $currency_code, - "payment_method_types" => ["card"], + "payment_method_types" => array("card"), "description" => $description, "statement_descriptor" => dol_trunc($tag, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) //"save_payment_method" => true, From e1d49177040c197c6027e53bd302e031ee46ab12 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 14 Jul 2019 00:39:42 +0200 Subject: [PATCH 263/944] FIX Missing field "Conciliated" into bank transaction export --- htdocs/core/modules/modBanque.class.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/modBanque.class.php b/htdocs/core/modules/modBanque.class.php index fb2c818043e..21c33d35170 100644 --- a/htdocs/core/modules/modBanque.class.php +++ b/htdocs/core/modules/modBanque.class.php @@ -150,14 +150,15 @@ class modBanque extends DolibarrModules $this->export_fields_array[$r]=array( 'b.rowid'=>'IdTransaction','ba.ref'=>'AccountRef','ba.label'=>'AccountLabel','b.datev'=>'DateValue','b.dateo'=>'DateOperation','b.label'=>'Label', 'b.num_chq'=>'ChequeOrTransferNumber','b.fk_bordereau'=>'ChequeBordereau','-b.amount'=>'Debit','b.amount'=>'Credit', - 'b.num_releve'=>'AccountStatement','b.datec'=>"DateCreation","bu.url_id"=>"IdThirdParty","s.nom"=>"ThirdParty", - "s.code_compta"=>"CustomerAccountancyCode","s.code_compta_fournisseur"=>"SupplierAccountancyCode" + 'b.num_releve'=>'AccountStatement','b.rappro'=>'Conciliated','b.datec'=>"DateCreation","bu.url_id"=>"IdThirdParty", + "s.nom"=>"ThirdParty","s.code_compta"=>"CustomerAccountancyCode","s.code_compta_fournisseur"=>"SupplierAccountancyCode" ); - $this->export_TypeFields_array[$r]=array('ba.ref'=>'Text','ba.label'=>'Text','b.datev'=>'Date','b.dateo'=>'Date','b.label'=>'Text','b.num_chq'=>'Text','b.fk_bordereau'=>'Text','-b.amount'=>'Numeric','b.amount'=>'Numeric','b.num_releve'=>'Text','b.datec'=>"Date","bu.url_id"=>"Text","s.nom"=>"Text","s.code_compta"=>"Text","s.code_compta_fournisseur"=>"Text"); + $this->export_TypeFields_array[$r]=array('ba.ref'=>'Text','ba.label'=>'Text','b.datev'=>'Date','b.dateo'=>'Date','b.label'=>'Text','b.num_chq'=>'Text','b.fk_bordereau'=>'Text','-b.amount'=>'Numeric','b.amount'=>'Numeric','b.num_releve'=>'Text','b.rappro'=>'Boolean','b.datec'=>"Date","bu.url_id"=>"Text","s.nom"=>"Text","s.code_compta"=>"Text","s.code_compta_fournisseur"=>"Text"); $this->export_entities_array[$r]=array( 'b.rowid'=>'account','ba.ref'=>'account','ba.label'=>'account','b.datev'=>'account','b.dateo'=>'account','b.label'=>'account', - 'b.num_chq'=>'account','b.fk_bordereau'=>'account','-b.amount'=>'account','b.amount'=>'account','b.num_releve'=>'account', - 'b.datec'=>"account","bu.url_id"=>"company","s.nom"=>"company","s.code_compta"=>"company","s.code_compta_fournisseur"=>"company" + 'b.num_chq'=>'account','b.fk_bordereau'=>'account','-b.amount'=>'account','b.amount'=>'account', + 'b.num_releve'=>'account','b.rappro'=>'account','b.datec'=>"account","bu.url_id"=>"company", + "s.nom"=>"company","s.code_compta"=>"company","s.code_compta_fournisseur"=>"company" ); $this->export_special_array[$r]=array('-b.amount'=>'NULLIFNEG','b.amount'=>'NULLIFNEG'); if (empty($conf->fournisseur->enabled)) From 294bc5dcb5e0fedca685b6976e4d7e042fa03067 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 15 Jul 2019 10:19:06 +0200 Subject: [PATCH 264/944] FIX avoid conflict with "$classname" in card.php --- htdocs/commande/card.php | 4 ++-- htdocs/core/tpl/object_discounts.tpl.php | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 10629ec3452..96ea54c5c84 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1436,11 +1436,11 @@ if ($action == 'create' && $user->rights->commande->creer) if ($element == 'order' || $element == 'commande') { $element = $subelement = 'commande'; } - if ($element == 'propal') { + elseif ($element == 'propal') { $element = 'comm/propal'; $subelement = 'propal'; } - if ($element == 'contract') { + elseif ($element == 'contract') { $element = $subelement = 'contrat'; } diff --git a/htdocs/core/tpl/object_discounts.tpl.php b/htdocs/core/tpl/object_discounts.tpl.php index 70698bfa7eb..3d02d3c5a73 100644 --- a/htdocs/core/tpl/object_discounts.tpl.php +++ b/htdocs/core/tpl/object_discounts.tpl.php @@ -24,7 +24,7 @@ * $backtopage URL to come back to from discount modification pages */ -$classname = get_class($object); +$objclassname = get_class($object); $isInvoice = in_array($object->element, array('facture', 'invoice', 'facture_fourn', 'invoice_supplier')); $isNewObject = empty($object->id) && empty($object->rowid); @@ -53,11 +53,11 @@ if($isNewObject) print ' ('.$addrelativediscount.')'; // Is there is commercial discount or down payment available ? if ($absolute_discount > 0) { - if ($cannotApplyDiscount || ! $isInvoice || $isNewObject || $object->statut > $classname::STATUS_DRAFT || $object->type == $classname::TYPE_CREDIT_NOTE || $object->type == $classname::TYPE_DEPOSIT) { + if ($cannotApplyDiscount || ! $isInvoice || $isNewObject || $object->statut > $objclassname::STATUS_DRAFT || $object->type == $objclassname::TYPE_CREDIT_NOTE || $object->type == $objclassname::TYPE_DEPOSIT) { $translationKey = ! empty($discount_type) ? 'HasAbsoluteDiscountFromSupplier' : 'CompanyHasAbsoluteDiscount'; $text = $langs->trans($translationKey, price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency)).'.'; - if ($isInvoice && ! $isNewObject && $object->statut > $classname::STATUS_DRAFT && $object->type != $classname::TYPE_CREDIT_NOTE && $object->type != $classname::TYPE_DEPOSIT) { + if ($isInvoice && ! $isNewObject && $object->statut > $objclassname::STATUS_DRAFT && $object->type != $objclassname::TYPE_CREDIT_NOTE && $object->type != $objclassname::TYPE_DEPOSIT) { $text = $form->textwithpicto($text, $langs->trans('AbsoluteDiscountUse')); } @@ -77,11 +77,11 @@ if ($absolute_discount > 0) { if ($absolute_creditnote > 0) { // If validated, we show link "add credit note to payment" - if ($cannotApplyDiscount || ! $isInvoice || $isNewObject || $object->statut != $classname::STATUS_VALIDATED || $object->type == $classname::TYPE_CREDIT_NOTE) { + if ($cannotApplyDiscount || ! $isInvoice || $isNewObject || $object->statut != $objclassname::STATUS_VALIDATED || $object->type == $objclassname::TYPE_CREDIT_NOTE) { $translationKey = ! empty($discount_type) ? 'HasCreditNoteFromSupplier' : 'CompanyHasCreditNote'; $text = $langs->trans($translationKey, price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency)) . '.'; - if ($isInvoice && ! $isNewObject && $object->statut == $classname::STATUS_DRAFT && $object->type != $classname::TYPE_DEPOSIT) { + if ($isInvoice && ! $isNewObject && $object->statut == $objclassname::STATUS_DRAFT && $object->type != $objclassname::TYPE_DEPOSIT) { $text = $form->textwithpicto($text, $langs->trans('CreditNoteDepositUse')); } @@ -101,7 +101,7 @@ if($absolute_discount <= 0 && $absolute_creditnote <= 0) { $translationKey = ! empty($discount_type) ? 'HasNoAbsoluteDiscountFromSupplier' : 'CompanyHasNoAbsoluteDiscount'; print '
'.$langs->trans($translationKey).'.'; - if ($isInvoice && $object->statut == $classname::STATUS_DRAFT && $object->type != $classname::TYPE_CREDIT_NOTE && $object->type != $classname::TYPE_DEPOSIT) { + if ($isInvoice && $object->statut == $objclassname::STATUS_DRAFT && $object->type != $objclassname::TYPE_CREDIT_NOTE && $object->type != $objclassname::TYPE_DEPOSIT) { print ' (' . $addabsolutediscount . ')'; } } From ae540cb25e5b6b671258f2c4ae71b2c5bca5d4ee Mon Sep 17 00:00:00 2001 From: "atm-florian.m" Date: Tue, 9 Jul 2019 18:00:54 +0200 Subject: [PATCH 265/944] FIX: add missing hook calls --- htdocs/fourn/product/list.php | 57 ++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/product/list.php b/htdocs/fourn/product/list.php index 16ed559814d..90ff76231d1 100644 --- a/htdocs/fourn/product/list.php +++ b/htdocs/fourn/product/list.php @@ -75,7 +75,12 @@ if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; } if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; } $parameters=array(); -$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +$reshook=$hookmanager->executeHooks( + 'doActions', + $parameters, + $object, + $action +); if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); if (empty($reshook)) @@ -128,6 +133,17 @@ $massactionbutton=$form->selectMassAction('', $arrayofmassactions); $sql = "SELECT p.rowid, p.label, p.ref, p.fk_product_type, p.entity,"; $sql.= " ppf.fk_soc, ppf.ref_fourn, ppf.price as price, ppf.quantity as qty, ppf.unitprice,"; $sql.= " s.rowid as socid, s.nom as name"; + +// Add fields to SELECT from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks( + 'printFieldListSelect', + $parameters, + $object, + $action +); +$sql .= $hookmanager->resPrint; + $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; if ($catid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON cp.fk_product = p.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as ppf ON p.rowid = ppf.fk_product"; @@ -158,6 +174,14 @@ if ($fourn_id > 0) $sql .= " AND ppf.fk_soc = ".$fourn_id; } +// Add WHERE filters from hooks +$parameters = array(); +$reshook = $hookmanager->executeHooks( + 'printFieldListWhere', + $parameters +); +$sql .= $hookmanager->resPrint; + $sql .= $db->order($sortfield,$sortorder); // Count total nb of records without orderby and limit @@ -242,6 +266,17 @@ if ($resql) print ''; print ''; print ''; + + // add filters from hooks + $parameters = array(); + $reshook = $hookmanager->executeHooks( + 'printFieldPreListTitle', + $parameters, + $object, + $action + ); + if (!empty($reshook)) print $hookmanager->resPrint; + print ''; $searchpicto=$form->showFilterButtons(); print $searchpicto; @@ -257,6 +292,16 @@ if ($resql) print_liste_field_titre("BuyingPrice",$_SERVER["PHP_SELF"], "ppf.price",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre("QtyMin",$_SERVER["PHP_SELF"], "ppf.quantity",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre("UnitPrice",$_SERVER["PHP_SELF"], "ppf.unitprice",$param,"",'align="right"',$sortfield,$sortorder); + + // add header cells from hooks + $parameters = array(); + $reshook = $hookmanager->executeHooks( + 'printFieldListTitle', + $parameters, + $object, + $action + ); + if (!empty($reshook)) print $hookmanager->resPrint; print_liste_field_titre('',$_SERVER["PHP_SELF"]); print "\n"; @@ -292,6 +337,16 @@ if ($resql) print ''.(isset($objp->unitprice) ? price($objp->unitprice) : '').''; + // add additional columns from hooks + $parameters = array(); + $reshook = $hookmanager->executeHooks( + 'printFieldListValue', + $parameters, + $objp, + $action + ); + if (!empty($reshook)) print $hookmanager->resPrint; + print ''; print "\n"; From 8aa147a4e518f7b1a4ba203c7825bcc8e82b2d79 Mon Sep 17 00:00:00 2001 From: "atm-florian.m" Date: Wed, 10 Jul 2019 19:00:20 +0200 Subject: [PATCH 266/944] # missing hooks from dispatch.php and list.php --- htdocs/fourn/commande/dispatch.php | 83 ++++++++++++++++++++++++++++++ htdocs/fourn/product/list.php | 11 ++-- 2 files changed, 91 insertions(+), 3 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 4b15f04faa0..af2a2218410 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -491,11 +491,35 @@ if ($id > 0 || ! empty($ref)) { $sql = "SELECT l.rowid, l.fk_product, l.subprice, l.remise_percent, l.ref AS sref, SUM(l.qty) as qty,"; $sql .= " p.ref, p.label, p.tobatch, p.fk_default_warehouse"; + + // Enable hooks to alter the SQL query (SELECT) + $parameters = array(); + $reshook = $hookmanager->executeHooks( + 'printFieldListSelect', + $parameters, + $object, + $action + ); + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + $sql .= $hookmanager->resPrint; + $sql .= " FROM " . MAIN_DB_PREFIX . "commande_fournisseurdet as l"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON l.fk_product=p.rowid"; $sql .= " WHERE l.fk_commande = " . $object->id; if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) $sql .= " AND l.product_type = 0"; + + // Enable hooks to alter the SQL query (WHERE) + $parameters = array(); + $reshook = $hookmanager->executeHooks( + 'printFieldListWhere', + $parameters, + $object, + $action + ); + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + $sql .= $hookmanager->resPrint; + $sql .= " GROUP BY p.ref, p.label, p.tobatch, l.rowid, l.fk_product, l.subprice, l.remise_percent, p.fk_default_warehouse"; // Calculation of amount dispatched is done per fk_product so we must group by fk_product $sql .= " ORDER BY p.ref, p.label"; @@ -526,6 +550,18 @@ if ($id > 0 || ! empty($ref)) { print '' . $langs->trans("QtyToDispatchShort") . ''; print ''; print '' . $langs->trans("Warehouse") . ''; + + // Enable hooks to append additional columns + $parameters = array(); + $reshook = $hookmanager->executeHooks( + 'printFieldListTitle', + $parameters, + $object, + $action + ); + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + print $hookmanager->resPrint; + print "\n"; } @@ -608,6 +644,23 @@ if ($id > 0 || ! empty($ref)) { //print img_picto($langs->trans('AddDispatchBatchLine'), 'split.png', 'onClick="addDispatchLine(' . $i . ',\'' . $type . '\')"'); print ''; // Dispatch column print ''; // Warehouse column + + // Enable hooks to append additional columns + $parameters = array( + 'is_information_row' => true, // allows hook to distinguish between the + // rows with information and the rows with + // dispatch form input + 'objp' => $objp + ); + $reshook = $hookmanager->executeHooks( + 'printFieldListValue', + $parameters, + $object, + $action + ); + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + print $hookmanager->resPrint; + print ''; print ''; @@ -648,6 +701,23 @@ if ($id > 0 || ! empty($ref)) { //print img_picto($langs->trans('AddStockLocationLine'), 'split.png', 'onClick="addDispatchLine(' . $i . ',\'' . $type . '\')"'); print ''; // Dispatch column print ''; // Warehouse column + + // Enable hooks to append additional columns + $parameters = array( + 'is_information_row' => true, // allows hook to distinguish between the + // rows with information and the rows with + // dispatch form input + 'objp' => $objp + ); + $reshook = $hookmanager->executeHooks( + 'printFieldListValue', + $parameters, + $object, + $action + ); + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + print $hookmanager->resPrint; + print ''; print ''; @@ -699,6 +769,19 @@ if ($id > 0 || ! empty($ref)) { } print "\n"; + // Enable hooks to append additional columns + $parameters = array( + 'is_information_row' => false // this is a dispatch form row + ); + $reshook = $hookmanager->executeHooks( + 'printFieldListValue', + $parameters, + $object, + $action + ); + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + print $hookmanager->resPrint; + print "\n"; } } diff --git a/htdocs/fourn/product/list.php b/htdocs/fourn/product/list.php index 90ff76231d1..acfeb87fca9 100644 --- a/htdocs/fourn/product/list.php +++ b/htdocs/fourn/product/list.php @@ -142,6 +142,7 @@ $reshook = $hookmanager->executeHooks( $object, $action ); +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); $sql .= $hookmanager->resPrint; $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; @@ -180,6 +181,7 @@ $reshook = $hookmanager->executeHooks( 'printFieldListWhere', $parameters ); +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); $sql .= $hookmanager->resPrint; $sql .= $db->order($sortfield,$sortorder); @@ -275,7 +277,8 @@ if ($resql) $object, $action ); - if (!empty($reshook)) print $hookmanager->resPrint; + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + print $hookmanager->resPrint; print ''; $searchpicto=$form->showFilterButtons(); @@ -301,7 +304,8 @@ if ($resql) $object, $action ); - if (!empty($reshook)) print $hookmanager->resPrint; + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + print $hookmanager->resPrint; print_liste_field_titre('',$_SERVER["PHP_SELF"]); print "\n"; @@ -345,7 +349,8 @@ if ($resql) $objp, $action ); - if (!empty($reshook)) print $hookmanager->resPrint; + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + print $hookmanager->resPrint; print ''; From 75ae611f9e49fead3aa825249b55734a5088cab4 Mon Sep 17 00:00:00 2001 From: "atm-florian.m" Date: Wed, 10 Jul 2019 17:53:14 +0200 Subject: [PATCH 267/944] FIX: calculation of $products_dispatched After the DB retrieval method was changed from fetch_row to fetch_object, the indices used became wrong. --- htdocs/fourn/commande/dispatch.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 4b15f04faa0..e6fa2937e0b 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -482,7 +482,7 @@ if ($id > 0 || ! empty($ref)) { if ($num) { while ( $i < $num ) { $objd = $db->fetch_object($resql); - $products_dispatched[$objd->rowid] = price2num($objd->qty, 5); + $products_dispatched[$objd->fk_product] = price2num($objd->qty, 5); $i++; } } @@ -540,7 +540,7 @@ if ($id > 0 || ! empty($ref)) { if (! $objp->fk_product > 0) { $nbfreeproduct++; } else { - $remaintodispatch = price2num($objp->qty - (( float ) $products_dispatched[$objp->rowid]), 5); // Calculation of dispatched + $remaintodispatch = price2num($objp->qty - (( float ) $products_dispatched[$objp->fk_product]), 5); // Calculation of dispatched if ($remaintodispatch < 0) $remaintodispatch = 0; From b155fdc014caaeea15848605ae75e82823819c1f Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Fri, 12 Jul 2019 15:04:47 +0200 Subject: [PATCH 268/944] FIX: wrong display (and hidden input) for already dispatched quantity --- htdocs/fourn/commande/dispatch.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index e6fa2937e0b..966be778773 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -556,7 +556,7 @@ if ($id > 0 || ! empty($ref)) { print '' . "\n"; // hidden fields for js function print ''; - print ''; + print ''; print ''; $linktoprod = '' . img_object($langs->trans("ShowProduct"), 'product') . ' ' . $objp->ref . ''; @@ -598,7 +598,7 @@ if ($id > 0 || ! empty($ref)) { print '' . $objp->qty . ''; // Already dispatched - print '' . $products_dispatched[$objp->rowid] . ''; + print '' . (float) $products_dispatched[$objp->fk_product] . ''; if (! empty($conf->productbatch->enabled) && $objp->tobatch == 1) { $type = 'batch'; From b0d46d492fdd738cab5b15202abb4414da373828 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 15 Jul 2019 18:40:42 +0200 Subject: [PATCH 269/944] FIX #11509 --- htdocs/adherents/subscription/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/subscription/list.php b/htdocs/adherents/subscription/list.php index e3eb9b595ee..e7967aa4782 100644 --- a/htdocs/adherents/subscription/list.php +++ b/htdocs/adherents/subscription/list.php @@ -229,7 +229,7 @@ if ($search_type) $param.="&search_type=".urlencode($search_type); if ($date_select) $param.="&date_select=".urlencode($date_select); if ($search_lastname) $param.="&search_lastname=".urlencode($search_lastname); if ($search_login) $param.="&search_login=".urlencode($search_login); -if ($search_acount) $param.="&search_account=".urlencode($search_account); +if ($search_account) $param.="&search_account=".urlencode($search_account); if ($search_amount) $param.="&search_amount=".urlencode($search_amount); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); // Add $param from extra fields From 5778a02ee1f195ad457a07de6b4f986d6e4cb49a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 15 Jul 2019 18:44:33 +0200 Subject: [PATCH 270/944] FIX #11505 --- htdocs/accountancy/journal/bankjournal.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index d4a9ff0d3f6..8003cf1c523 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -964,7 +964,7 @@ if (empty($action) || $action == 'view') { $varlink = 'id_journal=' . $id_journal; - journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink); + journalHead($nom, '', $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink); // Test that setup is complete From e3968241335b6dea66c1b5b2e7ed0d7768c40ae1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 15 Jul 2019 19:08:57 +0200 Subject: [PATCH 271/944] FIX #11507 --- htdocs/accountancy/admin/productaccount.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 562dfd1505b..1c72ea61abd 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -462,7 +462,7 @@ if ($result) // print '' . $obj->description . ''; // TODO: we shoul set a user defined value to adjust user square / wide screen size $trunclengh = empty($conf->global->ACCOUNTING_LENGTH_DESCRIPTION) ? 32 : $conf->global->ACCOUNTING_LENGTH_DESCRIPTION; - print '' . nl2br(dol_trunc($obj->description, $trunclengh)) . ''; + print '' . nl2br(dol_trunc($obj->description, $trunclengh)) . ''; } if ($accounting_product_mode == 'ACCOUNTANCY_SELL' || $accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_SELL_EXPORT') From 6c23154a91f683f300bac2b114acce2aa4c2d201 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 15 Jul 2019 22:59:18 +0200 Subject: [PATCH 272/944] FIX #11506 --- htdocs/accountancy/admin/journals_list.php | 20 +++++++++----------- htdocs/langs/en_US/accountancy.lang | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index cac81bfbcae..78cd92f90e0 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -162,7 +162,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) { if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey='Label'; if ($fieldnamekey == 'code') $fieldnamekey = 'Code'; - if ($fieldnamekey == 'nature') $fieldnamekey = 'Nature'; + if ($fieldnamekey == 'nature') $fieldnamekey = 'NatureOfJournal'; } // Other checks if (isset($_POST["code"])) @@ -437,7 +437,7 @@ if ($id) $valuetoshow=$langs->trans("Label"); } if ($fieldlist[$field]=='nature') { - $valuetoshow=$langs->trans("Nature"); + $valuetoshow=$langs->trans("NatureOfJournal"); } if ($valuetoshow != '') { @@ -516,7 +516,7 @@ if ($id) } // Title line with search boxes - print ''; + /*print ''; print ''; print ''; print ''; @@ -524,16 +524,14 @@ if ($id) print ''; print ''; print ''; - if ($filterfound) - { - $searchpicto=$form->showFilterAndCheckAddButtons(0); - print $searchpicto; - } + $searchpicto=$form->showFilterButtons(); + print $searchpicto; print ''; print ''; - + */ + // Title of lines - print ''; + print ''; foreach ($fieldlist as $field => $value) { // Determine le nom du champ par rapport aux noms possibles @@ -558,7 +556,7 @@ if ($id) $valuetoshow=$langs->trans("Label"); } if ($fieldlist[$field]=='nature') { - $valuetoshow=$langs->trans("Nature"); + $valuetoshow=$langs->trans("NatureOfJournal"); } // Affiche nom du champ diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 6dfe4fc8c4f..4b22f512826 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases From ea349de0818dddff6859aaca349d0878d9a57cf3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 15 Jul 2019 23:25:42 +0200 Subject: [PATCH 273/944] FIX #11498 --- dev/dolibarr_changes.txt | 9 +++++++++ htdocs/includes/mike42/escpos-php/Escpos.php | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt index 5bad55fd4d2..e87b082dd06 100644 --- a/dev/dolibarr_changes.txt +++ b/dev/dolibarr_changes.txt @@ -27,6 +27,15 @@ With +ESCPOS: +------- +Replace + private $connector; +With + protected $connector; + + + NUSOAP: ------- * In file nusoap.php, to avoid a warning, diff --git a/htdocs/includes/mike42/escpos-php/Escpos.php b/htdocs/includes/mike42/escpos-php/Escpos.php index 57e7eb2c8ac..b8568260738 100644 --- a/htdocs/includes/mike42/escpos-php/Escpos.php +++ b/htdocs/includes/mike42/escpos-php/Escpos.php @@ -144,9 +144,11 @@ class Escpos { /** * @var PrintConnector + * @CHANGE */ - private $connector; - + protected $connector; + // private $connector; + /** * @var AbstractCapabilityProfile */ From d694360c66bea525997c471f535948864574ece4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 15 Jul 2019 23:46:54 +0200 Subject: [PATCH 274/944] Fix warning --- htdocs/core/modules/modAgenda.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/modAgenda.class.php b/htdocs/core/modules/modAgenda.class.php index 3b7c05c5ad1..f84ad6cbcfa 100644 --- a/htdocs/core/modules/modAgenda.class.php +++ b/htdocs/core/modules/modAgenda.class.php @@ -418,6 +418,6 @@ class modAgenda extends DolibarrModules $this->export_sql_end[$r] .=' WHERE ac.entity IN ('.getEntity('agenda').')'; if (empty($user->rights->societe->client->voir)) $this->export_sql_end[$r] .=' AND (sc.fk_user = '.(empty($user)?0:$user->id).' OR ac.fk_soc IS NULL)'; if (empty($user->rights->agenda->allactions->read)) $this->export_sql_end[$r] .=' AND acr.fk_element = '.(empty($user)?0:$user->id); - $this->export_sql_order[$r] .=' ORDER BY ac.datep'; + $this->export_sql_order[$r] =' ORDER BY ac.datep'; } } From fb5af65f4d1bdb6925e95bca0f1ddb02f01355a7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 15 Jul 2019 23:56:05 +0200 Subject: [PATCH 275/944] FIX #11466 --- htdocs/product/price.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/htdocs/product/price.php b/htdocs/product/price.php index 26970f1dd13..6bc7033ec23 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -1711,20 +1711,18 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) } print ''; - // Update all child soc - print ''; - print $langs->trans('ForceUpdateChildPriceSoc'); - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; dol_fiche_end(); print '
'; + + // Update all child soc + print '
'; + print ' '; + print $langs->trans('ForceUpdateChildPriceSoc'); + print '
'; + print ''; print '     '; print ''; @@ -1804,10 +1802,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) // Update all child soc print ''; - print $langs->trans('ForceUpdateChildPriceSoc'); print ''; print ''; - print ''; print ''; print ''; @@ -1816,6 +1812,11 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) dol_fiche_end(); print '
'; + print '
'; + print ' '; + print $langs->trans('ForceUpdateChildPriceSoc'); + print "
"; + print ''; print '     '; print ''; @@ -2162,7 +2163,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) // Action if ($user->rights->produit->supprimer || $user->rights->service->supprimer) { - print ''; + print ''; print 'id . '&socid=' . $line->fk_soc . '">'; print img_info($langs->trans('PriceByCustomerLog')); print ''; From f826e9631cafe5e54cc6918714b81445713d4ea0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 16 Jul 2019 00:12:22 +0200 Subject: [PATCH 276/944] FIX #11463 --- htdocs/societe/agenda.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/agenda.php b/htdocs/societe/agenda.php index 13838812d9d..53a1ee5d7ed 100644 --- a/htdocs/societe/agenda.php +++ b/htdocs/societe/agenda.php @@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -$langs->load(array("companies", "bills", "propal", "orders")); +$langs->loadLangs(array("companies", "bills", "propal", "orders")); if (GETPOST('actioncode', 'array')) { From 70ff806fdffdd50435afb1e043ea59f5011bbe90 Mon Sep 17 00:00:00 2001 From: John Botella Date: Tue, 16 Jul 2019 10:41:01 +0200 Subject: [PATCH 277/944] fix fourn code preload --- htdocs/societe/card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index a8991614301..2a86465d4f2 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -949,12 +949,13 @@ else if(empty($duplicate_code_error)) { $object->code_client = GETPOST('customer_code', 'alpha'); $object->fournisseur = GETPOST('fournisseur')?GETPOST('fournisseur'):$object->fournisseur; + $object->code_fournisseur = GETPOST('supplier_code', 'alpha'); } else { setEventMessages($langs->trans('NewCustomerSupplierCodeProposed'),'', 'warnings'); } - $object->code_fournisseur = GETPOST('supplier_code', 'alpha'); + $object->address = GETPOST('address', 'alpha'); $object->zip = GETPOST('zipcode', 'alpha'); $object->town = GETPOST('town', 'alpha'); From c9fe91138d42963e6343923b0b812bfcb893051b Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 16 Jul 2019 12:39:43 +0200 Subject: [PATCH 278/944] FIX better compatibility with Multicompany --- htdocs/opensurvey/index.php | 16 +++------------- htdocs/ticket/index.php | 4 ++-- htdocs/ticket/list.php | 3 +-- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/htdocs/opensurvey/index.php b/htdocs/opensurvey/index.php index 4c60a807445..1ddfc47d99a 100644 --- a/htdocs/opensurvey/index.php +++ b/htdocs/opensurvey/index.php @@ -37,18 +37,6 @@ $langs->load("opensurvey"); llxHeader(); -$nbsondages=0; -$sql='SELECT COUNT(*) as nb FROM '.MAIN_DB_PREFIX.'opensurvey_sondage'; -$resql=$db->query($sql); -if ($resql) -{ - $obj=$db->fetch_object($resql); - $nbsondages=$obj->nb; -} -else dol_print_error($db,''); - - - print load_fiche_titre($langs->trans("OpenSurveyArea")); @@ -56,7 +44,9 @@ print '
'; $nbsondages=0; -$sql='SELECT COUNT(*) as nb FROM '.MAIN_DB_PREFIX.'opensurvey_sondage'; +$sql = 'SELECT COUNT(*) as nb'; +$sql.= ' FROM '.MAIN_DB_PREFIX.'opensurvey_sondage'; +$sql.= ' WHERE entity IN ('.getEntity('survey').')'; $resql=$db->query($sql); if ($resql) { diff --git a/htdocs/ticket/index.php b/htdocs/ticket/index.php index 086ea63bc0e..59a2bae5f46 100644 --- a/htdocs/ticket/index.php +++ b/htdocs/ticket/index.php @@ -127,7 +127,7 @@ if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", " . MAIN_DB_PREFIX . "societe_commerciaux as sc"; } -$sql .= ' WHERE t.entity IN (' . getEntity('ticket', 1) . ')'; +$sql .= ' WHERE t.entity IN (' . getEntity('ticket') . ')'; $sql .= " AND t.fk_statut IS NOT NULL"; $sql .= " AND date_format(datec,'%Y') = '" . $endyear . "'"; if (!$user->rights->societe->client->voir && !$socid) { @@ -271,7 +271,7 @@ if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", " . MAIN_DB_PREFIX . "societe_commerciaux as sc"; } -$sql .= ' WHERE t.entity IN (' . getEntity('ticket', 1) . ')'; +$sql .= ' WHERE t.entity IN (' . getEntity('ticket') . ')'; $sql .= " AND t.fk_statut=0"; if (!$user->rights->societe->client->voir && !$socid) { $sql .= " AND t.fk_soc = sc.fk_soc AND sc.fk_user = " . $user->id; diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php index 64ec859cc0c..965677ded0e 100644 --- a/htdocs/ticket/list.php +++ b/htdocs/ticket/list.php @@ -209,8 +209,7 @@ $sql.=$hookmanager->resPrint; $sql=preg_replace('/, $/','', $sql); $sql.= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t"; 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 (t.rowid = ef.fk_object)"; -if ($object->ismultientitymanaged == 1) $sql.= " WHERE t.entity IN (".getEntity($object->element).")"; -else $sql.=" WHERE 1 = 1"; +$sql.= " WHERE t.entity IN (".getEntity($object->element).")"; foreach($search as $key => $val) { if ($key == 'fk_statut' && $search[$key] == -1) continue; From 464bda996c5a846e3fea7d0df8d729285c6e2630 Mon Sep 17 00:00:00 2001 From: Marc de Lima Lucio Date: Tue, 16 Jul 2019 13:59:00 +0200 Subject: [PATCH 279/944] FIX: propal createFrom hook: undefined parameter attached --- htdocs/comm/propal/class/propal.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 647be1d0233..082281af1da 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1316,9 +1316,9 @@ class Propal extends CommonObject // Hook of thirdparty module if (is_object($hookmanager)) { - $parameters=array('objFrom'=>$this,'clonedObj'=>$clonedObj); + $parameters=array('objFrom'=>$this,'clonedObj'=>$object); $action=''; - $reshook=$hookmanager->executeHooks('createFrom',$parameters,$clonedObj,$action); // Note that $action and $object may have been modified by some hooks + $reshook=$hookmanager->executeHooks('createFrom',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) $error++; } } From c72a59ad36641ab13dbe382c8d52fb36d68b0461 Mon Sep 17 00:00:00 2001 From: gauthier Date: Tue, 16 Jul 2019 14:55:19 +0200 Subject: [PATCH 280/944] FIX : we need to be able to add freeline with qty between 0 & 1 in supplierorder line --- 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 9198cf3ac22..f32d9d24c01 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -1485,7 +1485,7 @@ class CommandeFournisseur extends CommonOrder $desc=trim($desc); // Check parameters - if ($qty < 1 && ! $fk_product) + if ($qty < 0 && ! $fk_product) { $this->error=$langs->trans("ErrorFieldRequired",$langs->trans("Product")); return -1; From aab23a15317a62e44f551eb71d43058e8f96b24e Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Tue, 16 Jul 2019 17:50:43 +0200 Subject: [PATCH 281/944] FIX : do not return formatted prices in json string --- 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 a68f09e5ee1..64c5063e8a2 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2594,7 +2594,7 @@ class Form } $opt.= "\n"; - $optJson = array('key'=>$outkey, 'value'=>$outref, 'label'=>$outval, 'label2'=>$outlabel, 'desc'=>$outdesc, 'type'=>$outtype, 'price_ht'=>$outprice_ht, 'price_ttc'=>$outprice_ttc, 'pricebasetype'=>$outpricebasetype, 'tva_tx'=>$outtva_tx, 'qty'=>$outqty, 'discount'=>$outdiscount, 'duration_value'=>$outdurationvalue, 'duration_unit'=>$outdurationunit); + $optJson = array('key'=>$outkey, 'value'=>$outref, 'label'=>$outval, 'label2'=>$outlabel, 'desc'=>$outdesc, 'type'=>$outtype, 'price_ht'=>price2num($outprice_ht), 'price_ttc'=>price2num($outprice_ttc), 'pricebasetype'=>$outpricebasetype, 'tva_tx'=>$outtva_tx, 'qty'=>$outqty, 'discount'=>$outdiscount, 'duration_value'=>$outdurationvalue, 'duration_unit'=>$outdurationunit); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps From b5d348356dbc590b50ec97b25fceae111e7ac91a Mon Sep 17 00:00:00 2001 From: John Botella Date: Wed, 17 Jul 2019 16:49:41 +0200 Subject: [PATCH 282/944] Fix socpeople assigned list in action com list --- htdocs/comm/action/list.php | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index 2d8be09ee7a..aae2d48e9cf 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -524,6 +524,7 @@ if ($resql) require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php'; $caction=new CActionComm($db); $arraylist=$caction->liste_array(1, 'code', '', (empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:0), '', 1); + $contactListCache = array(); while ($i < min($num,$limit)) { @@ -634,7 +635,34 @@ if ($resql) // Contact if (! empty($arrayfields['a.fk_contact']['checked'])) { print ''; - if ($obj->fk_contact > 0) + + + $actionstatic->fetchResources(); + if(!empty($actionstatic->socpeopleassigned)) + { + $contactList = array(); + foreach ($actionstatic->socpeopleassigned as $socpeopleId => $socpeopleassigned) + { + if(!isset($contactListCache[$socpeopleassigned['id']])) + { + // if no cache found we fetch it + $contact = new Contact($db); + if($contact->fetch($socpeopleassigned['id'])>0) + { + $contactListCache[$socpeopleassigned['id']] = $contact->getNomUrl(1,'',28); + $contactList[] = $contact->getNomUrl(1,'',28); + } + } + else{ + // use cache + $contactList[] = $contactListCache[$socpeopleassigned['id']]; + } + } + if(!empty($contactList)){ + print implode(', ', $contactList); + } + } + elseif ($obj->fk_contact > 0) //keep for retrocompatibility with faraway event { $contactstatic->id=$obj->fk_contact; $contactstatic->email=$obj->email; From 32bc8a5fafb51d4070014f29f84456b4690b1762 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Thu, 18 Jul 2019 11:05:51 +0200 Subject: [PATCH 283/944] FIX fournrprice log for insert --- htdocs/fourn/class/fournisseur.product.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index fc74890f150..49a7b1935cb 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -439,7 +439,7 @@ class ProductFournisseur extends Product $resql = $this->db->query($sql); if ($resql) { - $idinserted = $this->db->last_insert_id(MAIN_DB_PREFIX . "product_fournisseur_price"); + $this->product_fourn_price_id = $this->db->last_insert_id(MAIN_DB_PREFIX . "product_fournisseur_price"); } else { $error++; @@ -462,7 +462,7 @@ class ProductFournisseur extends Product if (empty($error)) { $this->db->commit(); - return $idinserted; + return $this->product_fourn_price_id; } else { $this->db->rollback(); return -1; From 5daf0316f95b351fadfb4fee11ae42f5d0387908 Mon Sep 17 00:00:00 2001 From: Christophe Battarel Date: Thu, 18 Jul 2019 11:18:25 +0200 Subject: [PATCH 284/944] also fix bad insert sql command --- htdocs/fourn/class/fournisseur.product.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index 49a7b1935cb..fa597ab8f7e 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -430,8 +430,8 @@ class ProductFournisseur extends Product $sql .= " " . $newnpr . ","; $sql .= $conf->entity . ","; $sql .= $delivery_time_days . ","; - $sql .= (empty($supplier_reputation) ? 'NULL' : "'" . $this->db->escape($supplier_reputation) . "'"); - $sql .= (empty($barcode) ? 'NULL' : "'" . $this->db->escape($barcode) . "'"); + $sql .= (empty($supplier_reputation) ? 'NULL' : "'" . $this->db->escape($supplier_reputation) . "'") . ","; + $sql .= (empty($barcode) ? 'NULL' : "'" . $this->db->escape($barcode) . "'") . ","; $sql .= (empty($fk_barcode_type) ? 'NULL' : "'" . $this->db->escape($fk_barcode_type) . "'"); $sql .= ")"; From 29974a5fbff5bb6347b2d112cff8446fa6992cdb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 18 Jul 2019 13:26:19 +0200 Subject: [PATCH 285/944] Fix css --- htdocs/blockedlog/admin/blockedlog_list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/blockedlog/admin/blockedlog_list.php b/htdocs/blockedlog/admin/blockedlog_list.php index 8150bae3e78..2a7bee7335f 100644 --- a/htdocs/blockedlog/admin/blockedlog_list.php +++ b/htdocs/blockedlog/admin/blockedlog_list.php @@ -495,7 +495,7 @@ if (is_array($blocks)) print ''.$object_link.''; // Amount - print ''.price($block->amounts).''; + print ''.price($block->amounts).''; // Details link print ''.img_info($langs->trans('ShowDetails')).''; From e976195777077a9acbf9ce058ac18ed47876529f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 18 Jul 2019 14:08:15 +0200 Subject: [PATCH 286/944] Fix missing key for api --- htdocs/user/list.php | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/htdocs/user/list.php b/htdocs/user/list.php index 8c780c703f7..9002b1eba82 100644 --- a/htdocs/user/list.php +++ b/htdocs/user/list.php @@ -81,8 +81,12 @@ $fieldstosearchall = array( 'u.firstname'=>"Firstname", 'u.accountancy_code'=>"AccountancyCode", 'u.email'=>"EMail", - 'u.note'=>"Note" + 'u.note'=>"Note", ); +if (! empty($conf->api->enabled)) +{ + $fieldstosearchall['u.api_key']="ApiKey"; +} // Definition of fields for list $arrayfields=array( @@ -93,6 +97,7 @@ $arrayfields=array( 'u.employee'=>array('label'=>$langs->trans("Employee"), 'checked'=>($mode=='employee'?1:0)), 'u.accountancy_code'=>array('label'=>$langs->trans("AccountancyCode"), 'checked'=>0), 'u.email'=>array('label'=>$langs->trans("EMail"), 'checked'=>1), + 'u.api_key'=>array('label'=>$langs->trans("ApiKey"), 'checked'=>0, "enabled"=>($conf->api->enabled && $user->admin)), 'u.fk_soc'=>array('label'=>$langs->trans("Company"), 'checked'=>1), 'u.entity'=>array('label'=>$langs->trans("Entity"), 'checked'=>1, 'enabled'=>(! empty($conf->multicompany->enabled) && empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))), 'u.fk_user'=>array('label'=>$langs->trans("HierarchicalResponsible"), 'checked'=>1), @@ -121,10 +126,10 @@ $search_gender=GETPOST('search_gender', 'alpha'); $search_employee=GETPOST('search_employee', 'alpha'); $search_accountancy_code=GETPOST('search_accountancy_code', 'alpha'); $search_email=GETPOST('search_email', 'alpha'); +$search_api_key=GETPOST('search_api_key', 'alphanohtml'); $search_statut=GETPOST('search_statut', 'intcomma'); $search_thirdparty=GETPOST('search_thirdparty', 'alpha'); $search_supervisor=GETPOST('search_supervisor', 'intcomma'); -$search_previousconn=GETPOST('search_previousconn', 'alpha'); $optioncss = GETPOST('optioncss', 'alpha'); $search_categ = GETPOST("search_categ", 'int'); $catid = GETPOST('catid', 'int'); @@ -165,6 +170,7 @@ if (empty($reshook)) $search_statut=""; $search_thirdparty=""; $search_supervisor=""; + $search_api_key=""; $search_datelastlogin=""; $search_datepreviouslogin=""; $search_date_creation=""; @@ -185,7 +191,7 @@ $user2=new User($db); $buttonviewhierarchy='
'; -$sql = "SELECT DISTINCT u.rowid, u.lastname, u.firstname, u.admin, u.fk_soc, u.login, u.email, u.accountancy_code, u.gender, u.employee, u.photo,"; +$sql = "SELECT DISTINCT u.rowid, u.lastname, u.firstname, u.admin, u.fk_soc, u.login, u.email, u.api_key, u.accountancy_code, u.gender, u.employee, u.photo,"; $sql.= " u.datelastlogin, u.datepreviouslogin,"; $sql.= " u.ldap_sid, u.statut, u.entity,"; $sql.= " u.tms as date_update, u.datec as date_creation,"; @@ -223,6 +229,7 @@ if (is_numeric($search_employee) && $search_employee >= 0) { } if ($search_accountancy_code != '') $sql.= natural_search("u.accountancy_code", $search_accountancy_code); if ($search_email != '') $sql.= natural_search("u.email", $search_email); +if ($search_api_key != '') $sql.= natural_search("u.api_key", $search_api_key); if ($search_statut != '' && $search_statut >= 0) $sql.= " AND u.statut IN (".$db->escape($search_statut).")"; if ($sall) $sql.= natural_search(array_keys($fieldstosearchall), $sall); if ($catid > 0) $sql.= " AND cu.fk_categorie = ".$catid; @@ -277,6 +284,7 @@ if ($search_gender != '') $param.="&search_gender=".urlencode($search_gender if ($search_employee != '') $param.="&search_employee=".urlencode($search_employee); if ($search_accountancy_code != '') $param.="&search_accountancy_code=".urlencode($search_accountancy_code); if ($search_email != '') $param.="&search_email=".urlencode($search_email); +if ($search_api_key != '') $param.="&search_api_key=".urlencode($search_api_key); if ($search_supervisor > 0) $param.="&search_supervisor=".urlencode($search_supervisor); if ($search_statut != '') $param.="&search_statut=".urlencode($search_statut); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); @@ -359,15 +367,15 @@ print ''; if (! empty($arrayfields['u.login']['checked'])) { - print ''; + print ''; } if (! empty($arrayfields['u.lastname']['checked'])) { - print ''; + print ''; } if (! empty($arrayfields['u.firstname']['checked'])) { - print ''; + print ''; } if (! empty($arrayfields['u.gender']['checked'])) { @@ -384,15 +392,19 @@ if (! empty($arrayfields['u.employee']['checked'])) } if (! empty($arrayfields['u.accountancy_code']['checked'])) { - print ''; + print ''; } if (! empty($arrayfields['u.email']['checked'])) { - print ''; + print ''; +} +if (! empty($arrayfields['u.api_key']['checked'])) +{ + print ''; } if (! empty($arrayfields['u.fk_soc']['checked'])) { - print ''; + print ''; } if (! empty($arrayfields['u.entity']['checked'])) { @@ -455,6 +467,7 @@ if (! empty($arrayfields['u.gender']['checked'])) print_liste_field_titr if (! empty($arrayfields['u.employee']['checked'])) print_liste_field_titre("Employee", $_SERVER['PHP_SELF'], "u.employee", $param, "", "", $sortfield, $sortorder); if (! empty($arrayfields['u.accountancy_code']['checked'])) print_liste_field_titre("AccountancyCode", $_SERVER['PHP_SELF'], "u.accountancy_code", $param, "", "", $sortfield, $sortorder); if (! empty($arrayfields['u.email']['checked'])) print_liste_field_titre("EMail", $_SERVER['PHP_SELF'], "u.email", $param, "", "", $sortfield, $sortorder); +if (! empty($arrayfields['u.api_key']['checked'])) print_liste_field_titre("ApiKey", $_SERVER['PHP_SELF'], "u.api_key", $param, "", "", $sortfield, $sortorder); if (! empty($arrayfields['u.fk_soc']['checked'])) print_liste_field_titre("Company", $_SERVER['PHP_SELF'], "u.fk_soc", $param, "", "", $sortfield, $sortorder); if (! empty($arrayfields['u.entity']['checked'])) print_liste_field_titre("Entity", $_SERVER['PHP_SELF'], "u.entity", $param, "", "", $sortfield, $sortorder); if (! empty($arrayfields['u.fk_user']['checked'])) print_liste_field_titre("HierarchicalResponsible", $_SERVER['PHP_SELF'], "u.fk_user", $param, "", "", $sortfield, $sortorder); @@ -542,6 +555,11 @@ while ($i < min($num, $limit)) print ''; if (! $i) $totalarray['nbfield']++; } + if (! empty($arrayfields['u.api_key']['checked'])) + { + print ''; + if (! $i) $totalarray['nbfield']++; + } if (! empty($arrayfields['u.fk_soc']['checked'])) { print "'; $linktoprod = '' . img_object($langs->trans("ShowProduct"), 'product') . ' ' . $objp->ref . ''; @@ -598,7 +598,7 @@ if ($id > 0 || ! empty($ref)) { print ''; // Already dispatched - print ''; + print ''; if (! empty($conf->productbatch->enabled) && $objp->tobatch == 1) { $type = 'batch'; From e404069d264afb2e5078aa92de029d8dd7c1da95 Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Thu, 18 Jul 2019 17:00:57 +0200 Subject: [PATCH 291/944] Revert "FIX: calculation of $products_dispatched" This reverts commit 75ae611f9e49fead3aa825249b55734a5088cab4. --- htdocs/fourn/commande/dispatch.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index e6fa2937e0b..4b15f04faa0 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -482,7 +482,7 @@ if ($id > 0 || ! empty($ref)) { if ($num) { while ( $i < $num ) { $objd = $db->fetch_object($resql); - $products_dispatched[$objd->fk_product] = price2num($objd->qty, 5); + $products_dispatched[$objd->rowid] = price2num($objd->qty, 5); $i++; } } @@ -540,7 +540,7 @@ if ($id > 0 || ! empty($ref)) { if (! $objp->fk_product > 0) { $nbfreeproduct++; } else { - $remaintodispatch = price2num($objp->qty - (( float ) $products_dispatched[$objp->fk_product]), 5); // Calculation of dispatched + $remaintodispatch = price2num($objp->qty - (( float ) $products_dispatched[$objp->rowid]), 5); // Calculation of dispatched if ($remaintodispatch < 0) $remaintodispatch = 0; From dbd68027f86329bc6ad061adb9d9b870f39f807f Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Thu, 18 Jul 2019 16:57:52 +0200 Subject: [PATCH 292/944] =?UTF-8?q?New=20script=20that=20links=20"orphaned?= =?UTF-8?q?"=20dispatch=20lines=20to=20order=20lines=20(the=20"orphans"=20?= =?UTF-8?q?are=20dispatch=20lines=20that=20were=20created=20in=20old=20ver?= =?UTF-8?q?sions=20of=20Dolibarr=20which=20didn=E2=80=99t=20have=20fk=5Fco?= =?UTF-8?q?mmandefourndet=20in=20llx=5Fcommande=5Ffournisseur=5Fdispatch)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._commande_fournisseur_dispatch_3.6-9.0.php | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 htdocs/fourn/commande/script/repair_llx_commande_fournisseur_dispatch_3.6-9.0.php diff --git a/htdocs/fourn/commande/script/repair_llx_commande_fournisseur_dispatch_3.6-9.0.php b/htdocs/fourn/commande/script/repair_llx_commande_fournisseur_dispatch_3.6-9.0.php new file mode 100644 index 00000000000..fec3c82cb56 --- /dev/null +++ b/htdocs/fourn/commande/script/repair_llx_commande_fournisseur_dispatch_3.6-9.0.php @@ -0,0 +1,165 @@ + + * + * 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 . + */ + +/** + * This script is meant to be run when upgrading from a dolibarr version < 3.8 + * to a newer version. + * + * Version 3.8 introduces a new column in llx_commande_fournisseur_dispatch, which + * matches the dispatch to a specific supplier order line (so that if there are + * several with the same product, the user can specifically tell which products of + * which line were dispatched where). + * + * However when migrating, the new column has a default value of 0, which means that + * old supplier orders whose lines were dispatched using the old dolibarr version + * have unspecific dispatch lines, which are not taken into account by the new version, + * thus making the order look like it was never dispatched at all. + * + * This scripts sets this foreign key to the first matching supplier order line whose + * product (and supplier order of course) are the same as the dispatch’s. + * + * If the dispatched quantity is more than indicated on the order line (this happens if + * there are several order lines for the same product), it creates new dispatch lines + * pointing to the other order lines accordingly, until all the dispatched quantity is + * accounted for. + */ + +// Dolibarr environment +$path_dir = '../../'; +$main_inc_file = 'main.inc.php'; +while ((false == @include($path_dir . $main_inc_file)) && 3*10 > strlen($path_dir)) { + $path_dir = '../' . $path_dir; + if (strlen($path_dir) > 20) { + echo 'Error: unable to include "' . $main_inc_file . '" from any of the parent directories.'; + exit; + } +} + +// Access control +if (!$user->admin) { + accessforbidden(); +} + +echo '

Repair llx_commande_fournisseur_dispatch.fk_commandefourndet

'; +echo '

Repair in progress. This may take a while.

'; + +echo '
';
+//$sql = 'UPDATE ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch AS dispatch SET dispatch.fk_commandefourndet =
+//           ( SELECT rowid FROM ' . MAIN_DB_PREFIX . 'commande_fournisseurdet AS line
+//            WHERE line.fk_commande = dispatch.fk_commande LIMIT 1) WHERE dispatch.fk_commandefourndet = 0;';
+
+$sql_dispatch = 'SELECT * FROM ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch WHERE COALESCE(fk_commandefourndet, 0) = 0';
+//$sql_dispatch = 'SELECT * FROM ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch WHERE fk_commandefourndet = 0 OR fk_commandefourndet IS NULL';
+$db->begin();
+$resql_dispatch = $db->query($sql_dispatch);
+$n_processed_rows = 0;
+$errors = array();
+if ($resql_dispatch) {
+    if ($db->num_rows($resql_dispatch) == 0) {
+        echo 'Nothing to do.'; exit;
+    };
+    while ($obj_dispatch = $db->fetch_object($resql_dispatch)) {
+        $sql_line = 'SELECT line.rowid, line.qty FROM ' . MAIN_DB_PREFIX . 'commande_fournisseurdet AS line'
+            .  ' WHERE line.fk_commande = ' . $obj_dispatch->fk_commande
+            .  ' AND line.fk_product = ' . $obj_dispatch->fk_product;
+        $resql_line = $db->query($sql_line);
+
+        // s’il y a plusieurs lignes avec le même produit sur cette commande fournisseur,
+        // on divise la ligne de dispatch en autant de lignes qu’on en a sur la commande pour le produit
+        // et on met la quantité de la ligne dans la limite du "budget" indiqué par dispatch.qty
+
+        $remaining_qty = $obj_dispatch->qty;
+        $first_iteration = true;
+        if (!$resql_line) {
+            echo 'Unable to find a matching supplier order line for dispatch #' . $obj_dispatch->rowid . "\n";
+            $errors[] = $sql_line;
+            $n_processed_rows++;
+            continue;
+        }
+        if ($db->num_rows($resql_line) == 0) continue;
+        while ($obj_line = $db->fetch_object($resql_line)) {
+            if (!$remaining_qty) break;
+            if (!$obj_line->rowid) {
+                continue;
+            }
+            $qty_for_line = min($remaining_qty, $obj_line->qty);
+            if ($first_iteration) {
+                $sql_attach = 'UPDATE ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch'
+                    . ' SET fk_commandefourndet = ' . $obj_line->rowid . ', qty = ' . $qty_for_line
+                    . ' WHERE rowid = ' . $obj_dispatch->rowid;
+                $first_iteration = false;
+            } else {
+                $sql_attach_values = array(
+                    $obj_dispatch->fk_commande,
+                    $obj_dispatch->fk_product,
+                    $obj_line->rowid,
+                    $qty_for_line,
+                    $obj_dispatch->fk_entrepot,
+                    $obj_dispatch->fk_user,
+                    $obj_dispatch->datec ? '"' . $db->escape($obj_dispatch->datec) . '"' : 'NULL',
+                    $obj_dispatch->comment ? '"' . $db->escape($obj_dispatch->comment) . '"' : 'NULL',
+                    $obj_dispatch->status ?: 'NULL',
+                    $obj_dispatch->tms ? '"' . $db->escape($obj_dispatch->tms) . '"': 'NULL',
+                    $obj_dispatch->batch ?: 'NULL',
+                    $obj_dispatch->eatby ? '"' . $db->escape($obj_dispatch->eatby) . '"': 'NULL',
+                    $obj_dispatch->sellby ? '"' . $db->escape($obj_dispatch->sellby) . '"': 'NULL'
+                );
+                $sql_attach_values = join(', ', $sql_attach_values);
+
+                $sql_attach = 'INSERT INTO ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch'
+                    . ' (fk_commande, fk_product, fk_commandefourndet, qty, fk_entrepot, fk_user, datec, comment, status, tms, batch, eatby, sellby)'
+                    . ' VALUES (' . $sql_attach_values . ')';
+            }
+            $resql_attach = $db->query($sql_attach);
+            if ($resql_attach) {
+                $remaining_qty -= $qty_for_line;
+            } else {
+                $errors[] = $sql_attach;
+            }
+            $first_iteration = false;
+        }
+        $n_processed_rows++;
+
+        // report progress every 256th row
+        if (!($n_processed_rows & 0xff)) {
+            echo 'Processed ' . $n_processed_rows . ' rows with ' . count($errors) . ' errors…' . "\n";
+            flush();
+            ob_flush();
+        }
+
+    }
+} else {
+    echo 'Unable to find any dispatch without an fk_commandefourndet.' . "\n";
+    echo $sql_dispatch . "\n";
+}
+echo 'Fixed ' . $n_processed_rows . ' rows with ' . count($errors) . ' errors…' . "\n";
+echo 'DONE.' . "\n";
+echo '
'; + +if (count($errors)) { + $db->rollback(); + echo 'The transaction was rolled back due to errors: nothing was changed by the script.'; +} else { + $db->commit(); +} +$db->close(); + + +echo '

SQL queries with errors:

'; +echo '
  • ' . join('
  • ', $errors) . '
'; + From f53f314211a29624cd3f61b8d3d2994ce9b69dc4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 18 Jul 2019 17:15:50 +0200 Subject: [PATCH 293/944] Update fournisseur.product.class.php --- htdocs/fourn/class/fournisseur.product.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index fa597ab8f7e..6847af5edf1 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -439,7 +439,7 @@ class ProductFournisseur extends Product $resql = $this->db->query($sql); if ($resql) { - $this->product_fourn_price_id = $this->db->last_insert_id(MAIN_DB_PREFIX . "product_fournisseur_price"); + $idinserted = $this->db->last_insert_id(MAIN_DB_PREFIX . "product_fournisseur_price"); } else { $error++; @@ -462,6 +462,7 @@ class ProductFournisseur extends Product if (empty($error)) { $this->db->commit(); + $this->product_fourn_price_id = $idinserted; return $this->product_fourn_price_id; } else { $this->db->rollback(); From e54887213357668d4173824d0bcc0977a1659549 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 18 Jul 2019 17:23:05 +0200 Subject: [PATCH 294/944] Update prelevement.php --- htdocs/compta/facture/prelevement.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/facture/prelevement.php b/htdocs/compta/facture/prelevement.php index eb1493fcad0..9e1d9bef887 100644 --- a/htdocs/compta/facture/prelevement.php +++ b/htdocs/compta/facture/prelevement.php @@ -61,7 +61,7 @@ if ($id > 0 || ! empty($ref)) } } -$hookmanager->initHooks(array('levycard','globalcard')); +$hookmanager->initHooks(array('directdebitcard','globalcard')); From b3182f65bc98db714a157c535db031845c5a007c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 18 Jul 2019 17:23:52 +0200 Subject: [PATCH 295/944] Update create.php --- htdocs/compta/prelevement/create.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/prelevement/create.php b/htdocs/compta/prelevement/create.php index d083d58fb26..8616fe5f528 100644 --- a/htdocs/compta/prelevement/create.php +++ b/htdocs/compta/prelevement/create.php @@ -51,7 +51,7 @@ $page = GETPOST("page",'int'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 $offset = $limit * $page; -$hookmanager->initHooks(array('levycreatecard','globalcard')); +$hookmanager->initHooks(array('directdebitcreatecard','globalcard')); /* From a09d33b4277e41e7ae94f29223984b116cbfe4be Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 18 Jul 2019 17:47:00 +0200 Subject: [PATCH 296/944] Fix responsive --- htdocs/admin/holiday.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/holiday.php b/htdocs/admin/holiday.php index e3571fdb253..27dddf8668a 100644 --- a/htdocs/admin/holiday.php +++ b/htdocs/admin/holiday.php @@ -201,6 +201,7 @@ dol_fiche_head($head, 'holiday', $langs->trans("Holidays"), -1, 'holiday'); print load_fiche_titre($langs->trans("HolidaysNumberingModules"), '', ''); +print '
'; print '
'.$obj->email.''.$obj->api_key.'"; From 3b393e818a786b92b6a67de96cd909ca1662fe8f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 18 Jul 2019 14:17:29 +0200 Subject: [PATCH 287/944] Fix missing entity property into fetch --- htdocs/projet/class/project.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 6b1d5e0a07f..cbee8d181ca 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -440,7 +440,7 @@ class Project extends CommonObject $sql = "SELECT rowid, ref, title, description, public, datec, opp_amount, budget_amount,"; $sql.= " tms, dateo, datee, date_close, fk_soc, fk_user_creat, fk_user_modif, fk_user_close, fk_statut, fk_opp_status, opp_percent,"; - $sql.= " note_private, note_public, model_pdf, bill_time"; + $sql.= " note_private, note_public, model_pdf, bill_time, entity"; $sql.= " FROM " . MAIN_DB_PREFIX . "projet"; if (! empty($id)) { @@ -488,6 +488,7 @@ class Project extends CommonObject $this->budget_amount = $obj->budget_amount; $this->modelpdf = $obj->model_pdf; $this->bill_time = (int) $obj->bill_time; + $this->entity = $obj->entity; $this->db->free($resql); From c961a397c480438be5c1ca78ec9bc4753b49f37b Mon Sep 17 00:00:00 2001 From: atm-ph Date: Thu, 18 Jul 2019 15:40:50 +0200 Subject: [PATCH 288/944] Fix missing hook then can't interact with actions --- htdocs/compta/facture/prelevement.php | 54 ++++++++++++++++----------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/htdocs/compta/facture/prelevement.php b/htdocs/compta/facture/prelevement.php index 6d5d52ce503..eb1493fcad0 100644 --- a/htdocs/compta/facture/prelevement.php +++ b/htdocs/compta/facture/prelevement.php @@ -61,42 +61,52 @@ if ($id > 0 || ! empty($ref)) } } +$hookmanager->initHooks(array('levycard','globalcard')); + + /* * Actions */ -if ($action == "new") +$parameters = array('socid' => $socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) { - if ($object->id > 0) + if ($action == "new") { - $db->begin(); - - $result = $object->demande_prelevement($user, GETPOST('withdraw_request_amount')); - if ($result > 0) + if ($object->id > 0) { - $db->commit(); + $db->begin(); - setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); - } - else - { - $db->rollback(); - setEventMessages($object->error, $object->errors, 'errors'); + $result = $object->demande_prelevement($user, GETPOST('withdraw_request_amount')); + if ($result > 0) + { + $db->commit(); + + setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); + } + else + { + $db->rollback(); + setEventMessages($object->error, $object->errors, 'errors'); + } } + $action=''; } - $action=''; -} -if ($action == "delete") -{ - if ($object->id > 0) + if ($action == "delete") { - $result = $object->demande_prelevement_delete($user, GETPOST('did')); - if ($result == 0) + if ($object->id > 0) { - header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); - exit; + $result = $object->demande_prelevement_delete($user, GETPOST('did')); + if ($result == 0) + { + header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id); + exit; + } } } } From 984fe9834256fa3169f753589b414dab9fea82d2 Mon Sep 17 00:00:00 2001 From: atm-ph Date: Thu, 18 Jul 2019 16:12:42 +0200 Subject: [PATCH 289/944] Fix missing hook --- htdocs/compta/prelevement/create.php | 69 ++++++++++++++++------------ 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/htdocs/compta/prelevement/create.php b/htdocs/compta/prelevement/create.php index 02ccee567f5..d083d58fb26 100644 --- a/htdocs/compta/prelevement/create.php +++ b/htdocs/compta/prelevement/create.php @@ -51,43 +51,54 @@ $page = GETPOST("page",'int'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 $offset = $limit * $page; +$hookmanager->initHooks(array('levycreatecard','globalcard')); + + /* * Actions */ -// Change customer bank information to withdraw -if ($action == 'modify') +$parameters = array('mode' => $mode, 'format' => $format, 'limit' => $limit, 'page' => $page, 'offset' => $offset); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + + +if (empty($reshook)) { - for ($i = 1 ; $i < 9 ; $i++) - { - dolibarr_set_const($db, GETPOST("nom$i"), GETPOST("value$i"),'chaine',0,'',$conf->entity); - } -} -if ($action == 'create') -{ - // $conf->global->PRELEVEMENT_CODE_BANQUE and $conf->global->PRELEVEMENT_CODE_GUICHET should be empty - $bprev = new BonPrelevement($db); + // Change customer bank information to withdraw + if ($action == 'modify') + { + for ($i = 1 ; $i < 9 ; $i++) + { + dolibarr_set_const($db, GETPOST("nom$i"), GETPOST("value$i"),'chaine',0,'',$conf->entity); + } + } + if ($action == 'create') + { + // $conf->global->PRELEVEMENT_CODE_BANQUE and $conf->global->PRELEVEMENT_CODE_GUICHET should be empty + $bprev = new BonPrelevement($db); $executiondate = dol_mktime(0, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')); $result = $bprev->create($conf->global->PRELEVEMENT_CODE_BANQUE, $conf->global->PRELEVEMENT_CODE_GUICHET, $mode, $format,$executiondate); - if ($result < 0) - { - setEventMessages($bprev->error, $bprev->errors, 'errors'); - } - elseif ($result == 0) - { - $mesg=$langs->trans("NoInvoiceCouldBeWithdrawed", $format); - setEventMessages($mesg, null, 'errors'); - $mesg.='
'."\n"; - foreach($bprev->invoice_in_error as $key => $val) - { - $mesg.=''.$val."
\n"; - } - } - else - { - setEventMessages($langs->trans("DirectDebitOrderCreated", $bprev->getNomUrl(1)), null); - } + if ($result < 0) + { + setEventMessages($bprev->error, $bprev->errors, 'errors'); + } + elseif ($result == 0) + { + $mesg=$langs->trans("NoInvoiceCouldBeWithdrawed", $format); + setEventMessages($mesg, null, 'errors'); + $mesg.='
'."\n"; + foreach($bprev->invoice_in_error as $key => $val) + { + $mesg.=''.$val."
\n"; + } + } + else + { + setEventMessages($langs->trans("DirectDebitOrderCreated", $bprev->getNomUrl(1)), null); + } + } } From 770b4197699d0a9a23ac25b99e2fc60281ba8c7b Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Thu, 18 Jul 2019 17:00:46 +0200 Subject: [PATCH 290/944] Revert "FIX: wrong display (and hidden input) for already dispatched quantity" This reverts commit b155fdc014caaeea15848605ae75e82823819c1f. --- htdocs/fourn/commande/dispatch.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php index 966be778773..e6fa2937e0b 100644 --- a/htdocs/fourn/commande/dispatch.php +++ b/htdocs/fourn/commande/dispatch.php @@ -556,7 +556,7 @@ if ($id > 0 || ! empty($ref)) { print '' . "\n"; // hidden fields for js function print ''; - print ''; + print ''; print '
' . $objp->qty . '' . (float) $products_dispatched[$objp->fk_product] . '' . $products_dispatched[$objp->rowid] . '
'; print ''; print ''; @@ -294,8 +295,10 @@ foreach ($dirmodels as $reldir) } } -print '
'.$langs->trans("Name").'

'; +print ''; +print '
'; +print '
'; if ($conf->global->MAIN_FEATURES_LEVEL >= 2) @@ -331,6 +334,7 @@ else } +print '
'; print ''; print ''; print ''; @@ -457,6 +461,7 @@ foreach ($dirmodels as $reldir) } print '
'.$langs->trans("Name").'
'; +print '
'; print "
"; @@ -469,6 +474,8 @@ print ''; print ''; print load_fiche_titre($langs->trans("OtherOptions"), '', ''); + +print '
'; print ''; print ''; print ''; @@ -506,6 +513,8 @@ print ''."\n"; print '
'.$langs->trans("Parameter").'
'; +print '
'; + print '
'; print ''; From fcd95ce0732dd5fc62a2a45cb605f01ac5068142 Mon Sep 17 00:00:00 2001 From: atm-ph Date: Thu, 18 Jul 2019 18:04:05 +0200 Subject: [PATCH 297/944] Fix missing trigger call --- .../prelevement/class/bonprelevement.class.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 89aa09523e7..1574fc3eb60 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -1136,12 +1136,22 @@ class BonPrelevement extends CommonObject * Get object and lines from database * * @param User $user Object user that delete + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers * @return int >0 if OK, <0 if KO */ - function delete($user=null) + function delete($user=null, $notrigger = 0) { $this->db->begin(); + $error = 0; + if (! $notrigger) + { + // Call trigger + $result=$this->call_trigger('BON_PRELEVEMENT_DELETE', $user); + if ($result < 0) $error++; + // End call triggers + } + $sql = "DELETE FROM ".MAIN_DB_PREFIX."prelevement_facture WHERE fk_prelevement_lignes IN (SELECT rowid FROM ".MAIN_DB_PREFIX."prelevement_lignes WHERE fk_prelevement_bons = ".$this->id.")"; $resql1=$this->db->query($sql); if (! $resql1) dol_print_error($this->db); @@ -1158,7 +1168,7 @@ class BonPrelevement extends CommonObject $resql4=$this->db->query($sql); if (! $resql4) dol_print_error($this->db); - if ($resql1 && $resql2 && $resql3) + if ($resql1 && $resql2 && $resql3 && !$error) { $this->db->commit(); return 1; From 58428cefc0d08f548622b99187107eb42831ea09 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 18 Jul 2019 18:53:51 +0200 Subject: [PATCH 298/944] Fix phpcs --- htdocs/comm/action/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index 6e46aee2435..1fbae964dff 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -660,8 +660,8 @@ if ($resql) $contact = new Contact($db); if($contact->fetch($socpeopleassigned['id'])>0) { - $contactListCache[$socpeopleassigned['id']] = $contact->getNomUrl(1,'',28); - $contactList[] = $contact->getNomUrl(1,'',28); + $contactListCache[$socpeopleassigned['id']] = $contact->getNomUrl(1, '', 28); + $contactList[] = $contact->getNomUrl(1, '', 28); } } else{ From 6c3a30e872501863d63936d194f48045c24d10eb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 03:05:55 +0200 Subject: [PATCH 299/944] Fix log --- htdocs/core/lib/website.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index 198f91a4446..29a2ab27d8f 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -185,7 +185,7 @@ function dolWebsiteOutput($content) global $db, $langs, $conf, $user; global $dolibarr_main_url_root, $dolibarr_main_data_root; - dol_syslog("dolWebsiteOutput start (USEDOLIBARRSERVER=".(defined('USEDOLIBARRSERVER')?'1':'')." (USEDOLIBARREDITOR=".(defined('USEDOLIBARREDITOR')?'1':'').')'); + dol_syslog("dolWebsiteOutput start (USEDOLIBARRSERVER=".(defined('USEDOLIBARRSERVER')?'1':'')." USEDOLIBARREDITOR=".(defined('USEDOLIBARREDITOR')?'1':'').')'); // Define $urlwithroot $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); From fe89e158fe384bf103db7d653c83dca2256be7e4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 04:02:42 +0200 Subject: [PATCH 300/944] Fix: Avoid deletion of system entries in dictionary --- htdocs/admin/dict.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 11cd105137c..87e072b8d7e 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -1622,7 +1622,11 @@ if ($id) elseif ($obj->code == 'RECEP') { $iserasable = 0; $canbedisabled = 0; } elseif ($obj->code == 'EF0') { $iserasable = 0; $canbedisabled = 0; } } - + if ($id == 25 && in_array($obj->code, array('banner', 'blogpost', 'other', 'page'))) + { + $iserasable = 0; $canbedisabled = 0; + if (in_array($obj->code, array('banner'))) $canbedisabled = 1; + } if (isset($obj->type) && in_array($obj->type, array('system', 'systemauto'))) { $iserasable=0; } if (in_array($obj->code, array('AC_OTH','AC_OTH_AUTO')) || in_array($obj->type, array('systemauto'))) { $canbedisabled=0; $canbedisabled = 0; } $canbemodified=$iserasable; From e5801c0b6872059d9e08516f70f9d569fd90d92f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 04:06:22 +0200 Subject: [PATCH 301/944] Update bonprelevement.class.php --- .../class/bonprelevement.class.php | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 1574fc3eb60..7a5a190c465 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -1133,24 +1133,24 @@ class BonPrelevement extends CommonObject /** - * Get object and lines from database + * Get object and lines from database * * @param User $user Object user that delete - * @param int $notrigger 1=Does not execute triggers, 0= execute triggers - * @return int >0 if OK, <0 if KO + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return int >0 if OK, <0 if KO */ - function delete($user=null, $notrigger = 0) + function delete($user = null, $notrigger = 0) { $this->db->begin(); - $error = 0; - if (! $notrigger) - { - // Call trigger - $result=$this->call_trigger('BON_PRELEVEMENT_DELETE', $user); - if ($result < 0) $error++; - // End call triggers - } + $error = 0; + if (! $notrigger) + { + // Call trigger + $result=$this->call_trigger('BON_PRELEVEMENT_DELETE', $user); + if ($result < 0) $error++; + // End call triggers + } $sql = "DELETE FROM ".MAIN_DB_PREFIX."prelevement_facture WHERE fk_prelevement_lignes IN (SELECT rowid FROM ".MAIN_DB_PREFIX."prelevement_lignes WHERE fk_prelevement_bons = ".$this->id.")"; $resql1=$this->db->query($sql); From f82e1f1155ec7b475810025ac79a1fa1daad1527 Mon Sep 17 00:00:00 2001 From: jcp Date: Fri, 19 Jul 2019 10:44:12 +0200 Subject: [PATCH 302/944] Fix: Use special_code=4 for Takepos --- htdocs/takepos/invoice.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php index 510b949b92b..79c7eee3d56 100644 --- a/htdocs/takepos/invoice.php +++ b/htdocs/takepos/invoice.php @@ -306,14 +306,14 @@ if ($action == "order" and $placeid != 0) $catsprinter2 = explode(';', $conf->global->TAKEPOS_PRINTED_CATEGORIES_2); foreach($invoice->lines as $line) { - if ($line->special_code == "3") { continue; + if ($line->special_code == "4") { continue; } $c = new Categorie($db); $existing = $c->containing($line->fk_product, Categorie::TYPE_PRODUCT, 'id'); $result = array_intersect($catsprinter1, $existing); $count = count($result); if ($count > 0) { - $sql = "UPDATE " . MAIN_DB_PREFIX . "facturedet set special_code='3' where rowid=$line->rowid"; + $sql = "UPDATE " . MAIN_DB_PREFIX . "facturedet set special_code='4' where rowid=$line->rowid"; $db->query($sql); $order_receipt_printer1.= '' . $line->product_label . '' . $line->qty; if (!empty($line->array_options['options_order_notes'])) $order_receipt_printer1.="
(".$line->array_options['options_order_notes'].")"; @@ -323,14 +323,14 @@ if ($action == "order" and $placeid != 0) foreach($invoice->lines as $line) { - if ($line->special_code == "3") { continue; + if ($line->special_code == "4") { continue; } $c = new Categorie($db); $existing = $c->containing($line->fk_product, Categorie::TYPE_PRODUCT, 'id'); $result = array_intersect($catsprinter2, $existing); $count = count($result); if ($count > 0) { - $sql = "UPDATE " . MAIN_DB_PREFIX . "facturedet set special_code='3' where rowid=$line->rowid"; + $sql = "UPDATE " . MAIN_DB_PREFIX . "facturedet set special_code='4' where rowid=$line->rowid"; $db->query($sql); $order_receipt_printer2.= '' . $line->product_label . '' . $line->qty; if (!empty($line->array_options['options_order_notes'])) $order_receipt_printer2.="
(".$line->array_options['options_order_notes'].")"; @@ -512,7 +512,7 @@ if ($placeid > 0) $htmlforlines = ''; $htmlforlines.= 'special_code == "4") { $htmlforlines.= ' order'; } $htmlforlines.= '" id="' . $line->id . '">'; From a03bb00254b979b9027092b7b0f1585d51efbb16 Mon Sep 17 00:00:00 2001 From: atm-ph Date: Fri, 19 Jul 2019 11:26:21 +0200 Subject: [PATCH 303/944] Fix missing hook --- htdocs/compta/prelevement/card.php | 118 +++++++++++++++-------------- 1 file changed, 63 insertions(+), 55 deletions(-) diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php index 60e471d712d..d6c752330fe 100644 --- a/htdocs/compta/prelevement/card.php +++ b/htdocs/compta/prelevement/card.php @@ -63,78 +63,86 @@ $object = new BonPrelevement($db,""); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals +$hookmanager->initHooks(array('directdebitprevcard','globalcard')); /* * Actions */ -if ( $action == 'confirm_delete' ) +$parameters = array('socid' => $socid); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) { - $res=$object->delete($user); - if ($res > 0) - { - header("Location: index.php"); - exit; - } -} + if ( $action == 'confirm_delete' ) + { + $res=$object->delete($user); + if ($res > 0) + { + header("Location: index.php"); + exit; + } + } -// Seems to no be used and replaced with $action == 'infocredit -if ( $action == 'confirm_credite' && GETPOST('confirm','alpha') == 'yes') -{ - $res=$object->set_credite(); - if ($res >= 0) - { - header("Location: card.php?id=".$id); - exit; - } -} + // Seems to no be used and replaced with $action == 'infocredit + if ( $action == 'confirm_credite' && GETPOST('confirm','alpha') == 'yes') + { + $res=$object->set_credite(); + if ($res >= 0) + { + header("Location: card.php?id=".$id); + exit; + } + } -if ($action == 'infotrans' && $user->rights->prelevement->bons->send) -{ - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if ($action == 'infotrans' && $user->rights->prelevement->bons->send) + { + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $dt = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int')); + $dt = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int')); - /* - if ($_FILES['userfile']['name'] && basename($_FILES['userfile']['name'],".ps") == $object->ref) - { - $dir = $conf->prelevement->dir_output.'/receipts'; + /* + if ($_FILES['userfile']['name'] && basename($_FILES['userfile']['name'],".ps") == $object->ref) + { + $dir = $conf->prelevement->dir_output.'/receipts'; - if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $dir . "/" . dol_unescapefile($_FILES['userfile']['name']),1) > 0) - { - $object->set_infotrans($user, $dt, GETPOST('methode','alpha')); - } + if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $dir . "/" . dol_unescapefile($_FILES['userfile']['name']),1) > 0) + { + $object->set_infotrans($user, $dt, GETPOST('methode','alpha')); + } - header("Location: card.php?id=".$id); - exit; - } - else - { - dol_syslog("Fichier invalide",LOG_WARNING); - $mesg='BadFile'; - }*/ + header("Location: card.php?id=".$id); + exit; + } + else + { + dol_syslog("Fichier invalide",LOG_WARNING); + $mesg='BadFile'; + }*/ - $error = $object->set_infotrans($user, $dt, GETPOST('methode','alpha')); + $error = $object->set_infotrans($user, $dt, GETPOST('methode','alpha')); - if ($error) - { - header("Location: card.php?id=".$id."&error=$error"); - exit; - } -} + if ($error) + { + header("Location: card.php?id=".$id."&error=$error"); + exit; + } + } -// Set direct debit order to credited, create payment and close invoices -if ($action == 'infocredit' && $user->rights->prelevement->bons->credit) -{ - $dt = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int')); + // Set direct debit order to credited, create payment and close invoices + if ($action == 'infocredit' && $user->rights->prelevement->bons->credit) + { + $dt = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int')); - $error = $object->set_infocredit($user, $dt); + $error = $object->set_infocredit($user, $dt); - if ($error) - { - header("Location: card.php?id=".$id."&error=$error"); - exit; - } + if ($error) + { + header("Location: card.php?id=".$id."&error=$error"); + exit; + } + } } From b100cdb9db97e20eb2b5a9a13951eb9e74c64902 Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Fri, 19 Jul 2019 11:58:21 +0200 Subject: [PATCH 304/944] FIX: extrafield loading bug due to assumption that an object is a third party while it may be a contact if MAIN_USE_COMPANY_NAME_OF_CONTACT is set. --- .../expedition/doc/doc_generic_shipment_odt.modules.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php index 9c45c135ac3..a1be784f249 100644 --- a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php +++ b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php @@ -393,7 +393,11 @@ class doc_generic_shipment_odt extends ModelePdfExpedition } } // Make substitutions into odt of thirdparty - $tmparray=$this->get_substitutionarray_thirdparty($socobject,$outputlangs); + if ($socobject->element == 'contact') { + $tmparray = $this->get_substitutionarray_contact($socobject, $outputlangs); + } else { + $tmparray = $this->get_substitutionarray_thirdparty($socobject, $outputlangs); + } foreach($tmparray as $key=>$value) { try { From 1f308915ee8d9e5638f86d7017b82b7c78376ebb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 13:23:17 +0200 Subject: [PATCH 305/944] Fix 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 a05eb631e13..a1d042a07a1 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1698,7 +1698,7 @@ ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** +ListOfNotificationsPerUserOrContact=List of possible notifications per user* or per contact** ListOfFixedNotifications=List of fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses From cd7d3f1a368a4d2c84906c3ba1110961a72cdc3e Mon Sep 17 00:00:00 2001 From: gauthier Date: Fri, 19 Jul 2019 15:41:44 +0200 Subject: [PATCH 306/944] FIX : search by phone pro --- htdocs/contact/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index 5aacbc2f16f..f786e73d17a 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -290,7 +290,7 @@ if ($search_firstname) $sql.= natural_search('p.firstname', $search if ($search_societe) $sql.= natural_search('s.nom', $search_societe); if (strlen($search_poste)) $sql.= natural_search('p.poste', $search_poste); if (strlen($search_phone_perso)) $sql.= natural_search('p.phone_perso', $search_phone_perso); -if (strlen($search_phone_pro)) $sql.= natural_search('p.phone', $search_phone); +if (strlen($search_phone_pro)) $sql.= natural_search('p.phone', $search_phone_pro); if (strlen($search_phone_mobile)) $sql.= natural_search('p.phone_mobile', $search_phone_mobile); if (strlen($search_fax)) $sql.= natural_search('p.fax', $search_fax); if (strlen($search_skype)) $sql.= natural_search('p.skype', $search_skype); From 73af3542d1d6bf7a02d8e5346695a580899c503b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 16:18:14 +0200 Subject: [PATCH 307/944] FIX the feature to bill time spent was not enabled. --- htdocs/core/class/conf.class.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index 62c7f0f9e24..e3b6ac4e524 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -490,7 +490,10 @@ class Conf if (empty($this->global->ACCOUNTING_MODE)) $this->global->ACCOUNTING_MODE='RECETTES-DEPENSES'; // By default. Can be 'RECETTES-DEPENSES' ou 'CREANCES-DETTES' // By default, suppliers objects can be linked to all projects - $this->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS = 1; + if (! isset($this->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS)) $this->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS = 1; + + // By default we enable feature to bill time spent + if (! isset($this->global->PROJECT_BILL_TIME_SPENT)) $this->global->PROJECT_BILL_TIME_SPENT = 1; // MAIN_HTML_TITLE if (! isset($this->global->MAIN_HTML_TITLE)) $this->global->MAIN_HTML_TITLE='noapp,thirdpartynameonly,contactnameonly,projectnameonly'; From 1053a9d9555939a8a409e69f41490e74e8201c92 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 16:49:12 +0200 Subject: [PATCH 308/944] Trans --- htdocs/accountancy/customer/list.php | 10 +++++----- htdocs/accountancy/supplier/list.php | 2 +- htdocs/langs/en_US/products.lang | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index 192585ccedd..b738933c89c 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -319,8 +319,8 @@ if ($result) { $arrayofselected=is_array($toselect)?$toselect:array(); $param=''; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; + if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); + if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); if ($search_lineid) $param.='&search_lineid='.urlencode($search_lineid); if ($search_day) $param.='&search_day='.urlencode($search_day); if ($search_month) $param.='&search_month='.urlencode($search_month); @@ -330,8 +330,8 @@ if ($result) { if ($search_desc) $param.='&search_desc='.urlencode($search_desc); if ($search_amount) $param.='&search_amount='.urlencode($search_amount); if ($search_vat) $param.='&search_vat='.urlencode($search_vat); - if ($search_country) $param .= "&search_country=" . urlencode($search_country); - if ($search_tvaintra) $param .= "&search_tvaintra=" . urlencode($search_tvaintra); + if ($search_country) $param.= "&search_country=".urlencode($search_country); + if ($search_tvaintra) $param.= "&search_tvaintra=".urlencode($search_tvaintra); $arrayofmassactions = array( 'ventil'=>$langs->trans("Ventilate") @@ -403,7 +403,7 @@ if ($result) { 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 maxwidth50 '); print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder); diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index b3a426bbf5e..9ce49b23e6a 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -405,7 +405,7 @@ if ($result) { 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 maxwidth50 '); print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder); diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 46555a84528..36ca0ede002 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card From 361fc53685fec9e9bb31f8bdc81e59f2956dcb43 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 17:47:54 +0200 Subject: [PATCH 309/944] FIX div not balanced --- htdocs/commande/card.php | 4 ++-- htdocs/ticket/card.php | 22 ++++++-------------- htdocs/ticket/class/actions_ticket.class.php | 9 +++++++- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index eae593bef40..6bb47f12a12 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -2116,7 +2116,7 @@ if ($action == 'create' && $user->rights->commande->creer) print '
'; print '
'; - print ''; + print '
'; if ($soc->outstanding_limit) { @@ -2454,7 +2454,7 @@ if ($action == 'create' && $user->rights->commande->creer) print ''; print ''; - print ''; + print ''; // Close fichecenter print '

'; diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index 94c0aec8d90..af65fbd2715 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -824,9 +824,11 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd dol_banner_tab($object, 'ref', $linkback, ($user->societe_id ? 0 : 1), 'ref', 'ref', $morehtmlref); - print '
'; + print '
'; + print '
'; print '
'; - print '
'; + + print '
'; // Track ID print ''; // Group print ''; // Severity print ''; } print '
' . $langs->trans("TicketTrackId") . ''; @@ -956,7 +958,6 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd // View Original message $actionobject->viewTicketOriginalMessage($user, $action, $object); - // Classification of ticket print '
'; print ''; @@ -1011,29 +1012,20 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd // Type print '
' . $langs->trans("Type") . ''; print $langs->getLabelFromKey($db, $object->type_code, 'c_ticket_type', 'code', 'label'); - /*if ($user->admin && !$noadmininfo) { - print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); - }*/ print '
' . $langs->trans("TicketGroup") . ''; print $langs->getLabelFromKey($db, $object->category_code, 'c_ticket_category', 'code', 'label'); - /*if ($user->admin && !$noadmininfo) { - print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); - }*/ print '
' . $langs->trans("TicketSeverity") . ''; print $langs->getLabelFromKey($db, $object->severity_code, 'c_ticket_severity', 'code', 'label'); - /*if ($user->admin && !$noadmininfo) { - print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); - }*/ print '
'; // End table actions + print '
'; print ''; - print '
'; // Display navbar with links to change ticket status print ''; @@ -1225,9 +1217,7 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd $formactions = new FormActions($db); $somethingshown = $formactions->showactions($object, 'ticket', $socid, 1); - print '
'; - print '
'; - print '
'; + print '
'; } else { diff --git a/htdocs/ticket/class/actions_ticket.class.php b/htdocs/ticket/class/actions_ticket.class.php index b10f8ebe7da..912b6cb298c 100644 --- a/htdocs/ticket/class/actions_ticket.class.php +++ b/htdocs/ticket/class/actions_ticket.class.php @@ -280,7 +280,7 @@ class ActionsTicket //print '
' . $object->message . '
'; } - if ($user->rights->ticket->manage && $action == 'edit_message_init') { + if (!empty($user->rights->ticket->manage) && $action == 'edit_message_init') { print '
'; print ' '; print ' '; @@ -289,7 +289,14 @@ class ActionsTicket print ''; print ''; print ''; + print '
'; + + if (!empty($user->rights->ticket->manage) && $action == 'edit_message_init') { + // MESSAGE + print ''; + } } + /** * View html list of message for ticket * From bd193b26f6e6b7518c64ee8850679f0dd61f6a26 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 18:02:39 +0200 Subject: [PATCH 310/944] FIX Block to link with tickets --- htdocs/ticket/tpl/linkedobjectblock.tpl.php | 83 ++++++++++++++------- 1 file changed, 55 insertions(+), 28 deletions(-) diff --git a/htdocs/ticket/tpl/linkedobjectblock.tpl.php b/htdocs/ticket/tpl/linkedobjectblock.tpl.php index 3391437dbb1..3a5cc46600a 100644 --- a/htdocs/ticket/tpl/linkedobjectblock.tpl.php +++ b/htdocs/ticket/tpl/linkedobjectblock.tpl.php @@ -13,8 +13,7 @@ * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with this program. If not, see . */ // Protection to avoid direct call of template if (empty($conf) || ! is_object($conf)) @@ -28,37 +27,65 @@ if (empty($conf) || ! is_object($conf)) load('ticket'); $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; -echo '
'; -print load_fiche_titre($langs->trans('RelatedTickets')); + +// Load translation files required by the page +$langs->load('ticket'); + +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc'); + +$total=0; $ilink=0; +foreach($linkedObjectBlock as $key => $objectlink) +{ + $ilink++; + + $trclass='oddeven'; + if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total'; ?> - - - - - - + + + + + + socid = $objectlink->fk_soc; + //$objectlink->fetch_thirdparty(); + ?> + + + - - - +} +if (count($linkedObjectBlock) > 1) +{ + ?> + + + + + + + + + socid = $object->fk_soc; - $object->fetch_thirdparty(); - ?> - - - - -
trans("Subject"); ?>trans("DateCreation"); ?>trans("Customer"); ?>trans("Status"); ?>
trans("Ticket"); ?> + global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES) print ' + getNomUrl(1); ?>ref_client; ?>datec, 'day'); ?>thirdparty->getNomUrl(1); ?>getLibStatut(3); ?> + element != 'shipping') { + ?> + ">transnoentitiesnoconv("RemoveLink"), 'unlink'); ?> + +
- subject) ? ' '.$object->subject : ''); ?> - - datec, 'day'); ?>
trans("Total"); ?>
thirdparty->getNomUrl(1); ?>getLibstatut(2); ?>
+} +?> From e5c3945ec304796f12e6bc26a79a8ddd0757c0fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 18:10:45 +0200 Subject: [PATCH 311/944] FIX delete of links between objects --- htdocs/comm/propal/tpl/linkedobjectblock.tpl.php | 2 +- htdocs/commande/tpl/linkedobjectblock.tpl.php | 2 +- htdocs/compta/facture/tpl/linkedobjectblock.tpl.php | 2 +- htdocs/fichinter/tpl/linkedobjectblock.tpl.php | 2 ++ htdocs/ticket/tpl/linkedobjectblock.tpl.php | 4 ++-- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php index 61d79e4abbb..910772d87ca 100644 --- a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php +++ b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php @@ -43,7 +43,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; // Load translation files required by the page $langs->load("propal"); -$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc'); +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc', 0, 0, 1); $total=0; $ilink=0; foreach($linkedObjectBlock as $key => $objectlink) diff --git a/htdocs/commande/tpl/linkedobjectblock.tpl.php b/htdocs/commande/tpl/linkedobjectblock.tpl.php index 1f8b440749f..74a2243d633 100644 --- a/htdocs/commande/tpl/linkedobjectblock.tpl.php +++ b/htdocs/commande/tpl/linkedobjectblock.tpl.php @@ -39,7 +39,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; // Load translation files required by the page $langs->load("orders"); -$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc'); +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc', 0, 0, 1); $total=0; $ilink=0; foreach($linkedObjectBlock as $key => $objectlink) diff --git a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php index a9fbb5da2eb..bef705a21ab 100644 --- a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php +++ b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php @@ -38,7 +38,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $langs->load("bills"); -$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc'); +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc', 0, 0, 1); $total=0; $ilink=0; foreach($linkedObjectBlock as $key => $objectlink) diff --git a/htdocs/fichinter/tpl/linkedobjectblock.tpl.php b/htdocs/fichinter/tpl/linkedobjectblock.tpl.php index 9f481b6b648..cc2bf4cea26 100644 --- a/htdocs/fichinter/tpl/linkedobjectblock.tpl.php +++ b/htdocs/fichinter/tpl/linkedobjectblock.tpl.php @@ -35,6 +35,8 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $langs->load("interventions"); +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc', 0, 0, 1); + $ilink=0; foreach($linkedObjectBlock as $key => $objectlink) { diff --git a/htdocs/ticket/tpl/linkedobjectblock.tpl.php b/htdocs/ticket/tpl/linkedobjectblock.tpl.php index 3a5cc46600a..8aed516e4fc 100644 --- a/htdocs/ticket/tpl/linkedobjectblock.tpl.php +++ b/htdocs/ticket/tpl/linkedobjectblock.tpl.php @@ -36,13 +36,13 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; // Load translation files required by the page $langs->load('ticket'); -$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc'); +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'datec', 'desc', 0, 0, 1); $total=0; $ilink=0; foreach($linkedObjectBlock as $key => $objectlink) { $ilink++; - + $trclass='oddeven'; if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total'; ?> From 48b4aa4c8dbf81ffdd922cadd2d022326ca6110a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 18:29:33 +0200 Subject: [PATCH 312/944] Fix link to ticket --- htdocs/core/class/html.form.class.php | 3 ++- htdocs/langs/en_US/main.lang | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 64c5063e8a2..68c4bec4690 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -6661,7 +6661,8 @@ class Form 'fichinter'=>array('enabled'=>$conf->ficheinter->enabled, 'perms'=>1, 'label'=>'LinkToIntervention', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."fichinter as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('intervention').')'), 'supplier_proposal'=>array('enabled'=>$conf->supplier_proposal->enabled , 'perms'=>1, 'label'=>'LinkToSupplierProposal', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, '' as ref_supplier, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."supplier_proposal as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('supplier_proposal').')'), 'order_supplier'=>array('enabled'=>$conf->supplier_order->enabled , 'perms'=>1, 'label'=>'LinkToSupplierOrder', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_supplier, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande_fournisseur as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('commande_fournisseur').')'), - 'invoice_supplier'=>array('enabled'=>$conf->supplier_invoice->enabled , 'perms'=>1, 'label'=>'LinkToSupplierInvoice', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_supplier, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_fourn as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('facture_fourn').')') + 'invoice_supplier'=>array('enabled'=>$conf->supplier_invoice->enabled , 'perms'=>1, 'label'=>'LinkToSupplierInvoice', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_supplier, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_fourn as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('facture_fourn').')'), + 'ticket'=>array('enabled'=>$conf->ticket->enabled , 'perms'=>1, 'label'=>'LinkToTicket', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.track_id, '0' as total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."ticket as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('ticket').')') ); } diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 6efbe942032..5e55597c306 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -759,6 +759,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit From fafb7956dec2c55172bae5928f9766e09463361b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 18:52:44 +0200 Subject: [PATCH 313/944] Fix position of triggers --- htdocs/install/mysql/data/llx_c_action_trigger.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/install/mysql/data/llx_c_action_trigger.sql b/htdocs/install/mysql/data/llx_c_action_trigger.sql index 3bc705c7a19..aaa96e3136a 100644 --- a/htdocs/install/mysql/data/llx_c_action_trigger.sql +++ b/htdocs/install/mysql/data/llx_c_action_trigger.sql @@ -102,9 +102,9 @@ 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_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_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204); -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',202); -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',203); +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); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_VALIDATE','Project validation','Executed when a project is validated','project',141); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',143); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161); @@ -116,7 +116,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value -- actions not enabled by default (no constant created for that) when we enable module agenda insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',41); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_MODIFY','Member modified','Executed when a member is modified','member',23); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_MODIFY','Intervention modified','Executed when a intervention is modified','ficheinter',31); +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_MODIFY','Intervention modified','Executed when a intervention is modified','ficheinter',19); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_CREATE','Project creation','Executed when a project is created','project',140); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_MODIFY','Project modified','Executed when a project is modified','project',142); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TASK_CREATE','Task created','Executed when a project task is created','project',150); From 327e5ebe780e42cc96e8bccb38bdb0d139e6de60 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 19:09:38 +0200 Subject: [PATCH 314/944] FIX Show list of events on tickets --- htdocs/admin/agenda.php | 5 +- htdocs/public/ticket/view.php | 10 +-- htdocs/ticket/class/actions_ticket.class.php | 86 ++++---------------- htdocs/ticket/class/ticket.class.php | 13 ++- 4 files changed, 26 insertions(+), 88 deletions(-) diff --git a/htdocs/admin/agenda.php b/htdocs/admin/agenda.php index 649bfab3d97..4c5c02d0b3d 100644 --- a/htdocs/admin/agenda.php +++ b/htdocs/admin/agenda.php @@ -40,7 +40,7 @@ $cancel = GETPOST('cancel', 'alpha'); $search_event = GETPOST('search_event', 'alpha'); // Get list of triggers available -$sql = "SELECT a.rowid, a.code, a.label, a.elementtype"; +$sql = "SELECT a.rowid, a.code, a.label, a.elementtype, a.rang as position"; $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a"; $sql.= " ORDER BY a.rang ASC"; $resql=$db->query($sql); @@ -55,6 +55,7 @@ if ($resql) $triggers[$i]['code'] = $obj->code; $triggers[$i]['element'] = $obj->elementtype; $triggers[$i]['label'] = ($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label); + $triggers[$i]['position'] = $obj->position; $i++; } @@ -65,6 +66,8 @@ else dol_print_error($db); } +//$triggers = dol_sort_array($triggers, 'code', 'asc', 0, 0, 1); + /* * Actions diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index 69a77413b2e..2c23ba1bc71 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -150,7 +150,7 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | if ($display_ticket) { // Confirmation close if ($action == 'close') { - print $form->form_confirm($_SERVER["PHP_SELF"] . "?track_id=" . $track_id, $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_public_close", '', '', 1); + print $form->formconfirm($_SERVER["PHP_SELF"] . "?track_id=" . $track_id, $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_public_close", '', '', 1); } print '
'; @@ -287,13 +287,7 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | // Message list print load_fiche_titre($langs->trans('TicketMessagesList'), '', 'messages@ticket'); - $object->viewTicketMessages(false); - - print '
'; - - // Logs list - print load_fiche_titre($langs->trans('TicketHistory'), '', 'history@ticket'); - $object->viewTicketLogs(false); + $object->viewTicketMessages(false, true, $object->dao); } else { print ''; } diff --git a/htdocs/ticket/class/actions_ticket.class.php b/htdocs/ticket/class/actions_ticket.class.php index 912b6cb298c..3e9daabec75 100644 --- a/htdocs/ticket/class/actions_ticket.class.php +++ b/htdocs/ticket/class/actions_ticket.class.php @@ -167,72 +167,12 @@ class ActionsTicket } } - /** - * View html list of logs - * - * @param boolean $show_user Show user who make action - * @return void - */ - public function viewTicketLogs($show_user = true) - { - global $conf, $langs; - - // Load logs in cache - $ret = $this->dao->loadCacheLogsTicket(); - - if (is_array($this->dao->cache_logs_ticket) && count($this->dao->cache_logs_ticket) > 0) { - print ''; - - print ''; - - print ''; - - if ($show_user) { - print ''; - } - - foreach ($this->dao->cache_logs_ticket as $id => $arraylogs) { - print ''; - print ''; - - if ($show_user) { - print ''; - } - print ''; - print ''; - print ''; - print ''; - } - - print '
'; - print $langs->trans('DateCreation'); - print ''; - print $langs->trans('User'); - print '
'; - print dol_print_date($arraylogs['datec'], 'dayhour'); - print ''; - if ($arraylogs['fk_user_create'] > 0) { - $userstat = new User($this->db); - $res = $userstat->fetch($arraylogs['fk_user_create']); - if ($res) { - print $userstat->getNomUrl(1); - } - } - print '
'; - print dol_nl2br($arraylogs['message']); - - print '
'; - } else { - print '
' . $langs->trans('NoLogForThisTicket') . '
'; - } - } - /** * Show ticket original message * * @param User $user User wich display * @param string $action Action mode - * @param Ticket $object Object ticket + * @param Ticket $object Object ticket * @return void */ public function viewTicketOriginalMessage($user, $action, $object) @@ -300,29 +240,31 @@ class ActionsTicket /** * View html list of message for ticket * - * @param boolean $show_private Show private messages - * @param boolean $show_user Show user who make action - * @return void + * @param boolean $show_private Show private messages + * @param boolean $show_user Show user who make action + * @param Ticket $object Object ticket + * @return void */ - public function viewTicketMessages($show_private, $show_user = true) + public function viewTicketMessages($show_private, $show_user, $object) { global $conf, $langs, $user; // Load logs in cache $ret = $this->dao->loadCacheMsgsTicket(); - $action = GETPOST('action'); + if ($ret < 0) dol_print_error($this->dao->db); - $this->viewTicketOriginalMessage($user, $action); + $action = GETPOST('action', 'alpha'); - if (is_array($this->dao->cache_msgs_ticket) && count($this->dao->cache_msgs_ticket) > 0) { - print load_fiche_titre($langs->trans('TicketMailExchanges')); + $this->viewTicketOriginalMessage($user, $action, $object); + if (is_array($this->dao->cache_msgs_ticket) && count($this->dao->cache_msgs_ticket) > 0) + { print ''; print ''; print ''; if ($show_user) { @@ -342,9 +284,9 @@ class ActionsTicket print ''; if ($show_user) { print ''; print ''; // Description From ec34ce1e6418f613f6be2aeb5994a6d0737c3141 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 23:11:00 +0200 Subject: [PATCH 319/944] Maxi debug of module ticket --- htdocs/core/class/html.formticket.class.php | 88 +++++++++++++++++---- htdocs/public/ticket/index.php | 2 +- htdocs/public/ticket/list.php | 2 +- htdocs/public/ticket/view.php | 68 ++++++++++++---- htdocs/ticket/card.php | 47 +++++------ 5 files changed, 152 insertions(+), 55 deletions(-) diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index 6f712fa6c4d..fdbce981e72 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -733,40 +733,97 @@ class FormTicket print ajax_combobox('select'.$htmlname); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Clear list of attached files in send mail form (also stored in session) + * + * @return void + */ + public function clear_attached_files() + { + // phpcs:enable + global $conf,$user; + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + // Set tmp user directory + $vardir=$conf->user->dir_output."/".$user->id; + $upload_dir = $vardir.'/temp/'; // TODO Add $keytoavoidconflict in upload_dir path + if (is_dir($upload_dir)) dol_delete_dir_recursive($upload_dir); + + $keytoavoidconflict = empty($this->trackid)?'':'-'.$this->trackid; // this->trackid must be defined + unset($_SESSION["listofpaths".$keytoavoidconflict]); + unset($_SESSION["listofnames".$keytoavoidconflict]); + unset($_SESSION["listofmimes".$keytoavoidconflict]); + } + /** * Show the form to add message on ticket * - * @param string $width Width of form - * @return void + * @param string $width Width of form + * @return void */ public function showMessageForm($width = '40%') { - global $conf, $langs, $user, $mysoc; + global $conf, $langs, $user, $hookmanager, $form, $mysoc; + + $formmail = new FormMail($this->db); + $addfileaction = 'addfile'; + + if (! is_object($form)) $form=new Form($this->db); // Load translation files required by the page $langs->loadLangs(array('other', 'mails')); - $addfileaction = 'addfile'; + // Clear temp files. Must be done at beginning, before call of triggers + if (GETPOST('mode', 'alpha') == 'init' || (GETPOST('modelmailselected', 'alpha') && GETPOST('modelmailselected', 'alpha') != '-1')) + { + $this->clear_attached_files(); + } - $form = new Form($this->db); - $formmail = new FormMail($this->db); + // Define output language + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $this->param['langsmodels']; + if (! empty($newlang)) + { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + $outputlangs->load('other'); + } + // Get message template for $this->param["models"] into c_email_templates + $arraydefaultmessage = -1; + if ($this->param['models'] != 'none') + { + $model_id=0; + if (array_key_exists('models_id', $this->param)) + { + $model_id=$this->param["models_id"]; + } + + $arraydefaultmessage=$formmail->getEMailTemplate($this->db, $this->param["models"], $user, $outputlangs, $model_id); // If $model_id is empty, preselect the first one + } // Define list of attached files $listofpaths = array(); $listofnames = array(); $listofmimes = array(); - if (!empty($_SESSION["listofpaths"])) { - $listofpaths = explode(';', $_SESSION["listofpaths"]); + $keytoavoidconflict = empty($this->trackid)?'':'-'.$this->trackid; // this->trackid must be defined + + if (GETPOST('mode', 'alpha') == 'init' || (GETPOST('modelmailselected', 'alpha') && GETPOST('modelmailselected', 'alpha') != '-1')) + { + if (! empty($arraydefaultmessage->joinfiles) && is_array($this->param['fileinit'])) + { + foreach($this->param['fileinit'] as $file) + { + $this->add_attached_files($file, basename($file), dol_mimetype($file)); + } + } } - if (!empty($_SESSION["listofnames"])) { - $listofnames = explode(';', $_SESSION["listofnames"]); - } - - if (!empty($_SESSION["listofmimes"])) { - $listofmimes = explode(';', $_SESSION["listofmimes"]); - } + if (! empty($_SESSION["listofpaths".$keytoavoidconflict])) $listofpaths=explode(';', $_SESSION["listofpaths".$keytoavoidconflict]); + if (! empty($_SESSION["listofnames".$keytoavoidconflict])) $listofnames=explode(';', $_SESSION["listofnames".$keytoavoidconflict]); + if (! empty($_SESSION["listofmimes".$keytoavoidconflict])) $listofmimes=explode(';', $_SESSION["listofmimes".$keytoavoidconflict]); // Define output language $outputlangs = $langs; @@ -808,6 +865,7 @@ class FormTicket print ''; print ''; print ''; + print ''; foreach ($this->param as $key => $value) { print ''; } diff --git a/htdocs/public/ticket/index.php b/htdocs/public/ticket/index.php index 2e138312102..b7f7bd71088 100644 --- a/htdocs/public/ticket/index.php +++ b/htdocs/public/ticket/index.php @@ -77,7 +77,7 @@ print ''; print ''; // End of page -htmlPrintOnlinePaymentFooter($mysoc, $langs, 1, $suffix, $object); +htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix, $object); llxFooter('', 'public'); diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index 39736c6d857..88b8426fef9 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -706,7 +706,7 @@ if ($action == "view_ticketlist") print ""; // End of page -htmlPrintOnlinePaymentFooter($mysoc, $langs, 1, $suffix, $object); +htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix, $object); llxFooter('', 'public'); diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index be77e50ea28..e7df24c16f3 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -48,8 +48,9 @@ $langs->loadLangs(array("companies","other","ticket")); // Get parameters $track_id = GETPOST('track_id', 'alpha'); -$action = GETPOST('action', 'aZ09'); -$email = GETPOST('email', 'alpha'); +$cancel = GETPOST('cancel', 'alpha'); +$action = GETPOST('action', 'aZ09'); +$email = GETPOST('email', 'alpha'); if (GETPOST('btn_view_ticket')) { unset($_SESSION['email_customer']); @@ -65,7 +66,17 @@ $object = new ActionsTicket($db); * Actions */ -if ($action == "view_ticket" || $action == "add_message" || $action == "close" || $action == "confirm_public_close" || $action == "add_public_message") { +if ($cancel) +{ + if (! empty($backtopage)) + { + header("Location: ".$backtopage); + exit; + } + $action='view_ticket'; +} + +if ($action == "view_ticket" || $action == "presend" || $action == "close" || $action == "confirm_public_close" || $action == "add_message") { $error = 0; $display_ticket = false; if (!strlen($track_id)) { @@ -108,12 +119,33 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | } } } - if ($object->dao->fk_soc > 0) { + // Check email of thirdparty of ticket + if ($object->dao->fk_soc > 0 || $object->dao->socid > 0) { $object->dao->fetch_thirdparty(); + if ($email == $object->dao->thirdparty->email) { + $display_ticket = true; + $_SESSION['email_customer'] = $email; + } } - if ($email == $object->dao->origin_email || $email == $object->dao->thirdparty->email) { - $display_ticket = true; - $_SESSION['email_customer'] = $email; + // Check if email is email of creator + if ($object->dao->fk_user_create > 0) + { + $tmpuser = new User($db); + $tmpuser->fetch($object->dao->fk_user_create); + if ($email == $tmpuser->email) { + $display_ticket = true; + $_SESSION['email_customer'] = $email; + } + } + // Check if email is email of creator + if ($object->dao->fk_user_assign > 0 && $object->dao->fk_user_assign != $object->dao->fk_user_create) + { + $tmpuser = new User($db); + $tmpuser->fetch($object->dao->fk_user_assign); + if ($email == $tmpuser->email) { + $display_ticket = true; + $_SESSION['email_customer'] = $email; + } } } else { $error++; @@ -122,9 +154,11 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | } } - if ($action == "add_public_message") + if (! $error && $action == "add_message" && $display_ticket) { // TODO Add message... + $ret = $object->dao->newMessage($user, $action, 0); + @@ -137,9 +171,9 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | if ($error || $errors) { setEventMessages($object->error, $object->errors, 'errors'); - if ($action == "add_public_message") + if ($action == "add_message") { - $action = 'add_message'; + $action = 'presend'; } else { @@ -172,7 +206,7 @@ llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); print '
'; -if ($action == "view_ticket" || $action == "add_message" || $action == "close" || $action == "confirm_public_close") { +if ($action == "view_ticket" || $action == "presend" || $action == "close" || $action == "confirm_public_close") { if ($display_ticket) { // Confirmation close if ($action == 'close') { @@ -272,22 +306,24 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | print '
'; - if ($action == 'add_message') { + if ($action == 'presend') { print load_fiche_titre($langs->trans('TicketAddMessage'), '', 'messages@ticket'); $formticket = new FormTicket($db); - $formticket->action = "add_public_message"; + $formticket->action = "add_message"; $formticket->track_id = $object->dao->track_id; $formticket->id = $object->dao->id; $formticket->param = array('track_id' => $object->dao->track_id, 'fk_user_create' => '-1', 'returnurl' => DOL_URL_ROOT.'/public/ticket/view.php'); $formticket->withfile = 2; + $formticket->withcancel = 1; + $formticket->showMessageForm('100%'); } - if ($action != 'add_message') { + if ($action != 'presend') { print ''; print ''; print ''; @@ -302,7 +338,7 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | if ($object->dao->fk_statut < 8) { // New message - print ''; + print ''; // Close ticket if ($object->dao->fk_statut > 0 && $object->dao->fk_statut < 8) { @@ -346,7 +382,7 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | print "
"; // End of page -htmlPrintOnlinePaymentFooter($mysoc, $langs, 1, $suffix, $object); +htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix, $object); llxFooter('', 'public'); diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index af65fbd2715..ba2d14b06ce 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -75,7 +75,7 @@ if (empty($action) && empty($id) && empty($ref)) $action='view'; //Select mail models is same action as add_message if (GETPOST('modelselected', 'alpha')) { - $action = 'create_message'; + $action = 'presend'; } // Load object @@ -255,17 +255,17 @@ if (GETPOST('add', 'alpha') && $user->rights->ticket->write) { if ($action == 'edit' && $user->rights->ticket->write) { $error = 0; - if ($object->fetch(GETPOST('id')) < 0) { + if ($object->fetch(GETPOST('id', 'int')) < 0) { $error++; array_push($object->errors, $langs->trans("ErrorTicketIsNotValid")); $_GET["action"] = $_POST["action"] = ''; } } -if (GETPOST('update') && GETPOST('id') && $user->rights->ticket->write) { +if (GETPOST('update', 'alpha') && GETPOST('id', 'int') && $user->rights->ticket->write) { $error = 0; - $ret = $object->fetch(GETPOST('id')); + $ret = $object->fetch(GETPOST('id', 'int')); if ($ret < 0) { $error++; array_push($object->errors, $langs->trans("ErrorTicketIsNotValid")); @@ -385,7 +385,7 @@ if ($action == "add_message" && GETPOST('btn_add_message') && $user->rights->tic exit; } else { setEventMessages($object->error, null, 'errors'); - $action = 'create_message'; + $action = 'presend'; } } @@ -477,7 +477,6 @@ if ($action == 'setsubject') { } } - if ($action == 'confirm_reopen' && $user->rights->ticket->manage && !GETPOST('cancel')) { if ($object->fetch(GETPOST('id', 'int'), '', GETPOST('track_id', 'alpha')) >= 0) { // prevent browser refresh from reopening ticket several times @@ -601,6 +600,8 @@ $autocopy='MAIN_MAIL_AUTOCOPY_TICKET_TO'; // used to know the automatic BCC to $trackid='tic'.$object->id; include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; +// Set $action to correct value for the case we used presend action to add a message +if (GETPOSTISSET('actionbis') && $action == 'presend') $action = 'presend_addmessage'; /* @@ -640,7 +641,7 @@ if ($action == 'create' || $action == 'presend') $formticket->showForm(1); } -if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'dellink' || $action == 'create_message' || $action == 'close' || $action == 'delete' || $action == 'editcustomer' || $action == 'progression' || $action == 'reopen' +if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'dellink' || $action == 'presend' || $action == 'presend_addmessage' || $action == 'close' || $action == 'delete' || $action == 'editcustomer' || $action == 'progression' || $action == 'reopen' || $action == 'editsubject' || $action == 'edit_extras' || $action == 'update_extras' || $action == 'edit_extrafields' || $action == 'set_extrafields' || $action == 'classify' || $action == 'sel_contract' || $action == 'edit_message_init' || $action == 'set_status' || $action == 'dellink') { if ($res > 0) @@ -1155,7 +1156,7 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd // Buttons for actions - if ($action != 'presend' && $action != 'editline') { + if ($action != 'presend' && $action != 'presend_addmessage' && $action != 'editline') { print '
'."\n"; $parameters=array(); $reshook=$hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook @@ -1164,8 +1165,8 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd if (empty($reshook)) { // Show link to add a message (if read and not closed) - if ($object->fk_statut < Ticket::STATUS_CLOSED && $action != "create_message") { - print ''; + if ($object->fk_statut < Ticket::STATUS_CLOSED && $action != "presend" && $action != "presend_addmessage") { + print ''; } // Link to create an intervention @@ -1200,8 +1201,10 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd if (GETPOST('modelselected')) { $action = 'presend'; } + // Set $action to correct value for the case we used presend action to add a message + if (GETPOSTISSET('actionbis') && $action == 'presend') $action = 'presend_addmessage'; - if ($action != 'create_message') + if ($action != 'presend' && $action != 'presend_addmessage') { print '
'; print ''; // ancre @@ -1233,23 +1236,23 @@ if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'd $substitutionarray['__THIRDPARTY_NAME__'] = $object->thirdparty->name; } $substitutionarray['__SIGNATURE__'] = $user->signature; - $substitutionarray['__TICKETSUP_TRACKID__'] = $object->track_id; - $substitutionarray['__TICKETSUP_REF__'] = $object->ref; - $substitutionarray['__TICKETSUP_SUBJECT__'] = $object->subject; - $substitutionarray['__TICKETSUP_TYPE__'] = $object->type_code; - $substitutionarray['__TICKETSUP_SEVERITY__'] = $object->severity_code; - $substitutionarray['__TICKETSUP_CATEGORY__'] = $object->category_code; // For backward compatibility - $substitutionarray['__TICKETSUP_ANALYTIC_CODE__'] = $object->category_code; - $substitutionarray['__TICKETSUP_MESSAGE__'] = $object->message; - $substitutionarray['__TICKETSUP_PROGRESSION__'] = $object->progress; + $substitutionarray['__TICKET_TRACKID__'] = $object->track_id; + $substitutionarray['__TICKET_REF__'] = $object->ref; + $substitutionarray['__TICKET_SUBJECT__'] = $object->subject; + $substitutionarray['__TICKET_TYPE__'] = $object->type_code; + $substitutionarray['__TICKET_SEVERITY__'] = $object->severity_code; + $substitutionarray['__TICKET_CATEGORY__'] = $object->category_code; // For backward compatibility + $substitutionarray['__TICKET_ANALYTIC_CODE__'] = $object->category_code; + $substitutionarray['__TICKET_MESSAGE__'] = $object->message; + $substitutionarray['__TICKET_PROGRESSION__'] = $object->progress; if ($object->fk_user_assign > 0) { $userstat->fetch($object->fk_user_assign); - $substitutionarray['__TICKETSUP_USER_ASSIGN__'] = dolGetFirstLastname($userstat->firstname, $userstat->lastname); + $substitutionarray['__TICKET_USER_ASSIGN__'] = dolGetFirstLastname($userstat->firstname, $userstat->lastname); } if ($object->fk_user_create > 0) { $userstat->fetch($object->fk_user_create); - $substitutionarray['__TICKETSUP_USER_CREATE__'] = dolGetFirstLastname($userstat->firstname, $userstat->lastname); + $substitutionarray['__TICKET_USER_CREATE__'] = dolGetFirstLastname($userstat->firstname, $userstat->lastname); } foreach ($substitutionarray as $key => $val) { $help.=$key.' -> '.$langs->trans($val).'
'; From feee4374713d3a844de3141aec9b87004f5702c0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 23:43:49 +0200 Subject: [PATCH 320/944] FIX Closing ticket from public interface --- htdocs/public/ticket/list.php | 130 +++++++++++++-------------- htdocs/public/ticket/view.php | 20 +++-- htdocs/ticket/card.php | 9 +- htdocs/ticket/class/ticket.class.php | 2 +- htdocs/ticket/list.php | 16 ++-- 5 files changed, 93 insertions(+), 84 deletions(-) diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index 88b8426fef9..5cbe0099b6d 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -237,37 +237,37 @@ if ($action == "view_ticketlist") } if (!empty($search_subject)) { $filter['t.subject'] = $search_subject; - $param .= '&search_subject=' . $search_subject; + $param .= '&search_subject=' .urlencode($search_subject); } if (!empty($search_type)) { $filter['t.type_code'] = $search_type; - $param .= '&search_type=' . $search_type; + $param .= '&search_type=' . urlencode($search_type); } if (!empty($search_category)) { $filter['t.category_code'] = $search_category; - $param .= '&search_category=' . $search_category; + $param .= '&search_category=' . urlencode($search_category); } if (!empty($search_severity)) { $filter['t.severity_code'] = $search_severity; - $param .= '&search_severity=' . $search_severity; + $param .= '&search_severity=' . urlencode($search_severity); } if (!empty($search_fk_user_assign)) { // -1 value = all so no filter if ($search_fk_user_assign > 0) { $filter['t.fk_user_assign'] = $search_fk_user_assign; - $param .= '&search_fk_user_assign=' . $search_fk_user_assign; + $param .= '&search_fk_user_assign=' . urlencode($search_fk_user_assign); } } if (!empty($search_fk_user_create)) { // -1 value = all so no filter if ($search_fk_user_create > 0) { $filter['t.fk_user_create'] = $search_fk_user_create; - $param .= '&search_fk_user_create=' . $search_fk_user_create; + $param .= '&search_fk_user_create=' . urlencode($search_fk_user_create); } } if ((isset($search_fk_status) && $search_fk_status != '') && $search_fk_status != '-1' && $search_fk_status != 'non_closed') { $filter['t.fk_statut'] = $search_fk_status; - $param .= '&search_fk_status=' . $search_fk_status; + $param .= '&search_fk_status=' . urlencode($search_fk_status); } if (isset($search_fk_status) && $search_fk_status == 'non_closed') { $filter['t.fk_statut'] = array(0, 1, 3, 4, 5, 6); @@ -388,62 +388,7 @@ if ($action == "view_ticketlist") print '
'; - print $langs->trans('DateCreation'); + print $langs->trans('TicketMessagesList'); print ''; - if ($arraymsgs['fk_user_action'] > 0) { + if ($arraymsgs['fk_user_author'] > 0) { $userstat = new User($this->db); - $res = $userstat->fetch($arraymsgs['fk_user_action']); + $res = $userstat->fetch($arraymsgs['fk_user_author']); if ($res) { print $userstat->getNomUrl(0); } diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php index 132cce1e52b..7ab32f20851 100644 --- a/htdocs/ticket/class/ticket.class.php +++ b/htdocs/ticket/class/ticket.class.php @@ -1660,20 +1660,19 @@ class Ticket extends CommonObject } /** - * Charge la liste des messages sur le ticket + * Load the list of event on ticket into ->cache_msgs_ticket * - * @return int Nb lignes chargees, 0 si deja chargees, <0 si ko + * @return int Nb of lines loaded, 0 if already loaded, <0 if KO */ public function loadCacheMsgsTicket() { - global $langs; - if (is_array($this->cache_msgs_ticket) && count($this->cache_msgs_ticket)) { return 0; } - // Cache deja charge - $sql = "SELECT rowid, fk_user_author, datec, label, message, visibility"; + // Cache already loaded + + $sql = "SELECT id as rowid, fk_user_author, datec, label, note as message, visibility"; $sql .= " FROM " . MAIN_DB_PREFIX . "actioncomm"; $sql .= " WHERE fk_element = " . (int) $this->id; $sql .= " AND elementtype = 'ticket'"; @@ -1687,7 +1686,7 @@ class Ticket extends CommonObject while ($i < $num) { $obj = $this->db->fetch_object($resql); $this->cache_msgs_ticket[$i]['id'] = $obj->rowid; - $this->cache_msgs_ticket[$i]['fk_user_action'] = $obj->fk_user_action; + $this->cache_msgs_ticket[$i]['fk_user_author'] = $obj->fk_user_author; $this->cache_msgs_ticket[$i]['datec'] = $this->db->jdate($obj->datec); $this->cache_msgs_ticket[$i]['subject'] = $obj->label; $this->cache_msgs_ticket[$i]['message'] = $obj->message; From 934d8bd2d1ba83a57689a9ecddd12561cd59a29b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 19:13:51 +0200 Subject: [PATCH 315/944] Update doc --- .github/CONTRIBUTING.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 578bd592a75..6f61c24ae04 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -113,13 +113,11 @@ Also, some code changes need a prior approbation: * if you add a new table, you must first create a page on http://wiki.dolibarr.org/index.php/Category:Table_SQL (copy an existing page changing its name to see it into this index page). Than ask the project manager (@eldy) if the new data model you plan to add can be accepted as you suggest. -Once a PR has been submitted, you may need to wait for its integration. It is common that the project leader let the PR open for a long delay to allow -every developer discuss about the PR. +Once a PR has been submitted, you may need to wait for its integration. It is common that the project leader let the PR open for a long delay to allow every developer discuss about the PR. If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several month later. -If the PR is valid, and is kept open for a long time, a tag will also be added on the PR to describe the status of your PR. +If the PR is valid, and is kept open for a long time, a tag will also be added on the PR to describe the status of your PR and why the PR is kept open. By putting your mouse on the tag, you will get a full explanation of the tag/status that explain why your PR has not been integrated yet. -Around 95% of submitted PR are reviewed and tagged. Even if this is one of the most important ratio in Open Source world, don't expect the core team -to reach the 100%. With the increasing popularity of Dolibarr, this ratio will probably decrease in future. +Around 95% of submitted PR are reviewed and tagged. Even if this is one of the most important ratio of answered PR in Open Source world, don't expect the core team to reach the 100%. With the increasing popularity of Dolibarr, this ratio will probably decrease in future. ### Resources From db61dfdb9c87b62086808b535fa0acd58dcd39a5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 19:24:41 +0200 Subject: [PATCH 316/944] Update doc --- .github/CONTRIBUTING.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 6f61c24ae04..a13037402f8 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -114,9 +114,12 @@ Also, some code changes need a prior approbation: * if you add a new table, you must first create a page on http://wiki.dolibarr.org/index.php/Category:Table_SQL (copy an existing page changing its name to see it into this index page). Than ask the project manager (@eldy) if the new data model you plan to add can be accepted as you suggest. Once a PR has been submitted, you may need to wait for its integration. It is common that the project leader let the PR open for a long delay to allow every developer discuss about the PR. -If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several month later. -If the PR is valid, and is kept open for a long time, a tag will also be added on the PR to describe the status of your PR and why the PR is kept open. -By putting your mouse on the tag, you will get a full explanation of the tag/status that explain why your PR has not been integrated yet. + +If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several month later. Don't expect anything on your PR if you have such errors, you MUST first fix the Continuous Integration error to have it taken into consideration. + +If the PR is valid, and is kept open for a long time, a tag will also be added on the PR to describe the status of your PR and why the PR is kept open. By putting your mouse on the tag, you will get a full explanation of the tag/status that explain why your PR has not been integrated yet. +In most cases, it give you information of things you have to do to have the PR taken into consideration (for example a change is requested, a conflict is expected to be solved, some questions were asked). If you have a yellow, red flag of purple flag, don't expect to have your PR validated. You must first provide the answer the flag ask you. The majority of PR are waiting a developer action. + Around 95% of submitted PR are reviewed and tagged. Even if this is one of the most important ratio of answered PR in Open Source world, don't expect the core team to reach the 100%. With the increasing popularity of Dolibarr, this ratio will probably decrease in future. From e742c3eb20e209d026653636b6a7b48776668c2a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 20:06:02 +0200 Subject: [PATCH 317/944] Debug module ticket --- htdocs/public/ticket/create_ticket.php | 2 +- htdocs/public/ticket/list.php | 3 +- htdocs/public/ticket/view.php | 70 ++++++++++++++++++-------- htdocs/ticket/class/ticket.class.php | 2 +- 4 files changed, 53 insertions(+), 24 deletions(-) diff --git a/htdocs/public/ticket/create_ticket.php b/htdocs/public/ticket/create_ticket.php index b663aaa43c3..b7d17244c2a 100644 --- a/htdocs/public/ticket/create_ticket.php +++ b/htdocs/public/ticket/create_ticket.php @@ -17,7 +17,7 @@ */ /** - * \file htdocs/public/ticket/index.php + * \file htdocs/public/ticket/create_ticket.php * \ingroup ticket * \brief Display public form to add new ticket */ diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index 9da0a4272e1..39736c6d857 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -210,7 +210,8 @@ if ($action == "view_ticketlist") 't.date_read' => array('label' => $langs->trans("TicketReadOn"), 'checked' => 0), 't.date_close' => array('label' => $langs->trans("TicketCloseOn"), 'checked' => 0), 't.ref' => array('label' => $langs->trans("Ref"), 'checked' => 1), - 't.fk_statut' => array('label' => $langs->trans("Statut"), 'checked' => 1), + //'t.track_id' => array('label' => $langs->trans("IDTracking"), 'checked' => 0), + 't.fk_statut' => array('label' => $langs->trans("Statut"), 'checked' => 1), 't.subject' => array('label' => $langs->trans("Subject"), 'checked' => 1), 'type.code' => array('label' => $langs->trans("Type"), 'checked' => 1), 'category.code' => array('label' => $langs->trans("Category"), 'checked' => 1), diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index 2c23ba1bc71..be77e50ea28 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -17,7 +17,7 @@ */ /** - * \file htdocs/public/ticket/index.php + * \file htdocs/public/ticket/view.php * \ingroup ticket * \brief Public file to add and manage ticket */ @@ -65,7 +65,7 @@ $object = new ActionsTicket($db); * Actions */ -if ($action == "view_ticket" || $action == "add_message" || $action == "close" || $action == "confirm_public_close" || $action == "new_public_message") { +if ($action == "view_ticket" || $action == "add_message" || $action == "close" || $action == "confirm_public_close" || $action == "add_public_message") { $error = 0; $display_ticket = false; if (!strlen($track_id)) { @@ -89,22 +89,28 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | if (!$error) { $ret = $object->fetch('', '', $track_id); if ($ret && $object->dao->id > 0) { - // vérifie si l'adresse email est bien dans les contacts du ticket - $contacts = $object->dao->liste_contact(-1, 'external'); - foreach ($contacts as $contact) { - if ($contact['email'] == $email) { - $display_ticket = true; - $_SESSION['email_customer'] = $email; - break; - } else { - $display_ticket = false; - } - } - + // Check if emails provided is the one of author + if ($object->dao->origin_email == $email) + { + $display_ticket = true; + $_SESSION['email_customer'] = $email; + } + // Check if emails provided is inside list of contacts + else { + $contacts = $object->dao->liste_contact(-1, 'external'); + foreach ($contacts as $contact) { + if ($contact['email'] == $email) { + $display_ticket = true; + $_SESSION['email_customer'] = $email; + break; + } else { + $display_ticket = false; + } + } + } if ($object->dao->fk_soc > 0) { $object->dao->fetch_thirdparty(); } - if ($email == $object->dao->origin_email || $email == $object->dao->thirdparty->email) { $display_ticket = true; $_SESSION['email_customer'] = $email; @@ -116,12 +122,32 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | } } + if ($action == "add_public_message") + { + // TODO Add message... + + + + + if (! $error) + { + $action = 'view_ticket'; + } + } + if ($error || $errors) { setEventMessages($object->error, $object->errors, 'errors'); - $action = ''; + if ($action == "add_public_message") + { + $action = 'add_message'; + } + else + { + $action = ''; + } } } - +//var_dump($action); //$object->doActions($action); @@ -251,16 +277,18 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" | $formticket = new FormTicket($db); - $formticket->action = "new_public_message"; + $formticket->action = "add_public_message"; $formticket->track_id = $object->dao->track_id; $formticket->id = $object->dao->id; - $formticket->param = array('fk_user_create' => '-1'); + $formticket->param = array('track_id' => $object->dao->track_id, 'fk_user_create' => '-1', 'returnurl' => DOL_URL_ROOT.'/public/ticket/view.php'); $formticket->withfile = 2; $formticket->showMessageForm('100%'); - } else { - print '
'; + } + + if ($action != 'add_message') { + print ''; print ''; print ''; print ''; diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php index 7ab32f20851..29654654110 100644 --- a/htdocs/ticket/class/ticket.class.php +++ b/htdocs/ticket/class/ticket.class.php @@ -180,7 +180,7 @@ class Ticket extends CommonObject 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'position'=>1, 'visible'=>-2, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id"), 'entity' => array('type'=>'integer', 'label'=>'Entity', 'visible'=>0, 'enabled'=>1, 'position'=>5, 'notnull'=>1, 'index'=>1), 'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'visible'=>1, 'enabled'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", 'css'=>''), - 'track_id' => array('type'=>'varchar(255)', 'label'=>'TrackID', 'visible'=>0, 'enabled'=>1, 'position'=>11, 'notnull'=>-1, 'searchall'=>1, 'help'=>"Help text"), + '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'=>'nowraponall'), 'origin_email' => array('type'=>'mail', 'label'=>'OriginEmail', 'visible'=>-2, 'enabled'=>1, 'position'=>16, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object"), 'subject' => array('type'=>'varchar(255)', 'label'=>'Subject', 'visible'=>1, 'enabled'=>1, 'position'=>18, 'notnull'=>-1, 'searchall'=>1, 'help'=>""), From 94f063449268ed9713ad4c75c52a1759bc224119 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 21:45:11 +0200 Subject: [PATCH 318/944] Fix empty link --- htdocs/accountancy/customer/lines.php | 6 +++--- htdocs/accountancy/supplier/lines.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index ea174638a2a..0e7047b84de 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -374,9 +374,9 @@ if ($result) { // Ref Product print '
'; - if ($product_static->id) - print $product_static->getNomUrl(1); - if ($objp->product_label) print '
'.$objp->product_label; + if ($product_static->id > 0) print $product_static->getNomUrl(1); + if ($product_static->id > 0 && $objp->product_label) print '
'; + if ($objp->product_label) print $objp->product_label; print '
'; diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index a67386f6fbd..c4aa1316876 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -384,9 +384,9 @@ if ($result) { // Ref product print ''; - if ($product_static->id) - print $product_static->getNomUrl(1); - if ($objp->product_label) print '
'.$objp->product_label; + if ($product_static->id > 0) print $product_static->getNomUrl(1); + if ($product_static->id > 0 && $objp->product_label) print '
'; + if ($objp->product_label) print $objp->product_label; print '
'; - print ''; - if (!empty($arrayfields['t.datec']['checked'])) { - print_liste_field_titre($arrayfields['t.datec']['label'], $url_page_current, 't.datec', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['t.date_read']['checked'])) { - print_liste_field_titre($arrayfields['t.date_read']['label'], $url_page_current, 't.date_read', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['t.date_close']['checked'])) { - print_liste_field_titre($arrayfields['t.date_close']['label'], $url_page_current, 't.date_close', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['t.ref']['checked'])) { - print_liste_field_titre($arrayfields['t.ref']['label'], $url_page_current, 't.ref', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['t.subject']['checked'])) { - print_liste_field_titre($arrayfields['t.subject']['label']); - } - if (!empty($arrayfields['type.code']['checked'])) { - print_liste_field_titre($arrayfields['type.code']['label'], $url_page_current, 'type.code', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['category.code']['checked'])) { - print_liste_field_titre($arrayfields['category.code']['label'], $url_page_current, 'category.code', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['severity.code']['checked'])) { - print_liste_field_titre($arrayfields['severity.code']['label'], $url_page_current, 'severity.code', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['t.progress']['checked'])) { - print_liste_field_titre($arrayfields['t.progress']['label'], $url_page_current, 't.progress', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['t.fk_user_create']['checked'])) { - print_liste_field_titre($arrayfields['t.fk_user_create']['label'], $url_page_current, 't.fk_user_create', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['t.fk_user_assign']['checked'])) { - print_liste_field_titre($arrayfields['t.fk_user_assign']['label'], $url_page_current, 't.fk_user_assign', '', $param, '', $sortfield, $sortorder); - } - if (!empty($arrayfields['t.tms']['checked'])) { - print_liste_field_titre($arrayfields['t.tms']['label'], $url_page_current, 't.tms', '', $param, '', $sortfield, $sortorder); - } - // Extra fields - if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { - foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { - if (!empty($arrayfields["ef." . $key]['checked'])) { - $align = $extrafields->getAlignFlag($key); - print_liste_field_titre($extralabels[$key], $url_page_current, "ef." . $key, "", $param, ($align ? 'align="' . $align . '"' : ''), $sortfield, $sortorder); - } - } - } - if (!empty($arrayfields['t.fk_statut']['checked'])) { - print_liste_field_titre($arrayfields['t.fk_statut']['label'], $url_page_current, 't.fk_statut', '', $param, '', $sortfield, $sortorder); - } - print_liste_field_titre($selectedfields, $url_page_current, "", '', '', 'align="right"', $sortfield, $sortorder, 'maxwidthsearch '); - print ''; - - /* - * Filter bar - */ - + // Filter bar print ''; if (!empty($arrayfields['t.datec']['checked'])) { @@ -463,13 +408,13 @@ if ($action == "view_ticketlist") if (!empty($arrayfields['t.subject']['checked'])) { print ''; } if (!empty($arrayfields['type.code']['checked'])) { print ''; } @@ -524,6 +469,59 @@ if ($action == "view_ticketlist") print ''; print ''; + // Field title + print ''; + if (!empty($arrayfields['t.datec']['checked'])) { + print_liste_field_titre($arrayfields['t.datec']['label'], $url_page_current, 't.datec', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['t.date_read']['checked'])) { + print_liste_field_titre($arrayfields['t.date_read']['label'], $url_page_current, 't.date_read', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['t.date_close']['checked'])) { + print_liste_field_titre($arrayfields['t.date_close']['label'], $url_page_current, 't.date_close', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['t.ref']['checked'])) { + print_liste_field_titre($arrayfields['t.ref']['label'], $url_page_current, 't.ref', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['t.subject']['checked'])) { + print_liste_field_titre($arrayfields['t.subject']['label']); + } + if (!empty($arrayfields['type.code']['checked'])) { + print_liste_field_titre($arrayfields['type.code']['label'], $url_page_current, 'type.code', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['category.code']['checked'])) { + print_liste_field_titre($arrayfields['category.code']['label'], $url_page_current, 'category.code', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['severity.code']['checked'])) { + print_liste_field_titre($arrayfields['severity.code']['label'], $url_page_current, 'severity.code', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['t.progress']['checked'])) { + print_liste_field_titre($arrayfields['t.progress']['label'], $url_page_current, 't.progress', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['t.fk_user_create']['checked'])) { + print_liste_field_titre($arrayfields['t.fk_user_create']['label'], $url_page_current, 't.fk_user_create', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['t.fk_user_assign']['checked'])) { + print_liste_field_titre($arrayfields['t.fk_user_assign']['label'], $url_page_current, 't.fk_user_assign', '', $param, '', $sortfield, $sortorder); + } + if (!empty($arrayfields['t.tms']['checked'])) { + print_liste_field_titre($arrayfields['t.tms']['label'], $url_page_current, 't.tms', '', $param, '', $sortfield, $sortorder); + } + // Extra fields + if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) { + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) { + if (!empty($arrayfields["ef." . $key]['checked'])) { + $align = $extrafields->getAlignFlag($key); + print_liste_field_titre($extralabels[$key], $url_page_current, "ef." . $key, "", $param, ($align ? 'align="' . $align . '"' : ''), $sortfield, $sortorder); + } + } + } + if (!empty($arrayfields['t.fk_statut']['checked'])) { + print_liste_field_titre($arrayfields['t.fk_statut']['label'], $url_page_current, 't.fk_statut', '', $param, '', $sortfield, $sortorder); + } + print_liste_field_titre($selectedfields, $url_page_current, "", '', '', 'align="right"', $sortfield, $sortorder, 'maxwidthsearch '); + print ''; + while ($obj = $db->fetch_object($resql)) { print ''; @@ -551,7 +549,7 @@ if ($action == "view_ticketlist") // Ref if (!empty($arrayfields['t.ref']['checked'])) { - print ''; } diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index e7df24c16f3..3c732773b90 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -84,7 +84,6 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("TicketTrackId"))); $action = ''; } - if (!strlen($email)) { $error++; array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("Email"))); @@ -154,6 +153,19 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a } } + if (! $error && $action == 'confirm_public_close' && $display_ticket) + { + if ($object->dao->close($user)) { + setEventMessages($langs->trans('TicketMarkedAsClosed'), null, 'mesgs'); + + $url = 'view.php?action=view_ticket&track_id=' . GETPOST('track_id', 'alpha'); + header("Location: " . $url); + } else { + $action = ''; + setEventMessages($object->error, $object->errors, 'errors'); + } + } + if (! $error && $action == "add_message" && $display_ticket) { // TODO Add message... @@ -290,8 +302,6 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a $fuser = new User($db); $fuser->fetch($object->dao->fk_user_assign); print $fuser->getFullName($langs, 1); - } else { - print $langs->trans('None'); } print ''; @@ -336,12 +346,12 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a // List ticket print ''; - if ($object->dao->fk_statut < 8) { + if ($object->dao->fk_statut < Ticket::STATUS_CLOSED) { // New message print ''; // Close ticket - if ($object->dao->fk_statut > 0 && $object->dao->fk_statut < 8) { + if ($object->dao->fk_statut >= Ticket::STATUS_NOT_READ && $object->dao->fk_statut < Ticket::STATUS_CLOSED) { print ''; } } diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php index ba2d14b06ce..b770e2fec40 100644 --- a/htdocs/ticket/card.php +++ b/htdocs/ticket/card.php @@ -394,9 +394,6 @@ if ($action == "confirm_close" && GETPOST('confirm', 'alpha') == 'yes' && $user- $object->fetch(GETPOST('id', 'int'), '', GETPOST('track_id', 'alpha')); if ($object->close($user)) { - // Log action in ticket logs table - $log_action = $langs->trans('TicketLogClosedBy', $user->getFullName($langs)); - setEventMessages($langs->trans('TicketMarkedAsClosed'), null, 'mesgs'); $url = 'card.php?action=view&track_id=' . GETPOST('track_id', 'alpha'); @@ -409,13 +406,15 @@ if ($action == "confirm_close" && GETPOST('confirm', 'alpha') == 'yes' && $user- if ($action == "confirm_public_close" && GETPOST('confirm', 'alpha') == 'yes') { $object->fetch(GETPOST('id', 'int'), '', GETPOST('track_id', 'alpha')); - if (($_SESSION['email_customer'] == $object->origin_email || $_SESSION['email_customer'] == $object->thirdparty->email) && $object->close()) { + if ($_SESSION['email_customer'] == $object->origin_email || $_SESSION['email_customer'] == $object->thirdparty->email) { + $object->close($user); + // Log action in ticket logs table $log_action = $langs->trans('TicketLogClosedBy', $_SESSION['email_customer']); setEventMessages('
' . $langs->trans('TicketMarkedAsClosed') . '
', null, 'mesgs'); - $url = 'view.php?action=view_ticket&track_id=' . GETPOST('track_id', 'alpha'); + $url = 'card.php?action=view_ticket&track_id=' . GETPOST('track_id', 'alpha'); header("Location: " . $url); } else { setEventMessages($object->error, $object->errors, 'errors'); diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php index 29654654110..72cddcce607 100644 --- a/htdocs/ticket/class/ticket.class.php +++ b/htdocs/ticket/class/ticket.class.php @@ -183,7 +183,7 @@ 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'=>'nowraponall'), 'origin_email' => array('type'=>'mail', 'label'=>'OriginEmail', 'visible'=>-2, 'enabled'=>1, 'position'=>16, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object"), - 'subject' => array('type'=>'varchar(255)', 'label'=>'Subject', 'visible'=>1, 'enabled'=>1, 'position'=>18, 'notnull'=>-1, 'searchall'=>1, 'help'=>""), + 'subject' => array('type'=>'varchar(255)', 'label'=>'Subject', 'visible'=>1, 'enabled'=>1, 'position'=>18, 'notnull'=>-1, 'searchall'=>1, 'help'=>"", 'css'=>'maxwidth75'), 'type_code' => array('type'=>'varchar(32)', 'label'=>'Type', 'visible'=>1, 'enabled'=>1, 'position'=>20, 'notnull'=>-1, 'searchall'=>1, 'help'=>"", 'css'=>'maxwidth100'), 'category_code' => array('type'=>'varchar(32)', 'label'=>'TicketGroup', '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'), diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php index 91eeceb54e4..0f415ddbf33 100644 --- a/htdocs/ticket/list.php +++ b/htdocs/ticket/list.php @@ -499,10 +499,11 @@ print '
'; - print ''; + print ''; print ''; - $formTicket->selectTypesTickets($search_type, 'search_type', '', 2, 1, 1); + $formTicket->selectTypesTickets($search_type, 'search_type', '', 2, 1, 1, 0, 'maxwidth150'); print '
'; + print ''; print $obj->ref; print '
'; foreach($object->fields as $key => $val) { - $cssforfield=''; - if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; - if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; - if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center'; + $cssforfield=(empty($val['css'])?'':$val['css']); + if ($key == 'fk_statut') $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price'))) $cssforfield.=($cssforfield?' ':'').'right'; if (! empty($arrayfields['t.'.$key]['checked'])) { if ($key == 'type_code') { print ''."\n"; print ''; foreach($object->fields as $key => $val) { - $cssforfield=''; - if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; - if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + $cssforfield=(empty($val['css'])?'':$val['css']); if ($key == 'fk_statut') $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center'; + elseif (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; + elseif (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price'))) $cssforfield.=($cssforfield?' ':'').'right'; if (! empty($arrayfields['t.'.$key]['checked'])) { print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, '', $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n"; From de4142e23e5035040c33858fd7c31a57cf179e79 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 19 Jul 2019 23:57:35 +0200 Subject: [PATCH 321/944] FIX Add message from public interface --- htdocs/core/class/html.formticket.class.php | 2 +- htdocs/public/ticket/view.php | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index fdbce981e72..a7797f91833 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -1058,7 +1058,7 @@ class FormTicket $out .= '
'; $out .= img_mime($listofnames[$key]) . ' ' . $listofnames[$key]; if (!$this->withfilereadonly) { - $out .= ' '; + $out .= ' '; } $out .= '
'; } diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index 3c732773b90..58b53a3f344 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -166,7 +166,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a } } - if (! $error && $action == "add_message" && $display_ticket) + if (! $error && $action == "add_message" && $display_ticket && GETPOSTISSET('btn_add_message')) { // TODO Add message... $ret = $object->dao->newMessage($user, $action, 0); @@ -196,6 +196,13 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a //var_dump($action); //$object->doActions($action); +// Actions to send emails (for ticket, we need to manage the addfile and removefile only) +$trigger_name='TICKET_SENTBYMAIL'; +$paramname='id'; +$autocopy='MAIN_MAIL_AUTOCOPY_TICKET_TO'; // used to know the automatic BCC to add +$trackid='tic'.$object->id; +include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; + /* From 220f8300c12dd75e9209b32f892410a73b72c229 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 00:14:14 +0200 Subject: [PATCH 322/944] FIX Responsive of public interface of ticket --- htdocs/core/lib/ticket.lib.php | 2 +- htdocs/public/ticket/view.php | 5 +++-- htdocs/theme/eldy/global.inc.php | 18 +++++++++++++++++- htdocs/theme/md/style.css.php | 16 ++++++++++++++++ 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/htdocs/core/lib/ticket.lib.php b/htdocs/core/lib/ticket.lib.php index 9e0c357be05..84be86f4a15 100644 --- a/htdocs/core/lib/ticket.lib.php +++ b/htdocs/core/lib/ticket.lib.php @@ -185,5 +185,5 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $ print '
'; } - print '
'; + print '
'; } diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php index 58b53a3f344..cdbd3abad19 100644 --- a/htdocs/public/ticket/view.php +++ b/htdocs/public/ticket/view.php @@ -223,7 +223,7 @@ $arrayofcss = array('/ticket/css/styles.css.php'); llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); -print '
'; +print '
'; if ($action == "view_ticket" || $action == "presend" || $action == "close" || $action == "confirm_public_close") { if ($display_ticket) { @@ -350,8 +350,9 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a print "\n"; print '
'; + // List ticket - print ''; + print ''; if ($object->dao->fk_statut < Ticket::STATUS_CLOSED) { // New message diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 44c66a979d5..7c2bbba5c42 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -5247,10 +5247,26 @@ div.tabsElem a.tab { /* ============================================================================== */ /* Ticket module */ /* ============================================================================== */ - +.ticketpublicarea { + width: 70%; +} .publicnewticketform { margin-top: 25px !important; } +.ticketlargemargin { + padding-left: 50px; + padding-right: 50px; +} +@media only screen and (max-width: 767px) +{ + .ticketlargemargin { + padding-left: 5px; padding-right: 5px; + } + .ticketpublicarea { + width: 100%; + } +} + #cd-timeline { position: relative; padding: 2em 0; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index c15bbf26eef..9fad375eade 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -5404,9 +5404,25 @@ border-top-right-radius: 6px; /* Ticket module */ /* ============================================================================== */ +.ticketpublicarea { + width: 70%; +} .publicnewticketform { margin-top: 25px !important; } +.ticketlargemargin { + padding-left: 50px; + padding-right: 50px; +} +@media only screen and (max-width: 767px) +{ + .ticketlargemargin { + padding-left: 5px; padding-right: 5px; + } + .ticketpublicarea { + width: 100%; + } +} #cd-timeline { position: relative; From 2418b94e282ea5c73a89d18dcbb7c1a887031d39 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 00:17:26 +0200 Subject: [PATCH 323/944] Fix translation --- htdocs/public/ticket/list.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php index 5cbe0099b6d..5e1ce07e098 100644 --- a/htdocs/public/ticket/list.php +++ b/htdocs/public/ticket/list.php @@ -219,7 +219,7 @@ if ($action == "view_ticketlist") 't.progress' => array('label' => $langs->trans("Progression"), 'checked' => 0), //'t.fk_contract' => array('label' => $langs->trans("Contract"), 'checked' => 0), 't.fk_user_create' => array('label' => $langs->trans("Author"), 'checked' => 1), - 't.fk_user_assign' => array('label' => $langs->trans("AuthorAssign"), 'checked' => 0), + 't.fk_user_assign' => array('label' => $langs->trans("AssignedTo"), 'checked' => 0), //'t.entity'=>array('label'=>$langs->trans("Entity"), 'checked'=>1, 'enabled'=>(! empty($conf->multicompany->enabled) && empty($conf->multicompany->transverse_mode))), //'t.datec' => array('label' => $langs->trans("DateCreation"), 'checked' => 0, 'position' => 500), @@ -611,8 +611,6 @@ if ($action == "view_ticketlist") $user_assign->lastname = (!empty($obj->user_assign_lastname) ? $obj->user_assign_lastname : ''); $user_assign->id = (!empty($obj->fk_user_assign) ? $obj->fk_user_assign : ''); print $user_assign->getFullName($langs); - } else { - print $langs->trans('None'); } print ''; } From 9f9598ac9939469ad970c1deb9bcad0a6080c6c5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 11:44:31 +0200 Subject: [PATCH 324/944] FIX missing token --- htdocs/admin/modules.php | 3 ++- htdocs/core/class/html.form.class.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 0507596caec..a0b8f2e50de 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -900,7 +900,8 @@ if ($mode == 'marketplace') ?>
- + +
trans('Keyword') ?>:
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 68c4bec4690..6c5ed3c23f0 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -6607,7 +6607,7 @@ class Form print '
'; @@ -562,10 +563,11 @@ print '
'; - if(!empty($compatibleImportElementsList)) + if (!empty($compatibleImportElementsList)) { $res=@include dol_buildpath('core/tpl/ajax/objectlinked_lineimport.tpl.php'); } From 20e58bdd97a8be10e7e7feb98caddc4e067fc430 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 13:09:25 +0200 Subject: [PATCH 325/944] FIX Limit of uploaded files (max_post_size was not used) --- htdocs/admin/modules.php | 30 ++++++++++++--- htdocs/admin/system/phpinfo.php | 21 ++++++++++- htdocs/core/class/html.formfile.class.php | 30 ++++++++++++--- htdocs/core/lib/functions.lib.php | 31 ++++++++-------- htdocs/imports/import.php | 45 +++++++++++++++++------ htdocs/langs/en_US/errors.lang | 1 + htdocs/main.inc.php | 2 +- 7 files changed, 120 insertions(+), 40 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index a0b8f2e50de..5fd40fb032a 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -1027,15 +1027,35 @@ if ($mode == 'deploy') print $langs->trans("YouCanSubmitFile"); - $max=$conf->global->MAIN_UPLOAD_DOC; // En Kb - $maxphp=@ini_get('upload_max_filesize'); // En inconnu + $max=$conf->global->MAIN_UPLOAD_DOC; // In Kb + $maxphp=@ini_get('upload_max_filesize'); // In unknown if (preg_match('/k$/i', $maxphp)) $maxphp=$maxphp*1; if (preg_match('/m$/i', $maxphp)) $maxphp=$maxphp*1024; if (preg_match('/g$/i', $maxphp)) $maxphp=$maxphp*1024*1024; if (preg_match('/t$/i', $maxphp)) $maxphp=$maxphp*1024*1024*1024; - // Now $max and $maxphp are in Kb + $maxphp2=@ini_get('post_max_size'); // In unknown + if (preg_match('/k$/i', $maxphp2)) $maxphp2=$maxphp2*1; + if (preg_match('/m$/i', $maxphp2)) $maxphp2=$maxphp2*1024; + if (preg_match('/g$/i', $maxphp2)) $maxphp2=$maxphp2*1024*1024; + if (preg_match('/t$/i', $maxphp2)) $maxphp2=$maxphp2*1024*1024*1024; + // Now $max and $maxphp and $maxphp2 are in Kb $maxmin = $max; - if ($maxphp > 0) $maxmin=min($max, $maxphp); + $maxphptoshow = $maxphptoshowparam = ''; + if ($maxphp > 0) + { + $maxmin=min($max, $maxphp); + $maxphptoshow = $maxphp; + $maxphptoshowparam = 'upload_max_filesize'; + } + if ($maxphp2 > 0) + { + $maxmin=min($max, $maxphp2); + if ($maxphp2 < $maxphp) + { + $maxphptoshow = $maxphp2; + $maxphptoshowparam = 'post_max_size'; + } + } if ($maxmin > 0) { @@ -1063,7 +1083,7 @@ if ($mode == 'deploy') { $langs->load('other'); print ' '; - print info_admin($langs->trans("ThisLimitIsDefinedInSetup", $max, $maxphp), 1); + print info_admin($langs->trans("ThisLimitIsDefinedInSetup", $max, $maxphptoshow, $maxphptoshowparam), 1); } } else diff --git a/htdocs/admin/system/phpinfo.php b/htdocs/admin/system/phpinfo.php index 2dc9406eb13..d1c737ef5a8 100644 --- a/htdocs/admin/system/phpinfo.php +++ b/htdocs/admin/system/phpinfo.php @@ -48,14 +48,31 @@ if (isset($title)) } +// Check PHP setup is OK +$maxphp=@ini_get('upload_max_filesize'); // In unknown +if (preg_match('/k$/i', $maxphp)) $maxphp=$maxphp*1; +if (preg_match('/m$/i', $maxphp)) $maxphp=$maxphp*1024; +if (preg_match('/g$/i', $maxphp)) $maxphp=$maxphp*1024*1024; +if (preg_match('/t$/i', $maxphp)) $maxphp=$maxphp*1024*1024*1024; +$maxphp2=@ini_get('post_max_size'); // In unknown +if (preg_match('/k$/i', $maxphp2)) $maxphp2=$maxphp2*1; +if (preg_match('/m$/i', $maxphp2)) $maxphp2=$maxphp2*1024; +if (preg_match('/g$/i', $maxphp2)) $maxphp2=$maxphp2*1024*1024; +if (preg_match('/t$/i', $maxphp2)) $maxphp2=$maxphp2*1024*1024*1024; +if ($maxphp > 0 && $maxphp2 > 0 && $maxphp > $maxphp2) +{ + $langs->load("errors"); + print info_admin($langs->trans("WarningParamUploadMaxFileSizeHigherThanPostMaxSize", @ini_get('upload_max_filesize'), @ini_get('post_max_size')), 0, 0, 0, 'warning'); + print '
'; +} + print ''; print ''; print "\n"; -$var=false; -// Recupere la version de PHP +// Get PHP version $phpversion=version_php(); print '\n"; diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index be389a94283..5f63d4db66c 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -130,15 +130,35 @@ class FormFile $out .= ''; // Input file name box - print ''; print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; print ''; print ''; print ''; From f6c937a218a43aa8f0297f2bb3360f1f9d10cd38 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 14:14:18 +0200 Subject: [PATCH 328/944] Fix translation --- htdocs/compta/accounting-files.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index 8467602a6fe..e52f91ba45c 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -$langs->loadLangs(array("accountancy", "bills", "companies", "salaries")); +$langs->loadLangs(array("accountancy", "bills", "companies", "salaries", "compta")); $date_start =GETPOST('date_start', 'alpha'); $date_startDay= GETPOST('date_startday', 'int'); From 6956067d8f2a48d91af81d6487f3eb32ae0c78fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 15:04:11 +0200 Subject: [PATCH 329/944] Fix print of print --- htdocs/societe/paymentmodes.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 51a7ccb24bb..fdd4f54b6c8 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -1208,8 +1208,8 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print_liste_field_titre("BIC"); if (! empty($conf->prelevement->enabled)) { - print print_liste_field_titre("RUM"); - print print_liste_field_titre("WithdrawMode"); + print_liste_field_titre("RUM"); + print_liste_field_titre("WithdrawMode"); } print_liste_field_titre("DefaultRIB", '', '', '', '', '', '', '', 'center '); print_liste_field_titre('', '', '', '', '', '', '', '', 'center '); From d88fec52bfd8bff0196a1d32a1ffc5f2349afd48 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Sat, 20 Jul 2019 15:07:59 +0200 Subject: [PATCH 330/944] fix warining message --- htdocs/comm/action/peruser.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 9e2a7278a27..65669625398 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -1189,8 +1189,8 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & } $ids1='';$ids2=''; - if (count($cases1[$h]) && array_keys($cases1[$h])) $ids1=join(',',array_keys($cases1[$h])); - if (count($cases2[$h]) && array_keys($cases2[$h])) $ids2=join(',',array_keys($cases2[$h])); + if (is_array($cases1[$h]) && count($cases1[$h]) && array_keys($cases1[$h])) $ids1=join(',',array_keys($cases1[$h])); + if (is_array($cases2[$h]) && count($cases2[$h]) && array_keys($cases2[$h])) $ids2=join(',',array_keys($cases2[$h])); if ($h == $begin_h) echo ''; // Disable - print ''; + print ''; // Force e-mail recipient print ''; //Add user to select destinaries list diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 4e133489ce8..2edb5500d54 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1921,4 +1921,5 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? \ No newline at end of file +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value \ No newline at end of file From cf87196f376ef3e1f2d6ff68741ad90e308c982b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 21 Jul 2019 20:55:12 +0200 Subject: [PATCH 341/944] Fix css --- 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 3ac50a65e9a..0318efb7e1a 100644 --- a/htdocs/compta/sociales/card.php +++ b/htdocs/compta/sociales/card.php @@ -655,7 +655,7 @@ if ($id > 0) else { - print ''; + print ''; print ''; print ''; } From 7ec8b48b180a9f7c1bb27bb6ca9c8a4c39e3175d Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sun, 21 Jul 2019 22:21:11 +0200 Subject: [PATCH 342/944] Fix lost filter in action list --- htdocs/comm/action/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php index aae2d48e9cf..10f3048c2f6 100644 --- a/htdocs/comm/action/list.php +++ b/htdocs/comm/action/list.php @@ -43,7 +43,7 @@ $action=GETPOST('action','alpha'); $contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'actioncommlist'; // To manage different context of search $resourceid=GETPOST("search_resourceid","int")?GETPOST("search_resourceid","int"):GETPOST("resourceid","int"); $pid=GETPOST("search_projectid",'int',3)?GETPOST("search_projectid",'int',3):GETPOST("projectid",'int',3); -$status=GETPOST("search_status",'alpha')?GETPOST("search_status",'alpha'):GETPOST("status",'alpha'); +$status=(GETPOST("search_status",'alpha') != '')?GETPOST("search_status",'alpha'):GETPOST("status",'alpha'); $type=GETPOST('search_type','alphanohtml')?GETPOST('search_type','alphanohtml'):GETPOST('type','alphanohtml'); $optioncss = GETPOST('optioncss','alpha'); $year=GETPOST("year",'int'); From c9e70ed1c1d4f544e773cc9b703aace0b712c9a4 Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Mon, 22 Jul 2019 09:30:43 +0200 Subject: [PATCH 343/944] Fix problems detected by travis-ci --- .../repair_llx_commande_fournisseur_dispatch_3.6-9.0.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/script/repair_llx_commande_fournisseur_dispatch_3.6-9.0.php b/htdocs/fourn/commande/script/repair_llx_commande_fournisseur_dispatch_3.6-9.0.php index fec3c82cb56..0c4b006664c 100644 --- a/htdocs/fourn/commande/script/repair_llx_commande_fournisseur_dispatch_3.6-9.0.php +++ b/htdocs/fourn/commande/script/repair_llx_commande_fournisseur_dispatch_3.6-9.0.php @@ -42,7 +42,7 @@ // Dolibarr environment $path_dir = '../../'; $main_inc_file = 'main.inc.php'; -while ((false == @include($path_dir . $main_inc_file)) && 3*10 > strlen($path_dir)) { +while ((false == (@include $path_dir . $main_inc_file)) && 3*10 > strlen($path_dir)) { $path_dir = '../' . $path_dir; if (strlen($path_dir) > 20) { echo 'Error: unable to include "' . $main_inc_file . '" from any of the parent directories.'; @@ -141,7 +141,6 @@ if ($resql_dispatch) { flush(); ob_flush(); } - } } else { echo 'Unable to find any dispatch without an fk_commandefourndet.' . "\n"; From cfaf9ce0ea906f337845a6e8029d56410194419d Mon Sep 17 00:00:00 2001 From: jcp Date: Mon, 22 Jul 2019 11:44:18 +0200 Subject: [PATCH 344/944] SET special_code=4 for existing records --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index c2d4809f958..89abab54011 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -395,3 +395,6 @@ insert into llx_c_type_contact(rowid, element, source, code, libelle, active ) v insert into llx_c_type_contact(rowid, element, source, code, libelle, active ) values (113, 'supplier_proposal', 'external', 'SERVICE', 'Contact fournisseur prestation', 1); ALTER TABLE llx_ticket_extrafields ADD INDEX idx_ticket_extrafields (fk_object); + +-- Use special_code=3 in Takepos +UPDATE llx_facturedet AS fd LEFT JOIN llx_facture AS f ON f.rowid = fd.fk_facture SET fd.special_code = 4 WHERE f.module_source = 'takepos' AND fd.special_code = 3 From 6409cc06ae8d3827610497c8bda26b6671482080 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 22 Jul 2019 11:42:25 +0200 Subject: [PATCH 345/944] FIX duplicate on the check (TODO field $onetrtd not used ?) --- htdocs/core/class/commonobject.class.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 7cf3273b818..b2826737d0d 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6289,7 +6289,7 @@ abstract class CommonObject * @param array $params Optional parameters. Example: array('style'=>'class="oddeven"', 'colspan'=>$colspan) * @param string $keysuffix Suffix string to add after name and id of field (can be used to avoid duplicate names) * @param string $keyprefix Prefix string to add before name and id of field (can be used to avoid duplicate names) - * @param string $onetrtd All fields in same tr td + * @param string $onetrtd All fields in same tr td (TODO field not used ?) * @return string */ function showOptionals($extrafields, $mode='view', $params=null, $keysuffix='', $keyprefix='', $onetrtd=0) @@ -6386,10 +6386,7 @@ abstract class CommonObject $out .= ''; - if (! empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && ($e % 2) == 0) - { - if (! empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && ($e % 2) == 0) { $colspan='0'; } - } + if (! empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && ($e % 2) == 0) { $colspan='0'; } if ($action == 'selectlines') { $colspan++; } From 7bdfd832884f1010c056b153e6691cd0b7412362 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 22 Jul 2019 15:15:08 +0200 Subject: [PATCH 346/944] FIX FEC Format - Missing date_creation in general ledger when you add a new transaction --- htdocs/accountancy/class/bookkeeping.class.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index d31e660f0f1..21e43b524d7 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -549,7 +549,7 @@ class BookKeeping extends CommonObject // Put here code to add control on parameters values // Insert request - $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . $mode.'('; + $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . $mode.' ('; $sql .= 'doc_date,'; $sql .= 'date_lim_reglement,'; $sql .= 'doc_type,'; @@ -1693,20 +1693,22 @@ class BookKeeping extends CommonObject $this->db->begin(); - if ($direction==0) + if ($direction==0) { $next_piecenum=$this->getNextNumMvt(); + $now = dol_now(); + if ($next_piecenum < 0) { $error++; } - $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element.'(doc_date, doc_type,'; + $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element.' (doc_date, doc_type,'; $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; - $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num)'; - $sql .= 'SELECT doc_date, doc_type,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num, date_creation)'; + $sql .= ' SELECT doc_date, doc_type,'; $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; - $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, '.$next_piecenum.''; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, '.$next_piecenum.', "'.$this->db->idate($now).'"'; $sql .= ' FROM '.MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; $resql = $this->db->query($sql); if (! $resql) { @@ -1729,11 +1731,11 @@ class BookKeeping extends CommonObject $this->errors[] = 'Error ' . $this->db->lasterror(); dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } - $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element.'_tmp(doc_date, doc_type,'; + $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element.'_tmp (doc_date, doc_type,'; $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num)'; - $sql .= 'SELECT doc_date, doc_type,'; + $sql .= ' SELECT doc_date, doc_type,'; $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num'; From a33ac665bb5df8f71e6d1412c89653439b75ee8a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 22 Jul 2019 22:07:04 +0200 Subject: [PATCH 347/944] Fix phpcs --- htdocs/compta/prelevement/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php index c5e831ffcd5..5864d6301bd 100644 --- a/htdocs/compta/prelevement/card.php +++ b/htdocs/compta/prelevement/card.php @@ -86,7 +86,7 @@ if (empty($reshook)) } // Seems to no be used and replaced with $action == 'infocredit' - if ( $action == 'confirm_credite' && GETPOST('confirm','alpha') == 'yes') + if ( $action == 'confirm_credite' && GETPOST('confirm', 'alpha') == 'yes') { $res=$object->set_credite(); if ($res >= 0) From d6d5a93225825eb3ac7d398dc70a5785eb9e4e9f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 23 Jul 2019 03:15:06 +0200 Subject: [PATCH 348/944] Fix css --- htdocs/projet/ganttview.php | 4 ++-- htdocs/projet/tasks.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php index a30fce71ef1..ba1e2f2994e 100644 --- a/htdocs/projet/ganttview.php +++ b/htdocs/projet/ganttview.php @@ -204,9 +204,9 @@ if ($user->rights->projet->all->creer || $user->rights->projet->creer) { } } -$linktocreatetask = dolGetButtonTitle($langs->trans('AddTask'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id.'&action=create'.$param.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$object->id), '', $linktocreatetaskUserRight, $linktocreatetaskParam); +$linktocreatetask = dolGetButtonTitle($langs->trans('AddTask'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id.'&action=create'.$param.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.$object->id), '', $linktocreatetaskUserRight, $linktocreatetaskParam); -$linktolist = dolGetButtonTitle($langs->trans('GoToListOfTasks'), '', 'fa fa-tasks', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id); +$linktolist = dolGetButtonTitle($langs->trans('GoToListOfTasks'), '', 'fa fa-tasks paddingleft', DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id); //print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $totalnboflines, 'title_generic.png', 0, '', '', 0, 1); print load_fiche_titre($title, $linktolist.'   '.$linktocreatetask, 'title_generic.png'); diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php index b05b27b5e90..b8ac9fb7e02 100644 --- a/htdocs/projet/tasks.php +++ b/htdocs/projet/tasks.php @@ -709,7 +709,7 @@ elseif ($id > 0 || ! empty($ref)) $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields print '
'; - print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("Version")."".$phpversion."
'; - $max=$conf->global->MAIN_UPLOAD_DOC; // En Kb - $maxphp=@ini_get('upload_max_filesize'); // En inconnu + $max=$conf->global->MAIN_UPLOAD_DOC; // In Kb + $maxphp=@ini_get('upload_max_filesize'); // In unknown if (preg_match('/k$/i', $maxphp)) $maxphp=$maxphp*1; if (preg_match('/m$/i', $maxphp)) $maxphp=$maxphp*1024; if (preg_match('/g$/i', $maxphp)) $maxphp=$maxphp*1024*1024; if (preg_match('/t$/i', $maxphp)) $maxphp=$maxphp*1024*1024*1024; - // Now $max and $maxphp are in Kb + $maxphp2=@ini_get('post_max_size'); // In unknown + if (preg_match('/k$/i', $maxphp2)) $maxphp2=$maxphp2*1; + if (preg_match('/m$/i', $maxphp2)) $maxphp2=$maxphp2*1024; + if (preg_match('/g$/i', $maxphp2)) $maxphp2=$maxphp2*1024*1024; + if (preg_match('/t$/i', $maxphp2)) $maxphp2=$maxphp2*1024*1024*1024; + // Now $max and $maxphp and $maxphp2 are in Kb $maxmin = $max; - if ($maxphp > 0) $maxmin=min($max, $maxphp); + $maxphptoshow = $maxphptoshowparam = ''; + if ($maxphp > 0) + { + $maxmin=min($max, $maxphp); + $maxphptoshow = $maxphp; + $maxphptoshowparam = 'upload_max_filesize'; + } + if ($maxphp2 > 0) + { + $maxmin=min($max, $maxphp2); + if ($maxphp2 < $maxphp) + { + $maxphptoshow = $maxphp2; + $maxphptoshowparam = 'post_max_size'; + } + } if ($maxmin > 0) { @@ -168,7 +188,7 @@ class FormFile { $langs->load('other'); $out .= ' '; - $out .= info_admin($langs->trans("ThisLimitIsDefinedInSetup", $max, $maxphp), 1); + $out .= info_admin($langs->trans("ThisLimitIsDefinedInSetup", $max, $maxphptoshow), 1); } } else diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index c930dbf172a..9aa6177adf4 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2935,22 +2935,23 @@ function dol_trunc($string, $size = 40, $trunc = 'right', $stringencoding = 'UTF /** * Show picto whatever it's its name (generic function) * - * @param string $titlealt Text on title tag for tooltip. Not used if param notitle is set to 1. - * @param string $picto Name of image file to show ('filenew', ...) - * If no extension provided, we use '.png'. Image must be stored into theme/xxx/img directory. - * Example: picto.png if picto.png is stored into htdocs/theme/mytheme/img - * Example: picto.png@mymodule if picto.png is stored into htdocs/mymodule/img - * Example: /mydir/mysubdir/picto.png if picto.png is stored into htdocs/mydir/mysubdir (pictoisfullpath must be set to 1) - * @param string $moreatt Add more attribute on img tag (For example 'style="float: right"') - * @param boolean|int $pictoisfullpath If true or 1, image path is a full path - * @param int $srconly Return only content of the src attribute of img. - * @param int $notitle 1=Disable tag title. Use it if you add js tooltip, to avoid duplicate tooltip. - * @param string $alt Force alt for bind people - * @param string $morecss Add more class css on img tag (For example 'myclascss'). Work only if $moreatt is empty. - * @return string Return img tag + * @param string $titlealt Text on title tag for tooltip. Not used if param notitle is set to 1. + * @param string $picto Name of image file to show ('filenew', ...) + * If no extension provided, we use '.png'. Image must be stored into theme/xxx/img directory. + * Example: picto.png if picto.png is stored into htdocs/theme/mytheme/img + * Example: picto.png@mymodule if picto.png is stored into htdocs/mymodule/img + * Example: /mydir/mysubdir/picto.png if picto.png is stored into htdocs/mydir/mysubdir (pictoisfullpath must be set to 1) + * @param string $moreatt Add more attribute on img tag (For example 'style="float: right"') + * @param boolean|int $pictoisfullpath If true or 1, image path is a full path + * @param int $srconly Return only content of the src attribute of img. + * @param int $notitle 1=Disable tag title. Use it if you add js tooltip, to avoid duplicate tooltip. + * @param string $alt Force alt for bind people + * @param string $morecss Add more class css on img tag (For example 'myclascss'). Work only if $moreatt is empty. + * @param string $marginleftonlyshort 1 = Add a short left margin on picto, 2 = Add a larger left maring on picto, 0 = No margin left. Works for fontawesome picto only. + * @return string Return img tag * @see img_object(), img_picto_common() */ -function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $srconly = 0, $notitle = 0, $alt = '', $morecss = '') +function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $srconly = 0, $notitle = 0, $alt = '', $morecss = '', $marginleftonlyshort = 2) { global $conf, $langs; @@ -2986,7 +2987,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ if (empty($conf->global->MAIN_DISABLE_FONT_AWESOME_5)) $fa='fas'; $fakey = $pictowithoutext; $facolor = ''; $fasize = ''; - $marginleftonlyshort = 2; + if ($pictowithoutext == 'setup') { $fakey = 'fa-cog'; $fasize = '1.4em'; diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 7bcd69e3d0b..2d3882e523e 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -567,25 +567,46 @@ if ($step == 3 && $datatoimport) //print '
'.$langs->trans("FileWithDataToImport").'
'; - print '     '; + print '
'; + print '     '; $out = (empty($conf->global->MAIN_UPLOAD_DOC)?' disabled':''); print ''; $out=''; if (! empty($conf->global->MAIN_UPLOAD_DOC)) { - $max=$conf->global->MAIN_UPLOAD_DOC; // En Kb - $maxphp=@ini_get('upload_max_filesize'); // En inconnu - if (preg_match('/k$/i', $maxphp)) $maxphp=$maxphp*1; - if (preg_match('/m$/i', $maxphp)) $maxphp=$maxphp*1024; - if (preg_match('/g$/i', $maxphp)) $maxphp=$maxphp*1024*1024; - if (preg_match('/t$/i', $maxphp)) $maxphp=$maxphp*1024*1024*1024; - // Now $max and $maxphp are in Kb - if ($maxphp > 0) $max=min($max, $maxphp); + $max=$conf->global->MAIN_UPLOAD_DOC; // In Kb + $maxphp=@ini_get('upload_max_filesize'); // In unknown + if (preg_match('/k$/i', $maxphp)) $maxphp=$maxphp*1; + if (preg_match('/m$/i', $maxphp)) $maxphp=$maxphp*1024; + if (preg_match('/g$/i', $maxphp)) $maxphp=$maxphp*1024*1024; + if (preg_match('/t$/i', $maxphp)) $maxphp=$maxphp*1024*1024*1024; + $maxphp2=@ini_get('post_max_size'); // In unknown + if (preg_match('/k$/i', $maxphp2)) $maxphp2=$maxphp2*1; + if (preg_match('/m$/i', $maxphp2)) $maxphp2=$maxphp2*1024; + if (preg_match('/g$/i', $maxphp2)) $maxphp2=$maxphp2*1024*1024; + if (preg_match('/t$/i', $maxphp2)) $maxphp2=$maxphp2*1024*1024*1024; + // Now $max and $maxphp and $maxphp2 are in Kb + $maxmin = $max; + $maxphptoshow = $maxphptoshowparam = ''; + if ($maxphp > 0) + { + $maxmin=min($max, $maxphp); + $maxphptoshow = $maxphp; + $maxphptoshowparam = 'upload_max_filesize'; + } + if ($maxphp2 > 0) + { + $maxmin=min($max, $maxphp2); + if ($maxphp2 < $maxphp) + { + $maxphptoshow = $maxphp2; + $maxphptoshowparam = 'post_max_size'; + } + } $langs->load('other'); $out .= ' '; - $out.=info_admin($langs->trans("ThisLimitIsDefinedInSetup", $max, $maxphp), 1); + $out .= info_admin($langs->trans("ThisLimitIsDefinedInSetup", $max, $maxphptoshow), 1); } else { @@ -846,7 +867,7 @@ if ($step == 4 && $datatoimport) print ''; print '
'; - print $langs->trans("SelectImportFields", img_picto('', 'grip_title', '')).' '; + print $langs->trans("SelectImportFields", img_picto('', 'grip_title', '', false, 0, 0, '', '', 0)).' '; $htmlother->select_import_model($importmodelid, 'importmodelid', $datatoimport, 1); print ''; print '
'; diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index bb92e41a537..8e4d42559a8 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 4e1a6ecf01d..7b695dd8a12 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -372,7 +372,7 @@ if (! defined('NOTOKENRENEWAL')) } //var_dump(GETPOST('token').' '.$_SESSION['token'].' - '.$_SESSION['newtoken'].' '.$_SERVER['SCRIPT_FILENAME']); - +//$dolibarr_nocsrfcheck=1; // Check token //var_dump((! defined('NOCSRFCHECK')).' '.empty($dolibarr_nocsrfcheck).' '.(! empty($conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN)).' '.$_SERVER['REQUEST_METHOD'].' '.(! GETPOSTISSET('token'))); if ((! defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && ! empty($conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN)) From ac8a776113e82afa849d3ebb4484e54432f78544 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 14:02:53 +0200 Subject: [PATCH 326/944] FIX Column 'paid' missing in expense report --- htdocs/expensereport/class/expensereport.class.php | 4 ++-- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 3 +++ htdocs/install/mysql/tables/llx_expensereport.sql | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index c09d2897980..0041974d4e9 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -572,8 +572,8 @@ class ExpenseReport extends CommonObject $this->db->begin(); $sql = "UPDATE ".MAIN_DB_PREFIX."expensereport"; - $sql.= " SET fk_statut = 6, paid=1"; - $sql.= " WHERE rowid = ".$id." AND fk_statut = 5"; + $sql.= " SET fk_statut = ".self::STATUS_CLOSED.", paid=1"; + $sql.= " WHERE rowid = ".$id." AND fk_statut = ".self::STATUS_APPROVED; dol_syslog(get_class($this)."::set_paid sql=".$sql, LOG_DEBUG); $resql=$this->db->query($sql); diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index c2d4809f958..6484fe572df 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -206,6 +206,9 @@ ALTER TABLE llx_user ADD COLUMN linkedin varchar(255) after whatsapp; ALTER TABLE llx_expensereport_det ADD COLUMN fk_ecm_files integer DEFAULT NULL; +ALTER TABLE llx_expensereport ADD COLUMN paid smallint default 0 NOT NULL; +UPDATE llx_expensereport set paid = 1 WHERE fk_statut = 6 and paid = 0; + CREATE TABLE llx_bom_bom( -- BEGIN MODULEBUILDER FIELDS diff --git a/htdocs/install/mysql/tables/llx_expensereport.sql b/htdocs/install/mysql/tables/llx_expensereport.sql index ac1ec890788..df38697adaf 100755 --- a/htdocs/install/mysql/tables/llx_expensereport.sql +++ b/htdocs/install/mysql/tables/llx_expensereport.sql @@ -44,7 +44,7 @@ CREATE TABLE llx_expensereport ( 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_c_paiement integer DEFAULT NULL, -- deprecated - paid smallint default 0 NOT NULL, -- deprecated + paid smallint default 0 NOT NULL, -- deprecated (status is used instead) note_public text, note_private text, detail_refuse varchar(255) DEFAULT NULL, From 0dcd38b96f8d9ef22c4c994f37bd038d658cf77f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 14:09:42 +0200 Subject: [PATCH 327/944] Fix decimals --- htdocs/compta/accounting-files.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index 9069045c8b3..8467602a6fe 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -503,9 +503,9 @@ if (!empty($date_start) && !empty($date_stop)) print '
'.price($totalET).''.price($totalIT).''.price($totalVAT).''.price(price2num($totalET, 'MT')).''.price(price2num($totalIT, 'MT')).''.price(price2num($totalVAT, 'MT')).''; else echo ''; From d03d79222e9ecfd239a49566dd8695ceac5841c3 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Sat, 20 Jul 2019 15:15:48 +0200 Subject: [PATCH 331/944] fix warning php --- htdocs/comm/action/peruser.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 65669625398..7dfe197033e 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -1207,14 +1207,14 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & $color1='222222'; } - if (count($cases2[$h]) == 1) // only 1 event + if (is_array($cases2[$h]) && count($cases2[$h]) == 1) // only 1 event { $output = array_slice($cases2[$h], 0, 1); $title2=$langs->trans("Ref").' '.$ids2.($title2?' - '.$title2:''); if ($output[0]['string']) $title2.=($title2?' - ':'').$output[0]['string']; if ($output[0]['color']) $color2 = $output[0]['color']; } - else if (count($cases2[$h]) > 1) + else if (is_array($cases2[$h]) && count($cases2[$h]) > 1) { $title2=$langs->trans("Ref").' '.$ids2.($title2?' - '.$title2:''); $color2='222222'; From b046bcc197a0b8d0b800c1153ace0e76de4e988f Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Sat, 20 Jul 2019 15:19:25 +0200 Subject: [PATCH 332/944] fix warning php --- htdocs/comm/action/peruser.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 7dfe197033e..16d9f09947c 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -1194,14 +1194,14 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & if ($h == $begin_h) echo ''; else echo ''; - if (count($cases1[$h]) == 1) // only 1 event + if (is_array($cases1[$h]) && count($cases1[$h]) == 1) // only 1 event { $output = array_slice($cases1[$h], 0, 1); $title1=$langs->trans("Ref").' '.$ids1.($title1?' - '.$title1:''); if ($output[0]['string']) $title1.=($title1?' - ':'').$output[0]['string']; if ($output[0]['color']) $color1 = $output[0]['color']; } - else if (count($cases1[$h]) > 1) + else if (is_array($cases1[$h]) && count($cases1[$h]) > 1) { $title1=$langs->trans("Ref").' '.$ids1.($title1?' - '.$title1:''); $color1='222222'; From fea12c3c5969ca10f064c23133a89b37f15cb1ae Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 15:53:21 +0200 Subject: [PATCH 333/944] Fix class not found error --- htdocs/societe/class/societe.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index b1d037552aa..61419b837fb 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -4148,8 +4148,8 @@ class Societe extends CommonObject if ($result < 0) { $error++; - $this->error = $c->error; - $this->errors = $c->errors; + $this->error = $this->error; + $this->errors = $this->errors; break; } } From 6594b361b1ec45d52b80a5c9520e948515b4ecc4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 15:56:20 +0200 Subject: [PATCH 334/944] Removed useless code --- htdocs/societe/class/societe.class.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 61419b837fb..c9933bc711b 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -4148,8 +4148,6 @@ class Societe extends CommonObject if ($result < 0) { $error++; - $this->error = $this->error; - $this->errors = $this->errors; break; } } From 73b53029059fe27c53f7feef4de499c4c0163672 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 16:00:16 +0200 Subject: [PATCH 335/944] Fix var not defined --- htdocs/societe/class/societe.class.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index c9933bc711b..a26ff197d9e 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -3024,7 +3024,7 @@ class Societe extends CommonObject for ($index = 0; $index < 9; $index ++) { - $number = (int) $siren[$index]; + $number = (int) $chaine[$index]; if (($index % 2) != 0) { if (($number *= 2) > 9) $number -= 9; } $sum += $number; } @@ -3066,13 +3066,16 @@ class Societe extends CommonObject $string=preg_replace('/(\s)/', '', $string); $string = strtoupper($string); - for ($i = 0; $i < 9; $i ++) - $num[$i] = substr($string, $i, 1); - //Check format if (!preg_match('/((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)/', $string)) return 0; + $num = array(); + for ($i = 0; $i < 9; $i ++) + { + $num[$i] = substr($string, $i, 1); + } + //Check NIF if (preg_match('/(^[0-9]{8}[A-Z]{1}$)/', $string)) if ($num[8] == substr('TRWAGMYFPDXBNJZSQVHLCKE', substr($string, 0, 8) % 23, 1)) From 6bc38acb56810ff60c9b2e26fc9525f8d552a504 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 16:01:28 +0200 Subject: [PATCH 336/944] Fix assignation --- 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 d0f0bdeb1b8..d3cd26f8115 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2719,7 +2719,7 @@ else $MAXEVENT = 10; - $morehtmlright.= dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt', DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id); + $morehtmlright = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-list-alt', DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id); // List of actions on element include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; From 904e399293d52010b316fcce1db5e2be1e939827 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 20 Jul 2019 16:25:57 +0200 Subject: [PATCH 337/944] Fix wrong nb of parmaeters --- 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 d3cd26f8115..34784beefcb 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -741,7 +741,7 @@ if (empty($reshook)) { require_once DOL_DOCUMENT_ROOT .'/core/lib/files.lib.php'; // the dir dirname($newfile) is directory of logo, so we should have only one file at once into index, so we delete indexes for the dir - deleteFilesIntoDatabaseIndex(dirname($newfile), '', '', 'uploaded', 1); + deleteFilesIntoDatabaseIndex(dirname($newfile), '', ''); // now we index the uploaded logo file addFileIntoDatabaseIndex(dirname($newfile), basename($newfile), '', 'uploaded', 1); } From 932530bd37b1d210f70e8d86a4a5be1179245907 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 21 Jul 2019 16:00:32 +0200 Subject: [PATCH 338/944] FIX ajax call for line positioning when CSRFCHECK_WITH_TOKEN is on --- htdocs/core/tpl/ajaxrow.tpl.php | 4 +++- htdocs/main.inc.php | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/core/tpl/ajaxrow.tpl.php b/htdocs/core/tpl/ajaxrow.tpl.php index 8971dc2a919..071db6a82ee 100644 --- a/htdocs/core/tpl/ajaxrow.tpl.php +++ b/htdocs/core/tpl/ajaxrow.tpl.php @@ -66,13 +66,15 @@ $(document).ready(function(){ var fk_element = ""; var element_id = ""; var filepath = ""; + var token = ""; // We use old 'token' and not 'newtoken' for such ajax call because the ajax page has the NOTOKENRENEWAL constant set. $.post("/core/ajax/row.php", { roworder: roworder, table_element_line: table_element_line, fk_element: fk_element, element_id: element_id, - filepath: filepath + filepath: filepath, + token: token }, function() { console.log("tableDND end of ajax call"); diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 7b695dd8a12..1906f49a89a 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -273,6 +273,7 @@ if (isset($_SERVER["HTTP_USER_AGENT"])) if ($conf->browser->layout == 'phone') $conf->dol_no_mouse_hover=1; } + // Force HTTPS if required ($conf->file->main_force_https is 0/1 or https dolibarr root url) // $_SERVER["HTTPS"] is 'on' when link is https, otherwise $_SERVER["HTTPS"] is empty or 'off' if (! empty($conf->file->main_force_https) && (empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on')) @@ -380,6 +381,7 @@ if ((! defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && ! empty($conf-> { if ($_SERVER['REQUEST_METHOD'] == 'POST' && ! GETPOSTISSET('token')) // Note, offender can still send request by GET { + dol_syslog("--- Access to ".$_SERVER["PHP_SELF"]." refused by CSRFCHECK_WITH_TOKEN protection. Token not provided."); print "Access by POST method refused by CSRF protection in main.inc.php. Token not provided.\n"; print "If you access your server behind a proxy using url rewriting, you might check that all HTTP header is propagated (or add the line \$dolibarr_nocsrfcheck=1 into your conf.php file or MAIN_SECURITY_CSRF_WITH_TOKEN to 0 into setup).\n"; die; @@ -389,9 +391,9 @@ if ((! defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && ! empty($conf-> //{ if (GETPOSTISSET('token') && GETPOST('token', 'alpha') != $_SESSION['token']) { - dol_syslog("Invalid token, so we disable POST and some GET parameters - referer=".$_SERVER['HTTP_REFERER'].", action=".GETPOST('action', 'aZ09').", _GET|POST['token']=".GETPOST('token', 'alpha').", _SESSION['token']=".$_SESSION['token'], LOG_WARNING); + dol_syslog("--- Access to ".$_SERVER["PHP_SELF"]." refused due to invalid token, so we disable POST and some GET parameters - referer=".$_SERVER['HTTP_REFERER'].", action=".GETPOST('action', 'aZ09').", _GET|POST['token']=".GETPOST('token', 'alpha').", _SESSION['token']=".$_SESSION['token'], LOG_WARNING); //print 'Unset POST by CSRF protection in main.inc.php.'; // Do not output anything because this create problems when using the BACK button on browsers. - if ($conf->global->MAIN_FEATURES_LEVEL>1) setEventMessages('Unset POST by CSRF protection in main.inc.php.', null, 'warnings'); + if ($conf->global->MAIN_FEATURES_LEVEL>1) setEventMessages('Unset POST by CSRF protection in main.inc.php.'."
\n".'$_SERVER[REQUEST_URI] = '.$_SERVER['REQUEST_URI'].' $_SERVER[REQUEST_METHOD] = '.$_SERVER['REQUEST_METHOD'].' GETPOST(token) = '.GETPOST('token', 'alpha').' $_SESSION[token] = '.$_SESSION['token'], null, 'warnings'); unset($_POST); unset($_GET['confirm']); } From 4f34a8b6e84aaf8ede4e4b4ceee96769b01a7964 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 21 Jul 2019 16:15:13 +0200 Subject: [PATCH 339/944] FIX Position was lost when we edit the line of template invoice --- htdocs/compta/facture/fiche-rec.php | 14 ++++++++------ htdocs/core/tpl/ajaxrow.tpl.php | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index dd4a2af11ee..9b50e782454 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -774,7 +774,7 @@ if (empty($reshook)) $array_options = $extrafieldsline->getOptionalsFromPost($object->table_element_line); $objectline = new FactureLigneRec($db); - if ($objectline->fetch(GETPOST('lineid'))) + if ($objectline->fetch(GETPOST('lineid', 'int'))) { $objectline->array_options=$array_options; $result=$objectline->insertExtraFields(); @@ -784,6 +784,8 @@ if (empty($reshook)) } } + $position = ($objectline->rang >= 0 ? $objectline->rang : 0); + // Unset extrafield if (is_array($extralabelsline)) { @@ -795,8 +797,8 @@ if (empty($reshook)) } // Define special_code for special lines - $special_code=GETPOST('special_code'); - if (! GETPOST('qty')) $special_code=3; + $special_code=GETPOST('special_code', 'int'); + if (! GETPOST('qty', 'alpha')) $special_code=3; /*$line = new FactureLigne($db); $line->fetch(GETPOST('lineid')); @@ -832,11 +834,11 @@ if (empty($reshook)) $error ++; } } else { - $type = GETPOST('type'); + $type = GETPOST('type', 'int'); $label = (GETPOST('product_label') ? GETPOST('product_label') : ''); // Check parameters - if (GETPOST('type') < 0) { + if (GETPOST('type', 'int') < 0) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); $error ++; } @@ -868,7 +870,7 @@ if (empty($reshook)) 0, 0, $type, - 0, + $position, $special_code, $label, GETPOST('units'), diff --git a/htdocs/core/tpl/ajaxrow.tpl.php b/htdocs/core/tpl/ajaxrow.tpl.php index 071db6a82ee..0b92df1e519 100644 --- a/htdocs/core/tpl/ajaxrow.tpl.php +++ b/htdocs/core/tpl/ajaxrow.tpl.php @@ -66,7 +66,7 @@ $(document).ready(function(){ var fk_element = ""; var element_id = ""; var filepath = ""; - var token = ""; // We use old 'token' and not 'newtoken' for such ajax call because the ajax page has the NOTOKENRENEWAL constant set. + var token = ""; // We use old 'token' and not 'newtoken' for Ajax call because the ajax page has the NOTOKENRENEWAL constant set. $.post("/core/ajax/row.php", { roworder: roworder, From f0f0b989e96242681d5d03bc5f6d8159433e8d32 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 21 Jul 2019 16:41:01 +0200 Subject: [PATCH 340/944] FIX Add warning when setup is strange --- htdocs/admin/mails.php | 10 ++++++++-- htdocs/langs/en_US/admin.lang | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index bc12fd5ddd6..997b0e97bdb 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -526,11 +526,17 @@ else print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("MAIN_DISABLE_ALL_MAILS").''.yn($conf->global->MAIN_DISABLE_ALL_MAILS).'
'.$langs->trans("MAIN_DISABLE_ALL_MAILS").''.yn($conf->global->MAIN_DISABLE_ALL_MAILS); + if (! empty($conf->global->MAIN_DISABLE_ALL_MAILS)) print img_warning($langs->trans("Disabled")); + print '
'.$langs->trans("MAIN_MAIL_FORCE_SENDTO").''.$conf->global->MAIN_MAIL_FORCE_SENDTO; - if (! empty($conf->global->MAIN_MAIL_FORCE_SENDTO) && ! isValidEmail($conf->global->MAIN_MAIL_FORCE_SENDTO)) print img_warning($langs->trans("ErrorBadEMail")); + if (! empty($conf->global->MAIN_MAIL_FORCE_SENDTO)) + { + if (! isValidEmail($conf->global->MAIN_MAIL_FORCE_SENDTO)) print img_warning($langs->trans("ErrorBadEMail")); + else print img_warning($langs->trans("RecipientEmailsWillBeReplacedWithThisValue")); + } print '
'.$langs->trans("None").'
'.$langs->trans("None").'
'; + print '
'; // Fields title search print ''; From 2dccaef1cdc8420d4d17dab8a4eceed9068a0c57 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 23 Jul 2019 03:39:07 +0200 Subject: [PATCH 349/944] Fix message --- 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 1906f49a89a..77f2a1f746f 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -393,7 +393,7 @@ if ((! defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && ! empty($conf-> { dol_syslog("--- Access to ".$_SERVER["PHP_SELF"]." refused due to invalid token, so we disable POST and some GET parameters - referer=".$_SERVER['HTTP_REFERER'].", action=".GETPOST('action', 'aZ09').", _GET|POST['token']=".GETPOST('token', 'alpha').", _SESSION['token']=".$_SESSION['token'], LOG_WARNING); //print 'Unset POST by CSRF protection in main.inc.php.'; // Do not output anything because this create problems when using the BACK button on browsers. - if ($conf->global->MAIN_FEATURES_LEVEL>1) setEventMessages('Unset POST by CSRF protection in main.inc.php.'."
\n".'$_SERVER[REQUEST_URI] = '.$_SERVER['REQUEST_URI'].' $_SERVER[REQUEST_METHOD] = '.$_SERVER['REQUEST_METHOD'].' GETPOST(token) = '.GETPOST('token', 'alpha').' $_SESSION[token] = '.$_SESSION['token'], null, 'warnings'); + if ($conf->global->MAIN_FEATURES_LEVEL>1) setEventMessages('Unset POST by CSRF protection in main.inc.php (POST was already done or was done by a not allowed web page).'."
\n".'$_SERVER[REQUEST_URI] = '.$_SERVER['REQUEST_URI'].' $_SERVER[REQUEST_METHOD] = '.$_SERVER['REQUEST_METHOD'].' GETPOST(token) = '.GETPOST('token', 'alpha').' $_SESSION[token] = '.$_SESSION['token'], null, 'warnings'); unset($_POST); unset($_GET['confirm']); } From 559a9024050bcd8b86b969c4ccbd6527ac5117ea Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 23 Jul 2019 03:39:35 +0200 Subject: [PATCH 350/944] FIX summary of time spent in preview tab of projects --- htdocs/projet/class/project.class.php | 4 ++-- htdocs/projet/element.php | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index cbee8d181ca..2261e06219b 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -599,13 +599,13 @@ class Project extends CommonObject $sql = "SELECT rowid FROM " . MAIN_DB_PREFIX . $tablename." WHERE ".$projectkey." IN (". $ids .") AND entity IN (".getEntity($type).")"; } - if ($dates > 0) + if ($dates > 0 && ($type != 'project_task')) // For table project_taks, we want the filter on date apply on project_time_spent table { if (empty($datefieldname) && ! empty($this->table_element_date)) $datefieldname=$this->table_element_date; if (empty($datefieldname)) return 'Error this object has no date field defined'; $sql.=" AND (".$datefieldname." >= '".$this->db->idate($dates)."' OR ".$datefieldname." IS NULL)"; } - if ($datee > 0) + if ($datee > 0 && ($type != 'project_task')) // For table project_taks, we want the filter on date apply on project_time_spent table { if (empty($datefieldname) && ! empty($this->table_element_date)) $datefieldname=$this->table_element_date; if (empty($datefieldname)) return 'Error this object has no date field defined'; diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php index b4d2a8b290f..4f5af0ca94f 100644 --- a/htdocs/projet/element.php +++ b/htdocs/projet/element.php @@ -532,7 +532,8 @@ if (! $showdatefilter) { print '
'; print ''; - print ''; + print ''; + print ''; print ''; print '
'; print ''; print ''; From 57db12ccdbeac8bea717ad5b28dc67f1bb78a2d7 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 23 Jul 2019 14:10:13 +0200 Subject: [PATCH 357/944] Update card.php --- htdocs/contact/card.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 12e2e1cb206..cfead2173ff 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -179,7 +179,7 @@ if (empty($reshook)) $object->socid = GETPOST("socid", 'int'); $object->lastname = GETPOST("lastname", 'alpha'); $object->firstname = GETPOST("firstname", 'alpha'); - $object->civility_id = GETPOST("civility_id", 'alpha'); + $object->civility = GETPOST("civility", 'alpha'); $object->poste = GETPOST("poste", 'alpha'); $object->address = GETPOST("address", 'alpha'); $object->zip = GETPOST("zipcode", 'alpha'); @@ -349,7 +349,7 @@ if (empty($reshook)) $object->socid = GETPOST("socid", 'int'); $object->lastname = GETPOST("lastname", 'alpha'); $object->firstname = GETPOST("firstname", 'alpha'); - $object->civility_id = GETPOST("civility_id", 'alpha'); + $object->civility = GETPOST("civility", 'alpha'); $object->poste = GETPOST("poste", 'alpha'); $object->address = GETPOST("address", 'alpha'); @@ -573,7 +573,7 @@ else // Civility print ''; print ''; From f959341aa83d7dd0bfa8394c35bf1af4065d2318 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 23 Jul 2019 14:30:12 +0200 Subject: [PATCH 358/944] Update card.php --- htdocs/contact/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index cfead2173ff..ff0c9f5cc98 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -179,7 +179,7 @@ if (empty($reshook)) $object->socid = GETPOST("socid", 'int'); $object->lastname = GETPOST("lastname", 'alpha'); $object->firstname = GETPOST("firstname", 'alpha'); - $object->civility = GETPOST("civility", 'alpha'); + $object->civility = GETPOST("civility_id", 'alpha'); $object->poste = GETPOST("poste", 'alpha'); $object->address = GETPOST("address", 'alpha'); $object->zip = GETPOST("zipcode", 'alpha'); @@ -349,7 +349,7 @@ if (empty($reshook)) $object->socid = GETPOST("socid", 'int'); $object->lastname = GETPOST("lastname", 'alpha'); $object->firstname = GETPOST("firstname", 'alpha'); - $object->civility = GETPOST("civility", 'alpha'); + $object->civility = GETPOST("civility_id", 'alpha'); $object->poste = GETPOST("poste", 'alpha'); $object->address = GETPOST("address", 'alpha'); From 9ddb8a5b0b47c7d7057ad4074f553cfa86d047ad Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 23 Jul 2019 14:41:29 +0200 Subject: [PATCH 359/944] Fix tooltip to say closed project are not visibles --- htdocs/core/class/html.formprojet.class.php | 8 ++++---- htdocs/expensereport/card.php | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php index b4c0c4295c9..057f977fadb 100644 --- a/htdocs/core/class/html.formprojet.class.php +++ b/htdocs/core/class/html.formprojet.class.php @@ -60,7 +60,7 @@ class FormProjets * @param int $maxlength Maximum length of label * @param int $option_only Return only html options lines without the select tag * @param int $show_empty Add an empty line - * @param int $discard_closed Discard closed projects (0=Keep, 1=hide completely, 2=Disable) + * @param int $discard_closed Discard closed projects (0=Keep, 1=hide completely, 2=Disable). Use a negative value to not show the "discarded" tooltip. * @param int $forcefocus Force focus on field (works with javascript only) * @param int $disabled Disabled * @param int $mode 0 for HTML mode and 1 for JSON mode @@ -100,13 +100,13 @@ class FormProjets } else { - $out.=$this->select_projects_list($socid, $selected, $htmlname, $maxlength, $option_only, $show_empty, $discard_closed, $forcefocus, $disabled, 0, $filterkey, 1, $forceaddid, $htmlid, $morecss); + $out.=$this->select_projects_list($socid, $selected, $htmlname, $maxlength, $option_only, $show_empty, abs($discard_closed), $forcefocus, $disabled, 0, $filterkey, 1, $forceaddid, $htmlid, $morecss); } - if ($discard_closed) + if ($discard_closed > 0) { if (class_exists('Form')) { - if (empty($form)) $form=new Form($this->db); + if (! is_object($form)) $form=new Form($this->db); $out.=$form->textwithpicto('', $langs->trans("ClosedProjectsAreHidden")); } } diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 94754a71c7f..58273a67ebe 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -2441,7 +2441,7 @@ else print ''; print ''; print ''; - if (! empty($conf->projet->enabled)) print ''; + if (! empty($conf->projet->enabled)) print ''; if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) print ''; print ''; print ''; @@ -2469,7 +2469,7 @@ else if (! empty($conf->projet->enabled)) { print ''; } From be13d5e47158cc7322346c6fa4f133cbde6e992e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 23 Jul 2019 14:49:09 +0200 Subject: [PATCH 360/944] FIX The new feature to attach document on lines was not correclty enabled. --- htdocs/expensereport/card.php | 6 +++--- htdocs/expensereport/tpl/expensereport_linktofile.tpl.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 58273a67ebe..04044e0ad97 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -2258,7 +2258,7 @@ else print ''.$langs->trans("UploadANewFileNow"); print img_picto($langs->trans("UploadANewFileNow"), 'chevron-down', '', false, 0, 0, '', 'marginleftonly'); print ''; - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) + if (empty($conf->global->EXPENSEREPORT_DISABLE_ATTACHMENT_ON_LINES)) { print '   -   '.''.$langs->trans("AttachTheNewLineToTheDocument"); print img_picto($langs->trans("AttachTheNewLineToTheDocument"), 'chevron-down', '', false, 0, 0, '', 'marginleftonly'); @@ -2389,7 +2389,7 @@ else $nbFiles = $nbLinks = 0; $arrayoffiles = array(); - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) + if (empty($conf->global->EXPENSEREPORT_DISABLE_ATTACHMENT_ON_LINES)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; @@ -2406,7 +2406,7 @@ else print ''.$langs->trans("UploadANewFileNow"); print img_picto($langs->trans("UploadANewFileNow"), 'chevron-down', '', false, 0, 0, '', 'marginleftonly'); print ''; - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) + if (empty($conf->global->EXPENSEREPORT_DISABLE_ATTACHMENT_ON_LINES)) { print '   -   '.''.$langs->trans("AttachTheNewLineToTheDocument"); print img_picto($langs->trans("AttachTheNewLineToTheDocument"), 'chevron-down', '', false, 0, 0, '', 'marginleftonly'); diff --git a/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php b/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php index 48f21bc3dc2..aa66409f3ba 100644 --- a/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php +++ b/htdocs/expensereport/tpl/expensereport_linktofile.tpl.php @@ -1,6 +1,6 @@ global->MAIN_FEATURES_LEVEL >= 2) +if (empty($conf->global->EXPENSEREPORT_DISABLE_ATTACHMENT_ON_LINES)) { print ''."\n"; From 2162f2331dfecef69fb344c629d222d0fa73a241 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 24 Jul 2019 06:57:42 +0200 Subject: [PATCH 361/944] Try to fix travis --- htdocs/accountancy/class/bookkeeping.class.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 21e43b524d7..0034723ec4c 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1701,22 +1701,22 @@ class BookKeeping extends CommonObject if ($next_piecenum < 0) { $error++; } - $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element.' (doc_date, doc_type,'; + $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . ' (doc_date, doc_type,'; $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num, date_creation)'; $sql .= ' SELECT doc_date, doc_type,'; $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; - $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, '.$next_piecenum.', "'.$this->db->idate($now).'"'; - $sql .= ' FROM '.MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, ' . $next_piecenum . ', "' . $this->db->idate($now) . '"'; + $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . '_tmp WHERE piece_num = ' . $piece_num; $resql = $this->db->query($sql); if (! $resql) { $error ++; $this->errors[] = 'Error ' . $this->db->lasterror(); dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } - $sql = 'DELETE FROM '.MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; + $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element . '_tmp WHERE piece_num = ' . $piece_num; $resql = $this->db->query($sql); if (! $resql) { $error ++; @@ -1724,14 +1724,14 @@ class BookKeeping extends CommonObject dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } } elseif ($direction==1) { - $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; + $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element . '_tmp WHERE piece_num = ' . $piece_num; $resql = $this->db->query($sql); if (! $resql) { $error ++; $this->errors[] = 'Error ' . $this->db->lasterror(); dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } - $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element.'_tmp (doc_date, doc_type,'; + $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '_tmp (doc_date, doc_type,'; $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num)'; @@ -1739,14 +1739,14 @@ class BookKeeping extends CommonObject $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num'; - $sql .= ' FROM '.MAIN_DB_PREFIX . $this->table_element.' WHERE piece_num = '.$piece_num; + $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element.' WHERE piece_num = ' . $piece_num; $resql = $this->db->query($sql); if (! $resql) { $error ++; $this->errors[] = 'Error ' . $this->db->lasterror(); dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } - $sql = 'DELETE FROM '.MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; + $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element . '_tmp WHERE piece_num = ' . $piece_num; $resql = $this->db->query($sql); if (! $resql) { $error ++; From 3921f706e24314b23ecd71082fb17e70b4b6680e Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 24 Jul 2019 09:01:11 +0200 Subject: [PATCH 362/944] Presentation nowrap on amount --- htdocs/compta/index.php | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index c57b073b487..722a7a3ce82 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -410,8 +410,8 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) print ''; - if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''; - print ''; + if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''; + print ''; print ''; print ''; print ''; @@ -510,7 +510,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- print $thirdpartystatic->getNomUrl(1, 'supplier', 44); print ''; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -591,7 +591,7 @@ if (! empty($conf->don->enabled) && $user->rights->societe->lire) print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -662,8 +662,8 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) print ''; print ''; print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; $tot_ttc+=$obj->amount; @@ -671,7 +671,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) } print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -784,8 +784,8 @@ if (! empty($conf->facture->enabled) && ! empty($conf->commande->enabled) && $us print $societestatic->getNomUrl(1, 'customer', 44); print ''; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; $tot_ht += $obj->total_ht; @@ -797,8 +797,8 @@ if (! empty($conf->facture->enabled) && ! empty($conf->commande->enabled) && $us print ''; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; print '
'.$langs->trans("From").' '; @@ -762,7 +763,8 @@ foreach ($listofreferent as $key => $value) // Define form with the combo list of elements to link $addform.='
'; $addform.=''; - $addform.=''; + $addform.=''; + $addform.=''; $addform.=''; $addform.=''; $addform.=''; From 0a1f4b793172dd29bc83256a72198ec1995ac885 Mon Sep 17 00:00:00 2001 From: atm-josselin Date: Tue, 23 Jul 2019 09:45:17 +0200 Subject: [PATCH 351/944] FIX : correct error in files with multiple spaces --- htdocs/core/lib/files.lib.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index fa1a5e50a50..ed169573117 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -1540,6 +1540,11 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio $info = pathinfo($destfile); $destfile = dol_sanitizeFileName($info['filename'].'.'.strtolower($info['extension'])); + // We apply dol_string_nohtmltag also to clean file names (this remove duplicate spaces) because + // this function is also applied when we make try to download file (by the GETPOST(filename, 'alphanohtml') call). + $destfile = dol_string_nohtmltag($destfile); + $destfull = dol_string_nohtmltag($destfull); + $resupload = dol_move_uploaded_file($TFile['tmp_name'][$i], $destfull, $allowoverwrite, 0, $TFile['error'][$i], 0, $varfiles); if (is_numeric($resupload) && $resupload > 0) // $resupload can be 'ErrorFileAlreadyExists' From c96ad85126b8b1e56e98fac016e48165d7a80fa4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 23 Jul 2019 12:34:17 +0200 Subject: [PATCH 352/944] Add hidden option to avoid experimental to use export files feature --- htdocs/core/menus/standard/eldy.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 88595cd366a..4522d9067e0 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1285,7 +1285,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM $newmenu->add("/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans("AccountBalance"), 1, $user->rights->accounting->mouvements->lire); // Files - if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 1) + if ((! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 1) || ! empty($conf->global->ACCOUNTANCY_SHOW_EXPORT_FILES_MENU)) { $newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 1, $user->rights->accounting->mouvements->lire); } From 8aaa716e33826408be6c035ae69e5d4e3ef44f61 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 23 Jul 2019 13:05:33 +0200 Subject: [PATCH 353/944] Fix missing title --- htdocs/compta/journal/sellsjournal.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/journal/sellsjournal.php b/htdocs/compta/journal/sellsjournal.php index 123bb3c7770..da85e28c612 100644 --- a/htdocs/compta/journal/sellsjournal.php +++ b/htdocs/compta/journal/sellsjournal.php @@ -87,7 +87,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end $date_start=dol_get_first_day($pastmonthyear, $pastmonth, false); $date_end=dol_get_last_day($pastmonthyear, $pastmonth, false); } -$nom=$langs->trans("SellsJournal"); +$name=$langs->trans("SellsJournal"); $periodlink=''; $exportlink=''; $builddate=dol_now(); From 239b7d56b48f79d142c03ec39729fab0743f59c9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 23 Jul 2019 13:31:00 +0200 Subject: [PATCH 354/944] Fix compatibility with plugins using old jquery --- htdocs/main.inc.php | 58 ++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 77f2a1f746f..b9b0204bf7e 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1862,34 +1862,38 @@ function top_menu_user(User $user, Translate $langs)
- - - - '; - + + '; + } return $btnUser; } From 46d0137d30c189904fec060ea8217f8aed435e9b Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 23 Jul 2019 14:04:54 +0200 Subject: [PATCH 355/944] FIx display civility in contact card --- htdocs/contact/class/contact.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index d6053a46b35..a8bd548fd8a 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -345,7 +345,7 @@ class Contact extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET "; if ($this->socid > 0) $sql .= " fk_soc='".$this->db->escape($this->socid)."',"; elseif ($this->socid == -1) $sql .= " fk_soc=null,"; - $sql .= " civility='".$this->db->escape($this->civility_id)."'"; + $sql .= " civility='".$this->db->escape($this->civility)."'"; $sql .= ", lastname='".$this->db->escape($this->lastname)."'"; $sql .= ", firstname='".$this->db->escape($this->firstname)."'"; $sql .= ", address='".$this->db->escape($this->address)."'"; @@ -1218,7 +1218,7 @@ class Contact extends CommonObject global $langs; $langs->load("dict"); - $code=(! empty($this->civility_id)?$this->civility_id:(! empty($this->civilite_id)?$this->civilite_id:'')); + $code=(! empty($this->civility_id)?$this->civility:(! empty($this->civilite)?$this->civilite:'')); if (empty($code)) return ''; return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civility", "code", "label", $code); } From cc10f5e6840f201ca5374391b5fa4bbf47f3c7cb Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 23 Jul 2019 14:06:51 +0200 Subject: [PATCH 356/944] Update card.php --- htdocs/contact/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 97dd835bda0..12e2e1cb206 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -872,7 +872,7 @@ else // Civility print '
'; - print $formcompany->select_civility(isset($_POST["civility_id"])?GETPOST("civility_id"):$object->civility_id); + print $formcompany->select_civility(isset($_POST["civility"])?GETPOST("civility"):$object->civility_code); print '
'; - print $formcompany->select_civility(GETPOST("civility_id", 'alpha')?GETPOST("civility_id", 'alpha'):$object->civility_id); + print $formcompany->select_civility(GETPOST("civility", 'alpha')?GETPOST("civility", 'alpha'):$object->civility_code); print '
'.$langs->trans('Date').''.$langs->trans('Project').''.$form->textwithpicto($langs->trans('Project'), $langs->trans("ClosedProjectsAreHidden")).''.$langs->trans('CarCategory').''.$langs->trans('Type').''.$langs->trans('Description').''; - $formproject->select_projects(-1, $fk_projet, 'fk_projet', 0, 0, 1, 1, 0, 0, 0, '', 0, 0, 'maxwidth300'); + $formproject->select_projects(-1, $fk_projet, 'fk_projet', 0, 0, 1, -1, 0, 0, 0, '', 0, 0, 'maxwidth300'); print ''; print $thirdpartystatic->getNomUrl(1, 'customer', 44); print ''.price($obj->total_ht).''.price($obj->total_ttc).''.price($obj->total_ht).''.price($obj->total_ttc).''.dol_print_date($db->jdate($obj->tms), 'day').''.$facstatic->LibStatut($obj->paye, $obj->fk_statut, 3, $obj->am).'
'.price($obj->total_ht).''.price($obj->total_ttc).''.price($obj->total_ttc).''.dol_print_date($db->jdate($obj->tms), 'day').''.$facstatic->LibStatut($obj->paye, $obj->fk_statut, 3).'
'.$donationstatic->getNomUrl(1).''.$label.''.price($objp->amount).''.price($objp->amount).''.dol_print_date($db->jdate($objp->dm), 'day').''.$donationstatic->LibStatut($objp->fk_statut, 3).'
'.$chargestatic->getNomUrl(1).''.dol_print_date($db->jdate($obj->date_ech), 'day').''.price($obj->amount).''.price($obj->sumpaid).''.price($obj->amount).''.price($obj->sumpaid).''.$chargestatic->getLibStatut(3).'
'.$langs->trans("Total").''.price($tot_ttc).''.price($tot_ttc).' 
'.price($obj->total_ht).''.price($obj->total_ttc).''.price($obj->total_ttc-$obj->tot_fttc).''.price($obj->total_ttc).''.price($obj->total_ttc-$obj->tot_fttc).''.$commandestatic->LibStatut($obj->fk_statut, $obj->facture, 3).'
'.$langs->trans("Total").'   ('.$langs->trans("RemainderToBill").': '.price($tot_tobill).') '.price($tot_ht).''.price($tot_ttc).''.price($tot_tobill).''.price($tot_ttc).''.price($tot_tobill).' 

'; @@ -909,8 +909,8 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) print ''; print ''.dol_print_date($db->jdate($obj->datelimite), 'day').''; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''.price($obj->total_ht).''; - print ''.price($obj->total_ttc).''; - print ''.price($obj->am).''; + print ''.price($obj->total_ttc).''; + print ''.price($obj->am).''; print ''.$facstatic->LibStatut($obj->paye, $obj->fk_statut, 3, $obj->am).''; print ''; @@ -924,8 +924,8 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) print ''.$langs->trans("Total").'   ('.$langs->trans("RemainderToTake").': '.price($total_ttc-$totalam).') '; print ' '; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''.price($total).''; - print ''.price($total_ttc).''; - print ''.price($totalam).''; + print ''.price($total_ttc).''; + print ''.price($totalam).''; print ' '; print ''; } @@ -1021,8 +1021,8 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- print ''.$societestatic->getNomUrl(1, 'supplier', 44).''; print ''.dol_print_date($db->jdate($obj->date_lim_reglement), 'day').''; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''.price($obj->total_ht).''; - print ''.price($obj->total_ttc).''; - print ''.price($obj->am).''; + print ''.price($obj->total_ttc).''; + print ''.price($obj->am).''; print ''.$facstatic->LibStatut($obj->paye, $obj->fk_statut, 3).''; print ''; $total += $obj->total_ht; @@ -1034,8 +1034,8 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- print ''.$langs->trans("Total").'   ('.$langs->trans("RemainderToPay").': '.price($total_ttc-$totalam).') '; print ' '; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''.price($total).''; - print ''.price($total_ttc).''; - print ''.price($totalam).''; + print ''.price($total_ttc).''; + print ''.price($totalam).''; print ' '; print ''; } From f45175cc9bd10fa284d6a80b2ae506a94fd112ef Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 24 Jul 2019 09:28:11 +0200 Subject: [PATCH 363/944] FIX missing filter by current contact --- htdocs/contact/consumption.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/htdocs/contact/consumption.php b/htdocs/contact/consumption.php index 3f0d0313ee0..e2123e8307e 100644 --- a/htdocs/contact/consumption.php +++ b/htdocs/contact/consumption.php @@ -38,7 +38,7 @@ $id = GETPOST('id', 'int'); $result = restrictedArea($user, 'contact', $id, 'socpeople&societe'); $object = new Contact($db); if ($id > 0) $object->fetch($id); -if(empty($object->thirdparty)) $object->fetch_thirdparty(); +if (empty($object->thirdparty)) $object->fetch_thirdparty(); $socid = $object->thirdparty->id; // Sort & Order fields @@ -69,7 +69,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' } // Customer or supplier selected in drop box $thirdTypeSelect = GETPOST("third_select_id"); -$type_element = GETPOST('type_element')?GETPOST('type_element'):''; +$type_element = GETPOSTISSET('type_element')?GETPOST('type_element'):''; // Load translation files required by the page $langs->loadLangs(array("companies", "bills", "orders", "suppliers", "propal", "interventions", "contracts", "products")); @@ -179,7 +179,7 @@ if ($type_element == 'fichinter') $dateprint = 'f.datec'; $doc_number='f.ref'; } -if ($type_element == 'invoice') +elseif ($type_element == 'invoice') { // Customer : show products from invoices require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $documentstatic=new Facture($db); @@ -194,7 +194,7 @@ if ($type_element == 'invoice') $doc_number='f.ref'; $thirdTypeSelect='customer'; } -if ($type_element == 'propal') +elseif ($type_element == 'propal') { require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; $documentstatic=new Propal($db); @@ -209,7 +209,7 @@ if ($type_element == 'propal') $doc_number='c.ref'; $thirdTypeSelect='customer'; } -if ($type_element == 'order') +elseif ($type_element == 'order') { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; $documentstatic=new Commande($db); @@ -224,7 +224,7 @@ if ($type_element == 'order') $doc_number='c.ref'; $thirdTypeSelect='customer'; } -if ($type_element == 'supplier_invoice') +elseif ($type_element == 'supplier_invoice') { // Supplier : Show products from invoices. require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; $documentstatic=new FactureFournisseur($db); @@ -239,7 +239,7 @@ if ($type_element == 'supplier_invoice') $doc_number='f.ref'; $thirdTypeSelect='supplier'; } -//if ($type_element == 'supplier_proposal') +//elseif ($type_element == 'supplier_proposal') //{ // require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php'; // $documentstatic=new SupplierProposal($db); @@ -252,7 +252,7 @@ if ($type_element == 'supplier_invoice') // $doc_number='c.ref'; // $thirdTypeSelect='supplier'; //} -if ($type_element == 'supplier_order') +elseif ($type_element == 'supplier_order') { // Supplier : Show products from orders. require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; $documentstatic=new CommandeFournisseur($db); @@ -267,7 +267,7 @@ if ($type_element == 'supplier_order') $doc_number='c.ref'; $thirdTypeSelect='supplier'; } -if ($type_element == 'contract') +elseif ($type_element == 'contract') { // Order require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; $documentstatic=new Contrat($db); @@ -300,6 +300,7 @@ if (!empty($sql_select)) $sql.= " FROM "/*.MAIN_DB_PREFIX."societe as s, "*/.$tables_from; // if ($type_element != 'fichinter') $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON d.fk_product = p.rowid '; $sql.= $where; + $sql.= ' AND ec.fk_socpeople = '.$object->id; if ($month > 0) { if ($year > 0) { $start = dol_mktime(0, 0, 0, $month, 1, $year); From 323d2df21086510932a8f5840732e78b85d1657f Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 24 Jul 2019 10:42:00 +0200 Subject: [PATCH 364/944] Presentation nowrap on amount --- htdocs/product/index.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/htdocs/product/index.php b/htdocs/product/index.php index 950f4d47b5f..caeb5e5d873 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -357,7 +357,7 @@ if ($result) $objp->price = $price_result; } } - print ''; + print ''; if (isset($objp->price_base_type) && $objp->price_base_type == 'TTC') print price($objp->price_ttc).' '.$langs->trans("TTC"); else print price($objp->price).' '.$langs->trans("HT"); print ''; @@ -442,6 +442,7 @@ function activitytrim($product_type) if ($num > 0 ) { + print '
'; print ''; if ($product_type==0) @@ -465,11 +466,11 @@ function activitytrim($product_type) if ($trim1+$trim2+$trim3+$trim4 > 0) { print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; $lgn++; } @@ -498,14 +499,14 @@ function activitytrim($product_type) if ($trim1+$trim2+$trim3+$trim4 > 0) { print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; } if ($num > 0 ) - print '
'.$tmpyear.''.price($trim1).''.price($trim2).''.price($trim3).''.price($trim4).''.price($trim1+$trim2+$trim3+$trim4).''.price($trim1).''.price($trim2).''.price($trim3).''.price($trim4).''.price($trim1+$trim2+$trim3+$trim4).'
'.$tmpyear.''.price($trim1).''.price($trim2).''.price($trim3).''.price($trim4).''.price($trim1+$trim2+$trim3+$trim4).''.price($trim1).''.price($trim2).''.price($trim3).''.price($trim4).''.price($trim1+$trim2+$trim3+$trim4).'
'; + print '
'; } } From ba60e99b45cc0d3097648d02ce28643c9f0b77fa Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 24 Jul 2019 13:22:41 +0200 Subject: [PATCH 365/944] Update card.php --- htdocs/contact/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index ff0c9f5cc98..76d0e3911b5 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -179,7 +179,7 @@ if (empty($reshook)) $object->socid = GETPOST("socid", 'int'); $object->lastname = GETPOST("lastname", 'alpha'); $object->firstname = GETPOST("firstname", 'alpha'); - $object->civility = GETPOST("civility_id", 'alpha'); + $object->civility_id = GETPOST("civility_id", 'alpha'); $object->poste = GETPOST("poste", 'alpha'); $object->address = GETPOST("address", 'alpha'); $object->zip = GETPOST("zipcode", 'alpha'); @@ -349,7 +349,7 @@ if (empty($reshook)) $object->socid = GETPOST("socid", 'int'); $object->lastname = GETPOST("lastname", 'alpha'); $object->firstname = GETPOST("firstname", 'alpha'); - $object->civility = GETPOST("civility_id", 'alpha'); + $object->civility_id = GETPOST("civility_id", 'alpha'); $object->poste = GETPOST("poste", 'alpha'); $object->address = GETPOST("address", 'alpha'); From c219b62b10ab4dc02b0fc47a399433f78a5ae2ad Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 24 Jul 2019 13:23:24 +0200 Subject: [PATCH 366/944] Update contact.class.php --- htdocs/contact/class/contact.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index a8bd548fd8a..f1ebeddd30e 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -345,7 +345,7 @@ class Contact extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET "; if ($this->socid > 0) $sql .= " fk_soc='".$this->db->escape($this->socid)."',"; elseif ($this->socid == -1) $sql .= " fk_soc=null,"; - $sql .= " civility='".$this->db->escape($this->civility)."'"; + $sql .= " civility='".$this->db->escape($this->civility_id)."'"; $sql .= ", lastname='".$this->db->escape($this->lastname)."'"; $sql .= ", firstname='".$this->db->escape($this->firstname)."'"; $sql .= ", address='".$this->db->escape($this->address)."'"; From 907ba62054ad3b60b6708fa94f9ce34df033ffe9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 24 Jul 2019 14:59:03 +0200 Subject: [PATCH 367/944] Sync transifex --- htdocs/langs/ar_SA/accountancy.lang | 1 + htdocs/langs/ar_SA/admin.lang | 13 +- htdocs/langs/ar_SA/bills.lang | 2 +- htdocs/langs/ar_SA/companies.lang | 3 +- htdocs/langs/ar_SA/other.lang | 2 + htdocs/langs/ar_SA/website.lang | 2 +- htdocs/langs/bg_BG/accountancy.lang | 1 + htdocs/langs/bg_BG/admin.lang | 1619 +++++++++++---------- htdocs/langs/bg_BG/agenda.lang | 112 +- htdocs/langs/bg_BG/banks.lang | 156 +- htdocs/langs/bg_BG/bills.lang | 242 +-- htdocs/langs/bg_BG/bookmarks.lang | 28 +- htdocs/langs/bg_BG/cashdesk.lang | 2 +- htdocs/langs/bg_BG/categories.lang | 160 +- htdocs/langs/bg_BG/commercial.lang | 88 +- htdocs/langs/bg_BG/companies.lang | 1 + htdocs/langs/bg_BG/compta.lang | 252 ++-- htdocs/langs/bg_BG/contracts.lang | 134 +- htdocs/langs/bg_BG/deliveries.lang | 37 +- htdocs/langs/bg_BG/dict.lang | 112 +- htdocs/langs/bg_BG/ecm.lang | 70 +- htdocs/langs/bg_BG/help.lang | 16 +- htdocs/langs/bg_BG/holiday.lang | 144 +- htdocs/langs/bg_BG/interventions.lang | 90 +- htdocs/langs/bg_BG/languages.lang | 49 +- htdocs/langs/bg_BG/link.lang | 12 +- htdocs/langs/bg_BG/mails.lang | 6 +- htdocs/langs/bg_BG/main.lang | 190 +-- htdocs/langs/bg_BG/margins.lang | 76 +- htdocs/langs/bg_BG/other.lang | 14 +- htdocs/langs/bg_BG/products.lang | 2 +- htdocs/langs/bg_BG/resource.lang | 20 +- htdocs/langs/bg_BG/salaries.lang | 8 +- htdocs/langs/bg_BG/stocks.lang | 14 +- htdocs/langs/bg_BG/supplier_proposal.lang | 2 +- htdocs/langs/bg_BG/suppliers.lang | 20 +- htdocs/langs/bg_BG/trips.lang | 28 +- htdocs/langs/bg_BG/website.lang | 2 +- htdocs/langs/bg_BG/workflow.lang | 28 +- htdocs/langs/bn_BD/accountancy.lang | 1 + htdocs/langs/bn_BD/admin.lang | 13 +- htdocs/langs/bn_BD/bills.lang | 2 +- htdocs/langs/bn_BD/companies.lang | 3 +- htdocs/langs/bn_BD/other.lang | 2 + htdocs/langs/bn_BD/website.lang | 2 +- htdocs/langs/bs_BA/accountancy.lang | 1 + htdocs/langs/bs_BA/admin.lang | 13 +- htdocs/langs/bs_BA/bills.lang | 2 +- htdocs/langs/bs_BA/companies.lang | 3 +- htdocs/langs/bs_BA/other.lang | 2 + htdocs/langs/bs_BA/website.lang | 2 +- htdocs/langs/ca_ES/accountancy.lang | 17 +- htdocs/langs/ca_ES/admin.lang | 81 +- htdocs/langs/ca_ES/bills.lang | 18 +- htdocs/langs/ca_ES/boxes.lang | 8 +- htdocs/langs/ca_ES/cashdesk.lang | 2 +- htdocs/langs/ca_ES/companies.lang | 1 + htdocs/langs/ca_ES/compta.lang | 8 +- htdocs/langs/ca_ES/errors.lang | 2 +- htdocs/langs/ca_ES/install.lang | 6 +- htdocs/langs/ca_ES/mails.lang | 6 +- htdocs/langs/ca_ES/members.lang | 2 +- htdocs/langs/ca_ES/other.lang | 12 +- htdocs/langs/ca_ES/products.lang | 2 +- htdocs/langs/ca_ES/projects.lang | 4 +- htdocs/langs/ca_ES/salaries.lang | 2 +- htdocs/langs/ca_ES/stocks.lang | 6 +- htdocs/langs/ca_ES/suppliers.lang | 12 +- htdocs/langs/ca_ES/website.lang | 4 +- htdocs/langs/ca_ES/withdrawals.lang | 6 +- htdocs/langs/cs_CZ/accountancy.lang | 1 + htdocs/langs/cs_CZ/admin.lang | 13 +- htdocs/langs/cs_CZ/bills.lang | 2 +- htdocs/langs/cs_CZ/companies.lang | 1 + htdocs/langs/cs_CZ/other.lang | 14 +- htdocs/langs/cs_CZ/website.lang | 2 +- htdocs/langs/da_DK/accountancy.lang | 1 + htdocs/langs/da_DK/admin.lang | 13 +- htdocs/langs/da_DK/bills.lang | 2 +- htdocs/langs/da_DK/companies.lang | 3 +- htdocs/langs/da_DK/other.lang | 2 + htdocs/langs/da_DK/website.lang | 2 +- htdocs/langs/de_AT/admin.lang | 1 + htdocs/langs/de_AT/companies.lang | 1 + htdocs/langs/de_CH/accountancy.lang | 26 +- htdocs/langs/de_CH/admin.lang | 115 +- htdocs/langs/de_CH/agenda.lang | 2 + htdocs/langs/de_CH/boxes.lang | 2 +- htdocs/langs/de_CH/categories.lang | 10 + htdocs/langs/de_CH/commercial.lang | 10 + htdocs/langs/de_CH/companies.lang | 78 +- htdocs/langs/de_CH/deliveries.lang | 13 +- htdocs/langs/de_CH/dict.lang | 7 + htdocs/langs/de_CH/errors.lang | 17 + htdocs/langs/de_CH/interventions.lang | 6 + htdocs/langs/de_CH/main.lang | 16 +- htdocs/langs/de_CH/members.lang | 10 + htdocs/langs/de_CH/orders.lang | 3 + htdocs/langs/de_CH/other.lang | 5 + htdocs/langs/de_CH/paybox.lang | 2 +- htdocs/langs/de_CH/printing.lang | 4 + htdocs/langs/de_CH/propal.lang | 4 + htdocs/langs/de_CH/users.lang | 1 + htdocs/langs/de_CH/website.lang | 1 + htdocs/langs/de_DE/accountancy.lang | 13 +- htdocs/langs/de_DE/admin.lang | 73 +- htdocs/langs/de_DE/bills.lang | 2 +- htdocs/langs/de_DE/companies.lang | 1 + htdocs/langs/de_DE/other.lang | 2 + htdocs/langs/de_DE/website.lang | 2 +- htdocs/langs/de_DE/workflow.lang | 22 +- htdocs/langs/el_GR/accountancy.lang | 1 + htdocs/langs/el_GR/admin.lang | 13 +- htdocs/langs/el_GR/bills.lang | 2 +- htdocs/langs/el_GR/companies.lang | 3 +- htdocs/langs/el_GR/other.lang | 2 + htdocs/langs/el_GR/website.lang | 2 +- htdocs/langs/en_AU/admin.lang | 2 + htdocs/langs/en_CA/admin.lang | 2 + htdocs/langs/en_GB/accountancy.lang | 3 +- htdocs/langs/en_GB/admin.lang | 2 + htdocs/langs/en_IN/admin.lang | 2 + htdocs/langs/es_CL/accountancy.lang | 60 +- htdocs/langs/es_CL/admin.lang | 524 ++++++- htdocs/langs/es_CL/agenda.lang | 17 + htdocs/langs/es_CL/assets.lang | 4 + htdocs/langs/es_CL/banks.lang | 21 +- htdocs/langs/es_CL/bills.lang | 83 ++ htdocs/langs/es_CL/bookmarks.lang | 9 +- htdocs/langs/es_CL/boxes.lang | 32 + htdocs/langs/es_CL/commercial.lang | 5 +- htdocs/langs/es_CL/companies.lang | 59 + htdocs/langs/es_CL/compta.lang | 13 + htdocs/langs/es_CL/ecm.lang | 4 +- htdocs/langs/es_CL/install.lang | 64 + htdocs/langs/es_CL/interventions.lang | 6 + htdocs/langs/es_CL/main.lang | 84 ++ htdocs/langs/es_CL/members.lang | 19 + htdocs/langs/es_CL/orders.lang | 16 + htdocs/langs/es_CL/other.lang | 54 + htdocs/langs/es_CL/products.lang | 45 + htdocs/langs/es_CL/projects.lang | 55 + htdocs/langs/es_CL/propal.lang | 3 + htdocs/langs/es_CL/receptions.lang | 28 + htdocs/langs/es_CL/stocks.lang | 59 +- htdocs/langs/es_CL/supplier_proposal.lang | 1 + htdocs/langs/es_CL/ticket.lang | 37 + htdocs/langs/es_CL/workflow.lang | 21 +- htdocs/langs/es_CO/admin.lang | 4 +- htdocs/langs/es_CO/bills.lang | 1 - htdocs/langs/es_DO/admin.lang | 2 + htdocs/langs/es_EC/admin.lang | 2 - htdocs/langs/es_ES/accountancy.lang | 13 +- htdocs/langs/es_ES/admin.lang | 75 +- htdocs/langs/es_ES/cashdesk.lang | 2 +- htdocs/langs/es_ES/companies.lang | 1 + htdocs/langs/es_ES/mails.lang | 6 +- htdocs/langs/es_ES/members.lang | 2 +- htdocs/langs/es_ES/other.lang | 2 + htdocs/langs/es_ES/products.lang | 2 +- htdocs/langs/es_ES/salaries.lang | 2 +- htdocs/langs/es_ES/stocks.lang | 6 +- htdocs/langs/es_ES/website.lang | 4 +- htdocs/langs/es_ES/withdrawals.lang | 4 +- htdocs/langs/es_MX/accountancy.lang | 3 +- htdocs/langs/es_MX/admin.lang | 3 +- htdocs/langs/es_PA/admin.lang | 2 + htdocs/langs/es_PE/accountancy.lang | 3 +- htdocs/langs/es_PE/admin.lang | 2 + htdocs/langs/es_VE/admin.lang | 2 + htdocs/langs/et_EE/accountancy.lang | 1 + htdocs/langs/et_EE/admin.lang | 225 +-- htdocs/langs/et_EE/agenda.lang | 118 +- htdocs/langs/et_EE/assets.lang | 54 +- htdocs/langs/et_EE/banks.lang | 20 +- htdocs/langs/et_EE/bills.lang | 56 +- htdocs/langs/et_EE/companies.lang | 5 +- htdocs/langs/et_EE/exports.lang | 100 +- htdocs/langs/et_EE/holiday.lang | 2 +- htdocs/langs/et_EE/interventions.lang | 2 +- htdocs/langs/et_EE/main.lang | 6 +- htdocs/langs/et_EE/orders.lang | 2 +- htdocs/langs/et_EE/other.lang | 2 + htdocs/langs/et_EE/products.lang | 2 +- htdocs/langs/et_EE/projects.lang | 2 +- htdocs/langs/et_EE/suppliers.lang | 22 +- htdocs/langs/et_EE/ticket.lang | 2 +- htdocs/langs/et_EE/website.lang | 2 +- htdocs/langs/eu_ES/accountancy.lang | 1 + htdocs/langs/eu_ES/admin.lang | 13 +- htdocs/langs/eu_ES/bills.lang | 2 +- htdocs/langs/eu_ES/companies.lang | 3 +- htdocs/langs/eu_ES/other.lang | 2 + htdocs/langs/eu_ES/website.lang | 2 +- htdocs/langs/fa_IR/accountancy.lang | 1 + htdocs/langs/fa_IR/admin.lang | 75 +- htdocs/langs/fa_IR/agenda.lang | 2 +- htdocs/langs/fa_IR/bills.lang | 10 +- htdocs/langs/fa_IR/companies.lang | 1 + htdocs/langs/fa_IR/main.lang | 12 +- htdocs/langs/fa_IR/other.lang | 2 + htdocs/langs/fa_IR/website.lang | 2 +- htdocs/langs/fi_FI/accountancy.lang | 1 + htdocs/langs/fi_FI/admin.lang | 13 +- htdocs/langs/fi_FI/bills.lang | 2 +- htdocs/langs/fi_FI/companies.lang | 3 +- htdocs/langs/fi_FI/other.lang | 2 + htdocs/langs/fi_FI/website.lang | 2 +- htdocs/langs/fr_BE/accountancy.lang | 3 +- htdocs/langs/fr_BE/admin.lang | 2 + htdocs/langs/fr_CA/accountancy.lang | 3 +- htdocs/langs/fr_CA/admin.lang | 3 +- htdocs/langs/fr_FR/accountancy.lang | 11 +- htdocs/langs/fr_FR/admin.lang | 77 +- htdocs/langs/fr_FR/bills.lang | 2 +- htdocs/langs/fr_FR/blockedlog.lang | 2 +- htdocs/langs/fr_FR/cashdesk.lang | 2 +- htdocs/langs/fr_FR/companies.lang | 1 + htdocs/langs/fr_FR/mails.lang | 6 +- htdocs/langs/fr_FR/main.lang | 2 +- htdocs/langs/fr_FR/members.lang | 2 +- htdocs/langs/fr_FR/mrp.lang | 2 +- htdocs/langs/fr_FR/other.lang | 4 +- htdocs/langs/fr_FR/products.lang | 2 +- htdocs/langs/fr_FR/salaries.lang | 2 +- htdocs/langs/fr_FR/stocks.lang | 6 +- htdocs/langs/fr_FR/website.lang | 6 +- htdocs/langs/fr_FR/withdrawals.lang | 4 +- htdocs/langs/he_IL/accountancy.lang | 1 + htdocs/langs/he_IL/admin.lang | 13 +- htdocs/langs/he_IL/bills.lang | 2 +- htdocs/langs/he_IL/companies.lang | 3 +- htdocs/langs/he_IL/other.lang | 2 + htdocs/langs/he_IL/website.lang | 2 +- htdocs/langs/hr_HR/accountancy.lang | 1 + htdocs/langs/hr_HR/admin.lang | 13 +- htdocs/langs/hr_HR/bills.lang | 2 +- htdocs/langs/hr_HR/companies.lang | 3 +- htdocs/langs/hr_HR/other.lang | 2 + htdocs/langs/hr_HR/website.lang | 2 +- htdocs/langs/hu_HU/accountancy.lang | 1 + htdocs/langs/hu_HU/admin.lang | 13 +- htdocs/langs/hu_HU/bills.lang | 2 +- htdocs/langs/hu_HU/companies.lang | 3 +- htdocs/langs/hu_HU/other.lang | 2 + htdocs/langs/hu_HU/website.lang | 2 +- htdocs/langs/id_ID/accountancy.lang | 1 + htdocs/langs/id_ID/admin.lang | 13 +- htdocs/langs/id_ID/bills.lang | 2 +- htdocs/langs/id_ID/companies.lang | 1 + htdocs/langs/id_ID/other.lang | 2 + htdocs/langs/id_ID/website.lang | 2 +- htdocs/langs/is_IS/accountancy.lang | 1 + htdocs/langs/is_IS/admin.lang | 13 +- htdocs/langs/is_IS/bills.lang | 2 +- htdocs/langs/is_IS/companies.lang | 3 +- htdocs/langs/is_IS/other.lang | 2 + htdocs/langs/is_IS/website.lang | 2 +- htdocs/langs/it_IT/accountancy.lang | 149 +- htdocs/langs/it_IT/admin.lang | 31 +- htdocs/langs/it_IT/banks.lang | 4 +- htdocs/langs/it_IT/bills.lang | 18 +- htdocs/langs/it_IT/boxes.lang | 10 +- htdocs/langs/it_IT/companies.lang | 9 +- htdocs/langs/it_IT/main.lang | 14 +- htdocs/langs/it_IT/members.lang | 2 +- htdocs/langs/it_IT/other.lang | 2 + htdocs/langs/it_IT/website.lang | 2 +- htdocs/langs/ja_JP/accountancy.lang | 1 + htdocs/langs/ja_JP/admin.lang | 13 +- htdocs/langs/ja_JP/bills.lang | 2 +- htdocs/langs/ja_JP/companies.lang | 3 +- htdocs/langs/ja_JP/other.lang | 2 + htdocs/langs/ja_JP/website.lang | 2 +- htdocs/langs/ka_GE/accountancy.lang | 1 + htdocs/langs/ka_GE/admin.lang | 13 +- htdocs/langs/ka_GE/bills.lang | 2 +- htdocs/langs/ka_GE/companies.lang | 3 +- htdocs/langs/ka_GE/other.lang | 2 + htdocs/langs/ka_GE/website.lang | 2 +- htdocs/langs/kn_IN/accountancy.lang | 1 + htdocs/langs/kn_IN/admin.lang | 13 +- htdocs/langs/kn_IN/bills.lang | 2 +- htdocs/langs/kn_IN/companies.lang | 3 +- htdocs/langs/kn_IN/other.lang | 2 + htdocs/langs/kn_IN/website.lang | 2 +- htdocs/langs/ko_KR/accountancy.lang | 1 + htdocs/langs/ko_KR/admin.lang | 13 +- htdocs/langs/ko_KR/bills.lang | 2 +- htdocs/langs/ko_KR/companies.lang | 3 +- htdocs/langs/ko_KR/other.lang | 2 + htdocs/langs/ko_KR/website.lang | 2 +- htdocs/langs/lo_LA/accountancy.lang | 1 + htdocs/langs/lo_LA/admin.lang | 13 +- htdocs/langs/lo_LA/bills.lang | 2 +- htdocs/langs/lo_LA/companies.lang | 3 +- htdocs/langs/lo_LA/other.lang | 2 + htdocs/langs/lo_LA/website.lang | 2 +- htdocs/langs/lt_LT/accountancy.lang | 1 + htdocs/langs/lt_LT/admin.lang | 13 +- htdocs/langs/lt_LT/bills.lang | 2 +- htdocs/langs/lt_LT/companies.lang | 3 +- htdocs/langs/lt_LT/other.lang | 2 + htdocs/langs/lt_LT/website.lang | 2 +- htdocs/langs/lv_LV/accountancy.lang | 13 +- htdocs/langs/lv_LV/admin.lang | 75 +- htdocs/langs/lv_LV/bills.lang | 2 +- htdocs/langs/lv_LV/cashdesk.lang | 2 +- htdocs/langs/lv_LV/companies.lang | 1 + htdocs/langs/lv_LV/mails.lang | 6 +- htdocs/langs/lv_LV/members.lang | 2 +- htdocs/langs/lv_LV/other.lang | 2 + htdocs/langs/lv_LV/products.lang | 2 +- htdocs/langs/lv_LV/salaries.lang | 2 +- htdocs/langs/lv_LV/stocks.lang | 6 +- htdocs/langs/lv_LV/website.lang | 4 +- htdocs/langs/lv_LV/withdrawals.lang | 4 +- htdocs/langs/mk_MK/accountancy.lang | 1 + htdocs/langs/mk_MK/admin.lang | 13 +- htdocs/langs/mk_MK/bills.lang | 2 +- htdocs/langs/mk_MK/companies.lang | 3 +- htdocs/langs/mk_MK/other.lang | 2 + htdocs/langs/mk_MK/website.lang | 2 +- htdocs/langs/mn_MN/accountancy.lang | 1 + htdocs/langs/mn_MN/admin.lang | 13 +- htdocs/langs/mn_MN/bills.lang | 2 +- htdocs/langs/mn_MN/companies.lang | 3 +- htdocs/langs/mn_MN/other.lang | 2 + htdocs/langs/mn_MN/website.lang | 2 +- htdocs/langs/nb_NO/accountancy.lang | 13 +- htdocs/langs/nb_NO/admin.lang | 79 +- htdocs/langs/nb_NO/bills.lang | 2 +- htdocs/langs/nb_NO/cashdesk.lang | 2 +- htdocs/langs/nb_NO/companies.lang | 1 + htdocs/langs/nb_NO/mails.lang | 6 +- htdocs/langs/nb_NO/members.lang | 2 +- htdocs/langs/nb_NO/other.lang | 136 +- htdocs/langs/nb_NO/products.lang | 2 +- htdocs/langs/nb_NO/salaries.lang | 2 +- htdocs/langs/nb_NO/stocks.lang | 6 +- htdocs/langs/nb_NO/website.lang | 4 +- htdocs/langs/nb_NO/withdrawals.lang | 4 +- htdocs/langs/nl_BE/accountancy.lang | 1 - htdocs/langs/nl_BE/admin.lang | 16 +- htdocs/langs/nl_BE/agenda.lang | 16 + htdocs/langs/nl_BE/contracts.lang | 18 + htdocs/langs/nl_BE/interventions.lang | 1 + htdocs/langs/nl_BE/ticket.lang | 14 + htdocs/langs/nl_NL/accountancy.lang | 1 + htdocs/langs/nl_NL/admin.lang | 13 +- htdocs/langs/nl_NL/bills.lang | 20 +- htdocs/langs/nl_NL/companies.lang | 1 + htdocs/langs/nl_NL/other.lang | 2 + htdocs/langs/nl_NL/website.lang | 2 +- htdocs/langs/pl_PL/accountancy.lang | 1 + htdocs/langs/pl_PL/admin.lang | 13 +- htdocs/langs/pl_PL/bills.lang | 2 +- htdocs/langs/pl_PL/companies.lang | 3 +- htdocs/langs/pl_PL/other.lang | 2 + htdocs/langs/pl_PL/website.lang | 2 +- htdocs/langs/pt_BR/accountancy.lang | 2 +- htdocs/langs/pt_BR/admin.lang | 1 - htdocs/langs/pt_PT/accountancy.lang | 1 + htdocs/langs/pt_PT/admin.lang | 13 +- htdocs/langs/pt_PT/bills.lang | 2 +- htdocs/langs/pt_PT/companies.lang | 3 +- htdocs/langs/pt_PT/other.lang | 2 + htdocs/langs/pt_PT/website.lang | 2 +- htdocs/langs/ro_RO/accountancy.lang | 1 + htdocs/langs/ro_RO/admin.lang | 13 +- htdocs/langs/ro_RO/bills.lang | 2 +- htdocs/langs/ro_RO/companies.lang | 3 +- htdocs/langs/ro_RO/other.lang | 2 + htdocs/langs/ro_RO/website.lang | 2 +- htdocs/langs/ru_RU/accountancy.lang | 37 +- htdocs/langs/ru_RU/admin.lang | 1145 +++++++-------- htdocs/langs/ru_RU/bills.lang | 10 +- htdocs/langs/ru_RU/blockedlog.lang | 24 +- htdocs/langs/ru_RU/bookmarks.lang | 16 +- htdocs/langs/ru_RU/boxes.lang | 90 +- htdocs/langs/ru_RU/cashdesk.lang | 26 +- htdocs/langs/ru_RU/categories.lang | 62 +- htdocs/langs/ru_RU/commercial.lang | 26 +- htdocs/langs/ru_RU/companies.lang | 159 +- htdocs/langs/ru_RU/compta.lang | 4 +- htdocs/langs/ru_RU/contracts.lang | 7 +- htdocs/langs/ru_RU/cron.lang | 26 +- htdocs/langs/ru_RU/dict.lang | 14 +- htdocs/langs/ru_RU/donations.lang | 6 +- htdocs/langs/ru_RU/ecm.lang | 8 +- htdocs/langs/ru_RU/help.lang | 2 +- htdocs/langs/ru_RU/holiday.lang | 4 +- htdocs/langs/ru_RU/hrm.lang | 4 +- htdocs/langs/ru_RU/main.lang | 316 ++-- htdocs/langs/ru_RU/orders.lang | 2 +- htdocs/langs/ru_RU/other.lang | 4 +- htdocs/langs/ru_RU/resource.lang | 2 +- htdocs/langs/ru_RU/salaries.lang | 24 +- htdocs/langs/ru_RU/stocks.lang | 4 +- htdocs/langs/ru_RU/suppliers.lang | 16 +- htdocs/langs/ru_RU/ticket.lang | 8 +- htdocs/langs/ru_RU/trips.lang | 4 +- htdocs/langs/ru_RU/users.lang | 66 +- htdocs/langs/ru_RU/website.lang | 6 +- htdocs/langs/ru_RU/workflow.lang | 28 +- htdocs/langs/sk_SK/accountancy.lang | 1 + htdocs/langs/sk_SK/admin.lang | 13 +- htdocs/langs/sk_SK/bills.lang | 2 +- htdocs/langs/sk_SK/companies.lang | 3 +- htdocs/langs/sk_SK/other.lang | 2 + htdocs/langs/sk_SK/website.lang | 2 +- htdocs/langs/sl_SI/accountancy.lang | 1 + htdocs/langs/sl_SI/admin.lang | 13 +- htdocs/langs/sl_SI/bills.lang | 2 +- htdocs/langs/sl_SI/companies.lang | 3 +- htdocs/langs/sl_SI/other.lang | 2 + htdocs/langs/sl_SI/website.lang | 2 +- htdocs/langs/sq_AL/accountancy.lang | 1 + htdocs/langs/sq_AL/admin.lang | 13 +- htdocs/langs/sq_AL/bills.lang | 2 +- htdocs/langs/sq_AL/companies.lang | 3 +- htdocs/langs/sq_AL/other.lang | 2 + htdocs/langs/sq_AL/website.lang | 2 +- htdocs/langs/sr_RS/accountancy.lang | 1 + htdocs/langs/sr_RS/admin.lang | 13 +- htdocs/langs/sr_RS/bills.lang | 2 +- htdocs/langs/sr_RS/companies.lang | 3 +- htdocs/langs/sr_RS/other.lang | 2 + htdocs/langs/sv_SE/accountancy.lang | 1 + htdocs/langs/sv_SE/admin.lang | 13 +- htdocs/langs/sv_SE/bills.lang | 2 +- htdocs/langs/sv_SE/companies.lang | 3 +- htdocs/langs/sv_SE/other.lang | 54 +- htdocs/langs/sv_SE/website.lang | 2 +- htdocs/langs/sw_SW/accountancy.lang | 1 + htdocs/langs/sw_SW/admin.lang | 13 +- htdocs/langs/sw_SW/bills.lang | 2 +- htdocs/langs/sw_SW/companies.lang | 3 +- htdocs/langs/sw_SW/other.lang | 2 + htdocs/langs/th_TH/accountancy.lang | 1 + htdocs/langs/th_TH/admin.lang | 13 +- htdocs/langs/th_TH/bills.lang | 2 +- htdocs/langs/th_TH/companies.lang | 3 +- htdocs/langs/th_TH/other.lang | 2 + htdocs/langs/th_TH/website.lang | 2 +- htdocs/langs/tr_TR/accountancy.lang | 1 + htdocs/langs/tr_TR/admin.lang | 31 +- htdocs/langs/tr_TR/agenda.lang | 2 +- htdocs/langs/tr_TR/assets.lang | 12 +- htdocs/langs/tr_TR/banks.lang | 84 +- htdocs/langs/tr_TR/bills.lang | 4 +- htdocs/langs/tr_TR/categories.lang | 2 +- htdocs/langs/tr_TR/companies.lang | 1 + htdocs/langs/tr_TR/compta.lang | 4 +- htdocs/langs/tr_TR/contracts.lang | 4 +- htdocs/langs/tr_TR/cron.lang | 6 +- htdocs/langs/tr_TR/errors.lang | 4 +- htdocs/langs/tr_TR/install.lang | 2 +- htdocs/langs/tr_TR/interventions.lang | 2 +- htdocs/langs/tr_TR/mails.lang | 10 +- htdocs/langs/tr_TR/main.lang | 16 +- htdocs/langs/tr_TR/orders.lang | 2 +- htdocs/langs/tr_TR/other.lang | 2 + htdocs/langs/tr_TR/products.lang | 12 +- htdocs/langs/tr_TR/projects.lang | 10 +- htdocs/langs/tr_TR/propal.lang | 2 +- htdocs/langs/tr_TR/resource.lang | 4 +- htdocs/langs/tr_TR/supplier_proposal.lang | 2 +- htdocs/langs/tr_TR/ticket.lang | 2 +- htdocs/langs/tr_TR/trips.lang | 2 +- htdocs/langs/tr_TR/users.lang | 10 +- htdocs/langs/tr_TR/website.lang | 6 +- htdocs/langs/uk_UA/accountancy.lang | 1 + htdocs/langs/uk_UA/admin.lang | 13 +- htdocs/langs/uk_UA/bills.lang | 2 +- htdocs/langs/uk_UA/companies.lang | 3 +- htdocs/langs/uk_UA/other.lang | 2 + htdocs/langs/uk_UA/website.lang | 2 +- htdocs/langs/uz_UZ/accountancy.lang | 1 + htdocs/langs/uz_UZ/admin.lang | 13 +- htdocs/langs/uz_UZ/bills.lang | 2 +- htdocs/langs/uz_UZ/companies.lang | 3 +- htdocs/langs/uz_UZ/other.lang | 2 + htdocs/langs/vi_VN/accountancy.lang | 1 + htdocs/langs/vi_VN/admin.lang | 27 +- htdocs/langs/vi_VN/bills.lang | 2 +- htdocs/langs/vi_VN/companies.lang | 3 +- htdocs/langs/vi_VN/main.lang | 2 +- htdocs/langs/vi_VN/other.lang | 2 + htdocs/langs/vi_VN/website.lang | 2 +- htdocs/langs/zh_CN/accountancy.lang | 1 + htdocs/langs/zh_CN/admin.lang | 13 +- htdocs/langs/zh_CN/bills.lang | 2 +- htdocs/langs/zh_CN/companies.lang | 3 +- htdocs/langs/zh_CN/other.lang | 2 + htdocs/langs/zh_CN/website.lang | 2 +- htdocs/langs/zh_TW/accountancy.lang | 1 + htdocs/langs/zh_TW/admin.lang | 13 +- htdocs/langs/zh_TW/bills.lang | 2 +- htdocs/langs/zh_TW/companies.lang | 3 +- htdocs/langs/zh_TW/other.lang | 2 + htdocs/langs/zh_TW/website.lang | 2 +- 502 files changed, 6347 insertions(+), 4399 deletions(-) diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang index 738d9106e6f..1cdb76f1100 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index 8a5ed0b5304..1cbca5d3f51 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=رابط إلى كائن ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=إنشاء / تعديل الخدمات Permission534=حذف خدمات Permission536=انظر / إدارة الخدمات الخفية Permission538=تصدير الخدمات -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=قراءة التبرعات Permission702=إنشاء / تعديل والهبات Permission703=حذف التبرعات @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang index 6b5fc0f0a3c..2984cd416a7 100644 --- a/htdocs/langs/ar_SA/bills.lang +++ b/htdocs/langs/ar_SA/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=الفاتورة الأولية InvoiceProFormaDesc= الفاتورة المبدئية عبارة عن صورة فاتورة حقيقية ولكنها لا تحتوي على قيمة للمحاسبة. InvoiceReplacement=استبدال الفاتورة InvoiceReplacementAsk=فاتورة استبدال الفاتورة -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=ملاحظة ائتمانية InvoiceAvoirAsk=ملاحظة ائتمانية لتصحيح الفاتورة InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/ar_SA/companies.lang b/htdocs/langs/ar_SA/companies.lang index 060ea2565d6..f7e393cad21 100644 --- a/htdocs/langs/ar_SA/companies.lang +++ b/htdocs/langs/ar_SA/companies.lang @@ -28,7 +28,7 @@ AliasNames=الاسم المستعار (التجارية، العلامات ال AliasNameShort=Alias Name Companies=الشركات CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=بلا Vendor=Vendor +Supplier=Vendor AddContact=إنشاء اتصال AddContactAddress=إنشاء الاتصال / عنوان EditContact=تحرير الاتصال / عنوان diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang index c694d08bbe6..551689b875a 100644 --- a/htdocs/langs/ar_SA/other.lang +++ b/htdocs/langs/ar_SA/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=التدخل ٪ ق المصادق EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/ar_SA/website.lang b/htdocs/langs/ar_SA/website.lang index 1cf5f878abd..c1895cc0b84 100644 --- a/htdocs/langs/ar_SA/website.lang +++ b/htdocs/langs/ar_SA/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang index 09f1de20348..671bcc70f07 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index 5d092654c17..3e25a421f3f 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -5,137 +5,137 @@ Publisher=Издател VersionProgram=Версия на програмата VersionLastInstall=Първоначално инсталирана версия VersionLastUpgrade=Последно инсталирана версия -VersionExperimental=Експериментален -VersionDevelopment=Разработка -VersionUnknown=Неизвестен -VersionRecommanded=Препоръчва се -FileCheck=Проверки за цялостност на файлове -FileCheckDesc=Този инструмент ви позволява да проверите целостта на файловете и настройката на вашето приложение, сравнявайки всеки файл с официалния. Може да се провери и стойността на някои константи за настройка. Може да използвате този инструмент, за да определите дали някой файл е бил променен (напр. от хакер). +VersionExperimental=Експериментална +VersionDevelopment=В разработка +VersionUnknown=Неизвестна +VersionRecommanded=Препоръчителна +FileCheck=Интегритет +FileCheckDesc=Този инструмент позволява да проверите целостта на файловете и настройката на вашата система, сравнявайки всеки файл с оригиналния. Може да се провери стойността на някои константи за настройка. Може да използвате този инструмент, за да определите дали някой файл е бил променен (например от хакер). FileIntegrityIsStrictlyConformedWithReference=Целостта на файловете е строго съобразена с референцията. -FileIntegrityIsOkButFilesWereAdded=Проверката за целостта на файловете премина, но някои нови файлове са добавени. -FileIntegritySomeFilesWereRemovedOrModified=Проверката за цялостта на файловете е неуспешна. Някои файлове са били променени, премахнати или добавени. +FileIntegrityIsOkButFilesWereAdded=Проверката за целостта на файловете премина успешно, но са добавени някои нови файлове. +FileIntegritySomeFilesWereRemovedOrModified=Проверката за целостта на файловете е неуспешна. Някои файлове са били променени, премахнати или добавени. GlobalChecksum=Глобална контролна сума -MakeIntegrityAnalysisFrom=Извършване на анализ за целостта на файловете на приложението от +MakeIntegrityAnalysisFrom=Извършване на анализ за целостта на файловете в системата от LocalSignature=Вграден локален подпис (по-малко надежден) RemoteSignature=Отдалечен подпис (по-надежден) -FilesMissing=Missing Files -FilesUpdated=Updated Files +FilesMissing=Липсващи файлове +FilesUpdated=Актуализирани файлове FilesModified=Променени файлове FilesAdded=Добавени файлове -FileCheckDolibarr=Проверка целостта на файловете в приложението -AvailableOnlyOnPackagedVersions=Локалният файл за проверка на целостта е наличен, само когато приложението е инсталирано от официален пакет -XmlNotFound=XML файлът за проверка на приложението не е намерен -SessionId=ID на сесията -SessionSaveHandler=Handler за да запазите сесията -SessionSavePath=Място за съхранение на сесията -PurgeSessions=Изчистване на сесиите -ConfirmPurgeSessions=Сигурни ли сте, че желаете да изчистите всички сесии? Това ще прекъсне всички потребители (освен Вас). -NoSessionListWithThisHandler=Запаметяващия манипулатор на сесия, конфигуриран във вашия PHP, не позволява изброяване на всички стартирани сесии. -LockNewSessions=Заключване за нови свързвания -ConfirmLockNewSessions=Сигурни ли сте, че искате да ограничите всяка нова Dolibarr връзка към себе си? Само потребителят %s ще може да се свърже след това. +FileCheckDolibarr=Проверка целостта на файловете в системата +AvailableOnlyOnPackagedVersions=Локалният файл за проверка на целостта е наличен, само когато системата е инсталирана от официален пакет. +XmlNotFound=XML файлът за проверка на системата не е намерен +SessionId=Идентификатор на сесия +SessionSaveHandler=Манипулатор за съхраняване на сесии +SessionSavePath=Място за съхранение на сесия +PurgeSessions=Разчистване на сесиите +ConfirmPurgeSessions=Сигурни ли сте, че искате да разчистите всички сесии? Това ще прекъсне всички потребители (освен Вас). +NoSessionListWithThisHandler=Манипулатора за съхранение на сесии, конфигуриран във вашия PHP, не позволява изброяване на всички стартирани сесии. +LockNewSessions=Блокиране на нови свързвания +ConfirmLockNewSessions=Сигурни ли сте, че искате да ограничите всяка нова Dolibarr връзка, освен своята? Само потребител %s ще може да се свърже след това. UnlockNewSessions=Разрешаване на свързването YourSession=Вашата сесия Sessions=Потребителски сесии -WebUserGroup=Уеб сървър потребител/група -NoSessionFound=Изглежда, че вашата PHP конфигурация не позволява изброяване на активни сесии. Директорията, използвана за запазване на сесии ( %s ), може да бъде защитена (например от разрешения на операционната система или от директивата PHP open_basedir). -DBStoringCharset=Кодиране на знаците за съхраняваните данни в базата данни -DBSortingCharset=Набор от знаци база данни, за да сортирате данните +WebUserGroup=Уеб сървър потребител / група +NoSessionFound=Изглежда, че вашата PHP конфигурация не позволява изброяване на активни сесии. Директорията, използвана за запазване на сесии ( %s ), може да е защитена (например от права на операционната система или от директивата PHP open_basedir). +DBStoringCharset=Кодиране на знаците при съхраняване в базата данни +DBSortingCharset=Кодиране на знаците при сортиране в базата данни ClientCharset=Кодиране от страна на клиента ClientSortingCharset=Съпоставяне от страна на клиента -WarningModuleNotActive=Модула %s трябва да бъде включен -WarningOnlyPermissionOfActivatedModules=Само разрешения, свързани с активирани модули са показани тук. Можете да активирате други модули в страницата Начало->Настройки->Модули. -DolibarrSetup=Dolibarr инсталиране или обновяване +WarningModuleNotActive=Модул %s е необходимо да бъде включен +WarningOnlyPermissionOfActivatedModules=Само разрешения, свързани с активните модули са показани тук. Може да активирате други модули в страницата Начало -> Настройки -> Модули / Приложения +DolibarrSetup=Dolibarr инсталиране / обновяване InternalUser=Вътрешен потребител ExternalUser=Външен потребител InternalUsers=Вътрешни потребители ExternalUsers=Външни потребители GUISetup=Екран SetupArea=Настройки -UploadNewTemplate=Качване на нов шаблон(и) -FormToTestFileUploadForm=Форма за тестване качване на файлове (за настройка) +UploadNewTemplate=Качване на нов(и) шаблон(и) +FormToTestFileUploadForm=Формуляр за тестване на качването на файлове (според настройката) IfModuleEnabled=Забележка: Ефективно е само ако модула %s е активиран -RemoveLock=Премахнете / преименувайте файла %s , ако съществува, за да разрешите използването на инструмента за актуализиране / инсталиране. -RestoreLock=Възстановете файла %s само с разрешение за четене, за да забраните по-нататъшното използване на инструмента за актуализиране / инсталиране. +RemoveLock=Премахнете / преименувайте файла %s , ако съществува, за да разрешите използването на инструмента за инсталиране / актуализиране. +RestoreLock=Възстановете файла %s само с права за четене, за да забраните по-нататъшното използване на инструмента за инсталиране / актуализиране. SecuritySetup=Настройки на сигурността -SecurityFilesDesc=Определете тук опциите, свързани със сигурността, относно качването на файлове. -ErrorModuleRequirePHPVersion=Грешка, този модул изисква PHP версия %s или по-висока -ErrorModuleRequireDolibarrVersion=Грешка, този модул изисква Dolibarr версия %s или по-висока +SecurityFilesDesc=Дефинирайте тук параметрите, свързани със сигурността, относно качването на файлове. +ErrorModuleRequirePHPVersion=Грешка, този модул изисква PHP версия %s или по-висока. +ErrorModuleRequireDolibarrVersion=Грешка, този модул изисква Dolibarr версия %s или по-висока. ErrorDecimalLargerThanAreForbidden=Грешка, точност по-висока от %s не се поддържа. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Стойност 'система' и 'автосистема' за типа са запазени. Може да използвате за стойност 'потребител' при добавяне на ваш личен запис. -ErrorCodeCantContainZero=Кода не може да съдържа стойност 0 +DictionarySetup=Настройка на речници +Dictionary=Речници +ErrorReservedTypeSystemSystemAuto=Стойностите "system" и "systemauto" за тип са резервирани. Може да използвате "user" като стойност, за да добавите свой собствен запис. +ErrorCodeCantContainZero=Кодът не може да съдържа стойност 0 DisableJavascript=Изключване на Java скрипт и Ajax функции DisableJavascriptNote=Забележка: За тестови цели или за отстраняване на грешки. За оптимизация за слепи хора или текстови браузъри може използвате настройката в потребителския профил -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. +UseSearchToSelectCompanyTooltip=Също така, ако имате голям брой контрагенти (> 100 000) може да увеличите скоростта като зададете стойност 1 за константата COMPANY_DONOTSEARCH_ANYWHERE в Настройки -> Други настройки. След това търсенето ще бъде ограничено до началото на низ. +UseSearchToSelectContactTooltip=Също така, ако имате голям брой контакти (> 100 000) може да увеличите скоростта като зададете стойност 1 за константата CONTACT_DONOTSEARCH_ANYWHERE в Настройки -> Други настройки. След това търсенето ще бъде ограничено до началото на низ. DelaiedFullListToSelectCompany=Изчаква натискането на клавиш, преди да зареди съдържание в списъка с контрагенти.
Това може да увеличи производителността, ако имате голям брой контрагенти, но е по-малко удобно. DelaiedFullListToSelectContact=Изчаква натискането на клавиш, преди да зареди съдържание в списъка с контакти.
Това може да увеличи производителността, ако имате голям брой контакти, но е по-малко удобно NumberOfKeyToSearch=Брой знаци предизвикващи търсене: %s NumberOfBytes=Брой байтове SearchString=Низ за търсене -NotAvailableWhenAjaxDisabled=Не е налично, когато Аякс инвалиди +NotAvailableWhenAjaxDisabled=Не е налице, когато Ajax е деактивиран AllowToSelectProjectFromOtherCompany=В документ на контрагент може да бъде избран проект, свързан с друг контрагент -JavascriptDisabled=Java скрипт е забранен -UsePreviewTabs=Използвайте Преглед раздели -ShowPreview=Покажи преглед -PreviewNotAvailable=Preview не е наличен -ThemeCurrentlyActive=Тема активни в момента -CurrentTimeZone=TimeZone PHP (сървър) -MySQLTimeZone=TimeZone MySql (database) +JavascriptDisabled=JavaScript е деактивиран +UsePreviewTabs=Използвайте разделите за преглед +ShowPreview=Показване на преглед +PreviewNotAvailable=Прегледът не е налице +ThemeCurrentlyActive=Темата е активна в момента +CurrentTimeZone=Времева зона на PHP (сървър) +MySQLTimeZone=Времева зона на MySql (база данни) TZHasNoEffect=Датите се съхраняват и връщат от сървъра на базата данни така, сякаш се съхраняват като подаден низ. Часовата зона има ефект само когато се използва функцията UNIX_TIMESTAMP (която не трябва да се използва от Dolibarr, така че базата данни TZ не трябва да има ефект, дори ако бъде променена след въвеждането на данните). Space=Пространство Table=Таблица -Fields=Полетата +Fields=Полета Index=Индекс Mask=Маска NextValue=Следваща стойност NextValueForInvoices=Следваща стойност (фактури) NextValueForCreditNotes=Следваща стойност (кредитни известия) -NextValueForDeposit=Следваща стойност (авансово плащане) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Забележка: Вашата PHP конфигурация понастоящем ограничава максималния размер на файловете за качване до %s %s, независимо от стойността на този параметър -NoMaxSizeByPHPLimit=Забележка: Не срокът се определя в конфигурацията на вашия PHP -MaxSizeForUploadedFiles=Максимален размер за качените файлове (0 за да забраните качване) -UseCaptchaCode=Използвайте графичен код (CAPTCHA) на страницата за вход -AntiVirusCommand= Пълна пътека до антивирусен команда -AntiVirusCommandExample= Пример за ClamWin: C: \\ програма ~ 1 \\ ClamWin \\ Bin \\ clamscan.exe
Пример за ClamAV: / ЮЕсАр / хамбар / clamscan -AntiVirusParam= Още параметри на командния ред -AntiVirusParamExample= Пример за ClamWin: - база данни = "C: \\ Program Files (x86) \\ ClamWin \\ ИЪ" -ComptaSetup=Настройка на счетоводния модул -UserSetup=Настройки за управление на потребителите -MultiCurrencySetup=Настройки на няколко валути +NextValueForDeposit=Следваща стойност (авансови плащания) +NextValueForReplacements=Следваща стойност (замествания) +MustBeLowerThanPHPLimit=Забележка: Вашата PHP конфигурация понастоящем ограничава максималния размер на файловете за качване до %s %s, независимо от стойността на този параметър. +NoMaxSizeByPHPLimit=Забележка: Не е зададено ограничение във вашата PHP конфигурация +MaxSizeForUploadedFiles=Максимален размер за качени файлове (0 за забрана на качването) +UseCaptchaCode=Използване на графичен код (CAPTCHA) на страницата за вход +AntiVirusCommand= Пълен път към антивирусна команда +AntiVirusCommandExample= Пример за ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Пример за ClamAv: /usr/bin/clamscan +AntiVirusParam= Още параметри в командния ред +AntiVirusParamExample= Пример за ClamWin: --database="C:\\Programm Files (x86)\\ClamWin\\lib" +ComptaSetup=Настройка на модул Счетоводство +UserSetup=Настройка за управление на потребители +MultiCurrencySetup=Настройки на различни валути MenuLimits=Граници и точност -MenuIdParent=ID майка меню -DetailMenuIdParent=ID на основното меню (0 за горното меню) -DetailPosition=Брой Сортиране, за да определи позицията на менюто +MenuIdParent=Идентификатор на основно меню +DetailMenuIdParent=Идентификатор на основно меню (празно за главно меню) +DetailPosition=Номер за сортиране, за определяне на позицията на менюто AllMenus=Всички NotConfigured=Модулът / приложението не е конфигуриран(о) Active=Активен -SetupShort=Настройки +SetupShort=Настройка OtherOptions=Други опции OtherSetup=Други настройки CurrentValueSeparatorDecimal=Десетичен разделител -CurrentValueSeparatorThousand=Thousand сепаратор -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID +CurrentValueSeparatorThousand=Хиляден разделител +Destination=Дестинация +IdModule=Идентификатор на модул +IdPermissions=Идентификатор на разрешения LanguageBrowserParameter=Параметър %s LocalisationDolibarrParameters=Параметри на локализация ClientTZ=Часова зона на клиента (потребител) -ClientHour=Час на клиента (потребител) -OSTZ=Часова зона на Операционната Система -PHPTZ=Часова зона на PHP Сървъра -DaylingSavingTime=Лятното часово време -CurrentHour=Час на PHP (сървър) -CurrentSessionTimeOut=Продължителност на текущата сесия +ClientHour=Клиентско време (потребител) +OSTZ=Часова зона на ОС на сървъра +PHPTZ=Часова зона на PHP сървъра +DaylingSavingTime=Лятно часово време +CurrentHour=Време на PHP (сървър) +CurrentSessionTimeOut=Продължителност на текуща сесия YouCanEditPHPTZ=За да зададете различна PHP часова зона (не се изисква), може да опитате да добавите .htaccess файл с ред като този 'SetEnv TZ Europe/Paris' HoursOnThisPageAreOnServerTZ=Внимание, в противоречие с други екрани, часовете на тази страница не са в местната часова зона, а в часовата зона на сървъра. Box=Джаджа Boxes=Джаджи MaxNbOfLinesForBoxes=Максимален брой редове за джаджи AllWidgetsWereEnabled=Всички налични джаджи са активирани -PositionByDefault=Default order +PositionByDefault=Позиция по подразбиране Position=Длъжност MenusDesc=Меню мениджърите определят съдържанието на двете ленти с менюта (хоризонтална и вертикална). MenusEditorDesc=Редакторът на менюто ви позволява да дефинирате потребителски менюта. Използвайте го внимателно, за да избегнете нестабилност и трайно недостъпни менюта.
Някои модули добавят менюта (най-вече в менюто Всички). Ако премахнете някои от тези менюта по погрешка, можете да ги възстановите като деактивирате и да активирате отново модула. @@ -144,64 +144,64 @@ LangFile=.lang файл Language_en_US_es_MX_etc=Език (en_US, es_MX, ...) System=Система SystemInfo=Системна информация -SystemToolsArea=Системни инструменти +SystemToolsArea=Секция със системни инструменти SystemToolsAreaDesc=Тази секция осигурява административни функции. Използвайте менюто, за да изберете необходимата функционалност. -Purge=Изчистване +Purge=Разчистване PurgeAreaDesc=Тази страница ви позволява да изтриете всички файлове, генерирани или съхранени от Dolibarr (временни файлове или всички файлове в директорията %s). Използването на тази функция обикновено не е необходимо. Той се предоставя като решение за потребители, чиито Dolibarr се хоства от доставчик, който не предлага разрешения за изтриване на файлове, генерирани от уеб сървъра. PurgeDeleteLogFile=Изтриване на лог файлове, включително %s генериран от Debug Logs модула (няма риск от загуба на данни) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=Изтриване на всички временни файлове (няма риск от загуба на данни). Забележка: Изтриването се извършва, само ако директорията temp е създадена преди 24 часа. PurgeDeleteTemporaryFilesShort=Изтриване на временни файлове PurgeDeleteAllFilesInDocumentsDir=Изтриване на всички файлове в директорията: %s.
Това ще изтрие всички генерирани документи, свързани с елементи (контрагенти, фактури и т.н.), файлове, качени чрез ECM модула, архиви на базата данни и временни файлове. -PurgeRunNow=Изчистване сега +PurgeRunNow=Разчисти сега PurgeNothingToDelete=Няма директория или файлове за изтриване. PurgeNDirectoriesDeleted=%s изтрити файлове или директории. PurgeNDirectoriesFailed=Неуспешно изтриване на %s файлове или директории. -PurgeAuditEvents=Поръси всички събития по сигурността +PurgeAuditEvents=Разчистване на всички събития свързани със сигурността ConfirmPurgeAuditEvents=Сигурни ли сте, че искате да изчистите всички събития свързани със сигурността? Всички записи за сигурността ще бъдат изтрити, други данни няма да бъдат премахнати. -GenerateBackup=Генериране на бекъп -Backup=Бекъп +GenerateBackup=Генериране на архивно копие +Backup=Архивиране Restore=Възстановяване -RunCommandSummary=Backup стартира със следната команда -BackupResult=Backup резултат -BackupFileSuccessfullyCreated=Backup файл, генериран успешно +RunCommandSummary=Архивирането е стартирано със следната команда +BackupResult=Резултат от архивиране +BackupFileSuccessfullyCreated=Архивиращият файл е успешно генериран YouCanDownloadBackupFile=Генерираният файл вече може да бъде изтеглен -NoBackupFileAvailable=Няма налични бекъпи. -ExportMethod=Тип на експортирането -ImportMethod=Внос метод -ToBuildBackupFileClickHere=За изграждането на резервно копие на файла, натиснете
тук . +NoBackupFileAvailable=Няма налични архивни копия +ExportMethod=Метод за експортиране +ImportMethod=Метод за импортиране +ToBuildBackupFileClickHere=За да създадете архивен файл, кликнете тук. ImportMySqlDesc=За да импортирате архив на MySQL може да използвате phpMyAdmin, чрез вашия хостинг или да използвате MySQL команда в терминала.
Например: -ImportPostgreSqlDesc=За да импортирате архивния файл, трябва да използвате pg_restore команда от командния ред: +ImportPostgreSqlDesc=За да импортирате архивен файл, трябва да използвате pg_restore команда от командния ред: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql FileNameToGenerate=Име на архивния файл: Compression=Компресия -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Задължително, ако искате да сте в състояние да възстановите SQL дъмп по-късно -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=Параметри на MySQL експортирането -PostgreSqlExportParameters= Параметрите на PostgreSQL износ -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Пълния път до mysqldump командата -FullPathToPostgreSQLdumpCommand=Пълна пътека до pg_dump команда -AddDropDatabase=Добави DROP DATABASE команда -AddDropTable=Add DROP TABLE command +CommandsToDisableForeignKeysForImport=Команда за деактивиране на външните ключове при импортиране +CommandsToDisableForeignKeysForImportWarning=Задължително, ако искате да възстановите по-късно вашия SQL dump +ExportCompatibility=Съвместимост на генерирания експортиран файл +MySqlExportParameters=Параметри за експортиране на MySQL +PostgreSqlExportParameters= Параметри за експортиране на PostgreSQL +UseTransactionnalMode=Използване на транзакционен режим +FullPathToMysqldumpCommand=Пълен път до командата mysqldump +FullPathToPostgreSQLdumpCommand=Пълен път до командата pg_dump +AddDropDatabase=Добавяне на команда DROP DATABASE +AddDropTable=Добавяне на команда DROP TABLE ExportStructure=Структура -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal +NameColumn=Имена на колони +ExtendedInsert=Разширен INSERT +NoLockBeforeInsert=Няма команди за заключване около INSERT +DelayedInsert=Закъснял INSERT +EncodeBinariesInHexa=Кодиране на двоични данни в шестнадесетичен формат IgnoreDuplicateRecords=Игнориране на грешки при дублиране на записите (INSERT IGNORE) AutoDetectLang=Автоматично (език на браузъра) -FeatureDisabledInDemo=Feature инвалиди в демо +FeatureDisabledInDemo=Функцията е деактивирана в демо режим FeatureAvailableOnlyOnStable=Функцията се предлага само в официални стабилни версии BoxesDesc=Джаджите са компоненти, показващи информация, които може да добавите, за да персонализирате някои страници. Можете да избирате между показване на джаджата или не, като изберете целевата страница и кликнете върху 'Активиране', или като кликнете върху кошчето, за да я деактивирате. -OnlyActiveElementsAreShown=Показани са само елементи от активирани модули. +OnlyActiveElementsAreShown=Показани са само елементи от активни модули. ModulesDesc=Модулите / приложенията определят кои функции са налични в системата. Някои модули изискват да се предоставят съответните разрешения на потребителите след активиране на модула. Кликнете върху бутона за включване / изключване (в края на реда с името на модула), за да активирате / деактивирате модул / приложение. ModulesMarketPlaceDesc=Може да намерите още модули за изтегляне от външни уеб сайтове в интернет... ModulesDeployDesc=Ако разрешенията във вашата файлова система го позволяват, можете да използвате този инструмент за инсталиране на външен модул. След това модулът ще се вижда в раздела %s. -ModulesMarketPlaces=Намиране на външно приложение/модул -ModulesDevelopYourModule=Разработване на собствено приложение/модул +ModulesMarketPlaces=Намиране на външно приложение / модул +ModulesDevelopYourModule=Разработване на собствено приложение / модул ModulesDevelopDesc=Може също така да разработите свой собствен модул или да намерите партньор, който да го разработи за вас. DOLISTOREdescriptionLong=Вместо да превключите към www.dolistore.com уебсайта, за да намерите външен модул, може да използвате този вграден инструмент, който ще извърши търсенето в страницата вместо вас (може да е бавно, нуждаете се от интернет достъп) ... NewModule=Нов @@ -209,50 +209,50 @@ FreeModule=Свободен CompatibleUpTo=Съвместим с версия %s NotCompatible=Този модул не изглежда съвместим с Dolibarr %s (Мин. %s - Макс. %s). CompatibleAfterUpdate=Този модул изисква актуализация на вашия Dolibarr %s (Min %s - Max %s). -SeeInMarkerPlace=Вижте в сайта за покупка +SeeInMarkerPlace=Вижте в онлайн магазина Updated=Актуализиран Nouveauté=Новост AchatTelechargement=Купуване / Изтегляне GoModuleSetupArea=За да разположите / инсталирате нов модул, отидете в секцията за настройка на модул: %s. -DoliStoreDesc=DoliStore, официалният пазар за външни модули за Dolibarr ERP/CRM +DoliStoreDesc=DoliStore, официалният пазар за Dolibarr ERP / CRM външни модули DoliPartnersDesc=Списък на компаниите, които предоставят разработване по поръчка модули или функции.
Забележка: тъй като Dolibarr е приложение с отворен код, всеки , който има опит в програмирането на PHP, може да разработи модул. WebSiteDesc=Външни уебсайтове за повече модули за добавки (които не са основни)... DevelopYourModuleDesc=Някои решения за разработване на ваш собствен модул... URL=Връзка BoxesAvailable=Налични джаджи BoxesActivated=Активирани джаджи -ActivateOn=Активиране на -ActiveOn=Активирана -SourceFile=Изходният файл -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Предлага се само ако JavaScript не е забранен +ActivateOn=Активирай на +ActiveOn=Активирано на +SourceFile=Изходен файл +AvailableOnlyIfJavascriptAndAjaxNotDisabled=На разположение е само, ако JavaScript не е деактивиран Required=Задължително -UsedOnlyWithTypeOption=Used by some agenda option only +UsedOnlyWithTypeOption=Използва се само от някаква опция на календара Security=Сигурност Passwords=Пароли DoNotStoreClearPassword=Криптиране на пароли, съхранявани в базата данни (НЕ като обикновен текст). Силно се препоръчва да активирате тази опция. MainDbPasswordFileConfEncrypted=Криптиране на паролата за базата данни, съхранена в conf.php. Силно се препоръчва да активирате тази опция. -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"; +InstrucToEncodePass=За да кодирате парола, във файла conf.php заменете реда
$dolibarr_main_db_pass="...";
с
$dolibarr_main_db_pass="crypted:%s"; +InstrucToClearPass=За да декодирате парола, във файла conf.php заменете реда
$dolibarr_main_db_pass="crypted:...";
с
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Защитаване на генерирани PDF файлове. Това НЕ се препоръчва, тъй като прекъсва генерирането на общ PDF. ProtectAndEncryptPdfFilesDesc=Защитата на PDF документ го запазва за четене и печат с всеки PDF браузър. Редактирането и копирането обаче вече не са възможни. Имайте предвид, че използването на тази функция прави изграждането на глобално обединени PDF файлове невъзможно. Feature=Особеност DolibarrLicense=Лиценз -Developpers=Разработчици/сътрудници +Developpers=Разработчици / сътрудници OfficialWebSite=Официален уеб сайт на Dolibarr -OfficialWebSiteLocal=Local web site (%s) +OfficialWebSiteLocal=Локален уеб сайт (%s) OfficialWiki=Документация за Dolibarr / Wiki OfficialDemo=Dolibarr онлайн демо -OfficialMarketPlace=Официален магазин за външни модули/добавки -OfficialWebHostingService=Препоръчителен уеб хостинг услуги (хостинг в интернет облак) -ReferencedPreferredPartners=Preferred Partners +OfficialMarketPlace=Официален онлайн магазин за външни модули / добавки +OfficialWebHostingService=Уеб хостинг услуги (облачни услуги) +ReferencedPreferredPartners=Предпочитани партньори OtherResources=Други ресурси ExternalResources=Външни ресурси SocialNetworks=Социални мрежи -ForDocumentationSeeWiki=Документация за потребител или разработчик (Doc, често задавани въпроси ...),
можете да намерите в Dolibarr Wiki:
%s -ForAnswersSeeForum=За всякакви други въпроси / Помощ, можете да използвате форума Dolibarr:
%s +ForDocumentationSeeWiki=За потребителска документация и такава за разработчици (документи, често задавани въпроси,...),
погледнете в Dolibarr Wiki:
%s +ForAnswersSeeForum=За всякакви други въпроси / помощ може да използвате Dolibarr форума:
%s HelpCenterDesc1=Ето някои ресурси за получаване на помощ и подкрепа с Dolibarr. HelpCenterDesc2=Някои от тези ресурси са налице само на английски . -CurrentMenuHandler=Текущото меню манипулатор +CurrentMenuHandler=Текущ манипулатор на менюто MeasuringUnit=Мерна единица LeftMargin=Лява граница TopMargin=Горна граница @@ -293,27 +293,27 @@ MAIN_MAIL_SMS_FROM=Телефонен номер по подразбиране MAIN_MAIL_DEFAULT_FROMTYPE=Имейл на подателя по подразбиране при ръчно изпращане на имейли (имейл на потребител или имейл на фирмата) UserEmail=Имейл на потребител CompanyEmail=Имейл на фирмата -FeatureNotAvailableOnLinux=Функцията не е на разположение на Unix подобни системи. Тествайте вашата програма Sendmail на местно ниво. +FeatureNotAvailableOnLinux=Функцията не е налична в Unix подобни системи. Тествайте вашата програма Sendmail локално. SubmitTranslation=Ако преводът за този език не е завършен или сте открили грешки, може да ги коригирате като редактирате файловете в директорията langs/ %s и предоставите вашите промени в www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Ако преводът за този език не е завършен или ако сте открили грешки, може да коригирате това, като редактирате файлове в директорията langs/ %s и предоставите вашите промени на dolibarr.org/forum или за разработчици на github.com/Dolibarr/dolibarr. -ModuleSetup=Настройки на модул +ModuleSetup=Настройка на модул ModulesSetup=Настройка на Модули / Приложения ModuleFamilyBase=Система ModuleFamilyCrm=Управление на взаимоотношения с клиенти (CRM) ModuleFamilySrm=Управление на взаимоотношения с доставчици (VRM) ModuleFamilyProducts=Управление на продукти (PM) -ModuleFamilyHr=Управление на човешките ресурси -ModuleFamilyProjects=Проекти / съвместна работа -ModuleFamilyOther=Друг -ModuleFamilyTechnic=Mutli модули инструменти +ModuleFamilyHr=Управление на човешки ресурси (ЧР) +ModuleFamilyProjects=Проекти / Съвместна работа +ModuleFamilyOther=Други +ModuleFamilyTechnic=Мулти-модулни инструменти ModuleFamilyExperimental=Експериментални модули -ModuleFamilyFinancial=Финансови Модули (Счетоводство/Каса) -ModuleFamilyECM=Електронно Управление на Съдържанието (ECM) +ModuleFamilyFinancial=Финансови модули (Счетоводство / Каса) +ModuleFamilyECM=Управление на електронно съдържание (ECM) ModuleFamilyPortal=Уеб сайтове и други фронтални приложения -ModuleFamilyInterface=Интерфейси със външни системи. -MenuHandlers=Меню работещи -MenuAdmin=Menu Editor -DoNotUseInProduction=Не използвайте на продукшън платформа +ModuleFamilyInterface=Интерфейси с външни системи +MenuHandlers=Меню манипулатори +MenuAdmin=Меню редактор +DoNotUseInProduction=Да не се използва в производство ThisIsProcessToFollow=Процедура за актуализация: ThisIsAlternativeProcessToFollow=Това е алтернативна настройка за ръчно обработване: StepNb=Стъпка %s @@ -332,52 +332,52 @@ LastStableVersion=Последна стабилна версия LastActivationDate=Последна дата на активиране LastActivationAuthor=Последен автор на активирането LastActivationIP=Последно активиране от IP адрес -UpdateServerOffline=Update server offline +UpdateServerOffline=Актуализиране на сървъра офлайн WithCounter=Управление на брояч -GenericMaskCodes=Можете да въведете всяка маска за номериране. В тази маска, могат да се използват следните тагове:
{000000} съответства на номер, който се увеличава на всеки %s. Влез като много нули като желаната дължина на брояча. Броячът ще бъде завършен с нули от ляво, за да има колкото се може повече нули като маска.
{000000 000} същата като предишната, но компенсира, съответстваща на броя на правото на знака + се прилага започва на първи %s.
{000000 @} същата като предишната, но броячът се нулира, когато месеца Х е достигнал (Х между 1 и 12, или 0, за да използвате началото на месеца на фискалната година, определени в вашата конфигурация). Ако тази опция се използва и х е 2 или по-висока, тогава последователност {гг} {mm} или {гггг} {mm} също е задължително.
{DD} ден (01 до 31).
{Mm} месец (01 до 12).
{Гг} {гггг} или {Y} година над 2, 4 или 1 брой.
+GenericMaskCodes=Може да въведете всяка маска за номериране. В тази маска, могат да се използват следните тагове:
{000000} съответства на номер, който ще се увеличава на всеки %s. Въведете толкова нули, колкото е желаната дължина на брояча. Броячът ще бъде запълнен с нули от ляво, за да има толкова нули, колкото и в маската.
{000000+000} същото като в предишния случай, но започва отместване, съответстващо на номера отдясно на знака +, считано от първия %s.
{000000@x} същото като в предишния случай, но броячът се нулира, когато месецът Х е достигнат (Х между 1 и 12, или 0, за да използвате началото на месеца на фискалната година, определени в вашата конфигурация или 99, за да нулирате брояча всеки месец). Ако тази опция се използва и X е 2 или по-висока, to тогава последователностa {гг}{mm} или {гггг}{mm} също е задължителна.
{дд} ден (01 до 31).
{мм} месец (01 до 12).
{гг}, {гггг} година от 2 или 4 цифри.
GenericMaskCodes2= {cccc} клиентският код на n знака
{cccc000} клиентският код на n знака е последван от брояч, предназначен за клиента. Този брояч е предназначен за клиента и се нулира едновременно от глобалния брояч.
{tttt} Кодът на контрагента с n знака (вижте менюто Начало - Настройка - Речник - Видове контрагенти). Ако добавите този таг, броячът ще бъде различен за всеки тип контрагент.
-GenericMaskCodes3=Всички други символи на маската ще останат непокътнати.
Интервалите не са разрешени.
+GenericMaskCodes3=Всички други символи в маската ще останат непокътнати.
Не са разрешени интервали.
GenericMaskCodes4a= Пример за 99-я %s контрагент TheCompany, с дата 2007-01-31:
-GenericMaskCodes4b=Пример за контрагент е създаден на 2007-03-01:
+GenericMaskCodes4b=Пример за контрагент, създаден на 2007-03-01:
GenericMaskCodes4c=Пример за продукт, създаден на 2007-03-01:
GenericMaskCodes5=ABC{yy}{mm}-{000000} ще даде ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX ще даде 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} ще даде IN0701-0099-A Ако типа на фирмата е 'Responsable Inscripto' с код за този тип, който е 'A_RI' -GenericNumRefModelDesc=Върнете адаптивни номер според определен маска. -ServerAvailableOnIPOrPort=Сървъра е достъпен на адрес %s , порт %s -ServerNotAvailableOnIPOrPort=Сървъра не е достъпен на адрес %s , порт %s -DoTestServerAvailability=Тестване на сързаността със сървъра -DoTestSend=Тестване изпращането -DoTestSendHTML=Тестване изпращането на HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Грешка, не могат да използват @ опция, ако последователност {гг} {mm} или {гггг} {mm} не е маска. -UMask=Umask параметър за нови файлове в Unix / Linux / BSD файловата система. -UMaskExplanation=Този параметър ви позволи да се определят правата, определени по подразбиране на файлове, създадени от Dolibarr на сървъра (по време на качването например).
Тя трябва да бъде осмична стойност (например, 0666 средства четат и пишат за всеки).
Този параметър е безполезно на предприятието на сървъра на Windows. +GenericNumRefModelDesc=Връща персонализирано число според определена маска. +ServerAvailableOnIPOrPort=Сървърът е достъпен на адрес %s с порт %s +ServerNotAvailableOnIPOrPort=Сървърът не е достъпен на адрес %s с порт %s +DoTestServerAvailability=Тестване на връзката със сървъра +DoTestSend=Тестово изпращане +DoTestSendHTML=Тестово изпращане на HTML +ErrorCantUseRazIfNoYearInMask=Грешка, не може да се използва опция @, за да нулирате брояча всяка година, ако последователността {yy} или {yyyy} не е в маската. +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Грешка, не може да се използва опция @, ако последователността {yy}{mm} или {yyyy}{mm} не са в маската. +UMask=UMask параметър за нови файлове на Unix / Linux / BSD / Mac файлова система. +UMaskExplanation=Този параметър ви позволява да дефинирате права, зададени по подразбиране на файлове, които са създадени от Dolibarr на сървъра (например при качване).
Необходимо е да бъде в осмична стойност (например 0666 означава четене и запис за всички).
Този параметър е безполезен на Windows сървър. SeeWikiForAllTeam=Разгледайте страницата на Wiki за списък на сътрудниците и тяхната организация -UseACacheDelay= Забавяне за кеширане износ отговор в секунда (0 или празно за не кеш) -DisableLinkToHelpCenter=Скриване на връзката Нуждаете се от помощ или поддръжка от страницата за вход -DisableLinkToHelp=Скриване на линка към онлайн помощ "%s" +UseACacheDelay= Забавяне при кеширане на отговора за експорт в секунди (0 или празно, за да не се използва кеш) +DisableLinkToHelpCenter=Скриване на връзка „Нуждаете се от помощ или поддръжка?“ в страницата за вход +DisableLinkToHelp=Скриване на връзка към онлайн помощ "%s" AddCRIfTooLong=Няма автоматично пренасяне на текст, текстът, който е твърде дълъг, няма да се показва на документи. Моля, добавете нови редове в текста, ако е необходимо. ConfirmPurge=Наистина ли искате да изпълните това прочистване?
Това ще изтрие за постоянно всичките ви файлове с данни без начин да ги възстановите (ECM файлове, прикачени файлове ...). MinLength=Минимална дължина -LanguageFilesCachedIntoShmopSharedMemory=Файлове. Lang заредени в споделена памет +LanguageFilesCachedIntoShmopSharedMemory=Файлове .lang са заредени в споделена памет LanguageFile=Езиков файл ExamplesWithCurrentSetup=Примери с текуща конфигурация -ListOfDirectories=Списък на OpenDocument директории шаблони -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. +ListOfDirectories=Списък на директории с OpenDocument шаблони +ListOfDirectoriesForModelGenODT=Списък на директории, съдържащи файлове с шаблони във формат OpenDocument.

Попълнете тук пълния път на директориите.
Добавете нов ред за всяка директория.
За да включите директория на GED модула, добавете тук DOL_DATA_ROOT/ecm/yourdirectoryname.

Файловете в тези директории трябва да завършват на .odt или .ods. NumberOfModelFilesFound=Брой файлове с шаблони за ODT/ODS, намерени в тези директории -ExampleOfDirectoriesForModelGen=Примери на синтаксиса:
C: \\ mydir
/ Начало / mydir
DOL_DATA_ROOT / ECM / ecmdir -FollowingSubstitutionKeysCanBeUsed=
За да разберете как да създадете свои ODT шаблони на документи, преди да ги съхранявате в тези указатели, прочетете уики документация: +ExampleOfDirectoriesForModelGen=Примери за синтаксис:
C:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
За да узнаете как да създадете вашите ODT шаблони за документи преди да ги съхраните в тези директории прочетете Wiki документацията: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Позиция на Име/Фамилия +FirstnameNamePosition=Позиция на име / фамилия DescWeather=Следните изображения ще бъдат показани на таблото, когато броят на закъснелите действия достигне следните стойности: -KeyForWebServicesAccess=Ключът към използване на Web Services (параметър "dolibarrkey" в WebServices) -TestSubmitForm=Формата на входящ тест +KeyForWebServicesAccess=Ключ за използване на уеб услуги (параметър "dolibarrkey" в уеб услуги) +TestSubmitForm=Формуляр за тестване на входа ThisForceAlsoTheme=С използването на този меню мениджър ще се използва и собствената му тема независимо от избора на потребителя. Също така специализирания за смартфони меню мениджър може да не работи на всички смартфони. Използвайте друг мениджър на менюто, ако имате проблеми с вашия. -ThemeDir=Директория с темите +ThemeDir=Директория с теми ConnectionTimeout=Прекъсване на връзката -ResponseTimeout=Отговор изчакване -SmsTestMessage=Тест съобщение от __ PHONEFROM__ __ PHONETO__ -ModuleMustBeEnabledFirst=Модул %s трябва да бъде активиран първо ако се нуждаете от тази опция. -SecurityToken=Ключът за осигуряване на сигурна URL адреси +ResponseTimeout=Таймаут на отговора +SmsTestMessage=Тестово съобщение от __PHONEFROM__ до __PHONETO__ +ModuleMustBeEnabledFirst=Модулът %s трябва да бъде активиран първо, ако имате нужда от тази функция. +SecurityToken=Ключ за защитени URL адреси NoSmsEngine=Няма наличен мениджър за подател на SMS. Мениджърът на подателя на SMS не е инсталиран по подразбиране, защото зависи от външен доставчик, но можете да намерите някои от тях на адрес %s PDF=PDF PDFDesc=Глобални настройки за генериране на PDF. @@ -391,14 +391,14 @@ HideRefOnPDF=Скриване на реф. номер на продукти HideDetailsOnPDF=Скриване на подробности за продуктовите линии PlaceCustomerAddressToIsoLocation=Използвайте френска стандартна позиция (La Poste) за позиция на клиентския адрес Library=Библиотека -UrlGenerationParameters=Параметри за осигуряване на URL адреси -SecurityTokenIsUnique=Използвайте уникална параметър securekey за всеки URL -EnterRefToBuildUrl=Въведете справка за обект %s -GetSecuredUrl=Изчислява URL +UrlGenerationParameters=Параметри за защитени URL адреси +SecurityTokenIsUnique=Използвайте уникален параметър за защитен ключ за всеки URL адрес +EnterRefToBuildUrl=Въведете референция за обект %s +GetSecuredUrl=Получете изчисления URL адрес ButtonHideUnauthorized=Скриване на бутоните за потребители, които не са администратори, вместо показване на сиви бутони. -OldVATRates=Old ставка на ДДС -NewVATRates=Нов ставка на ДДС -PriceBaseTypeToChange=Промяна на цените с база референтна стойност, определена на +OldVATRates=Първоначална ставка на ДДС +NewVATRates=Нова ставка на ДДС +PriceBaseTypeToChange=Промяна на цените с базова референтна стойност, определена на MassConvert=Стартиране на групово превръщане String=Низ TextLong=Дълъг текст @@ -406,22 +406,24 @@ HtmlText=HTML текст Int=Цяло число Float=Десетично число DateAndTime=Дата и час -Unique=Уникално +Unique=Уникален Boolean=Булева (едно квадратче за отметка) ExtrafieldPhone = Телефон ExtrafieldPrice = Цена ExtrafieldMail = Имейл ExtrafieldUrl = URL -ExtrafieldSelect = Избор лист -ExtrafieldSelectList = Избор от таблица +ExtrafieldSelect = Изберете списък +ExtrafieldSelectList = Изберете от таблицата ExtrafieldSeparator=Разделител (не е поле) ExtrafieldPassword=Парола ExtrafieldRadio=Радио бутони (само един избор) ExtrafieldCheckBox=Полета за отметка ExtrafieldCheckBoxFromList=Отметки от таблица -ExtrafieldLink=Link to an object +ExtrafieldLink=Връзка към обект ComputedFormula=Изчислено поле ComputedFormulaDesc=Тук можете да въведете формула, използвайки други свойства на обекта или PHP код, за да получите динамична изчислена стойност. Можете да използвате всички съвместими с PHP формули, включително "?" условен оператор и следния глобален обект: $db, $conf, $langs, $mysoc, $user, $object.
ВНИМАНИЕ: Може да са налице само някои свойства на $object. Ако ви трябват свойства, които не са заредени, просто вземете сами обекта във вашата формула като във втория пример.
Използването на изчислено поле означава, че не можете да въведете никаква стойност от интерфейса. Също така, ако има синтактична грешка, формулата може да не върне нищо.

Пример за формула:
$object->id<10 ? round($object>id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($ mysoc->zip, 1, 2)

Пример за презареждане на обект
(($reloadedobj = new Societe ($db)) && ($reloadedobj->fetch ($obj->id ? $obj->id:($ obj->rowid ? $obj->rowid: $object->id )) > 0)) ? $reloadedobj->array_options ['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

Друг пример за формула за натоварване на обекта и неговия главен обект:
(($reloadedobj = new Task ($db)) && ($reloadedobj->fetch ($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch ($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' +Computedpersistent=Запазване на изчисленото поле +ComputedpersistentDesc=Изчислените допълнителни полета ще бъдат съхранени в базата данни, но стойността ще бъде преизчислена само когато обектът на това поле бъде променен. Ако изчисленото поле зависи от други обекти или глобални данни, тази стойност може да е грешна!! ExtrafieldParamHelpPassword=Оставяйки това поле празно означава, че тази стойност ще бъде съхранена без криптиране (полето трябва да бъде скрито само със звезда на екрана).
Задайте „auto“, за да използвате правилото за криптиране по подразбиране, за да запазите паролата в базата данни (тогава стойността за четене ще бъде само за хеш, няма начин да извлечете оригиналната стойност) ExtrafieldParamHelpselect=Списъкът със стойности трябва да бъде във формат key,value (където key не може да бъде '0';)

например:
1,value1
2,value2
code3,value3
...

За да имате списъка в зависимост от друг допълнителен списък с атрибути:
1,value1|options_ parent_list_code:parent_key
2,value2|options_ parent_list_code:parent_key

За да имате списъка в зависимост от друг списък:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Списъкът със стойности трябва да бъде във формат key,value (където key не може да бъде '0')

например:
1,value1
2,value2
3,value3
... @@ -429,24 +431,25 @@ ExtrafieldParamHelpradio=Списъкът със стойности трябва ExtrafieldParamHelpsellist=Списъкът на стойностите идва от таблица
Синтаксис: table_name:label_field:id_field::filter
Пример: c_typent: libelle:id::filter

- idfilter е задължително основен int key
- филтърът може да бъде прост тест (например active = 1), за да се покаже само активна стойност
Може също да използвате $ID$ във филтъра, който е текущият идентификатор на текущия обект.
За да направите SELECT във филтъра, използвайте $SEL$
ако искате да филтрирате по допълнителни полета, използвайте синтаксис extra.fieldcode=...(където кодът на полето е кодът на допълнителното поле)

За да имате списъка в зависимост от друг допълнителен списък с атрибути:
c_typent:libelle:id:options_ parent_list_code|parent_column:филтер

За да имате списъка в зависимост от друг списък:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=Списъкът на стойностите идва от таблица
Синтаксис: table_name:label_field:id_field::filter
Пример: c_typent:libelle:id::filter

филтърът може да бъде прост тест (например active = 1), за да се покаже само активна стойност
Можете също да използвате $ID$ във филтъра, който е текущият идентификатор на текущия обект
За да направите SELECT във филтъра, използвайте $SEL$
ако искате да филтрирате по допълнителни полета, използвайте синтаксис extra.fieldcode=...(където кодът на полето е кодът на екстра полето)

За да имате списъка в зависимост от друг допълнителен списък с атрибути:
c_typent:libelle:id:options_ parent_list_code|parent_column:filter

За да имате списъка в зависимост от друг списък:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Параметрите трябва да са ObjectName:Classpath
Синтаксис: ObjectName:Classpath
Примери:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Оставете празно за обикновен разделител
Задайте това на 1 за разделител, който се свива (отворен по подразбиране)
Задайте това на 2 за разделител, който се свива (свит по подразбиране). LibraryToBuildPDF=Използвана библиотека за създаване на PDF файлове LocalTaxDesc=Някои държави могат да прилагат два или три данъка към всеки ред във фактурата. Ако случаят е такъв, изберете вида на втория и третия данък и съответната данъчна ставка. Възможен тип са:
1: местен данък върху продукти и услуги без ДДС (местния данък се изчислява върху сумата без данък)
2: местен данък върху продукти и услуги с ДДС (местният данък се изчислява върху сумата + основния данък)
3: местен данък върху продукти без ДДС (местният данък се изчислява върху сумата без данък)
4: местен данък върху продукти с ДДС (местният данък се изчислява върху сумата + основния данък)
5: местен данък върху услуги без ДДС (местният данък се изчислява върху сумата без данък)
6: местен данък върху услуги с ДДС (местният данък се изчислява върху сумата + основния данък) SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Обнови връзка -LinkToTest=Генерирана е връзка за потребител %s (натиснете телефонния номер за тест) -KeepEmptyToUseDefault=Оставете празно за стойност по подразбиране +LinkToTestClickToDial=Въведете телефонен номер, за да се обадите и да тествате URL адреса на ClickToDial за потребител %s +RefreshPhoneLink=Обновяване на връзка +LinkToTest=Генерирана е връзка за потребител %s (кликнете върху телефонния номер, за да тествате) +KeepEmptyToUseDefault=Оставете празно, за да използвате стойността по подразбиране DefaultLink=Връзка по подразбиране SetAsDefault=Задайте по подразбиране -ValueOverwrittenByUserSetup=Внимание, тази стойност може да бъде презаписана от потребителски настройки (всеки потребител може да зададе собствен натисни-набери адрес) +ValueOverwrittenByUserSetup=Внимание, тази стойност може да бъде презаписана от специфична за потребителя настройка (всеки потребител може да зададе свой собствен URL адрес) ExternalModule=Външен модул - инсталиран в директория %s BarcodeInitForthird-parties=Масова баркод инициализация за контрагенти -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services +BarcodeInitForProductsOrServices=Масово въвеждане на баркод или зануляване за продукти или услуги CurrentlyNWithoutBarCode=В момента имате %s записа на %s %s без дефиниран баркод. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values +InitEmptyBarCode=Първоначална стойност за следващите %s празни записа +EraseAllCurrentBarCode=Изтриване на всички текущи стойности на баркода ConfirmEraseAllCurrentBarCode=Сигурни ли сте че, искате да изтриете всички текущи стойности на баркода? -AllBarcodeReset=All barcode values have been removed +AllBarcodeReset=Всички стойности на баркода са премахнати NoBarcodeNumberingTemplateDefined=Няма активиран баркод шаблон за номериране в настройката на баркод модула. EnableFileCache=Активиране на файлово кеширане ShowDetailsInPDFPageFoot=Добавете още подробности във футъра, като адрес на компанията или името на управителя (в допълнение към професионалните идентификационни номера, капитала на компанията и идентификационния номер по ДДС). @@ -495,16 +498,16 @@ Module0Name=Потребители и групи Module0Desc=Управление на потребители / служители и групи Module1Name=Контрагенти Module1Desc=Управление на фирми и контакти (клиенти, възможности...) -Module2Name=Търговски +Module2Name=Търговия Module2Desc=Търговско управление Module10Name=Счетоводство (опростено) Module10Desc=Опростени счетоводни отчети (дневник, оборот) въз основа на съдържанието в базата данни. Не използва сметкоплан. Module20Name=Предложения -Module20Desc=Търговско предложение управление +Module20Desc=Управление на търговски предложения Module22Name=Масови имейли Module22Desc=Управление на масови имейли Module23Name=Енергия -Module23Desc=Наблюдение на консумацията на енергия +Module23Desc=Мониторинг на потреблението на енергия Module25Name=Поръчки за продажба Module25Desc=Управление на поръчки за продажба Module30Name=Фактури @@ -514,49 +517,49 @@ Module40Desc=Управление на доставчици и покупки ( Module42Name=Журнали за отстраняване на грешки Module42Desc=Инструменти за регистриране (файл, syslog, ...). Дневници за технически цели и отстраняване на грешки. Module49Name=Редактори -Module49Desc=Управление на редактор +Module49Desc=Управление на редактори Module50Name=Продукти Module50Desc=Управление на продукти Module51Name=Масови имейли -Module51Desc=Маса управлението на хартия пощенски -Module52Name=Запаси +Module51Desc=Управление на масови хартиени пощенски пратки +Module52Name=Наличности Module52Desc=Управление на наличности (само за продукти) Module53Name=Услуги Module53Desc=Управление на услуги -Module54Name=Договори/Абонаменти +Module54Name=Договори / Абонаменти Module54Desc=Управление на договори (услуги или периодични абонаменти) Module55Name=Баркодове -Module55Desc=Управление на баркод +Module55Desc=Управление на баркодове Module56Name=Телефония -Module56Desc=Телефония интеграция +Module56Desc=Интеграция на телефония Module57Name=Банкови плащания с директен дебит Module57Desc=Управление на платежни нареждания за директен дебит. Включва генериране на SEPA файл за европейските страни. Module58Name=ClickToDial -Module58Desc=Интеграция на ClickToDial система (Asterisk, ...) +Module58Desc=Интегриране на система ClickToDial (Asterisk, ...) Module59Name=Bookmark4u -Module59Desc=Добавяне на функция за генериране на Bookmark4u сметка от сметка Dolibarr -Module70Name=Интервенциите -Module70Desc=Управление на интервенциите -Module75Name=Разход и пътуване бележки -Module75Desc=Сметка и управление на пътуване бележки -Module80Name=Превозите +Module59Desc=Добавяне на функция за генериране на Bookmark4u профил от Dolibarr профил +Module70Name=Интервенции +Module70Desc=Управление на интервенции +Module75Name=Бележки за разходи и пътувания +Module75Desc=Управление на бележки за разходи и пътувания +Module80Name=Пратки Module80Desc=Управление на пратки и документи за доставка Module85Name=Банки и пари в брой -Module85Desc=Управление на банкови или парични сметки +Module85Desc=Управление на банкови или касови сметки Module100Name=Външен сайт Module100Desc=Добавяне на връзка към външен уебсайт като икона в главното меню. Уебсайтът се показва в рамка под горното меню. -Module105Name=Пощальон и СПИП -Module105Desc=Пощальон или СПИП интерфейс за член модул +Module105Name=Mailman / SPIP +Module105Desc=Mailman / SPIP интерфейс за модул членове Module200Name=LDAP Module200Desc=Синхронизиране на LDAP директория Module210Name=PostNuke -Module210Desc=PostNuke интеграция -Module240Name=Данни износ +Module210Desc=Интегриране на PostNuke +Module240Name=Експорт на данни Module240Desc=Инструмент за експортиране на данни от Dolibarr (с асистенти) -Module250Name=Импортирането на данни +Module250Name=Импорт на данни Module250Desc=Инструмент за импортиране на данни в Dolibarr (с асистенти) Module310Name=Членове -Module310Desc=Управление на членовете на организацията +Module310Desc=Управление на членове на организация Module320Name=RSS емисия Module320Desc=Добавяне на RSS емисия към страниците на Dolibarr Module330Name=Отметки и кратки пътища @@ -564,13 +567,13 @@ Module330Desc=Създаване на достъпни кратки пътища Module400Name=Проекти или възможности Module400Desc=Управление на проекти, възможности / потенциални клиенти и / или задачи. Свързване на елементи (фактури, поръчки, предложения, интервенции, ...) към проект, с цел получаване на общ преглед за проекта Module410Name=Webcalendar -Module410Desc=Webcalendar интеграция +Module410Desc=Интегриране на Webcalendar Module500Name=Данъци и специални разходи Module500Desc=Управление на други разходи (ДДС, социални или фискални данъци, дивиденти, ...) Module510Name=Заплати Module510Desc=Записване и проследяване на плащанията към служители Module520Name=Кредити -Module520Desc=Management of loans +Module520Desc=Управление на кредити Module600Name=Известия Module600Desc=Изпращане на известия по имейл, предизвикани от дадено събитие: за потребител (настройка, определена за всеки потребител), за контакти на контрагенти (настройка, определена за всеки контрагент) или за определени имейли Module600Long=Имайте предвид, че този модул изпраща имейли в реално време, когато настъпи дадено събитие. Ако търсите функция за изпращане на напомняния по имейл за събития от календара отидете в настройката на модула Календар. @@ -582,15 +585,15 @@ Module770Name=Разходни отчети Module770Desc=Управление на искания за разходи (транспорт, храна, ...) Module1120Name=Запитвания към доставчици Module1120Desc=Управление на запитвания към доставчици за цени и условия на доставка -Module1200Name=Богомолка -Module1200Desc=Mantis интеграция -Module1520Name=Document Generation +Module1200Name=Mantis +Module1200Desc=Интегриране на Mantis +Module1520Name=Генериране на документи Module1520Desc=Генериране на документи за масови имейли -Module1780Name=Tags/Categories +Module1780Name=Тагове / Категории Module1780Desc=Създаване на етикети / категории (за продукти, клиенти, доставчици, контакти или членове) Module2000Name=WYSIWYG редактор Module2000Desc=Разрешаване на редактиране / форматиране на текстовите полета с помощта на CKEditor (html) -Module2200Name=Dynamic Prices +Module2200Name=Динамични цени Module2200Desc=Използване на математически изрази за автоматично генериране на цени Module2300Name=Планирани задачи Module2300Desc=Управление на планирани задачи (cron или chrono таблица) @@ -598,24 +601,24 @@ Module2400Name=Събития / Календар Module2400Desc=Проследяване на събития. Регистриране на автоматични събития с цел проследяване или записване на ръчни събития или срещи. Това е основният модул за добро управление на взаимоотношенията с клиенти и доставчици. Module2500Name=Документи / Съдържание Module2500Desc=Система за управление на документи / Управление на електронно съдържание. Автоматична организация на вашите генерирани или съхранени документи. Споделяне на документи. -Module2600Name=API services (Web services SOAP) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API services (Web services REST) -Module2610Desc=Enable the Dolibarr REST server providing API services +Module2600Name=API / Web услуги (SOAP сървър) +Module2600Desc=Активиране на Dolibarr SOAP сървър, предоставящ API услуги +Module2610Name=API / Web услуги (REST сървър) +Module2610Desc=Активиране на Dolibarr REST сървър, предоставящ API услуги Module2660Name=Извикване на WebServices (SOAP клиент) Module2660Desc=Активиране на Dollibarr клиент за уеб услуги (Може да се използва за препращане на данни / заявки към външни сървъри. Понастоящем се поддържат само поръчки за покупка.) Module2700Name=Gravatar Module2700Desc=Онлайн услуга Gravatar (www.gravatar.com), която показва снимка на потребители / членове (открита, чрез техните имейли). Нуждае се от достъп до интернет. -Module2800Desc=FTP Клиент +Module2800Desc=FTP клиент Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP MaxMind реализации възможности +Module2900Desc=GeoIP Maxmind възможности за преобразуване Module3200Name=Неизменими архиви Module3200Desc=Непроменлив дневник на бизнес събития. Събитията се архивират в реално време. Дневникът е таблица, достъпна единствено за четене, която съдържа последователни събития, които могат да бъдат експортирани. Този модул може да е задължителен за някои страни. Module4000Name=ЧР Module4000Desc=Управление на човешки ресурси (управление на отдел, договори и настроения на служители) Module5000Name=Няколко фирми -Module5000Desc=Позволява ви да управлявате няколко фирми -Module6000Name=Workflow +Module5000Desc=Управление на няколко фирми +Module6000Name=Работен процес Module6000Desc=Управление на работен процес (автоматично създаване на обект и / или автоматично промяна на неговия статус) Module10000Name=Уебсайтове Module10000Desc=Създаване на уебсайтове (публични) с WYSIWYG редактор. Просто настройте вашия уеб сървър (Apache, Nginx, ...), за да посочите специалната директория на Dolibarr, за да бъдат онлайн в интернет с определеното за целта име на домейн. @@ -625,7 +628,7 @@ Module39000Name=Продуктови партиди Module39000Desc=Управление на партиди, серийни номера, дати използвай преди / продавай до Module40000Name=Различни валути Module40000Desc=Използване на алтернативни валути в цени и документи -Module50000Name=Paybox +Module50000Name=PayBox Module50000Desc=Предлага на клиентите PayBox страница за онлайн плащане (чрез кредитни / дебитни карти). Позволява на клиентите да извършват необходими плащания или плащания, свързани с определен Dolibarr обект (фактура, поръчка и т.н.) Module50100Name=ПОС SimplePOS Module50100Desc=Точка за продажба SimplePOS (опростен ПОС) @@ -639,99 +642,99 @@ Module50400Name=Счетоводство (двойно записване) Module50400Desc=Управление на счетоводство (двойни вписвания, поддържат се общи и спомагателни счетоводни книги). Експортиране на счетоводната книга в други формати за счетоводен софтуер. Module54000Name=PrintIPP Module54000Desc=Директен печат (без отваряне на документи), чрез използване на Cups IPP интерфейс (Принтерът трябва да се вижда от сървъра, a CUPS трябва да бъде инсталиран на сървъра). -Module55000Name=Poll, Survey or Vote +Module55000Name=Анкети, проучвания и гласоподаване Module55000Desc=Създаване на онлайн анкети, проучвания или гласувания (като Doodle, Studs, RDVz и др.) -Module59000Name=Полета -Module59000Desc=Модул за управление на маржовете -Module60000Name=Комисии -Module60000Desc=Модул за управление на комисии +Module59000Name=Маржове +Module59000Desc=Управление на маржове +Module60000Name=Комисионни +Module60000Desc=Управление на комисионни Module62000Name=Условия на доставка Module62000Desc=Добавяне на функции за управление на Инкотермс (условия на доставка) Module63000Name=Ресурси Module63000Desc=Управление на ресурси (принтери, коли, стаи, ...) с цел разпределяне по събития -Permission11=Клиентите фактури -Permission12=Създаване / промяна на фактури на клиентите -Permission13=Unvalidate клиентите фактури -Permission14=Проверка на клиентите фактури -Permission15=Изпрати на клиентите фактури по имейл -Permission16=Създаване на плащания за клиентите фактури -Permission19=Изтриване на клиентите фактури -Permission21=Търговски предложения +Permission11=Преглед на фактури за продажба +Permission12=Създаване / промяна на фактури на продажба +Permission13=Анулиране на фактури за продажба +Permission14=Валидиране на фактури за продажба +Permission15=Изпращане на фактури за продажба по имейл +Permission16=Създаване на плащания по фактури за продажба +Permission19=Изтриване на фактури за продажба +Permission21=Преглед на търговски предложения Permission22=Създаване / промяна на търговски предложения -Permission24=Проверка на търговски предложения +Permission24=Валидиране на търговски предложения Permission25=Изпращане на търговски предложения -Permission26=Затворете търговски предложения +Permission26=Приключване на търговски предложения Permission27=Изтриване на търговски предложения -Permission28=Износ търговски предложения -Permission31=Прочети продукти +Permission28=Експортиране на търговски предложения +Permission31=Преглед на продукти Permission32=Създаване / промяна на продукти Permission34=Изтриване на продукти Permission36=Преглед / управление на скрити продукти -Permission38=Износ на продукти +Permission38=Експортиране на продукти Permission41=Преглед на проекти и задачи (споделени проекти и проекти, в които съм определен за контакт). Въвеждане на отделено време, за служителя или неговите подчинени, по възложени задачи (График) Permission42=Създаване / редактиране на проекти (споделени проекти и проекти, в които съм определен за контакт). Създаване на задачи и възлагане на проекти и задачи на потребители Permission44=Изтриване на проекти (споделени проекти и проекти, в които съм определен за контакт) Permission45=Експортиране на проекти -Permission61=Прочети интервенции +Permission61=Преглед на интервенции Permission62=Създаване / промяна на интервенции Permission64=Изтриване на интервенции -Permission67=Износ интервенции -Permission71=Прочети членове +Permission67=Експортиране на интервенции +Permission71=Преглед на членове Permission72=Създаване / промяна на членове -Permission74=Изтриване на членовете -Permission75=Setup types of membership +Permission74=Изтриване на членове +Permission75=Настройка на видове членство Permission76=Експортиране на данни -Permission78=Прочети абонаменти -Permission79=Създаване/промяна на абонаменти -Permission81=Клиенти поръчки -Permission82=Създаване / промяна клиенти поръчки -Permission84=Проверка на клиенти поръчки -Permission86=Изпрати клиенти поръчки -Permission87=Затваряне на поръчките на клиентите -Permission88=Отказ клиенти поръчки -Permission89=Изтриване на клиенти поръчки -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Прочети доклада -Permission101=Прочети sendings -Permission102=Създаване / промяна sendings -Permission104=Проверка на sendings -Permission106=Export sendings -Permission109=Изтриване sendings -Permission111=Финансови сметки -Permission112=Създаване / редакция / изтриване и сравни сделки -Permission113=Setup financial accounts (create, manage categories) +Permission78=Преглед на абонаменти +Permission79=Създаване / промяна на абонаменти +Permission81=Преглед на поръчки за продажба +Permission82=Създаване / промяна на поръчки за продажба +Permission84=Валидиране на поръчки за продажба +Permission86=Изпращане на поръчки за продажба +Permission87=Приключване на поръчки за продажба +Permission88=Анулиране на поръчки за продажба +Permission89=Изтриване на поръчки за продажба +Permission91=Преглед на социални или фискални данъци и ДДС +Permission92=Създаване / промяна на социални или фискални данъци и ДДС +Permission93=Изтриване на социални или фискални данъци и ДДС +Permission94=Експортиране на социални или фискални данъци +Permission95=Преглед на справки +Permission101=Преглед на изпращания +Permission102=Създаване / промяна на изпращания +Permission104=Валидиране на изпращания +Permission106=Експортиране на изпращания +Permission109=Изтриване на изпращания +Permission111=Преглед на финансови сметки +Permission112=Създаване / промяна / изтриване и сравняване на транзакции +Permission113=Настройка на финансови сметки (създаване, управление на категории) Permission114=Съгласуване на транзакции -Permission115=Експортни сделки и извлеченията от сметките -Permission116=Трансфери между сметки +Permission115=Експортиране на транзакции и извлечения по сметка +Permission116=Прехвърляне между сметки Permission117=Управление на изпратени чекове -Permission121=Четене на трети лица, свързани с потребителя -Permission122=Създаване / промяна контрагенти, свързани с потребителя -Permission125=Изтриване на трети лица, свързани с потребителя -Permission126=Контрагенти за износ +Permission121=Преглед на контрагенти, свързани с потребителя +Permission122=Създаване / промяна на контрагенти, свързани с потребителя +Permission125=Изтриване на контрагенти, свързани с потребителя +Permission126=Експортиране на контрагенти Permission141=Преглед на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) Permission142=Създаване / редактиране на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Прочети доставчици -Permission147=Прочети статистиката +Permission144=Изтриване на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) +Permission146=Преглед на доставчици +Permission147=Преглед на статистически данни Permission151=Преглед на платежни нареждания за директен дебит Permission152=Създаване / редактиране на платежни нареждания за директен дебит Permission153=Изпращане / предаване на платежни нареждания за директен дебит Permission154=Записване на кредити / отхвърляния на платежни нареждания за директен дебит -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=Преглед на договори / абонаменти +Permission162=Създаване / промяна на договори / абонаменти +Permission163=Активиране на услуга / абонамент към договор +Permission164=Прекратяване на услуга / абонамент към договор +Permission165=Изтриване на договори / абонаменти Permission167=Експортиране на договори -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Прочети доставчици +Permission171=Преглед на пътувания и разходи (на служителя и неговите подчинени) +Permission172=Създаване / промяна на пътувания и разходи +Permission173=Изтриване на пътувания и разходи +Permission174=Преглед на всички пътувания и разходи +Permission178=Експортиране на пътувания и разходи +Permission180=Преглед на доставчици Permission181=Преглед на поръчки за покупка Permission182=Създаване / редактиране на поръчки за покупка Permission183=Валидиране на поръчки за покупка @@ -741,113 +744,113 @@ Permission186=Получаване на поръчки за покупка Permission187=Затваряне на поръчки за покупка Permission188=Анулиране на поръчки за покупка Permission192=Създаване на линии -Permission193=Отказ линии +Permission193=Анулиране на линии Permission194=Преглед на линиите на честотната лента Permission202=Създаване на ADSL връзки -Permission203=Поръчка връзки поръчки -Permission204=Поръчка връзки -Permission205=Управление на връзките -Permission206=Прочетете Връзки -Permission211=Прочети телефония -Permission212=Поръчка линии +Permission203=Поръчка на поръчки за свързване +Permission204=Поръчка на връзки +Permission205=Управление на връзки +Permission206=Преглед на връзки +Permission211=Преглед на телефония +Permission212=Поръчка на линия Permission213=Активиране на линия -Permission214=Setup телефония -Permission215=Setup доставчици -Permission221=Прочети emailings -Permission222=Създаване/промяна на имейли (тема, получатели ...) -Permission223=Проверка на emailings (позволява изпращане) +Permission214=Настройка на телефония +Permission215=Настройка на доставчици +Permission221=Преглед на имейли +Permission222=Създаване / промяна на имейли (тема, получатели, ...) +Permission223=Валидиране на имейли (позволява изпращане) Permission229=Изтриване на имейли -Permission237=Получатели и информация -Permission238=Ръчно изпрати писма -Permission239=Изтриване на писма след утвърждаване или изпратени -Permission241=Прочети категории +Permission237=Преглед на получатели и информация +Permission238=Ръчно изпращане на имейли +Permission239=Изтриване на писма след валидиране или изпращане +Permission241=Преглед на категории Permission242=Създаване / промяна на категории Permission243=Изтриване на категории -Permission244=Вижте съдържанието на скрити категории -Permission251=Прочетете други потребители и групи -PermissionAdvanced251=Прочетете други потребители -Permission252=Разрешения на други потребители +Permission244=Преглед на съдържание на скрити категории +Permission251=Преглед на други потребители и групи +PermissionAdvanced251=Преглед на други потребители +Permission252=Преглед на права на други потребители Permission253=Създаване / редактиране на други потребители, групи и разрешения -PermissionAdvanced253=Създаване / промяна на вътрешни / външни потребители и разрешения -Permission254=Създаване / промяна на външни потребители -Permission255=Промяна на други потребители парола -Permission256=Изтрий или забраняване на други потребители +PermissionAdvanced253=Създаване / промяна на вътрешни / външни потребители и права +Permission254=Създаване / променя само на външни потребители +Permission255=Промяна на парола на други потребители +Permission256=Изтриване или деактивиране на други потребители Permission262=Разширяване на достъпа до всички контрагенти (не само контрагенти, за които този потребител е търговски представител).
Не е ефективно за външни потребители (винаги са ограничени до своите предложения, поръчки, фактури, договори и т.н.).
Не е ефективно за проекти (имат значение само разрешенията, видимостта и възложенията в проекта). -Permission271=Прочети CA -Permission272=Прочети фактури +Permission271=Преглед на CA +Permission272=Преглед на фактури Permission273=Издаване на фактури -Permission281=Прочети контакти -Permission282=Създаване / Промяна на контактите +Permission281=Преглед на контакти +Permission282=Създаване / промяна на контакти Permission283=Изтриване на контакти Permission286=Експортиране на контакти -Permission291=Прочети тарифи -Permission292=Задаване на разрешения за тарифите +Permission291=Преглед на тарифи +Permission292=Задаване на права за тарифи Permission293=Промяна на тарифите на клиента Permission300=Преглед на баркодове Permission301=Създаване / редактиране на баркодове Permission302=Изтриване на баркодове -Permission311=Прочети услуги -Permission312=Assign service/subscription to contract -Permission331=Прочетете отметките +Permission311=Преглед на услуги +Permission312=Възлагане на услуга / абонамент към договор +Permission331=Преглед на отметки Permission332=Създаване / промяна на отметки Permission333=Изтриване на отметки -Permission341=Прочетете своите разрешения -Permission342=Създаване / промяна на собствената си потребителска информация -Permission343=Промяна на собствената си парола -Permission344=Промяна на свои собствени разрешения -Permission351=Прочети групи -Permission352=Групи разрешения +Permission341=Преглед на собствени права +Permission342=Създаване / промяна на собствена информация за потребителя +Permission343=Промяна на собствена парола +Permission344=Промяна на собствени права +Permission351=Преглед на групи +Permission352=Преглед на групови права Permission353=Създаване / промяна на групи -Permission354=Изтрий или забраняване на групи -Permission358=Износ потребители -Permission401=Прочети отстъпки +Permission354=Изтриване или деактивиране на групи +Permission358=Експортиране на потребители +Permission401=Преглед на отстъпки Permission402=Създаване / промяна на отстъпки -Permission403=Проверка на отстъпки +Permission403=Валидиране на отстъпки Permission404=Изтриване на отстъпки -Permission430=Use Debug Bar +Permission430=Използване на инструменти за отстраняване на грешки Permission511=Преглед на плащания на заплати Permission512=Създаване / редактиране на плащания на заплати Permission514=Изтриване на плащания на заплати -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Прочети услуги -Permission532=Създаване / промяна услуги +Permission517=Експортиране на заплати +Permission520=Преглед на кредити +Permission522=Създаване / промяна на кредити +Permission524=Изтриване на кредити +Permission525=Достъп до кредитен калкулатор +Permission527=Експортиране на кредити +Permission531=Преглед на услуги +Permission532=Създаване / промяна на услуги Permission534=Изтриване на услуги -Permission536=Вижте / управление скрити услуги -Permission538=Износ услуги -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom -Permission701=Прочети дарения +Permission536=Преглед / управление на скрити услуги +Permission538=Експортиране на услуги +Permission650=Преглед на спецификации +Permission651=Създаване / Промяна на спецификации +Permission652=Изтриване на спецификации +Permission701=Преглед на дарения Permission702=Създаване / промяна на дарения Permission703=Изтриване на дарения -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Прочети запаси -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Движението на стоковите наличности -Permission1005=Създаване / промяна на движението на стоковите наличности -Permission1101=Поръчките за доставка -Permission1102=Създаване / промяна на поръчките за доставка -Permission1104=Проверка на поръчките за доставка -Permission1109=Изтриване на поръчките за доставка -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 -Permission1181=Прочети доставчици +Permission771=Преглед на разходни отчети (на служителя и неговите подчинени) +Permission772=Създаване / промяна на разходни отчети +Permission773=Изтриване на разходни отчети +Permission774=Преглед на всички разходни отчети (дори на служители които не са подчинени на служителя) +Permission775=Одобряване на разходни отчети +Permission776=Плащане на разходни отчети +Permission779=Експортиране на разходни отчети +Permission1001=Преглед на наличности +Permission1002=Създаване / промяна на складове +Permission1003=Изтриване на складове +Permission1004=Преглед на движения на наличности +Permission1005=Създаване / промяна на движения на наличности +Permission1101=Преглед на поръчки за покупка +Permission1102=Създаване / промяна на поръчки за покупка +Permission1104=Валидиране на поръчки за покупка +Permission1109=Изтриване на поръчки за покупка +Permission1121=Преглед на запитвания към доставчици +Permission1122=Създаване / промяна на запитвания към доставчици +Permission1123=Валидиране на запитвания към доставчици +Permission1124=Изпращане на запитвания към доставчици +Permission1125=Изтриване на запитвания към доставчици +Permission1126=Приключване на запитвания към доставчици +Permission1181=Преглед на доставчици Permission1182=Преглед на поръчки за покупка Permission1183=Създаване / редактиране на поръчки за покупка Permission1184=Валидиране на поръчки за покупка @@ -856,8 +859,8 @@ Permission1186=Поръчка на поръчки за покупка Permission1187=Потвърждаване на получаването на поръчка за покупка Permission1188=Изтриване на поръчки за покупка Permission1190=Одобряване (второ одобрение) на поръчки за покупка -Permission1201=Резултат от износ -Permission1202=Създаване / Промяна на износ +Permission1201=Получава на резултат от експортиране +Permission1202=Създаване / промяна на експортиране Permission1231=Преглед на фактури за доставка Permission1232=Създаване / редактиране на фактури за доставка Permission1233=Валидиране на фактури за доставка @@ -865,64 +868,64 @@ Permission1234=Изтриване на фактури за доставка Permission1235=Изпращане на фактури за доставка по имейл Permission1236=Експортиране на фактури за доставка, атрибути и плащания Permission1237=Експортиране на поръчки за покупка и техните подробности -Permission1251=Пусни масов внос на външни данни в базата данни (данни товара) -Permission1321=Износ на клиентите фактури, атрибути и плащания +Permission1251=Извършване на масово импортиране на външни данни в базата данни (зареждане на данни) +Permission1321=Експортиране на фактури за продажба, атрибути и плащания Permission1322=Повторно отваряне на платена фактура Permission1421=Експортиране на поръчки за продажба и атрибути -Permission2401=Прочетете действия (събития или задачи), свързани с неговата сметка -Permission2402=Създаване/промяна действия (събития или задачи), свързани с неговата сметка -Permission2403=Изтрий действия (събития или задачи), свързани с неговата сметка -Permission2411=Прочетете действия (събития или задачи) на другите -Permission2412=Създаване / промяна действия (събития или задачи) на другите -Permission2413=Изтрий действия (събития или задачи) на другите +Permission2401=Преглед на действия (събития или задачи), свързани с профила на потребителя +Permission2402=Създаване / промяна на действия (събития или задачи), свързани с профила на потребителя +Permission2403=Изтриване на действия (събития или задачи), свързани с профила на потребителя +Permission2411=Преглед на действия (събития или задачи), свързани с профили на други потребители +Permission2412=Създаване / променя на действия (събития или задачи), свързани с профили на други потребители +Permission2413=Изтриване на действия (събития или задачи), свързани с профили на други потребители Permission2414=Експортиране на действия / задачи на други лица -Permission2501=/ Изтегляне документи +Permission2501=Преглед / изтегляне на документи Permission2502=Изтегляне на документи Permission2503=Изпращане или изтриване на документи -Permission2515=Setup документи директории -Permission2801=Използвайте FTP клиент в режим на четене (да преглеждате и сваляте само) -Permission2802=Използвайте FTP клиент в режим на запис (изтриване или качване на файлове) -Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees -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 +Permission2515=Настройка на директории за документи +Permission2801=Използване на FTP клиент в режим на четене (само за преглед и изтегляне) +Permission2802=Използване на FTP клиент в режим на писане (изтриване или качване на файлове) +Permission3200=Преглед на архивирани събития и пръстови отпечатъци +Permission4001=Преглед на служители +Permission4002=Създаване на служители +Permission4003=Изтриване на служители +Permission4004=Експортиране на служители +Permission10001=Преглед на съдържание в уебсайт +Permission10002=Създаване / Промяна на съдържание в уебсайт (html и javascript) +Permission10003=Създаване / Промяна на съдържание в уебсайт (динамичен php код). Опасно, трябва да бъде използвано само за ограничен кръг разработчици. +Permission10005=Изтриване на съдържание в уебсайт Permission20001=Преглед на молби за отпуск (на служителя и неговите подчинени) Permission20002=Създаване / редактиране на молби за отпуск (на служителя и неговите подчинени) -Permission20003=Delete leave requests +Permission20003=Изтриване на молби за отпуск Permission20004=Преглед на всички молби за отпуск (дори на служители които не са подчинени на служителя) Permission20005=Създаване / редактиране на всички молби за отпуск (дори на служители, които не са подчинени на служителя) -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job +Permission20006=Администриране на молби за отпуск (настройка и актуализиране на баланса) +Permission23001=Преглед на планирани задачи +Permission23002=Създаване / промяна на планирани задачи +Permission23003=Изтриване на планирани задачи +Permission23004=Стартиране на планирани задачи Permission50101=Използване на точка на продажба -Permission50201=Прочети сделки -Permission50202=Сделки на внос -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 -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin +Permission50201=Преглед на транзакции +Permission50202=Импортиране на транзакции +Permission50401=Свързване на продукти и фактури със счетоводни сметки +Permission50411=Преглед на операции в счетоводна книга +Permission50412=Създаване / Промяна на операции в счетоводна книга +Permission50414=Изтриване на операции в счетоводна книга +Permission50415=Изтриване на всички операции по година и дневник в счетоводна книга +Permission50418=Експортиране на операции от счетоводна книга +Permission50420=Отчитане и справки за експортиране (оборот, баланс, дневници, счетоводна книга) +Permission50430=Определяне и приключване на фискален период +Permission50440=Управление на сметкоплан, настройка на счетоводство +Permission51001=Преглед на активи +Permission51002=Създаване / Промяна на активи +Permission51003=Изтриване на активи +Permission51005=Настройка на типове активи +Permission54001=Принтиране +Permission55001=Преглед на анкети +Permission55002=Създаване / промяна на анкети +Permission59001=Преглед на търговски маржове +Permission59002=Дефиниране на търговски маржове +Permission59003=Преглед на всички потребителски маржове Permission63001=Преглед на ресурси Permission63002=Създаване / редактиране на ресурси Permission63003=Изтриване на ресурси @@ -931,39 +934,39 @@ DictionaryCompanyType=Видове контрагенти DictionaryCompanyJuridicalType=Правна форма на контрагенти DictionaryProspectLevel=Потенциал за перспектива DictionaryCanton=Области / региони -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies +DictionaryRegion=Региони +DictionaryCountry=Държави +DictionaryCurrency=Валути DictionaryCivility=Обръщения DictionaryActions=Видове събития в календара DictionarySocialContributions=Видове социални или фискални данъци -DictionaryVAT=VAT Rates or Sales Tax Rates +DictionaryVAT=Ставки на ДДС или Данък върху продажби DictionaryRevenueStamp=Размер на данъчни печати (бандероли) DictionaryPaymentConditions=Условия за плащане DictionaryPaymentModes=Методи за плащане DictionaryTypeContact=Видове контакти / адреси DictionaryTypeOfContainer=Уебсайт - Видове страници / контейнери DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats +DictionaryPaperFormat=Хартиени формати DictionaryFormatCards=Формати на карти DictionaryFees=Разходен отчет - Видове разходни отчети -DictionarySendingMethods=Shipping methods +DictionarySendingMethods=Методи на доставка DictionaryStaff=Брой служители -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders +DictionaryAvailability=Забавяне на доставка +DictionaryOrderMethods=Методи за поръчка +DictionarySource=Произход на предложения / поръчки DictionaryAccountancyCategory=Персонализирани групи за отчети -DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancysystem=Модели за сметкоплан DictionaryAccountancyJournal=Счетоводни дневници DictionaryEMailTemplates=Шаблони за имейли -DictionaryUnits=Units +DictionaryUnits=Единици DictionaryMeasuringUnits=Измервателни единици DictionaryProspectStatus=Статус на перспективи DictionaryHolidayTypes=Видове отпуск DictionaryOpportunityStatus=Статус на възможността за проект / възможност DictionaryExpenseTaxCat=Разходен отчет - Транспортни категории DictionaryExpenseTaxRange=Разходен отчет - Обхват на транспортни категории -SetupSaved=Setup спаси +SetupSaved=Настройката е запазена SetupNotSaved=Настройката не е запазена BackToModuleList=Назад към списъка с модули BackToDictionaryList=Назад към списъка с речници @@ -974,37 +977,37 @@ VATIsNotUsedDesc=По подразбиране предложената став VATIsUsedExampleFR=Във Франция това означава дружества или организации, които имат реална фискална система (опростена реална или нормална реална). Система, в която е деклариран ДДС. VATIsNotUsedExampleFR=Във Франция това означава асоциации, които не декларират данък върху продажбите или компании, организации, или свободни професии, които са избрали фискалната система за микропредприятия (данък върху продажбите във франчайз) и са платили франчайз данък върху продажбите без декларация за данък върху продажбите. Този избор ще покаже информация за "Неприложим данък върху продажбите - art-293B от CGI" във фактурите. ##### Local Taxes ##### -LTRate=Курс -LocalTax1IsNotUsed=Do not use second tax +LTRate=Ставка +LocalTax1IsNotUsed=Да не се използва втори данък LocalTax1IsUsedDesc=Използване на втори тип данък (различен от първия) LocalTax1IsNotUsedDesc=Да не се използва друг тип данък (различен от първия) -LocalTax1Management=Second type of tax +LocalTax1Management=Втори вид данък LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax +LocalTax2IsNotUsed=Да не се използва трети данък LocalTax2IsUsedDesc=Използване на трети тип данък (различен от първия) LocalTax2IsNotUsedDesc=Да не се използва друг тип данък (различен от първия) -LocalTax2Management=Third type of tax +LocalTax2Management=Трети вид данък LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= -LocalTax1ManagementES=RE Управление +LocalTax1ManagementES=Управление на RE LocalTax1IsUsedDescES=Ставката на RE по подразбиране при създаване на перспективи, фактури, поръчки и т.н. следва активното стандартно правило:
Ако купувачът не е подложен на RE, RE по подразбиране = 0. Край на правилото.
Ако купувачът е подложен на RE, тогава RE е по подразбиране. Край на правилото.
-LocalTax1IsNotUsedDescES=По подразбиране предложения RE е 0. Край на правило. -LocalTax1IsUsedExampleES=В Испания те са професионалисти, подлежащи на някои специфични части на испанската IAE. -LocalTax1IsNotUsedExampleES=В Испания те са професионални и общества и при спазване на определени сектори на испанската IAE. -LocalTax2ManagementES=IRPF Management +LocalTax1IsNotUsedDescES=По подразбиране предложената RE е 0. Край на правилото. +LocalTax1IsUsedExampleES=В Испания те са професионалисти, подчинени на някои специфични раздели на испанската IAE. +LocalTax1IsNotUsedExampleES=В Испания те са професионалисти и общества и подлежат на определени раздели на испанската IAE. +LocalTax2ManagementES=Управление на IRPF LocalTax2IsUsedDescES=Ставката на IRPF по подразбиране при създаване на перспективи, фактури, поръчки и т.н. следва активното стандартно правило:
Ако продавачът не е подложен на IRPF, то по подразбиране IRPF = 0. Край на правилото.
Ако продавачът е подложен на IRPF, тогава IRPF е по подразбиране. Край на правилото.
-LocalTax2IsNotUsedDescES=По подразбиране предложения IRPF е 0. Край на правило. -LocalTax2IsUsedExampleES=В Испания, на свободна практика и независими специалисти, които предоставят услуги и фирми, които са избрани на данъчната система от модули. +LocalTax2IsNotUsedDescES=По подразбиране предложената IRPF е 0. Край на правилото. +LocalTax2IsUsedExampleES=В Испания, професионалистите на свободна практика и независимите професионалисти, които предоставят услуги и фирми, които са избрали данъчната система от модули. LocalTax2IsNotUsedExampleES=В Испания те са предприятия, които не подлежат на данъчна система от модули. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code +CalcLocaltax=Справки за местни данъци +CalcLocaltax1=Продажби - Покупки +CalcLocaltax1Desc=Справките за местни данъци се изчисляват с разликата между размера местни данъци от продажби и размера местни данъци от покупки. +CalcLocaltax2=Покупки +CalcLocaltax2Desc=Справки за местни данъци се определят, чрез размера на местни данъци от общи покупки +CalcLocaltax3=Продажби +CalcLocaltax3Desc=Справки за местни данъци се определят, чрез размера на местни данъци от общи продажби +LabelUsedByDefault=Етикет, използван по подразбиране, ако не може да бъде намерен превод за кода LabelOnDocuments=Етикет на документи LabelOrTranslationKey=Етикет или ключ за превод ValueOfConstantKey=Стойност на константа @@ -1013,62 +1016,62 @@ AtEndOfMonth=В края на месеца CurrentNext=Текущ/Следващ Offset=Офсет AlwaysActive=Винаги активна -Upgrade=Обновяване -MenuUpgrade=Обновяване/Удължаване +Upgrade=Актуализация +MenuUpgrade=Актуализиране / разширяване AddExtensionThemeModuleOrOther=Внедряване / инсталиране на външно приложение / модул WebServer=Уеб сървър -DocumentRootServer=Главната директория на уеб сървъра -DataRootServer=Файлове с данни +DocumentRootServer=Основна директория на уеб сървъра +DataRootServer=Директория за файлове с данни IP=IP Port=Порт -VirtualServerName=Име на виртуалния сървър -OS=OS -PhpWebLink=Web-Php връзка +VirtualServerName=Име на виртуален сървър +OS=Операционна система +PhpWebLink=Връзка с уеб-php Server=Сървър Database=База данни -DatabaseServer=Хост базата данни -DatabaseName=Име на базата данни -DatabasePort=Database порт -DatabaseUser=Потребители на бази данни -DatabasePassword=Database парола -Tables=Маси -TableName=Таблица име +DatabaseServer=Хост на база данни +DatabaseName=Име на база данни +DatabasePort=Порт на база данни +DatabaseUser=Потребител на база данни +DatabasePassword=Парола на база данни +Tables=Таблици +TableName=Име на таблица NbOfRecord=Брой записи Host=Сървър -DriverType=Шофьор тип -SummarySystem=Резюме на информационна система -SummaryConst=Списък на всички параметри за настройка Dolibarr +DriverType=Тип драйвер +SummarySystem=Резюме на системна информация +SummaryConst=Списък на всички параметри за настройка на Dolibarr MenuCompanySetup=Компания / Организация -DefaultMenuManager= Стандартно меню мениджър -DefaultMenuSmartphoneManager=Smartphone Menu Manager -Skin=Кожата тема +DefaultMenuManager= Стандартен мениджър на меню +DefaultMenuSmartphoneManager=Мениджър на меню за смартфон +Skin=Тема на интерфейса DefaultSkin=Тема по подразбиране -MaxSizeList=Максимална дължина за списъка -DefaultMaxSizeList=Макс. дължина за списъци по подразбиране +MaxSizeList=Максимална дължина за списък +DefaultMaxSizeList=Максимална дължина по подразбиране за списъци DefaultMaxSizeShortList=Максимална дължина по подразбиране за кратки списъци (т.е. в карта на клиента) MessageOfDay=Послание на деня -MessageLogin=Съобщение на страницата за вход +MessageLogin=Съобщение в страницата за вход LoginPage=Входна страница BackgroundImageLogin=Фоново изображение -PermanentLeftSearchForm=Постоянна форма за търсене в лявото меню +PermanentLeftSearchForm=Формуляр за постоянно търсене в лявото меню DefaultLanguage=Език по подразбиране EnableMultilangInterface=Активиране на многоезикова поддръжка -EnableShowLogo=Показване на логото в лявото меню +EnableShowLogo=Показване на лого в лявото меню CompanyInfo=Фирма / Организация CompanyIds=Идентификационни данни на фирма / организация CompanyName=Име CompanyAddress=Адрес -CompanyZip=П. код +CompanyZip=Пощ. код CompanyTown=Град CompanyCountry=Държава -CompanyCurrency=Основната валута -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Да не предполагат -NoActiveBankAccountDefined=Не е активна банкова сметка на определени -OwnerOfBankAccount=Собственик на %s банкови сметки -BankModuleNotActive=Банкови сметки модул не е активиран -ShowBugTrackLink=Show link "%s" +CompanyCurrency=Основна валута +CompanyObject=Предмет на фирмата +Logo=Лого +DoNotSuggestPaymentMode=Да не се предлага +NoActiveBankAccountDefined=Няма дефинирана активна банкова сметка +OwnerOfBankAccount=Титуляр на банкова сметка %s +BankModuleNotActive=Модулът за банкови сметки не е активиран +ShowBugTrackLink=Показване на връзка "%s" Alerts=Сигнали DelaysOfToleranceBeforeWarning=Закъснение преди показване на предупредителен сигнал за: DelaysOfToleranceDesc=Задаване на закъснение, преди на екрана да се покаже иконата за предупреждение %s на закъснелия елемент. @@ -1092,7 +1095,7 @@ SetupDescription2=Следните две секции са задължител SetupDescription3=%s ->%s
Основни параметри, използвани за персонализиране на поведението по подразбиране на вашето приложение (например за функции, свързани със държавата). SetupDescription4=%s ->%s
Този софтуер е набор от много модули / приложения, всички повече или по-малко независими. Модулите, съответстващи на вашите нужди, трябва да бъдат активирани и конфигурирани. В менютата се добавят нови елементи / опции с активирането на модул. SetupDescription5=Менюто "Други настройки" управлява допълнителни параметри. -LogEvents=Събития одит на сигурността +LogEvents=Събития за одит на сигурността Audit=Проверка InfoDolibarr=За Dolibarr InfoBrowser=За браузъра @@ -1101,60 +1104,60 @@ InfoWebServer=За уеб сървъра InfoDatabase=За базата данни InfoPHP=За PHP InfoPerf=За производителността -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=Списък на събитията Dolibarr сигурност -SecurityEventsPurged=Събития по сигурността прочиства +BrowserName=Име на браузъра +BrowserOS=OS на браузъра +ListOfSecurityEvents=Списък на събития за сигурност в Dolibarr +SecurityEventsPurged=Събитията със сигурността са премахнати LogEventDesc=Активиране на регистрирането за конкретни събития за сигурност. Администриране на записаните събития, чрез меню %s - %s. Внимание, тази функция може да генерира голямо количество данни в базата данни. AreaForAdminOnly=Параметрите за настройка могат да се задават само от Администратори. -SystemInfoDesc=Информационна система Разни техническа информация можете да получите в режим само за четене и видими само за администратори. +SystemInfoDesc=Системната информация е различна техническа информация, която получавате в режим само за четене и е видима само за администратори. SystemAreaForAdminOnly=Тази секция е достъпна само за администратори. Потребителските права в Dolibarr не могат да променят това ограничение. CompanyFundationDesc=Редактирайте информацията за фирма / организация като кликнете върху бутона '%s' или '%s' в долната част на страницата. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. +AccountantDesc=Ако имате външен счетоводител, тук може да редактирате неговата информация. AccountantFileNumber=Счетоводен код DisplayDesc=Тук могат да се променят параметрите, които влияят на външния вид и поведението на Dolibarr. AvailableModules=Налични приложения / модули -ToActivateModule=За да активирате модули, отидете на настройка пространство (Начало-> Setup-> модули). -SessionTimeOut=Време за сесията +ToActivateModule=За да активирате модули, отидете на в секцията за настройка (Начало -> Настройки -> Модули / Приложения). +SessionTimeOut=Време за сесия SessionExplanation=Това число гарантира, че сесията никога няма да изтече преди това закъснение, ако чистачът на сесии се извършва от вътрешен PHP чистач на сесии (и нищо друго). Вътрешният PHP чистач на сесии не гарантира, че сесията ще изтече след това закъснение. Тя ще изтече, след това закъснение и когато се задейства чистачът на сесии на всеки %s / %s идентифицирания в системата, но само по време на достъп от други сесии (ако стойността е 0, това означава, че почистването на сесията се извършва само от външен процес).
Забележка: на някои сървъри с външен механизъм за почистване на сесиите (cron под debian, ubuntu ...), сесиите могат да бъдат унищожени след период, определен от външна настройка, независимо от въведената тук стойност. TriggersAvailable=Налични тригери TriggersDesc=Тригерите са файлове, които ще променят поведението на Dolibarr след като бъдат копирани в директорията htdocs/core/triggers. Те реализират нови действия, активирани при събития в Dolibarr (създаване на нов контрагент, валидиране на фактура, ...). -TriggerDisabledByName=Тригерите в този файл са изключени от NORUN наставка в името си. -TriggerDisabledAsModuleDisabled=Тригерите в този файл са забранени като модул %s е забранено. -TriggerAlwaysActive=Тригерите в този файл са винаги активни,, каквото са активирани модули Dolibarr. -TriggerActiveAsModuleActive=Тригерите в този файл са активни, като модул %s е активирана. +TriggerDisabledByName=Тригерите в този файл са деактивирани от суфикса -NORUN в името му. +TriggerDisabledAsModuleDisabled=Тригерите в този файл са деактивирани, тъй като модулът %s е деактивиран. +TriggerAlwaysActive=Тригерите в този файл са винаги активни, каквито и да са активираните Dolibarr модули. +TriggerActiveAsModuleActive=Тригерите в този файл са активни, когато е активиран модул %s. GeneratedPasswordDesc=Изберете метода, който ще се използва за автоматично генерирани пароли. DictionaryDesc=Определете всички референтни данни. Може да добавите стойности по подразбиране. ConstDesc=Тази страница позволява да редактирате (презаписвате) параметри, които не са достъпни в други страници. Това са параметри предимно запазени за разработчици / разширено отстраняване на неизправности. За пълен списък на наличните параметри вижте тук. MiscellaneousDesc=Тук са дефинирани всички параметри, свързани със сигурността. -LimitsSetup=Граници / Прецизно настройване +LimitsSetup=Граници / Прецизна настройка LimitsDesc=Тук може да дефинирате ограничения използвани от Dolibarr за по-голяма прецизност и оптимизация MAIN_MAX_DECIMALS_UNIT=Максимален брой десетични знаци за единични цени MAIN_MAX_DECIMALS_TOT=Максимален брой десетични знаци за общи суми MAIN_MAX_DECIMALS_SHOWN=Максимален брой десетични знаци за цени, показани на екрана. Добавете многоточие ... след този параметър (напр. 2...), ако искате да видите "..." суфикс след съкратената (закръглена) цена. MAIN_ROUNDING_RULE_TOT=Диапазон на закръгляване (за страни, в които закръгляването се извършва на нещо различно от стандартното 10. Например поставете 0.05, ако закръгляването се извършва с 0.05 стъпки) -UnitPriceOfProduct=Нетен единичната цена на даден продукт +UnitPriceOfProduct=Нетна единична цена на продукт TotalPriceAfterRounding=Обща цена (без ДДС / ДДС / с ДДС) след закръгляване -ParameterActiveForNextInputOnly=Параметър ефективно само за следващия вход +ParameterActiveForNextInputOnly=Параметърът е ефективен само за следващия вход NoEventOrNoAuditSetup=Не е регистрирано събитие свързано със сигурността. Това е нормално, ако проверката не е активирана в страницата "Настройки - Сигурност - Събития". NoEventFoundWithCriteria=Не е намерено събитие свързано със сигурността по тези параметри за търсене. -SeeLocalSendMailSetup=Вижте настройка Sendmail +SeeLocalSendMailSetup=Вижте локалната си настройка за Sendmail BackupDesc=Пълното архивиране на Dolibarr инсталация се извършва в две стъпки. BackupDesc2=Архивиране на съдържанието в директорията "documents" (%s), съдържаща всички ръчно добавени и генерирани файлове. Това също така ще включва всички архивирани файлове, генерирани в Стъпка 1. BackupDesc3=Архивиране на структурата и съдържанието на база данни (%s) в архивен файл. За тази цел може да използвате следния асистент. BackupDescX=Архивиращата директория трябва да се съхранява на сигурно място. -BackupDescY=Генерирания дъмп файл трябва да се съхранява на сигурно място. +BackupDescY=Генерираният дъмп файл трябва да се съхранява на сигурно място. BackupPHPWarning=Архивирането не може да бъде гарантирано с този метод. Препоръчва се предходният. RestoreDesc=Възстановяването на Dolibarr от архивно копие се извършва в две стъпки. RestoreDesc2=Възстановете от архивният файл (например zip файл) директорията "documents" в нова Dolibarr инсталация или в "documents" директорията на текущата инсталация (%s). RestoreDesc3=Възстановете структурата на базата данни и данните от архивния файл в базата данни на новата Dolibarr инсталация или в базата данни (%s) на настоящата инсталация. Внимание, след като възстановяването приключи, трябва да използвате потребителско име и парола, които са били налични по време на архивирането / инсталацията, за да се свържете отново.
За да възстановите архивирана база данни в тази текущата инсталация, може да използвате следния асистент. -RestoreMySQL=MySQL внос -ForcedToByAModule= Това правило е принуден да %s от активиран модул +RestoreMySQL=Импортиране на MySQL +ForcedToByAModule= Това правило е принудено да %s, чрез активиран модул PreviousDumpFiles=Съществуващи архивни файлове WeekStartOnDay=Първи ден от седмицата RunningUpdateProcessMayBeRequired=Актуализацията изглежда задължителна (версията на програмата %s се различава от версията на базата данни %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=Трябва да изпълните тази команда от командния ред след влизане на черупката с потребителски %s или трябва да добавите опцията-W в края на командния ред, за да предоставят %s парола. -YourPHPDoesNotHaveSSLSupport=SSL функции не са налични във вашата PHP +YouMustRunCommandFromCommandLineAfterLoginToUser=Трябва да изпълните тази команда от командния ред след влизане в shell с потребител %s или трябва да добавите опция -W в края на командния ред, за да се предостави %s парола. +YourPHPDoesNotHaveSSLSupport=SSL функциите не са налични във вашия PHP DownloadMoreSkins=Изтегляне на повече теми SimpleNumRefModelDesc=Връща референтен номер във формат %syymm-nnnn, където yy е година, mm е месец и nnnn е последователност от номера без връщане към нула ShowProfIdInAddress=Показване на идентификационни данни в полетата с адреси @@ -1166,7 +1169,7 @@ MeteoStdModEnabled=Стандартният режим е активиран MeteoPercentageMod=Процентен режим MeteoPercentageModEnabled=Процентният режим е активиран MeteoUseMod=Кликнете, за да използвате %s -TestLoginToAPI=Тествайте влезете в API +TestLoginToAPI=Тест за вход в API ProxyDesc=Някои функции на Dolibarr изискват достъп до интернет. Определете тук параметрите на интернет връзката за достъп през прокси сървър, ако е необходимо. ExternalAccess=Външен / Интернет достъп MAIN_PROXY_USE=Използване на прокси сървър (в противен случай достъпът към интернет е директен) @@ -1176,23 +1179,23 @@ MAIN_PROXY_USER=Прокси сървър: Потребител MAIN_PROXY_PASS=Прокси сървър: Парола DefineHereComplementaryAttributes=Определете тук всички допълнителни / персонализирани атрибути, които искате да бъдат включени за: %s ExtraFields=Допълнителни атрибути -ExtraFieldsLines=Complementary attributes (lines) +ExtraFieldsLines=Допълнителни атрибути (редове) ExtraFieldsLinesRec=Допълнителни атрибути (шаблонни редове на фактури) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) +ExtraFieldsSupplierOrdersLines=Допълнителни атрибути (редове в поръчки за покупка) +ExtraFieldsSupplierInvoicesLines=Допълнителни атрибути (редове във фактури за покупка) ExtraFieldsThirdParties=Допълнителни атрибути (контрагенти) ExtraFieldsContacts=Допълнителни атрибути (контакти / адреси) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) +ExtraFieldsMember=Допълнителни атрибути (член) +ExtraFieldsMemberType=Допълнителни атрибути (тип член) +ExtraFieldsCustomerInvoices=Допълнителни атрибути (фактури за продажба) ExtraFieldsCustomerInvoicesRec=Допълнителни атрибути (шаблони на фактури) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Внимание, на някои системи Linux, за да изпратите имейл от електронната си поща, Sendmail изпълнение настройка трябва conatins опция-ба (параметър mail.force_extra_parameters във вашия php.ini файл). Ако някои получатели никога не получават имейли, опитайте се да редактирате тази PHP параметър с mail.force_extra_parameters = ба). +ExtraFieldsSupplierOrders=Допълнителни атрибути (поръчки за покупка) +ExtraFieldsSupplierInvoices=Допълнителни атрибути (фактури за покупка) +ExtraFieldsProject=Допълнителни атрибути (проекти) +ExtraFieldsProjectTask=Допълнителни атрибути (задачи) +ExtraFieldHasWrongValue=Атрибут %s има грешна стойност. +AlphaNumOnlyLowerCharsAndNoSpace=само буквено-цифрови символи с малки букви без интервал +SendmailOptionNotComplete=Внимание, в някои Linux системи, за да изпращате имейли от вашият имейл, в настройката на Sendmail трябва да имате опция -ba (параметър mail.force_extra_parameters във вашия php.ini файл). Ако някои получатели никога не получават имейли, опитайте да промените този PHP параметър на mail.force_extra_parameters = -ba). PathToDocuments=Път до документи PathDirectory=Директория SendmailOptionMayHurtBuggedMTA=Функцията за изпращане на имейли, чрез метода "PHP mail direct" ще генерира имейл съобщение, което може да не бъде правилно анализирано от някои пощенски сървъри за входяща поща. Резултатът ще бъде, че някои писма няма да бъдат прочетени от хората, хоствани на тези подслушвани платформи. Такъв е случаят с някои интернет доставчици (напр. Orange във Франция). Това не е проблем с Dolibarr или PHP, а с пощенския сървър за входяща поща. Може обаче да добавите опция MAIN_FIX_FOR_BUGGED_MTA със стойност "1" в Настройки - Други настройки, за да промените и избегнете това в Dolibarr. Възможно е обаче да имате проблеми с други сървъри, които стриктно използват SMTP стандарта. Другото (препоръчително) решение е да се използва методът "SMTP socket library", който няма недостатъци. @@ -1209,42 +1212,42 @@ NewTranslationStringToShow=Нов преводен низ, който да се OriginalValueWas=Оригиналния превод е презаписан. Първоначалната стойност е:

%s TransKeyWithoutOriginalValue=Наложихте нов превод за ключа за превод "%s", който не съществува в нито един от езиковите файлове TotalNumberOfActivatedModules=Активирани приложения / модули: %s / %s -YouMustEnableOneModule=Трябва да даде възможност на най-малко 1 модул +YouMustEnableOneModule=Трябва да активирате поне 1 модул ClassNotFoundIntoPathWarning=Не е намерен клас %s в описания PHP път -YesInSummer=Yes in summer +YesInSummer=Да през лятото OnlyFollowingModulesAreOpenedToExternalUsers=Забележка: Само следните модули са достъпни за външни потребители (независимо от правата им), ако са им предоставени съответните права.
-SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s +SuhosinSessionEncrypt=Съхраняването на сесии е кодирано от Suhosin +ConditionIsCurrently=Понастоящем състоянието е %s YouUseBestDriver=Използвате драйвер %s, който е най-добрият драйвер в момента. YouDoNotUseBestDriver=Използвате драйвер %s, но драйвер %s е препоръчителен. NbOfProductIsLowerThanNoPb=Вие имате само %s продукти / услуги в базата данни. Това не изисква специално оптимизиране. -SearchOptim=Search optimization +SearchOptim=Оптимизация на търсене YouHaveXProductUseSearchOptim=В базата данни имате %s продукти. Трябва да добавите константата PRODUCT_DONOTSEARCH_ANYWHERE със стойност "1" в страницата Начало - Настройки - Други настройки. Ограничете търсенето до началото на низове, което позволява базата данни да използва индекси, а вие да получите незабавен отговор. BrowserIsOK=Използвате уеб браузъра %s. Този браузър е добър от гледна точка на сигурност и производителност. BrowserIsKO=Използвате уеб браузъра %s. Известно е, че този браузър е лош избор от гледна точка на сигурност, производителност и надеждност. Препоръчително е да използвате Firefox, Chrome, Opera или Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +XDebugInstalled=XDebug е зареден. +XCacheInstalled=XCache е зареден. AddRefInList=Показване на кода на клиента / доставчика в списъка (select list или combobox) и повечето от хипервръзките.
Контрагентите ще се появят с формат на името "CC12345 - SC45678 - Голяма фирма ЕООД", вместо "Голяма фирма ЕООД" AddAdressInList=Показване на списъка с информация за адреса на клиента / доставчика (изборен списък или комбиниран списък).
Контрагентите ще се появят с формат на името на "Голяма фирма ЕООД - ул. Първа № 2 П. код Град - България, вместо "Голяма фирма ЕООД" AskForPreferredShippingMethod=Запитване към контрагенти за предпочитан начин на доставка -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode +FieldEdition=Издание на поле %s +FillThisOnlyIfRequired=Пример: +2 (попълнете само ако има проблеми с компенсирането на часовата зона) +GetBarCode=Получаване на баркод ##### Module password generation -PasswordGenerationStandard=Върнете парола, генерирана в съответствие с вътрешен алгоритъм Dolibarr: 8 символа, съдържащи общи цифри и символи с малки. +PasswordGenerationStandard=Връщане на парола, генерирана според вътрешния Dolibarr алгоритъм: 8 символа, съдържащи споделени числа и символи с малки букви PasswordGenerationNone=Да не се предлага генерирана парола. Паролата трябва да бъде въведена ръчно. -PasswordGenerationPerso=Връщане на парола съответно вашата лично определена конфигурация. -SetupPerso=Съответно по вашата конфигурация +PasswordGenerationPerso=Връщане на парола според вашата лично дефинирана конфигурация +SetupPerso=Според вашата конфигурация PasswordPatternDesc=Описание на модел за парола ##### Users setup ##### RuleForGeneratedPasswords=Правила за генериране и валидиране на пароли DisableForgetPasswordLinkOnLogonPage=Да не се показва връзката "Забравена парола" на страницата за вход -UsersSetup=Потребители модул за настройка +UsersSetup=Настройка на модула за потребители UserMailRequired=Необходим е имейл при създаване на нов потребител ##### HRM setup ##### HRMSetup=Настройка на модула ЧР ##### Company setup ##### -CompanySetup=Фирми модул за настройка +CompanySetup=Настройка на модула за фирми CompanyCodeChecker=Опции за автоматично генериране на кодове на клиент / доставчик AccountCodeManager=Опции за автоматично генериране на счетоводни кодове на клиент / доставчик NotificationsDesc=Автоматично изпращане на имейл известия за някои събития в Dolibarr.
Получателите на известия могат да бъдат дефинирани: @@ -1253,8 +1256,8 @@ NotificationsDescContact=* за контакти на контрагенти (к NotificationsDescGlobal=* или чрез задаване на глобални имейл адреси в тази страница за настройка. ModelModules=Шаблони за документи DocumentModelOdt=Генериране на документи от шаблоните на OpenDocument (файлове .ODT / .ODS от LibreOffice, OpenOffice, KOffice, TextEdit, ...) -WatermarkOnDraft=Воден знак върху проект на документ -JSOnPaimentBill=Activate feature to autofill payment lines on payment form +WatermarkOnDraft=Воден знак върху чернова на документ +JSOnPaimentBill=Активиране на функция за автоматично попълване на платежни редове в платежния формуляр CompanyIdProfChecker=Правила за идентификационните данни (проф. IDs) MustBeUnique=Трябва да е уникално? MustBeMandatory=Задължително при създаване на контрагенти (ако ДДС номера или вида на фирмата са определени)? @@ -1264,30 +1267,30 @@ TechnicalServicesProvided=Предоставени технически услу WebDAVSetupDesc=Това е връзката за достъп до WebDAV директорията. Тя съдържа „публична“ директория, отворена за всеки потребител, който знае URL адреса (ако е разрешен достъпът до публичната директория) и „лична“ директория, която изисква съществуващо потребителско име и парола за достъп. WebDavServer=Основен URL адрес на %s сървъра: %s ##### Webcal setup ##### -WebCalUrlForVCalExport=За износ на линк към %s формат е на разположение на следния линк: %s +WebCalUrlForVCalExport=Връзка за експортиране към %s формат може да намерите на следния адрес: %s ##### Invoices ##### -BillsSetup=Фактури модул за настройка -BillsNumberingModule=Фактури и кредитни известия, номериране модул -BillsPDFModules=Фактура модели документи +BillsSetup=Настройка на модула за фактури +BillsNumberingModule=Модел за номериране на фактури и кредитни известия +BillsPDFModules=Модели на документи за фактури BillsPDFModulesAccordindToInvoiceType=Модели на фактури в зависимост от вида на фактурата PaymentsPDFModules=Модели на платежни документи -ForceInvoiceDate=Принудително датата на фактурата датата на валидиране -SuggestedPaymentModesIfNotDefinedInInvoice=Предложени плащания режим на фактура по подразбиране, ако не са определени за фактура +ForceInvoiceDate=Принуждаване на датата на фактурата да се синхронизира с датата на валидиране +SuggestedPaymentModesIfNotDefinedInInvoice=Предлагане на плащания по подразбиране, ако не са определени такива във фактурата SuggestPaymentByRIBOnAccount=Да се предлага плащане по сметка SuggestPaymentByChequeToAddress=Да се предлага плащане с чек -FreeLegalTextOnInvoices=Свободен текст на фактури -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Модел на номериране на плащания +FreeLegalTextOnInvoices=Свободен текст във фактури +WatermarkOnDraftInvoices=Воден знак върху чернови фактури (няма, ако е празно) +PaymentsNumberingModule=Модел за номериране на плащания SuppliersPayment=Плащания към доставчици SupplierPaymentSetup=Настройка на плащания към доставчици ##### Proposals ##### -PropalSetup=Модул за настройка на търговски предложения -ProposalsNumberingModules=Търговско предложение за номериране на модули -ProposalsPDFModules=Търговски предложение документи модели +PropalSetup=Настройка на модула за търговски предложения +ProposalsNumberingModules=Модели за номериране на търговски предложения +ProposalsPDFModules=Модели на документи за търговски предложения SuggestedPaymentModesIfNotDefinedInProposal=Препоръчителен вид плащане по търговско предложение по подразбиране, ако не е определен -FreeLegalTextOnProposal=Свободен текст на търговски предложения -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal +FreeLegalTextOnProposal=Свободен текст в търговски предложения +WatermarkOnDraftProposal=Воден знак върху черновите търговски предложения (няма, ако е празно) +BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Питане за данни на банкова сметка в търговски предложения ##### SupplierProposal ##### SupplierProposalSetup=Настройка на модул Запитвания към доставчици SupplierProposalNumberingModules=Модели за номериране на запитвания към доставчици @@ -1295,121 +1298,121 @@ SupplierProposalPDFModules=Модели за документи на запит FreeLegalTextOnSupplierProposal=Свободен текст в запитвания към доставчици WatermarkOnDraftSupplierProposal=Воден знак върху черновите запитвания към доставчици (няма, ако празно) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Да се пита за детайли на банковата сметка в запитванията към доставчици -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Питане за Складов източник за поръчка +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Питане за изходен склад в поръчки ##### Suppliers Orders ##### BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Да се пита за детайли на банковата сметка в поръчките за покупка ##### Orders ##### OrdersSetup=Настройка на модул Поръчки за продажба -OrdersNumberingModules=Поръчки номериране модули -OrdersModelModule=Поръчка документи модели -FreeLegalTextOnOrders=Свободен текст на поръчки -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order +OrdersNumberingModules=Модели за номериране на поръчки +OrdersModelModule=Модели на документи за поръчка +FreeLegalTextOnOrders=Свободен текст в поръчки +WatermarkOnDraftOrders=Воден знак върху чернови поръчки (няма, ако е празно) +ShippableOrderIconInList=Добавяне на икона в списъка с поръчки, която показва дали поръчката може да се изпрати +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Питане за данни на банкова сметка в поръчки ##### Interventions ##### -InterventionsSetup=Интервенциите модул за настройка -FreeLegalTextOnInterventions=Свободен текст на интервенционни документи -FicheinterNumberingModules=Модули за намеса номериране -TemplatePDFInterventions=Намеса карти документи модели -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) +InterventionsSetup=Настройка на модула за интервенции +FreeLegalTextOnInterventions=Свободен текст в интервенции +FicheinterNumberingModules=Модели за номериране на интервенции +TemplatePDFInterventions=Модели на документи за интервенции +WatermarkOnDraftInterventionCards=Воден знак върху интервенции (няма, ако е празно) ##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Договори за номериране модули -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) +ContractsSetup=Настройка на модула за договори / абонаменти +ContractsNumberingModules=Модели за номериране на договори +TemplatePDFContracts=Модели на документи за договори +FreeLegalTextOnContracts=Свободен текст в договори +WatermarkOnDraftContractCards=Воден знак върху чернови договори (няма, ако е празно) ##### Members ##### -MembersSetup=Потребители модул за настройка +MembersSetup=Настройка на модула за членове MemberMainOptions=Основни параметри -AdherentLoginRequired= Управление на Login за всеки член +AdherentLoginRequired= Управление на входни данни за всеки член AdherentMailRequired=Необходим е имейл при създаване на нов член -MemberSendInformationByMailByDefault=Checkbox да изпрати потвърждение поща на членовете (валидиране или нов абонамент) е включена по подразбиране +MemberSendInformationByMailByDefault=По подразбиране е активирано изпращането на потвърждение, чрез имейл до членове (валидиране или нов абонамент) VisitorCanChooseItsPaymentMode=Посетителят може да избира от наличните начини на плащане MEMBER_REMINDER_EMAIL=Активиране на автоматично напомняне, чрез имейл за изтекли абонаменти. Забележка: Модул %s трябва да е активиран и правилно настроен за изпращане на напомняния. ##### LDAP setup ##### -LDAPSetup=LDAP Setup +LDAPSetup=Настройка на LDAP LDAPGlobalParameters=Глобални параметри LDAPUsersSynchro=Потребители LDAPGroupsSynchro=Групи LDAPContactsSynchro=Контакти -LDAPMembersSynchro=Потребители +LDAPMembersSynchro=Членове LDAPMembersTypesSynchro=Видове членове -LDAPSynchronization=LDAP синхронизация -LDAPFunctionsNotAvailableOnPHP=LDAP функции не са налични на вашия PHP +LDAPSynchronization=Синхронизация на LDAP +LDAPFunctionsNotAvailableOnPHP=LDAP функциите не са достъпни за вашия PHP LDAPToDolibarr=LDAP -> Dolibarr DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Въведете LDAP -LDAPSynchronizeUsers=Организацията на потребителите в LDAP +LDAPNamingAttribute=Ключ в LDAP +LDAPSynchronizeUsers=Организиране на потребители в LDAP LDAPSynchronizeGroups=Организиране на групи в LDAP LDAPSynchronizeContacts=Организиране на контакти в LDAP -LDAPSynchronizeMembers=Организация на членовете на организацията в LDAP +LDAPSynchronizeMembers=Организиране на членове на организацията в LDAP LDAPSynchronizeMembersTypes=Организация на видовете членове на фондацията в LDAP -LDAPPrimaryServer=Основно сървъра -LDAPSecondaryServer=Средно сървъра -LDAPServerPort=Порта на сървъра +LDAPPrimaryServer=Основен сървър +LDAPSecondaryServer=Вторичен сървър +LDAPServerPort=Порт на сървъра LDAPServerPortExample=Порт по подразбиране: 389 -LDAPServerProtocolVersion=Протокол версия +LDAPServerProtocolVersion=Версия на протокола LDAPServerUseTLS=Използване на TLS -LDAPServerUseTLSExample=LDAP сървъра използване TLS -LDAPServerDn=Сървър DN -LDAPAdminDn=Administrator DN +LDAPServerUseTLSExample=Вашият LDAP сървър използва TLS +LDAPServerDn=DN на сървър +LDAPAdminDn=DN на администратор LDAPAdminDnExample=Пълна DN (напр. cn = admin, dc = example, dc = com или cn = Administrator, cn = Users, dc = example, dc = com за активна директория) -LDAPPassword=Администраторската парола -LDAPUserDn=Потребителя DN -LDAPUserDnExample=Пълна DN (EX: OU = потребители, DC = общество, DC = COM) -LDAPGroupDn=Групи "DN -LDAPGroupDnExample=Пълна DN (: ОУ = групи, DC = общество, DC = COM) -LDAPServerExample=Адрес на сървъра (например: Localhost, 192.168.0.2, ldaps :/ / ldap.example.com /) -LDAPServerDnExample=Пълна DN (: DC = компания, DC = COM) +LDAPPassword=Парола на администратор +LDAPUserDn=DN на потребители +LDAPUserDnExample=Цялостен DN (например: ou=users, dc=example, dc=com) +LDAPGroupDn=DN на групи +LDAPGroupDnExample=Цялостен DN (например: ou=groups, dc=example, dc=com) +LDAPServerExample=Адрес на сървъра (например: localhost, 192.168.0.2, ldaps://ldap.example.com/) +LDAPServerDnExample=Цялостен DN (например: dc=example, dc=com) LDAPDnSynchroActive=Потребители и групи синхронизация -LDAPDnSynchroActiveExample=LDAP Dolibarr или Dolibarr LDAP синхронизация -LDAPDnContactActive=Контакти "синхронизация -LDAPDnContactActiveExample=Активира / Неактивирани синхронизация -LDAPDnMemberActive=Членовете синхронизация -LDAPDnMemberActiveExample=Активира / Неактивирани синхронизация +LDAPDnSynchroActiveExample=LDAP към Dolibarr или Dolibarr към LDAP синхронизация +LDAPDnContactActive=Синхронизация на контакти +LDAPDnContactActiveExample=Активирана / Неактивирана синхронизация +LDAPDnMemberActive=Синхронизация на членове +LDAPDnMemberActiveExample=Активирана / Неактивирана синхронизация LDAPDnMemberTypeActive=Синхронизиране на видове членове LDAPDnMemberTypeActiveExample=Активирана / Неактивирана синхронизация -LDAPContactDn=Dolibarr контакти "DN -LDAPContactDnExample=Пълна DN (бивши: ОУ = контакти, DC = общество, DC = COM) -LDAPMemberDn=Dolibarr членове DN -LDAPMemberDnExample=Пълна DN (EX: OU = потребители, DC = общество, DC = COM) -LDAPMemberObjectClassList=Списък на objectClass -LDAPMemberObjectClassListExample=Списък на атрибути за определяне на objectClass рекордни (напр. върха, inetOrgPerson или отгоре, ръководство за активна директория) +LDAPContactDn=DN на контакти от Dolibarr +LDAPContactDnExample=Цялостен DN (например: ou=contacts, dc=example, dc=com) +LDAPMemberDn=DN на членове от Dolibarr +LDAPMemberDnExample=Цялостен DN (например: ou=members, dc=example, dc=com) +LDAPMemberObjectClassList=Списък на objectClass за членове +LDAPMemberObjectClassListExample=Списък на objectClass определящи атрибути на запис (например: top, inetOrgPerson или top, user за активна директория) LDAPMemberTypeDn=Dolibarr видове членове DN LDAPMemberTypepDnExample=Пълна DN (напр. ou = memberstypes, dc = example, dc = com) LDAPMemberTypeObjectClassList=Списък на objectClass LDAPMemberTypeObjectClassListExample=Списък на objectClass определящи атрибути на запис (напр. top, groupOfUniqueNames) -LDAPUserObjectClassList=Списък на objectClass -LDAPUserObjectClassListExample=Списък на атрибути за определяне на objectClass рекордни (напр. върха, inetOrgPerson или отгоре, ръководство за активна директория) -LDAPGroupObjectClassList=Списък на objectClass -LDAPGroupObjectClassListExample=Списък на атрибути за определяне на objectClass рекордни (: отгоре, groupOfUniqueNames) -LDAPContactObjectClassList=Списък на objectClass -LDAPContactObjectClassListExample=Списък на атрибути за определяне на objectClass рекордни (напр. върха, inetOrgPerson или отгоре, ръководство за активна директория) -LDAPTestConnect=Тествайте LDAP връзка -LDAPTestSynchroContact=Тест за синхронизация на контактите -LDAPTestSynchroUser=Синхронизация тест на потребителя -LDAPTestSynchroGroup=Синхронизация Test група -LDAPTestSynchroMember=Член на синхронизация Test +LDAPUserObjectClassList=Списък на objectClass за потребители +LDAPUserObjectClassListExample=Списък на objectClass определящи атрибути на запис (например: top, inetOrgPerson или top, user за активна директория) +LDAPGroupObjectClassList=Списък на objectClass за групи +LDAPGroupObjectClassListExample=Списък на objectClass определящи атрибути на запис (например: top, groupOfUniqueNames) +LDAPContactObjectClassList=Списък на objectClass за контакти +LDAPContactObjectClassListExample=Списък на objectClass определящи атрибути на запис (например: top, inetOrgPerson или top, user за активна директория) +LDAPTestConnect=Тестово свързване с LDAP +LDAPTestSynchroContact=Тестово синхронизиране на контакти +LDAPTestSynchroUser=Тестово синхронизиране на потребители +LDAPTestSynchroGroup=Тестово синхронизиране на групи +LDAPTestSynchroMember=Тестово синхронизиране на членове LDAPTestSynchroMemberType=Тест за синхронизиране на вид член -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Синхронизация тест успешно -LDAPSynchroKO=Неуспешно синхронизиране тест +LDAPTestSearch= Тестово търсене в LDAP +LDAPSynchroOK=Тестът за синхронизация е успешен +LDAPSynchroKO=Неуспешен тест за синхронизация LDAPSynchroKOMayBePermissions=Неуспешен тест за синхронизация. Проверете дали връзката към сървъра е правилно конфигурирана и позволява актуализации на LDAP -LDAPTCPConnectOK=TCP свърже с LDAP сървъра успешни (сървър = %s, Порт = %s) -LDAPTCPConnectKO=TCP се свърже с LDAP сървъра не успя (Server = %s, Port = %s) +LDAPTCPConnectOK=Успешното свързване на TCP към LDAP сървъра (Сървър = %s, Порт = %s) +LDAPTCPConnectKO=Неуспешно свързване на TCP към LDAP сървър (Сървър = %s, Порт = %s) LDAPBindOK=Свързването / удостоверяване с LDAP сървъра е успешно (Сървър = %s, Порт = %s, Администратор = %s, Парола = %s) LDAPBindKO=Свързването / удостоверяването с LDAP сървъра е неуспешно (Сървър = %s, Порт = %s, Администратор = %s, Парола = %s) LDAPSetupForVersion3=LDAP сървър, конфигуриран за версия 3 LDAPSetupForVersion2=LDAP сървър, конфигуриран за версия 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Вход (UNIX) +LDAPDolibarrMapping=Съпоставяне в Dolibarr +LDAPLdapMapping=Съпоставяне в LDAP +LDAPFieldLoginUnix=Входни данни (unix) LDAPFieldLoginExample=Пример: uid -LDAPFilterConnection=Търсене филтър +LDAPFilterConnection=Филтър за търсене LDAPFilterConnectionExample=Пример: &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Вход (самба, activedirectory) +LDAPFieldLoginSamba=Входни данни (samba, activedirectory) LDAPFieldLoginSambaExample=Пример: СамбаПотребителскоИме -LDAPFieldFullname=Пълното име +LDAPFieldFullname=Пълно име LDAPFieldFullnameExample=Пример: cn LDAPFieldPasswordNotCrypted=Паролата не е криптирана LDAPFieldPasswordCrypted=Паролата е криптирана @@ -1421,64 +1424,64 @@ LDAPFieldFirstName=Собствено име LDAPFieldFirstNameExample=Пример: СобственоИме LDAPFieldMail=Имейл адрес LDAPFieldMailExample=Пример: ИмейлАдрес -LDAPFieldPhone=Професионален телефонен номер +LDAPFieldPhone=Служебен телефонен номер LDAPFieldPhoneExample=Пример: ТелефоненНомер LDAPFieldHomePhone=Личен телефонен номер LDAPFieldHomePhoneExample=Пример: ДомашенНомер -LDAPFieldMobile=Мобилен телефон +LDAPFieldMobile=Мобилен номер LDAPFieldMobileExample=Пример: МобиленНомер LDAPFieldFax=Номер на факс LDAPFieldFaxExample=Пример: ФаксНомер LDAPFieldAddress=Улица LDAPFieldAddressExample=Пример: Улица -LDAPFieldZip=Цип +LDAPFieldZip=Пощенски код LDAPFieldZipExample=Пример: ПощенскиКод LDAPFieldTown=Град LDAPFieldTownExample=Пример: Град LDAPFieldCountry=Държава LDAPFieldDescription=Описание LDAPFieldDescriptionExample=Пример: Описание -LDAPFieldNotePublic=Public Note +LDAPFieldNotePublic=Публична бележка LDAPFieldNotePublicExample=Пример: ПубличнаБележка -LDAPFieldGroupMembers= Членовете на групата +LDAPFieldGroupMembers= Членове на групата LDAPFieldGroupMembersExample= Пример: УникаленЧлен LDAPFieldBirthdate=Рождена дата LDAPFieldCompany=Фирма LDAPFieldCompanyExample=Пример: Фирма LDAPFieldSid=SID LDAPFieldSidExample=Пример: objectsid -LDAPFieldEndLastSubscription=Дата на абонамент края +LDAPFieldEndLastSubscription=Дата на приключване на абонамента LDAPFieldTitle=Длъжност -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP настройка не е пълна (отидете на други раздели) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Не администратор или парола. LDAP достъп ще бъдат анонимни и в режим само за четене. -LDAPDescContact=Тази страница ви позволява да дефинирате LDAP атрибути име в LDAP дърво за всеки намерени данни за контактите на Dolibarr. -LDAPDescUsers=Тази страница ви позволява да дефинирате LDAP атрибути име в LDAP дърво за всеки намерени данни на потребителите Dolibarr. -LDAPDescGroups=Тази страница ви позволява да дефинирате LDAP атрибути име в LDAP дърво за всеки данни, намиращи се на групи Dolibarr. -LDAPDescMembers=Тази страница ви позволява да дефинирате LDAP атрибути име в LDAP дърво за всеки намерени данни на Dolibarr членове модул. +LDAPFieldTitleExample=Пример: титла +LDAPSetupNotComplete=Настройката за LDAP не е завършена (преминете през другите раздели) +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Не е предоставен администратор или парола. LDAP достъпът ще бъде анонимен и в режим само за четене. +LDAPDescContact=Тази страница позволява да се дефинира името на LDAP атрибути в LDAP дървото за всички данни намерени за Dolibarr контакти. +LDAPDescUsers=Тази страница позволява да се дефинира името на LDAP атрибути в LDAP дървото за всички данни намерени в Dolibarr потребители. +LDAPDescGroups=Тази страница позволява да се дефинира името на LDAP атрибути в LDAP дървото за всички данни намерени в Dolibarr групи. +LDAPDescMembers=Тази страница позволява да се дефинира името на LDAP атрибути в LDAP дървото за всички данни, намерени в Dolibarr членове. LDAPDescMembersTypes=Тази страница ви позволява да дефинирате името на LDAP атрибутите в LDAP дърво за всяка информация, намерена във видовете членове в Dolibarr. -LDAPDescValues=Примерни стойности са предназначени за OpenLDAP със следните заредени схеми: core.schema, cosine.schema, inetorgperson.schema). Ако използвате thoose ценности и OpenLDAP, променете LDAP slapd.conf конфигурационен файл, за да има всички thoose схеми натоварени. -ForANonAnonymousAccess=За заверено достъп (достъп за писане например) -PerfDolibarr=Performance setup/optimizing report +LDAPDescValues=Примерните стойности са предназначени за OpenLDAP със следните заредени схеми: core.schema, cosine.schema, inetorgperson.schema ). Ако използвате тези стойности и OpenLDAP, променете вашия LDAP конфигурационен файл slapd.conf, за да бъдат заредени всички тези схеми. +ForANonAnonymousAccess=За удостоверен достъп (например за достъп за писане) +PerfDolibarr=Настройка за производителност / отчет за оптимизация YouMayFindPerfAdviceHere=Тази страница предоставя някои проверки или съвети, свързани с производителността. NotInstalled=Не е инсталирано, така че вашият сървър не се забавя от това. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache +ApplicativeCache=Приложим кеш +MemcachedNotAvailable=Не е намерен приложим кеш. Може да подобрите производителността, чрез инсталиране на кеш сървър Memcached и модул, който може да използва този кеш сървър.
Повече информация може да откриете тук http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Имайте предвид, че много уеб хостинг доставчици не предоставят такъв кеш сървър. +MemcachedModuleAvailableButNotSetup=Намерен е модул Memcached за приложим кеш, но настройката на модула не е завършена. +MemcachedAvailableAndSetup=Модулът Memcached, предназначен за използване на Memcached сървър, е активиран. +OPCodeCache=OPCode кеш NoOPCodeCacheFound=Не е намерен OPCode кеш. Може би използвате OPCode кеш, различен от XCache или eAccelerator (добър) или може би нямате OPCode кеш (много лошо). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server +HTTPCacheStaticResources=HTTP кеш за статични ресурси (css, img, javascript) +FilesOfTypeCached=Файлове от тип %s се кешират от HTTP сървър +FilesOfTypeNotCached=Файлове от тип %s не се кешират от HTTP сървър +FilesOfTypeCompressed=Файлове от тип %s се компресират от HTTP сървър +FilesOfTypeNotCompressed=Файлове от тип %s не се компресират от HTTP сървър +CacheByServer=Кеш от сървъра CacheByServerDesc=Например с помощта на Apache директивата "ExpiresByType image/gif A2592000" -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses +CacheByClient=Кеш от браузъра +CompressionOfResources=Компресиране на HTTP отговори CompressionOfResourcesDesc=Например с помощта на Apache директивата "AddOutputFilterByType DEFLATE" -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +TestNotPossibleWithCurrentBrowsers=Такова автоматично откриване не е възможно с настоящите браузъри DefaultValuesDesc=Тук може да дефинирате стойността по подразбиране, която искате да използвате, когато създавате нов запис заедно с филтрите по подразбиране или реда за сортиране на записите в списъка. DefaultCreateForm=Стойности по подразбиране (за използване в формуляри) DefaultSearchFilters=Филтри за търсене по подразбиране @@ -1486,158 +1489,158 @@ DefaultSortOrder=Поръчки за сортиране по подразбир DefaultFocus=Полета за фокусиране по подразбиране DefaultMandatory=Задължителни полета по подразбиране във формуляри ##### Products ##### -ProductSetup=Настройка на модул Продукти -ServiceSetup=Услуги модул за настройка -ProductServiceSetup=Продукти и услуги модули за настройка +ProductSetup=Настройка на модулa за продукти +ServiceSetup=Настройка на модулa за услуги +ProductServiceSetup=Настройка на модула за продукти и услуги NumberOfProductShowInSelect=Максимален брой продукти за показване в комбинирани списъци за избор (0 = без ограничение) ViewProductDescInFormAbility=Показване на описанията на продуктите във формуляри (в противен случай се показват в изскачащи подсказки) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal +MergePropalProductCard=Активиране на опция за обединяване на продуктови PDF документи налични в секцията "Прикачени файлове и документи" в раздела "Свързани файлове" на търговско предложение, ако се продукт / услуга в предложението и модел за документи Azur ViewProductDescInThirdpartyLanguageAbility=Показване на описанията на продуктите в езика на контрагента UseSearchToSelectProductTooltip=Също така, ако имате голям брой продукти (> 100 000) може да увеличите скоростта като зададете константата PRODUCT_DONOTSEARCH_ANYWHERE да бъде със стойност "1" в Настройки - Други настройки. След това търсенето ще бъде ограничено до началото на низ. UseSearchToSelectProduct=Изчакване, докато бъде натиснат клавиш преди да се зареди съдържанието на комбинирания списък с продукти (това може да увеличи производителността, ако имате голям брой продукти, но е по-малко удобно) -SetDefaultBarcodeTypeProducts=Тип баркод по подразбиране за продукти -SetDefaultBarcodeTypeThirdParties=Тип баркод по подразбиране за контрагенти -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Модул за генериране и проверка на кода на продукта (продукт или услуга) -ProductOtherConf= Продукт / услуга конфигурация +SetDefaultBarcodeTypeProducts=Тип баркод по подразбиране, който да се използва за продукти +SetDefaultBarcodeTypeThirdParties=Тип баркод по подразбиране, който се използва за контрагенти +UseUnits=Определете мерна единица за количество, която да се използва в поръчки, предложения или фактури +ProductCodeChecker= Модул за генериране и проверка на продуктовия код (продукт или услуга) +ProductOtherConf= Конфигуриране на продукт / услуга IsNotADir=не е директория! ##### Syslog ##### -SyslogSetup=Настройки на модул Системен дневниk -SyslogOutput=Логове изходи +SyslogSetup=Настройка на модула за отстраняване на грешки +SyslogOutput=Изходни регистри SyslogFacility=Механизъм SyslogLevel=Ниво -SyslogFilename=Име на файла и пътя -YouCanUseDOL_DATA_ROOT=Можете да използвате DOL_DATA_ROOT / dolibarr.log за лог файл в Dolibarr директория "документи". Можете да зададете различен път, за да се съхранява този файл. -ErrorUnknownSyslogConstant=Постоянни %s не е известен Syslog постоянно +SyslogFilename=Име на файла и път +YouCanUseDOL_DATA_ROOT=Може да използвате DOL_DATA_ROOT/dolibarr.log за регистрационен файл в Dolibarr "documents" директорията. Може да зададете различен път за съхранение на този файл. +ErrorUnknownSyslogConstant=Константата %s не е известна константа на Syslog OnlyWindowsLOG_USER=Windows поддържа само LOG_USER CompressSyslogs=Компресиране и архивиране на журнали за грешки (генерирани от модула Журнали за отстраняване на грешки) SyslogFileNumberOfSaves=Архивирани журнали ConfigureCleaningCronjobToSetFrequencyOfSaves=Конфигурирайте планираната задача за почистване, за да зададете честотата на архивиране на журнала ##### Donations ##### -DonationsSetup=Настройка на модул Дарение -DonationsReceiptModel=Шаблон на получаване на дарение +DonationsSetup=Настройка на модула за дарения +DonationsReceiptModel=Шаблон за получаване на дарение ##### Barcode ##### -BarcodeSetup=Настройки на модул Баркод -PaperFormatModule=Печат модул формат +BarcodeSetup=Настройка на модула за баркод +PaperFormatModule=Модул за печат BarcodeEncodeModule=Тип кодиране на баркод CodeBarGenerator=Баркод генератор -ChooseABarCode=Не е зададен генератор -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Баркод на типа EAN8 +ChooseABarCode=Не е определен генератор +FormatNotSupportedByGenerator=Форматът не се поддържа от този генератор +BarcodeDescEAN8=Баркод от тип EAN8 BarcodeDescEAN13=Баркод от тип EAN13 BarcodeDescUPC=Баркод от тип UPC BarcodeDescISBN=Баркод от тип ISBN -BarcodeDescC39=Баркод от типа С39 +BarcodeDescC39=Баркод от тип C39 BarcodeDescC128=Баркод от тип C128 BarcodeDescDATAMATRIX=Баркод от тип Datamatrix BarcodeDescQRCODE=Баркод от тип QR код -GenbarcodeLocation=Баркод генериране с инструмент от командния ред (използван от вътрешния генератор за някои видове баркод). Трябва да е съвместима с"genbarcode".
За пример: /usr/local/bin/genbarcode -BarcodeInternalEngine=Вътрешен генератор -BarCodeNumberManager=Менажер за автоматично дефиниране на баркод номера +GenbarcodeLocation=Инструмент за генериране на баркод, чрез за команден ред (използван от вътрешен механизъм за някои видове баркодове). Трябва да е съвместим с "genbarcode".
Например: /usr/local/bin/genbarcode +BarcodeInternalEngine=Вътрешен механизъм +BarCodeNumberManager=Мениджър за автоматично определяне на номерата на баркода ##### Prelevements ##### WithdrawalsSetup=Настройка на модул Директни дебитни плащания ##### ExternalRSS ##### -ExternalRSSSetup=Настройки на внасянето на външен RSS -NewRSS=Нова RSS хранилка -RSSUrl=RSS URL +ExternalRSSSetup=Настройка за импортиране на външни RSS +NewRSS=Нова RSS емисия +RSSUrl=RSS URL връзка RSSUrlExample=Интересна RSS емисия ##### Mailing ##### -MailingSetup=Настройка на модул Имейли +MailingSetup=Настройка на модула за имейл известия MailingEMailFrom=Подател на имейли (From), изпратени от модула Електронна поща MailingEMailError=Обратен имейл адрес (Errors-to) за имейли с грешки -MailingDelay=Seconds to wait after sending next message +MailingDelay=Секунди за изчакване преди изпращане на следващото съобщение ##### Notification ##### NotificationSetup=Настройка на модул Имейл известяване NotificationEMailFrom=Подател на имейли (From), изпратени от модула за известяване FixedEmailTarget=Получател ##### Sendings ##### SendingsSetup=Настройка на модула Експедиция -SendingsReceiptModel=Изпращане получаване модел -SendingsNumberingModules=Sendings номериране модули -SendingsAbility=Support shipping sheets for customer deliveries +SendingsReceiptModel=Модели на документи за изпращания +SendingsNumberingModules=Модели за номериране на изпращания +SendingsAbility=Поддържани листове за доставки към клиенти NoNeedForDeliveryReceipts=В повечето случаи експедиционните формуляри се използват както за формуляри за доставка на клиенти (списък на продуктите, които трябва да бъдат изпратени), така и за формуляри, които са получени и подписани от клиента. Следователно разписката за доставка на продукти е дублираща функция и рядко се активира. -FreeLegalTextOnShippings=Free text on shipments +FreeLegalTextOnShippings=Свободен текст в изпращания ##### Deliveries ##### -DeliveryOrderNumberingModules=Продукти доставки получаване номерацията модул -DeliveryOrderModel=Продукти доставки получаване модел -DeliveriesOrderAbility=Поддръжка продукти доставки постъпления -FreeLegalTextOnDeliveryReceipts=Свободен текст на разписки за доставка +DeliveryOrderNumberingModules=Модели за номериране на разписки за доставка +DeliveryOrderModel=Модели на документи за разписки за доставка +DeliveriesOrderAbility=Поддръжка на разписки за доставка +FreeLegalTextOnDeliveryReceipts=Свободен текст в разписки за доставка ##### FCKeditor ##### -AdvancedEditor=Разширено редактор -ActivateFCKeditor=Активирайте разширен редактор за: -FCKeditorForCompany=WYSIWIG създаване / редактиране на елементи на описание и бележка (с изключение на продукти / услуги) -FCKeditorForProduct=WYSIWIG създаване / редактиране на продукти / услуги описание и бележка +AdvancedEditor=Разширен редактор +ActivateFCKeditor=Активиране на разширен редактор за: +FCKeditorForCompany=WYSIWIG създаване / промяна на описание на елементите и бележки (с изключение на продукти / услуги) +FCKeditorForProduct=WYSIWIG създаване / промяна на описание на продукти / услуги FCKeditorForProductDetails=WYSIWIG създаване / редактиране на продуктови редове за всички обекти (предложения, поръчки, фактури и др.). Внимание: Използването на тази опция не се препоръчва, тъй като може да създаде проблеми с някои специални символи и при форматиране на страниците, по време на генериране на PDF файловете. -FCKeditorForMailing= WYSIWIG създаване / редактиране на писма -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature +FCKeditorForMailing= WYSIWIG създаване / промяна на масови имейли (Инструменти -> Масови имейли) +FCKeditorForUserSignature=WYSIWIG създаване / промяна на подпис на потребители FCKeditorForMail=WYSIWIG създаване / редактиране на цялата поща (с изключение на Настройки - Електронна поща) ##### Stock ##### StockSetup=Настройка на модул Наличности IfYouUsePointOfSaleCheckModule=Ако използвате модула Точка за продажби (POS), предоставен по подразбиране или чрез външен модул, тази настройка може да бъде игнорирана от вашия POS модул. Повечето POS модули по подразбиране са разработени да създават веднага фактура, след което да намаляват наличностите, независимо от опциите тук. В случай, че имате нужда или не от автоматично намаляване на наличностите при регистриране на продажба от POS проверете и настройката на вашия POS модул. ##### Menu ##### -MenuDeleted=Меню заличават +MenuDeleted=Менюто е изтрито Menus=Менюта TreeMenuPersonalized=Персонализирани менюта NotTopTreeMenuPersonalized=Персонализирани менюта, които не са свързани с главното меню NewMenu=Ново меню Menu=Избор на меню -MenuHandler=Меню манипулатор -MenuModule=Източник модул -HideUnauthorizedMenu= Скриване на неоторизирани менюта (сива) -DetailId=Id меню -DetailMenuHandler=Манипулатор меню, където да покаже ново меню -DetailMenuModule=Модул име, ако меню влизането идват от модул -DetailType=Вид на менюто (горната или лявата) -DetailTitre=Меню етикет или код на етикета за превод +MenuHandler=Манипулатор на меню +MenuModule=Модул източник +HideUnauthorizedMenu= Скриване на неоторизирани менюта (сиво) +DetailId=Идентификатор на меню +DetailMenuHandler=Манипулатор на меню, в който да се покаже новото меню +DetailMenuModule=Име на модула, ако входните данни на менюто идват от модул +DetailType=Тип меню (горе или вляво) +DetailTitre=Етикет на менюто или етикет на кода за превод DetailUrl=URL адрес, където менюто ви изпратя (Absolute на URL линк или външна връзка с http://) -DetailEnabled=Състояние да покаже или не влизането -DetailRight=Условие, за да се покаже неразрешени менюта сиви -DetailLangs=Lang името на файла за превод на етикета код -DetailUser=Intern / EXTERN / +DetailEnabled=Условие за показване или не на вписване +DetailRight=Условие за показване на неоторизирани (сиви) менюта +DetailLangs=Име на .lang файла с етикет на кода на превод +DetailUser=Вътрешен / Външен / Всички Target=Цел DetailTarget=Насочване за връзки (_blank top отваря нов прозорец) -DetailLevel=Level (-1: горното меню, 0: хедър, меню> 0 меню и подменю) -ModifMenu=Меню промяна -DeleteMenu=Изтриване на елемент от менюто +DetailLevel=Ниво (-1:top menu, 0:header menu, >0 menu and sub menu) +ModifMenu=Промяна на менюто +DeleteMenu=Изтриване на менюто ConfirmDeleteMenu=Сигурни ли сте, че искате да изтриете записа в менюто %s ? -FailedToInitializeMenu=Неуспешно инициализиране на меню +FailedToInitializeMenu=Неуспешно инициализиране на менюто ##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=Дължимия ДДС +TaxSetup=Настройка на модул за данъци, социални или фискални данъци и дивиденти +OptionVatMode=Изискуемост на ДДС OptionVATDefault=Стандартна основа -OptionVATDebitOption=Accrual basis +OptionVATDebitOption=Основа за начисляване OptionVatDefaultDesc=ДДС се дължи:
- при доставка на стоки (въз основа на датата на фактурата)
- при плащания на услуги OptionVatDebitOptionDesc=ДДС се дължи:
- при доставка на стоки (въз основа на датата на фактурата)
- по фактура (дебит) за услуги OptionPaymentForProductAndServices=Парична база за продукти и услуги OptionPaymentForProductAndServicesDesc=ДДС се дължи:
- при плащане на стоки
- при плащания за услуги SummaryOfVatExigibilityUsedByDefault=ДДС се изисква по подразбиране според избраната опция: OnDelivery=При доставка -OnPayment=На плащане -OnInvoice=На фактура -SupposedToBePaymentDate=Дата на плащане, използвани -SupposedToBeInvoiceDate=Дата на фактура използва -Buy=Купувам +OnPayment=При плащане +OnInvoice=При фактуриране +SupposedToBePaymentDate=Използва се дата на плащането +SupposedToBeInvoiceDate=Използва се дата на фактурата +Buy=Покупка Sell=Продажба -InvoiceDateUsed=Дата на фактура използва +InvoiceDateUsed=Използва се дата на фактурата YourCompanyDoesNotUseVAT=Вашата фирма не е определила да използва ДДС (Начало - Настройки - Фирма / Организация), така че няма опции за настройка на ДДС. AccountancyCode=Счетоводен код -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code +AccountancyCodeSell=Счетоводен код за продажба +AccountancyCodeBuy=Счетоводен код за покупка ##### Agenda ##### -AgendaSetup=Събития и натъкмяване на дневен ред модул -PasswordTogetVCalExport=, За да разреши износ връзка -PastDelayVCalExport=Не изнася случай по-стари от +AgendaSetup=Настройка на модула за събития и календар +PasswordTogetVCalExport=Ключ за оторизация на връзката за експортиране +PastDelayVCalExport=Да не се експортират събития по-стари от AGENDA_USE_EVENT_TYPE=Използване на видове събития (управлявани в меню Настройка - Речници - Видове събития в календара) AGENDA_USE_EVENT_TYPE_DEFAULT=Автоматично задаване на стойност по подразбиране за вид събитие във формуляра при създаване на събитие AGENDA_DEFAULT_FILTER_TYPE=Автоматично задаване на стойност по подразбиране за вид събитие във филтъра за търсене на календара AGENDA_DEFAULT_FILTER_STATUS=Автоматично задаване на стойност по подразбиране за статус на събитие във филтъра за търсене на календара -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda +AGENDA_DEFAULT_VIEW=Кой раздел да се зарежда по подразбиране, когато се отваря календара AGENDA_REMINDER_EMAIL=Активиране на напомняне за събития, чрез имейли (опцията за напомняне / закъснение може да бъде определена за всяко събитие). Забележка: Модулът %s трябва да бъде активиран и правилно настроен, за да се изпращат напомняния в определеното време. AGENDA_REMINDER_BROWSER=Активиране на напомняне за събития в браузъра на потребителя (когато бъде достигната датата на събитието, всеки потребител може да отхвърли известието от браузъра) AGENDA_REMINDER_BROWSER_SOUND=Активиране на звуково известяване AGENDA_SHOW_LINKED_OBJECT=Показване на свързания обект в календара ##### Clicktodial ##### -ClickToDialSetup=Кликнете, за да наберете настройка модул +ClickToDialSetup=Настройка на модула за набиране (ClickToDial) ClickToDialUrlDesc=URL, който се извиква при кликване върху телефонен номер. В URL адреса може да използвате маркери
__PHONETO__, който ще бъде заменен с телефонния номер на лицето, на което ще се обаждате
__PHONEFROM__, който ще бъде заменен с телефонния номер на обаждащия се (вашият)
__LOGIN__, който ще бъде заменен с clicktodial потребителско име (дефиниран в картата на потребителя)
__PASS__, който ще бъде заменен с clicktodial парола (дефинирана в картата на потребителя). ClickToDialDesc=Този модул прави възможно кликването върху телефонни номера. С едно щракване върху иконата ще наберете телефонният номер. Това може да се използва за извикване на Call-Center система от Dolibarr, която може да избере например телефонен номер в SIP система. ClickToDialUseTelLink=Просто използвайте връзката "tel:" за телефонни номера @@ -1646,61 +1649,61 @@ ClickToDialUseTelLinkDesc=Използвайте този метод, ако в CashDesk=Точка за продажба CashDeskSetup=Настройка на модул Точка за продажби CashDeskThirdPartyForSell=Стандартен контрагент по подразбиране, който да се използва за продажби -CashDeskBankAccountForSell=Акаунт по подразбиране да се използва за получаване на парични плащания +CashDeskBankAccountForSell=Сметка по подразбиране, която да се използва за получаване на плащания в брой CashDeskBankAccountForCheque= Банкова сметка по подразбиране, която да се използва за получаване на плащания с чек -CashDeskBankAccountForCB= Акаунт по подразбиране да се използва за получаване на парични плащания с кредитни карти +CashDeskBankAccountForCB= Сметка по подразбиране, която да се използва за получаване на плащания с кредитни карти CashDeskDoNotDecreaseStock=Изключване на намаляването на наличности, когато продажбата се извършва от точка за продажби (ако стойността е "НЕ", намаляването на наличности се прави за всяка продажба, извършена от POS, независимо от опцията, определена в модула Наличности). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease +CashDeskIdWareHouse=Принуждаване и ограничаване използването на склад при намаляване на наличностите StockDecreaseForPointOfSaleDisabled=Намаляването на наличности от точка за продажби е деактивирано StockDecreaseForPointOfSaleDisabledbyBatch=Намаляването на наличности в POS не е съвместимо с модула Продуктови партиди (активен в момента), така че намаляването на наличности е деактивирано. CashDeskYouDidNotDisableStockDecease=Не сте деактивирали намаляването на запасите при продажбата от точка за продажби, поради тази причина се изисква наличие на склад. ##### Bookmark ##### -BookmarkSetup=Bookmark настройка модул +BookmarkSetup=Настройка на модула на отметки BookmarkDesc=Този модул позволява да се управляват отметки. Може също да добавяте преки пътища към всички страници на Dolibarr или външни уеб сайтове в лявото меню. NbOfBoomarkToShow=Максимален брой отметки, които да се показват в лявото меню ##### WebServices ##### -WebServicesSetup=WebServices модул за настройка -WebServicesDesc=С активирането на този модул, Dolibarr се превърне в уеб сървъра на услугата за предоставяне на различни уеб услуги. -WSDLCanBeDownloadedHere=WSDL ЕВРОВОК файлове на предоставяните услуги може да изтеглите от тук +WebServicesSetup=Настройка на модул за уеб услуги +WebServicesDesc=Чрез активирането на този модул, Dolibarr се превръща в сървър за уеб услуги, който осигурява различни уеб услуги. +WSDLCanBeDownloadedHere=WSDL дескрипторните файлове на предоставените услуги могат да бъдат свалени тук EndPointIs=SOAP клиентите трябва да изпращат заявките си до крайна точка на Dolibarr, достъпна чрез URL ##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. +ApiSetup=Настройка на модула API +ApiDesc=Чрез активирането на този модул Dolibarr става REST сървър за предоставяне на различни уеб услуги. ApiProductionMode=Активиране на производствен режим (това ще активира използването на кеш при управление на услуги) ApiExporerIs=Можете да изследвате и тествате API на URL адрес -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API +OnlyActiveElementsAreExposed=Изложени са само елементи от активираните модули +ApiKey=Ключ за API WarningAPIExplorerDisabled=API Explorer е деактивиран. API Explorer не се изисква да предоставя API услуги. Той е инструмент за разработчици за намиране / тестване на REST API. Ако имате нужда от този инструмент, влезте в настройките на модула API REST, за да го активирате. ##### Bank ##### -BankSetupModule=Модул за настройка на банката +BankSetupModule=Настройка на модула за банки и парични сметки FreeLegalTextOnChequeReceipts=Свободен текст в чековите разписки -BankOrderShow=Показване ред на банкови сметки за страни, които използват "подробен номер на банкова +BankOrderShow=Ред на показване на банкови сметки за държави, използващи "подробен банков номер" BankOrderGlobal=Общ -BankOrderGlobalDesc=Обща дисплей за +BankOrderGlobalDesc=Общ ред на показване BankOrderES=Испански -BankOrderESDesc=Испански дисплей за +BankOrderESDesc=Испански ред за показване ChequeReceiptsNumberingModule=Модел за номериране на чекови разписки ##### Multicompany ##### -MultiCompanySetup=Multi-модул за настройка компания +MultiCompanySetup=Настройка на модула за няколко фирми ##### Suppliers ##### SuppliersSetup=Настройка на модул Доставчици SuppliersCommandModel=Пълен шаблон на поръчка за покупка (лого ...) SuppliersInvoiceModel=Пълен шаблон на фактура за доставка (лого ...) SuppliersInvoiceNumberingModel=Модели за номериране на фактури за доставка -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval +IfSetToYesDontForgetPermission=Ако е избрано ДА, не забравяйте да предоставите права на групи или потребители, от които се очаква второто одобрение. ##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP MaxMind модул за настройка -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Имайте предвид, че ИП в страната файла с данни трябва да е в директория PHP ви да прочетете (Проверете PHP open_basedir настройка и разрешения файловата система). -YouCanDownloadFreeDatFileTo=Можете да изтеглите безплатна демо версия на файла GeoIP MaxMind страната в %s. -YouCanDownloadAdvancedDatFileTo=Можете също да изтеглите по-пълна версия, с актуализации на файла GeoIP MaxMind страната в %s. -TestGeoIPResult=Тест на преобразуване IP -> страната +GeoIPMaxmindSetup=Настройка на модула GeoIP Maxmind +PathToGeoIPMaxmindCountryDataFile=Път до файл, съдържащ Maxmind IP за превод на държава.
Примери:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat +NoteOnPathLocation=Обърнете внимание, че вашият IP файл с данни за държавата трябва да е в директория, която може да се чете от PHP (проверете настройките на вашата PHP open_basedir и правата на файловата система). +YouCanDownloadFreeDatFileTo=Може да изтеглите безплатна демо версия на Maxmind GeoIP файла за държавата от %s. +YouCanDownloadAdvancedDatFileTo=Може също така да изтеглите по-пълна версия, с актуализации на Maxmind GeoIP файла за държавата от %s. +TestGeoIPResult=Тест за конвертиране IP -> Държава ##### Projects ##### -ProjectsNumberingModules=Проекти номериране модул -ProjectsSetup=Инсталационния проект модул -ProjectsModelModule=Проект доклади документ модел -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model +ProjectsNumberingModules=Модел за номериране на проекти +ProjectsSetup=Настройка на модула за проекти +ProjectsModelModule=Модели на документи за справки по проекти +TasksNumberingModules=Модел за номериране на задачи +TaskModelModule=Модели на документи за справки по задачи UseSearchToSelectProject=Изчакване, докато се натисне клавиш, преди да се зареди съдържанието на комбинирания списък с проекти.
Това може да подобри производителността при по-голям брой проекти, но е по-малко удобно. ##### ECM (GED) ##### ##### Fiscal Year ##### @@ -1712,70 +1715,70 @@ CloseFiscalYear=Затваряне на счетоводен период DeleteFiscalYear=Изтриване на счетоводен период ConfirmDeleteFiscalYear=Сигурни ли сте, че искате да изтриете този счетоводен период? ShowFiscalYear=Преглед на счетоводен период -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format +AlwaysEditable=Винаги може да се редактира +MAIN_APPLICATION_TITLE=Промяна на визуалното име на Dolibarr (Внимание: Задаването на персонализирано име тук може да наруши функцията за автоматично попълване на входни данни при използване на мобилното приложение DoliDroid) +NbMajMin=Минимален брой главни букви +NbNumMin=Минимален брой цифрови символи +NbSpeMin=Минимален брой специални символи +NbIteConsecutive=Максимален брой повтарящи се символи +NoAmbiCaracAutoGeneration=Да не се използват двусмислени символи ("1","l","i","|","0","O") за автоматично генериране +SalariesSetup=Настройка на модула за заплати +SortOrder=Ред на сортиране +Format=Формат TypePaymentDesc=0: Вид на плащане за клиент, 1: Вид плащане за доставчик, 2: Вид на плащане за клиенти и доставчици -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document +IncludePath=Включва път (дефиниран в променлива %s) +ExpenseReportsSetup=Настройка на модула за разходни отчети +TemplatePDFExpenseReports=Модели на документи за разходни отчети ExpenseReportsIkSetup=Настройка на модул Разходни отчети - Показания на километража ExpenseReportsRulesSetup=Настройка на модул Разходни отчети - Правила ExpenseReportNumberingModules=Модул за номериране на разходни отчети -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. +NoModueToManageStockIncrease=Не е активиран модул, способен да управлява автоматичното увеличаване на наличности. Увеличаването на наличности ще се извършва само при ръчно въвеждане. YouMayFindNotificationsFeaturesIntoModuleNotification=Може да откриете опции за известия по имейл като активирате и конфигурирате модула "Известия". ListOfNotificationsPerUser=Списък с известия за потребител* ListOfNotificationsPerUserOrContact=Списък с известия (събития), налични за потребител* или за контакт** ListOfFixedNotifications=Списък с фиксирани известия GoOntoUserCardToAddMore=Отидете в раздела „Известия“ на съответния потребител, за да добавите или премахнете известия за този потребител GoOntoContactCardToAddMore=Отидете в раздела „Известия“ на съответния контрагент, за да добавите или премахнете известия за съответните контакти / адреси -Threshold=Threshold +Threshold=Граница BackupDumpWizard=Асистент за създаване на архивния файл -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: +SomethingMakeInstallFromWebNotPossible=Инсталирането на външен модул не е възможно от уеб интерфейса, поради следната причина: SomethingMakeInstallFromWebNotPossible2=Поради тази причина описаният тук процес за актуализация е ръчен процес, който може да се изпълнява само от потребител със съответните права. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. +InstallModuleFromWebHasBeenDisabledByFile=Инсталирането на външен модул в приложението е деактивирано от администратора на системата. Трябва да го помолите да премахне файла %s, за да разреши тази функция. ConfFileMustContainCustom=Инсталирането или създаването на външен модул в приложението е необходимо да съхрани файловете на модула в директорията %s. За да се обработва тази директория от Dolibarr, трябва да настроите вашият conf/conf.php файл да съдържа двете директивни линии:
$dolibarr_main_url_root_alt = '/custom';
$dolibarr_main_document_root_alt = '%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over +HighlightLinesOnMouseHover=Маркиране на редове в таблица, когато мишката преминава отгоре HighlightLinesColor=Цвят на подчертания ред при преминаване на мишката отгоре (използвайте 'ffffff', ако не искате да се подчертава) HighlightLinesChecked=Цвят на подчертания ред, когато е маркиран (използвайте 'ffffff',ако не искате да се подчертава) TextTitleColor=Цвят на текста в заглавието на страницата LinkColor=Цвят на връзките PressF5AfterChangingThis=Натиснете CTRL + F5 на клавиатурата или изчистете кеша на браузъра си след като промените тази стойност, за да стане ефективна. NotSupportedByAllThemes=Ще работи с основните теми, но може да не се поддържат външни теми. -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu +BackgroundColor=Цвят на фона +TopMenuBackgroundColor=Цвят на фона в горното меню TopMenuDisableImages=Скриване на изображения в горното меню -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line +LeftMenuBackgroundColor=Цвят на фона в лявото меню +BackgroundTableTitleColor=Цвят на фона в реда със заглавието на таблица BackgroundTableTitleTextColor=Цвят на текста в заглавието на таблиците -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. +BackgroundTableLineOddColor=Цвят на фона в нечетните редове на таблица +BackgroundTableLineEvenColor=Цвят на фона в четните редове на таблица +MinimumNoticePeriod=Минимален срок за известяване (вашата молба за отпуск трябва да бъде изпратена преди този срок) +NbAddedAutomatically=Брой дни, добавени към броячите на потребителите (автоматично) всеки месец +EnterAnyCode=Това поле съдържа референция за идентифициране на реда. Въведете стойност по ваш избор, но без специални символи. UnicodeCurrency=Въведете тук между скобите, десетичен код, който представлява символа на валутата. Например: за $, въведете [36] - за Бразилски Реал R$ [82,36] - за €, въведете [8364] ColorFormat=RGB цвета е в HEX формат, например: FF0000 -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate +PositionIntoComboList=Позиция на реда в комбинирани списъци +SellTaxRate=Ставка на данъка върху продажби RecuperableOnly=Да за ДДС "Не възприеман, но възстановим", предназначен за някои области във Франция. Запазете стойността "Не" във всички останали случаи. UrlTrackingDesc=Ако доставчикът или транспортната услуга предлага страница или уеб сайт за проверка на статуса на вашите пратки, то може да ги въведете тук. Може да използвате ключа {TRACKID} в URL параметрите, така че системата да го замени с проследяващия номер, който потребителят е въвел в картата на пратката. OpportunityPercent=Когато създавате нова възможност определяте приблизително очакваната сума от проекта / възможността. Според статуса на възможността тази сума ще бъде умножена по определения му процент, за да се оцени общата сума, която всичките ви възможности могат да генерират. Стойността е в проценти (между 0 и 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template +TemplateForElement=Този шаблон е специализиран за елемент +TypeOfTemplate=Тип шаблон TemplateIsVisibleByOwnerOnly=Шаблонът е видим само за собственика му VisibleEverywhere=Видим навсякъде VisibleNowhere=Не се вижда никъде -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum +FixTZ=Поправка на времева зона +FillFixTZOnlyIfRequired=Пример: +2 (попълнете само при проблем) +ExpectedChecksum=Очаквана контролна сума +CurrentChecksum=Текуща контролна сума ForcedConstants=Необходими постоянни стойности MailToSendProposal=Клиентски предложения MailToSendOrder=Поръчки за продажба @@ -1790,7 +1793,7 @@ MailToThirdparty=Контрагенти MailToMember=Членове MailToUser=Потребители MailToProject=Страница "Проекти" -ByDefaultInList=Показване по подразбиране при показа на списък +ByDefaultInList=Показване по подразбиране в списъчен изглед YouUseLastStableVersion=Използвате последната стабилна версия TitleExampleForMajorRelease=Пример за съобщение, което може да използвате, за да обявите това главно издание (не се колебайте да го използвате на уебсайтовете си) TitleExampleForMaintenanceRelease=Пример за съобщение, което може да използвате, за да обявите това издание за поддръжка (не се колебайте да го използвате на уебсайтовете си) @@ -1923,5 +1926,5 @@ IFTTTDesc=Този модул е предназначен да задейств UrlForIFTTT=URL адрес за IFTTT YouWillFindItOnYourIFTTTAccount=Ще го намерите във вашият IFTTT акаунт EndPointFor=Крайна точка за %s: %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +DeleteEmailCollector=Изтриване на имейл колекционер +ConfirmDeleteEmailCollector=Сигурни ли те, че искате да изтриете този колекционер на имейли? diff --git a/htdocs/langs/bg_BG/agenda.lang b/htdocs/langs/bg_BG/agenda.lang index 198781d303e..74975f5a6e7 100644 --- a/htdocs/langs/bg_BG/agenda.lang +++ b/htdocs/langs/bg_BG/agenda.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - agenda -IdAgenda=ID на събитие +IdAgenda=Идентификатор на събитие Actions=Събития -Agenda=Дневен ред +Agenda=Календар TMenuAgenda=Календар -Agendas=Дневен ред +Agendas=Календари LocalAgenda=Вътрешен календар ActionsOwnedBy=Събитие принадлежащо на ActionsOwnedByShort=Собственик @@ -11,74 +11,74 @@ AffectedTo=Възложено на Event=Събитие Events=Събития EventsNb=Брой събития -ListOfActions=Списък на събитията +ListOfActions=Списък на събития EventReports=Отчети за събития -Location=Място -ToUserOfGroup=За всеки потребител в група -EventOnFullDay=Събитие по цял ден (дни) +Location=Местоположение +ToUserOfGroup=на всеки потребител от група +EventOnFullDay=Целодневно събитие MenuToDoActions=Всички незавършени събития MenuDoneActions=Всички прекратени събития MenuToDoMyActions=Моите незавършени събития MenuDoneMyActions=Моите прекратени събития -ListOfEvents=Списък на събитията (Вътрешен календар) -ActionsAskedBy=Събития създадени от -ActionsToDoBy=Събития възложени на -ActionsDoneBy=Събития извършени от -ActionAssignedTo=Събитие определено на +ListOfEvents=Списък на събития (Вътрешен календар) +ActionsAskedBy=Събития, съобщени от +ActionsToDoBy=Събития, възложени на +ActionsDoneBy=Събития, извършени от +ActionAssignedTo=Събитие, възложено на ViewCal=Месечен изглед ViewDay=Дневен изглед ViewWeek=Седмичен изглед ViewPerUser=Изглед по потребител -ViewPerType=Преглед по тип +ViewPerType=Изглед по тип AutoActions= Автоматично попълване -AgendaAutoActionDesc= Тук можете да дефинирате събития, които искате Dolibarr да създаде автоматично в бележника. Ако нищо не е отметнато, в регистрите ще бъдат включени само ръчни добавените събития и ще се показват в бележника. Автоматично проследяваните събития, извършени върху обекти (валидиране, промяна на състоянието), няма да бъдат запазени. +AgendaAutoActionDesc= Тук може да дефинирате събития, които искате Dolibarr да създаде автоматично в календара. Ако нищо не е отметнато, в регистрите ще бъдат включени само ръчно добавените събития и ще се показват в календара. Автоматично проследяваните събития, извършени върху обекти (валидиране, промяна на състояние) няма да бъдат запазени. AgendaSetupOtherDesc= Тази страница предлага опции, позволяващи експортирането на вашите Dolibarr събития във външен календар (Thunderbird, Google Calendar и др.) -AgendaExtSitesDesc=Тази страница позволява да се обяви външните източници на календари, за да видят своите събития в дневния ред Dolibarr. -ActionsEvents=Събития, за които Dolibarr ще създаде действие в дневния ред автоматично -EventRemindersByEmailNotEnabled=Напомнянията за събития по имейл не са активирани в настройката на модула %s. +AgendaExtSitesDesc=Тази страница позволява да се декларират външни източници на календари, за да се видят техните събития в календара на Dolibarr. +ActionsEvents=Събития, за които Dolibarr ще създаде автоматично събитие в календара +EventRemindersByEmailNotEnabled=Напомнянията за събития по имейл не са активирани в настройката на модул %s. ##### Agenda event labels ##### NewCompanyToDolibarr=Контрагент %s е създаден COMPANY_DELETEInDolibarr=Контрагент %s е изтрит -ContractValidatedInDolibarr=Контакт %s е валидиран +ContractValidatedInDolibarr=Договор %s е валидиран CONTRACT_DELETEInDolibarr=Договор %s е изтрит PropalClosedSignedInDolibarr=Предложение %s е подписано -PropalClosedRefusedInDolibarr=Предложение %s е отказано -PropalValidatedInDolibarr=Предложение %s валидирано +PropalClosedRefusedInDolibarr=Предложение %s е отхвърлено +PropalValidatedInDolibarr=Предложение %s е валидирано PropalClassifiedBilledInDolibarr=Предложение %s е фактурирано -InvoiceValidatedInDolibarr=Фактура %s валидирани -InvoiceValidatedInDolibarrFromPos=Фактура %s валидирана от POS -InvoiceBackToDraftInDolibarr=Фактура %s се върнете в състояние на чернова -InvoiceDeleteDolibarr=Фактура %s изтрита +InvoiceValidatedInDolibarr=Фактура %s е валидирана +InvoiceValidatedInDolibarrFromPos=Фактура %s е валидирана от POS +InvoiceBackToDraftInDolibarr=Фактура %s е върната в статус на чернова +InvoiceDeleteDolibarr=Фактура %s е изтрита InvoicePaidInDolibarr=Фактура %s е платена InvoiceCanceledInDolibarr=Фактура %s е анулирана MemberValidatedInDolibarr=Член %s е валидиран MemberModifiedInDolibarr=Член %s е променен MemberResiliatedInDolibarr=Член %s е прекратен MemberDeletedInDolibarr=Член %s е изтрит -MemberSubscriptionAddedInDolibarr=Абонамент %s за член %s е добавен -MemberSubscriptionModifiedInDolibarr=Абонамент %s за член %s е променен -MemberSubscriptionDeletedInDolibarr=Абонамент %s за член %s е изтрит +MemberSubscriptionAddedInDolibarr=Членски внос %s за член %s е добавен +MemberSubscriptionModifiedInDolibarr=Членски внос %s за член %s е променен +MemberSubscriptionDeletedInDolibarr=Членски внос %s за член %s е изтрит ShipmentValidatedInDolibarr=Пратка %s е валидирана ShipmentClassifyClosedInDolibarr=Пратка %s е фактурирана ShipmentUnClassifyCloseddInDolibarr=Пратка %s е повторно отворена -ShipmentBackToDraftInDolibarr=Пратка %s е върната в чернова +ShipmentBackToDraftInDolibarr=Пратка %s е върната в статус чернова ShipmentDeletedInDolibarr=Пратка %s е изтрита OrderCreatedInDolibarr=Поръчка %s е създадена -OrderValidatedInDolibarr=Поръчка %s валидирани -OrderDeliveredInDolibarr=Поръчка %s класифицирана доставена -OrderCanceledInDolibarr=Поръчка %s отменен -OrderBilledInDolibarr=Поръчка %s класифицирана таксувана -OrderApprovedInDolibarr=Поръчка %s одобрен -OrderRefusedInDolibarr=Поръчка %s отказана -OrderBackToDraftInDolibarr=Поръчка %s се върне в състояние на чернова +OrderValidatedInDolibarr=Поръчка %s е валидирана +OrderDeliveredInDolibarr=Поръчка %s е класифицирана като доставена +OrderCanceledInDolibarr=Поръчка %s е анулирана +OrderBilledInDolibarr=Поръчка %s е класифицирана като фактурирана +OrderApprovedInDolibarr=Поръчка %s е одобрена +OrderRefusedInDolibarr=Поръчка %s е отхвърлена +OrderBackToDraftInDolibarr=Поръчка %s е върната в статус на чернова ProposalSentByEMail=Търговско предложение %s е изпратено по имейл ContractSentByEMail=Договор %s е изпратен по имейл OrderSentByEMail=Клиентска поръчка %s е изпратена по имейл -InvoiceSentByEMail=Клиентска фактура %s е изпратена по имейл +InvoiceSentByEMail=Фактура за продажба %s е изпратена по имейл SupplierOrderSentByEMail=Поръчка за покупка %s е изпратена по имейл -SupplierInvoiceSentByEMail=Доставна фактура %s е изпратена по имейл +SupplierInvoiceSentByEMail=Фактура за покупка %s е изпратена по имейл ShippingSentByEMail=Пратка %s е изпратена по имейл -ShippingValidated= Пратка %s валидирана +ShippingValidated= Пратка %s е валидирана InterventionSentByEMail=Интервенция %s е изпратена по имейл ProposalDeleted=Предложението е изтрито OrderDeleted=Поръчката е изтрита @@ -90,46 +90,46 @@ EXPENSE_REPORT_CREATEInDolibarr=Разходен отчет %s е създаде EXPENSE_REPORT_VALIDATEInDolibarr=Разходен отчет %s е валидиран EXPENSE_REPORT_APPROVEInDolibarr=Разходен отчет %s е одобрен EXPENSE_REPORT_DELETEInDolibarr=Разходен отчет %s е изтрит -EXPENSE_REPORT_REFUSEDInDolibarr=Разходен отчет %s е отказан +EXPENSE_REPORT_REFUSEDInDolibarr=Разходен отчет %s е отхвърлен PROJECT_CREATEInDolibarr=Проект %s е създаден PROJECT_MODIFYInDolibarr=Проект %s е променен PROJECT_DELETEInDolibarr=Проект %s е изтрит TICKET_CREATEInDolibarr=Тикет %s е създаден TICKET_MODIFYInDolibarr=Тикет %s е променен TICKET_ASSIGNEDInDolibarr=Тикет %s е възложен -TICKET_CLOSEInDolibarr=Тикет %s е затворен +TICKET_CLOSEInDolibarr=Тикет %s е приключен TICKET_DELETEInDolibarr=Тикет %s е изтрит ##### End agenda events ##### -AgendaModelModule=Шаблони на документи за събитие +AgendaModelModule=Шаблони за събитие DateActionStart=Начална дата DateActionEnd=Крайна дата -AgendaUrlOptions1=Можете да добавите и следните параметри, за да филтрирате изход: -AgendaUrlOptions3=logina=%s за да ограничи показването до действия притежавани от потребител %s. -AgendaUrlOptionsNotAdmin=  logina =! %s за ограничаване на изхода до събития, които не са собственост на потребителя %s . -AgendaUrlOptions4=  logint = %s за ограничаване на изхода до събития, възложени на потребителя %s (собственик and други). -AgendaUrlOptionsProject=  project = __ PROJECT_ID__ за ограничаване на изхода до събития свързани с проект __PROJECT_ID__ . -AgendaUrlOptionsNotAutoEvent= notactiontype = systemauto за изключване на автоматични събития. +AgendaUrlOptions1=Може също да добавите следните параметри за филтриране на резултата: +AgendaUrlOptions3=logina=%s, за да ограничи показването до събития притежавани от потребител %s. +AgendaUrlOptionsNotAdmin=logina=!%s, за да ограничи показването до събития, които не са собственост на потребител %s. +AgendaUrlOptions4=logint=%s, за да ограничи показването до събития, които са възложени на потребител %s (като собственик и не). +AgendaUrlOptionsProject=project=__PROJECT_ID__, за да ограничи показването до събития, които са свързани с проект __PROJECT_ID__. +AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto за изключване на автоматични събития. AgendaShowBirthdayEvents=Показване на рождени дни на контактите AgendaHideBirthdayEvents=Скриване на рождени дни на контактите Busy=Зает -ExportDataset_event1=Списък на събитията в дневния ред -DefaultWorkingDays=По подразбиране диапазон на работни дни в седмица (Пример: 1-5, 1-6) -DefaultWorkingHours=По подразбиране диапазон на работни часове в ден (Пример: 9-18) +ExportDataset_event1=Списък на събития в календар +DefaultWorkingDays=Диапазон на работните дни по подразбиране в седмицата (Пример: 1-5, 1-6) +DefaultWorkingHours=Работно време по подразбиране в рамките на един ден (Пример: 9-18) # External Sites ical -ExportCal=Изнасяне на календар +ExportCal=Експортиране на календар ExtSites=Импортиране на външни календари -ExtSitesEnableThisTool=Покажете външни календари (дефинирани в глобалната настройка) в бележника. Не засяга външните календари, дефинирани от потребители. +ExtSitesEnableThisTool=Показване на външни календари (дефинирани в глобалната настройка) в календара. Не засяга външни календари, дефинирани от потребители. ExtSitesNbOfAgenda=Брой календари AgendaExtNb=Календар № %s -ExtSiteUrlAgenda=URL адрес за достъп до файла .Ical +ExtSiteUrlAgenda=URL адрес за достъп до .ical файл ExtSiteNoLabel=Няма описание VisibleTimeRange=Видим времеви диапазон VisibleDaysRange=Видим диапазон от дни -AddEvent=Създаване събитие -MyAvailability=Моето разположение +AddEvent=Създаване на събитие +MyAvailability=Моята наличност ActionType=Тип събитие DateActionBegin=Начална дата на събитие -ConfirmCloneEvent=Сигурни ли сте че, искате да клонирате събитието %s ? +ConfirmCloneEvent=Сигурни ли сте, че искате да клонирате събитие %s? RepeatEvent=Повтаряне на събитие EveryWeek=Всяка седмица EveryMonth=Всеки месец diff --git a/htdocs/langs/bg_BG/banks.lang b/htdocs/langs/bg_BG/banks.lang index 2197dda55ff..e56b8c5deb8 100644 --- a/htdocs/langs/bg_BG/banks.lang +++ b/htdocs/langs/bg_BG/banks.lang @@ -7,15 +7,15 @@ BankName=Име на банката FinancialAccount=Сметка BankAccount=Банкова сметка BankAccounts=Банкови сметки -BankAccountsAndGateways=Банкови сметки | Портал +BankAccountsAndGateways=Банкови сметки | Портали ShowAccount=Показване на сметка AccountRef=Финансова сметка реф. -AccountLabel=Финансова сметка етикет +AccountLabel=Етикет на финансова сметка CashAccount=Сметка в брой CashAccounts=Парични сметки CurrentAccounts=Разплащателни сметки SavingAccounts=Спестовни сметки -ErrorBankLabelAlreadyExists=Етикета на финансовата сметка вече съществува +ErrorBankLabelAlreadyExists=Етикетът на финансовата сметка вече съществува BankBalance=Баланс BankBalanceBefore=Баланс преди BankBalanceAfter=Баланс след @@ -23,42 +23,42 @@ BalanceMinimalAllowed=Минимален разрешен баланс BalanceMinimalDesired=Минимален желан баланс InitialBankBalance=Начален баланс EndBankBalance=Краен баланс -CurrentBalance=Текущо салдо +CurrentBalance=Текущ баланс FutureBalance=Бъдещ баланс -ShowAllTimeBalance=Показване на баланса от началото +ShowAllTimeBalance=Показване на баланса от начало AllTime=От начало -Reconciliation=Помирение +Reconciliation=Съгласуване RIB=Номер на банкова сметка IBAN=IBAN номер -BIC=BIC/SWIFT Код -SwiftValid=BIC/SWIFT валиден -SwiftVNotalid=BIC/SWIFT невалиден -IbanValid=BAN валиден -IbanNotValid=BAN невалиден +BIC=BIC / SWIFT код +SwiftValid=BIC / SWIFT е валиден +SwiftVNotalid=BIC / SWIFT не е валиден +IbanValid=BAN е валиден +IbanNotValid=BAN не е валиден StandingOrders=Поръчки за директен дебит StandingOrder=Поръчка за директен дебит -AccountStatement=Отчет по сметка -AccountStatementShort=Отчет +AccountStatement=Извлечение по сметка +AccountStatementShort=Извлечение AccountStatements=Извлечения по сметки LastAccountStatements=Последни извлечения IOMonthlyReporting=Месечно отчитане BankAccountDomiciliation=Адрес на банката -BankAccountCountry=Профил страната -BankAccountOwner=Името на собственика на сметката -BankAccountOwnerAddress=Притежател на сметката адрес -RIBControlError=Проверката за достоверност на стойностите е неуспешна. Това означава, че информацията за този номер на сметката не е пълна или е неправилна (проверете страната, номерата и IBAN). +BankAccountCountry=Държава по местонахождение +BankAccountOwner=Титуляр на сметката +BankAccountOwnerAddress=Адрес на титуляра на сметката +RIBControlError=Проверката за достоверност на стойностите е неуспешна. Това означава, че информацията за този номер на сметка не е пълна или е неправилна (проверете страната, номерата и IBAN). CreateAccount=Създаване на сметка NewBankAccount=Нова сметка NewFinancialAccount=Нова финансова сметка MenuNewFinancialAccount=Нова финансова сметка -EditFinancialAccount=Редактиране на сметка -LabelBankCashAccount=Банка или етикета пари -AccountType=Тип на профила +EditFinancialAccount=Промяна на сметка +LabelBankCashAccount=Банков или паричен етикет +AccountType=Тип на сметката BankType0=Спестовна сметка BankType1=Разплащателна или картова сметка BankType2=Парична сметка -AccountsArea=Сметки -AccountCard=Картова сметка +AccountsArea=Секция със сметки +AccountCard=Карта на сметката DeleteAccount=Изтриване на акаунт ConfirmDeleteAccount=Сигурни ли сте, че искате да изтриете тази сметка? Account=Сметка @@ -67,103 +67,103 @@ BankTransactionForCategory=Банкови транзакции по катего RemoveFromRubrique=Премахване на връзката с категория RemoveFromRubriqueConfirm=Сигурни ли сте, че желаете да премахнете връзката между операцията и категорията? ListBankTransactions=Списък с банкови транзакции -IdTransaction=Transaction ID -BankTransactions=Банкови записи -BankTransaction=Банков запис -ListTransactions=Списък записи -ListTransactionsByCategory=Списък записи/категории -TransactionsToConciliate=Записи за равнение -Conciliable=Може да се примири -Conciliate=Reconcile -Conciliation=Помирение +IdTransaction=Идентификатор на транзакция +BankTransactions=Банкови транзакции +BankTransaction=Банкова транзакция +ListTransactions=Списък транзакции +ListTransactionsByCategory=Списък транзакции по категория +TransactionsToConciliate=Транзакции за съгласуване +Conciliable=Може да се съгласува +Conciliate=Съгласуване +Conciliation=Съгласуване SaveStatementOnly=Запазете само извлечението ReconciliationLate=Късно съгласуване -IncludeClosedAccount=Включват затворени сметки -OnlyOpenedAccount=Само открити сметки -AccountToCredit=Профил на кредитен +IncludeClosedAccount=Включва затворени сметки +OnlyOpenedAccount=Само отворени сметки +AccountToCredit=Сметка за кредитиране AccountToDebit=Сметка за дебитиране -DisableConciliation=Деактивирате функцията помирение за тази сметка -ConciliationDisabled=Помирение функция инвалиди -LinkedToAConciliatedTransaction=Свързан е със съгласуван запис -StatusAccountOpened=Отворен -StatusAccountClosed=Затворен +DisableConciliation=Деактивиране на функцията за съгласуване за тази сметка +ConciliationDisabled=Функцията за съгласуване е деактивирана +LinkedToAConciliatedTransaction=Свързано със съгласувана транзакция +StatusAccountOpened=Отворена +StatusAccountClosed=Затворена AccountIdShort=Номер LineRecord=Транзакция -AddBankRecord=Добавяне на запис -AddBankRecordLong=Ръчно добавяне на запис +AddBankRecord=Добавяне на транзакция +AddBankRecordLong=Ръчно добавяне на транзакция Conciliated=Съгласувано -ConciliatedBy=Съгласуват от -DateConciliating=Reconcile дата -BankLineConciliated=Записите са съгласувани +ConciliatedBy=Съгласувано от +DateConciliating=Дата на съгласуване +BankLineConciliated=Транзакцията е съгласувана Reconciled=Съгласувано NotReconciled=Не е съгласувано -CustomerInvoicePayment=Клиентско плащане -SupplierInvoicePayment=Плащане на доставчик +CustomerInvoicePayment=Плащане от клиент +SupplierInvoicePayment=Плащане към доставчик SubscriptionPayment=Плащане на членски внос WithdrawalPayment=Платежно нареждане за дебит -SocialContributionPayment=Social/fiscal tax payment +SocialContributionPayment=Плащане на социални / фискални такси BankTransfer=Банков превод BankTransfers=Банкови преводи MenuBankInternalTransfer=Вътрешен превод -TransferDesc=Прехвърляне от един акаунт в друг, Dolibarr ще направи два записа (дебитна сметка в източник и кредит в целевата сметка). За тази транзакция ще се използва същата сума (с изключение на знак), етикет и дата) +TransferDesc=Прехвърляне от един акаунт в друг, Dolibarr ще направи два записа (дебит от сметката на източника и кредит в целевата сметка). За тази транзакция ще се използва същата сума (с изключение на подписа), етикет и дата. TransferFrom=От TransferTo=За -TransferFromToDone=Прехвърлянето от %s на %s на %s %s беше записано. +TransferFromToDone=Прехвърлянето от %s към %s на %s %s беше записано. CheckTransmitter=Предавател ValidateCheckReceipt=Валидиране на тази чекова разписка? -ConfirmValidateCheckReceipt=Сигурни ли сте, че искате да потвърдите получаването на чека, няма да е възможна промяна след като това бъде направено? -DeleteCheckReceipt=Да се изтрие ли тази чекова разписка? +ConfirmValidateCheckReceipt=Сигурни ли сте, че искате да валидирате тази чекова разписка, няма да е възможна промяна след като това бъде направено? +DeleteCheckReceipt=Изтриване на тази чекова разписка? ConfirmDeleteCheckReceipt=Сигурни ли сте, че искате да изтриете тази чекова разписка? -BankChecks=Банката проверява +BankChecks=Банкови чекове BankChecksToReceipt=Чекове чакащи депозит -ShowCheckReceipt=Покажи проверете получаване депозит +ShowCheckReceipt=Покажи разписка за получаване на чеков депозит NumberOfCheques=Брой чекове -DeleteTransaction=Изтриване на запис -ConfirmDeleteTransaction=Сигурни ли сте че искате да изтриете този запис ? -ThisWillAlsoDeleteBankRecord=Това ще изтрие генерирания банков запис +DeleteTransaction=Изтриване на транзакция +ConfirmDeleteTransaction=Сигурни ли сте, че искате да изтриете тази транзакция? +ThisWillAlsoDeleteBankRecord=Това ще изтрие и генерираната банкова транзакция BankMovements=Движения -PlannedTransactions=Планирани записи +PlannedTransactions=Планирани транзакции Graph=Графики -ExportDataset_banque_1=Банкови записи и извлечение по сметка +ExportDataset_banque_1=Банкови транзакции и извлечение по сметка ExportDataset_banque_2=Депозитна разписка -TransactionOnTheOtherAccount=Транзакциите по друга сметка +TransactionOnTheOtherAccount=Транзакции по друга сметка PaymentNumberUpdateSucceeded=Номерът на плащането е актуализиран успешно -PaymentNumberUpdateFailed=Плащане брой не може да бъде актуализиран +PaymentNumberUpdateFailed=Номерът на плащането не можа да бъде актуализиран PaymentDateUpdateSucceeded=Датата на плащането е актуализирана успешно -PaymentDateUpdateFailed=Дата на плащане не може да бъде актуализиран -Transactions=Сделки -BankTransactionLine=Банков запис +PaymentDateUpdateFailed=Датата на плащане не можа да бъде актуализирана +Transactions=Транзакции +BankTransactionLine=Банкова транзакция AllAccounts=Всички банкови и касови сметки BackToAccount=Обратно към сметка ShowAllAccounts=Покажи за всички сметки -FutureTransaction=Бъдещи транзакции. Невъзможно равнение. -SelectChequeTransactionAndGenerate=Изберете / филтрирайте чековете, които включва разписка за депозит и кликнете върху "Create". +FutureTransaction=Бъдеща транзакция. Не може да се съгласува. +SelectChequeTransactionAndGenerate=Изберете / Филтрирайте чековете, които да включите в депозитна разписка и кликнете върху "Създаване". InputReceiptNumber=Изберете банковото извлечение, свързано със съгласуването. Използвайте числова стойност, която е във вида: YYYYMM или YYYYMMDD -EventualyAddCategory=В крайна сметка, да посочите категорията, в която да се класифицират записи +EventualyAddCategory=В крайна сметка, определете категория, в която да класифицирате транзакциите ToConciliate=Да се съгласува ли? -ThenCheckLinesAndConciliate=След това проверете линии в отчета на банката и кликнете -DefaultRIB=По подразбиране BAN +ThenCheckLinesAndConciliate=След това проверете редовете в банковото извлечение и кликнете +DefaultRIB=BAN по подразбиране AllRIB=Всички BAN LabelRIB=BAN етикет NoBANRecord=Няма BAN запис -DeleteARib=Изтри BAN запис +DeleteARib=Изтриване на BAN запис ConfirmDeleteRib=Сигурни ли сте, че искате да изтриете този BAN запис? RejectCheck=Чекът е върнат ConfirmRejectCheck=Сигурни ли сте, искате да маркирате този чек като е отхвърлен? RejectCheckDate=Дата, на която чекът е върнат CheckRejected=Чекът е върнат -CheckRejectedAndInvoicesReopened=Чекът е върнат и фактурата е отворена +CheckRejectedAndInvoicesReopened=Чекът е върнат и фактурата е повторно отворена BankAccountModelModule=Шаблони на документи за банкови сметки -DocumentModelSepaMandate=Шаблон за SEPA нареждания . Полезно само за европейските страни в ЕИО. -DocumentModelBan=Шаблон на който да се принтира страница с BAN информация -NewVariousPayment=Ново смесено плащане -VariousPayment=Смесено плащане +DocumentModelSepaMandate=Шаблон за SEPA нареждания. Полезно само за европейските страни в ЕИО. +DocumentModelBan=Шаблон за отпечатване на страница с информация за BAN. +NewVariousPayment=Ново разнородно плащане +VariousPayment=Разнородно плащане VariousPayments=Разнородни плащания -ShowVariousPayment=Показване на смесено плащане -AddVariousPayment=Добавяне на смесено плащане +ShowVariousPayment=Показване на разнородно плащане +AddVariousPayment=Добавяне на разнородно плащане SEPAMandate=SEPA нареждане YourSEPAMandate=Вашите SEPA нареждания -FindYourSEPAMandate=Това е вашето SEPA нареждане да упълномощите нашата компания да направи поръчка за директен дебит към вашата банка. Върнете го подписано (сканиране на подписания документ) или го изпратете по пощата на -AutoReportLastAccountStatement=Автоматично попълнете полето „номер на банково извлечение“ с последния номер на извлечение, когато правите равнение +FindYourSEPAMandate=Това е вашето SEPA нареждане, с което да упълномощите нашата компания да направи поръчка за директен дебит към вашата банка. Върнете го подписано (сканиран подписан документ) или го изпратете по пощата на +AutoReportLastAccountStatement=Автоматично попълване на полето „номер на банково извлечение“ с последния номер на извлечение, когато правите съгласуване. CashControl=Лимит за плащане в брой на POS NewCashFence=Нов лимит за плащане в брой diff --git a/htdocs/langs/bg_BG/bills.lang b/htdocs/langs/bg_BG/bills.lang index 8a70a7d26d0..cd16caffcc6 100644 --- a/htdocs/langs/bg_BG/bills.lang +++ b/htdocs/langs/bg_BG/bills.lang @@ -9,34 +9,34 @@ BillsCustomersUnpaidForCompany=Неплатени фактури за прода BillsSuppliersUnpaid=Неплатени фактури за доставка BillsSuppliersUnpaidForCompany=Неплатени фактури за доставка за %s BillsLate=Забавени плащания -BillsStatistics=Статистика за продажни фактури +BillsStatistics=Статистика от фактури за продажба BillsStatisticsSuppliers=Статистика за фактури на доставка DisabledBecauseDispatchedInBookkeeping=Деактивирано, защото фактурата е изпратена за осчетоводяване DisabledBecauseNotLastInvoice=Деактивирано, защото фактурата не може да се изтрие. Има регистрирани следващи фактури с поредни номера и това ще създаде дупки в брояча. DisabledBecauseNotErasable=Деактивирано, защото не може да бъде изтрито InvoiceStandard=Стандартна фактура InvoiceStandardAsk=Стандартна фактура -InvoiceStandardDesc=Тази фактурата е фактура от най-общ вид. +InvoiceStandardDesc=Този вид фактура се използва като стандартна фактура. InvoiceDeposit=Фактура за авансово плащане InvoiceDepositAsk=Фактура за авансово плащане InvoiceDepositDesc=Този вид фактура се използва, когато е получено авансово плащане. InvoiceProForma=Проформа фактура InvoiceProFormaAsk=Проформа фактура InvoiceProFormaDesc=Проформа фактура е първообраз на една истинска фактура, но няма счетоводна стойност. -InvoiceReplacement=Подменяща фактура -InvoiceReplacementAsk=Фактура подменяща друга фактура -InvoiceReplacementDesc=Подменяща фактура се използва за анулиране и пълно заменяне на фактура без получено плащане.

Забележка: Само фактури без плащания по тях могат да бъдат заменяни. Ако фактурата, която заменяте, все още не е приключена, то тя ще бъде автоматично приключена като „Изоставена“. +InvoiceReplacement=Заменяща фактура +InvoiceReplacementAsk=Фактура заменяща друга фактура +InvoiceReplacementDesc=Заменяща фактура се използва за анулиране и пълно заменяне на фактура без получено плащане.

Забележка: Само фактури без плащания по тях могат да бъдат заменяни. Ако фактурата, която заменяте, все още не е приключена, то тя ще бъде автоматично приключена като „Изоставена“. InvoiceAvoir=Кредитно известие InvoiceAvoirAsk=Кредитно известие за коригиране на фактура InvoiceAvoirDesc=Кредитното известие е отрицателна фактура, използвана за коригиране на факта, че фактурата показва сума, която се различава от действително платената сума (например клиентът е платил твърде много по грешка или няма да плати пълната сума, тъй като някои продукти са върнати). invoiceAvoirWithLines=Създаване на кредитно известие с редове от оригиналната фактура invoiceAvoirWithPaymentRestAmount=Създаване на кредитно известие с неплатения остатък от оригиналната фактура -invoiceAvoirLineWithPaymentRestAmount=Кредитно известие с неплатен остатък -ReplaceInvoice=Подмяна на фактура %s -ReplacementInvoice=Подменяща фактура +invoiceAvoirLineWithPaymentRestAmount=Кредитно известие за неплатен остатък +ReplaceInvoice=Заменяне на фактура %s +ReplacementInvoice=Заменяща фактура ReplacedByInvoice=Заменена с фактура %s ReplacementByInvoice=Заменена с фактура -CorrectInvoice=Правилна фактура %s +CorrectInvoice=Коректна фактура %s CorrectionInvoice=Коригираща фактура UsedByInvoice=Използва се за плащане на фактура %s ConsumedBy=Консумирана от @@ -44,19 +44,19 @@ NotConsumed=Не е консумирана NoReplacableInvoice=Няма заменими фактури NoInvoiceToCorrect=Няма фактура за коригиране InvoiceHasAvoir=Източник на едно или няколко кредитни известия -CardBill=Фактурна карта -PredefinedInvoices=Предварително-дефинирани Фактури +CardBill=Карта на фактура +PredefinedInvoices=Предварително дефинирани фактури Invoice=Фактура PdfInvoiceTitle=Фактура Invoices=Фактури InvoiceLine=Фактурен ред -InvoiceCustomer=Продажна фактура -CustomerInvoice=Продажна фактура -CustomersInvoices=Продажни фактури +InvoiceCustomer=Фактура за продажба +CustomerInvoice=Фактура за продажба +CustomersInvoices=Фактури за продажба SupplierInvoice=Фактура за доставка SuppliersInvoices=Фактури за доставка SupplierBill=Фактура за доставка -SupplierBills=Доставни фактури +SupplierBills=Фактури за доставка Payment=Плащане PaymentBack=Обратно плащане CustomerInvoicePaymentBack=Обратно плащане @@ -64,7 +64,7 @@ Payments=Плащания PaymentsBack=Обратни плащания paymentInInvoiceCurrency=във валутата на фактурите PaidBack=Платено обратно -DeletePayment=Изтрий плащане +DeletePayment=Изтриване на плащане ConfirmDeletePayment=Сигурни ли сте че, искате да изтриете това плащане? ConfirmConvertToReduc=Искате ли да конвертирате това %s в абсолютна отстъпка? ConfirmConvertToReduc2=Сумата ще бъде запазена измежду всички отстъпки и може да се използва като отстъпка за текуща или бъдеща фактура за този клиент. @@ -74,7 +74,7 @@ SupplierPayments=Плащания към доставчици ReceivedPayments=Получени плащания ReceivedCustomersPayments=Плащания получени от клиенти PayedSuppliersPayments=Направени плащания към доставчици -ReceivedCustomersPaymentsToValid=Получени плащания от клиенти за валидация +ReceivedCustomersPaymentsToValid=Получени плащания от клиенти за валидиране PaymentsReportsForYear=Отчети за плащания за %s PaymentsReports=Отчети за плащания PaymentsAlreadyDone=Вече направени плащания @@ -91,33 +91,33 @@ PaymentTerm=Условие за плащане PaymentConditions=Условия за плащане PaymentConditionsShort=Условия за плащане PaymentAmount=Сума за плащане -PaymentHigherThanReminderToPay=Плащането е по-високо от напомнянето за плащане +PaymentHigherThanReminderToPay=Плащането е с по-висока стойност в сравнение с това в напомнянето HelpPaymentHigherThanReminderToPay=Внимание, сумата за плащане на една или повече фактури е по-висока от дължимата сума за плащане.
Редактирайте записа си, в противен случай потвърдете и обмислете създаването на кредитно известие за получената сума за всяка надплатена фактура. HelpPaymentHigherThanReminderToPaySupplier=Внимание, сумата за плащане на една или повече фактури е по-висока от дължимата сума за плащане.
Редактирайте записа си, в противен случай потвърдете и обмислете създаването на кредитно известие за излишъка, платен за всяка надплатена фактура. -ClassifyPaid=Класифицирай 'Платено' -ClassifyPaidPartially=Класифицирай 'Платено частично' -ClassifyCanceled=Класифицирай 'Изоставено' -ClassifyClosed=Класифицирай 'Затворено' -ClassifyUnBilled=Класифицирай 'Нетаксувано' -CreateBill=Създай фактура +ClassifyPaid=Класифициране като 'Платена' +ClassifyPaidPartially=Класифициране като 'Частично платена' +ClassifyCanceled=Класифициране като 'Изоставена' +ClassifyClosed=Класифициране като 'Приключена' +ClassifyUnBilled=Класифициране като 'Не таксувана' +CreateBill=Създаване на фактура CreateCreditNote=Създаване на кредитно известие AddBill=Създаване на фактура или кредитно известие -AddToDraftInvoices=Добави към фактура чернова -DeleteBill=Изтрий фактура -SearchACustomerInvoice=Търсене за продажна фактура +AddToDraftInvoices=Добавяне към чернова фактура +DeleteBill=Изтриване на фактура +SearchACustomerInvoice=Търсене на фактура за продажба SearchASupplierInvoice=Търсене на фактура за доставка -CancelBill=Отказване на фактура +CancelBill=Анулиране на фактура SendRemindByMail=Изпращане на напомняне по имейл DoPayment=Въвеждане на плащане DoPaymentBack=Въвеждане на възстановяване ConvertToReduc=Маркиране като наличен кредит ConvertExcessReceivedToReduc=Превръщане на получения излишък в наличен кредит ConvertExcessPaidToReduc=Превръщане на платения излишък в налична отстъпка -EnterPaymentReceivedFromCustomer=Въведете плащане получено от клиент -EnterPaymentDueToCustomer=Дължимото плащане на клиента -DisabledBecauseRemainderToPayIsZero=Деактивирано понеже остатъка за плащане е нула +EnterPaymentReceivedFromCustomer=Въведете плащане, получено от клиент +EnterPaymentDueToCustomer=Извършване на плащане от клиента +DisabledBecauseRemainderToPayIsZero=Деактивирано, тъй като остатъка за плащане е нула PriceBase=Базова цена -BillStatus=Статус на фактурата +BillStatus=Статус на фактура StatusOfGeneratedInvoices=Състояние на генерираните фактури BillStatusDraft=Чернова (трябва да се валидира) BillStatusPaid=Платена @@ -128,7 +128,7 @@ BillStatusValidated=Валидирана (трябва да се плати) BillStatusStarted=Започната BillStatusNotPaid=Неплатена BillStatusNotRefunded=Не възстановено -BillStatusClosedUnpaid=Затворена (неплатена) +BillStatusClosedUnpaid=Приключена (неплатена) BillStatusClosedPaidPartially=Платена (частично) BillShortStatusDraft=Чернова BillShortStatusPaid=Платена @@ -140,7 +140,7 @@ BillShortStatusValidated=Валидирана BillShortStatusStarted=Започната BillShortStatusNotPaid=Неплатена BillShortStatusNotRefunded=Не възстановено -BillShortStatusClosedUnpaid=Затворена +BillShortStatusClosedUnpaid=Приключена BillShortStatusClosedPaidPartially=Платена (частично) PaymentStatusToValidShort=За валидиране ErrorVATIntraNotConfigured=Все още не е определен вътреобщностен ДДС номер @@ -150,7 +150,7 @@ ErrorBillNotFound=Фактура %s не съществува ErrorInvoiceAlreadyReplaced=Грешка, опитахте да валидирате фактура, за да замените фактура %s, но тя вече е заменена с фактура %s. ErrorDiscountAlreadyUsed=Грешка, вече се използва отстъпка ErrorInvoiceAvoirMustBeNegative=Грешка, коригиращата фактура трябва да има отрицателна сума -ErrorInvoiceOfThisTypeMustBePositive=Грешка, този тип фактура трябва да има положителна стойност, +ErrorInvoiceOfThisTypeMustBePositive=Грешка, този тип фактура трябва да има положителна стойност ErrorCantCancelIfReplacementInvoiceNotValidated=Грешка, не може да се анулира фактура, която е била заменена от друга фактура, която все още е в състояние на чернова ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Тази или друга част вече е използвана, така че сериите с отстъпки не могат да бъдат премахнати. BillFrom=От @@ -173,7 +173,7 @@ OtherBills=Други фактури DraftBills=Чернови фактури CustomersDraftInvoices=Чернови фактури за продажба SuppliersDraftInvoices=Чернови фактури за доставка -Unpaid=Неплатен +Unpaid=Неплатено ConfirmDeleteBill=Сигурни ли сте, че искате да изтриете тази фактура? ConfirmValidateBill=Сигурни ли сте че, искате да валидирате тази фактура %s ? ConfirmUnvalidateBill=Сигурен ли сте, че искате да върнете фактура %s в състояние на чернова? @@ -184,8 +184,8 @@ ConfirmClassifyPaidPartially=Сигурни ли сте че, искате да ConfirmClassifyPaidPartiallyQuestion=Тази фактура не е платена изцяло. Каква е причината за приключване на тази фактура? ConfirmClassifyPaidPartiallyReasonAvoir=Неплатения остатък (%s %s) е предоставена отстъпка, тъй като плащането е извършено преди срока за плащане. Уреждам ДДС с кредитно известие. ConfirmClassifyPaidPartiallyReasonDiscount=Неплатения остатък (%s %s) е предоставена отстъпка, тъй като плащането е извършено преди срока за плащане. -ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Неплатеният остатък (%s %s) е дадена отстъпка, защото плащането е направено преди срока за плащане. Приемам да се загуби ДДС по тази отстъпка. -ConfirmClassifyPaidPartiallyReasonDiscountVat=Неплатеният остатък (%s %s) е дадена отстъпка, защото плащането е направено преди срока за плащане Възстановявам ДДС по тази отстъпка без кредитно известие. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Неплатеният остатък (%s %s) е предоставена отстъпка, защото плащането е направено преди срока за плащане. Приемам да се загуби ДДС по тази отстъпка. +ConfirmClassifyPaidPartiallyReasonDiscountVat=Неплатеният остатък (%s %s) е предоставена отстъпка, защото плащането е направено преди срока за плащане. Възстановявам ДДС по тази отстъпка без кредитно известие. ConfirmClassifyPaidPartiallyReasonBadCustomer=Лош клиент ConfirmClassifyPaidPartiallyReasonProductReturned=Продукти частично върнати ConfirmClassifyPaidPartiallyReasonOther=Сумата е изоставена по друга причина @@ -195,19 +195,19 @@ ConfirmClassifyPaidPartiallyReasonAvoirDesc=Използвайте този из ConfirmClassifyPaidPartiallyReasonBadCustomerDesc= Лош клиент е клиент, който отказва да плати дълга си. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Този избор се използва, когато плащането не е пълно, тъй като някои от продуктите са били върнати ConfirmClassifyPaidPartiallyReasonOtherDesc=Използвайте този избор, ако всички останали не са подходящи, например в следната ситуация:\n- плащането не е завършено, защото някои продукти са изпратени обратно\n- предявената сума е задължителна, понеже отстъпката е забравена\nВъв всички случаи, надхвърлената сума трябва да бъде коригирана в счетоводната система, чрез създаване на кредитно известие. -ConfirmClassifyAbandonReasonOther=Друг -ConfirmClassifyAbandonReasonOtherDesc=Този избор ще бъде използван във всички останали случаи. За пример, защото имате намерение да създадете заменяща фактура. +ConfirmClassifyAbandonReasonOther=Друго +ConfirmClassifyAbandonReasonOtherDesc=Този избор ще се използва във всички останали случаи. Например, защото планирате да създадете заместваща фактура. ConfirmCustomerPayment=Потвърждавате ли това входящо плащане за %s %s? ConfirmSupplierPayment=Потвърждавате ли това изходящо плащане за %s %s? ConfirmValidatePayment=Сигурни ли сте, че искате да валидирате това плащане? Не се допуска промяна след валидиране на плащането. -ValidateBill=Валидирай фактура -UnvalidateBill=Отвалидирай фактура +ValidateBill=Валидиране на фактура +UnvalidateBill=Повторно отваряне на фактура NumberOfBills=Брой фактури NumberOfBillsByMonth=Брой фактури на месец AmountOfBills=Сума на фактури AmountOfBillsHT=Сума на фактури (без ДДС) AmountOfBillsByMonthHT=Сума на фактури по месец (без данък) -ShowSocialContribution=Покажи социален/фискален данък +ShowSocialContribution=Показване на социален / фискален данък ShowBill=Покажи фактура ShowInvoice=Покажи фактура ShowInvoiceReplace=Покажи заменяща фактура @@ -215,12 +215,12 @@ ShowInvoiceAvoir=Покажи кредитно известие ShowInvoiceDeposit=Показване на авансова фактура ShowInvoiceSituation=Показване на ситуационна фактура ShowPayment=Покажи плащане -AlreadyPaid=Вече е платена -AlreadyPaidBack=Вече е платена обратно +AlreadyPaid=Вече платено +AlreadyPaidBack=Вече платено обратно AlreadyPaidNoCreditNotesNoDeposits=Вече платено (без кредитни известия и авансови плащания) -Abandoned=Изоставен +Abandoned=Изоставена RemainderToPay=Неплатен остатък -RemainderToTake=Остатъчна сума за взимане +RemainderToTake=Остатъчна сума за получаване RemainderToPayBack=Оставаща сума за възстановяване Rest=Чакаща AmountExpected=Претендирана сума @@ -235,19 +235,19 @@ StandingOrder=Нареждане за директен дебит NoDraftBills=Няма чернови фактури NoOtherDraftBills=Няма други чернови фактури NoDraftInvoices=Няма чернови фактури -RefBill=Фактура код +RefBill=Реф. фактура ToBill=За фактуриране RemainderToBill=Напомняне за фактуриране SendBillByMail=Изпращане на фактура по имейл SendReminderBillByMail=Изпращане на напомняне по имейл RelatedCommercialProposals=Свързани търговски предложения RelatedRecurringCustomerInvoices=Свързани повтарящи се фактури за продажба -MenuToValid=За валидни +MenuToValid=За валидиране DateMaxPayment=Плащането се дължи на DateInvoice=Дата на фактура DatePointOfTax=Дата на данъчно събитие NoInvoice=Няма фактура -ClassifyBill=Класифицирай фактурата +ClassifyBill=Класифициране на фактура SupplierBillsToPay=Неплатени фактури за доставка CustomerBillsUnpaid=Неплатени фактури за продажба NonPercuRecuperable=Невъзстановими @@ -256,31 +256,31 @@ SetMode=Задайте видът на плащане SetRevenuStamp=Задайте гербова марка (бандерол) Billed=Фактурирано RecurringInvoices=Повтарящи се фактури -RepeatableInvoice=Шаблон за фактура -RepeatableInvoices=Шаблони за фактури +RepeatableInvoice=Шаблонна фактура +RepeatableInvoices=Шаблонни фактури Repeatable=Шаблон Repeatables=Шаблони -ChangeIntoRepeatableInvoice=Превърни в шаблон за фактура -CreateRepeatableInvoice=Създай шаблон за фактура -CreateFromRepeatableInvoice=Създай от шаблон за фактура +ChangeIntoRepeatableInvoice=Конвертиране в шаблонна фактура +CreateRepeatableInvoice=Създаване на шаблонна фактура +CreateFromRepeatableInvoice=Създаване от шаблонна фактура CustomersInvoicesAndInvoiceLines=Фактури клиенти и техните детайли -CustomersInvoicesAndPayments=Продажни фактури и плащания +CustomersInvoicesAndPayments=Фактури за продажба и плащания ExportDataset_invoice_1=Фактури за продажба и техните детайли -ExportDataset_invoice_2=Продажни фактури и плащания -ProformaBill=Проформа фактура: -Reduction=Намаляване +ExportDataset_invoice_2=Фактури за продажба и плащания +ProformaBill=Проформа Фактура +Reduction=Отстъпка ReductionShort=Отст. -Reductions=Намаления +Reductions=Отстъпки ReductionsShort=Отст. Discounts=Отстъпки -AddDiscount=Създай отстъпка -AddRelativeDiscount=Създай относителна отстъпка -EditRelativeDiscount=Редактирй относителна отстъпка -AddGlobalDiscount=Създай абсолютна отстъпка -EditGlobalDiscounts=Редактирай абсолютна отстъпка -AddCreditNote=Създавай кредитно известие +AddDiscount=Създаване на отстъпка +AddRelativeDiscount=Създаване на относителна отстъпка +EditRelativeDiscount=Промяна на относителна отстъпка +AddGlobalDiscount=Създаване на абсолютна отстъпка +EditGlobalDiscounts=Промяна на абсолютна отстъпка +AddCreditNote=Създаване на кредитно известие ShowDiscount=Покажи отстъпка -ShowReduc=Покажи приспадане +ShowReduc=Покажи намалението RelativeDiscount=Относителна отстъпка GlobalDiscount=Глобална отстъпка CreditNote=Кредитно известие @@ -297,30 +297,30 @@ CreditNoteDepositUse=Фактурата трябва да бъде валиди NewGlobalDiscount=Нова абсолютна отстъпка NewRelativeDiscount=Нова относителна отстъпка DiscountType=Тип отстъпка -NoteReason=Бележка/Причина +NoteReason=Бележка / Причина ReasonDiscount=Причина -DiscountOfferedBy=Предоставено от +DiscountOfferedBy=Предоставена от DiscountStillRemaining=Налични отстъпки или кредити DiscountAlreadyCounted=Изразходвани отстъпки или кредити CustomerDiscounts=Отстъпки за клиенти SupplierDiscounts=Отстъпки на доставчици -BillAddress=Фактурен адрес +BillAddress=Адрес за фактуриране HelpEscompte=Тази отстъпка представлява отстъпка, предоставена на клиента, тъй като плащането е извършено преди срока на плащане. HelpAbandonBadCustomer=Тази сума е изоставена (поради некоректен (лош) клиент) и се счита за изключителна загуба. HelpAbandonOther=Тази сума е изоставена, тъй като е била грешка (Например: неправилен клиент или фактура заменена от друга) -IdSocialContribution=Id за плащане на социален/фискален данък +IdSocialContribution=Идентификатор за плащане на социален / фискален данък PaymentId=Плащане ID PaymentRef=Реф. плащане InvoiceId=Фактура ID -InvoiceRef=Фактура код -InvoiceDateCreation=Фактура дата създаване -InvoiceStatus=Фактурата статус -InvoiceNote=Фактура бележка -InvoicePaid=Фактура плащане +InvoiceRef=Реф. фактура +InvoiceDateCreation=Дата на създаване на фактура +InvoiceStatus=Статус на фактура +InvoiceNote=Бележка за фактура +InvoicePaid=Фактурата е платена OrderBilled=Поръчката е фактурирана DonationPaid=Дарението е платено -PaymentNumber=Плащане номер -RemoveDiscount=Премахни отстъпка +PaymentNumber=Номер на плащане +RemoveDiscount=Премахване на отстъпка WatermarkOnDraftBill=Воден знак върху чернови фактури (няма ако е празно) InvoiceNotChecked=Не е избрана фактура ConfirmCloneInvoice=Сигурни ли сте, че искате да клонирате тази фактура %s ? @@ -334,11 +334,11 @@ TotalOfTwoDiscountMustEqualsOriginal=Общата сума на двете но ConfirmRemoveDiscount=Сигурни ли сте, че искате да премахнете тази отстъпка? RelatedBill=Свързана фактура RelatedBills=Свързани фактури -RelatedCustomerInvoices=Свързани продажни фактури +RelatedCustomerInvoices=Свързани фактури за продажба RelatedSupplierInvoices=Свързани фактури за доставка LatestRelatedBill=Последна свързана фактура WarningBillExist=Внимание, вече съществуват една или повече фактури -MergingPDFTool=Инструмент за sliwane на PDF +MergingPDFTool=Инструмент за обединяване на PDF документи AmountPaymentDistributedOnInvoice=Сума на плащане, разпределена по фактура PaymentOnDifferentThirdBills=Позволява плащания по различни фактури на контрагенти, но от едно и също дружество (фирма майка) PaymentNote=Бележка за плащане @@ -388,7 +388,7 @@ PaymentConditionPT_DELIVERY=При доставка PaymentConditionShortPT_ORDER=Поръчка PaymentConditionPT_ORDER=При поръчка PaymentConditionShortPT_5050=50-50 -PaymentConditionPT_5050=50% авансово, 50% при доставка +PaymentConditionPT_5050=50%% авансово, 50%% при доставка PaymentConditionShort10D=10 дни PaymentCondition10D=10 дни PaymentConditionShort10DENDMONTH=10 дни от края на месеца @@ -398,27 +398,27 @@ PaymentCondition14D=14 дни PaymentConditionShort14DENDMONTH=14 дни от края на месеца PaymentCondition14DENDMONTH=В рамките на 14 дни след края на месеца FixAmount=Фиксирана сума -VarAmount=Променлива сума (%% общ.) +VarAmount=Променлива сума (%% общо) VarAmountOneLine=Променлива сума (%% общ.) - 1 ред с етикет "%s" # PaymentType PaymentTypeVIR=Банков превод PaymentTypeShortVIR=Банков превод PaymentTypePRE=Платежно нареждане за директен дебит PaymentTypeShortPRE=Платежно нареждане за дебит -PaymentTypeLIQ=Касово плащане в брой +PaymentTypeLIQ=Плащане в брой PaymentTypeShortLIQ=В брой PaymentTypeCB=Плащане с карта PaymentTypeShortCB=С карта -PaymentTypeCHQ=Чек -PaymentTypeShortCHQ=Чек +PaymentTypeCHQ=Плащане с чек +PaymentTypeShortCHQ=С чек PaymentTypeTIP=TIP (Документи срещу плащане) PaymentTypeShortTIP=Плащане по TIP PaymentTypeVAD=Онлайн плащане PaymentTypeShortVAD=Онлайн плащане PaymentTypeTRA=Банково извлечение PaymentTypeShortTRA=Чернова -PaymentTypeFAC=Factor -PaymentTypeShortFAC=Factor +PaymentTypeFAC=Фактор +PaymentTypeShortFAC=Фактор BankDetails=Банкови данни BankCode=Банков код DeskCode=Код на клон @@ -427,17 +427,17 @@ BankAccountNumberKey=Контролната сума Residence=Адрес IBANNumber=IBAN номер на сметка IBAN=IBAN -BIC=BIC/SWIFT +BIC=BIC / SWIFT BICNumber=BIC/SWIFT код ExtraInfos=Допълнителна информация -RegulatedOn=Регулация на -ChequeNumber=Чек NВ° -ChequeOrTransferNumber=Чек/трансфер NВ° +RegulatedOn=Регулирано на +ChequeNumber=Чек № +ChequeOrTransferNumber=Чек / Трансфер № ChequeBordereau=Чек график ChequeMaker=Чек/трансфер предавател ChequeBank=Банка на чека CheckBank=Чек -NetToBePaid=Нетно за плащане +NetToBePaid=Нето за плащане PhoneNumber=Тел FullPhoneNumber=Телефон TeleFax=Факс @@ -445,17 +445,17 @@ PrettyLittleSentence=Приемене на размера на плащания IntracommunityVATNumber=ДДС № PaymentByChequeOrderedTo=Чекови плащания (с ДДС) се извършват до %s, изпратени на адрес PaymentByChequeOrderedToShort=Чекови плащания (с ДДС) се извършват до -SendTo=изпратено на +SendTo=изпратено до PaymentByTransferOnThisBankAccount=Плащане, чрез превод по следната банкова сметка -VATIsNotUsedForInvoice=* Неприложим ДДС, art-293BB от CGI +VATIsNotUsedForInvoice=* Неприложим ДДС, art-293B от CGI LawApplicationPart1=Чрез прилагането на закон 80.335 от 12/05/80 LawApplicationPart2=стоките остават собственост на LawApplicationPart3=продавача до пълното плащане на -LawApplicationPart4=цената им. -LimitedLiabilityCompanyCapital=SARL със столица +LawApplicationPart4=тяхната цена. +LimitedLiabilityCompanyCapital=SARL с капитал от UseLine=Приложи -UseDiscount=Използвай отстъпка -UseCredit=Използвай кредит +UseDiscount=Използване на отстъпка +UseCredit=Използване на кредит UseCreditNoteInInvoicePayment=Намаляване на сумата за плащане с този кредит MenuChequeDeposits=Чекови депозити MenuCheques=Чекове @@ -465,60 +465,60 @@ ChequesReceipts=Чекови разписки ChequesArea=Секция за чекови депозити ChequeDeposits=Чекови депозити Cheques=Чекове -DepositId=Id депозит +DepositId=Идентификатор на депозит NbCheque=Брой чекове CreditNoteConvertedIntoDiscount=Това %s е преобразувано в %s UsBillingContactAsIncoiveRecipientIfExist=Използване на контакт/адрес с тип "контакт за фактуриране" вместо адрес на контрагента като получател на фактури ShowUnpaidAll=Покажи всички неплатени фактури -ShowUnpaidLateOnly=Покажи само неплатените фактури с просрочено плащане -PaymentInvoiceRef=Платежна фактуре %s -ValidateInvoice=Валидирай фактура +ShowUnpaidLateOnly=Покажи само забавените неплатени фактури +PaymentInvoiceRef=Плащане по фактура %s +ValidateInvoice=Валидиране на фактура ValidateInvoices=Потвърждаване на фактури -Cash=Пари в брой -Reported=Закъснение +Cash=В брой +Reported=Закъснели DisabledBecausePayments=Не е възможно, тъй като има някои плащания -CantRemovePaymentWithOneInvoicePaid=Не може да се премахне плащането, тъй като има най-малко една фактура, класифицирана като платена +CantRemovePaymentWithOneInvoicePaid=Не може да се премахне плащането, тъй като има най-малко една фактура класифицирана като платена. ExpectedToPay=Очаквано плащане CantRemoveConciliatedPayment=Съгласуваното плащане не може да се премахне -PayedByThisPayment=Плаща от това плащане +PayedByThisPayment=Платено от това плащане ClosePaidInvoicesAutomatically=Класифицирайте "Платени" всички стандартни, авансови или заместващи фактури, които са платени напълно. -ClosePaidCreditNotesAutomatically=Класифицирай "Платени" всички кредитни известия изцяло обратно платени. +ClosePaidCreditNotesAutomatically=Класифицирай 'Платени' всички кредитни известия, които са изцяло платени обратно. ClosePaidContributionsAutomatically=Класифицирайте "Платени" всички социални или фискални вноски, които са платени напълно. AllCompletelyPayedInvoiceWillBeClosed=Всички фактури без остатък за плащане ще бъдат автоматично приключени със статус "Платени". ToMakePayment=Плати ToMakePaymentBack=Плати обратно ListOfYourUnpaidInvoices=Списък с неплатени фактури -NoteListOfYourUnpaidInvoices=Бележка: Този списък съдържа само фактури за контрагенти, които са свързани като търговски представители. -RevenueStamp=Приходен печат +NoteListOfYourUnpaidInvoices=Забележка: Този списък съдържа само фактури за контрагенти, с които сте свързан като търговски представител. +RevenueStamp=Приходен печат (бандерол) YouMustCreateInvoiceFromThird=Тази опция е налична само при създаване на фактура от раздел "Клиент" на контрагента YouMustCreateInvoiceFromSupplierThird=Тази опция е налична само при създаването на фактура от раздел "Доставчик" на контрагента YouMustCreateStandardInvoiceFirstDesc=Първо трябва да създадете стандартна фактура и да я конвертирате в „шаблон“, за да създадете нова шаблонна фактура -PDFCrabeDescription=Фактурен PDF шаблон. Пълен шаблон за фактура (препоръчителен шаблон) +PDFCrabeDescription=Шаблонна PDF фактура Crabe. Пълен шаблон за фактура (препоръчителен шаблон) PDFSpongeDescription=PDF шаблон за фактура. Пълен шаблон за фактура PDFCrevetteDescription=PDF шаблон за фактура. Пълен шаблон за ситуационни фактури -TerreNumRefModelDesc1=Върнете номер с формат %syymm-nnnn за стандартни фактури и %syymm-nnnn за кредитни известия, където уу е година, mm е месец и NNNN е последователност, без прекъсване и без 0 +TerreNumRefModelDesc1=Връща номер с формат %syymm-nnnn за стандартни фактури и %syymm-nnnn за кредитни бележки, където yy е година, mm е месец и nnnn е последователност без прекъсване и няма връщане към 0 MarsNumRefModelDesc1=Връща номер с формат %syymm-nnnn за стандартни фактури, %syymm-nnnn за заместващи фактури, %syymm-nnnn за фактури за авансово плащане и %syymm-nnnn за кредитни известия, където yy е година, mm е месец и nnnn е последователност без прекъсване и без връщане към 0 -TerreNumRefModelError=Документ започващ с $syymm вече съществува и не е съвместим с този модел на последователност. Извадете го или го преименувайте за да се активира този модул. +TerreNumRefModelError=Документ, започващ с $syymm, вече съществува и не е съвместим с този модел на последователност. Премахнете го или го преименувайте, за да активирате този модул. CactusNumRefModelDesc1=Връща номер с формат %syymm-nnnn за стандартни фактури, %syymm-nnnn за кредитни известия и %syymm-nnnn за фактури за авансово плащане, където yy е година, mm е месец и nnnn е последователност без прекъсване и без връщане към 0 ##### Types de contacts ##### -TypeContact_facture_internal_SALESREPFOLL=Представител свързан с продажна фактура -TypeContact_facture_external_BILLING=Контакт по продажна фактура -TypeContact_facture_external_SHIPPING=Контакт за доставка на клиента -TypeContact_facture_external_SERVICE=Контакт за обслужване на клиента +TypeContact_facture_internal_SALESREPFOLL=Представител свързан с фактура за продажба +TypeContact_facture_external_BILLING=Контакт по фактура за продажба +TypeContact_facture_external_SHIPPING=Контакт по доставка +TypeContact_facture_external_SERVICE=Контакт по обслужване TypeContact_invoice_supplier_internal_SALESREPFOLL=Представител по фактура за покупка TypeContact_invoice_supplier_external_BILLING=Контакт на доставчик по фактура TypeContact_invoice_supplier_external_SHIPPING=Контакт на доставчик по доставка TypeContact_invoice_supplier_external_SERVICE=Контакт на доставчик по услуга # Situation invoices InvoiceFirstSituationAsk=Първа ситуационна фактура -InvoiceFirstSituationDesc=ситуационни фактури са вързани към ситуации отнасящи се до процес, например конструиране. Всяка ситуация е свързана с една фактура. +InvoiceFirstSituationDesc=Ситуационните фактури са вързани към ситуации отнасящи се до прогрес, например процес на конструиране. Всяка ситуация е свързана с една фактура. InvoiceSituation=Ситуационна фактура -InvoiceSituationAsk=Фактура следваща ситуацията -InvoiceSituationDesc=Създай нова ситуация, следваща съществуваща такава -SituationAmount=Сума за ситуационна фактура (нето) +InvoiceSituationAsk=Фактура свързана със ситуацията +InvoiceSituationDesc=Създаване на нова ситуация, следваща съществуваща такава. +SituationAmount=Сума на ситуационна фактура (нето) SituationDeduction=Ситуационно изваждане ModifyAllLines=Промени всички линии -CreateNextSituationInvoice=Създай следваща ситуация +CreateNextSituationInvoice=Създаване на следваща ситуация ErrorFindNextSituationInvoice=Грешка, неуспех при намирането на следващия цикъл на реф. ситуация ErrorOutingSituationInvoiceOnUpdate=Фактурата за тази ситуация не може да бъде публикувана. ErrorOutingSituationInvoiceCreditNote=Невъзможно е да се изпрати свързано кредитно известие. diff --git a/htdocs/langs/bg_BG/bookmarks.lang b/htdocs/langs/bg_BG/bookmarks.lang index 102d8e6b722..379bd67d808 100644 --- a/htdocs/langs/bg_BG/bookmarks.lang +++ b/htdocs/langs/bg_BG/bookmarks.lang @@ -3,18 +3,18 @@ AddThisPageToBookmarks=Добавяне на тази страница към о Bookmark=Отметка Bookmarks=Отметки ListOfBookmarks=Списък с отметки -EditBookmarks=List/edit bookmarks +EditBookmarks=Списък / промяна на отметки NewBookmark=Нова отметка -ShowBookmark=Показване на отметката -OpenANewWindow=Отваряне в нов прозорец -ReplaceWindow=Отваряне в текущия прозорец -BookmarkTargetNewWindowShort=Нов прозорец -BookmarkTargetReplaceWindowShort=Текущия прозорец -BookmarkTitle=Заглавие на отметката -UrlOrLink=URL -BehaviourOnClick=Поведение когато се кликне на URL-а -CreateBookmark=Създаване -SetHereATitleForLink=Настройте заглавие на отметката -UseAnExternalHttpLinkOrRelativeDolibarrLink=Използвайте външен http URL или релативен Dolibarr URL -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not -BookmarksManagement=Управление на отметките +ShowBookmark=Показване на отметка +OpenANewWindow=Отваряне на нов раздел +ReplaceWindow=Заменяне на текущ раздел +BookmarkTargetNewWindowShort=Нов раздел +BookmarkTargetReplaceWindowShort=Текущ раздел +BookmarkTitle=Име на отметка +UrlOrLink=URL връзка +BehaviourOnClick=Поведение при кликване върху URL връзка на отметка +CreateBookmark=Създаване на отметка +SetHereATitleForLink=Задайте име на отметката +UseAnExternalHttpLinkOrRelativeDolibarrLink=Използвайте външна / абсолютна връзка (https://URL) или вътрешна / относителна връзка (/DOLIBARR_ROOT/htdocs/...) +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Изберете дали страницата да бъде отворена в текущия или в нов раздел +BookmarksManagement=Управление на отметки diff --git a/htdocs/langs/bg_BG/cashdesk.lang b/htdocs/langs/bg_BG/cashdesk.lang index 6ed0a2faeb3..cccc3f92130 100644 --- a/htdocs/langs/bg_BG/cashdesk.lang +++ b/htdocs/langs/bg_BG/cashdesk.lang @@ -68,4 +68,4 @@ Terminal=Терминал NumberOfTerminals=Брой терминали TerminalSelect=Изберете терминал, който искате да използвате: POSTicket=POS тикет -BasicPhoneLayout=Use basic layout for phones +BasicPhoneLayout=Използване на просто оформление за телефони diff --git a/htdocs/langs/bg_BG/categories.lang b/htdocs/langs/bg_BG/categories.lang index 21a09d93634..8d4de56caad 100644 --- a/htdocs/langs/bg_BG/categories.lang +++ b/htdocs/langs/bg_BG/categories.lang @@ -1,90 +1,90 @@ # Dolibarr language file - Source file is en_US - categories -Rubrique=Етикет/Категория -Rubriques=Етикети/Категории -RubriquesTransactions=Етикети/Категории на транзакции -categories=етикети/категории -NoCategoryYet=Няма етикет/категория създаден от този тип -In=В +Rubrique=Таг / Категория +Rubriques=Тагове / Категории +RubriquesTransactions=Тагове / Категории транзакции +categories=тагове / категории +NoCategoryYet=Няма създаден таг / категория от този тип +In=в AddIn=Добавяне в modify=промяна -Classify=Добавяне -CategoriesArea=Зона етикети/категории -ProductsCategoriesArea=Зона етикети/категории Продукти -SuppliersCategoriesArea=Секция с етикети / категории на доставчици -CustomersCategoriesArea=Зона етикети/категории Клиенти -MembersCategoriesArea=Зона етикети/категории Членове -ContactsCategoriesArea=Зона етикети/категории Контакти -AccountsCategoriesArea=Секция с етикети / категории на сметки -ProjectsCategoriesArea=Секция с етикети / категории на проекти -UsersCategoriesArea=Секция с етикети / категории на потребители +Classify=Класифициране +CategoriesArea=Секция с тагове / категории +ProductsCategoriesArea=Секция с тагове / категории за продукти / услуги +SuppliersCategoriesArea=Секция с тагове / категории за доставчици +CustomersCategoriesArea=Секция с тагове / категории за клиенти +MembersCategoriesArea=Секция с тагове / категории за членове +ContactsCategoriesArea=Секция с тагове / категории за контакти +AccountsCategoriesArea=Секция с тагове / категории за сметки +ProjectsCategoriesArea=Секция с тагове / категории за проекти +UsersCategoriesArea=Секция с тагове / категории за потребители SubCats=Подкатегории -CatList=Списък на етикети/категории -NewCategory=Нов етикет/категория -ModifCat=Редактиране етикет/категория -CatCreated=Етикет/категория създаден -CreateCat=Създаване етикет/категория -CreateThisCat=Създаване на този етикет/категория -NoSubCat=Няма подкатегория. +CatList=Списък с тагове / категории +NewCategory=Нов таг / категория +ModifCat=Промяна на таг / категория +CatCreated=Създаден е таг / категория +CreateCat=Създаване на таг / категория +CreateThisCat=Създаване на този таг / категория +NoSubCat=Няма подкатегория SubCatOf=Подкатегория -FoundCats=Намерени етикети/категории -ImpossibleAddCat=Не е възможно да добавите етикет / категория %s +FoundCats=Намерени тагове / категории +ImpossibleAddCat=Невъзможно е да добавите таг / категория %s WasAddedSuccessfully=%s е добавен успешно. -ObjectAlreadyLinkedToCategory=Елементът вече е към този етикет/категория. -ProductIsInCategories=Продукта/услугата е в следните етикети/категории -CompanyIsInCustomersCategories=Контагентът е свързан към следните клиенти/потециални/категории -CompanyIsInSuppliersCategories=Този контрагент е свързан към следните етикети / категории на доставчици -MemberIsInCategories=Този член е в следните етикети/категории Членове -ContactIsInCategories=Този конктакт не в етикети/категории Контакти -ProductHasNoCategory=Този продукт/услуга не е в нито един етикет/категория -CompanyHasNoCategory=Този контрагент не е в нито един етикет / категория -MemberHasNoCategory=Този член не е в нито един етикет/категория -ContactHasNoCategory=Този контакт не е в никои етикети/категории -ProjectHasNoCategory=Този проект не е в нито един етикет / категория -ClassifyInCategory=Добавяне в етикет/категория -NotCategorized=Без етикет/категория -CategoryExistsAtSameLevel=Тази категория вече съществува с този код +ObjectAlreadyLinkedToCategory=Елементът вече е свързан с този таг / категория. +ProductIsInCategories=Продуктът / услугата са свързани със следните тагове / категории +CompanyIsInCustomersCategories=Този контрагент е свързан със следните тагове / категории за клиенти / потенциални клиенти +CompanyIsInSuppliersCategories=Този контрагент е свързан със следните тагове / категории за доставчици +MemberIsInCategories=Този член е свързан със следните тагове / категории за членове +ContactIsInCategories=Този контакт е свързан със следните тагове / категории за контакти +ProductHasNoCategory=Този продукт / услуга не е свързан с нито един таг / категория +CompanyHasNoCategory=Този контрагент не е свързан с нито един таг / категория +MemberHasNoCategory=Този член не е свързан с нито един таг / категория +ContactHasNoCategory=Този контакт не е свързан с нито един таг / категория +ProjectHasNoCategory=Този проект не е свързан с нито един таг / категория +ClassifyInCategory=Добавяне към таг / категория +NotCategorized=Без таг / категория +CategoryExistsAtSameLevel=Тази категория вече съществува ContentsVisibleByAllShort=Съдържанието е видимо от всички ContentsNotVisibleByAllShort=Съдържанието не е видимо от всички -DeleteCategory=Изтриване на етикет/категория -ConfirmDeleteCategory=Сигурни ли сте, че искате да изтриете този етикет / категория? -NoCategoriesDefined=Няма създадени етикети/категории -SuppliersCategoryShort=Етикет/категория Доставчици -CustomersCategoryShort=Етикет/категория Клиенти -ProductsCategoryShort=Етикет/категория Продукти -MembersCategoryShort=Етикет/категория Членове -SuppliersCategoriesShort=Етикети/категории Доставчици -CustomersCategoriesShort=Етикети/категории Клиенти -ProspectsCategoriesShort=Етикети/категории Перспективи -CustomersProspectsCategoriesShort=Етикети/категории Клиенти / Перспективи -ProductsCategoriesShort=Етикети/категории Продукти -MembersCategoriesShort=Етикети/категории Членове -ContactCategoriesShort=Етикети/категории Контакти -AccountsCategoriesShort=Етикети/категории Сметки -ProjectsCategoriesShort=Етикети/категории Проекти -UsersCategoriesShort=Етикети/категории Потребители -ThisCategoryHasNoProduct=Тази категория не съдържа никакъв продукт. -ThisCategoryHasNoSupplier=Тази категория не съдържа никакви доставчици. -ThisCategoryHasNoCustomer=Тази категория не съдържа никакъв клиент. -ThisCategoryHasNoMember=Тази категория не съдържа никакъв член. -ThisCategoryHasNoContact=Тази категория не съдържа никакъв контакт -ThisCategoryHasNoAccount=Тази категория не съдържа никакви сметки. -ThisCategoryHasNoProject=Тази категория не съдържа никакви проекти. -CategId=Етикет/категория id -CatSupList=Списък на етикети / категории Доставчици -CatCusList=Списък на етикети/категории Клиенти/Потенциални Клиенти -CatProdList=Списък на етикети/категории Продукти -CatMemberList=Списък на етикети/категории Членове -CatContactList=Списък на етикети/категории Контакти -CatSupLinks=Връзки между доставчици и етикети/категории -CatCusLinks=Връзки между клиенти/потенциални клиенти и етикети/категории -CatProdLinks=Връзки между продукти/услуги и етикети/категории -CatProJectLinks=Връзки между проекти и етикети / категории -DeleteFromCat=Изтриване от етикети/категории +DeleteCategory=Изтриване на таг / категория +ConfirmDeleteCategory=Сигурни ли сте, че искате да изтриете този таг / категория? +NoCategoriesDefined=Няма определен таг / категория +SuppliersCategoryShort=Таг / категория доставчици +CustomersCategoryShort=Таг / категория клиенти +ProductsCategoryShort=Таг / категория продукти +MembersCategoryShort=Таг / категория членове +SuppliersCategoriesShort=Категории доставчици +CustomersCategoriesShort=Категории клиенти +ProspectsCategoriesShort=Категории потенциални клиенти +CustomersProspectsCategoriesShort=Категории клиенти / потенциални +ProductsCategoriesShort=Категории продукти +MembersCategoriesShort=Категории членове +ContactCategoriesShort=Категории контакти +AccountsCategoriesShort=Категории сметки +ProjectsCategoriesShort=Категории проекти +UsersCategoriesShort=Категории потребители +ThisCategoryHasNoProduct=Тази категория не съдържа нито един продукт +ThisCategoryHasNoSupplier=Тази категория не съдържа нито един доставчик +ThisCategoryHasNoCustomer=Тази категория не съдържа нито един клиент +ThisCategoryHasNoMember=Тази категория не съдържа нито един член +ThisCategoryHasNoContact=Тази категория не съдържа нито един контакт +ThisCategoryHasNoAccount=Тази категория не съдържа нито една сметка +ThisCategoryHasNoProject=Тази категория не съдържа нито един проект +CategId=Идентификатор на таг / категория +CatSupList=Списък на тагове / категории за доставчици +CatCusList=Списък на тагове / категории за клиенти / потенциални клиенти +CatProdList=Списък на тагове / категории за продукти +CatMemberList=Списък на тагове / категории за членове +CatContactList=Списък на тагове / категории за контакти +CatSupLinks=Връзки между доставчици и тагове / категории +CatCusLinks=Връзки между клиенти / потенциални клиенти и тагове / категории +CatProdLinks=Връзки между продукти / услуги и тагове / категории +CatProJectLinks=Връзки между проекти и тагове / категории +DeleteFromCat=Изтриване от таг / категория ExtraFieldsCategories=Допълнителни атрибути -CategoriesSetup=Етикети/категории настройка -CategorieRecursiv=Автоматично свързване с родителския етикет/категория -CategorieRecursivHelp=Ако опцията е включена, когато добавите продукт в подкатегория, продуктът също ще бъде добавен и в главната категория. -AddProductServiceIntoCategory=Добавяне на следния продукт/услуга -ShowCategory=Показване на етикет/категория -ByDefaultInList=По подразбиране в списък +CategoriesSetup=Настройка на тагове / категории +CategorieRecursiv=Автоматично свързване с главния таг / категория +CategorieRecursivHelp=Ако опцията е включена, когато добавите продукт в подкатегория, продуктът ще бъде добавен също и в главната категория. +AddProductServiceIntoCategory=Добавяне на следния продукт / услуга +ShowCategory=Показване на таг / категория +ByDefaultInList=По подразбиране в списъка ChooseCategory=Избиране на категория diff --git a/htdocs/langs/bg_BG/commercial.lang b/htdocs/langs/bg_BG/commercial.lang index ab324ca5102..d49a5ac4f69 100644 --- a/htdocs/langs/bg_BG/commercial.lang +++ b/htdocs/langs/bg_BG/commercial.lang @@ -1,80 +1,80 @@ # Dolibarr language file - Source file is en_US - commercial -Commercial=Търговски -CommercialArea=Търговска площ +Commercial=Търговия +CommercialArea=Секция за търговия Customer=Клиент Customers=Клиенти -Prospect=Потенциален -Prospects=Потенциални +Prospect=Потенциален клиент +Prospects=Потенциални клиенти DeleteAction=Изтриване на събитие NewAction=Ново събитие -AddAction=Създай събитие +AddAction=Създаване на събитие AddAnAction=Създаване на събитие -AddActionRendezVous=Създаване на Рандеву събитие +AddActionRendezVous=Създаване на събитие - среща ConfirmDeleteAction=Сигурни ли сте, че искате да изтриете това събитие? -CardAction=Карта на/за събитие +CardAction=Карта на събитие ActionOnCompany=Свързана компания ActionOnContact=Свързан контакт TaskRDVWith=Среща с %s -ShowTask=Покажи задача -ShowAction=Покажи събитие -ActionsReport=доклад от събитие +ShowTask=Преглед на задача +ShowAction=Преглед на събитие +ActionsReport=Справка за събития ThirdPartiesOfSaleRepresentative=Контрагенти с търговски представител -SaleRepresentativesOfThirdParty=Търговски представител за контрагента +SaleRepresentativesOfThirdParty=Търговски представители за контрагента SalesRepresentative=Търговски представител SalesRepresentatives=Търговски представители -SalesRepresentativeFollowUp=Търговски представител (продължение) -SalesRepresentativeSignature=Търговски представител (подпис) -NoSalesRepresentativeAffected=Няма особен продажби засегнати представител -ShowCustomer=Покажи клиента -ShowProspect=Покажи перспектива -ListOfProspects=Списък на потенциални +SalesRepresentativeFollowUp=Търговски представител (последващ) +SalesRepresentativeSignature=Търговски представител (подписващ) +NoSalesRepresentativeAffected=Не е определен търговски представител +ShowCustomer=Преглед на клиент +ShowProspect=Преглед на потенциален клиент +ListOfProspects=Списък на потенциални клиенти ListOfCustomers=Списък на клиенти LastDoneTasks=Действия: %s последно завършени LastActionsToDo=Действия: %s най-стари незавършени DoneAndToDoActions=Завършени и предстоящи събития DoneActions=Завършени събития -ToDoActions=Непълни събития +ToDoActions=Незавършени събития SendPropalRef=Изпращане на търговско предложение %s SendOrderRef=Изпращане на поръчка %s -StatusNotApplicable=Не е приложимо -StatusActionToDo=За да направите -StatusActionDone=Пълен +StatusNotApplicable=Не се прилага +StatusActionToDo=Да се направи +StatusActionDone=Завършено StatusActionInProcess=В процес TasksHistoryForThisContact=Събития за този контакт -LastProspectDoNotContact=Не се свържете -LastProspectNeverContacted=Никога контакт -LastProspectToContact=За да се свържете -LastProspectContactInProcess=Контакт в процес -LastProspectContactDone=Свържи се направи -ActionAffectedTo=Събитие определено на -ActionDoneBy=Събитие, извършена от +LastProspectDoNotContact=Да не се контактува +LastProspectNeverContacted=Не е контактувано +LastProspectToContact=Да се контактува +LastProspectContactInProcess=В процес на контактуване +LastProspectContactDone=Осъществен контакт +ActionAffectedTo=Събитие, възложено на +ActionDoneBy=Събитие, извършено от ActionAC_TEL=Телефонно обаждане ActionAC_FAX=Изпращане на факс -ActionAC_PROP=Изпрати предложение по пощата +ActionAC_PROP=Изпращане на предложение по имейл ActionAC_EMAIL=Изпращане на имейл -ActionAC_EMAIL_IN=Приемане на имейл +ActionAC_EMAIL_IN=Получаване на имейл ActionAC_RDV=Срещи ActionAC_INT=Интервенция на място -ActionAC_FAC=Изпращане на клиента фактура по пощата -ActionAC_REL=Изпращане на клиента фактура по пощата (напомняне) -ActionAC_CLO=Близо +ActionAC_FAC=Изпращане на фактура за продажба по пощата +ActionAC_REL=Изпращане на фактура за продажба по пощата (напомняне) +ActionAC_CLO=Приключване ActionAC_EMAILING=Изпращане на масов имейл -ActionAC_COM=Изпращане на поръчка за продажба по имейл -ActionAC_SHIP=Изпрати доставка по пощата -ActionAC_SUP_ORD=Изпращане на поръчка за покупка по имейл -ActionAC_SUP_INV=Изпращане на фактура на доставка по имейл -ActionAC_OTH=Друг +ActionAC_COM=Изпращане на поръчка за продажба по пощата +ActionAC_SHIP=Изпращане на пратка по пощата +ActionAC_SUP_ORD=Изпращане на поръчка за покупка по пощата +ActionAC_SUP_INV=Изпращане на фактура за доставка по пощата +ActionAC_OTH=Друго ActionAC_OTH_AUTO=Автоматично добавени ActionAC_MANUAL=Ръчно добавени ActionAC_AUTO=Автоматично добавени ActionAC_OTH_AUTOShort=Автоматично -Stats=Статистика на продажбите -StatusProsp=Prospect статус -DraftPropals=Проектът на търговски предложения +Stats=Статистика от продажби +StatusProsp=Статус на клиента +DraftPropals=Чернови търговски предложения NoLimit=Няма лимит ToOfferALinkForOnlineSignature=Връзка за онлайн подпис WelcomeOnOnlineSignaturePage=Добре дошли на страницата за приемане на търговски предложения от %s -ThisScreenAllowsYouToSignDocFrom=Този екран Ви позволява да приемете и подпишете или да отхвърлите оферта/търговско предложение -ThisIsInformationOnDocumentToSign=Това е информация за документа, който да приемете или отхвърлите -SignatureProposalRef=Подписване на оферта/търговско предложение %s +ThisScreenAllowsYouToSignDocFrom=Този екран позволява да приемете и подпишете или да отхвърлите оферта / търговско предложение +ThisIsInformationOnDocumentToSign=Това е информация за документа, който да приемете или отхвърлите. +SignatureProposalRef=Подписване на оферта / търговско предложение %s FeatureOnlineSignDisabled=Функцията за онлайн подписване е деактивирана или документът е генериран преди активирането на функцията diff --git a/htdocs/langs/bg_BG/companies.lang b/htdocs/langs/bg_BG/companies.lang index df6f5990b91..9f839183654 100644 --- a/htdocs/langs/bg_BG/companies.lang +++ b/htdocs/langs/bg_BG/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Абсолютни отстъпки от дос SupplierAbsoluteDiscountMy=Абсолютни отстъпки от доставчик (зададени от вас) DiscountNone=Няма Vendor=Доставчик +Supplier=Доставчик AddContact=Създай контакт AddContactAddress=Създй контакт/адрес EditContact=Редактиране на контакт diff --git a/htdocs/langs/bg_BG/compta.lang b/htdocs/langs/bg_BG/compta.lang index bae5b09070f..7df1d397b09 100644 --- a/htdocs/langs/bg_BG/compta.lang +++ b/htdocs/langs/bg_BG/compta.lang @@ -1,37 +1,37 @@ # Dolibarr language file - Source file is en_US - compta MenuFinancial=Фактури | Плащания -TaxModuleSetupToModifyRules=Отидете на Настройка модул данъци за да промените правилата за изчисляване -TaxModuleSetupToModifyRulesLT=Отидете на Настройка на фирмата за да промените правилата за изчисляване -OptionMode=Опция за счетоводство -OptionModeTrue=Опция приходи-разходи -OptionModeVirtual=Опция вземания-дългове -OptionModeTrueDesc=В този контекст, оборотът се изчислява по плащания (дата на плащанията). Валидността на цифрите е гарантирана само ако счетоводството се разглежда през входа/изхода на сметките чрез фактури. -OptionModeVirtualDesc=В този контекст, оборотът се изчислява върху фактури (датата на валидиране). Когато тези фактури са дължими, независимо дали са платени или не, те присъстват в оборота. -FeatureIsSupportedInInOutModeOnly=Функцията е достъпна само в счетоводството в режим кредит-дебит (Вижте настройките на модула за счетоводство) -VATReportBuildWithOptionDefinedInModule=Сумите показани тук са изчислени въз основа на правилата, определени в настройките на модул за данъци. -LTReportBuildWithOptionDefinedInModule=Сумите показани тук са изчислени въз основа на правилата, определени в настройките на модул за фирмата -Param=Структура +TaxModuleSetupToModifyRules=Отидете в Настройка на модула за данъци, за да промените правилата за изчисляване +TaxModuleSetupToModifyRulesLT=Отидете в Настройка на фирма / организация, за да промените правилата за изчисляване +OptionMode=Режим за счетоводство +OptionModeTrue=Режим приходи - разходи +OptionModeVirtual=Режим вземания - задължения +OptionModeTrueDesc=В този контекст, оборотът се изчислява върху плащанията (по дата на плащане). Валидността на цифрите е гарантирана, само ако счетоводството е разгледано, чрез фактурите на входа / изхода по съответните сметки. +OptionModeVirtualDesc=В този контекст, оборотът се изчислява върху фактурите (по дата на валидиране). Когато тези фактури са дължими, независимо дали са платени или не, те са включени в оборота. +FeatureIsSupportedInInOutModeOnly=Функцията е налична само в режим на счетоводство Вземания - Задължения (вижте конфигурацията на модул счетоводство) +VATReportBuildWithOptionDefinedInModule=Сумите показани тук се изчисляват с помощта на правилата, определени от настройката на модула за данъци. +LTReportBuildWithOptionDefinedInModule=Сумите показани тук се изчисляват като се използват правилата, определени в настройката за фирма / организация. +Param=Настройка RemainingAmountPayment=Оставаща сума за плащане: Account=Сметка Accountparent=Главна сметка Accountsparent=Главни сметки -Income=Доход +Income=Приход Outcome=Разход MenuReportInOut=Приход / Разход -ReportInOut=Баланс на приходите и разходите +ReportInOut=Баланс на приходи и разходи ReportTurnover=Фактуриран оборот ReportTurnoverCollected=Натрупан оборот -PaymentsNotLinkedToInvoice=Плащания, които не са свързани с никоя фактура, така че не свързани с никой контрагент -PaymentsNotLinkedToUser=Плащанията, които не са свързани с никой потребител +PaymentsNotLinkedToInvoice=Плащанията не са свързани с нито една фактура, така че не са свързани с нито един контрагент +PaymentsNotLinkedToUser=Плащанията не са свързани с нито един потребител Profit=Печалба AccountingResult=Счетоводен резултат BalanceBefore=Баланс (преди) Balance=Баланс Debit=Дебит Credit=Кредит -Piece=Счетоводен док. -AmountHTVATRealReceived=Нето събрани -AmountHTVATRealPaid=Нето платени +Piece=Счетоводен документ +AmountHTVATRealReceived=Получен (нето) +AmountHTVATRealPaid=Платен (нето) VATToPay=Данък върху продажби VATReceived=Получен данък VATToCollect=Данък върху покупки @@ -62,54 +62,54 @@ LT2CustomerES=IRPF продажби LT2SupplierES=IRPF покупки LT2CustomerIN=SGST продажби LT2SupplierIN=SGST покупки -VATCollected=ДДС събран +VATCollected=Получен ДДС ToPay=За плащане SpecialExpensesArea=Секция за всички специални плащания -SocialContribution=Социални или фискални данъци +SocialContribution=Социален или фискален данък SocialContributions=Социални или фискални данъци SocialContributionsDeductibles=Приспадащи се социални или фискални данъци SocialContributionsNondeductibles=Не приспадащи се социални или данъчни данъци -LabelContrib=Label contribution -TypeContrib=Type contribution +LabelContrib=Етикет на вноска +TypeContrib=Тип вноска MenuSpecialExpenses=Специални разходи MenuTaxAndDividends=Данъци и дивиденти -MenuSocialContributions=Social/fiscal taxes -MenuNewSocialContribution=New social/fiscal tax -NewSocialContribution=New social/fiscal tax -AddSocialContribution=Добавяне на социален/фискален данък -ContributionsToPay=Social/fiscal taxes to pay +MenuSocialContributions=Социални / фискални данъци +MenuNewSocialContribution=Нов социален / фискален данък +NewSocialContribution=Нов социален / фискален данък +AddSocialContribution=Добавяне на социален / фискален данък +ContributionsToPay=Социални / фискални данъци за плащане AccountancyTreasuryArea=Секция за фактуриране и плащания NewPayment=Ново плащане -PaymentCustomerInvoice=Плащане на продажна фактура -PaymentSupplierInvoice=плащане на фактура от доставчик -PaymentSocialContribution=Social/fiscal tax payment -PaymentVat=Плащането на ДДС -ListPayment=Списък на плащанията +PaymentCustomerInvoice=Плащане на фактура за продажба +PaymentSupplierInvoice=Плащане на фактура за покупка +PaymentSocialContribution=Плащане на социален / фискален данък +PaymentVat=Плащане на ДДС +ListPayment=Списък на плащания ListOfCustomerPayments=Списък на клиентски плащания -ListOfSupplierPayments=Списък на плащания от доставчик -DateStartPeriod=Date start period -DateEndPeriod=Date end period +ListOfSupplierPayments=Списък на плащания към доставчици +DateStartPeriod=Начална дата на период +DateEndPeriod=Крайна дата на период newLT1Payment=Ново плащане на данък 2 newLT2Payment=Ново плащане на данък 3 LT1Payment=Плащане на данък 2 LT1Payments=Плащания на данък 2 LT2Payment=Плащане на данък 3 LT2Payments=Плащания на данък 3 -newLT1PaymentES=New RE payment -newLT2PaymentES=Нова IRPF плащане -LT1PaymentES=RE Payment -LT1PaymentsES=RE Payments +newLT1PaymentES=Ново RE плащане +newLT2PaymentES=Ново IRPF плащане +LT1PaymentES=RE плащане +LT1PaymentsES=RE плащания LT2PaymentES=IRPF плащане -LT2PaymentsES=IRPF Плащания +LT2PaymentsES=IRPF плащания VATPayment=Плащане на данък върху продажбите VATPayments=Плащания на данък върху продажбите -VATRefund=Възстановяване на данък върху продажбите -NewVATPayment=Ново плащане на данък върху продажбите +VATRefund=Възстановяване на данък върху продажби +NewVATPayment=Ново плащане на данък върху продажби NewLocalTaxPayment=Ново плащане на данък %s -Refund=Refund -SocialContributionsPayments=Social/fiscal taxes payments +Refund=Възстановяване +SocialContributionsPayments=Плащания на социални / фискални данъци ShowVatPayment=Покажи плащане на ДДС -TotalToPay=Всичко за плащане +TotalToPay=Общо за плащане BalanceVisibilityDependsOnSortAndFilters=Балансът е видим в този списък само ако таблицата е сортирана възходящо на %s и филтрирана за 1 банкова сметка CustomerAccountancyCode=Счетоводен код на клиента SupplierAccountancyCode=Счетоводен код на доставчика @@ -122,43 +122,43 @@ TurnoverCollected=Натрупан оборот SalesTurnoverMinimum=Минимален оборот ByExpenseIncome=По разходи и приходи ByThirdParties=По контрагенти -ByUserAuthorOfInvoice=С фактура автор -CheckReceipt=Проверете депозит -CheckReceiptShort=Проверете депозит +ByUserAuthorOfInvoice=По автор на фактура +CheckReceipt=Чеков депозит +CheckReceiptShort=Чеков депозит LastCheckReceiptShort=Чекове: %s последно приети -NewCheckReceipt=Нов отстъпка -NewCheckDeposit=Нова проверка депозит +NewCheckReceipt=Нова отстъпка +NewCheckDeposit=Нов чеков депозит NewCheckDepositOn=Създаване на разписка за депозит по сметка: %s NoWaitingChecks=Няма чекове, които да очакват депозит. -DateChequeReceived=Проверете датата рецепция +DateChequeReceived=Дата на приемане на чек NbOfCheques=Брой чекове -PaySocialContribution=Pay a social/fiscal tax -ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid? -DeleteSocialContribution=Delete a social or fiscal tax payment -ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment? -ExportDataset_tax_1=Social and fiscal taxes and payments -CalcModeVATDebt=Mode %sVAT on commitment accounting%s. -CalcModeVATEngagement=Mode %sVAT on incomes-expenses%s. +PaySocialContribution=Платете социален / фискален данък +ConfirmPaySocialContribution=Сигурни ли сте, че искате да класифицирате този социален или фискален данък като платен? +DeleteSocialContribution=Изтриване на плащане за социален или фискален данък +ConfirmDeleteSocialContribution=Сигурни ли сте, че искате да изтриете това плащане на социален / фискален данък? +ExportDataset_tax_1=Социални / фискални данъци и плащания +CalcModeVATDebt=Режим %sДДС върху осчетоводени задължения%s +CalcModeVATEngagement=Режим %sДДС върху приходи - разходи%s CalcModeDebt=Анализ на регистрираните фактури, дори ако те все още не са осчетоводени в книгата. CalcModeEngagement=Анализ на регистрираните плащания, дори ако те все още не са осчетоводени в книгата. CalcModeBookkeeping=Анализ на данни, регистрирани в таблицата на счетоводната книга. -CalcModeLT1= Mode %sRE on customer invoices - suppliers invoices%s -CalcModeLT1Debt=Mode %sRE on customer invoices%s -CalcModeLT1Rec= Mode %sRE on suppliers invoices%s -CalcModeLT2= Mode %sIRPF on customer invoices - suppliers invoices%s -CalcModeLT2Debt=Mode %sIRPF on customer invoices%s -CalcModeLT2Rec= Mode %sIRPF on suppliers invoices%s -AnnualSummaryDueDebtMode=Balance of income and expenses, annual summary -AnnualSummaryInputOutputMode=Balance of income and expenses, annual summary +CalcModeLT1= Режим %sRE върху фактури за продажба - фактури за доставка%s +CalcModeLT1Debt=Режим %sRE върху фактури за продажба%s +CalcModeLT1Rec= Режим %sRE върху фактури за доставка%s +CalcModeLT2= Режим %sIRPF върху фактури за продажба - фактури за доставка%s +CalcModeLT2Debt=Режим %sIRPF върху фактури за продажба%s +CalcModeLT2Rec= Режим %sIRPF върху фактури за доставка%s +AnnualSummaryDueDebtMode=Баланс на приходи и разходи, годишно обобщение +AnnualSummaryInputOutputMode=Баланс на приходи и разходи, годишно обобщение AnnualByCompanies=Баланс на приходите и разходите, по предварително определени групи сметки AnnualByCompaniesDueDebtMode=Баланс на приходите и разходите, по предварително определени групи, режим %sВземания-Дългове%s или казано още Осчетоводяване на вземания. AnnualByCompaniesInputOutputMode=Баланс на приходи и разходи, по предварително определени групи, режим %sПриходи - Разходи%s или казано още касова отчетност. SeeReportInInputOutputMode=Вижте %sанализа на плащанията%s за изчисляване на действителните плащания, дори и ако те все още не са осчетоводени в книгата. SeeReportInDueDebtMode=Вижте %sанализа на фактурите%s за изчисляване, който е базиран на регистираните фактури, дори и ако те все още не са осчетоводени в книгата. SeeReportInBookkeepingMode=Вижте %sСчетоводния доклад%s за изчисляване на таблицата в счетоводната книга -RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included -RulesResultDue=- Показани Сумите са с включени всички такси
- Тя включва неплатените фактури, разходи и ДДС, независимо дали са платени или не.
- Тя се основава на датата на утвърждаване на фактури и ДДС и на датата на падежа за разходи. -RulesResultInOut=- It includes the real payments made on invoices, expenses and VAT.
- It is based on the payment dates of the invoices, expenses and VAT. +RulesAmountWithTaxIncluded=- Посочените суми са с включени всички данъци +RulesResultDue=- Включва неизплатени фактури, разходи, ДДС, дарения, независимо дали са платени или не. Включва също платени заплати.
- Основава се на датата на валидиране на фактурите и ДДС и на датата на падежа на разходите. За заплати, определени с модула заплати се използва датата на плащането. +RulesResultInOut=- Включва реалните плащания по фактури, разходи, ДДС и заплати.
- Основава се на датите на плащане на фактурите, разходите, ДДС и заплатите. Датата на дарение за дарения. RulesCADue=- Включва дължимите фактури на клиента, независимо дали са платени или не.
- Базирани на датата на валидиране на тези фактури.
RulesCAIn=- Включва всички ефективни плащания по фактури, получени от клиенти.
- Базирани на датата на плащане на тези фактури
RulesCATotalSaleJournal=Включва всички кредитни линии от журнала за продажба. @@ -168,60 +168,60 @@ RulesResultBookkeepingPersonalized=Показва запис във вашата SeePageForSetup=Вижте менюто %s за настройка DepositsAreNotIncluded=- Фактурите за авансови плащания не са включени DepositsAreIncluded=- Фактурите за авансови плащания са включени -LT1ReportByCustomers=Отчет за данък 2 по контрагент -LT2ReportByCustomers=Отчет за данък 3 по контрагент -LT1ReportByCustomersES=Отчет по контрагент RE -LT2ReportByCustomersES=Отчет по контрагент IRPF -VATReport=Отчет за данъка върху продажбите -VATReportByPeriods=Отчет за данъка върху продажбите по периоди -VATReportByRates=Отчет за данъка върху продажбите по ставки -VATReportByThirdParties=Отчет за данъка върху продажбите по контрагенти -VATReportByCustomers=Отчет за данъка върху продажбите по клиенти -VATReportByCustomersInInputOutputMode=Report by the customer VAT collected and paid -VATReportByQuartersInInputOutputMode=Отчет по данъчна ставка върху продажбите за натрупания и платен данък -LT1ReportByQuarters=Отчет за данък 2 по ставки -LT2ReportByQuarters=Отчет за данък 3 по ставки -LT1ReportByQuartersES=Отчет по RE ставки -LT2ReportByQuartersES=Отчет по IRPF ставки -SeeVATReportInInputOutputMode=Виж да докладва %sVAT encasement%s за изчислението на стандартната -SeeVATReportInDueDebtMode=Виж доклада %sVAT за flow%s за изчисление, с опция върху потока -RulesVATInServices=- For services, the report includes the VAT regulations actually received or issued on the basis of the date of payment. -RulesVATInProducts=- За материалните активи отчетът включва получения или издаден ДДС въз основа на датата на плащане. -RulesVATDueServices=- Услуги, в доклада се включва ДДС фактури дължи платена или не, въз основа на датата на фактурата. -RulesVATDueProducts=- За материалните активи, отчетът включва фактурите по ДДС въз основа на датата на фактурата. -OptionVatInfoModuleComptabilite=Забележка: За материални активи, трябва да използват датата на доставка, за да бъде по-справедлива. -ThisIsAnEstimatedValue=Това е преглед, базиран на бизнес събития, а не на финалната счетоводна таблица, така че крайните резултати може да се различават от тези стойности за предварителен преглед -PercentOfInvoice=% / Фактура -NotUsedForGoods=Не се използва върху стоки -ProposalStats=Статистика за представяне на предложения +LT1ReportByCustomers=Справка за данък 2 по контрагент +LT2ReportByCustomers=Справка за данък 3 по контрагент +LT1ReportByCustomersES=Справка за RE по контрагент +LT2ReportByCustomersES=Справка за IRPF по контрагент +VATReport=Справка за данък върху продажби +VATReportByPeriods=Справка за данък върху продажби по периоди +VATReportByRates=Справка за данък върху продажби по ставки +VATReportByThirdParties=Справка за данък върху продажби по контрагенти +VATReportByCustomers=Справка за данък върху продажби по клиенти +VATReportByCustomersInInputOutputMode=Справка за получен и платен ДДС от клиент +VATReportByQuartersInInputOutputMode=Справка по данъчна ставка върху продажби за получен и платен данък +LT1ReportByQuarters=Справка за данък 2 по ставки +LT2ReportByQuarters=Справка за данък 3 по ставки +LT1ReportByQuartersES=Справка за RE по ставки +LT2ReportByQuartersES=Справка за IRPF по ставки +SeeVATReportInInputOutputMode=Вижте справка %sобхват на ДДС%s за стандартно изчисление +SeeVATReportInDueDebtMode=Вижте справка %sпоток на ДДС%s за изчисление с опция за потока +RulesVATInServices=- За услуги, докладът включва действително получените или издадени регламенти за ДДС въз основа на датата на плащане. +RulesVATInProducts=- За материални активи справка включва получения или издаден ДДС въз основа на датата на плащане. +RulesVATDueServices=- За услуги, докладът включва дължими фактури по ДДС, платени или не, въз основа на датата на фактурата. +RulesVATDueProducts=- За материални активи справката включва фактурите по ДДС въз основа на датата на фактурата. +OptionVatInfoModuleComptabilite=Забележка: За материални активи, трябва да се използва датата на доставка, за да бъде по-справедливо. +ThisIsAnEstimatedValue=Това е преглед, базиран на бизнес събития, а не на финалния сметкоплан, така че крайните резултати може да се различават от тези стойности за предварителен преглед +PercentOfInvoice=%% / фактура +NotUsedForGoods=Не се използва за стоки +ProposalStats=Статистика за предложения OrderStats=Статистика за поръчки -InvoiceStats=Статистически данни за сметки -Dispatch=Диспечерско +InvoiceStats=Статистика за фактури +Dispatch=Изпращане Dispatched=Изпратени ToDispatch=За изпращане -ThirdPartyMustBeEditAsCustomer=От контрагент трябва да бъдат определени като клиент -SellsJournal=Продажби вестник -PurchasesJournal=Покупките вестник -DescSellsJournal=Продажби вестник -DescPurchasesJournal=Покупките вестник -CodeNotDef=Не е определена +ThirdPartyMustBeEditAsCustomer=Контрагентът трябва да бъде дефиниран като клиент +SellsJournal=Журнал за продажби +PurchasesJournal=Журнал за покупки +DescSellsJournal=Журнал за продажби +DescPurchasesJournal=Журнал за покупки +CodeNotDef=Не е дефинирано WarningDepositsNotIncluded=Фактурите за авансови плащания не са включени в тази версия с този модул за счетоводство. -DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. -Pcg_version=Таблица на сметките +DatePaymentTermCantBeLowerThanObjectDate=Датата на плащане не може да бъде преди датата на обекта. +Pcg_version=Модели за сметкоплан Pcg_type=PCG тип Pcg_subtype=PCG подтип -InvoiceLinesToDispatch=Invoice lines to dispatch +InvoiceLinesToDispatch=Редове от фактура за изпращане ByProductsAndServices=По продукт и услуга -RefExt=External ref -ToCreateAPredefinedInvoice=За да създадете шаблонна фактура, създайте стандартна фактура, след което преди да я валидирате кликнете върху бутона "%s". -LinkedOrder=Link to order -Mode1=Method 1 -Mode2=Method 2 -CalculationRuleDesc=To calculate total VAT, there is two methods:
Method 1 is rounding vat on each line, then summing them.
Method 2 is summing all vat on each line, then rounding result.
Final result may differs from few cents. Default mode is mode %s. +RefExt=Външна референция +ToCreateAPredefinedInvoice=За да създадете шаблонна фактура създайте стандартна фактура, след което преди да я валидирате кликнете върху бутона "%s". +LinkedOrder=Връзка към поръчка +Mode1=Метод 1 +Mode2=Метод 2 +CalculationRuleDesc=За изчисляване на общия ДДС има два метода:
Метод 1 закръгля ДДС за всеки ред, след което ги сумира.
Метод 2 сумира ДДС от всеки ред, след което закръглява резултатът.
Крайните резултати може да се различават в известна степен. Метод по подразбиране е метод %s. CalculationRuleDescSupplier=Според доставчика, изберете подходящ метод, за да приложите същото правило за изчисление и да получите същия резултат, очакван от вашия доставчик. -TurnoverPerProductInCommitmentAccountingNotRelevant=Отчетът за оборот, натрупан от продукт, не е наличен. Този отчет е налице само за фактуриран оборот. -TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Отчетът за оборот, натрупан от данък върху продажбите, не е наличен. Този отчет е налице само за фактуриран оборот. -CalculationMode=Calculation mode +TurnoverPerProductInCommitmentAccountingNotRelevant=Справката за оборот, натрупан от продукт, не е наличен. Тази справка е налице само за фактуриран оборот. +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=Справката за оборот, натрупан от данък върху продажбите, не е наличен. Тази справка е налице само за фактуриран оборот. +CalculationMode=Режим на изчисление AccountancyJournal=Счетоводен код на журнала ACCOUNTING_VAT_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за ДДС при продажби (използва се, ако не е определена при настройка на речника за ДДС) ACCOUNTING_VAT_BUY_ACCOUNT=Счетоводна сметка по подразбиране за ДДС при покупки (използва се, ако не е определена при настройка на речника за ДДС) @@ -232,14 +232,14 @@ ACCOUNTING_ACCOUNT_SUPPLIER=Счетоводна сметка, използва ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Специализираната счетоводна сметка, определена в картата на контрагента, ще се използва само за счетоводно отчитане на подсметка. Този ще бъде използван за главната книга и като стойност по подразбиране на подсметката за счетоводното отчитане, ако не е дефинирана специализирана счетоводна сметка за доставчика. ConfirmCloneTax=Потвърдете клонирането на социален/фискален данък CloneTaxForNextMonth=Клониране за следващ месец -SimpleReport=Simple report -AddExtraReport=Допълнителни отчети (добавете чуждестранен и национален клиентски отчет) -OtherCountriesCustomersReport=Foreign customers report -BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code -SameCountryCustomersWithVAT=National customers report -BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code +SimpleReport=Обикновена справка +AddExtraReport=Допълнителни справки (добавя справка за чуждестранни и локални клиенти) +OtherCountriesCustomersReport=Справка за чуждестранни клиенти +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Въз основа на първите две букви от номера по ДДС, различен от кода на държавата на вашата фирма +SameCountryCustomersWithVAT=Справка за локални клиенти +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Въз основа на първите две букви от номера по ДДС, които са същите като в кода на държавата на вашата фирма LinkedFichinter=Връзка към интервенция -ImportDataset_tax_contrib=Социални/фискални данъци +ImportDataset_tax_contrib=Социални / фискални данъци ImportDataset_tax_vat=Плащания на ДДС ErrorBankAccountNotFound=Грешка: Банковата сметка не е намерена FiscalPeriod=Период на осчетоводяване @@ -250,7 +250,7 @@ LastDayTaxIsRelatedTo=Последен ден от периода, с който VATDue=Заявен данък върху продажбите ClaimedForThisPeriod=Заявен за периода PaidDuringThisPeriod=Платен през този период -ByVatRate=По ставка на данък върху продажбите -TurnoverbyVatrate=Оборот, фактуриран по данъчна ставка върху продажбите -TurnoverCollectedbyVatrate=Оборот, натрупан по данъчна ставка върху продажбите -PurchasebyVatrate=Покупка по данъчна ставка за продажба +ByVatRate=По ставка на ДДС +TurnoverbyVatrate=Оборот, фактуриран по ставка на ДДС +TurnoverCollectedbyVatrate=Оборот, натрупан по ставка на ДДС +PurchasebyVatrate=Покупка по ставка на ДДС diff --git a/htdocs/langs/bg_BG/contracts.lang b/htdocs/langs/bg_BG/contracts.lang index 346d8e3aad3..97a5594bab1 100644 --- a/htdocs/langs/bg_BG/contracts.lang +++ b/htdocs/langs/bg_BG/contracts.lang @@ -1,98 +1,98 @@ # Dolibarr language file - Source file is en_US - contracts -ContractsArea=Договори област -ListOfContracts=Списък на договорите +ContractsArea=Секция за договори +ListOfContracts=Списък на договори AllContracts=Всички договори -ContractCard=Карта на договор -ContractStatusNotRunning=Не работи -ContractStatusDraft=Проект -ContractStatusValidated=Утвърден -ContractStatusClosed=Затворен -ServiceStatusInitial=Не работи -ServiceStatusRunning=Бягане -ServiceStatusNotLate=Работещи, изтекъл -ServiceStatusNotLateShort=Не е изтекъл -ServiceStatusLate=Спринт, изтекъл +ContractCard=Карта +ContractStatusNotRunning=Не се изпълнява +ContractStatusDraft=Чернова +ContractStatusValidated=Валидиран +ContractStatusClosed=Прекратен +ServiceStatusInitial=Неактивна +ServiceStatusRunning=Активна +ServiceStatusNotLate=Активна, неизтекла +ServiceStatusNotLateShort=Неизтекла +ServiceStatusLate=Активна, изтекла ServiceStatusLateShort=Изтекла -ServiceStatusClosed=Затворен -ShowContractOfService=Показване на договора за услугата +ServiceStatusClosed=Прекратена +ShowContractOfService=Показване на договор за услуга Contracts=Договори ContractsSubscriptions=Договори / Абонаменти ContractsAndLine=Договори и договорни линии Contract=Договор ContractLine=Договорна линия -Closing=Затваряне -NoContracts=Не договори +Closing=Прекратяване +NoContracts=Няма договори MenuServices=Услуги -MenuInactiveServices=Услуги, които не са активни -MenuRunningServices=Текущи услуги +MenuInactiveServices=Неактивни услуги +MenuRunningServices=Активни услуги MenuExpiredServices=Изтекли услуги -MenuClosedServices=Затворени услуги +MenuClosedServices=Прекратени услуги NewContract=Нов договор NewContractSubscription=Нов договор / абонамент AddContract=Създаване на договор -DeleteAContract=Изтриване на договора -ActivateAllOnContract=Активиране всички услуги -CloseAContract=Затваряне на договора +DeleteAContract=Изтриване на договор +ActivateAllOnContract=Активиране на всички услуги +CloseAContract=Прекратяване на договор ConfirmDeleteAContract=Сигурни ли сте, че искате да изтриете този договор с всички предоставени услуги? -ConfirmValidateContract=Сигурни ли сте, че искате да валидирате този договор под името %s? -ConfirmActivateAllOnContract=Това ще отвори всички услуги (които са все още неактивни). Наистина ли искате да отворите всички услуги? -ConfirmCloseContract=Това ще затвори всички услуги (активни или не). Сигурни ли сте, че искате да прекратите този договор? -ConfirmCloseService=Сигурни ли сте, че искате да затворите тази услуга с дата %s ? -ValidateAContract=Одобряване на договор -ActivateService=Активиране на услугата +ConfirmValidateContract=Сигурни ли сте, че искате да валидирате този договор с № %s? +ConfirmActivateAllOnContract=Това ще активира всички услуги, които са все още неактивни. Наистина ли искате да активирате всички услуги? +ConfirmCloseContract=Това ще прекрати всички услуги (активни или не). Сигурни ли сте, че искате да прекратите този договор? +ConfirmCloseService=Сигурни ли сте, че искате да прекратите тази услуга с дата %s ? +ValidateAContract=Валидиране на договор +ActivateService=Активиране на услуга ConfirmActivateService=Сигурни ли сте, че искате да активирате тази услуга с дата %s ? -RefContract=Договор препратка +RefContract=Реф. договор DateContract=Дата на договора -DateServiceActivate=Датата на активиране на услугата -ListOfServices=Списък на услугите -ListOfInactiveServices=Списък на не е активен услуги -ListOfExpiredServices=Списък на изтекъл активни услуги -ListOfClosedServices=Списък на затворените услуги -ListOfRunningServices=Списък на стартираните услуги -NotActivatedServices=Неактивни услуги (сред валидирани договори) -BoardNotActivatedServices=Услуги за да активирате сред утвърдени договори +DateServiceActivate=Дата на активиране на услуга +ListOfServices=Списък на услуги +ListOfInactiveServices=Списък на неактивни услуги +ListOfExpiredServices=Списък на изтекли активни услуги +ListOfClosedServices=Списък на прекратени услуги +ListOfRunningServices=Списък на активни услуги +NotActivatedServices=Неактивни услуги (измежду валидирани договори) +BoardNotActivatedServices=Услуги за активиране (измежду валидирани договори) LastContracts=Договори: %s последни LastModifiedServices=Услуги: %s последно променени ContractStartDate=Начална дата ContractEndDate=Крайна дата DateStartPlanned=Планирана начална дата DateStartPlannedShort=Планирана начална дата -DateEndPlanned=Планиран крайната дата -DateEndPlannedShort=Планиран крайната дата -DateStartReal=Недвижими началната дата -DateStartRealShort=Недвижими началната дата -DateEndReal=Недвижими крайната дата -DateEndRealShort=Недвижими крайната дата -CloseService=Затворете услуга -BoardRunningServices=Услуги в ход -BoardExpiredServices=Услуги с изтекъл срок -ServiceStatus=Състояние на услугата +DateEndPlanned=Планирана крайна дата +DateEndPlannedShort=Планирана крайна дата +DateStartReal=Реална начална дата +DateStartRealShort=Реална начална дата +DateEndReal=Реална крайна дата +DateEndRealShort=Реална крайна дата +CloseService=Приключване на услуга +BoardRunningServices=Активни услуги +BoardExpiredServices=Изтекли услуги +ServiceStatus=Статус на услуга DraftContracts=Чернови договори -CloseRefusedBecauseOneServiceActive=Договорът не може да бъде затворен, тъй като има най-малко една отворена услуга в него +CloseRefusedBecauseOneServiceActive=Договорът не може да бъде прекратен, тъй като има най-малко една активна услуга в него. ActivateAllContracts=Активиране на всички договорни линии -CloseAllContracts=Затворете всички договорни линии -DeleteContractLine=Изтриване на линия договор +CloseAllContracts=Прекратяване на всички договорни линии +DeleteContractLine=Изтриване на договорна линия ConfirmDeleteContractLine=Сигурни ли сте, че искате да изтриете тази договорна линия? -MoveToAnotherContract=Преместване на службата в друг договор. -ConfirmMoveToAnotherContract=Избра новата цел на договора и потвърдете, искам да се движат тази услуга в този договор. +MoveToAnotherContract=Преместване на услуга в друг договор. +ConfirmMoveToAnotherContract=Избрах нов целеви договор и потвърждавам, че искам да преместя тази услуга в този договор. ConfirmMoveToAnotherContractQuestion=Изберете в кой съществуващ договор (на същия контрагент) искате да преместите тази услуга? -PaymentRenewContractId=Поднови договора линия (брой %s) -ExpiredSince=Срок на годност -NoExpiredServices=Не изтекъл активни услуги -ListOfServicesToExpireWithDuration=Списък на Услуги изтичащи в %s дни -ListOfServicesToExpireWithDurationNeg=Списък на услуги изтекли повече от %s дни -ListOfServicesToExpire=Списък на изтичащи Услуги -NoteListOfYourExpiredServices=Този списък съдържа само услуги от договори с контрагенти, с които сте свързани като търговски представител. +PaymentRenewContractId=Подновяване на договорна линия (№ %s) +ExpiredSince=Дата на изтичане +NoExpiredServices=Няма изтекли активни услуги +ListOfServicesToExpireWithDuration=Списък на услуги изтичащи в следващите %s дни +ListOfServicesToExpireWithDurationNeg=Списък на услуги изтекли преди повече от %s дни +ListOfServicesToExpire=Списък на изтичащи услуги +NoteListOfYourExpiredServices=Този списък съдържа само услуги от договори с контрагенти, за които сте посочен като търговски представител. StandardContractsTemplate=Стандартен шаблон за договори ContactNameAndSignature=За %s, име и подпис: -OnlyLinesWithTypeServiceAreUsed=Само линии с тип "Услуга" ще бъдат клонирани. -ConfirmCloneContract=Сигурни ли сте, че искате да клонирате договора %s ? -LowerDateEndPlannedShort=По-ранна планирана крайна дата на активните услуги +OnlyLinesWithTypeServiceAreUsed=Само договорни линии тип 'Услуга' ще бъдат клонирани. +ConfirmCloneContract=Сигурни ли сте, че искате да клонирате договор %s ? +LowerDateEndPlannedShort=По-ранна планирана крайна дата на активни услуги SendContractRef=Информация за договор __REF__ OtherContracts=Други договори ##### Types de contacts ##### -TypeContact_contrat_internal_SALESREPSIGN=Търговски представител подписване на договора -TypeContact_contrat_internal_SALESREPFOLL=Търговски представител проследяване договор -TypeContact_contrat_external_BILLING=Контакт с клиента за фактуриране -TypeContact_contrat_external_CUSTOMER=Следвайте контакт с клиентите -TypeContact_contrat_external_SALESREPSIGN=Подписване на договор клиента контакт +TypeContact_contrat_internal_SALESREPSIGN=Търговски представител (подписващ) +TypeContact_contrat_internal_SALESREPFOLL=Търговски представител (проследяващ) +TypeContact_contrat_external_BILLING=Контакт на клиента за фактуриране +TypeContact_contrat_external_CUSTOMER=Контакт на клиента (проследяващ) +TypeContact_contrat_external_SALESREPSIGN=Контакт на клиента (подписващ) diff --git a/htdocs/langs/bg_BG/deliveries.lang b/htdocs/langs/bg_BG/deliveries.lang index a1a7e459b09..5147633f5c9 100644 --- a/htdocs/langs/bg_BG/deliveries.lang +++ b/htdocs/langs/bg_BG/deliveries.lang @@ -1,30 +1,31 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Доставка -DeliveryRef=Ref Delivery -DeliveryCard=Receipt card -DeliveryOrder=Доставка за +DeliveryRef=Реф. доставка +DeliveryCard=Карта на разписка +DeliveryOrder=Разписка за доставка DeliveryDate=Дата на доставка -CreateDeliveryOrder=Generate delivery receipt -DeliveryStateSaved=Състояние на доставката е записано -SetDeliveryDate=Дата на изпращане -ValidateDeliveryReceipt=Одобряване на разписка -ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt? -DeleteDeliveryReceipt=Изтриване на разписка -DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt %s? -DeliveryMethod=Начин +CreateDeliveryOrder=Генериране на разписка за доставка +DeliveryStateSaved=Състоянието на доставката е записано +SetDeliveryDate=Задаване на дата за доставка +ValidateDeliveryReceipt=Валидиране на разписка за доставка +ValidateDeliveryReceiptConfirm=Сигурни ли сте, че искате да валидирате тази разписка за доставка? +DeleteDeliveryReceipt=Изтриване на разписка за доставка +DeleteDeliveryReceiptConfirm=Сигурни ли сте, че искате да изтриете тази разписка %s? +DeliveryMethod=Начин на доставка TrackingNumber=Проследяващ номер -DeliveryNotValidated=Доставката не валидирани -StatusDeliveryCanceled=Отменен +DeliveryNotValidated=Доставката не е валидирана +StatusDeliveryCanceled=Анулирана StatusDeliveryDraft=Чернова -StatusDeliveryValidated=Получено +StatusDeliveryValidated=Получена # merou PDF model NameAndSignature=Име и подпис: -ToAndDate=To___________________________________ на ____ / _____ / __________ -GoodStatusDeclaration=Стоките са получили по-горе в добро състояние, -Deliverer=Избавител: +ToAndDate=От ___________________________________ на ____ / _____ / __________ +GoodStatusDeclaration=Получих стоките (артикулите) описани по-горе в добро състояние, +Deliverer=Доставчик: Sender=Подател Recipient=Получател ErrorStockIsNotEnough=Няма достатъчна наличност Shippable=Годно за изпращане NonShippable=Негодно за изпращане -ShowReceiving=Show delivery receipt +ShowReceiving=Показване на разписка за доставка +NonExistentOrder=Несъществуваща поръчка diff --git a/htdocs/langs/bg_BG/dict.lang b/htdocs/langs/bg_BG/dict.lang index 95f8d38c216..2c3a9ecbe8e 100644 --- a/htdocs/langs/bg_BG/dict.lang +++ b/htdocs/langs/bg_BG/dict.lang @@ -21,7 +21,7 @@ CountryNL=Холандия CountryHU=Унгария CountryRU=Русия CountrySE=Швеция -CountryCI=Ivoiry Coast +CountryCI=Кот д'Ивоар CountrySN=Сенегал CountryAR=Аржентина CountryCM=Камерун @@ -31,19 +31,19 @@ CountryMC=Монако CountryAU=Австралия CountrySG=Сингапур CountryAF=Афганистан -CountryAX=Аландските острови +CountryAX=Аландски острови CountryAL=Албания CountryAS=Американска Самоа CountryAD=Андора CountryAO=Ангола -CountryAI=Anguilla +CountryAI=Ангуила CountryAQ=Антарктида CountryAG=Антигуа и Барбуда CountryAM=Армения CountryAW=Аруба CountryAT=Австрия CountryAZ=Азербайджан -CountryBS=Бахамските острови +CountryBS=Бахамски острови CountryBH=Бахрейн CountryBD=Бангладеш CountryBB=Барбадос @@ -54,7 +54,7 @@ CountryBM=Бермуда CountryBT=Бутан CountryBO=Боливия CountryBA=Босна и Херцеговина -CountryBW=Ботсуана +CountryBW=Ботсвана CountryBV=Остров Буве CountryBR=Бразилия CountryIO=Британска територия в Индийския океан @@ -64,16 +64,16 @@ CountryBF=Буркина Фасо CountryBI=Бурунди CountryKH=Камбоджа CountryCV=Кабо Верде -CountryKY=Каймановите острови +CountryKY=Кайманови острови CountryCF=Централноафриканска република CountryTD=Чад CountryCL=Чили CountryCX=Остров Рождество -CountryCC=Cocos (Keeling) Islands +CountryCC=Кокосови острови CountryCO=Колумбия -CountryKM=Коморските острови +CountryKM=Коморски острови CountryCG=Конго -CountryCD=Конго, Демократична република +CountryCD=Демократична република Конго CountryCK=Острови Кук CountryCR=Коста Рика CountryHR=Хърватия @@ -91,8 +91,8 @@ CountryGQ=Екваториална Гвинея CountryER=Еритрея CountryEE=Естония CountryET=Етиопия -CountryFK=Фолкландските острови -CountryFO=Фарьорските острови +CountryFK=Фолклендски острови +CountryFO=Фарьорски острови CountryFJ=Фиджи CountryFI=Финландия CountryGF=Френска Гвиана @@ -112,10 +112,10 @@ CountryGN=Гвинея CountryGW=Гвинея-Бисау CountryGY=Гвиана CountryHT=Хаити -CountryHM=Хърд и Макдоналд +CountryHM=Острови Хърд и Макдоналд CountryVA=Светия престол (Ватикана) CountryHN=Хондурас -CountryHK=Хонконг +CountryHK=Хонгконг CountryIS=Исландия CountryIN=Индия CountryID=Индонезия @@ -137,19 +137,19 @@ CountryLV=Латвия CountryLB=Ливан CountryLS=Лесото CountryLR=Либерия -CountryLY=Либийски +CountryLY=Либия CountryLI=Лихтенщайн CountryLT=Литва CountryLU=Люксембург CountryMO=Макао -CountryMK=Македония, Бивша югославска +CountryMK=Северна Македония CountryMG=Мадагаскар CountryMW=Малави CountryMY=Малайзия -CountryMV=Малдивите +CountryMV=Малдиви CountryML=Мали CountryMT=Малта -CountryMH=Маршаловите острови +CountryMH=Маршалови острови CountryMQ=Мартиника CountryMR=Мавритания CountryMU=Мавриций @@ -158,20 +158,20 @@ CountryMX=Мексико CountryFM=Микронезия CountryMD=Молдова CountryMN=Монголия -CountryMS=Monserrat +CountryMS=Монсерат CountryMZ=Мозамбик CountryMM=Мианмар (Бирма) CountryNA=Намибия CountryNR=Науру CountryNP=Непал -CountryAN=Нидерландските Антили +CountryAN=Нидерландски Антили CountryNC=Нова Каледония CountryNZ=Нова Зеландия CountryNI=Никарагуа CountryNE=Нигер CountryNG=Нигерия CountryNU=Ниуе -CountryNF=Норфолк +CountryNF=Остров Норфолк CountryMP=Северни Мариански острови CountryNO=Норвегия CountryOM=Оман @@ -179,15 +179,15 @@ CountryPK=Пакистан CountryPW=Палау CountryPS=Палестинска територия, окупирана CountryPA=Панама -CountryPG=Папуа-Нова Гвинея +CountryPG=Папуа Нова Гвинея CountryPY=Парагвай CountryPE=Перу CountryPH=Филипини -CountryPN=Питкерн острови +CountryPN=Острови Питкерн CountryPL=Полша CountryPR=Пуерто Рико CountryQA=Катар -CountryRE=Повторно обединяване +CountryRE=Реюнион CountryRO=Румъния CountryRW=Руанда CountrySH=Света Елена @@ -199,11 +199,11 @@ CountryWS=Самоа CountrySM=Сан Марино CountryST=Сао Томе и Принсипи CountryRS=Сърбия -CountrySC=Сейшелите +CountrySC=Сейшели CountrySL=Сиера Леоне CountrySK=Словакия CountrySI=Словения -CountrySB=Соломоновите острови +CountrySB=Соломонови острови CountrySO=Сомалия CountryZA=Южна Африка CountryGS=Южна Джорджия и Южни Сандвичеви острови @@ -212,14 +212,14 @@ CountrySD=Судан CountrySR=Суринам CountrySJ=Свалбард и Ян Майен CountrySZ=Свазиленд -CountrySY=Сирийски +CountrySY=Сирия CountryTW=Тайван CountryTJ=Таджикистан CountryTZ=Танзания CountryTH=Тайланд CountryTL=Източен Тимор CountryTK=Токелау -CountryTO=Лека индийска двуколка +CountryTO=Тонга CountryTT=Тринидад и Тобаго CountryTR=Турция CountryTM=Туркменистан @@ -227,8 +227,8 @@ CountryTC=Острови Търкс и Кайкос CountryTV=Тувалу CountryUG=Уганда CountryUA=Украйна -CountryAE=Обединените арабски емирства -CountryUM=САЩ Малки далечни острови +CountryAE=Обединени арабски емирства +CountryUM=Отдалечени острови на САЩ CountryUY=Уругвай CountryUZ=Узбекистан CountryVU=Вануату @@ -241,55 +241,55 @@ CountryEH=Западна Сахара CountryYE=Йемен CountryZM=Замбия CountryZW=Зимбабве -CountryGG=Вълнена фланела +CountryGG=Гърнзи CountryIM=Остров Ман CountryJE=Жарсе CountryME=Черна гора -CountryBL=Сен Бартелеми -CountryMF=Saint Martin +CountryBL=Сен Бартелми +CountryMF=Свети Мартин ##### Civilities ##### -CivilityMME=Г-жа -CivilityMR=Г-н -CivilityMLE=Г-ца -CivilityMTRE=Майстор -CivilityDR=Доктор +CivilityMME=г-жа +CivilityMR=г-н +CivilityMLE=г-ца +CivilityMTRE=м-р +CivilityDR=д-р ##### Currencies ##### Currencyeuros=Евро -CurrencyAUD=AU долара -CurrencySingAUD=AU долар -CurrencyCAD=CAN долара -CurrencySingCAD=CAN долар +CurrencyAUD=Австралийски долара +CurrencySingAUD=Австралийски долар +CurrencyCAD=Канадски долара +CurrencySingCAD=Канадски долар CurrencyCHF=Швейцарски франкове CurrencySingCHF=Швейцарски франк CurrencyEUR=Евро CurrencySingEUR=Евро CurrencyFRF=Френски франкове CurrencySingFRF=Френския франк -CurrencyGBP=GB лири -CurrencySingGBP=GB лира +CurrencyGBP=Британски лири +CurrencySingGBP=Британска лира CurrencyINR=Индийски рупии CurrencySingINR=Индийска рупия CurrencyMAD=Дирхам CurrencySingMAD=Дирхам -CurrencyMGA=Ariary -CurrencySingMGA=Ariary -CurrencyMUR=Мавриций рупии -CurrencySingMUR=Мавриций рупии -CurrencyNOK=Норвежките Кронес +CurrencyMGA=Ариари +CurrencySingMGA=Ариари +CurrencyMUR=Маврицийски рупии +CurrencySingMUR=Маврицийска рупия +CurrencyNOK=Норвежки крони CurrencySingNOK=Норвежка крона -CurrencyTND=Тунизийски динара +CurrencyTND=Тунизийски динари CurrencySingTND=Тунизийски динар CurrencyUSD=Щатски долари CurrencySingUSD=Щатски долар CurrencyUAH=Хривня CurrencySingUAH=Хривня -CurrencyXAF=CFA франка BEAC -CurrencySingXAF=CFA Franc BEAC +CurrencyXAF=CFA франкове BEAC +CurrencySingXAF=CFA франк BEAC CurrencyXOF=CFA франкове BCEAO CurrencySingXOF=CFA франк BCEAO -CurrencyXPF=ОПОР франкове -CurrencySingXPF=CFP франк +CurrencyXPF=Френски тихоокеански франкове +CurrencySingXPF=Френски тихоокеански франк CurrencyCentEUR=центa CurrencyCentSingEUR=цент CurrencyCentINR=пайса @@ -298,12 +298,12 @@ CurrencyThousandthSingTND=хиляден #### Input reasons ##### DemandReasonTypeSRC_INTE=Интернет DemandReasonTypeSRC_CAMP_MAIL=Пощенска кампания -DemandReasonTypeSRC_CAMP_EMAIL=Кампания по имейл +DemandReasonTypeSRC_CAMP_EMAIL=Имейл кампания DemandReasonTypeSRC_CAMP_PHO=Телефонна кампания DemandReasonTypeSRC_CAMP_FAX=Факс кампания DemandReasonTypeSRC_COMM=Търговски контакт -DemandReasonTypeSRC_SHOP=Контакт с магазин -DemandReasonTypeSRC_WOM=Уста на уста +DemandReasonTypeSRC_SHOP=Контакт от магазин +DemandReasonTypeSRC_WOM=От уста на уста DemandReasonTypeSRC_PARTNER=Партньор DemandReasonTypeSRC_EMPLOYEE=Служител DemandReasonTypeSRC_SPONSORING=Спонсорство diff --git a/htdocs/langs/bg_BG/ecm.lang b/htdocs/langs/bg_BG/ecm.lang index 20b6c024577..160f2dcc5ca 100644 --- a/htdocs/langs/bg_BG/ecm.lang +++ b/htdocs/langs/bg_BG/ecm.lang @@ -1,52 +1,52 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=No. of documents in directory +ECMNbOfDocs=Брой документи в директорията ECMSection=Директория ECMSectionManual=Ръчно създадена директория ECMSectionAuto=Автоматично създадена директория ECMSectionsManual=Ръчно създадено дърво ECMSectionsAuto=Автоматично създадено дърво ECMSections=Директории -ECMRoot=ECM Root +ECMRoot=Основна директория ECMNewSection=Нова директория ECMAddSection=Добавяне на директория ECMCreationDate=Дата на създаване -ECMNbOfFilesInDir=Брой на файловете в директорията -ECMNbOfSubDir=Брой на под-директориите -ECMNbOfFilesInSubDir=Брой на файловете в под-директориите +ECMNbOfFilesInDir=Брой файлове в директорията +ECMNbOfSubDir=Брой поддиректории +ECMNbOfFilesInSubDir=Брой файлове в поддиректориите ECMCreationUser=Създател -ECMArea=DMS/ECM area -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Автоматично създадените директории се запълват автоматично при добавяне на документи в картата на даден елемент.
* Ръчно създадените директории могат да бъдат използвани, за да запазите документи, които не са свързани с определен елемент. -ECMSectionWasRemoved=Директорията %s беше изтрита. -ECMSectionWasCreated=Directory %s has been created. +ECMArea=Документи +ECMAreaDesc=Секцията DMS / ECM (Система за управление на документи / Електронно управление на съдържание) позволява да съхранявате, споделяте и бързо да откривате всички видове документи в системата. +ECMAreaDesc2=* Автоматично създадените директории се попълват автоматично при добавяне на документи в картата на даден елемент.
* Ръчно създадените директории могат да бъдат използвани, за да съхранявате документи, които не са свързани с определен елемент. +ECMSectionWasRemoved=Директорията %s е изтрита. +ECMSectionWasCreated=Директорията %s е създадена. ECMSearchByKeywords=Търсене по ключови думи ECMSearchByEntity=Търсене по обект -ECMSectionOfDocuments=Директории на документи +ECMSectionOfDocuments=Директории с документи ECMTypeAuto=Автоматично ECMDocsBySocialContributions=Документи свързани със социални или фискални такси -ECMDocsByThirdParties=Документи, свързани с контрагенти -ECMDocsByProposals=Документи, свързани с предложения -ECMDocsByOrders=Документи, свързани с поръчки на клиенти -ECMDocsByContracts=Документи, свързани с договори -ECMDocsByInvoices=Документи, свързани с клиентите фактури -ECMDocsByProducts=Документи, свързани с продуктите -ECMDocsByProjects=Документи свързани към проекти -ECMDocsByUsers=Документи свързани към потребители -ECMDocsByInterventions=Документи свързани към интервенции -ECMDocsByExpenseReports=Documents linked to expense reports -ECMDocsByHolidays=Documents linked to holidays -ECMDocsBySupplierProposals=Documents linked to supplier proposals -ECMNoDirectoryYet=Не е създадена директория -ShowECMSection=Покажи директория +ECMDocsByThirdParties=Документи свързани с контрагенти +ECMDocsByProposals=Документи свързани с предложения +ECMDocsByOrders=Документи свързани с поръчки за продажба +ECMDocsByContracts=Документи свързани с договори +ECMDocsByInvoices=Документи свързани с фактури за продажба +ECMDocsByProducts=Документи свързани с продукти +ECMDocsByProjects=Документи свързани с проекти +ECMDocsByUsers=Документи свързани с потребители +ECMDocsByInterventions=Документи свързани с интервенции +ECMDocsByExpenseReports=Документи свързани с разходни отчети +ECMDocsByHolidays=Документи свързани с отпуски +ECMDocsBySupplierProposals=Документи свързани със запитвания към доставчици +ECMNoDirectoryYet=Няма създадена директория +ShowECMSection=Показване на директория DeleteSection=Изтриване на директория -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? -ECMDirectoryForFiles=Относителна директория за файловете -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files +ConfirmDeleteSection=Сигурни ли сте, че искате да изтриете директорията %s? +ECMDirectoryForFiles=Относителна директория за файлове +CannotRemoveDirectoryContainsFilesOrDirs=Изтриването не е възможно, защото съдържа файлове или поддиректории +CannotRemoveDirectoryContainsFiles=Изтриването не е възможно, защото съдържа файлове ECMFileManager=Файлов мениджър -ECMSelectASection=Select a directory in the tree... -DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory. -ReSyncListOfDir=Resync list of directories -HashOfFileContent=Hash of file content -NoDirectoriesFound=No directories found -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it) +ECMSelectASection=Изберете директория от дървото... +DirNotSynchronizedSyncFirst=Тази директория изглежда е създадена или модифицирана извън модула DMS / ECM. За синхронизиране на диска и базата данни първо трябва да кликнете върху бутона за синхронизиране на списъка, за да получите съдържанието на тази директория. +ReSyncListOfDir=Синхронизиране на списъка с директории +HashOfFileContent=Хеш код на файла +NoDirectoriesFound=Няма намерени директории +FileNotYetIndexedInDatabase=Файлът все още не е индексиран в базата данни (опитайте да го качите отново) diff --git a/htdocs/langs/bg_BG/help.lang b/htdocs/langs/bg_BG/help.lang index ef4733a4662..912fd2b2171 100644 --- a/htdocs/langs/bg_BG/help.lang +++ b/htdocs/langs/bg_BG/help.lang @@ -5,19 +5,19 @@ RemoteControlSupport=Онлайн в реално време / дистанци OtherSupport=Друга поддръжка ToSeeListOfAvailableRessources=За да се свържете/вижте наличните ресурси: HelpCenter=Помощен център -DolibarrHelpCenter=Dolibarr Help and Support Center -ToGoBackToDolibarr=Otherwise, click here to continue to use Dolibarr. -TypeOfSupport=Type of support +DolibarrHelpCenter=Dolibarr център за помощ и поддръжка +ToGoBackToDolibarr=В противен случай, кликнете тук, за да продължите да използвате Dolibarr. +TypeOfSupport=Тип поддръжка TypeSupportCommunauty=Общност (безплатно) TypeSupportCommercial=Търговски TypeOfHelp=Тип -NeedHelpCenter=Need help or support? +NeedHelpCenter=Нуждаете се от помощ или поддръжка? Efficiency=Ефективност TypeHelpOnly=Само помощ TypeHelpDev=Помощ + развитие -TypeHelpDevForm=Help+Development+Training -BackToHelpCenter=Otherwise, go back to Help center home page. -LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated): +TypeHelpDevForm=Помощ + развитие + обучение +BackToHelpCenter=В противен случай се върнете в началната страница на помощния център. +LinkToGoldMember=Можете да се обадите на някой от обучаващите, предварително избрани от Dolibarr за вашия език (%s), като кликнете върху тяхната джаджа (статуса и максималната цена са автоматично актуализирани): PossibleLanguages=Поддържани езици -SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation +SubscribeToFoundation=Помогнете на проекта Dolibarr, като се присъедините към фондацията SeeOfficalSupport=За официална поддръжка на Dolibarr за Вашият език:
%s diff --git a/htdocs/langs/bg_BG/holiday.lang b/htdocs/langs/bg_BG/holiday.lang index e0194788563..615a1b6e0ad 100644 --- a/htdocs/langs/bg_BG/holiday.lang +++ b/htdocs/langs/bg_BG/holiday.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - holiday HRM=ЧР -Holidays=Отпуск -CPTitreMenu=Отпуск +Holidays=Отпуски +CPTitreMenu=Отпуски MenuReportMonth=Месечно извлечение MenuAddCP=Нова молба за отпуск NotActiveModCP=Необходимо е да активирате модула 'Отпуски', за да видите тази страница. @@ -9,93 +9,93 @@ AddCP=Кандидатстване за отпуск DateDebCP=Начална дата DateFinCP=Крайна дата DateCreateCP=Дата на създаване -DraftCP=Проект +DraftCP=Чернова ToReviewCP=Очаква одобрение -ApprovedCP=Утвърден -CancelCP=Отменен -RefuseCP=Отказ -ValidatorCP=Утвърждаващ -ListeCP=Списък с отпуски -LeaveId=№ на отпуск -ReviewedByCP=Ще бъде утвърден от +ApprovedCP=Одобрена +CancelCP=Анулирана +RefuseCP=Отхвърлена +ValidatorCP=Одобряващ +ListeCP=Списък с молби за отпуск +LeaveId=Идентификатор на молба за отпуск +ReviewedByCP=Ще бъде одобрена от UserForApprovalID=Одобряващ потребител UserForApprovalFirstname=Собствено име на одобряващия потребител UserForApprovalLastname=Фамилия на одобряващия потребител -UserForApprovalLogin=Входна информация за одобряващия потребител +UserForApprovalLogin=Потребителско име на одобряващия потребител DescCP=Описание SendRequestCP=Създаване на молба за отпуск -DelayToRequestCP=Молбите за отпуски трябва да бъдат направени най-малко %s ден(а) преди началната им дата. -MenuConfCP=Баланс на отпуските +DelayToRequestCP=Молбите за отпуск трябва да бъдат направени най-малко %s ден(а) преди началната им дата. +MenuConfCP=Баланс на отпуски SoldeCPUser=Баланса на отпуските е %s дни. -ErrorEndDateCP=Трябва да изберете крайната дата, по-голяма от началната дата. +ErrorEndDateCP=Трябва да изберете крайна дата, която е по-голяма от началната дата. ErrorSQLCreateCP=Възникна SQL грешка по време на създаването: ErrorIDFicheCP=Възникна грешка, молбата за отпуск не съществува. ReturnCP=Назад към предишната страница -ErrorUserViewCP=Не сте упълномощени да четете тази молба за отпуск. -InfosWorkflowCP=Информация Workflow -RequestByCP=По искане на +ErrorUserViewCP=Не сте упълномощен да прочетете тази молба за отпуск. +InfosWorkflowCP=Информационен работен процес +RequestByCP=По молба на TitreRequestCP=Молба за отпуск -TypeOfLeaveId=№ на отпускът -TypeOfLeaveCode=Код за вида на отпускът -TypeOfLeaveLabel=Вид на отпускът -NbUseDaysCP=Брой на дните на използваните отпуски +TypeOfLeaveId=Идентификатор за вид отпуск +TypeOfLeaveCode=Код за вид отпуск +TypeOfLeaveLabel=Етикет за вид отпуск +NbUseDaysCP=Брой дни използвани за отпуск NbUseDaysCPShort=Използвани дни NbUseDaysCPShortInMonth=Използвани дни в месеца DateStartInMonth=Начална дата в месеца DateEndInMonth=Крайна дата в месеца -EditCP=Редактиране +EditCP=Промяна DeleteCP=Изтриване -ActionRefuseCP=Отказване -ActionCancelCP=Отказ -StatutCP=Състояние -TitleDeleteCP=Изтриване на молбата за отпуск -ConfirmDeleteCP=Потвърждаване на изтриването на тази молба за отпуск? -ErrorCantDeleteCP=Грешка: нямате необходимите права за да изтриете тази молба за отпуск. -CantCreateCP=Вие нямате право да кандидатствате за отпуск. -InvalidValidatorCP=Трябва да изберете лице одобрява молба ви за отпуск. -NoDateDebut=Трябва да изберете началната дата. -NoDateFin=Трябва да изберете крайна дата. +ActionRefuseCP=Отхвърляне +ActionCancelCP=Анулиране +StatutCP=Статус +TitleDeleteCP=Изтриване на молба за отпуск +ConfirmDeleteCP=Сигурни ли сте, че искате да изтриете тази молба за отпуск? +ErrorCantDeleteCP=Грешка: нямате необходимите права, за да изтриете тази молба за отпуск. +CantCreateCP=Нямате право да създавате молби за отпуск. +InvalidValidatorCP=Трябва да изберете потребител, който да одобри вашата молба за отпуск. +NoDateDebut=Необходимо е да изберете начална дата. +NoDateFin=Необходимо е да изберете крайна дата. ErrorDureeCP=Вашата молба за отпуск не съдържа работен ден. -TitleValidCP=Одобряване на молбата за отпуск -ConfirmValidCP=Сигурни ли сте, че желаете да одобрите тази молба за отпуск? -DateValidCP=Дата на утвърждаване +TitleValidCP=Одобряване на молба за отпуск +ConfirmValidCP=Сигурни ли сте, че искате да одобрите тази молба за отпуск? +DateValidCP=Дата на одобрение TitleToValidCP=Изпращане на молба за отпуск -ConfirmToValidCP=Сигурни ли сте, че желаете да изпратите молбата за отпуск? -TitleRefuseCP=Отхвърляне на молбата за отпуск -ConfirmRefuseCP=Сигурни ли сте, че желаете да отхвърлите молбата за отпуск? -NoMotifRefuseCP=Вие трябва да изберете причина за отказ на искането. -TitleCancelCP=Анулиране на молбата за отпуск +ConfirmToValidCP=Сигурни ли сте, че искате да изпратите молбата за отпуск? +TitleRefuseCP=Отхвърляне на молба за отпуск +ConfirmRefuseCP=Сигурни ли сте, че искате да отхвърлите молбата за отпуск? +NoMotifRefuseCP=Необходимо е да посочите причина за отхвърляне на молбата. +TitleCancelCP=Анулиране на молба за отпуск ConfirmCancelCP=Сигурни ли сте, че искате да анулирате молбата за отпуск? -DetailRefusCP=Причина за отказа -DateRefusCP=Дата на отказ -DateCancelCP=Дата на анулирането -DefineEventUserCP=Присвояване изключително отпуск за потребителя -addEventToUserCP=Присвояване напусне -NotTheAssignedApprover=Вие не сте назначен да одобрявате това +DetailRefusCP=Причина за отхвърляне +DateRefusCP=Дата на отхвърляне +DateCancelCP=Дата на анулиране +DefineEventUserCP=Възлагане на извънреден отпуск за потребител +addEventToUserCP=Възлагане на отпуск +NotTheAssignedApprover=Вие не сте определен като одобряващ потребител MotifCP=Причина UserCP=Потребител -ErrorAddEventToUserCP=Възникна грешка при добавяне на изключително отпуск. -AddEventToUserOkCP=Добавянето на извънредния отпуск е завършена. +ErrorAddEventToUserCP=Възникна грешка при добавяне на извънреден отпуск. +AddEventToUserOkCP=Добавянето на извънредния отпуск е завършено. MenuLogCP=История на промените -LogCP=Списък на актуализациите на наличните почивни дни -ActionByCP=В изпълнение на -UserUpdateCP=За потребителя +LogCP=Списък с актуализации на наличните почивни дни +ActionByCP=Изпълнено от +UserUpdateCP=За потребител PrevSoldeCP=Предишен баланс NewSoldeCP=Нов баланс -alreadyCPexist=Вече е направена молба за отпуск за този период. -FirstDayOfHoliday=Първи ден от отпуска -LastDayOfHoliday=Последен ден на отпуска +alreadyCPexist=Вече е създадена молба за отпуск в този период. +FirstDayOfHoliday=Първи ден от отпуск +LastDayOfHoliday=Последен ден от отпуск BoxTitleLastLeaveRequests=Молби за отпуск: %s последно променени HolidaysMonthlyUpdate=Месечна актуализация -ManualUpdate=Ръчна акуализация -HolidaysCancelation=Отказване на молба за отпуск +ManualUpdate=Ръчна актуализация +HolidaysCancelation=Анулиране на молба за отпуск EmployeeLastname=Фамилия на служителя EmployeeFirstname=Собствено име на служителя TypeWasDisabledOrRemoved=Вида отпуск (%s) беше деактивиран или премахнат LastHolidays=Молби за отпуск: %s последни AllHolidays=Всички молби за отпуск HalfDay=Полудневен -NotTheAssignedApprover=Вие не сте назначен да одобрявате това +NotTheAssignedApprover=Вие не сте определен като одобряващ потребител LEAVE_PAID=Платен отпуск LEAVE_SICK=Болничен отпуск LEAVE_OTHER=Неплатен отпуск @@ -103,28 +103,28 @@ LEAVE_PAID_FR=Платен отпуск ## Configuration du Module ## LastUpdateCP=Последно автоматично актуализиране на разпределението на отпуските MonthOfLastMonthlyUpdate=Месец на последната автоматична актуализация на разпределението на отпуските -UpdateConfCPOK=Актуализира се успешно. -Module27130Name= Управление на молби за отпуск +UpdateConfCPOK=Успешно актуализирано. +Module27130Name= Молби за отпуск Module27130Desc= Управление на молби за отпуск ErrorMailNotSend=Възникна грешка при изпращане на имейл: NoticePeriod=Период на известяване #Messages HolidaysToValidate=Валидиране на молби за отпуск -HolidaysToValidateBody=Отдолу е молба за отпуск за валидиране -HolidaysToValidateDelay=Тази молба за отпуск ще се случи в период от по-малко от %s дни. -HolidaysToValidateAlertSolde=Потребителят, който е подал молбата за отпуск, няма достатъчно налични дни. +HolidaysToValidateBody=По-долу е молба за отпуск за валидиране +HolidaysToValidateDelay=Тази молба за отпуск е за период по-малък от %s дни. +HolidaysToValidateAlertSolde=Потребителят, който е създал молбата за отпуск, няма достатъчно налични дни. HolidaysValidated=Валидирани молби за отпуск -HolidaysValidatedBody=Вашата молба за отпуск от %s до %s е била валидирана. -HolidaysRefused=Молбата отказана -HolidaysRefusedBody=Вашата молба за отпуск от %s до %s е била отказана поради следната причина: -HolidaysCanceled=Отказани молби за отпуск -HolidaysCanceledBody=Вашата молба за отпуск от %s до %s е била отказана. +HolidaysValidatedBody=Вашата молба за отпуск от %s до %s е валидирана. +HolidaysRefused=Молбата е отхвърлена +HolidaysRefusedBody=Вашата молба за отпуск от %s до %s е отхвърлена поради следната причина: +HolidaysCanceled=Анулирани молби за отпуск +HolidaysCanceledBody=Вашата молба за отпуск от %s до %s е анулирана. FollowedByACounter=1: Този вид отпуск е необходимо да бъде проследяван от брояч. Броячът се увеличава ръчно или автоматично, а когато молбата за отпуск е валидирана, броячът се намалява.
0: Не се проследява от брояч. NoLeaveWithCounterDefined=Няма дефинирани видове отпуск, които трябва да бъдат проследявани от брояч -GoIntoDictionaryHolidayTypes=Отидете в Начало - Настройки - Речници - Видове отпуски , за да настроите различните видове отпуски. -HolidaySetup=Настройка на модул Отпуск +GoIntoDictionaryHolidayTypes=Отидете в Начало -> Настройки -> Речници -> Видове отпуски , за да настроите различните видове отпуски. +HolidaySetup=Настройка на модул Молби за отпуск HolidaysNumberingModules=Модели за номериране на молби за отпуск -TemplatePDFHolidays=Шаблон за молби за отпуск PDF -FreeLegalTextOnHolidays=Свободен текст в PDF файла +TemplatePDFHolidays=PDF шаблон за молби за отпуск +FreeLegalTextOnHolidays=Свободен текст в молбите за отпуск WatermarkOnDraftHolidayCards=Воден знак върху черновата на молба за отпуск -HolidaysToApprove=Отпуски за одобрение +HolidaysToApprove=Молби за отпуск за одобрение diff --git a/htdocs/langs/bg_BG/interventions.lang b/htdocs/langs/bg_BG/interventions.lang index 8b4ded3adda..d1aadd1c05d 100644 --- a/htdocs/langs/bg_BG/interventions.lang +++ b/htdocs/langs/bg_BG/interventions.lang @@ -1,66 +1,66 @@ # Dolibarr language file - Source file is en_US - interventions -Intervention=Намеса -Interventions=Интервенциите -InterventionCard=Интервенция карта -NewIntervention=Нов намеса -AddIntervention=Създаване на намеса +Intervention=Интервенция +Interventions=Интервенции +InterventionCard=Протокол за интервенция +NewIntervention=Нова интервенция +AddIntervention=Създаване на интервенция ChangeIntoRepeatableIntervention=Променете на повтаряема интервенция -ListOfInterventions=Списък на интервенциите -ActionsOnFicheInter=Действия на интервенцията +ListOfInterventions=Списък на интервенции +ActionsOnFicheInter=Свързани събития LastInterventions=Интервенции: %s последни AllInterventions=Всички интервенции -CreateDraftIntervention=Създаване на проект -InterventionContact=Интервенция контакт +CreateDraftIntervention=Създаване на чернова +InterventionContact=Свързани контакти DeleteIntervention=Изтриване на интервенция -ValidateIntervention=Проверка на интервенция +ValidateIntervention=Валидиране на интервенция ModifyIntervention=Промяна на интервенция -DeleteInterventionLine=Изтрий ред намеса +DeleteInterventionLine=Изтриване на ред в интервенцията ConfirmDeleteIntervention=Сигурни ли сте, че искате да изтриете тази интервенция? -ConfirmValidateIntervention=Сигурни ли сте, че искате да валидирате тази интервенция под името %s? -ConfirmModifyIntervention=Сигурни ли сте, че искате да редактирате тази интервенция? +ConfirmValidateIntervention=Сигурни ли сте, че искате да валидирате тази интервенция с № %s? +ConfirmModifyIntervention=Сигурни ли сте, че искате да промените тази интервенция? ConfirmDeleteInterventionLine=Сигурни ли сте, че искате да изтриете този ред от интервенцията? ConfirmCloneIntervention=Сигурни ли сте, че искате да клонирате тази интервенция? NameAndSignatureOfInternalContact=Име и подпис на изпълнителя: NameAndSignatureOfExternalContact=Име и подпис на клиента: -DocumentModelStandard=Стандартен документ модел за интервенции -InterventionCardsAndInterventionLines=Интервенции и линии на интервенции -InterventionClassifyBilled=Класифицирай като "Таксувани" -InterventionClassifyUnBilled=Класифицирай като "Нетаксувани" -InterventionClassifyDone=Класифицирайте като изпълнена -StatusInterInvoiced=Таксува -SendInterventionRef=Подаване на намеса %s -SendInterventionByMail=Изпращане на интервенцията по имейл -InterventionCreatedInDolibarr=Намеса %s създадена -InterventionValidatedInDolibarr=Намеса %s валидирана -InterventionModifiedInDolibarr=Намеса %s променена +DocumentModelStandard=Стандартен документ за интервенции +InterventionCardsAndInterventionLines=Интервенции и редове от интервенции +InterventionClassifyBilled=Класифициране като 'Фактурирана' +InterventionClassifyUnBilled=Класифициране като 'Нетаксувана' +InterventionClassifyDone=Класифициране като 'Изпълнена' +StatusInterInvoiced=Фактурирана +SendInterventionRef=Изпращане на интервенция %s +SendInterventionByMail=Изпращане на интервенция по имейл +InterventionCreatedInDolibarr=Интервенция %s е създадена +InterventionValidatedInDolibarr=Интервенция %s е валидирана +InterventionModifiedInDolibarr=Интервенция %s е променена InterventionClassifiedBilledInDolibarr=Интервенция %s е фактурирана -InterventionClassifiedUnbilledInDolibarr=Интервенция %s е нефактурирана +InterventionClassifiedUnbilledInDolibarr=Интервенция %s е нетаксувана InterventionSentByEMail=Интервенция %s е изпратена по имейл -InterventionDeletedInDolibarr=Намеса %s изтрита -InterventionsArea=Зона Намеси -DraftFichinter=Чернови намеси +InterventionDeletedInDolibarr=Интервенция %s е изтрита +InterventionsArea=Секция за интервенции +DraftFichinter=Чернови интервенции LastModifiedInterventions=Интервенции: %s последно променени FichinterToProcess=Интервенции за извършване ##### Types de contacts ##### -TypeContact_fichinter_external_CUSTOMER=Проследяване на контакт с клиентите +TypeContact_fichinter_external_CUSTOMER=Последващ контакт на клиента # Modele numérotation -PrintProductsOnFichinter=Отпечатайте също линиите от типа "Продукт" (не само услуги) в картата на интервенцията -PrintProductsOnFichinterDetails=намеси генерирани от поръчки +PrintProductsOnFichinter=Отпечатване на редове от тип 'Продукт' (не само услуги) в интервенциите +PrintProductsOnFichinterDetails=интервенции, генерирани от поръчки UseServicesDurationOnFichinter=Използване на продължителността на услугите за интервенции генерирани от поръчки UseDurationOnFichinter=Скриване на полето за продължителност при запис на интервенция -UseDateWithoutHourOnFichinter=Скриване на часовете и минутите в полето дата при запис на интервенция -InterventionStatistics=Статистика на интервенциите +UseDateWithoutHourOnFichinter=Скриване на часовете и минутите в полето за дата при запис на интервенция +InterventionStatistics=Статистика на интервенции NbOfinterventions=Брой интервенции -NumberOfInterventionsByMonth=Брой интервенции по месец (от датата на валидиране) -AmountOfInteventionNotIncludedByDefault=Общата продължителност на интервенцията не е включена по подразбиране в печалбата (в повечето случаи графиците се използват за отчитане на времето). Добавете опцията PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT със стойност 1 в Начало - Настройка - Други настройки, за да я включите. +NumberOfInterventionsByMonth=Брой интервенции по месец (по дата на валидиране) +AmountOfInteventionNotIncludedByDefault=Общата продължителност на интервенцията не е включена по подразбиране в печалбата (в повечето случаи за отчитане на времето се използват графиците за отделно време). Добавете опцията PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT със стойност 1 в Начало -> Настройки -> Други настройки, за да я включите. ##### Exports ##### -InterId=№ на интервенцията -InterRef=Код на интервенцията -InterDateCreation=Дата на създаване на намеса -InterDuration=Продължителност на намеса -InterStatus=Статус на намеса -InterNote=Забележка към интервенцията -InterLineId=№ на линията в интервенцията -InterLineDate=Дата на линията в интервенцията -InterLineDuration=Продължителност на линията в интервенцията -InterLineDesc=Описание на линията в интервенцията +InterId=Идентификатор на интервенция +InterRef=Реф. интервенция +InterDateCreation=Дата на създаване на интервенцията +InterDuration=Продължителност на интервенцията +InterStatus=Статус на интервенцията +InterNote=Бележка към интервенцията +InterLineId=Идентификатор на реда в интервенцията +InterLineDate=Дата на реда в интервенцията +InterLineDuration=Продължителност на реда в интервенцията +InterLineDesc=Описание на реда в интервенцията diff --git a/htdocs/langs/bg_BG/languages.lang b/htdocs/langs/bg_BG/languages.lang index 59958660a2f..6030d165af6 100644 --- a/htdocs/langs/bg_BG/languages.lang +++ b/htdocs/langs/bg_BG/languages.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - languages Language_ar_AR=Арабски -Language_ar_EG=Arabic (Egypt) +Language_ar_EG=Арабски (Египет) Language_ar_SA=Арабски Language_bn_BD=Бенгали Language_bg_BG=Български @@ -11,41 +11,41 @@ Language_da_DA=Датски Language_da_DK=Датски Language_de_DE=Немски Language_de_AT=Немски (Австрия) -Language_de_CH=Германски (Шверцария) +Language_de_CH=Немски (Швейцария) Language_el_GR=Гръцки -Language_el_CY=Greek (Cyprus) -Language_en_AU=English (Австралия) +Language_el_CY=Гръцки (Кипър) +Language_en_AU=Английски (Австралия) Language_en_CA=Английски (Канада) -Language_en_GB=English (United Kingdom) -Language_en_IN=English (Индия) -Language_en_NZ=English (Нова Зеландия) -Language_en_SA=English (Саудитска Арабия) -Language_en_US=English (United States) -Language_en_ZA=English (Южна Африка) +Language_en_GB=Английски (Обединено кралство) +Language_en_IN=Английски (Индия) +Language_en_NZ=Английски (Нова Зеландия) +Language_en_SA=Английски (Саудитска Арабия) +Language_en_US=Английски (САЩ) +Language_en_ZA=Английски (Южна Африка) Language_es_ES=Испански Language_es_AR=Испански (Аржентина) Language_es_BO=Испански (Боливия) Language_es_CL=Испански (Чили) Language_es_CO=Испански (Колумбия) -Language_es_DO=Испански (Чили) -Language_es_EC=Spanish (Ecuador) +Language_es_DO=Испански (Доминиканска република) +Language_es_EC=Испански (Еквадор) Language_es_HN=Испански (Хондурас) Language_es_MX=Испански (Мексико) -Language_es_PA=Spanish (Panama) +Language_es_PA=Испански (Панама) Language_es_PY=Испански (Парагвай) Language_es_PE=Испански (Перу) Language_es_PR=Испански (Пуерто Рико) -Language_es_UY=Spanish (Uruguay) -Language_es_VE=Spanish (Venezuela) +Language_es_UY=Испански (Уругвай) +Language_es_VE=Испански (Венецуела) Language_et_EE=Естонски -Language_eu_ES=Баска +Language_eu_ES=Баскски Language_fa_IR=Персийски -Language_fi_FI=Завършване +Language_fi_FI=Фински Language_fr_BE=Френски (Белгия) Language_fr_CA=Френски (Канада) Language_fr_CH=Френски (Швейцария) Language_fr_FR=Френски -Language_fr_NC=French (Нова Каледония) +Language_fr_NC=Френски (Нова Каледония) Language_fy_NL=Фризийски Language_he_IL=Иврит Language_hr_HR=Хърватски @@ -55,18 +55,18 @@ Language_is_IS=Исландски Language_it_IT=Италиански Language_ja_JP=Японски Language_ka_GE=Грузински -Language_km_KH=Khmer +Language_km_KH=Кхмерски Language_kn_IN=Каннада Language_ko_KR=Корейски Language_lo_LA=Лаоски Language_lt_LT=Литовски Language_lv_LV=Латвийски Language_mk_MK=Македонски -Language_mn_MN=Mongolian -Language_nb_NO=Норвежки език (книжовен) +Language_mn_MN=Монголски +Language_nb_NO=Норвежки (Bokmål) Language_nl_BE=Холандски (Белгия) Language_nl_NL=Холандски (Холандия) -Language_pl_PL=Лак +Language_pl_PL=Полски Language_pt_BR=Португалски (Бразилия) Language_pt_PT=Португалски Language_ro_RO=Румънски @@ -80,9 +80,10 @@ Language_sq_AL=Албански Language_sk_SK=Словашки Language_sr_RS=Сръбски Language_sw_SW=Суахили -Language_th_TH=Thai +Language_th_TH=Тайски Language_uk_UA=Украински Language_uz_UZ=Узбекски Language_vi_VN=Виетнамски Language_zh_CN=Китайски -Language_zh_TW=Chinese (Traditional) +Language_zh_TW=Китайски (традиционен) +Language_bh_MY=Малайски diff --git a/htdocs/langs/bg_BG/link.lang b/htdocs/langs/bg_BG/link.lang index 7e61f07501a..e435a9128bc 100644 --- a/htdocs/langs/bg_BG/link.lang +++ b/htdocs/langs/bg_BG/link.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - languages -LinkANewFile=Свържи нов файл/документ +LinkANewFile=Свързване на нов файл / документ LinkedFiles=Свързани файлове и документи NoLinkFound=Няма регистрирани връзки -LinkComplete=Файлът е свързан успешно +LinkComplete=Файлът е успешно свързан ErrorFileNotLinked=Файлът не може да бъде свързан -LinkRemoved=Връзка %s е премахната -ErrorFailedToDeleteLink= Неуспех при премахване на връзка '%s' -ErrorFailedToUpdateLink= Неуспех при промяна на връзка '%s' -URLToLink=URL за връзка +LinkRemoved=Връзката %s е премахната +ErrorFailedToDeleteLink= Премахването на връзката '%s' не е успешно +ErrorFailedToUpdateLink= Актуализацията на връзката '%s' не е успешна +URLToLink=URL връзка diff --git a/htdocs/langs/bg_BG/mails.lang b/htdocs/langs/bg_BG/mails.lang index a86d997442c..3e0699cfba3 100644 --- a/htdocs/langs/bg_BG/mails.lang +++ b/htdocs/langs/bg_BG/mails.lang @@ -78,9 +78,9 @@ GroupEmails=Групови имейли OneEmailPerRecipient=Един имейл за получател (по подразбиране е избран един имейл за всеки запис) WarningIfYouCheckOneRecipientPerEmail=Внимание, ако поставите отметка в това квадратче, това означава, че само един имейл ще бъде изпратен за няколко различни избрани записа, така че, ако съобщението ви съдържа заместващи променливи, които се отнасят до данни от даден запис, няма да е възможно да ги замените. ResultOfMailSending=Резултат от масовото изпращане на имейл -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent +NbSelected=Брой избрани +NbIgnored=Брой игнорирани +NbSent=Брой изпратени SentXXXmessages=%s изпратен(о)(и) съобщени(е)(я). ConfirmUnvalidateEmailing=Сигурни ли сте, че искате да превърнете имейла %s в чернова? MailingModuleDescContactsWithThirdpartyFilter=Контакт с клиентски филтри diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang index bb9c15de13a..7481d5cd06c 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -44,8 +44,8 @@ ErrorConstantNotDefined=Параметър %s не е дефиниран ErrorUnknown=Неизвестна грешка ErrorSQL=Грешка в SQL ErrorLogoFileNotFound=Не е открит файл с лого '%s' -ErrorGoToGlobalSetup=Отворете настройка на „Фирма/Организация“, за да коригирате това -ErrorGoToModuleSetup=Отидете в настройка на модула, за да коригирате това +ErrorGoToGlobalSetup=Отидете в настройката на „Фирма / Организация“, за да коригирате това. +ErrorGoToModuleSetup=Отидете в настройката на модула, за да коригирате това. ErrorFailedToSendMail=Неуспешно изпращане на имейл (подател = %s, получател = %s) ErrorFileNotUploaded=Файлът не беше качен. Уверете се, че размерът му не надвишава максимално допустимия, че е на разположение свободно пространство на диска и че няма файл със същото име в тази директория. ErrorInternalErrorDetected=Открита е грешка @@ -72,7 +72,7 @@ SeeAlso=Вижте също %s SeeHere=Вижте тук ClickHere=Кликнете тук Here=Тук -Apply=Приложи +Apply=Приложете BackgroundColorByDefault=Стандартен цвят на фона FileRenamed=Файлът е успешно преименуван FileGenerated=Файлът е успешно генериран @@ -83,7 +83,7 @@ FilesDeleted=Файлът(овете) е(са) успешно изтрит(и) FileWasNotUploaded=Избран е файл за прикачване, но все още не е качен. Кликнете върху "Прикачване на файл" за това. NbOfEntries=Брой вписвания GoToWikiHelpPage=Прочетете онлайн помощта (необходим е достъп до интернет) -GoToHelpPage=Прочетете помощта +GoToHelpPage=Прочетете помощната информация RecordSaved=Записът е съхранен RecordDeleted=Записът е изтрит RecordGenerated=Записът е генериран @@ -103,18 +103,18 @@ ConnectedOnMultiCompany=Свързан към обект ConnectedSince=Свързан от AuthenticationMode=Режим на удостоверяване RequestedUrl=Заявен URL адрес -DatabaseTypeManager=Управление на видовете бази данни +DatabaseTypeManager=Мениджър на типовете база данни RequestLastAccessInError=Последна грешка в заявката за достъп до базата данни ReturnCodeLastAccessInError=Върнат код за грешка при последната заявка за достъп до базата данни InformationLastAccessInError=Информация за грешка при последната заявка за достъп до базата данни DolibarrHasDetectedError=Dolibarr засече техническа грешка YouCanSetOptionDolibarrMainProdToZero=Можете да прочетете .log файл или да зададете опция $ dolibarr_main_prod на '0' в конфигурационния си файл, за да получите повече информация. -InformationToHelpDiagnose=Тази информация може да бъде полезна за диагностични цели (можете да зададете опция $ dolibarr_main_prod на '1', за да премахнете такива известия) +InformationToHelpDiagnose=Тази информация може да бъде полезна за диагностични цели (може да зададете опция $dolibarr_main_prod на '1', за да премахнете такива известия) MoreInformation=Повече информация TechnicalInformation=Техническа информация -TechnicalID=Техническо ID +TechnicalID=Технически идентификатор NotePublic=Бележка (публична) -NotePrivate=Бележка (частна) +NotePrivate=Бележка (лична) PrecisionUnitIsLimitedToXDecimals=Dolibarr е настроен да ограничи прецизността на единичните цени до %s десетични числа. DoTest=Тест ToFilter=Филтър @@ -145,7 +145,7 @@ NotClosed=Не е затворен Enabled=Включено Enable=Включване Deprecated=Отхвърлено -Disable=Изключи +Disable=Изключване Disabled=Изключено Add=Добавяне AddLink=Добавяне на връзка @@ -159,16 +159,16 @@ ConfirmSendCardByMail=Наистина ли искате да изпратите Delete=Изтриване Remove=Премахване Resiliate=Прекратяване -Cancel=Отказ -Modify=Редактиране +Cancel=Анулиране +Modify=Променяне Edit=Редактиране Validate=Валидиране ValidateAndApprove=Валидиране и одобряване ToValidate=За валидиране NotValidated=Не е валидиран -Save=Запис -SaveAs=Запис като -TestConnection=Проверка на връзката +Save=Съхраняване +SaveAs=Съхраняване като +TestConnection=Проверяване на връзката ToClone=Клониране ConfirmClone=Изберете данни, които искате да клонирате: NoCloneOptionsSpecified=Няма определени данни за клониране. @@ -178,20 +178,20 @@ Run=Изпълни CopyOf=Копие на Show=Покажи Hide=Скрий -ShowCardHere=Покажи картата +ShowCardHere=Показване на карта Search=Търсене SearchOf=Търсене Valid=Валидиран -Approve=Одобри -Disapprove=Не одобрявам -ReOpen=Отвори отново -Upload=Качи -ToLink=Връзка +Approve=Одобряване +Disapprove=Отхвърляне +ReOpen=Повторно отваряне +Upload=Прикачи +ToLink=Свържи Select=Изберете Choose=Избор -Resize=Преоразмери -ResizeOrCrop=Преоразмеряване или Изрязване -Recenter=Възстанови +Resize=Оразмеряване +ResizeOrCrop=Оразмеряване или изрязване +Recenter=Възстановяване Author=Автор User=Потребител Users=Потребители @@ -200,7 +200,7 @@ Groups=Групи NoUserGroupDefined=Няма дефинирана потребителска група Password=Парола PasswordRetype=Повторете паролата -NoteSomeFeaturesAreDisabled=Обърнете внимание, че много функции/модули са изключени при тази демонстрация. +NoteSomeFeaturesAreDisabled=Имайте предвид, че много функции / модули са деактивирани в тази демонстрация. Name=Име NameSlashCompany=Име / Фирма Person=Лице @@ -218,9 +218,9 @@ MultiLanguage=Мултиезичност Note=Бележка Title=Заглавие Label=Етикет -RefOrLabel=Код или етикет +RefOrLabel=Референция или етикет Info=История -Family=Семейство +Family=Фамилия Description=Описание Designation=Описание DescriptionOfLine=Описание на реда @@ -237,9 +237,9 @@ Numero=Брой Limit=Лимит Limits=Лимити Logout=Изход -NoLogoutProcessWithAuthMode=Не се прилага функция за изключване на връзката с режима за удостоверяване %s +NoLogoutProcessWithAuthMode=Няма функция за прекъсване на връзката с режим на удостоверяване %s Connection=Вход -Setup=Настройки +Setup=Настройка Alert=Предупреждение MenuWarnings=Предупреждения Previous=Предишен @@ -258,7 +258,7 @@ DateCreation=Дата на създаване DateCreationShort=Създаване DateModification=Дата на промяна DateModificationShort=Промяна -DateLastModification=Последна дата на промяна +DateLastModification=Дата на последна промяна DateValidation=Дата на валидиране DateClosing=Дата на приключване DateDue=Дата на падеж @@ -315,7 +315,7 @@ HourShort=ч MinuteShort=мин Rate=Курс CurrencyRate=Обменен валутен курс -UseLocalTax=Включи данъци +UseLocalTax=Включи данък Bytes=Байта KiloBytes=Килобайта MegaBytes=Мегабайта @@ -333,7 +333,7 @@ Copy=Копиране Paste=Поставяне Default=По подразбиране DefaultValue=Стойност по подразбиране -DefaultValues=Стандартни стойности / филтри / сортиране +DefaultValues=Стойности / филтри / сортиране Price=Цена PriceCurrency=Цена (валута) UnitPrice=Единична цена @@ -352,17 +352,17 @@ AmountHTShort=Сума (без ДДС) AmountTTCShort=Сума (с ДДС) AmountHT=Сума (без ДДС) AmountTTC=Сума (с ДДС) -AmountVAT=Сума на ДДС +AmountVAT=Размер на ДДС MulticurrencyAlreadyPaid=Вече платено, оригинална валута -MulticurrencyRemainderToPay=Оставащо за плащане, оригиналната валута +MulticurrencyRemainderToPay=Оставащо за плащане, оригинална валута MulticurrencyPaymentAmount=Сума на плащане, оригинална валута MulticurrencyAmountHT=Сума (без ДДС), оригинална валута MulticurrencyAmountTTC=Сума (с ДДС), оригинална валута -MulticurrencyAmountVAT=Сума на ДДС, оригинална валута -AmountLT1=Сума на данък 2 -AmountLT2=Сума на данък 3 -AmountLT1ES=Сума на RE -AmountLT2ES=Сума на IRPF +MulticurrencyAmountVAT=Размер на ДДС, оригинална валута +AmountLT1=Размер на данък 2 +AmountLT2=Размер на данък 3 +AmountLT1ES=Размер на RE +AmountLT2ES=Размер на IRPF AmountTotal=Обща сума AmountAverage=Средна сума PriceQtyMinHT=Цена за минимално количество (без ДДС) @@ -380,32 +380,32 @@ Totalforthispage=Общо за тази страница TotalTTC=Сума за плащане TotalTTCToYourCredit=Общо (с ДДС) към вашия кредит TotalVAT=Начислен ДДС -TotalVATIN=Общо IGST -TotalLT1=Общо данък 2 -TotalLT2=Общо данък 3 -TotalLT1ES=Общо RE -TotalLT2ES=Общо IRPF -TotalLT1IN=Общо CGST -TotalLT2IN=Общо SGST +TotalVATIN=Начислен IGST +TotalLT1=Начислен данък 2 +TotalLT2=Начислен данък 3 +TotalLT1ES=Начислен RE +TotalLT2ES=Начислен IRPF +TotalLT1IN=Начислен CGST +TotalLT2IN=Начислен SGST HT=без ДДС TTC=с ДДС INCVATONLY=с ДДС INCT=с всички данъци VAT=ДДС VATIN=IGST -VATs=Данъци върху продажбите +VATs=Данъци върху продажби VATINs=IGST данъци -LT1=Данък върху продажбите 2 -LT1Type=Данък върху продажбите 2 вид -LT2=Данък върху продажбите 3 -LT2Type=Тип данък върху продажбите 3 вид +LT1=Данък 2 върху продажби +LT1Type=Данък върху продажби 2 вид +LT2=Данък 3 върху продажби +LT2Type=Данък върху продажби 3 вид LT1ES=RE LT2ES=IRPF LT1IN=CGST LT2IN=SGST LT1GC=Допълнителни центове VATRate=Данъчна ставка -VATCode=Код за данъчна ставка +VATCode=Код на данъчна ставка VATNPR=Данъчна ставка NPR DefaultTaxRate=Данъчна ставка по подразбиране Average=Средно @@ -417,7 +417,7 @@ Modules=Модули / Приложения Option=Опция List=Списък FullList=Пълен списък -Statistics=Статистики +Statistics=Статистика OtherStatistics=Други статистически данни Status=Статус Favorite=Фаворит @@ -468,8 +468,8 @@ NoOpenedElementToProcess=Няма отворен елемент за обраб Available=Налично NotYetAvailable=Все още не е налично NotAvailable=Не е налично -Categories=Етикети / Категории -Category=Етикет / Категория +Categories=Тагове / Категории +Category=Таг / Категория By=От From=От to=за @@ -509,16 +509,16 @@ ByCompanies=По контрагенти ByUsers=По потребител Links=Връзки Link=Връзка -Rejects=Откази -Preview=Предв. преглед +Rejects=Отхвърляния +Preview=Преглед NextStep=Следваща стъпка Datas=Данни None=Няма NoneF=Няма NoneOrSeveral=Няма или няколко Late=Закъснели -LateDesc=Елементът се дефинира като Закъснение съгласно системната конфигурация в меню Начало - Настройка - Предупреждения. -NoItemLate=Няма забавен елемент +LateDesc=Елементът се дефинира като закъснял съгласно системната конфигурация в меню Начало -> Настройка -> Предупреждения. +NoItemLate=Няма закъснял елемент Photo=Снимка Photos=Снимки AddPhoto=Добавяне на снимка @@ -590,16 +590,16 @@ Keyword=Ключова дума Origin=Произход Legend=Легенда Fill=Попълване -Reset=Нулиране +Reset=Зануляване File=Файл Files=Файлове NotAllowed=Не е разрешено ReadPermissionNotAllowed=Не са предоставени права за четене -AmountInCurrency=Сума във валута %s +AmountInCurrency=Сума в %s Example=Пример Examples=Примери NoExample=Няма пример -FindBug=Съобщи за грешка +FindBug=Подаване на сигнал за грешка NbOfThirdParties=Брой контрагенти NbOfLines=Брой редове NbOfObjects=Брой обекти @@ -609,21 +609,21 @@ TotalQuantity=Общо количество DateFromTo=от %s до %s DateFrom=От %s DateUntil=До %s -Check=Маркирай -Uncheck=Отмаркирай +Check=Маркиране +Uncheck=Отмаркиране Internal=Вътрешен External=Външен Internals=Вътрешни Externals=Външни -Warning=Внимание +Warning=Предупреждение Warnings=Предупреждения BuildDoc=Създаване на документ -Entity=Субект -Entities=Субекти +Entity=Среда +Entities=Организации CustomerPreview=Преглед на клиент SupplierPreview=Преглед на доставчик -ShowCustomerPreview=Показване на преглед на клиент -ShowSupplierPreview=Показване на преглед на доставчик +ShowCustomerPreview=Преглеждане на клиент +ShowSupplierPreview=Преглеждане на доставчик RefCustomer=Реф. клиент Currency=Валута InfoAdmin=Информация за администратори @@ -634,7 +634,7 @@ UndoExpandAll=Свий всички SeeAll=Виж всички Reason=Причина FeatureNotYetSupported=Функцията все още не се поддържа -CloseWindow=Затвори прозореца +CloseWindow=Затваряне на прозорец Response=Отговор Priority=Приоритет SendByMail=Изпращане по имейл @@ -675,22 +675,22 @@ PartialWoman=Частично TotalWoman=Обща NeverReceived=Никога не е получавано Canceled=Анулирано -YouCanChangeValuesForThisListFromDictionarySetup=Може да промените стойностите за този списък от меню Настройки - Речници +YouCanChangeValuesForThisListFromDictionarySetup=Може да промените стойностите за този списък от меню Настройка - Речници YouCanChangeValuesForThisListFrom=Може да промените стойностите за този списък от меню %s YouCanSetDefaultValueInModuleSetup=Може да зададете стойността по подразбиране, използвана при създаване на нов запис в настройката на модула Color=Цвят Documents=Свързани файлове Documents2=Документи -UploadDisabled=Качването е деактивирано +UploadDisabled=Прикачването е деактивирано MenuAccountancy=Счетоводство MenuECM=Документи MenuAWStats=AWStats MenuMembers=Членове -MenuAgendaGoogle=Google бележник +MenuAgendaGoogle=Google календар ThisLimitIsDefinedInSetup=Ограничение на системата (Меню Начало - Настройка - Сигурност): %s Kb, ограничение на PHP: %s Kb NoFileFound=Няма записани документи в тази директория CurrentUserLanguage=Текущ език -CurrentTheme=Текущата тема +CurrentTheme=Текуща тема CurrentMenuManager=Текущ меню манипулатор Browser=Браузър Layout=Оформление @@ -706,11 +706,11 @@ Root=Начало Informations=Информация Page=Страница Notes=Бележки -AddNewLine=Добави нов ред -AddFile=Добави файл +AddNewLine=Добавяне на нов ред +AddFile=Добавяне на файл FreeZone=Не е предварително определен продукт / услуга -FreeLineOfType=Свободен текст към елемента, въведете: -CloneMainAttributes=Клонира обекта с неговите основни атрибути +FreeLineOfType=Елемент със свободен текст, тип: +CloneMainAttributes=Клониране на обекта с неговите основни атрибути ReGeneratePDF=Повторно генериране на PDF PDFMerge=Обединяване на PDF файлове Merge=Обединяване @@ -733,8 +733,8 @@ Result=Резултат ToTest=Тест ValidateBefore=Картата трябва да бъде валидирана, преди да използвате тази функция Visibility=Видимост -Totalizable=Обобщено -TotalizableDesc=Това поле е обобщено в списъка +Totalizable=Обобщаване +TotalizableDesc=Това поле е обобщаващо в списъка Private=Личен Hidden=Скрит Resources=Ресурси @@ -750,10 +750,10 @@ AttributeCode=Код на атрибут URLPhoto=URL адрес на снимка / лого SetLinkToAnotherThirdParty=Връзка към друг контрагент LinkTo=Връзка към -LinkToProposal=Връзка към търговско предложение +LinkToProposal=Връзка към предложение LinkToOrder=Връзка към поръчка LinkToInvoice=Връзка към фактура -LinkToTemplateInvoice=Връзка към шаблон за фактура +LinkToTemplateInvoice=Връзка към шаблонна фактура LinkToSupplierOrder=Връзка към поръчка за покупка LinkToSupplierProposal=Връзка към запитване към доставчик LinkToSupplierInvoice=Връзка към фактура за доставка @@ -775,7 +775,7 @@ ByYear=По година ByMonth=По месец ByDay=По ден BySalesRepresentative=По търговски представител -LinkedToSpecificUsers=Свързано е с конкретен потребителски контакт +LinkedToSpecificUsers=Свързани с конкретен потребител NoResults=Няма резултати AdminTools=Администрация SystemTools=Системни инструменти @@ -785,7 +785,7 @@ Element=Елемент NoPhotoYet=Все още няма налични снимки Dashboard=Табло MyDashboard=Моето табло -Deductible=Удържаем +Deductible=Начисляем from=от toward=към Access=Достъп @@ -796,7 +796,7 @@ SaveUploadedFileWithMask=Запиши файла на сървъра с име " OriginFileName=Оригинално име на файл SetDemandReason=Задайте източник SetBankAccount=Дефиниране на банкова сметка -AccountCurrency=Валута на профила +AccountCurrency=Валута на сметката ViewPrivateNote=Преглед на бележки XMoreLines=%s ред(а) е(са) скрит(и) ShowMoreLines=Показване на повече / по-малко редове @@ -808,8 +808,8 @@ ShowTransaction=Показване на запис на банкова смет ShowIntervention=Показване на интервенция ShowContract=Показване на договор GoIntoSetupToChangeLogo=Отидете в Начало - Настройка - Фирма / Организация, за да промените логото или в Начало - Настройка - Екран, за да го скриете. -Deny=Забраняване -Denied=Забранено +Deny=Отхвърляне +Denied=Отхвърлено ListOf=Списък на %s ListOfTemplates=Списък с шаблони Gender=Пол @@ -831,9 +831,9 @@ ConfirmMassDeletion=Потвърждение за масово изтриван ConfirmMassDeletionQuestion=Сигурни ли сте, че искате да изтриете избраните %s записа? RelatedObjects=Свързани обекти ClassifyBilled=Класифициране като фактурирано -ClassifyUnbilled=Класифициране като нефактурирано +ClassifyUnbilled=Класифициране като нетаксувано Progress=Прогрес -ProgressShort=Напредък +ProgressShort=Прогрес FrontOffice=Фронт офис BackOffice=Бек офис View=Преглед @@ -849,7 +849,7 @@ AllExportedMovementsWereRecordedAsExported=Всички експортирани NotAllExportedMovementsCouldBeRecordedAsExported=Не всички експортирани движения могат да бъдат записани като експортирани Miscellaneous=Разни Calendar=Календар -GroupBy=Групирай по... +GroupBy=Групиране по... ViewFlatList=Преглед на плосък списък RemoveString=Премахване на низ „%s“ SomeTranslationAreUncomplete=Някои от предлаганите езици могат да бъдат само частично преведени или да съдържат грешки. Моля, помогнете ни да коригираме езика ви като се регистрирате на адрес https://transifex.com/projects/p/dolibarr/ , за да добавите подобренията си. @@ -883,11 +883,11 @@ LeadOrProject=Възможност | Проект LeadsOrProjects=Възможности | Проекти Lead=Възможност Leads=Възможности -ListOpenLeads=Списък с отворени възможности -ListOpenProjects=Списък с отворени проекти +ListOpenLeads=Отворени възможности +ListOpenProjects=Отворени проекти NewLeadOrProject=Нова възможност или проект Rights=Права -LineNb=ред № +LineNb=Ред № IncotermLabel=Условия на доставка TabLetteringCustomer=Абревиатура на клиент TabLetteringSupplier=Абревиатура на доставчик @@ -926,7 +926,7 @@ Select2NotFound=Няма намерени резултати Select2Enter=Въвеждане Select2MoreCharacter=или повече знака Select2MoreCharacters=или повече знаци -Select2MoreCharactersMore= Синтаксис на търсенето:
| ИЛИ (а | б)
* Някакъв знак (а * б)
^ Започнете с (^ аб)
$ Завършете с ( ab $)
+Select2MoreCharactersMore= Синтаксис на търсенето:
| или (a|b)
* Някакъв знак (a*b)
^ Започнете с (^ab)
$ Завършете с (ab$)
Select2LoadingMoreResults=Зараждане на повече резултати... Select2SearchInProgress=В процес на търсене... SearchIntoThirdparties=Контрагенти @@ -957,7 +957,7 @@ Everybody=Всички PayedBy=Платено от PayedTo=Платено на Monthly=Месечно -Quarterly=Тримесечие +Quarterly=Тримесечно Annual=Годишно Local=Локално Remote=Отдалечено @@ -973,7 +973,7 @@ Inventory=Складова наличност AnalyticCode=Аналитичен код TMenuMRP=ПМИ ShowMoreInfos=Показване на повече информация -NoFilesUploadedYet=Моля, първо качете документ +NoFilesUploadedYet=Моля, първо прикачете документ SeePrivateNote=Вижте частната бележка PaymentInformation=Платежна информация ValidFrom=Валидно от diff --git a/htdocs/langs/bg_BG/margins.lang b/htdocs/langs/bg_BG/margins.lang index 09789443a91..e1f60eb1201 100644 --- a/htdocs/langs/bg_BG/margins.lang +++ b/htdocs/langs/bg_BG/margins.lang @@ -1,44 +1,44 @@ # Dolibarr language file - Source file is en_US - marges -Margin=Margin -Margins=Полета -TotalMargin=Total Margin -MarginOnProducts=Margin / Products -MarginOnServices=Margin / Services -MarginRate=Margin rate -MarkRate=Mark rate -DisplayMarginRates=Display margin rates -DisplayMarkRates=Display mark rates -InputPrice=Input price -margin=Profit margins management -margesSetup=Profit margins management setup -MarginDetails=Margin details -ProductMargins=Product margins -CustomerMargins=Customer margins -SalesRepresentativeMargins=Sales representative margins -UserMargins=User margins +Margin=Марж +Margins=Маржове +TotalMargin=Общ марж +MarginOnProducts=Марж / Продукти +MarginOnServices=Марж / Услуги +MarginRate=Брутен марж +MarkRate=Нетен марж +DisplayMarginRates=Показване на брутни маржове +DisplayMarkRates=Показване на нетни маржове +InputPrice=Входна стойност +margin=Управление на маржове за печалба +margesSetup=Настройка на маржове за печалба +MarginDetails=Маржови подробности +ProductMargins=Маржове от продукт +CustomerMargins=Маржове от клиент +SalesRepresentativeMargins=Маржове от търговски представител +UserMargins=Маржове от потребител ProductService=Продукт или услуга AllProducts=Всички продукти и услуги -ChooseProduct/Service=Изберете продукт или услуга -ForceBuyingPriceIfNull=Force buying/cost price to selling price if not defined -ForceBuyingPriceIfNullDetails=If buying/cost price not defined, and this option "ON", margin will be zero on line (buying/cost price = selling price), otherwise ("OFF"), marge will be equal to suggested default. -MARGIN_METHODE_FOR_DISCOUNT=Margin method for global discounts +ChooseProduct/Service=Избиране на продукт или услуга +ForceBuyingPriceIfNull=Форсиране на покупна цена / себестойност да бъде равна на продажната цена, ако не е дефинирана първата +ForceBuyingPriceIfNullDetails=Ако покупната цена / себестойност не е дефинирана и тази опция е включена, маржа ще бъде нула за реда (покупна цена / себестойност = продажна цена), в противен случай, ако е изключена маржа ще бъде равен на предложения по подразбиране. +MARGIN_METHODE_FOR_DISCOUNT=Маржов метод за глобални отстъпки UseDiscountAsProduct=Като продукт UseDiscountAsService=Като услуга -UseDiscountOnTotal=On subtotal -MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Defines if a global discount is treated as a product, a service, or only on subtotal for margin calculation. -MARGIN_TYPE=Buying/Cost price suggested by default for margin calculation -MargeType1=Margin on Best vendor price -MargeType2=Margin on Weighted Average Price (WAP) -MargeType3=Margin on Cost Price -MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card
* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best supplier price if WAP not yet defined
* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best supplier price if WAP not yet defined -CostPrice=Cost price -UnitCharges=Unit charges -Charges=Charges -AgentContactType=Commercial agent contact type -AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per sale representative -rateMustBeNumeric=Rate must be a numeric value -markRateShouldBeLesserThan100=Mark rate should be lower than 100 -ShowMarginInfos=Show margin infos -CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). +UseDiscountOnTotal=Като междинна сума +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Определя дали глобалната отстъпка се третира като продукт, услуга или само като междинна сума за изчисление на маржа. +MARGIN_TYPE=Покупна цена / себестойност предложена по подразбиране за изчисление на маржа +MargeType1=Марж по най-добра цена от доставчик +MargeType2=Марж по средно претеглена цена (WAP) +MargeType3=Марж по себестойност +MarginTypeDesc=* Марж по най-добра цена от доставчик = продажна цена - най-добра цена от доставчик, дефинирани в картата на продукта / услугата.
* Марж по средно претеглена цена (WAP) = Продажна цена - Средно претеглена цена (WAP) или най-добра цена от доставчик, ако WAP все още не е дефиниран
* Марж по себестойност = Продажна цена - Себестойност, дефинирани в картата на продукта/услугата или WAP, ако себестойността не е дефинирана, или най-добра цена от доставчик, ако WAP не е дефиниран. +CostPrice=Себестойност +UnitCharges=Единични такси +Charges=Такси +AgentContactType=Тип контакт с търговски представител +AgentContactTypeDetails=Определете какъв тип контакт (свързан към фактурите) ще бъде използван за отчет на маржа за всеки търговски представител +rateMustBeNumeric=Процента трябва да е числова стойност +markRateShouldBeLesserThan100=Нетния марж трябва да бъде по-малък от 100 +ShowMarginInfos=Показване на информация за марж +CheckMargins=Маржови подробности +MarginPerSaleRepresentativeWarning=Справката за изчисляване на маржа от всеки потребител, използва връзката между контрагентите и търговските представители. Тъй като някои контрагенти нямат само по един търговски представител, а някои контрагенти може да бъде свързани с няколко представители, то някои стойности не могат да бъдат включени в тази справка (ако няма търговски представител) и някои може да се появят на различни редове (за всеки търговски представител). diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang index 267e68f71f3..0f11fd65898 100644 --- a/htdocs/langs/bg_BG/other.lang +++ b/htdocs/langs/bg_BG/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Брой клиентски фактури NumberOfSupplierProposals=Брой доставни фактури NumberOfSupplierOrders=Брой поръчки за покупка NumberOfSupplierInvoices=Брой доставни фактури +NumberOfContracts=Брой договори NumberOfUnitsProposals=Брой единици по търговски предложения NumberOfUnitsCustomerOrders=Брой единици по клиентски поръчки NumberOfUnitsCustomerInvoices=Брой единици по клиентски фактури NumberOfUnitsSupplierProposals=Брой единици по запитвания към доставчици NumberOfUnitsSupplierOrders=Брой единици по поръчки за покупка NumberOfUnitsSupplierInvoices=Брой единици по доставни фактури +NumberOfUnitsContracts=Брой единици по договори EMailTextInterventionAddedContact=Възложена ви е нова интервенция %s. EMailTextInterventionValidated=Интервенция %s е валидирана. EMailTextInvoiceValidated=Фактура %s е валидирана. @@ -246,10 +248,10 @@ YourPasswordHasBeenReset=Вашата парола е успешно възст ApplicantIpAddress=IP адрес на заявителя SMSSentTo=Изпратен е SMS на %s MissingIds=Липсват идентификатори -ThirdPartyCreatedByEmailCollector=Third party created by email collector from email MSGID %s -ContactCreatedByEmailCollector=Contact/address created by email collector from email MSGID %s -ProjectCreatedByEmailCollector=Project created by email collector from email MSGID %s -TicketCreatedByEmailCollector=Ticket created by email collector from email MSGID %s +ThirdPartyCreatedByEmailCollector=Контрагент, създаден чрез имейл колектор от имейл MSGID %s +ContactCreatedByEmailCollector=Контактът/адресът, създаден чрез имейл колектор от имейл MSGID %s +ProjectCreatedByEmailCollector=Проект, създаден чрез имейл колектор от имейл MSGID %s +TicketCreatedByEmailCollector=Тикет, създаден чрез имейл колектор от имейл MSGID %s ##### Export ##### ExportsArea=Секция за експорт @@ -268,5 +270,5 @@ WEBSITE_IMAGEDesc=Относителен път до изображението. WEBSITE_KEYWORDS=Ключови думи LinesToImport=Редове за импортиране -MemoryUsage=Memory usage -RequestDuration=Duration of request +MemoryUsage=Използване на паметта +RequestDuration=Продължителност на заявката diff --git a/htdocs/langs/bg_BG/products.lang b/htdocs/langs/bg_BG/products.lang index eaa2a6e5fef..751313cdc4d 100644 --- a/htdocs/langs/bg_BG/products.lang +++ b/htdocs/langs/bg_BG/products.lang @@ -159,7 +159,7 @@ SuppliersPrices=Доставни цени SuppliersPricesOfProductsOrServices=Доставни цени (на продукти/услуги) CustomCode=Митнически / Стоков / ХС код CountryOrigin=Държава на произход -Nature=Nature of produt (material/finished) +Nature=Естество на продукта (материал / завършен) ShortLabel=Кратък етикет Unit=Мярка p=е. diff --git a/htdocs/langs/bg_BG/resource.lang b/htdocs/langs/bg_BG/resource.lang index 6e187b8709a..085effaa5e7 100644 --- a/htdocs/langs/bg_BG/resource.lang +++ b/htdocs/langs/bg_BG/resource.lang @@ -5,8 +5,8 @@ DeleteResource=Изтриване на ресурс ConfirmDeleteResourceElement=Потвърждаване на изтриване на ресурса за този елемент NoResourceInDatabase=Няма ресурс в базата данни. NoResourceLinked=Няма свързан ресурс - -ResourcePageIndex=Списък ресурси +ActionsOnResource=Събития свързани с този ресурс +ResourcePageIndex=Списък с ресурси ResourceSingular=Ресурс ResourceCard=Карта на ресурс AddResource=Създаване на ресурс @@ -18,19 +18,19 @@ ResourcesLinkedToElement=Ресурси свързани към елемент ShowResource=Показване на ресурс -ResourceElementPage=Ресурси на елемент +ResourceElementPage=Ресурси ResourceCreatedWithSuccess=Ресурсът е успешно създаден -RessourceLineSuccessfullyDeleted=Линията на ресурса е успешно изтрита -RessourceLineSuccessfullyUpdated=Линията на ресурса е успешно обновена -ResourceLinkedWithSuccess=Ресурсът е свързан успешно +RessourceLineSuccessfullyDeleted=Ресурсът е успешно изтрит +RessourceLineSuccessfullyUpdated=Ресурсът е успешно актуализиран +ResourceLinkedWithSuccess=Ресурсът е успешно свързан ConfirmDeleteResource=Потвърждаване на изтриването на този ресурс RessourceSuccessfullyDeleted=Ресурсът е успешно изтрит -DictionaryResourceType=Тип на ресурси +DictionaryResourceType=Типове ресурси SelectResource=Избиране на ресурс -IdResource=Id resource -AssetNumber=Serial number -ResourceTypeCode=Resource type code +IdResource=Идентификатор на ресурс +AssetNumber=Сериен номер +ResourceTypeCode=Код за типа ресурс ImportDataset_resource_1=Ресурси diff --git a/htdocs/langs/bg_BG/salaries.lang b/htdocs/langs/bg_BG/salaries.lang index e69d8b20a81..1648598787a 100644 --- a/htdocs/langs/bg_BG/salaries.lang +++ b/htdocs/langs/bg_BG/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Счетоводна сметка, използвана за контрагенти -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Специализираната счетоводна сметка, дефинирана в картата на потребителя, ще се използва само за вторично счетоводно отчитане. Тя ще бъде използвана в регистъра на главната книга и като стойност по подразбиране за вторично счетоводно отчитане, ако не е дефинирана специализирана потребителска счетоводна сметка за потребителя. +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Счетоводна сметка, използвана за служители на контрагенти +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Специализираната счетоводна сметка, дефинирана в картата на потребителя, ще се използва само за вторично счетоводно отчитане. Тя ще бъде използвана в регистъра на главната счетоводна книга и като стойност по подразбиране за вторично счетоводно отчитане, ако не е дефинирана специализирана потребителска счетоводна сметка за потребителя. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Счетоводна сметка по подразбиране за плащане на заплати Salary=Заплата Salaries=Заплати @@ -12,10 +12,10 @@ ShowSalaryPayment=Показване на плащане на заплата THM=Средна почасова ставка TJM=Средна дневна ставка CurrentSalary=Текуща заплата -THMDescription=Тази стойност може да се използва за изчисляване на разходите за времето, изразходвано по проект, ако модула проекти се използва. +THMDescription=Тази стойност може да се използва за изчисляване на разходите за времето, което е отделено по проект, ако модула проекти се използва. TJMDescription=Тази стойност понастоящем е информативна и не се използва за изчисления LastSalaries=Плащания на заплати: %s последни AllSalaries=Всички плащания на заплати SalariesStatistics=Статистика на заплатите # Export -SalariesAndPayments=Salaries and payments +SalariesAndPayments=Заплати и плащания diff --git a/htdocs/langs/bg_BG/stocks.lang b/htdocs/langs/bg_BG/stocks.lang index 3d1e9f84720..27a3b5aa48a 100644 --- a/htdocs/langs/bg_BG/stocks.lang +++ b/htdocs/langs/bg_BG/stocks.lang @@ -22,7 +22,7 @@ LotSerial=Партиди/Серийни номера LotSerialList=Списък на партиди/серийни номера Movements=Движения ErrorWarehouseRefRequired=Изисква се референтно име на склад -ListOfWarehouses=Списък на складовете +ListOfWarehouses=Списък на складове ListOfStockMovements=Списък на движението на стоковите наличности ListOfInventories=Списък на инвентари MovementId=Идент. № за движение @@ -66,12 +66,12 @@ RuleForStockManagementIncrease=Избиране на правило за авт DeStockOnBill=Намаляване на реални наличности при валидиране на фактура за продажба / кредитно известие DeStockOnValidateOrder=Намаляване на реални наличности при валидиране на клиентска поръчка DeStockOnShipment=Намаляване на реални наличности при валидиране на доставка -DeStockOnShipmentOnClosing=Decrease real stocks when shipping is set to closed +DeStockOnShipmentOnClosing=Намаляване на реалните наличности, когато доставката е класифицирана като приключена ReStockOnBill=Увеличаване на реални наличности при валидиране на фактура за покупка / кредитно известие ReStockOnValidateOrder=Увеличаване на реални наличности при одобряване на поръчка за покупка ReStockOnDispatchOrder=Увеличаване на реални наличности при ръчно изпращане в склад, след получаване на поръчка за покупка на стоки -StockOnReception=Increase real stocks on validation of reception -StockOnReceptionOnClosing=Increase real stocks when reception is set to closed +StockOnReception=Увеличаване на реалните наличности при валидиране на приемането +StockOnReceptionOnClosing=Увеличаване на реалните наличности, когато приемането е класифицирано като приключено OrderStatusNotReadyToDispatch=Поръчка все още не е или не повече статут, който позволява изпращането на продукти на склад складове. StockDiffPhysicTeoric=Обясняване за разликата между физическа и виртуална наличност NoPredefinedProductToDispatch=Няма предварително определени продукти за този обект, така че не се изисква изпращане на наличност. @@ -83,7 +83,7 @@ PhysicalStock=Физическа наличност RealStock=Реална наличност RealStockDesc=Физическа/реална наличност е наличността, която в момента се намира в складовете. RealStockWillAutomaticallyWhen=Реалната наличност ще бъде модифицирана според това правило (както е определено в модула на Наличности): -VirtualStock=Вирт. наличност +VirtualStock=Виртуална наличност VirtualStockDesc=Виртуална наличност е изчислената наличност, която се образува след като всички отворени / предстоящи действия (които засягат наличности) се затворят (получени поръчки за покупка, изпратени клиентски поръчки и т.н.) IdWarehouse=Идент. № на склад DescWareHouse=Описание на склад @@ -114,8 +114,8 @@ UseVirtualStockByDefault=Използване на виртуални налич UseVirtualStock=Използване на виртуални наличности UsePhysicalStock=Използване на физически наличности CurentSelectionMode=Текущ режим на избор -CurentlyUsingVirtualStock=Вирт. наличност -CurentlyUsingPhysicalStock=Факт. наличност +CurentlyUsingVirtualStock=Виртуална наличност +CurentlyUsingPhysicalStock=Фактическа наличност RuleForStockReplenishment=Правило за попълване на наличности SelectProductWithNotNullQty=Избиране на най-малко един продукт с количество различно от 0 и доставчик AlertOnly= Само предупреждения diff --git a/htdocs/langs/bg_BG/supplier_proposal.lang b/htdocs/langs/bg_BG/supplier_proposal.lang index aeda262caa0..bebe7d33843 100644 --- a/htdocs/langs/bg_BG/supplier_proposal.lang +++ b/htdocs/langs/bg_BG/supplier_proposal.lang @@ -9,7 +9,7 @@ DraftRequests=Чернови на запитвания SupplierProposalsDraft=Чернови на запитвания за цени LastModifiedRequests=Запитвания за цени: %s последно променени RequestsOpened=Отворени запитвания за цени -SupplierProposalArea=Зона на Запитвания към доставчици +SupplierProposalArea=Секция за запитвания за оферти SupplierProposalShort=Запитване към доставчик SupplierProposals=Запитвания към доставчик SupplierProposalsShort=Запитвания към доставчик diff --git a/htdocs/langs/bg_BG/suppliers.lang b/htdocs/langs/bg_BG/suppliers.lang index 81f7dec537b..d83eb071c1e 100644 --- a/htdocs/langs/bg_BG/suppliers.lang +++ b/htdocs/langs/bg_BG/suppliers.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - vendors Suppliers=Доставчици SuppliersInvoice=Фактура за доставка -ShowSupplierInvoice=Покажи фактурата от доставчика +ShowSupplierInvoice=Показване на фактура за доставка NewSupplier=Нов доставчик History=История ListOfSuppliers=Списък на доставчици @@ -13,17 +13,17 @@ TotalBuyingPriceMinShort=Обща сума от покупните цени на TotalSellingPriceMinShort=Обща сума от продажните цени на субпродукти SomeSubProductHaveNoPrices=Някои субпродукти нямат дефинирана цена AddSupplierPrice=Добавяне на покупна цена -ChangeSupplierPrice=Променяне на покупна цена +ChangeSupplierPrice=Промяна на покупна цена SupplierPrices=Доставни цени -ReferenceSupplierIsAlreadyAssociatedWithAProduct=Този идентификатор е вече свързан с продукт: %s +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Този реф. № (SKU) е вече свързан с продукт: %s NoRecordedSuppliers=Няма регистриран доставчик SupplierPayment=Плащане към доставчик -SuppliersArea=Зона на доставчиците -RefSupplierShort=Реф. № на доставчик +SuppliersArea=Секция с доставчици +RefSupplierShort=Реф. № (SKU) Availability=Наличност -ExportDataset_fournisseur_1=Фактури за доставка и подробности за фактурите +ExportDataset_fournisseur_1=Фактури за доставка и подробности за тях ExportDataset_fournisseur_2=Фактури и плащания за доставка -ExportDataset_fournisseur_3=Поръчки за покупка и подробности за поръчките +ExportDataset_fournisseur_3=Поръчки за покупка и подробности за тях ApproveThisOrder=Одобряване на поръчка ConfirmApproveThisOrder=Сигурни ли сте, че искате да одобрите тази поръчка %s? DenyingThisOrder=Отхвърляне на поръчка @@ -32,11 +32,11 @@ ConfirmCancelThisOrder=Сигурни ли сте, че искате да ану AddSupplierOrder=Създаване на поръчка за покупка AddSupplierInvoice=Създаване на фактура за доставка ListOfSupplierProductForSupplier=Списък на продукти и цени за доставчик %s -SentToSuppliers=Изпратено към доставчиците +SentToSuppliers=Изпратено към доставчици ListOfSupplierOrders=Списък на поръчки за покупка MenuOrdersSupplierToBill=Поръчки за покупка за фактуриране -NbDaysToDelivery=Забавяне на доставката (дни) -DescNbDaysToDelivery=Най-дългото забавяне на доставка на продукти от тази поръчка +NbDaysToDelivery=Забавяне на доставка (дни) +DescNbDaysToDelivery=Най-дълго забавяне на доставка за продукти от тази поръчка SupplierReputation=Репутация на доставчика DoNotOrderThisProductToThisSupplier=Не поръчвайте NotTheGoodQualitySupplier=Ниско качество diff --git a/htdocs/langs/bg_BG/trips.lang b/htdocs/langs/bg_BG/trips.lang index bd3046fe9d1..33d8424a659 100644 --- a/htdocs/langs/bg_BG/trips.lang +++ b/htdocs/langs/bg_BG/trips.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - trips -ShowExpenseReport=Показване на разходни отчети +ShowExpenseReport=Показване на разходен отчет Trips=Разходни отчети TripsAndExpenses=Разходни отчети TripsAndExpensesStatistics=Статистика на разходните отчети @@ -19,15 +19,15 @@ ConfirmDeleteTrip=Сигурни ли сте, че искате да изтри ListTripsAndExpenses=Списък с разходни отчети ListToApprove=Очаква одобрение ExpensesArea=Секция за разходни отчети -ClassifyRefunded=Класифициране като 'Рефинансиран' +ClassifyRefunded=Класифициране като 'Възстановен' ExpenseReportWaitingForApproval=Нов разходен отчет е изпратен за одобрение ExpenseReportWaitingForApprovalMessage=Създаден е нов разходен отчет, който очаква одобрение.
- Потребител: %s
- Период: %s
Кликнете тук, за да го одобрите или отхвърлите: %s ExpenseReportWaitingForReApproval=Разходният отчет е изпратен за повторно одобрение -ExpenseReportWaitingForReApprovalMessage=Създаден разходен отчет очаква повторно одобрение.
Отчетът %s, отказахте да одобрите по следната причина: %s.
Предложена е нова версия, която очаква одобрение.
- Потребител: %s
- Период: %s
Кликнете тук, за да одобрите или отхвърлите: %s +ExpenseReportWaitingForReApprovalMessage=Създаден разходен отчет очаква повторно одобрение.
Отчетът %s, отказахте да одобрите по следната причина: %s.
Предложена е нова версия, която очаква одобрение.
- Потребител: %s
- Период: %s
Кликнете тук, за да го одобрите или отхвърлите: %s ExpenseReportApproved=Разходният отчет е одобрен ExpenseReportApprovedMessage=Разходният отчет %s е одобрен.
- Потребител: %s
- Одобрен от: %s
Кликнете тук, за да видите разходният отчет: %s -ExpenseReportRefused=Разходния отчет е отхвърлен -ExpenseReportRefusedMessage=Разходният отчет %s е отхвърлен.
- Потребител: %s
- Отхвърлен от: %s
- Причина за отхвърляне: %s
Кликнете тук, за видите разходния отчет: %s +ExpenseReportRefused=Разходният отчет е отхвърлен +ExpenseReportRefusedMessage=Разходният отчет %s е отхвърлен.
- Потребител: %s
- Отхвърлен от: %s
- Причина за отхвърляне: %s
Кликнете тук, за да видите разходния отчет: %s ExpenseReportCanceled=Разходният отчет е анулиран ExpenseReportCanceledMessage=Разходният отчет %s е анулиран.
- Потребител: %s
- Анулиран от: %s
- Причина за анулиране: %s
Кликнете тук, за да видите разходния отчет: %s ExpenseReportPaid=Разходният отчет е платен @@ -37,7 +37,7 @@ AnyOtherInThisListCanValidate=Лице за информиране, което TripSociete=Информация за фирма TripNDF=Информация за разходен отчет PDFStandardExpenseReports=Стандартен шаблон за генериране на PDF документ на разходния отчет -ExpenseReportLine=№ +ExpenseReportLine=Ред № TF_OTHER=Други TF_TRIP=Транспорт TF_LUNCH=Обяд @@ -73,14 +73,14 @@ EX_PAR_VP=Паркинг за ЛПС EX_CAM_VP=Поддръжка и ремонт на ЛПС DefaultCategoryCar=Режим на транспортиране по подразбиране DefaultRangeNumber=Номер на обхвата по подразбиране -UploadANewFileNow=Качете нов документ сега -Error_EXPENSEREPORT_ADDON_NotDefined=Грешка, правилото за номериране на разходни отчети не е дефинирано в настройката на модула 'Разходни отчети' +UploadANewFileNow=Прикачване на нов документ +Error_EXPENSEREPORT_ADDON_NotDefined=Грешка, правилото за номериране на разходни отчети не е дефинирано в настройката на модула разходни отчети. ErrorDoubleDeclaration=Създали сте друг разходен отчет в същия времеви период. AucuneLigne=Няма деклариран разходен отчет ModePaiement=Начин на плащане VALIDATOR=Потребител отговорен за одобрение VALIDOR=Одобрен от -AUTHOR=Записан от +AUTHOR=Създаден от AUTHORPAIEMENT=Платен от REFUSEUR=Отхвърлен от CANCEL_USER=Изтрит от @@ -112,8 +112,8 @@ ExpenseReportsToPay=Разходни отчети за плащане ConfirmCloneExpenseReport=Сигурни ли сте, че искате да клонирате този разходен отчет? ExpenseReportsIk=Индекс за отчитане на разходите ExpenseReportsRules=Правила за отчитане на разходите -ExpenseReportIkDesc=Можете да променяте изчисляването на разхода по километри, въз основа на категория и обхват, които са определени предварително. км е разстоянието в километри. -ExpenseReportRulesDesc=Можете да създавате или променяте правилата за изчисляване. Тази част ще се използва, когато потребител създаде разходен отчет. +ExpenseReportIkDesc=Може да променяте изчисляването на разхода по километри, въз основа на категория и обхват, които са определени предварително. км е разстоянието в километри. +ExpenseReportRulesDesc=Може да създавате или променяте правилата за изчисляване. Тази част ще се използва, когато потребител създаде разходен отчет. expenseReportOffset=Офсет expenseReportCoef=Коефициент expenseReportTotalForFive=Пример с км = 5 @@ -139,13 +139,13 @@ ExpenseReportConstraintViolationError=Идентификатор за наруш byEX_DAY=по ден (ограничение до %s) byEX_MON=по месец (ограничение до %s) byEX_YEA=по година (ограничение до %s) -byEX_EXP=от ред (ограничение до %s) +byEX_EXP=по ред (ограничение до %s) ExpenseReportConstraintViolationWarning=Идентификатор за нарушение на ограничението [%s]: %s превъзхожда %s %s nolimitbyEX_DAY=по ден (без ограничение) nolimitbyEX_MON=по месец (без ограничение) nolimitbyEX_YEA=по година (без ограничение) -nolimitbyEX_EXP=от ред (няма ограничение) -CarCategory=Категория на автомобила +nolimitbyEX_EXP=по ред (без ограничение) +CarCategory=Категория на автомобил ExpenseRangeOffset=Размер на офсета: %s RangeIk=Обхват на пробега AttachTheNewLineToTheDocument=Прикрепете реда към свързан документ diff --git a/htdocs/langs/bg_BG/website.lang b/htdocs/langs/bg_BG/website.lang index 18dc11e057d..7253e5c8aef 100644 --- a/htdocs/langs/bg_BG/website.lang +++ b/htdocs/langs/bg_BG/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/bg_BG/workflow.lang b/htdocs/langs/bg_BG/workflow.lang index ac65d1382f2..71026fb3062 100644 --- a/htdocs/langs/bg_BG/workflow.lang +++ b/htdocs/langs/bg_BG/workflow.lang @@ -1,20 +1,20 @@ # Dolibarr language file - Source file is en_US - workflow -WorkflowSetup=Настройки на модул Workflow -WorkflowDesc=Този модул е проектиран да редактира поведението на автоматичните действия в приложението. По подразбиране, работния процес е отворен (можете да правите неща в реда, в който желаете). Можете да активирате автоматичните действия, които ви интересуват. +WorkflowSetup=Настройка на модула работен процес +WorkflowDesc=Този модул осигурява някои автоматични действия. По подразбиране работният процес е отворен (можете да правите нещата в реда, по който искате), но тук можете да активирате някои автоматични действия. ThereIsNoWorkflowToModify=Няма налични промени на работния процес с активираните модули. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Създай автоматично клиентска поръчка, след като предложението е подписано (новата поръчка че е на същатата стойност) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Автоматично създа фактура, след като търговското предложение е подписано (новата фактура ще има същата стойност като предложението) -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след като договора е валидиран -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Автоматично създай фактура, след като клиентската поръчка е затворена (новата фактура ще има същата стойност като поръчката) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Автоматично създаване на клиентска поръчка след подписване на търговско предложение (новата поръчка ще има същата стойност като на предложение) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след подписване на търговско предложение (новата фактура ще има същата стойност като на предложението) +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след валидиране на договор +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след затваряне на клиентска поръчка (новата фактура ще има същата стойност като на поръчката) # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Класифицирай свържаното предложение/предложения като платени, когато клиентската поръчка е маркирана като платена (ако стойността на поръчката е същата, като на свързаното предложение) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Класифицирай вързаното предложение/я като платени, когато фактурата е валидирана (ако стойността на фактурата е същата като на подписаното предложение) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Класифицирай вързаната клиенска поръчка/поръчки като платени, когато фактурата е валидирана (ако стойността на фактурата е същата, като на вързаната поръчка) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Класифицирай свързаната клиентска поръчка/поръчки като платена, когато фактурата е маркирана като платена (ако стойността на фактурата е същата, като на вързаната поръчка) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source customer order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) -# Autoclassify supplier order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked proposals) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Класифициране на свързано търговско предложение - първоизточник като фактурирано след класифициране на клиентска поръчка като фактурирана (и ако стойността на поръчката е същата като общата сума на подписаното свързано предложение) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Класифициране на свързано търговско предложение - първоизточник като фактурирано след валидиране на клиентска фактура (и ако стойността на фактурата е същата като общата сума на подписаното свързано предложение) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Класифициране на свързана клиентска поръчка - първоизточник като фактурирана след валидиране на клиентска фактура (и ако стойността на фактурата е същата като общата сума на свързаната поръчка) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Класифициране на свързана клиентска поръчка - първоизточник като фактурирана след плащане на клиентска фактура (и ако стойността на фактурата е същата като общата сума на свързаната поръчка) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Класифициране на свързана клиентска поръчка - първоизточник като изпратена след валидиране на пратка (и ако количеството, изпратено, чрез всички пратки е същото като в поръчката за актуализиране) +# Autoclassify purchase order +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Класифициране на свързаното за запитване към доставчик - първоизточник като фактурираното след валидиране на доставната фактура (и ако стойността на фактурата е същата като общата сума на свързаното запитване) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Класифициране на свързаната поръчка за покупка - първоизточник като фактурирана след валидиране на доставна фактура (и ако стойността на фактурата е същата като общата сума на свързаната поръчка) AutomaticCreation=Автоматично създаване AutomaticClassification=Автоматично класифициране diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/bn_BD/accountancy.lang +++ b/htdocs/langs/bn_BD/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/bn_BD/admin.lang b/htdocs/langs/bn_BD/admin.lang index 9eaa12ec9be..f30d6edd9f7 100644 --- a/htdocs/langs/bn_BD/admin.lang +++ b/htdocs/langs/bn_BD/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/bn_BD/bills.lang b/htdocs/langs/bn_BD/bills.lang index 5f39c25daf2..4467e38e1e7 100644 --- a/htdocs/langs/bn_BD/bills.lang +++ b/htdocs/langs/bn_BD/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/bn_BD/companies.lang b/htdocs/langs/bn_BD/companies.lang index 5ebfc8b1564..010d9bc67d7 100644 --- a/htdocs/langs/bn_BD/companies.lang +++ b/htdocs/langs/bn_BD/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/bn_BD/other.lang b/htdocs/langs/bn_BD/other.lang index a6802140be3..8a5ccdbab5c 100644 --- a/htdocs/langs/bn_BD/other.lang +++ b/htdocs/langs/bn_BD/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/bn_BD/website.lang b/htdocs/langs/bn_BD/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/bn_BD/website.lang +++ b/htdocs/langs/bn_BD/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang index 427995e88d0..bf7de1af534 100644 --- a/htdocs/langs/bs_BA/accountancy.lang +++ b/htdocs/langs/bs_BA/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang index 06471c6fe6b..a8fe248b017 100644 --- a/htdocs/langs/bs_BA/admin.lang +++ b/htdocs/langs/bs_BA/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/bs_BA/bills.lang b/htdocs/langs/bs_BA/bills.lang index 6b4f729a832..abe5086202e 100644 --- a/htdocs/langs/bs_BA/bills.lang +++ b/htdocs/langs/bs_BA/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Predračun InvoiceProFormaDesc=Predračun izgleda isto kao račun, ali nema računovodstvene vrijednosti. InvoiceReplacement=Zamjenska faktura InvoiceReplacementAsk=Zamjenska faktura za fakturu -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Knjižna obavijest InvoiceAvoirAsk=Knjižna obavijest za korekciju računa InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/bs_BA/companies.lang b/htdocs/langs/bs_BA/companies.lang index 4a2e08700d5..f4be43431d8 100644 --- a/htdocs/langs/bs_BA/companies.lang +++ b/htdocs/langs/bs_BA/companies.lang @@ -28,7 +28,7 @@ AliasNames=Nadimak (komercijalni, trgovačkim, ...) AliasNameShort=Alias Name Companies=Kompanije CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Apsolutni popusti prodavača (uneseni od strane SupplierAbsoluteDiscountMy=Apsolutni popusti prodavača (uneseni od strane sebe) DiscountNone=Ništa Vendor=Vendor +Supplier=Vendor AddContact=Napravi kontakt AddContactAddress=Napravi kontakt/adresu EditContact=Uredi kontakt diff --git a/htdocs/langs/bs_BA/other.lang b/htdocs/langs/bs_BA/other.lang index 7bd1e35524f..648a6c40933 100644 --- a/htdocs/langs/bs_BA/other.lang +++ b/htdocs/langs/bs_BA/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/bs_BA/website.lang b/htdocs/langs/bs_BA/website.lang index 978ed485cd6..8aa3e8d93f8 100644 --- a/htdocs/langs/bs_BA/website.lang +++ b/htdocs/langs/bs_BA/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index 529605e4a5f..951da450713 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Compte de resultats comptable (pèrdua) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Revista de tancament ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte de comptabilitat de la transferència bancària de transició +TransitionalAccount=Compte de transferència bancària transitòria ACCOUNTING_ACCOUNT_SUSPENSE=Compte comptable d'espera DONATION_ACCOUNTINGACCOUNT=Compte comptable per registrar les donacions @@ -216,8 +217,8 @@ DescThirdPartyReport=Consulteu aquí la llista dels clients i proveïdors de ter ListAccounts=Llistat dels comptes comptables UnknownAccountForThirdparty=Compte comptable de tercer desconeguda, utilitzarem %s UnknownAccountForThirdpartyBlocking=Compte comptable de tercer desconegut. Error de bloqueig -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. We will use %s -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Third-party account not defined or third party unknown. Blocking error. +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Compte de tercers no definit o tercer desconegut. Utilitzarem %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Compte de tercers no definit o tercer desconegut. Error de bloqueig. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Compte de tercers desconegut i compte d'espera no definit. Error de bloqueig PaymentsNotLinkedToProduct=Pagament no vinculat a cap producte / servei @@ -230,7 +231,7 @@ TotalMarge=Marge total de vendes DescVentilCustomer=Consulti aquí la llista de línies de factures de client vinculades (o no) a comptes comptables de producte DescVentilMore=En la majoria dels casos, si tu utilitzes productes o serveis predefinits i poses el número de compte a la fitxa de producte/servei, l'aplicació serà capaç de fer tots els vincles entre les línies de factura i els comptes comptables del teu pla comptable, només amb un clic mitjançant el botó "%s". Si el compte no està col·locat a la fitxa del producte/servei o si encara hi ha alguna línia no vinculada a cap compte, hauràs de fer una vinculació manual a partir del menú "%s". -DescVentilDoneCustomer=Consulta aquí la llista de línies de factures de clients i els seus comptes comptables de producte +DescVentilDoneCustomer=Consulta aquí la llista de línies de factures a clients i els seus comptes comptables de producte DescVentilTodoCustomer=Comptabilitza les línies de factura encara no comptabilitzades amb un compte comptable de producte ChangeAccount=Canvia el compte comptable de producte/servei per les línies seleccionades amb el següent compte comptable: Vide=- @@ -292,7 +293,7 @@ Modelcsv_cogilog=Exporta a Cogilog Modelcsv_agiris=Exporta a Agiris Modelcsv_openconcerto=Exporta per a OpenConcerto (Test) Modelcsv_configurable=Exporta CSV configurable -Modelcsv_FEC=Export FEC +Modelcsv_FEC=Exporta FEC Modelcsv_Sage50_Swiss=Exportació per Sage 50 Switzerland ChartofaccountsId=Id pla comptable @@ -317,9 +318,9 @@ WithoutValidAccount=Sense compte dedicada vàlida WithValidAccount=Amb compte dedicada vàlida ValueNotIntoChartOfAccount=Aquest compte comptable no existeix al pla comptable AccountRemovedFromGroup=S'ha eliminat el compte del grup -SaleLocal=Local sale -SaleExport=Export sale -SaleEEC=Sale in EEC +SaleLocal=Venda local +SaleExport=Venda d’exportació +SaleEEC=Venda en CEE ## Dictionary Range=Rang de compte comptable @@ -340,7 +341,7 @@ UseMenuToSetBindindManualy=Línies encara no enllaçades, utilitzeu el menú %s). L'ús d'aquesta funció no és necessària. Es dóna per als usuaris que alberguen Dolibarr en un servidor que no ofereix els permisos d'eliminació de fitxers generats pel servidor web. PurgeDeleteLogFile=Suprimeix els fitxers de registre, incloent %s definit per al mòdul Syslog (sense risc de perdre dades) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=Elimineu tots els fitxers temporals (no hi ha risc de perdre dades). Nota: La supressió només es fa si el directori temporal es va crear fa 24 hores. PurgeDeleteTemporaryFilesShort=Elimina els fitxers temporals PurgeDeleteAllFilesInDocumentsDir=Elimineu tots els arxius del directori: %s .
Això esborrarà tots documents generats i relacionats amb els elements (Tercers, factures etc ...), arxius carregats al mòdul ECM, còpies de seguretat de la Base de Dades, paperera i arxius temporals. PurgeRunNow=Purgar @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Caselles de verificació des de taula ExtrafieldLink=Enllaç a un objecte ComputedFormula=Camp calculat ComputedFormulaDesc=Podeu introduir aquí una fórmula usant altres propietats d'objecte o qualsevol codi PHP per obtenir un valor calculat dinàmic. Podeu utilitzar qualsevol fórmula compatible amb PHP, inclòs l'operador "?" i els següents objectes globals: $db, $conf, $langs, $mysoc, $user, $object.
AVÍS: Només algunes propietats de $object poden estar disponibles. Si necessiteu una propietat que no s'hagi carregat, tan sols busqueu l'objecte en la formula com en el segon exemple.
L'ús d'un camp calculat significa que no podeu introduir cap valor des de la interfície. A més, si hi ha un error de sintaxi, la fórmula potser no torni 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 de recarrega d'object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($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 forçar la càrrega de l'objecte i el seu objecte principal:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +Computedpersistent=Emmagatzemar el camp computat +ComputedpersistentDesc=Els camps addicionals computats s’emmagatzemaran a la base de dades, però, el valor només es tornarà a calcular quan l’objecte d’aquest camp s’ha canviat. Si el camp calculat depèn d'altres objectes o dades globals, aquest valor podria estar equivocat !! 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) ExtrafieldParamHelpselect=La llista de valors ha de ser un conjunt de línies amb un par del tipus clau,valor (on la clau no pot ser '0')

per exemple :
clau1,valor1
clau2,valor2
clau3,valor3
...

Per 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 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 (a on la clau no pot ser '0')

per exemple :
1,valor1
2,valor2
3,valor3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=La llista de valor ha de ser un conjunt de línies del ExtrafieldParamHelpsellist=Llista de valors que provenen d'una taula
Sintaxi: nom_taula:nom_camp:id_camp::filtre
Exemple : c_typent:libelle:id::filter

- idfilter ha de ser necessàriament una "primary int key"
- el filtre pot ser una comprovació senzilla (eg active=1) per mostrar només valors actius
També es pot emprar $ID$ al filtre per representar el ID de l'actual objecte en curs
Per fer un SELECT al filtre empreu $SEL$
Si voleu filtrar per algun camp extra ("extrafields") empreu la sintaxi extra.codicamp=... (a on codicamp és el codi del camp extra)

Per tenir la llista depenent d'una altre llista d'atributs complementaris:
c_typent:libelle:id:options_codi_llista_pare|parent_column:filter

Per tenir la llista depenent d'una altra llista:
c_typent:libelle:id:codi_llista_pare|parent_column:filter ExtrafieldParamHelpchkbxlst=La llista de valors prové d'una taula
Sintaxi: nom_taula:nom_camp:id_camp::filtre
Exemple: c_typent:libelle:id::filter

filtre pot ser una comprovació simple (p. ex. active=1) per mostrar només el valor actiu
També podeu utilitzar $ID$ en el filtre per representar l'ID actual de l'objecte en curs
Per fer un SELECT en el filtre utilitzeu $SEL$
si voleu filtrar per camps extra utilitzeu sintaxi extra.fieldcode=... (on el codi de camp és el codi del extrafield)

Per tenir la llista depenent d'una altra llista d'atributs complementaris:
c_typent:libelle:id:options_codi_llista_pare|parent_column: filter

Per tenir la llista depenent d'una altra llista: c_typent:libelle:id:codi_llista_pare|parent_column:filter ExtrafieldParamHelplink=Els paràmetres han de ser ObjectName: Classpath
Sintaxi: ObjectName:Classpath
Exemples :
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Manteniu-vos buits per obtenir un simple separador
Establiu-ho a 1 per a un separador col·lapsat (obert per defecte)
Establiu-ho a 2 per a un separador col·lapsat (col·lapsat per defecte) LibraryToBuildPDF=Llibreria utilitzada per generar PDF LocalTaxDesc=Alguns països apliquen 2 o 3 impostos en cada línia de factura. Si aquest és el cas, escull el tipus pel segon i el tercer impost i el seu valor. Els tipus possibles són:
1: impostos locals aplicats en productes i serveis sense IVA (l'impost local serà calculat en el total sense impostos)
2: impost local aplicat en productes i serveis amb IVA (l'impost local serà calculat amb el total + l'impost principal)
3: impost local aplicat en productes sense IVA (l'impost local serà calculat en el total sense impost)
4: impost local aplicat en productes amb IVA (l'impost local serà calculat amb el total + l'impost principal)
5: impost local aplicat en serveis sense IVA (l'impost local serà calculat amb el total sense impost)
6: impost local aplicat en serveis amb IVA inclòs (l'impost local serà calculat amb el total + IVA) SMS=SMS @@ -508,7 +511,7 @@ Module23Desc=Realitza el seguiment del consum d'energies Module25Name=Comanda de vendes Module25Desc=Gestió de comandes de vendes Module30Name=Factures -Module30Desc=Gestió de factures i abonaments de clients. Gestió de factures i abonaments de proveïdors +Module30Desc=Gestió de factures i abonaments a clients. Gestió de factures i abonaments de proveïdors Module40Name=Proveïdors Module40Desc=Gestió de proveïdors i compres (comandes de compra i facturació) Module42Name=Registre de depuració @@ -654,7 +657,7 @@ Permission12=Crear/Modificar factures Permission13=Devalidar factures Permission14=Validar factures Permission15=Envia factures per e-mail -Permission16=Crear cobraments per factures de clients +Permission16=Crear cobraments per factures de client Permission19=Elimina factures de client Permission21=Consulta pressupostos Permission22=Crear/modificar pressupostos @@ -804,7 +807,7 @@ Permission401=Consultar havers Permission402=Crear/modificar havers Permission403=Validar havers Permission404=Eliminar havers -Permission430=Use Debug Bar +Permission430=Utilitzeu la barra de depuració Permission511=Consulta el pagament dels salaris Permission512=Crea/modifica el pagament dels salaris Permission514=Elimina pagament de salaris @@ -819,9 +822,9 @@ Permission532=Crear/modificar serveis Permission534=Eliminar serveis Permission536=Veure / gestionar els serveis ocults Permission538=Exportar serveis -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Llegiu factures de materials +Permission651=Crear / actualitzar factures de materials +Permission652=Eliminar factures de materials Permission701=Consultar donacions Permission702=Crear/modificar donacions Permission703=Eliminar donacions @@ -841,12 +844,12 @@ Permission1101=Consultar ordres d'enviament Permission1102=Crear/modificar ordres d'enviament Permission1104=Validar ordre d'enviament Permission1109=Eliminar ordre d'enviament -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 +Permission1121=Llegiu les propostes dels proveïdors +Permission1122=Crear / modificar propostes de proveïdors +Permission1123=Valideu les propostes dels proveïdors +Permission1124=Enviar propostes de proveïdors +Permission1125=Elimineu les propostes dels proveïdors +Permission1126=Sol·licituds de preus dels proveïdors tancats Permission1181=Consultar proveïdors Permission1182=Consulta les comandes de compra Permission1183=Crea/modifica les comandes de compra @@ -866,7 +869,7 @@ Permission1235=Envieu les factures del proveïdor per correu electrònic Permission1236=Exporta les factures, atributs i pagaments del proveïdor Permission1237=Exporta les comandes de compra i els seus detalls Permission1251=Llançar les importacions en massa a la base de dades (càrrega de dades) -Permission1321=Exporta factures de clients, atributs i cobraments +Permission1321=Exporta factures de client, atributs i cobraments Permission1322=Reobrir una factura pagada Permission1421=Exporta ordres de vendes i atributs Permission2401=Llegir accions (esdeveniments o tasques) vinculades al seu compte @@ -882,15 +885,15 @@ Permission2503=Enviar o eliminar documents Permission2515=Configuració carpetes de documents Permission2801=Utilitzar el client FTP en mode lectura (només explorar i descarregar) Permission2802=Utilitzar el client FTP en mode escriptura (esborrar o pujar arxius) -Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees -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 +Permission3200=Llegiu els esdeveniments arxivats i les empremtes dactilars +Permission4001=Vegeu empleats +Permission4002=Crea empleats +Permission4003=Suprimeix els empleats +Permission4004=Exporta empleats +Permission10001=Llegiu el contingut del lloc web +Permission10002=Crea / modifica contingut del lloc web (contingut html i javascript) +Permission10003=Creeu / modifiqueu el contingut del lloc web (codi php dinàmic). Perillós, s'ha de reservar per a desenvolupadors restringits. +Permission10005=Suprimeix el contingut del lloc web Permission20001=Consulta els dies de lliure disposició (els propis i els dels teus subordinats) Permission20002=Crea/modifica els teus dies de lliure disposició (els propis i els dels teus subordinats) Permission20003=Elimina les peticions de dies lliures retribuïts @@ -904,19 +907,19 @@ Permission23004=Executar tasca programada Permission50101=Utilitza el punt de venda Permission50201=Consultar les transaccions Permission50202=Importar les transaccions -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 -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50401=Enllaçar productes i factures amb comptes comptables +Permission50411=Llegeix les operacions en el llibre major +Permission50412=Escriure / editar les operacions en el llibre major +Permission50414=Suprimeix les operacions en el llibre major +Permission50415=Elimineu totes les operacions per any i diari en llibre major +Permission50418=Operacions d’exportació del llibre major +Permission50420=Informes d'informe i d'exportació (facturació, saldo, revistes, llibre major) +Permission50430=Definiu i tanqueu un període fiscal +Permission50440=Gestionar el gràfic de comptes, configurar la comptabilitat +Permission51001=Llegiu actius +Permission51002=Crear / actualitzar actius +Permission51003=Suprimeix els actius +Permission51005=Configuració dels tipus d’actius Permission54001=Imprimir Permission55001=Llegir enquestes Permission55002=Crear/modificar enquestes @@ -1110,7 +1113,7 @@ AreaForAdminOnly=Els paràmetres de configuració només poden ser establerts pe SystemInfoDesc=La informació del sistema és informació tècnica accessible només en només lectura als administradors. SystemAreaForAdminOnly=Aquesta àrea només està disponible per als usuaris administradors. Els permisos d'usuari de Dolibarr no poden canviar aquesta restricció. CompanyFundationDesc=Editeu la informació de l'empresa/entitat. Feu clic al botó "%s" o "%s" al final de la pàgina. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. +AccountantDesc=Si teniu un comptable extern, podeu editar aquí la seva informació. AccountantFileNumber=Número de fila DisplayDesc=Els paràmetres que afecten l'aspecte i el comportament de Dolibarr es poden modificar aquí. AvailableModules=Mòduls/complements disponibles @@ -1923,5 +1926,5 @@ IFTTTDesc=Aquest mòdul està dissenyat per activar esdeveniments en IFTTT i / o UrlForIFTTT=Punt final d’URL per a IFTTT YouWillFindItOnYourIFTTTAccount=El trobareu al vostre compte IFTTT EndPointFor=Punt final per %s: %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +DeleteEmailCollector=Suprimeix el recollidor de correu electrònic +ConfirmDeleteEmailCollector=Esteu segur que voleu suprimir aquest recollidor de correu electrònic? diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index ada8f6a27c0..21384e91364 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -3,14 +3,14 @@ Bill=Factura Bills=Factures BillsCustomers=Factures a clients BillsCustomer=Factura a client -BillsSuppliers=Factures del proveïdor -BillsCustomersUnpaid=Factures de clients pendents de cobrament +BillsSuppliers=Factures de proveïdor +BillsCustomersUnpaid=Factures de client pendents de cobrament BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s -BillsSuppliersUnpaid=Factures de venda pendents de pagament -BillsSuppliersUnpaidForCompany=Factures de venda pendents de pagament per %s +BillsSuppliersUnpaid=Factures de proveïdor pendents de pagament +BillsSuppliersUnpaidForCompany=Factures de proveïdors pendents de pagament per %s BillsLate=Retard en el pagament BillsStatistics=Estadístiques factures a clients -BillsStatisticsSuppliers=Estadístiques de Factures de Venda +BillsStatisticsSuppliers=Estadístiques de Factures de proveïdors DisabledBecauseDispatchedInBookkeeping=Desactivat perquè la factura s'ha contabilitzat DisabledBecauseNotLastInvoice=Desactivat perque la factura no es pot eliminar. S'han creat factures després d'aquesta i crearia buits al contador. DisabledBecauseNotErasable=Desactivat perque no es pot eliminar @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Factura proforma InvoiceProFormaDesc=La factura proforma és la imatge d'una factura definitiva, però que no té cap valor comptable. InvoiceReplacement=Factura rectificativa InvoiceReplacementAsk=Factura rectificativa de la factura -InvoiceReplacementDesc=La factura rectificativa serveix per a cancel·lar i per substituir una factura existent sobre la qual encara no hi ha pagaments.

Nota: Només una factura sense cap pagament pot rectificar-se. Si aquesta última no està tancada, passarà automàticament al estat 'abandonada'. +InvoiceReplacementDesc=La factura de substitució s’utilitza per substituir completament una factura sense que s’hagi rebut cap pagament.

Nota: Només es poden substituir les factures sense pagament. Si la factura que reemplaça encara no està tancada, es tancarà automàticament a "abandonat". InvoiceAvoir=Abonament InvoiceAvoirAsk=Abonament per factura rectificativa InvoiceAvoirDesc=L'abonament és una factura negativa destinada a compensar un import de factura que difereix de l'import realment pagat (per haver pagat de més o per devolució de productes, per exemple). @@ -52,9 +52,9 @@ Invoices=Factures InvoiceLine=Línia de factura InvoiceCustomer=Factura a client CustomerInvoice=Factura a client -CustomersInvoices=Factures a clientes +CustomersInvoices=Factures a clients SupplierInvoice=Factura del proveïdor -SuppliersInvoices=Factures de Venda +SuppliersInvoices=Factures de proveïdors SupplierBill=Factura del proveïdor SupplierBills=Factures de proveïdors Payment=Pagament @@ -249,7 +249,7 @@ DatePointOfTax=Punt d'impostos NoInvoice=Cap factura ClassifyBill=Classificar la factura SupplierBillsToPay=Factures de proveïdors pendents de pagament -CustomerBillsUnpaid=Factures de clients pendents de cobrament +CustomerBillsUnpaid=Factures de client pendents de cobrament NonPercuRecuperable=No percebut recuperable SetConditions=Indicar les condicions de pagament SetMode=Indicar la forma de pagament diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang index 0518953708d..f90f92e665a 100644 --- a/htdocs/langs/ca_ES/boxes.lang +++ b/htdocs/langs/ca_ES/boxes.lang @@ -6,7 +6,7 @@ BoxProductsAlertStock=Alertes d'estoc per a productes BoxLastProductsInContract=Últims %s productes/serveis contractats BoxLastSupplierBills=Últimes factures de Proveïdor BoxLastCustomerBills=Últimes factures de Client -BoxOldestUnpaidCustomerBills=Factures de clients més antigues pendents de cobrament +BoxOldestUnpaidCustomerBills=Factures de client més antigues pendents de cobrament BoxOldestUnpaidSupplierBills=Factures de Proveïdors més antigues pendents de pagament BoxLastProposals=Últims pressupostos BoxLastProspects=Últims clients potencials modificats @@ -27,7 +27,7 @@ BoxTitleLastModifiedSuppliers=Proveïdors: últims %s modificats BoxTitleLastModifiedCustomers=Clients: últims %s modificats BoxTitleLastCustomersOrProspects=Últims %s clients o clients potencials BoxTitleLastCustomerBills=Últimes %s factures del client -BoxTitleLastSupplierBills=Últimes %s factures del proveïdor +BoxTitleLastSupplierBills=Últimes %s factures de proveïdor BoxTitleLastModifiedProspects=Clients Potencials: últims %s modificats BoxTitleLastModifiedMembers=Últims %s socis BoxTitleLastFicheInter=Últimes %s intervencions modificades @@ -35,7 +35,7 @@ BoxTitleOldestUnpaidCustomerBills=Factures de client: les %s més antigues sense BoxTitleOldestUnpaidSupplierBills=Factures de Proveïdor: el més antic %s sense pagar BoxTitleCurrentAccounts=Comptes oberts: saldos BoxTitleLastModifiedContacts=Adreces i contactes: últims %s modificats -BoxMyLastBookmarks=Bookmarks: latest %s +BoxMyLastBookmarks=Adreces d'interès: últims %s BoxOldestExpiredServices=Serveis antics expirats BoxLastExpiredServices=Últims %s contactes amb serveis actius expirats BoxTitleLastActionsToDo=Últims %s events a realitzar @@ -78,7 +78,7 @@ BoxTitleLatestModifiedSupplierOrders=Comandes a Proveïdor: últimes %s modifica BoxTitleLastModifiedCustomerBills=Factures del client: últimes %s modificades BoxTitleLastModifiedCustomerOrders=Comandes de venda: últimes %s modificades BoxTitleLastModifiedPropals=Últims %s pressupostos modificats -ForCustomersInvoices=Factures a clientes +ForCustomersInvoices=Factures a clients ForCustomersOrders=Comandes de clients ForProposals=Pressupostos LastXMonthRolling=Els últims %s mesos consecutius diff --git a/htdocs/langs/ca_ES/cashdesk.lang b/htdocs/langs/ca_ES/cashdesk.lang index 0f4251de48f..1b0a6e3a957 100644 --- a/htdocs/langs/ca_ES/cashdesk.lang +++ b/htdocs/langs/ca_ES/cashdesk.lang @@ -68,4 +68,4 @@ Terminal=Terminal NumberOfTerminals=Nombre de terminals TerminalSelect=Selecciona el terminal que vols utilitzar: POSTicket=Tiquet TPV -BasicPhoneLayout=Use basic layout for phones +BasicPhoneLayout=Utilitzeu el disseny bàsic dels telèfons diff --git a/htdocs/langs/ca_ES/companies.lang b/htdocs/langs/ca_ES/companies.lang index 9721e179a83..90fe74a1d3b 100644 --- a/htdocs/langs/ca_ES/companies.lang +++ b/htdocs/langs/ca_ES/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Descomptes absoluts de proveïdor (introduïts SupplierAbsoluteDiscountMy=Descomptes absoluts del proveïdor (introduït per tu mateix) DiscountNone=Cap Vendor=Proveïdor +Supplier=Proveïdor AddContact=Crear contacte AddContactAddress=Crear contacte/adreça EditContact=Editar contacte diff --git a/htdocs/langs/ca_ES/compta.lang b/htdocs/langs/ca_ES/compta.lang index 35cad091b15..4763033a3fa 100644 --- a/htdocs/langs/ca_ES/compta.lang +++ b/htdocs/langs/ca_ES/compta.lang @@ -142,11 +142,11 @@ CalcModeVATEngagement=Mode d'%sIVA sobre ingressos-despeses%s. CalcModeDebt=Anàlisi de factures conegudes registrades, fins i tot si encara no estan comptabilitzades en el llibre major. CalcModeEngagement=Anàlisi dels pagaments registrats coneguts, fins i tot si encara no estan comptabilitzat en el Llibre Major. CalcModeBookkeeping=Anàlisi de dades publicades a la taula de compilació de llibres. -CalcModeLT1= Metode %sRE factures a clients - factures de proveïdors%s +CalcModeLT1= Metode %sRE factures a client - factures de proveïdor%s CalcModeLT1Debt=Metode %sRE a factures a clients%s CalcModeLT1Rec= Metode %sRE a factures de proveïdors%s -CalcModeLT2= Metode %sIRPF a factures a clients - factures de proveïdors%s -CalcModeLT2Debt=Metode %sIRPF a factures a clients%s +CalcModeLT2= Metode %sIRPF a factures a client - factures de proveïdor%s +CalcModeLT2Debt=Metode %sIRPF a factures a client%s CalcModeLT2Rec= Metode %sIRPF a factures de proveïdors%s AnnualSummaryDueDebtMode=Saldo d'ingressos i despeses, resum anual AnnualSummaryInputOutputMode=Saldo d'ingressos i despeses, resum anual @@ -160,7 +160,7 @@ RulesAmountWithTaxIncluded=- Els imports mostrats són amb tots els impostos inc RulesResultDue=- Inclou les factures pendents, despeses, IVA, donacions estiguen o no pagades. També s'inclou salaris pagats.
- Es basa en la data de la validació de les factures i l'IVA i en la data de venciment per a despeses. Per salaris definits amb el mòdul de Salari, s'utilitza la data de valor del pagament. RulesResultInOut=- Inclou els pagaments reals realitzats en les factures, les despeses, l'IVA i els salaris.
- Es basa en les dates de pagament de les factures, les despeses, l'IVA i els salaris. La data de la donació per a la donació. RulesCADue=- Inclou les factures degudes del client estiguin pagades o no.
- Es basa en la data de la validació d'aquestes factures.
-RulesCAIn=- Inclou tots els pagaments efectius de factures rebudes dels clients.
- Es basa en la data de pagament d'aquestes factures
+RulesCAIn=- Inclou tots els pagaments efectius de factures rebuts dels clients.
- Es basa en la data de pagament d'aquestes factures
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" diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index d45575cbba1..bbe1bd29076 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -118,7 +118,7 @@ ErrorLoginHasNoEmail=Aquest usuari no té e-mail. Impossible continuar. ErrorBadValueForCode=Valor incorrecte per codi de seguretat. Torna a intentar-ho amb un nou valor... ErrorBothFieldCantBeNegative=Els camps %s i %s no poden ser negatius ErrorFieldCantBeNegativeOnInvoice=El camp %s no pot ser negatiu en aquest tipus de factura. Si voleu afegir una línia de descompte, primer cal crear el descompte amb l'enllaç %s a la pantalla i aplicar-lo a la factura. També podeu demanar-li al vostre administrador que configureu l'opció FACTURE_ENABLE_NEGATIVE_LINES a 1 per permetre el comportament anterior. -ErrorQtyForCustomerInvoiceCantBeNegative=La quantitat a les línies de factures a clients no poden ser negatives +ErrorQtyForCustomerInvoiceCantBeNegative=La quantitat a les línies de factures a client no poden ser negatives ErrorWebServerUserHasNotPermission=El compte d'execució del servidor web %s no disposa dels permisos per això ErrorNoActivatedBarcode=No hi ha activat cap tipus de codi de barres ErrUnzipFails=No s'ha pogut descomprimir el fitxer %s amb ZipArchive diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang index 9e9c382b82d..33f9df9b20f 100644 --- a/htdocs/langs/ca_ES/install.lang +++ b/htdocs/langs/ca_ES/install.lang @@ -14,7 +14,7 @@ PHPSupportPOSTGETKo=És possible que aquest PHP no suport les variables POST i/o PHPSupportGD=Aquest PHP és compatible amb les funcions gràfiques GD. PHPSupportCurl=Aquest PHP suporta Curl. PHPSupportUTF8=Aquest PHP és compatible amb les funcions UTF8. -PHPSupportIntl=This PHP supports Intl functions. +PHPSupportIntl=Aquest PHP admet funcions Intl. PHPMemoryOK=La seva memòria màxima de sessió PHP està definida a %s. Això hauria de ser suficient. PHPMemoryTooLow=La seva memòria màxima de sessió PHP està definida a %s bytes. Això és molt poc. Es recomana modificar el paràmetre memory_limit del seu arxiu php.ini a almenys %s octets. Recheck=Faci clic aquí per realitzar un test més exhaustiu @@ -22,7 +22,7 @@ ErrorPHPDoesNotSupportSessions=La vostra instal·lació de PHP no suporta sessio ErrorPHPDoesNotSupportGD=La vostra instal·lació de PHP no és compatible amb les funcions gràfiques de GD. No hi haurà gràfics disponibles. ErrorPHPDoesNotSupportCurl=La teva instal·lació PHP no soporta Curl. ErrorPHPDoesNotSupportUTF8=Aquest PHP no suporta les funcions UTF8. Resolgui el problema abans d'instal lar Dolibarr ja que no funcionarà correctamete. -ErrorPHPDoesNotSupportIntl=Your PHP installation does not support Intl functions. +ErrorPHPDoesNotSupportIntl=La vostra instal·lació de PHP no admet funcions Intl. ErrorDirDoesNotExists=La carpeta %s no existeix o no és accessible. ErrorGoBackAndCorrectParameters=Torneu enrere i verifiqueu / corregiu els paràmetres. ErrorWrongValueForParameter=Ha indicat potser un valor incorrecte per al paràmetre '%s'. @@ -152,7 +152,7 @@ MigrationFixData=Correcció de dades desnormalitzades MigrationOrder=Migració de dades de les comandes clients MigrationSupplierOrder=Migració de dades per a comandes de proveïdors MigrationProposal=Migració de dades de pressupostos -MigrationInvoice=Migració de dades de les factures a clients +MigrationInvoice=Migració de dades de les factures a client MigrationContract=Migració de dades dels contractes MigrationSuccessfullUpdate=Actualització finalitzada MigrationUpdateFailed=L'actualització ha fallat diff --git a/htdocs/langs/ca_ES/mails.lang b/htdocs/langs/ca_ES/mails.lang index 1ec8f7d5687..1828b9c1736 100644 --- a/htdocs/langs/ca_ES/mails.lang +++ b/htdocs/langs/ca_ES/mails.lang @@ -78,9 +78,9 @@ GroupEmails=Correus grupals OneEmailPerRecipient=Un correu per destinatari (per defecte, un correu electrònic per registre seleccionat) WarningIfYouCheckOneRecipientPerEmail=Advertència, si marqueu aquesta casella, significa que només s'enviarà un correu electrònic per a diversos registres seleccionats, de manera que, si el vostre missatge conté variables de substitució que fan referència a dades d'un registre, no és possible reemplaçar-les. ResultOfMailSending=Resultat de l'enviament de correu massiu -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent +NbSelected=Número seleccionat +NbIgnored=Número ignorat +NbSent=Número enviat SentXXXmessages=%s missatge(s) enviat(s). ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? MailingModuleDescContactsWithThirdpartyFilter=Contacte amb filtres de client diff --git a/htdocs/langs/ca_ES/members.lang b/htdocs/langs/ca_ES/members.lang index 4c1077e8d0f..7b0071dd54c 100644 --- a/htdocs/langs/ca_ES/members.lang +++ b/htdocs/langs/ca_ES/members.lang @@ -171,7 +171,7 @@ MembersStatisticsDesc=Tria les estadístiques que vols consultar... MenuMembersStats=Estadístiques LastMemberDate=Data de l'últim soci LatestSubscriptionDate=Data de l'última afiliació -MemberNature=Nature of member +MemberNature=Naturalesa del membre Public=Informació pública NewMemberbyWeb=S'ha afegit un nou soci. A l'espera d'aprovació NewMemberForm=Formulari d'inscripció diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang index 925599d9eb8..14b335112d9 100644 --- a/htdocs/langs/ca_ES/other.lang +++ b/htdocs/langs/ca_ES/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Número de factures de client NumberOfSupplierProposals=Nombre de propostes de venedor NumberOfSupplierOrders=Nombre de comandes de compra NumberOfSupplierInvoices=Nombre de factures de venedor +NumberOfContracts=Nombre de contractes NumberOfUnitsProposals=Número d'unitats en pressupostos NumberOfUnitsCustomerOrders=Nombre d'unitats per comandes de venda NumberOfUnitsCustomerInvoices=Número d'unitats en factures de client NumberOfUnitsSupplierProposals=Nombre d'unitats en propostes de venedor NumberOfUnitsSupplierOrders=Nombre d'unitats en comandes de compra NumberOfUnitsSupplierInvoices=Nombre d'unitats a les factures del venedor +NumberOfUnitsContracts=Nombre d’unitats en contractes EMailTextInterventionAddedContact=S'ha assignat una nova intervenció %s. EMailTextInterventionValidated=Fitxa intervenció %s validada EMailTextInvoiceValidated=La factura %s ha estat validada. @@ -246,10 +248,10 @@ YourPasswordHasBeenReset=La teva contrasenya s'ha restablert correctament ApplicantIpAddress=Adreça IP del sol·licitant SMSSentTo=SMS enviat a %s MissingIds=Falta els identificadors -ThirdPartyCreatedByEmailCollector=Third party created by email collector from email MSGID %s -ContactCreatedByEmailCollector=Contact/address created by email collector from email MSGID %s -ProjectCreatedByEmailCollector=Project created by email collector from email MSGID %s -TicketCreatedByEmailCollector=Ticket created by email collector from email MSGID %s +ThirdPartyCreatedByEmailCollector=Tercers creats pel recollidor de correus electrònics MSGID %s +ContactCreatedByEmailCollector=Contacte / adreça creada pel recollidor de correus electrònics MSGID %s +ProjectCreatedByEmailCollector=Projecte creat pel recollidor de correus electrònics MSGID %s +TicketCreatedByEmailCollector=Tiquet creat pel recollidor de correus electrònics MSGID %s ##### Export ##### ExportsArea=Àrea d'exportacions @@ -269,4 +271,4 @@ WEBSITE_KEYWORDS=Paraules clau LinesToImport=Línies per importar MemoryUsage=Ús de memòria -RequestDuration=Duration of request +RequestDuration=Durada de la sol·licitud diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index c16392c2b98..4605e1a6df9 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -159,7 +159,7 @@ SuppliersPrices=Preus del proveïdor SuppliersPricesOfProductsOrServices=Preus del venedor (de productes o serveis) CustomCode=Duana / mercaderia / codi HS CountryOrigin=País d'origen -Nature=Nature of produt (material/finished) +Nature=Naturalesa del producte (material / acabat) ShortLabel=Etiqueta curta Unit=Unitat p=u. diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang index 94e82793eae..5518dd13758 100644 --- a/htdocs/langs/ca_ES/projects.lang +++ b/htdocs/langs/ca_ES/projects.lang @@ -85,8 +85,8 @@ GoToGanttView=Vés a la vista de Gantt GanttView=Vista de Gantt ListProposalsAssociatedProject=Llista de propostes comercials relacionades amb el projecte ListOrdersAssociatedProject=Llista de comandes de vendes relacionades amb el projecte -ListInvoicesAssociatedProject=Llista de factures dels clients relacionades amb el projecte -ListPredefinedInvoicesAssociatedProject=Llista de factures dels clients relacionades amb el projecte +ListInvoicesAssociatedProject=Llista de factures a clients relacionades amb el projecte +ListPredefinedInvoicesAssociatedProject=Llista de factures a clients relacionades amb el projecte ListSupplierOrdersAssociatedProject=Llista de comandes de compra relacionades amb el projecte ListSupplierInvoicesAssociatedProject=Llista de factures de venedor relacionades amb el projecte ListContractAssociatedProject=Llista de contractes relacionats amb el projecte diff --git a/htdocs/langs/ca_ES/salaries.lang b/htdocs/langs/ca_ES/salaries.lang index ed8b1cef464..f4567d2fd49 100644 --- a/htdocs/langs/ca_ES/salaries.lang +++ b/htdocs/langs/ca_ES/salaries.lang @@ -18,4 +18,4 @@ LastSalaries=Últims %s pagaments de salari AllSalaries=Tots els pagaments de salari SalariesStatistics=Estadístiques de salaris # Export -SalariesAndPayments=Salaries and payments +SalariesAndPayments=Salaris i pagaments diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang index d173d9f2f6c..f2684fdd84c 100644 --- a/htdocs/langs/ca_ES/stocks.lang +++ b/htdocs/langs/ca_ES/stocks.lang @@ -66,12 +66,12 @@ RuleForStockManagementIncrease=Tria la regla per augmentar l'estoc automàtic (l DeStockOnBill=Disminueix els estocs real en la validació de la factura/abonament de client DeStockOnValidateOrder=Disminueix els estocs reals en la validació de comandes de client DeStockOnShipment=Disminueix l'estoc real al validar l'enviament -DeStockOnShipmentOnClosing=Decrease real stocks when shipping is set to closed +DeStockOnShipmentOnClosing=Reduïu les existències reals quan l’enviament s’ha establert com a tancat ReStockOnBill=Augmenta els estocs reals en la validació de la factura/abonament del proveïdor ReStockOnValidateOrder=Augmenta els estocs reals en l'aprovació de la comanda de compra ReStockOnDispatchOrder=Augmenta els estocs reals en l'enviament manual al magatzem, després de rebre els productes de la comanda del proveïdor -StockOnReception=Increase real stocks on validation of reception -StockOnReceptionOnClosing=Increase real stocks when reception is set to closed +StockOnReception=Augmenteu les existències reals a la validació de la recepció +StockOnReceptionOnClosing=Augmenteu les existències reals quan la recepció està tancada OrderStatusNotReadyToDispatch=La comanda encara no està o no té un estat que permeti un desglossament d'estoc. StockDiffPhysicTeoric=Motiu de la diferència entre l'estoc físic i virtual NoPredefinedProductToDispatch=No hi ha productes predefinits en aquest objecte. Per tant no es pot realitzar un desglossament d'estoc. diff --git a/htdocs/langs/ca_ES/suppliers.lang b/htdocs/langs/ca_ES/suppliers.lang index 22eef83e987..65f34605229 100644 --- a/htdocs/langs/ca_ES/suppliers.lang +++ b/htdocs/langs/ca_ES/suppliers.lang @@ -1,4 +1,4 @@ -# Dolibarr language file - Source file is en_US - suppliers +# Dolibarr language file - Source file is en_US - vendors Suppliers=Proveïdors SuppliersInvoice=Factura del proveïdor ShowSupplierInvoice=Mostra la factura del proveïdor @@ -15,7 +15,7 @@ SomeSubProductHaveNoPrices=Alguns subproductes no tenen preus definits AddSupplierPrice=Afegeix preu de compra ChangeSupplierPrice=Canvia el preu de compra SupplierPrices=Preus del proveïdor -ReferenceSupplierIsAlreadyAssociatedWithAProduct=Aquesta referència de proveïdor ja està associada a la referència: %s +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Aquesta referència del proveïdor ja està associada amb el producte: %s NoRecordedSuppliers=No s'ha registrat cap proveïdor SupplierPayment=Pagament al proveïdor SuppliersArea=Àrea de proveïdors @@ -35,13 +35,13 @@ ListOfSupplierProductForSupplier=Llista de productes i preus del proveïdor % SentToSuppliers=Enviat als proveïdors ListOfSupplierOrders=Llista de comandes de compra MenuOrdersSupplierToBill=Comandes de compra a facturar -NbDaysToDelivery=Temps d'entrega en dies -DescNbDaysToDelivery=El retard més gran d'entrega dels productes d'aquesta comanda +NbDaysToDelivery=Retard de lliurament (dies) +DescNbDaysToDelivery=El retard de lliurament més llarg dels productes d'aquesta comanda SupplierReputation=Reputació del proveïdor DoNotOrderThisProductToThisSupplier=No demanar -NotTheGoodQualitySupplier=Qualitat incorrecte +NotTheGoodQualitySupplier=Baixa qualitat ReputationForThisProduct=Reputació BuyerName=Nom del comprador AllProductServicePrices=Tots els preus de producte / servei -AllProductReferencesOfSupplier=Totes les referències dels productes/serveis del proveïdor +AllProductReferencesOfSupplier=Totes les referències de producte / servei del proveïdor BuyingPriceNumShort=Preus del proveïdor diff --git a/htdocs/langs/ca_ES/website.lang b/htdocs/langs/ca_ES/website.lang index ff4dd50fd8d..4c62bea2365 100644 --- a/htdocs/langs/ca_ES/website.lang +++ b/htdocs/langs/ca_ES/website.lang @@ -98,8 +98,8 @@ NoWebSiteCreateOneFirst=Encara no s'ha creat cap lloc web. Creeu-ne un primer. GoTo=Ves a DynamicPHPCodeContainsAForbiddenInstruction=Afegiu un codi PHP dinàmic que conté la instrucció PHP ' %s ' prohibida per defecte com a contingut dinàmic (vegeu les opcions ocultes WEBSITE_PHP_ALLOW_xxx per augmentar la llista d’ordres permeses). NotAllowedToAddDynamicContent=No teniu permís per afegir o editar contingut dinàmic de PHP als llocs web. Demana permís o simplement guarda el codi en etiquetes php sense modificar. -ReplaceWebsiteContent=Substituïu el contingut del lloc web +ReplaceWebsiteContent=Cerqueu o substitueixi el contingut del lloc web DeleteAlsoJs=Voleu suprimir també tots els fitxers javascript específics d'aquest lloc web? DeleteAlsoMedias=Voleu suprimir també tots els fitxers de mitjans específics d’aquest lloc web? # Export -MyWebsitePages=My website pages +MyWebsitePages=Les meves pàgines web diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang index 8149a6968ba..ecf3b20eeff 100644 --- a/htdocs/langs/ca_ES/withdrawals.lang +++ b/htdocs/langs/ca_ES/withdrawals.lang @@ -13,7 +13,7 @@ RequestStandingOrderToTreat=Petició per a processar ordres de pagament mitjanç RequestStandingOrderTreated=Petició per a processar ordres de pagament mitjançant domiciliació bancària finalitzada NotPossibleForThisStatusOfWithdrawReceiptORLine=Encara no és possible. L'estat de la domiciliació ter que ser 'abonada' abans de poder realitzar devolucions a les seves línies NbOfInvoiceToWithdraw=Nombre de factures qualificades esperant l'ordre de domiciliació bancària -NbOfInvoiceToWithdrawWithInfo=Número de factures del client en espera de domiciliació per a clients que tenen el número de compte definida +NbOfInvoiceToWithdrawWithInfo=Número de factures a client en espera de domiciliació per a clients que tenen el número de compte definida InvoiceWaitingWithdraw=Factura esperant per domiciliació bancària AmountToWithdraw=Import a domiciliar WithdrawsRefused=Domiciliació bancària refusada @@ -69,8 +69,8 @@ WithBankUsingBANBIC=Per als comptes bancaris que utilitzen el codi BAN/BIC/SWIFT BankToReceiveWithdraw=Recepció del compte bancari CreditDate=Abonada el WithdrawalFileNotCapable=No és possible generar el fitxer bancari de domiciliació pel país %s (El país no esta suportat) -ShowWithdraw=Show Direct Debit Order -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. +ShowWithdraw=Mostra la comanda de domiciliació directa +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Tanmateix, si la factura té com a mínim una ordre de pagament de domiciliació bancària que encara no ha estat processada, no es definirà com a pagament per permetre la gestió prèvia de la retirada. DoStandingOrdersBeforePayments=Aquesta llengüeta et permet fer una petició de pagament per domiciliació bancària. Un cop feta, aneu al menú Bancs -> Domiciliacions bancàries per a gestionar el pagament per domiciliació. Quan el pagament és tancat, el pagament sobre la factura serà automàticament gravat, i la factura tancada si el pendent a pagar re-calculat resulta cero. WithdrawalFile=Arxiu de la domiciliació SetToStatusSent=Classificar com "Arxiu enviat" diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang index 0612da6048c..2291178ee74 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Výsledek účetní účet (ztráta) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Časopis uzavření ACCOUNTING_ACCOUNT_TRANSFER_CASH=Účtovací účet přechodného bankovního převodu +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Čekající účet DONATION_ACCOUNTINGACCOUNT=Účtování účet registrovaných darů diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index 6bb62b09319..57c17f66bca 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Zaškrtávací políčka z tabulky ExtrafieldLink=Odkaz na objekt ComputedFormula=Vypočtené pole ComputedFormulaDesc=Zde můžete zadat vzorec pomocí jiných vlastností objektu nebo libovolného kódování PHP pro získání dynamické vypočtené hodnoty. Můžete použít libovolné kompatibilní formule PHP včetně "?" operátor stavu a následující globální objekt: $ db, $ conf, $ langs, $ mysoc, $ user, $ objekt .
VAROVÁNÍ : K dispozici jsou pouze některé vlastnosti objektu $. Pokud potřebujete vlastnosti, které nejsou načteny, jednoduše přiveďte objekt do vzorce, jako ve druhém příkladu.
Použití vypočítaného pole znamená, že nemůžete zadat libovolnou hodnotu z rozhraní. Také pokud existuje syntaktická chyba, vzorec může vrátit nic.

Příklad vzorce:
$ object-> id < 10 ? round($object-> id / 2, 2): ($ objekt-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2 )

Příklad pro opětovné načtení objektu
(($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> fetch ($ obj-> id? $ Obj-> id: > rowid: $ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

Jiný příklad vzoru pro zatížení objektu a jeho nadřazeného objektu:
($ reloadedobj = new Task )) && ($ reloadedobj-> fetch ($ object-> id)> 0) && ($ secondloadedobj = nový projekt ($ db)) && ($ secondloadedobj-> fetch ($ reloadedobj-> fk_project)> 0))? $ secondloadedobj-> ref: 'Nadřazený projekt nebyl nalezen' +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=Pokud ponecháte toto pole prázdné, znamená to, že tato hodnota bude uložena bez šifrování (pole musí být skryto pouze s hvězdou na obrazovce).
Nastavte "auto" pro použití výchozího šifrovacího pravidla pro uložení hesla do databáze (pak hodnota bude číst pouze hash, žádný způsob získání původní hodnoty) ExtrafieldParamHelpselect=Seznam hodnot musí být řádky s formátovým klíčem, hodnota (kde klíč nemůže být '0')

například:
1, value1
2, value2
code3, value3
...

seznam v závislosti na dalším doplňkovém seznamu atributů:
1, value1 | options_ parent_list_code : parent_key
2, value2 | options_ parent_list_code : parent_key

Chcete-li mít seznam v závislosti na jiném seznamu:
1, hodnota1 | parent_list_code : parent_key
2, hodnota2 | parent_list_code : parent_key ExtrafieldParamHelpcheckbox=Seznam hodnot musí být řádky s formátovým klíčem, hodnota (kde klíč nemůže být '0')

například:
1, value1
2, value2
3, value3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=Seznam hodnot musí být řádky s formátovým klíče ExtrafieldParamHelpsellist=Seznam hodnot pochází z tabulky
Syntaxe: table_name: label_field: id_field :: filter
Příklad: c_typent: libelle: id :: filter

- idfilter je nutně primární int klíč
- filtr může být jednoduchý test = 1) pro zobrazení pouze aktivní hodnoty
Můžete také použít $ ID $ ve filtru, který je aktuálním id aktuálního objektu
Chcete-li provést SELECT ve filtru, použijte $ SEL $
, pokud chcete filtrovat na extrafields použít syntaxi extra.fieldcode = ... (kde kód pole je kód extrafield)

Aby byl seznam v závislosti na jiném seznamu doplňkových atributů:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Aby bylo možné mít seznam v závislosti na jiném seznamu:
c_typent: libelle: id: parent_list_code | parent_column: filtr ExtrafieldParamHelpchkbxlst=Seznam hodnot pochází z tabulky
Syntaxe: table_name: label_field: id_field :: filter
Příklad: c_typent: libelle: id :: filter

filtr může být jednoduchý test (např. Aktivní = 1) pro zobrazení pouze aktivní hodnoty
You může také použít $ ID $ ve filtru, který je aktuální id aktuálního objektu
Chcete-li provést SELECT ve filtru, použijte $ SEL $
, pokud chcete filtrovat na extrafields použijte syntaxi extra.fieldcode = ... (kde kód pole je code of extrafield)

Aby byl seznam v závislosti na jiném seznamu doplňkových atributů:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Aby byl seznam v závislosti na jiném seznamu:
c_typent: libelle: id: parent_list_code | nadřazený sloupec: filtr ExtrafieldParamHelplink=Parametry musí být ObjectName: Classpath
Syntaxe: Název_objektu: Classpath
Příklady:
Societe: societe / class / societe.class.php
Kontakt: contact / class / contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Knihovna používaná pro generování PDF LocalTaxDesc=Některé země mohou uplatnit dvě nebo tři daně na každé čáře faktur. Pokud tomu tak je, vyberte typ druhého a třetího daně a jeho sazbu. Možné typy jsou:
1: místní daň se vztahuje na produkty a služby bez DPH (platí se na základě daně bez daně)
2: místní daň se vztahuje na produkty a služby, včetně DPH (0%) 3x342fccfda19b 3: místní daň se vztahuje na produkty bez DPH (místní taxa se vypočítává z částky bez daně)
4: místní daň se vztahuje na produkty včetně DPH (místní taxa se vypočítává z částky + hlavní daň)
5: Místní daň platí pro služby bez DPH z částky bez daně)
6: Místní daň platí za služby včetně DPH (místní taxa se vypočítává z částky + daně) SMS=SMS @@ -819,9 +822,9 @@ Permission532=Vytvořit / upravit služby Permission534=Odstranit služby Permission536=Viz / správa skryté služby Permission538=Export služeb -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Přečtěte si dary Permission702=Vytvořit / upravit dary Permission703=Odstranit dary @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL koncový bod pro IFTTT YouWillFindItOnYourIFTTTAccount=Najdete ho na svém účtu IFTTT EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/cs_CZ/bills.lang b/htdocs/langs/cs_CZ/bills.lang index 024125e7199..bea8b4b960a 100644 --- a/htdocs/langs/cs_CZ/bills.lang +++ b/htdocs/langs/cs_CZ/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma faktura InvoiceProFormaDesc=Proforma faktura je obraz skutečné faktury, ale nemá účetní hodnotu. InvoiceReplacement=Náhradní faktura InvoiceReplacementAsk=Náhradní faktura faktury -InvoiceReplacementDesc=  Nahrazená faktura se používá k zrušení a úplné výměně faktury bez již přijaté platby.

Poznámka: Je možné vyměnit pouze faktury bez platby. Pokud již vyměněná faktura není uzavřena, bude automaticky uzavřena na "opuštěnou". +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Dobropis InvoiceAvoirAsk=Opravit fakturu na dobropis InvoiceAvoirDesc=Dobropis je negativní faktura řešící skutečnost, že na původní faktuře je částka, které se liší od částky skutečně vyplacené. (zákazník zaplatil více omylem, nebo nezaplatil vše, protože například vrátil některé produkty). diff --git a/htdocs/langs/cs_CZ/companies.lang b/htdocs/langs/cs_CZ/companies.lang index fae494503ab..01ac74f4df7 100644 --- a/htdocs/langs/cs_CZ/companies.lang +++ b/htdocs/langs/cs_CZ/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Slevy pro absolutní prodejce (zadané všemi u SupplierAbsoluteDiscountMy=Slevy pro absolutní prodejce (zadané sami) DiscountNone=Nikdo Vendor=Prodejce +Supplier=Prodejce AddContact=Vytvořit kontakt AddContactAddress=Vytvořit kontakt/adresu EditContact=Upravit kontakt diff --git a/htdocs/langs/cs_CZ/other.lang b/htdocs/langs/cs_CZ/other.lang index ce650924a15..a6dae8e028c 100644 --- a/htdocs/langs/cs_CZ/other.lang +++ b/htdocs/langs/cs_CZ/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Počet zákaznických faktur NumberOfSupplierProposals=Počet návrhů prodejců NumberOfSupplierOrders=Počet objednávek NumberOfSupplierInvoices=Počet faktur dodavatelů +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Počet jednotek na návrh NumberOfUnitsCustomerOrders=Počet jednotek na objednávkách prodeje NumberOfUnitsCustomerInvoices=Počet jednotek na fakturách zákazníků NumberOfUnitsSupplierProposals=Počet jednotek v návrzích prodejců NumberOfUnitsSupplierOrders=Počet jednotek na objednávkách NumberOfUnitsSupplierInvoices=Počet jednotek na faktorech dodavatelů +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=Byla přiřazena%s nová intervence . EMailTextInterventionValidated=Zásah %s byl ověřen. EMailTextInvoiceValidated=Faktura %s byla ověřena. @@ -246,10 +248,10 @@ YourPasswordHasBeenReset=Vaše heslo bylo úspěšně obnoveno ApplicantIpAddress=IP adresa žadatele SMSSentTo=SMS odeslaná na %s MissingIds=Chybějící ID -ThirdPartyCreatedByEmailCollector=Third party created by email collector from email MSGID %s -ContactCreatedByEmailCollector=Contact/address created by email collector from email MSGID %s -ProjectCreatedByEmailCollector=Project created by email collector from email MSGID %s -TicketCreatedByEmailCollector=Ticket created by email collector from email MSGID %s +ThirdPartyCreatedByEmailCollector=Subjekt vytvořený sběratelem e-mailů z e-mailu MSGID %s +ContactCreatedByEmailCollector=Kontakt/adresa vytvořená sběratelem e-mailů z e-mailu MSGID %s +ProjectCreatedByEmailCollector=Projekt vytvořený sběratelem e-mailů z e-mailu MSGID %s +TicketCreatedByEmailCollector=Lístek vytvořený sběratelem e-mailů z e-mailu MSGID %s ##### Export ##### ExportsArea=Exportní plocha @@ -268,5 +270,5 @@ WEBSITE_IMAGEDesc=Relativní cesta obrazového média. Můžete si to nechat pr WEBSITE_KEYWORDS=Klíčová slova LinesToImport=Řádky, které chcete importovat -MemoryUsage=Memory usage -RequestDuration=Duration of request +MemoryUsage=Využití paměti +RequestDuration=Doba trvání žádosti diff --git a/htdocs/langs/cs_CZ/website.lang b/htdocs/langs/cs_CZ/website.lang index 8c1881021d4..603f66e497c 100644 --- a/htdocs/langs/cs_CZ/website.lang +++ b/htdocs/langs/cs_CZ/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=Dosud nebyla vytvořena žádná webová stránka. Nejpr GoTo=Jít do DynamicPHPCodeContainsAForbiddenInstruction=Přidáte dynamický PHP kód, který obsahuje instrukci PHP '%s ' která je implicitně zakázána jako dynamický obsah (viz skryté možnosti WEBSITE_PHP_ALLOW_xxx pro zvýšení seznamu povolených příkazů). NotAllowedToAddDynamicContent=Nemáte oprávnění přidávat nebo upravovat dynamický obsah PHP na webových stránkách. Požádejte o svolení nebo ponechte kód v tagech php beze změny. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index e11155f691b..3910fb365b7 100644 --- a/htdocs/langs/da_DK/accountancy.lang +++ b/htdocs/langs/da_DK/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Regnskabskonto for afventning DONATION_ACCOUNTINGACCOUNT=Regnskabskonto til registrering af donationer diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index 37f3564018b..198a40edff8 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Afkrydsningsfelter fra bordet ExtrafieldLink=Link til et objekt ComputedFormula=Beregnet felt ComputedFormulaDesc=Du kan indtaste en formel her ved hjælp af andre egenskaber af objekt eller nogen PHP-kodning for at få en dynamisk beregningsværdi. Du kan bruge alle PHP-kompatible formler, herunder "?" betingelsesoperatør og følgende globale objekt: $ db, $ conf, $ langs, $ mysoc, $ bruger, $ objekt .
ADVARSEL : Kun nogle egenskaber af $ objekt kan være tilgængelige. Hvis du har brug for egenskaber, der ikke er indlæst, skal du bare hente objektet i din formel som i andet eksempel.
Brug af et beregnet felt betyder, at du ikke kan indtaste nogen værdier fra interface. Hvis der også er en syntaksfejl, kan formlen ikke returnere noget.

Eksempel på formel:
$ objekt-> id < 10 ? round($object-> id / 2, 2): ($ objekt-> id + 2 * $ bruger-> id) * (int) substr ($ mysoc-> zip, 1, 2 )

Eksempel på genindlæsning af objekt
(($ reloadedobj = ny Societe ($ db)) && ($ reloadedobj-> hent ($ obj-> id? $ Obj-> id: ($ obj-> rowid? $ Obj- > rowid: $ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> kapital / 5: '-1'

Øvrige eksempel på formel for at tvinge belastning af objekt og dets overordnede objekt:
(($ reloadedobj = ny opgave ($ db )) && ($ reloadedobj-> hent ($ objekt-> id)> 0) && ($ secondloadedobj = nyt projekt ($ db)) && ($ secondloadedobj-> hent ($ reloadedobj-> fk_project)> 0))? $ secondloadedobj-> ref: 'Forældreprojekt ikke fundet' +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=Blankt felt her betyder, at denne værdi vil blive gemt uden kryptering (feltet skal kun være skjult med stjerne på skærmen).
Vælg 'auto' for at bruge standardkrypteringsreglen til at gemme adgangskoden til databasen (så vil værdien gemmes som en en-vejs hash uden mulighed at hente den oprindelige værdi) ExtrafieldParamHelpselect=Liste over værdier skal være linjer med formatnøgle, værdi (hvor nøglen ikke kan være '0')

for eksempel:
1, værdi1
2, værdi2
kode3, værdi3
...

For at få liste afhængig af en anden komplementær attributliste:
1, værdi1 | options_ parent_list_code : parent_key
2, value2 | options_ parent_list_code : parent_key

For at få listen afhængig af en anden liste:
1, værdi1 | parent_list_code : parent_key
2, value2 | parent_list_code : parent_key ExtrafieldParamHelpcheckbox=Liste over værdier skal være linjer med formatnøgle, værdi (hvor nøglen ikke kan være '0')

for eksempel:
1, værdi1
2, værdi2
3, værdi3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=Liste over værdier skal være linjer med formatnøgle, ExtrafieldParamHelpsellist=Liste over værdier kommer fra en tabel
Syntaks: tabelnavn: label_field: id_field :: filter
Eksempel: c_typent: libelle: id :: filter

- idfilter er nødvendigvis en primær int nøgle
- filteret kan være en simpel test = 1) for at vise kun aktiv værdi
Du kan også bruge $ ID $ i filter heks er det nuværende id for nuværende objekt
For at gøre et SELECT i filter brug $ SEL $
hvis du vil filtrere på ekstrafelter brug syntax extra.fieldcode = ... (hvor feltkode er koden for ekstrafelt)

For at få listen afhængig af en anden komplementær attributliste:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

For at have listen afhænger af en anden liste:
c_typent: libelle: id: parent_list_code | parent_column: filter ExtrafieldParamHelpchkbxlst=Liste over værdier kommer fra en tabel
Syntaks: tabelnavn: label_field: id_field :: filter
Eksempel: c_typent: libelle: id :: filter

filter kan være en simpel test (f.eks. Aktiv = 1) for at vise kun aktiv værdi
Du kan også bruge $ ID $ i filter heks er det nuværende id for nuværende objekt
For at gøre et SELECT i filter bruger $ SEL $
hvis du vil filtrere på ekstrafelter brug syntax extra.fieldcode = ... (hvor feltkode er kode for ekstrafelt)

For at få listen afhængig af en anden komplementær attributliste:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

For at få listen afhængig af en anden liste:
c_typent: libelle: id: parent_list_code | parent_column: filter ExtrafieldParamHelplink=Parametre skal være ObjectName: Classpath
Syntaks: Objektnavn: Klassepath
Eksempler:
Societe: societe / class / societe.class.php
Kontakt: kontakt / class / contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Bibliotek, der bruges for PDF generation LocalTaxDesc=Nogle lande kan anmode om to eller tre skatter på hver faktura linje. Hvis dette er tilfældet, skal du vælge typen for den anden og tredje skat og dens sats. Mulig type er:
1: Lokal afgift gælder for varer og ydelser uden moms (localtax beregnes efter beløb uden skat)
2: Lokal afgift gælder for varer og tjenesteydelser inklusive moms (localtax beregnes på beløb + hovedafgift)
3: lokal skat gælder for varer uden moms (localtax beregnes på beløb uden skat)
4: lokal skat gælder for varer inklusive moms (lokaltax beregnes på beløb + hovedstol)
5: lokal skat gælder for tjenester uden moms på beløb uden skat)
6: Lokal afgift gælder for tjenester inklusive moms (lokal taxa er beregnet på beløb + skat) SMS=SMS @@ -819,9 +822,9 @@ Permission532=Opret/rediger ydelser Permission534=Slet ydelser Permission536=Se/administrer skjulte ydelser Permission538=Eksport af tjenesteydelser -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Læs donationer Permission702=Opret/rediger donationer Permission703=Slet donationer @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang index fecdf5e9714..999c8ee1115 100644 --- a/htdocs/langs/da_DK/bills.lang +++ b/htdocs/langs/da_DK/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proformafaktura InvoiceProFormaDesc=Proformafakturaen ligner en ægte faktura, men har ingen regnskabsmæssig værdi. InvoiceReplacement=Erstatningsfaktura. InvoiceReplacementAsk=Erstatningsfaktura for faktura -InvoiceReplacementDesc=Erstatningsfaktura bruges til at annullere og erstatte en faktura uden modtaget betaling .

Bemærk! Kun fakturaer uden betaling på det kan erstattes. Hvis fakturaen du udskifter endnu ikke er lukket, lukkes den automatisk for at "forladt". +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Kreditnota InvoiceAvoirAsk=Kreditnota til korrektion af faktura InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/da_DK/companies.lang b/htdocs/langs/da_DK/companies.lang index 5e399cd0080..251336c2067 100644 --- a/htdocs/langs/da_DK/companies.lang +++ b/htdocs/langs/da_DK/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias ​​navn (kommerciel, varemærke, ...) AliasNameShort=Alias ​​Navn Companies=Selskaber CountryIsInEEC=Landet er inden for Det Europæiske Økonomiske Fællesskab -PriceFormatInCurrentLanguage=Nuværende sprogs prisformat +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Navn på tredjepart ThirdPartyEmail=Tredjeparts email ThirdParty=Tredje part @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolutte leverandørrabatter (indtastet af all SupplierAbsoluteDiscountMy=Absolutte leverandørrabatter (indtastet af dig selv) DiscountNone=Ingen Vendor=Sælger +Supplier=Sælger AddContact=Opret kontakt AddContactAddress=Opret kontakt/adresse EditContact=Rediger kontakt diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang index e519bdc2fb6..caf89ef07f4 100644 --- a/htdocs/langs/da_DK/other.lang +++ b/htdocs/langs/da_DK/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Antal kundefakturaer NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Antal enheder på forslag NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Antal enheder på kundefakturaer NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=En ny intervention %s er blevet tildelt dig. EMailTextInterventionValidated=Intervention %s bekræftet EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/da_DK/website.lang b/htdocs/langs/da_DK/website.lang index 455f76a52d3..9371ca1fbcb 100644 --- a/htdocs/langs/da_DK/website.lang +++ b/htdocs/langs/da_DK/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang index abe6c755eaf..3b52ead1173 100644 --- a/htdocs/langs/de_AT/admin.lang +++ b/htdocs/langs/de_AT/admin.lang @@ -93,5 +93,6 @@ FreeLegalTextOnInterventions=Freier Rechtstext für Eingriffe WatermarkOnDraftInterventionCards=Wasserzeichen auf Intervention Karte Dokumente (alle, wenn leer) ClickToDialSetup=Click-to-Dial-Moduleinstellungen PathToGeoIPMaxmindCountryDataFile=Pfad zur Datei mit Maxmind IP to Country Übersetzung.
Beispiel: / usr / local / share / GeoIP / GeoIP.dat +ListOfFixedNotifications=List of Fixed Notifications MailToSendShipment=Sendungen MailToSendIntervention=Eingriffe diff --git a/htdocs/langs/de_AT/companies.lang b/htdocs/langs/de_AT/companies.lang index e88febb047d..d8443484e90 100644 --- a/htdocs/langs/de_AT/companies.lang +++ b/htdocs/langs/de_AT/companies.lang @@ -4,6 +4,7 @@ Companies=Partner UserTitle=Titel PhoneMobile=Handy Web=Webadresse +OverAllInvoices=Rechnungen OverAllSupplierProposals=Preisanfrage LocalTax1IsUsedES=RE wird LocalTax2IsUsedES=IRPF verwendet wird diff --git a/htdocs/langs/de_CH/accountancy.lang b/htdocs/langs/de_CH/accountancy.lang index 68921c9dd3c..7594842ccf6 100644 --- a/htdocs/langs/de_CH/accountancy.lang +++ b/htdocs/langs/de_CH/accountancy.lang @@ -17,8 +17,8 @@ AccountancySetupDoneFromAccountancyMenu=Die meisten Einstellungen der Buchhaltun ConfigAccountingExpert=Einstellungen des erweiterten Buchhaltungsmoduls Journalization=Journalisierung JournalFinancial=Finanzjournal -BackToChartofaccounts=Zeige Kontenplan -Chartofaccounts=Kontenplan +BackToChartofaccounts=Zeige Kontenrahmen +Chartofaccounts=Kontenrahmen CurrentDedicatedAccountingAccount=Aktuell zugewiesenes Konto AssignDedicatedAccountingAccount=Neues zugewiesenes Konto InvoiceLabel=Rechnungsbezeichung @@ -66,7 +66,7 @@ AccountancyAreaDescWriteRecords=Schritt %s: Lass alle Transaktionen ins Hauptbuc AccountancyAreaDescAnalyze=Schritt %s: Erzeuge oder ergänze Transaktionen für Berichte und Exporte. AccountancyAreaDescClosePeriod=Schritt %s: Schliesse eine Geschäftsperiode ab, damit Sie nicht mehr abgeändert werden kann. TheJournalCodeIsNotDefinedOnSomeBankAccount=Hoppla - nicht alle Bankkonten haben ein Buchhaltungskonto zugewiesen - bitte korrigiere das so: -Selectchartofaccounts=Wähle deinen Kontenplan. +Selectchartofaccounts=Wähle deinen Kontenrahmen. ChangeAndLoad=Lade und ersetze Addanaccount=Buchhaltungskonto hinzüfügen SubledgerAccountLabel=Bezeichnung Nebenbuchkonto @@ -89,6 +89,7 @@ ExpenseReportsVentilation=Verknüpfung für Spesenabrechnungen CreateMvts=Neue Transaktion UpdateMvts=Transaktion bearbeiten ValidTransaction=Transaktion freigeben +WriteBookKeeping=Transaktionen im Hauptbuch eintragen AccountBalance=Saldo ObjectsRef=Referenz des Quellobjektes CAHTF=Einkaufsaufwand von Steuern @@ -131,6 +132,7 @@ ACCOUNTING_RESULT_PROFIT=Ergebniskonto (Gewinn) ACCOUNTING_RESULT_LOSS=Ergebniskonto (Verlust) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Abschlussjournal ACCOUNTING_ACCOUNT_TRANSFER_CASH=Transferkonto Banktransaktionen +TransitionalAccount=Durchlaufkonto Bank ACCOUNTING_ACCOUNT_SUSPENSE=Sperrkonto DONATION_ACCOUNTINGACCOUNT=Buchhaltungskonto für Spenden ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Buchhaltungskonto für Abonnemente @@ -143,6 +145,7 @@ ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standard - Buchhaltungskonto für verkaufte Leis LabelAccount=Kontobezeichnung LabelOperation=Vorgangsbezeichnung LetteringCode=Beschriftung +Lettering=Beschriftung JournalLabel=Journalbezeichnung TransactionNumShort=Transaktionsnummer AccountingCategory=Eigene Kontogruppen @@ -176,7 +179,8 @@ DescThirdPartyReport=Liste der Buchhaltungskonten von Geschäftspartnern und Lie ListAccounts=Liste der Buchhaltungskonten UnknownAccountForThirdparty=Den Partner kenne ich nicht - wir nehmen %s. UnknownAccountForThirdpartyBlocking=Den Partner kenne ich nicht. Zugriffsfehler. -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Der Partner ist nicht definiert oder unbekannt. Zugriffsfehler. +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Geschäftspartner nicht definiert oder unbekannt. Ich nehme deshalb %s. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Der Partner ist nicht definiert oder unbekannt. Zugriffsfehler. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Mir fehlt der Partner und das Wartestellungskonto. Zugriffsfehler. PaymentsNotLinkedToProduct=Die Zahlung ist mit keinem Produkt oder Service verknüpft. Pcgtype=Kontengruppe @@ -185,7 +189,7 @@ PcgtypeDesc=Kontogruppen und -untergruppen brauche ich für vordefinierte Filter TotalVente=Gesamtumsatz vor Steuern TotalMarge=Gesamtmarge Verkauf DescVentilCustomer=Du siehst hier die Liste der Kundenrechnungen und ob diese mit einem Buchhaltungskonto verknüpft sind, oder nicht. -DescVentilMore=Wenn du in den Produkten und Leistungen die Buchhaltungskonten hinterlegt hast, kann ich jene den Rechnungspositionen automatisch zuordnen. Dafür ist die Schaltfläche "%s" da.\nDort, wo das nicht klappt, kannst du die Rechnungspositionen via "%s" von Hand zuweisen. +DescVentilMore=Wenn du in den Produkten und Leistungen die Buchhaltungskonten deines Kontenplanes hinterlegt hast, kann ich die Rechnungspositionen automatisch jenen Konten zuordnen. Dafür ist die Schaltfläche "%s" da.\nDort, wo das nicht klappt, kannst du die Rechnungspositionen via "%s" von Hand zuweisen. DescVentilDoneCustomer=Du siehst die Kundenrechnungspositionen und den aktuellen Verknüpfungsstatus zu Buchhaltungskonten. DescVentilTodoCustomer=Verknüpfe Rechnungspositionen mit Buchhaltungskonten. ChangeAccount=Ersetze für die gewählten Positionen das Buchhaltungskonto. @@ -232,13 +236,21 @@ Modelcsv_quadratus=Quadratus QuadraCompta - Format Modelcsv_ebp=EBP - Format Modelcsv_cogilog=EBP - Format Modelcsv_agiris=Agiris - Format +Modelcsv_openconcerto=Export zu OpenConcerto (Test) Modelcsv_configurable=Konfigurierbares CSV - Format +Modelcsv_Sage50_Swiss=Export zu SAGE 50 - Schweiz +ChartofaccountsId=Kontenrahmen ID InitAccountancy=Init Buchhaltung InitAccountancyDesc=Auf dieser Seite weisest du Buchhaltungskonten Produkten und Leistungen zu, die keine Konten für Ein- und Verkäufe hinterlegt haben. DefaultBindingDesc=Auf dieser Seite kannst du ein Standard - Buchhaltungskonto an alle Arten Zahlungstransaktionen zuweisen, falls noch nicht geschehen. DefaultClosureDesc=Lege hier die Parameter zum Anfügen der Bilanz fest. +OptionModeProductSell=Modus Verkauf +OptionModeProductSellIntra=Modus Export - Verkäufe in den EWR - Raum +OptionModeProductSellExport=Modus Export - Verkäufe in andere Länder OptionModeProductBuy=Modus Einkauf OptionModeProductSellDesc=Finde alle Produkte mit einem Buchhaltungskonto für Verkäufe. +OptionModeProductSellIntraDesc=Zeige alle Produkte mit einem Buchhaltungskonto für den Export in den EWR +OptionModeProductSellExportDesc=Zeige alle Produkte mit einem Buchhaltungskonto für den Export in andere Länder OptionModeProductBuyDesc=Finde alle Produkte mit einem Buchhaltungskonto für Einkäufe. CleanFixHistory=Lösche alle Kontierungscodes, die im Kontenplan nicht vorkommen, aus allen Positionen CleanHistory=Setzte alle Verknüpfungen für das gewählte Jahr zurück @@ -247,6 +259,9 @@ WithoutValidAccount=Vordefinierte Gruppen WithValidAccount=Mit geprüftem zugewiesenen Buchhaltungskonto ValueNotIntoChartOfAccount=Dieses Buchhaltungskonto exisitiert im aktuellen Kontenplan nicht... AccountRemovedFromGroup=Ich hab das Buchhaltungskonto aus der Gruppe entfernt. +SaleLocal=Inlandverkauf +SaleExport=Exportverkauf +SaleEEC=Verkauf im EWR Range=Dieses Buchhaltungskonto kommt im aktuellen Kontenplan nicht vor. Calculated=Berechnet SomeMandatoryStepsOfSetupWereNotDone=Oha - einige zwingende Einstellungen sind noch nicht gemacht worden. Bitte erledige das noch, danke. @@ -260,5 +275,6 @@ Binded=Verknüpfte Positionen ToBind=Zu verknüpfende Positionen UseMenuToSetBindindManualy=Nicht verbundenen Positionen, bitte Benutze den Menupunkt "
%s" zum manuell zuweisen. ImportAccountingEntries=Buchungen +DateExport=Datum Export WarningReportNotReliable=Obacht, dieser Bericht basiert nicht auf den Hauptbucheinträgen. Falls dort also noch Änderungen vorgenommen worden sind, wird das nicht übereinstimmen. Bei sauberer Buchführung nimmst du eher die Buchhaltungsberichte. ExpenseReportJournal=Spesenabrechnungsjournal diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang index 681ea2e1ad7..d38cb433d55 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -41,6 +41,8 @@ UseSearchToSelectContactTooltip=Wenn Sie eine grosse Anzahl von Kontakten (> 100 DelaiedFullListToSelectCompany=Nicht so eingängig, aber schneller geht's in der Combo List - Ansicht, wenn ich auf Tastendruck warten soll, bevor ich die Partnerliste lade. DelaiedFullListToSelectContact=Nicht so eingängig, aber schneller geht's in der Combo List - Ansicht, wenn ich auf Tastendruck warten soll, bevor ich die Kontaktliste lade. NumberOfKeyToSearch=Anzahl der Zeichen, die die Suche auslösen sollen: 1 %s +NumberOfBytes=Anzahl Bytes +SearchString=Suchtext AllowToSelectProjectFromOtherCompany=Erlaube bei den Elementen eines Partners, die Projekte von anderen Partnern zu verlinken UsePreviewTabs=Vorschautabs verwenden MySQLTimeZone=Aktuelle Zeitzone von MySql (Datenbank) @@ -74,7 +76,7 @@ Language_en_US_es_MX_etc=Sprache setzen (de_CH, en_GB,...) SystemToolsAreaDesc=Dieser Bereich ist voll mit Administratorfunktionen - Wähle im Menu aus. Purge=Säubern PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis %s). Diese Funktion ist richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete) -PurgeDeleteTemporaryFiles=Alle temporären Dateien löschen (kein Datenverlustrisiko) +PurgeDeleteTemporaryFiles=Lösche alle Temporären Dateien. Dabei gehen keine Arbeitsdaten verloren.\nHinweis: Das funktioniert nur, wenn das Verzeichnis 'Temp' seit 24h da ist. PurgeDeleteTemporaryFilesShort=Temporärdateien löschen PurgeDeleteAllFilesInDocumentsDir=Alle Datein im Verzeichnis %s löschen. Dies beinhaltet temporäre Dateien ebenso wie Datenbanksicherungen, Dokumente (Geschäftspartner, Rechnungen, ...) und alle Inhalte des ECM-Moduls. PurgeNDirectoriesDeleted=%s Dateien oder Verzeichnisse gelöscht. @@ -165,7 +167,7 @@ ModuleFamilyProducts=Produktmanagement (PM) ModuleFamilyHr=Personalverwaltung (PM) ModuleFamilyProjects=Projektverwaltung/Zusammenarbeit ModuleFamilyECM=Inhaltsverwaltung (ECM) -ModuleFamilyPortal=Homepages und weitere Frontanwendungen +ModuleFamilyPortal=Webseiten und andere Frontend Anwendungen DoNotUseInProduction=Nicht in Produktion nutzen ThisIsAlternativeProcessToFollow=Dies ist ein alternativer Setup-Prozess: FindPackageFromWebSite=Finde das passende Dolibarrpaket (zum Beispiel auf der Dolibarr - Website %s) @@ -175,6 +177,7 @@ UnpackPackageInModulesRoot=Zum Einbinden eines externen Moduls entpackst du dere SetupIsReadyForUse=Modulinstallation abgeschlossen. Aktiviere und konfiguriere nun das Modul im Menu "%s". InfDirExample=
Dann deklariere in conf.php
$dolibarr_main_url_root_alt='/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
\n"#" heisst, die Variablen sind auskommentiert und werden nicht berücksichtigt.\nEntferne einfach "#", um die Variablen scharf zu schalten. YouCanSubmitFile=Du kannst das Modul - Archiv auch hochladen: +CallUpdatePage=Zur Aktualisierung der Daten und der Datenbankstruktur gehst du zur Seite %s. UpdateServerOffline=Update-Server offline WithCounter=Zähler verwalten GenericMaskCodes=Sie können ein beliebiges Numerierungsschema wählen. Dieses Schema könnte z.B. so aussehen:
{000000} steht für eine 6-stellige Nummer, die sich bei jedem neuen %s automatisch erhöht. Wählen Sie die Anzahl der Nullen je nach gewünschter Nummernlänge. Der Zähler füllt sich automatisch bis zum linken Ende mit Nullen um das gewünschte Format abzubilden.
{000000+000} führt zu einem ähnlichen Ergebnis, allerdings mit einem Wertsprung in Höhe des Werts rechts des Pluszeichens, der beim ersten %s angewandt wird.
{000000@x} wie zuvor, jedoch stellt sich der Zähler bei Erreichen des Monats x (zwischen 1 und 12) automatisch auf 0 zurück. Ist diese Option gewählt und x hat den Wert 2 oder höher, ist die Folge {mm}{yy} or {mm}{yyyy} ebenfalls erfoderlich.
{dd} Tag (01 bis 31).
{mm} Monat (01 bis 12).
{yy}, {yyyy} or {y} Jahreszahl 1-, 2- oder 4-stellig.
@@ -191,13 +194,28 @@ UMask=Umask Parameter für neue Dateien auf Unix/Linux/BSD-Dateisystemen. UMaskExplanation=Über diesen Parameter können Sie die standardmässigen Dateiberechtigungen für vom System erzeugte/verwaltete Inhalte festlegen.
Erforderlich ist ein Oktalwert (0666 bedeutet z.B. Lesen und Schreiben für alle).
Auf Windows-Umgebungen haben diese Einstellungen keinen Effekt. SeeWikiForAllTeam=Schaue die Wiki-Seite mit der Liste der Mitwirkenden und ihrer Organisation an. AddCRIfTooLong=Es gibt keine automatische Textformatierung, zu langer Text wird in Dokumenten nicht angezeigt. Bitte fügen Sie bei Bedarf Zeilenumbrüche im Textfeld hinzu. +ConfirmPurge=Möchtest du diese Aktion wirklich durchführen?\nDabei gehen alle Datein (im ECM, Attachments etc) unwiederbringlich verloren. +ExamplesWithCurrentSetup=Beispiele mit der derzeitigen Systemkonfiguration ListOfDirectoriesForModelGenODT=Liste der Verzeichnisse mit Vorlagendateien mit OpenDocument-Format.

Fügen Sie hier den vollständigen Pfad der Verzeichnisse ein.
Trennen Sie jedes Verzeichnis mit einer Zeilenschaltung
Verzeichnisse des ECM-Moduls fügen Sie z.B. so ein DOL_DATA_ROOT/ecm/yourdirectoryname.

Dateien in diesen Verzeichnissen müssen mit .odt oder .ods enden. +NumberOfModelFilesFound=Anzahl der .odt / .ods Vorlagen in diesen Verzeichnissen. +DescWeather=Diese Piktogramme werden bei verspäteten Tasks gemäss folgenden Werten angezeigt. +ThisForceAlsoTheme=Dieser Menu Manager übersteuert die Benutzereinstellung. Er funktioniert nicht auf allen Smartphones. Wähle einen anderen, falls Probleme auftauchen. +ConnectionTimeout=Zeitüberschreitung in der Verbindung ResponseTimeout=Antwort Timeout +NoSmsEngine=Es ist kein SMS Sendedienst verfügbar.\nIn der Standardinstallation ist keiner installiert, denn das gibt es bei externen Anbietern.\nFinde deinen Anbieter via %s. PDFDesc=Globale Einstellungen für automatisch generierte PDFs +PDFAddressForging=Regeln für Adressfelder +HideAnyVATInformationOnPDF=Verstecke MWST - Informationen. PDFRulesForSalesTax=Regeln für die MWST +HideLocalTaxOnPDF=Verstecke den %s Satz +HideDescOnPDF=Verstecke Produktbeschreibungen +HideRefOnPDF=Verstecke Produktnummern +HideDetailsOnPDF=Verstecke Produktzeilen PlaceCustomerAddressToIsoLocation=ISO Position für die Kundenadresse verwenden +ButtonHideUnauthorized=Buttons für Nicht-Admins ausblenden anstatt ausgrauen? OldVATRates=Alter MwSt. Satz NewVATRates=Neuer MwSt. Satz +MassConvert=Massenkonvertierung starten HtmlText=HTML Float=Gleitkommazahl Boolean=Boolean (Ein Kontrollkästchen) @@ -206,18 +224,30 @@ ExtrafieldMail =E-Mail ExtrafieldSelect =Wähle Liste ExtrafieldSelectList =Wähle von Tabelle ExtrafieldPassword=Passwort +ExtrafieldRadio=Einfachauswahl (Radiobuttons) ExtrafieldCheckBox=Kontrollkästchen ExtrafieldCheckBoxFromList=Kontrollkästchen aus Tabelle +ComputedFormulaDesc=Du kannst hier Formeln mit weiteren Objekteigenschaften oder in PHP eingeben, um dynamisch berechnete Werte zu generieren. Alle PHP konformen Formeln sind erlaubt inkl dem Operator "?:" und folgende globale Objekte:$db, $conf, $langs, $mysoc, $user, $object.
Obacht: Vielleicht sind nur einige Eigenschaften von $object verfügbar. Wenn dir eine Objekteigenschaft fehlt, packe das gesamte Objekt einfach in deine Formel, wie im Beispiel zwei.
"Computed field" heisst, du kannst nicht selber Werte eingeben. Wenn Syntakfehler vorliegen, liefert die Formel ggf. gar nichts retour.

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

Beispiel zum Neuladen eines Objektes
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Eine Weitere Variante zum erzwungenen Neuladen des Objekts und seiner Eltern:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Übergeordnetes Projekt nicht gefunden...' +ExtrafieldParamHelpPassword=Wenn leer, wird das Passwort unverschlüsselt geschrieben.
Gib 'auto' an für die Standardverschlüsselung - es wird nur der Hash ausgelesen und man kann das Passwort unmöglich herausfinden. +ExtrafieldParamHelpselect=Parameterlisten müssen das Format Schlüssel,Wert haben

zum Beispiel:
1,Wert1
2,Wert2
3,Wert3
...

Um die Liste in Abhängigkeit zu einer anderen zu haben:
1,Wert1|parent_list_code:parent_key
2,Wert2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=Die Liste muss im Format: Schlüssel, Wert sein (wobei der Schlüssel nicht '0' sein kann)

zum Beispiel:
1, Wert1
2, Wert2
3, Wert3
... +ExtrafieldParamHelpradio=Die Liste muss im Format: Schlüssel, Wert sein (wobei der Schlüssel nicht '0' sein kann)

zum Beispiel:
1, Wert1
2, Wert2
3, Wert3
... LibraryToBuildPDF=Verwendete Bibliothek zur PDF-Erzeugung SetAsDefault=Als Standard definieren +BarcodeInitForthird-parties=Barcode Init. für alle Partner BarcodeInitForProductsOrServices=Alle Strichcodes für Produkte oder Services initialisieren oder zurücksetzen EraseAllCurrentBarCode=Alle aktuellen Barcode-Werte löschen ConfirmEraseAllCurrentBarCode=Wirklich alle aktuellen Barcode-Werte löschen? AllBarcodeReset=Alle Barcode-Werte wurden entfernt NoBarcodeNumberingTemplateDefined=Mir fehlt ein aktives Barcode - Nummernschema. Das wird im Modul "Barcodes" aktiviert. +ShowDetailsInPDFPageFoot=Mehr Detailinfos in der Fusszeile anzeigen, wie z.B. Firmenadresse, oder Vertreternamen (Zusätzlich zur Firmennummer, Firmenvermögen und MWST - Nummer). +NoDetails=Keine weiteren Details in der Fusszeile DisplayCompanyManagers=Anzeige der Namen der Geschäftsführung EnableAndSetupModuleCron=Wenn du diese Rechnung in regelmässigem Abstand automatisch erzeugen lassen willst, musst du das Modul '%s' aktivieren und konfigurieren. Natürlich kannst du weiterhin hier die Rechnung manuell auslösen. Du wirst gewarnt, falls du die Rechnung manuell auslösen willst, aber bereits eine automatisch erstellte da ist. +ModuleCompanyCodeCustomerAquarium=%s gefolgt von der Kundennummer für den Kontierungscode +ModuleCompanyCodeSupplierAquarium=%sgefolgt von der Lieferantennummer für den Kontierungscode ModuleCompanyCodePanicum=Leeren Kontierungscode zurückgeben. +ModuleCompanyCodeDigitaria=Kontierungscode Abhängig von der Kundennummer. Zusammengesetzt aus dem Buchstaben "C", gefolgt von den ersten fünf Buchstaben der Kundennummer. Use3StepsApproval=Standardmässig, Einkaufsaufträge müssen durch zwei unterschiedlichen Benutzer erstellt und freigegeben werden (ein Schritt/Benutzer zum Erstellen und ein Schritt/Benutzer für die Freigabe). Beachten Sie, wenn ein Benutzer beide Rechte hat - zum Erstellen und Freigeben, dann reicht ein Benutzer für diesen Vorgang. Optional können Sie einen zusätzlichen Schritt/User für die Freigabe einrichten, wenn der Betrag einen bestimmten dedizierten Wert übersteigt (wenn der Betrag höher wird, werden 3 Stufen notwendig: 1=Validierung, 2=erste Freigabe und 3=Gegenfreigabe.
Lassen Sie das Feld leer, wenn eine Freigabe (2 Schritte) ausreicht; tragen Sie einen sehr niedrigen Wert (0.1) ein, wenn eine zweite Freigabe notwendig ist. UseDoubleApproval=3-fach Verarbeitungsschritte verwenden, wenn der Betrag (ohne Steuer) höher ist als ... WarningPHPMail=Obacht: Wenn du eine externe Mailadresse verwendest (also nicht die deines aktuellen Hostings hier, gibst du hier den Mailserver, der zu deiner gewünschten E-Mail Adresse passt, ein (z.B. den SMTP von GMX, wenn du eine GMX - Adresse hinterlegst.)
Trage hier also Mailserver / Benutzer / Passwort deines externen Anbieters ein.
Sonst kann es vorkommen, dass Mails hier nicht herausgeschickt werden, weil der lokale Maildienst einen Absender mit falscher Domäne erhält, und das blockiert. @@ -225,51 +255,91 @@ WarningPHPMail2=Falls dein Anbieter Mailclients auf einen IP-Adressbereich einsc ClickToShowDescription=Klicken um die Beschreibung zu sehen DependsOn=Dieses Modul benötigt die folgenden Module RequiredBy=Diese Modul wird durch folgende Module verwendet +EnableDefaultValues=Eigene Standartwerte erlauben. +EnableOverwriteTranslation=Eigene Übersetzungen erlauben WarningSettingSortOrder=Warnung: Änderungen an der Standardsortierreihenfolge können zu Fehlern führen, falls das betreffende Feld nicht vorhanden ist. Falls dies passiert, entfernen sie das betreffende Feld oder stellen die den Defaultwert wieder her. ProductDocumentTemplates=Dokumentvorlagen zur Erstellung von Produktdokumenten WatermarkOnDraftExpenseReports=Wasserzeichen auf Entwurf von Ausgabenbelegen AttachMainDocByDefault=Setzen Sie diesen Wert auf 1, wenn Sie das Hauptdokument standardmässig per E-Mail anhängen möchten (falls zutreffend). +davDescription=WebDAV Server einrichten DAVSetup=Einstellungen de Moduls "DAV" +DAV_ALLOW_PRIVATE_DIR=WebDAV - Ordner "private" aktivieren (Login nötig). +DAV_ALLOW_PRIVATE_DIRTooltip=Das Standart - Privatverzeichnis in WebDAV kann jeder mit seinen Logindaten benutzen. +DAV_ALLOW_PUBLIC_DIR=WebDAV - Ordner "public" aktivieren (Kein Login nötig). +DAV_ALLOW_PUBLIC_DIRTooltip=Das Öffentliche Verzeichnis in WebDAV kann jeder ohne irgendein Login benutzen. +DAV_ALLOW_ECM_DIR=DMS/ECM - Privatverzeichnis aktivieren (Login erforderlich). Das ist das Stammverzeichnis des DMS/ECM Modules. +DAV_ALLOW_ECM_DIRTooltip=Hier kommen alle selbst hochgeladenen DMS/ECM Dateien hin. Dazu braucht es einen ein Benutzerlogin mit den erforderlichen Rechten. +Module1Desc=Geschäftspartner- und Kontakteverwaltung (Kunden, Leads, ...) +Module10Name=Buchhaltung einfach Module10Desc=Einfache Buchhaltungsberichte (Journale, Umsätze) auf Basis von Datenbankinhalten. Es wird keine Hauptbuch-Tabelle verwendet. Module20Desc=Angeboteverwaltung Module22Desc=E-Mail-Kampagnenverwaltung +Module25Name=Kundenaufträge +Module25Desc=Kunden - Auftragsverwaltung Module40Name=Lieferanten +Module40Desc=Lieferantenverwaltung und Einkauf (Bestellungen und Rechnungen) Module49Desc=Bearbeiterverwaltung +Module50Desc=Produkteverwaltung Module52Name=Produktbestände +Module52Desc=Lagerverwaltung (für Produkte) +Module53Desc=Dienstleistungen Module54Name=Verträge/Abonnements +Module57Name=Debit - Zahlungen Module70Name=Arbeitseinsätze Module80Name=Auslieferungen +Module80Desc=Versand und Lieferverfolgung +Module85Name=Bankkonten & Bargeld Module100Desc=Hinzufügen eines Links zu einer externen Website als Icon im Hauptmenü. Die Webseite wird in einem Dolibarr-Frame unter dem Haupt-Menü angezeigt. Module105Desc=Mailman oder SPIP Schnittstelle für die Mitgliedsmodul +Module200Desc=LDAP Synchronisierung Module240Desc=Werkzeug zum Datenexport (mit Assistent) Module250Desc=Tool zum Importieren von Daten in Dolibarr (mit Unterstützung) Module310Desc=Management von Mitglieder einer Stiftung/Vereins +Module320Desc=RSS Feed auf Dolibarr - Seiten zeigen +Module330Name=Lesezeichen und Verknüpfungen Module330Desc=Erstellen Sie Verknüpfungen zu den internen oder externen Seiten, auf die Sie häufig zugreifen (Favoriten). -Module400Name=Projekte oder Interessenten +Module400Name=Projekte oder Chancen Module400Desc=Management von Projekten, Interessenten/Chancen und/oder Aufgaben. Sie können auch jedes beliebige Element (Rechnung, Auftrag, Offerte, Intervention,...) einem Projekt zuordnen und erhalten eine Querschnittsansicht aus der Projektsicht. +Module500Name=Steuern und Sonderausgaben +Module500Desc=Andere Aufwände (MWST, Sozialabgaben, Dividenden,...) Module510Desc=Erfassen und Verfolgen von Vergütungen der Mitarbeiter Module520Name=Kredite Module600Desc=Ereignisbasierte E-Mail - Benachrichtigungen
  • Für Benutzer, gemäss Einstellungen im Benutzerprofil
  • Für Geschäftspartner, gemäss Einstellungen in Partnerkontakten
  • Für selbstgewählte E-Mail Adressen
Module600Long=Obacht: Hier geht es um automatisierte Benachrichtigungen für Geschäftsvorfälle. Kalendererinnerungen legst du im Modul "Kalender" fest. Module610Desc=Erstellung von Produktvarianten (Farbe, Größe etc.) Module770Desc=Verwaltung von Reisekostenabrechnungen (Verkehrsmittel, Verpflegung,....) +Module1120Name=Lieferantenofferten +Module1120Desc=Lieferanten - Offerten und Preise einholen. Module1200Desc=Mantis-Integation Module1520Desc=E-Mail Kampagnendokument erstellen Module1780Name=Kategorien/#tags Module2000Desc=Ermöglicht die Bearbeitung von Textfeldern mit dem CKEditor (html). +Module2200Desc=Mathematische Ausdrücke für Preise aktivieren +Module2300Desc=Geplante Aufgaben (CronJobs, ChronoTable) verwalten. Module2400Name=Ereignisse/Termine Module2400Desc=Ereignisse verfolgen. Lassen Sie Dolibarr automatische Ereignisse zur Verfolgung protokollieren oder nehmen Sie manuelle Ereignisse oder Besprechungen auf. Dies ist das Hauptmodul für ein gutes Management von Kunden- oder Lieferanten-Beziehungen. +Module2500Desc=Document - / Electronic Content Management System. Deine Dokumente werden automatisch organisiert. Du kannst deine Dateien teilen. Module2660Desc=Aktivieren Sie den Dolibarr Webservice-Client (Kann verwendet werden, um Daten/Anfragen an externe Server zu übertragen. Nur Lieferantenbestellungen werden derzeit unterstützt.) Module2700Desc=Benutze den Gravatar - Dienst, um Fotos von deinen Benutzern und Mitgliedern darzustellen. (www.gravatar.com) +Module3200Name=Unveränderbare Archive +Module20000Name=Ferienverwaltung Module20000Desc=Mitarbeiterurlaubsanträge erfassen und verfolgen +Module40000Name=Multiwährungsfähigkeit Module40000Desc=Verwendung alternativer Währungen in Preisen und Dokumenten +Module50100Name=Simple POS Module50100Desc=Kassenmodul (Simple POS) +Module50150Name=Take POS Module50150Desc=Kassenmodul (TouchPOS) +Module50200Desc=PayPal Zahlungsmaske aktivieren. So können deine Kunden Dolibarr - Rechnungen via PayPal oder Kreditkarte bezahlen. +Module50300Desc=Stripe Zahlungsmaske aktivieren. So können deine Kunden Dolibarr - Rechnungen via Wallets oder Kreditkarte (plus weitere Stripe Zahlungsmöglichkeiten) bezahlen. +Module50400Name=Doppelte Buchhaltung Module50400Desc=Buchhaltungsverwaltung (doppelte Buchhaltung, unterstützt Haupt- und Nebenbücher). Export des Hauptbuchs in verschiedene andere Buchhaltungssoftware-Formate. +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,....) Module62000Name=Lieferbedingungen Module62000Desc=Hinzufügen von Funktionen zur Verwaltung von Lieferbedingungen (Incoterms) +Module63000Desc=Hier kannst du deine Ressourcen (Drucker, Räume, Fahrzeuge) Kalenderereignissen zuweisen. Permission26=Angebote schliessen Permission61=Leistungen ansehen Permission62=Leistungen erstellen/bearbeiten @@ -282,18 +352,50 @@ Permission125=Mit Benutzer verbundene Geschäftspartner löschen Permission126=Geschäftspartner exportieren Permission144=Löschen Sie alle Projekte und Aufgaben (einschliesslich privater Projekte in denen ich kein Kontakt bin) Permission172=Reise- und Spesenabrechnung erstellen/ändern +Permission181=Lieferantenbestellungen einsehen +Permission184=Lieferantenbestellungen bestätigen +Permission185=Lieferantenbestellungen auslösen oder verwerfen +Permission187=Lieferantenbestellungen schliessen +Permission188=Lieferantenbestellungen zurückziehen Permission193=Leitungen abbrechen Permission203=Bestellungsverbindungen Bestellungen +Permission215=Lieferanten einrichten +Permission300=Barcodes auslesen +Permission301=Barcodes erzeugen und ändern. Permission311=Leistungen einsehen Permission331=Lesezeichen einsehen Permission332=Lesezeichen erstellen/bearbeiten Permission401=Rabatte einsehen +Permission430=PHP Debug Bar verwenden +Permission511=Lohnzahlungen einsehen +Permission512=Lohnzahlungen erstellen und bearbeiten +Permission514=Lohnzahlungen löschen Permission520=Darlehen einsehen Permission525=Darlehens-rechner Permission527=Exportiere Darlehen Permission531=Leistungen einsehen +Permission650=Rechnungen für Rohmaterialien einsehen. +Permission651=Rechnungen für Rohmaterialien erzeugen und bearbeiten +Permission652=Rechnungen für Rohmaterialien löschen Permission701=Spenden einsehen +Permission1121=Partnerofferten einsehen +Permission1122=Partnerofferten erzeugen und bearbeiten +Permission1123=Partnerofferten freigeben +Permission1124=Partnerofferten auslösen +Permission1125=Partnerofferten löschen +Permission1126=Lieferanten - Preisanfragen schliessen +Permission1182=Lieferantenbestellungen einsehen +Permission1185=Lieferantenbestellungen bestätigen +Permission1186=Lieferantenbestellungen auslösen +Permission1187=Empfangsbestätigung Lieferantenbestellung quittieren +Permission1188=Lieferantenbestellungen löschen +Permission1190=Lieferantenbestellungen bestätigen (zweite Bestätigung). +Permission1231=Lieferantenrechnungen einsehen +Permission1232=Lieferantenrechnungen erzeugen und bearbeiten Permission1235=Lieferantenrechnungen per E-Mail versenden +Permission1236=Kundenrechnungen, -attribute und -zahlungen exportieren +Permission1237=Lieferantenbestellungen mit Details exportieren +Permission1421=Kundenaufträge mit Attributen exportieren Permission2414=Aktionen und Aufgaben anderer exportieren Permission59002=Gewinspanne definieren DictionaryCompanyJuridicalType=Rechtsformen von Unternehmen @@ -303,6 +405,8 @@ DictionaryPaperFormat=Papierformate DictionaryEMailTemplates=E-Mail Textvorlagen SetupSaved=Setup gespeichert BackToDictionaryList=Zurück zu der Stammdatenliste +VATIsUsedDesc=Standardmässig folgt der Umsatzsteuersatz beim Erstellen von Interessenten, Rechnungen, Aufträgen usw. der aktiven Standardregel:
Wenn der Verkäufer nicht der Umsatzsteuer unterliegt, ist die Umsatzsteuer standardmäßig 0. Regelende.
Ist das (Land des Verkäufers = Land des Käufers), entspricht die Umsatzsteuer standardmässig der Umsatzsteuer des Produkts im Land des Verkäufers. Regelende.
Wenn der Verkäufer und der Käufer beide in der Europäischen Gemeinschaft ansässig sind und es sich bei den Waren um transportbezogene Produkte handelt (Spedition, Versand, Fluggesellschaft), beträgt die Standard-Mehrwertsteuer 0. Diese Regel ist abhängig vom Land des Verkäufers - wenden Sie sich an Ihren Buchhalter. Die Mehrwertsteuer ist vom Käufer an die Zollstelle in seinem Land und nicht an den Verkäufer zu entrichten. Regelende.
Wenn der Verkäufer und der Käufer beide in der Europäischen Gemeinschaft ansässig sind und der Käufer kein Unternehmen ist (mit einer registrierten innergemeinschaftlichen Umsatzsteuer-Identifikationsnummer), gilt standardmässig der Umsatzsteuersatz des Landes des Verkäufers. Regelende.
Wenn der Verkäufer und der Käufer beide in der Europäischen Gemeinschaft ansässig sind und der Käufer ein Unternehmen ist (mit einer registrierten innergemeinschaftlichen Umsatzsteuer-Identifikationsnummer), beträgt die Umsatzsteuer standardmässig 0. Regelende.
In allen anderen Fällen lautet der vorgeschlagene Standardwert Umsatzsteuer = 0. Regelende. +VATIsNotUsedDesc=Standardmässig beträgt die vorgeschlagene Umsatzsteuer 0, was für Fälle wie Vereine, Einzelpersonen oder kleine Unternehmen verwendet werden kann. LocalTax1IsNotUsedDescES=Standardmässig werden die vorgeschlagenen RE 0 ist. Ende der Regel. LocalTax2IsNotUsedDescES=Standardmässig werden die vorgeschlagenen IRPF 0 ist. Ende der Regel. DriverType=Treiber Typ @@ -318,6 +422,7 @@ InfoWebServer=Infos Webserver InfoDatabase=Infos Datenbank InfoPHP=Infos PHP BrowserName=Browser Name +AccountantDesc=Wenn Sie einen externen Buchhalter haben, können Sie hier seine Informationen bearbeiten. TriggerDisabledByName=Trigger in dieser Datei sind durch das -NORUN-Suffix in ihrem Namen deaktviert. DictionaryDesc=Definieren Sie hier alle Defaultwerte. Sie können die vordefinierten Werte mit ihren eigenen ergänzen. MiscellaneousDesc=Alle anderen sicherheitsrelevanten Parameter werden hier definiert. @@ -402,6 +507,7 @@ ExpenseReportsIkSetup=Modul Spesenabrechnungen (Milles Index) einrichten ExpenseReportsRulesSetup=Modul Spesenabrechnungen (Regeln) einrichten ExpenseReportNumberingModules=Modul Spesenabrechnung (Numerierung) YouMayFindNotificationsFeaturesIntoModuleNotification=Du kannst automatische Benachrichtigungen im Modul "Benachrichtigungen" festlegen und verwalten. +ListOfFixedNotifications=List of Fixed Notifications ConfFileMustContainCustom=Zur Installation eines externen Modules speichern Sie die Modul-Dateien in Verzeichnis %s. Damit Dolibarr dieses Verzeichniss verwendet, musst du in der Setupdatei conf.php die Optionen
$dolibarr_main_url_root_alt auf
$dolibarr_main_url_root_alt="/custom" oder
'%s/custom'; hinzufügen oder anpassen. LinkColor=Linkfarbe MinimumNoticePeriod=Kündigungsfrist (Ihre Kündigung muss vor dieser Zeit erfolgen) @@ -446,5 +552,8 @@ NoNewEmailToProcess=Ich habe keinen neuen E-Mails (die zu den Filtern passen) ab RecordEvent=E-Mail Ereignisse NbOfEmailsInInbox=Anzahl E-Mails im Quellverzeichnis ResourceSetup=Modul Ressourcen einrichten +UseSearchToSelectResource=Zeige eine Suchmaske für Ressourcen, statt eine Drop-down - Liste +DisabledResourceLinkUser=Verknüpfungsmöglichkeit zwischen Ressource und Benutzer unterbinden. +DisabledResourceLinkContact=Verknüpfungsmöglichkeit zwischen Ressource und Kontakt unterbinden. ConfirmUnactivation=Bestätige das Zurücksetzen des Moduls. ExportSetup=Modul Daten-Export einrichten diff --git a/htdocs/langs/de_CH/agenda.lang b/htdocs/langs/de_CH/agenda.lang index ceec4e4ec1a..c53b0758424 100644 --- a/htdocs/langs/de_CH/agenda.lang +++ b/htdocs/langs/de_CH/agenda.lang @@ -11,6 +11,7 @@ AgendaAutoActionDesc=Gib hier an, welche Ereignisse automatisch in den Kalender AgendaSetupOtherDesc=Hier gibst Du die Exportoptionen zu externen Kalendern, wie Google Calendar oder Thunderbird an. EventRemindersByEmailNotEnabled=Benachrichtigungen sind in den Moduleinstellungen deaktiviert (%s). NewCompanyToDolibarr=Partner %s erzeugt +COMPANY_DELETEInDolibarr=Partner %s gelöscht. MemberModifiedInDolibarr=Mitglied %s bearbeitet MemberResiliatedInDolibarr=Mitlglied %s geschlossen. MemberSubscriptionAddedInDolibarr=Abonnement %s für Mitlglied %s hinzugefügt @@ -37,6 +38,7 @@ EXPENSE_REPORT_REFUSEDInDolibarr=Spesenabrechnung %s zurückgewiesen PROJECT_MODIFYInDolibarr=Projekt %s bearbeitet TICKET_CREATEInDolibarr=Ticket %s erzeugt TICKET_MODIFYInDolibarr=Ticket %s bearbeitet +TICKET_CLOSEInDolibarr=Ticket %s geschlossen. TICKET_DELETEInDolibarr=Ticket %s gelöscht AgendaModelModule=Vorlagen zum Ereignis AgendaUrlOptionsNotAdmin=logina=!%s ,zum Aktionen, die nicht vom Benutzer %s sind, anzuzeigen. diff --git a/htdocs/langs/de_CH/boxes.lang b/htdocs/langs/de_CH/boxes.lang index 477ecc4581a..154ca19a7eb 100644 --- a/htdocs/langs/de_CH/boxes.lang +++ b/htdocs/langs/de_CH/boxes.lang @@ -9,6 +9,7 @@ BoxLastActions=Neueste Aktionen BoxLastMembers=Neueste Mitglieder BoxFicheInter=Neueste Arbeitseinsätze BoxTitleLastRssInfos=%s neueste News von %s +BoxTitleLastModifiedProspects=Interessenten: zuletzt %s geändert BoxTitleLastFicheInter=%s zuletzt bearbietet Eingriffe BoxLastExpiredServices=%s älteste Kontakte mit aktiven abgelaufenen Leistungen BoxTitleLastActionsToDo=%s neueste Aktionen zu erledigen @@ -18,6 +19,5 @@ BoxGoodCustomers=Guter Kunde LastRefreshDate=Datum der letzten Aktualisierung NoRecordedCustomers=Keine erfassten Kunden NoRecordedContacts=Keine erfassten Kontakte -NoRecordedProspects=Keine erfassten Leads NoRecordedInterventions=Keine verzeichneten Einsätze LastXMonthRolling=%s letzte Monate gleitend diff --git a/htdocs/langs/de_CH/categories.lang b/htdocs/langs/de_CH/categories.lang index 2146cad9197..691489c9b61 100644 --- a/htdocs/langs/de_CH/categories.lang +++ b/htdocs/langs/de_CH/categories.lang @@ -8,11 +8,13 @@ AddIn=Einfügen in Classify=Einstufen CategoriesArea=Schlagwörter / Kategorien ProductsCategoriesArea=Schlagwörter / Kategorien für Produkte und Dienstleistungen +SuppliersCategoriesArea=Bereich für Lieferanten-Tags / Kategorien CustomersCategoriesArea=Schlagwörter / Kategorien für Kunden MembersCategoriesArea=Schlagwörter / Kategorien für Mitglieder ContactsCategoriesArea=Schlagwörter / Kategorien für Kontakte AccountsCategoriesArea=Schlagwörter / Kategorien für Konten ProjectsCategoriesArea=Schlagwörter / Kategorien für Projekte +UsersCategoriesArea=Benutzerschlagworte und -kategorien SubCats=Unterkategorien CatList=Liste der Schlagwörter / Kategorien NewCategory=Neues Schlagwort / Neue Kategorie @@ -25,6 +27,7 @@ ImpossibleAddCat=Das Schlagwort / die Kategorie %s kann nicht hinzugefügt werde ObjectAlreadyLinkedToCategory=Das Element ist bereits mit dieser Kategorie verknüpft. ProductIsInCategories=Produkt/Leistung ist mit folgenden Schlagwörtern / Kategorien verknüpft CompanyIsInCustomersCategories=Dieser Partner ist mit folgenden Kunden- Schlagwörtern / Kategorien verknüpft. +CompanyIsInSuppliersCategories=Dieser Partner ist mit folgenden Lieferanten- Schlagwörtern / Kategorien verknüpft. MemberIsInCategories=Dieses Mitglied ist mit folgenden Mitglieder- Schlagwörtern / Kategorien verknüpft ContactIsInCategories=Dieser Kontakt ist mit folgenden Kontakte- Schlagwörtern / Kategorien verknüpft. ProductHasNoCategory=Dieses Produkt oder diese Leistung ist nicht verschlagwortet oder kategoriesiert. @@ -40,19 +43,25 @@ ContentsNotVisibleByAllShort=Private Inhalte DeleteCategory=Lösche Schlagwort / Kategorie ConfirmDeleteCategory=Bist du sicher, dass du das Schlagwort resp. die Kategorie löschen willst? NoCategoriesDefined=Kein Schlagwort oder keine Kategorie definiert +SuppliersCategoryShort=Lieferanten-Tag / Kategorie CustomersCategoryShort=Kundenschlagworte / -kategorien ProductsCategoryShort=Produktschlagworte / -kategorien MembersCategoryShort=Mitgliederschlagworte / -kategorien +SuppliersCategoriesShort=Lieferanten-Tags / Kategorien CustomersCategoriesShort=Kundenschlagworte / -kategorien ProspectsCategoriesShort=Leadschlagworte / -kategorien +CustomersProspectsCategoriesShort=Kund./Interess. Tags / Kategorien ProductsCategoriesShort=Produktschlagworte / -kategorien MembersCategoriesShort=Mitgliederschlagworte / -kategorien ContactCategoriesShort=Kontaktkschlagworte / -kategorien AccountsCategoriesShort=Kontenschlagworte / -kategorien ProjectsCategoriesShort=Projektschlagworte / -kateorien +UsersCategoriesShort=Benutzerschlagworte und -kategorien +ThisCategoryHasNoSupplier=Mit dieser Kategorie ist kein Lieferant verknüpft. ThisCategoryHasNoAccount=Dieser Kategorie sind keine Konten zugewiesen. ThisCategoryHasNoProject=Mit dieser Kategorie ist kein Projekt verknüpft. CategId=Schlagwort / Kategorie ID +CatSupList=Liste der Lieferantenschlagworte / -kategorien CatCusList=Liste der Kunden-/ Interessentenschlagworte / -kategorien CatProdList=Liste der Produktschlagworte / -kategorien CatMemberList=Liste der Mitgliederschlagworte / -kategorien @@ -64,6 +73,7 @@ CatProJectLinks=Verknüpfungen zwischen Projekten und Schlagwörtern / Kategorie ExtraFieldsCategories=Ergänzende Eigenschaften CategoriesSetup=Suchwörter/Kategorien Einrichten CategorieRecursiv=Automatisch mit übergeordnetem Schlagwort / Kategorie verbinden +CategorieRecursivHelp=Wenn aktiviert, wird das Produkt auch zur übergeordneten Kategorie zugewiesen, wenn es einer Unterkategorie zugewiesen wird. AddProductServiceIntoCategory=Folgendes Produkt / folgende Leistung hinzufügen ShowCategory=Zeige Schlagwort / Kategorie ChooseCategory=Wähle die Kategorie. diff --git a/htdocs/langs/de_CH/commercial.lang b/htdocs/langs/de_CH/commercial.lang index 3cc56c712d1..d0f7a56779e 100644 --- a/htdocs/langs/de_CH/commercial.lang +++ b/htdocs/langs/de_CH/commercial.lang @@ -1,14 +1,21 @@ # Dolibarr language file - Source file is en_US - commercial Commercial=Vertrieb CommercialArea=Vertriebs - Übersicht +DeleteAction=Löschen eines Ereignis NewAction=Neue/r Termin/Aufgabe ConfirmDeleteAction=Willst du dieses Ereignis wirklich löschen? CardAction=Ereignisse Übersicht ActionOnCompany=Verknüpfte Firma TaskRDVWith=Treffen mit %s +ShowTask=Zeige Aufgabe +ShowAction=Ereignisse anzeigen SaleRepresentativesOfThirdParty=Vertriebsmitarbeiter des Partners +ShowCustomer=Zeige Kunden +ShowProspect=Zeige Interessent LastDoneTasks=Die neuesten %s erledigten Aufgaben. StatusActionDone=Abgeschlossen +ActionAC_FAX=Fax versenden +ActionAC_PROP=Angebot senden ActionAC_EMAIL_IN=E-Mail Eingang ActionAC_RDV=Treffen ActionAC_INT=Eingriff vor Ort @@ -17,6 +24,9 @@ ActionAC_CLO=Schliessen ActionAC_COM=Kundenbestellung per Post verschicken ActionAC_SUP_ORD=Lieferantenbestellung per Post senden ActionAC_SUP_INV=Lieferantenrechnung per Post senden +Stats=Verkaufsstatistik +StatusProsp=Interessenten Status +NoLimit=Kein Limit ToOfferALinkForOnlineSignature=Link zur Digitalen Unterschrift WelcomeOnOnlineSignaturePage=Willkommen auf der Seite zum Offerten von %s zu aktzeptieren. ThisScreenAllowsYouToSignDocFrom=Hier kannst du die Offerte akzeptieren, unterzeichen oder zurückweisen. diff --git a/htdocs/langs/de_CH/companies.lang b/htdocs/langs/de_CH/companies.lang index 1565f2d23e9..bbfe4ef8af3 100644 --- a/htdocs/langs/de_CH/companies.lang +++ b/htdocs/langs/de_CH/companies.lang @@ -5,7 +5,6 @@ ConfirmDeleteCompany=Willst du diesen Geschäftspartner und alle damit verbunden ConfirmDeleteContact=Willst du diesen Kontakt und alle damit verbundenen Informationen wirklich löschen? MenuNewThirdParty=Erzeuge Geschäftspartner MenuNewCustomer=Erzeuge Kunde -MenuNewProspect=Erzeuge Lead MenuNewSupplier=Erzeuge Lieferant NewCompany=Erzeuge Unternehmen (Lead / Kunde / Lieferant) NewThirdParty=Erzeuge Geschäftspartner (Lead / Kunde / Lieferant) @@ -16,10 +15,12 @@ IdThirdParty=Geschäftspartner ID IdCompany=Unternehmens ID IdContact=Kontakt ID ThirdPartyContact=Geschäftspartner-Kontakt +Companies=Unternehmen CountryIsInEEC=EU - Staat PriceFormatInCurrentLanguage=Währungsanzeige dieser Sprache ThirdPartyName=Name des Geschäftspartners ThirdPartyEmail=E-Mail des Geschäftspartners +ThirdPartyProspectsStats=Interessenten Statistik ThirdPartyType=Typ des Geschäftspartners ToCreateContactWithSameName=Erzeuge einen Kontakt mit den selben Angaben, wie der Geschäftspartner. Meistens (auch wenn der Partner eine natürliche Person ist), braucht es das nicht. ReportByMonth=Monatsbericht @@ -27,6 +28,7 @@ ReportByCustomers=Kundenbericht PostOrFunction=Position NatureOfThirdParty=Typ des Geschäftspartners Region-State=Land / Region +CountryCode=Ländercode PhoneShort=Telefon No_Email=E-Mail kampagnen ablehnen DefaultLang=Standardsprache @@ -37,6 +39,7 @@ CopyAddressFromSoc=Übernehme die Adresse vom Geschäftspartner ThirdpartyNotCustomerNotSupplierSoNoRef=Hoppla, der Partner ist weder Kunde noch Lieferant, keine Objekte zum Verknüpfen verfügbar. ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Hoppla, der Partner ist weder Kunde noch Lieferant, keine Rabatte verfügbar. PaymentBankAccount=Bankkonto für Zahlung +OverAllInvoices=Rechnungen OverAllSupplierProposals=Generelle Preisanfragen LocalTax1IsUsed=Zweite Steuer verwenden LocalTax2IsUsed=Dritte Steuer nutzen @@ -73,29 +76,56 @@ ProfId3LU=Id. Prof. 3 ProfId4LU=Id. Prof. 4 ProfId5LU=Id. Prof. 5 ProfId6LU=Id. Prof. 6 +ProfId5MA=Id prof. 5 (C.I.C.E) ProfId4NL=- ProfId2PT=Prof Id 2 (Social Security Number) ProfId3PT=Prof Id 3 (Commercial Record-Nummer) ProfId4PT=Prof Id 4 (Konservatorium) ProfId2TN=Prof Id 2 (Geschäftsjahr matricule) ProfId3TN=Prof Id 3 (Douane-Code) +ProfId1US=Employer Identification Number (FEIN) ProfId2US=Id. Prof. 6 ProfId3US=Id. Prof. 6 ProfId4US=Id. Prof. 6 ProfId5US=Id. Prof. 6 ProfId6US=Id. Prof. 6 ProfId1RU=Prof ID 1 (OGRN) -ProspectCustomer=Lead / Kunde +ProfId3DZ=TIN – Steuer-Identifikationsnummer (EU) +VATIntra=MWST - Nummer +VATIntraShort=MWST - Nummer +VATReturn=MWST Rückerstattung CustomerCard=Kundenkarte CustomerRelativeDiscountShort=Rabatt rel. CustomerAbsoluteDiscountShort=Rabatt abs. CompanyHasNoRelativeDiscount=Dieser Kunde hat standardmässig keinen relativen Rabatt +HasRelativeDiscountFromSupplier=Dieser Lieferant gibt standardmässig %s%% Rabatt. +HasNoRelativeDiscountFromSupplier=Du hast keinen Standardrabatt bei diesem Lieferanten. +CompanyHasAbsoluteDiscount=Dieser Kunde hat noch Rabatt-Gutschriften über %s %s +CompanyHasDownPaymentOrCommercialDiscount=Dieser Kunde hat noch Rabatt-Gutschriften über %s %s +HasNoAbsoluteDiscountFromSupplier=Du hast keine Gutschriften von diesem Lieferanten übrig. +HasAbsoluteDiscountFromSupplier=Du hast bei diesem Lieferanten noch %s %s Gutschriften (Gutscheine oder Anzahlungen) zur Verfügung. +HasDownPaymentOrCommercialDiscountFromSupplier=Du hast bei diesem Lieferanten noch %s %s Gutschriften (kaufmännisch, Anzahlungen) zur Verfügung. +HasCreditNoteFromSupplier=Du hast Gutscheine über %s%s von diesem Lieferanten. +CustomerAbsoluteDiscountAllUsers=Absolute Kundenrabatte (von allen Vertretern gewährt) +CustomerAbsoluteDiscountMy=Absolute Kundenrabatte (von dir gewährt) +SupplierAbsoluteDiscountAllUsers=Absolute Lieferantenrabatte (von allen Vertretern angegeben) +SupplierAbsoluteDiscountMy=Absolute Lieferantenrabatte (von dir selbst eingegeben) +AddContact=Kontakt erstellen +AddContactAddress=Kontakt/Adresse erstellen ContactId=Kontakt ID +FromContactName=Name NoContactDefinedForThirdParty=Für diesen Geschäftspartner ist kein Kontakt eingetragen NoContactDefined=Kein Kontakt vorhanden AddThirdParty=Geschäftspartner erstellen +CustomerCodeDesc=Kundennummer, eindeutig für jeden Kunden +SupplierCodeDesc=Lieferantennummer, eindeutig für jeden Lieferanten RequiredIfCustomer=Erforderlich falls Geschäftspartner Kunde oder Interessent ist +RequiredIfSupplier=Erforderlich, wenn der Partner Lieferant ist +ValidityControledByModule=Durch Modul validiert +ListOfThirdParties=Geschäftspartner +ShowCompany=Geschäftspartner anzeigen ShowContact=Zeige Kontaktangaben +ContactsAllShort=Alle (Kein Filter) ContactForOrdersOrShipments=Bestellungs- oder Lieferkontakt ContactForProposals=Offertskontakt NoContactForAnyOrder=Kein Kontakt für Bestellungen @@ -103,16 +133,60 @@ NoContactForAnyOrderOrShipments=Dieser Kontakt ist kein Kontakt für eine Bestel NoContactForAnyProposal=Kein Kontakt für Offerte NoContactForAnyContract=Kein Kontakt für Verträge NoContactForAnyInvoice=Dieser Kontakt ist kein Kontakt für jegliche Rechnung +NewContactAddress=Neuer Kontakt / Adresse +MyContacts=Meine Kontakte +ThisUserIsNot=Dieser Benutzer ist weder ein Lead, Kunde, noch Lieferant +VATIntraCheckDesc=Der Link %s frägt die MWST - Nummer im Europäischen Verzeichnis (VIES) ab. Deshalb muss die MWST Nummer das Länderprefix haben. +VATIntraCheckableOnEUSite=Innergemeinschaftliche MWST Nummer überprüfen (EU Website) +VATIntraManualCheck=MWST - Nummer manuell überprüfen lassen: %s. +NorProspectNorCustomer=Weder Interessent noch Kunde +ContactPrivate=Privat +ContactPublic=Öffentlich OthersNotLinkedToThirdParty=Andere, nicht mit einem Geschäftspartner verknüpfte Projekte TE_GROUP=Grossunternehmen +TE_WHOLE=Distributor +StatusProspect-1=Nicht kontaktieren +StatusProspect0=Noch kein Kontaktversuch +StatusProspect3=Erfolgreich kontaktiert +ProspectsByStatus=Leads nach Status +NoParentCompany=Keine Mutterfirma ContactNotLinkedToCompany=Kontakt keinem Geschäftspartner zugeordnet DolibarrLogin=Dolibarr Benutzername +ExportDataset_company_1=Geschäftspartner und ihre Eigenschaften +ExportDataset_company_2=Kontakte und deren Eigenschaften +ImportDataset_company_1=Geschäftspartner und deren Eigenschaften +ImportDataset_company_2=Zusätzliche Partnerkontakte und -attribute +ImportDataset_company_3=Partner - Bankverbindungen +ImportDataset_company_4=Partnervertreter (Weise Vertreter Partnern zu) +PriceLevel=Preisniveau +PriceLevelLabels=Preisniveau - Labels ConfirmDeleteFile=Sind Sie sicher dass Sie diese Datei löschen möchten? AllocateCommercial=Vertriebsmitarbeiter zuweisen FiscalMonthStart=Ab Monat des Geschäftsjahres +YouMustAssignUserMailFirst=Für E-Mail - Benachrichtigung hinterlegst du bitte zuerst eine E-Mail Adresse im Benutzerprofil. YouMustCreateContactFirst=Sie müssen erst E-Mail-Kontakte beim Geschäftspartner anlegen, um E-Mail-Benachrichtigungen hinzufügen zu können. +ListSuppliersShort=Liste Lieferanten +ListProspectsShort=Liste Interessenten +ListCustomersShort=Kundenliste +LastModifiedThirdParties=Die letzten %s bearbeiteten Partner +UniqueThirdParties=Anzahl Geschäftspartner InActivity=Offen +ActivityCeased=Inaktiv +ThirdPartyIsClosed=Der Partner ist inaktiv. OutstandingBillReached=Kreditlimit erreicht +OrderMinAmount=Mindestbestellmenge +MonkeyNumRefModelDesc=Generiere die Kundennummer im Format %syymm-nnnn und die Lieferantennummer als %syymm-nnnn. (y=Jahr; m=Monat; n=fortlaufende Zahl). MergeOriginThirdparty=Geschäftspartner duplizieren (Geschäftspartner, den Sie löschen möchten) MergeThirdparties=Zusammenführen von Geschäftspartnern +ConfirmMergeThirdparties=Willst du diesen Partner wirklich mit dem aktuellen Verbinden?\nAlle verknüpften Objekte werden dabei übernommen und dann der gewählte Partner gelöscht. +ThirdpartiesMergeSuccess=Ich habe die Partner erfolgreich zusammengeführt. SaleRepresentativeLogin=Login des Verkaufsmitarbeiters +SaleRepresentativeFirstname=Vorname des Vertreters +SaleRepresentativeLastname=Nachname des Vertreters +ErrorThirdpartiesMerge=Hoppla, da ist etwas beim Löschen des Partners schief gelaufen...\nAber ich habe die Verknüpfung Rückgängig gemacht.\nBitte prüfe die Logs. +NewCustomerSupplierCodeProposed=Diese Nummer ist schon im Gebrauch. Wähle eine andere. +PaymentTypeCustomer=Kundenzahlung +PaymentTermsCustomer=Zahlungsbedingungen für Kunden +PaymentTypeSupplier=Lieferantenzahlung +PaymentTermsSupplier=Zahlungsbedingungen für Lieferanten +MulticurrencyUsed=Benutze Multiwährungsfähigkeit diff --git a/htdocs/langs/de_CH/deliveries.lang b/htdocs/langs/de_CH/deliveries.lang index 857d52bd6b2..102ee9f3a78 100644 --- a/htdocs/langs/de_CH/deliveries.lang +++ b/htdocs/langs/de_CH/deliveries.lang @@ -1,5 +1,16 @@ # Dolibarr language file - Source file is en_US - deliveries -DeliveryRef=Ref. Lieferung +DeliveryRef=Lieferungsnummer +DeliveryCard=Lieferschein +DeliveryOrder=Lieferauftrag +CreateDeliveryOrder=Erzeuge Lieferschein DeliveryStateSaved=Lieferstatus gespeichert +ValidateDeliveryReceiptConfirm=Bist du sicher, dass du diesen Lieferschein frei geben willst? +DeleteDeliveryReceiptConfirm=Bist du sicher, dass du den Lieferschein %s löschen willst? +TrackingNumber=Sendungsverfolgungsnummer +DeliveryNotValidated=Die Lieferung ist nicht freigegeben StatusDeliveryValidated=Erhalten +NameAndSignature=Name / Unterschrift +Deliverer=Lieferant +ErrorStockIsNotEnough=Der Lagerbestand ist zu klein ShowReceiving=Lieferschein anzeigen +NonExistentOrder=Nicht vorhandene Bestellung diff --git a/htdocs/langs/de_CH/dict.lang b/htdocs/langs/de_CH/dict.lang index 7bf16b52f02..027873e4cf9 100644 --- a/htdocs/langs/de_CH/dict.lang +++ b/htdocs/langs/de_CH/dict.lang @@ -1,6 +1,13 @@ # Dolibarr language file - Source file is en_US - dict +CountryGB=England CountryBY=Weissrussland CountryHM=Heard und McDonald Inseln +CountryKG=Kirgisien +CountryMM=Myanmar +CountryTC=Turks- und Caicosinseln +CountryAE=Vereinigte Arabische Emirate +CurrencyCentEUR=Cents +DemandReasonTypeSRC_SRC_CUSTOMER=Einkaufskontakt ExpCycloCat=Motorfahrrad ExpMotoCat=Töff ExpAuto3CV=3 PS diff --git a/htdocs/langs/de_CH/errors.lang b/htdocs/langs/de_CH/errors.lang index b3df9508811..a4be143308a 100644 --- a/htdocs/langs/de_CH/errors.lang +++ b/htdocs/langs/de_CH/errors.lang @@ -1,12 +1,29 @@ # Dolibarr language file - Source file is en_US - errors +ErrorBadEMail=E-Mail%s ist nicht korrekt. ErrorBadValueForParamNotAString=Ungültiger Wert für ihre Parameter. Das passiert normalerweise, wenn die Übersetzung fehlt. +ErrorFailToCopyDir=Konnte das Verzeichnis '%s' nicht nach '%s' kopieren. ErrorFailToRenameFile=Konnte die Datei '%s' nicht in '%s' umzubenennen. +ErrorFailToMakeReplacementInto=Ich konnte die Ersetzungen nicht in die Datei '%s' schreiben... +ErrorFailToGenerateFile=Ich konnte die Datei '%s' nicht erzeugen... +ErrorBadThirdPartyName=Ungültige Geschäftspartner - Bezeichnung +ErrorBadBarCodeSyntax=Falsche Syntax für den Strichcode. Vielleicht hast du eine falsche Strichcode - Art eingestellt oder eine falsche Strichcodemaske definiert? +ErrorBarCodeRequired=Strichcode erforderlich +ErrorBarCodeAlreadyUsed=Diesen Strichcode verwende ich bereits. +ErrorBadSupplierCodeSyntax=Die eingegebene Lieferanten Nr. ist unzulässig. +ErrorSupplierCodeRequired=Lieferanten-Nr. erforderlich +ErrorSupplierCodeAlreadyUsed=Diese Lieferanten Nr. ist bereits vergeben. ErrorBadValueForParameter=Ungültiger Wert '%s' für Parameter '%s' +ErrorUserCannotBeDelete=Ich kann diesen Benutzer nicht löschen... Vieleicht ist er noch mit anderen Dolibarr - Objekten verknüpft? ErrorFieldsRequired=Ein oder mehrere erforderliche Felder wurden nicht ausgefüllt- +ErrorSubjectIsRequired=Bitte gib einen E-Mail - Betreff an. ErrorFileSizeTooLarge=Die Grösse der gewählten Datei übersteigt den zulässigen Maximalwert. ErrorSizeTooLongForIntType=Die Grösse überschreitet das Maximum für den Typ 'int' (%s Ziffern maximal) ErrorSizeTooLongForVarcharType=Die Grösse überschreitet das Maximum für den Typ 'string' (%s Zeichen maximal) ErrorNoValueForCheckBoxType=Bitte Wert für Checkbox-Liste eingeben +ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld %s darf keine Sonderzeichen, Grossbuchstaben enthalten. Ebenfalls darf es nicht allein aus Ziffern bestehen. +ErrorFieldMustHaveXChar=Das Feld %s muss mindestens %s Zeichen haben. +ErrorCantSaveADoneUserWithZeroPercentage=Ereignisse können nicht mit Status "Nicht begonnen" gespeichert werden, wenn das Feld "Erledigt durch" schon ausgefüllt ist. +ErrorPleaseTypeBankTransactionReportName=Gib hier den Bankkontoauszug im Format YYYYMM oder YYYYMMDD an, in den du diesen Eintrag eintragen willst. ErrorModuleSetupNotComplete=Das Setup des Moduls scheint unvollständig zu sein. Führen Sie nochmal das Setup aus um das Modul zu vervollständigen. ErrorProdIdAlreadyExist=%s wurde bereits einem Geschäftspartner zugewiesen ErrorForbidden3=Es scheint keine ordnungsgemässe Authentifizierung für das System vorzuliegen. Bitte werfen Sie einen Blick auf die Systemdokumentation um die entsprechenden Authentifizierungsoptionen zu verwalten (htaccess, mod_auth oder andere...) diff --git a/htdocs/langs/de_CH/interventions.lang b/htdocs/langs/de_CH/interventions.lang index 04bf236f996..4daf054e896 100644 --- a/htdocs/langs/de_CH/interventions.lang +++ b/htdocs/langs/de_CH/interventions.lang @@ -4,6 +4,7 @@ Interventions=Arbeitseinsätze InterventionCard=Einsatzkarte NewIntervention=Neuer Einsatz AddIntervention=Einsatz erstellen +ChangeIntoRepeatableIntervention=Umstellen auf wiederkehrender Arbeitseinsatz ListOfInterventions=Liste der Arbeitseinsätze ActionsOnFicheInter=Aktionen zum Einsatz LastInterventions=Letzte %s Einsätze @@ -19,6 +20,8 @@ ConfirmValidateIntervention=Bist du sicher, dass du den Arbeitseinsatz %s ConfirmModifyIntervention=Bist du sicher, dass du diesen Arbeitseinsatz ändern willst? ConfirmDeleteInterventionLine=Bist du sicher, dass du diese Einsatzposition löschen willst? ConfirmCloneIntervention=Bist du sicher, dass du diesen Einsatz duplizieren willst? +NameAndSignatureOfInternalContact=Name / Unterschrift Ausführender +NameAndSignatureOfExternalContact=Name / Unterschrift Kunde DocumentModelStandard=Standard-Dokumentvorlage für Arbeitseinsätze InterventionCardsAndInterventionLines=Einsatz und Einsatzpositionen InterventionClassifyBilled=Auf "verrechnet" setzten @@ -26,6 +29,7 @@ InterventionClassifyUnBilled=Auf "nicht verrechnet" setzen InterventionClassifyDone=Auf "erledigt" setzen StatusInterInvoiced=Verrechnet SendInterventionRef=Einsatz %s einreichen +SendInterventionByMail=Einsatz per E-Mail versenden InterventionCreatedInDolibarr=Einsatz %s erstellt InterventionValidatedInDolibarr=Einsatz %s freigegeben InterventionModifiedInDolibarr=Einsatz %s geändert @@ -43,6 +47,8 @@ UseServicesDurationOnFichinter=Benutze Servicezeiten für Arbeitseinsätze aus B UseDurationOnFichinter=Versteckt das Feld "Dauer" auf der Einsatzkarte UseDateWithoutHourOnFichinter=Versteckt Stunden und Minuten im Datumsfeld von Einsatzkarten InterventionStatistics=Einsatzstatistik +NbOfinterventions=Anzahl Einsatzkarten +NumberOfInterventionsByMonth=Einsatzkarten pro Monat (Nach Freigabedatum) AmountOfInteventionNotIncludedByDefault=Der Aufwand für Einsätze ist im Normalfall nicht im Profit eingerechnet. Meistens wird das über die Zeiterfassung geregelt.\nDamit die Einsatz - Aufwände im Profit sichtbar werden, fügst du Unter Einstellungen -> Weitere Einstellungen die Option 'PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT' hinzu und setzest diese auf den Wert 1 InterId=Einsatz ID InterRef=Einsatz Ref. diff --git a/htdocs/langs/de_CH/main.lang b/htdocs/langs/de_CH/main.lang index 4064e5e9ec4..cbe2c53512c 100644 --- a/htdocs/langs/de_CH/main.lang +++ b/htdocs/langs/de_CH/main.lang @@ -131,6 +131,7 @@ AmountLT2=MwSt.-Betrag 3 PriceQtyMinHTCurrency=Mindestmengenpreis exkl. MWST Percentage=Prozentangabe TotalHTShort=Total exkl. MWST +TotalHT100Short=Total 100%% (exkl.) TotalHTShortCurrency=Total exkl. MWST in Originalwährung TotalTTCShort=Totalbetrag (inkl. MwSt.) TotalHT=Total exkl. Steuern @@ -164,7 +165,6 @@ ActionRunningNotStarted=Nicht begonnen ActionRunningShort=In Bearbeitung LatestLinkedEvents=Die neuesten %s verknüpften Vorgänge CompanyFoundation=Firma / Organisation -Accountant=Berater ContactsForCompany=Ansprechpartner/Adressen dieses Geschäftspartners ContactsAddressesForCompany=Ansprechpartner / Adressen zu diesem Geschäftspartner AddressesForCompany=Adressen für den Geschäftspartner @@ -268,9 +268,15 @@ ConfirmMassDeletionQuestion=Bist du sicher, dass du diese %s Einträge löschen ClassifyBilled=Verrechnet ClassifyUnbilled=Auf "Nicht verrechnet" setzen Progress=Fortschritt +ProgressShort=Fortschr. BackOffice=Dolibarr ExportFilteredList=Exportiere gefilterte Positionen ExportList=Exportiere Positionen +IncludeDocsAlreadyExported=Beziehe bereits exportierte Dokumente mit ein +ExportOfPiecesAlreadyExportedIsEnable=Bereits exportierte Dateien erneut exportieren ist "Ein". +ExportOfPiecesAlreadyExportedIsDisable=Bereits exportierte Dateien erneut exportieren ist "Aus". +AllExportedMovementsWereRecordedAsExported=Alles erfolgreich exportiert:-) +NotAllExportedMovementsCouldBeRecordedAsExported=Nicht alles konnte korrekt exportiert werden:-( Calendar=Kalender GroupBy=Sortieren nach ViewFlatList=Einfache Liste anzeigen @@ -279,6 +285,7 @@ SomeTranslationAreUncomplete=Du siehst ungenaue Übersetzungen oder unvollständ DirectDownloadLink=Direkter externer Downloadlink DirectDownloadInternalLink=Direkter Downloadlink, wenn eingeloggt und die Rechte vorhanden sind. ActualizeCurrency=Aktualisiere Währung +ModuleBuilder=Modul und Applikationsentwicklungsumgebung SetMultiCurrencyCode=Setze Währung BulkActions=Stapelverarbeitungen ClickToShowHelp=Clicke hier für Kontexthilfe. @@ -328,3 +335,10 @@ YouAreCurrentlyInSandboxMode=Wir sind aktuell im %s "sandbox" Modus Inventory=Inventar AnalyticCode=Analysecode TMenuMRP=UVP +ShowMoreInfos=Mehr Informationen +NoFilesUploadedYet=Bitte lade zuerst ein Dokument hoch. +SeePrivateNote=Privatnotiz Einblenden +PaymentInformation=Zahlungsinformationen +ValidFrom=Gültig von +ValidUntil=Gültig bis +NoRecordedUsers=Keine Benutzer diff --git a/htdocs/langs/de_CH/members.lang b/htdocs/langs/de_CH/members.lang index f1606b59016..27d4cf7781a 100644 --- a/htdocs/langs/de_CH/members.lang +++ b/htdocs/langs/de_CH/members.lang @@ -19,6 +19,7 @@ MemberType=Mitgliederart MembersTypes=Mitgliederarten MemberStatusDraft=Entwürfe (benötigen Bestätigung) MemberStatusDraftShort=Entwurf +NewSubscriptionDesc=Mit diesem Formular können Sie Ihr Abonnement als neues Mitglied der Stiftung registrieren. Wenn Sie Ihr Abonnement verlängern möchten (falls Sie bereits Mitglied sind), wenden Sie sich stattdessen per E-Mail an den Stiftungsrat. %s. Subscriptions=Abonnemente ListOfSubscriptions=Liste der Abonnemente NewMemberType=Neue Mitgliederart @@ -26,6 +27,15 @@ SubscriptionRequired=Abonnement notwendig VoteAllowed=Abstimmen erlaubt ShowSubscription=Abonnement anzeigen CardContent=Inhalt Ihrer Mitgliederkarte +DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Betreff der Benachrichtigungs-E-Mail bei automatischer Anmeldung eines Gastes +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Inhalt der Benachrichtigungs-E-Mail, bei automatischer Anmeldung eines Gastes +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=E-Mail-Vorlage zum Senden von E-Mails an ein Mitglied bei Mitglieder-Autoabonnements +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=E-Mail-Vorlage zum Senden von E-Mails an ein Mitglied bei der Mitgliederüberprüfung +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=E-Mail-Vorlage zum Senden einer E-Mail an ein Mitglied bei der Aufnahme eines neuen Abonnements +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=E-Mail-Vorlage zum Senden einer E-Mail-Erinnerung, wenn das Abonnement abläuft +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=E-Mail-Vorlage zum Senden von E-Mails an ein Mitglied bei Kündigung der Mitgliedschaft +DescADHERENT_MAIL_FROM=Absender E-Mail für automatische E-Mails +ShowTypeCard=Typ anzeigen '%s' HTPasswordExport=htpassword Datei generieren MembersAndSubscriptions=Mitglieder und Abonnemente SubscriptionPayment=Zahlung des Mitgliedsbeitrags diff --git a/htdocs/langs/de_CH/orders.lang b/htdocs/langs/de_CH/orders.lang index 586ad1cdaef..259d17f8c74 100644 --- a/htdocs/langs/de_CH/orders.lang +++ b/htdocs/langs/de_CH/orders.lang @@ -1,9 +1,12 @@ # Dolibarr language file - Source file is en_US - orders OrdersArea=Kundenauftrags-Übersicht OrderCard=Bestell-Karte +CustomersOrders=Kundenaufträge CancelOrder=Bestellung verwerfen +ShowOrder=Zeige Bestellung NoOrder=Keine Bestellung CloseOrder=Bestellung schliessen +OrderMode=Bestellweise OtherOrders=Bestellungen Anderer Error_OrderNotChecked=Keine zu verrechnenden Bestellungen ausgewählt OrderByEMail=E-Mail diff --git a/htdocs/langs/de_CH/other.lang b/htdocs/langs/de_CH/other.lang index ec3c0d29495..036a386eede 100644 --- a/htdocs/langs/de_CH/other.lang +++ b/htdocs/langs/de_CH/other.lang @@ -1,11 +1,16 @@ # Dolibarr language file - Source file is en_US - other NumberingShort=Nr +ToolsDesc=Alle Werkzeuge, die nicht in anderen Menüeinträgen enthalten sind, werden hier gruppiert.
Alle Werkzeuge können über das linke Menü aufgerufen werden. Notify_COMPANY_SENTBYMAIL=Von Geschäftspartner-Karte gesendete Mails Notify_FICHEINTER_VALIDATE=Eingriff freigegeben Notify_FICHINTER_ADD_CONTACT=Kontakt zu Einsatz hinzugefügt Notify_FICHINTER_SENTBYMAIL=Service per E-Mail versendet TotalSizeOfAttachedFiles=Gesamtgrösse der angehängten Dateien/Dokumente MaxSize=Maximalgrösse +PredefinedMailContentContract=__(Hallo)__\n\n\n__(Mit freundlichen Grüssen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentThirdparty=__ (Hallo) __ __ (Mit freundlichen Grüssen) __ __USER_SIGNATURE__ +PredefinedMailContentContact=__ (Hallo) __ __ (Mit freundlichen Grüssen) __ __USER_SIGNATURE__ +PredefinedMailContentUser=__ (Hallo) __ __ (Mit freundlichen Grüssen) __ __USER_SIGNATURE__ ChooseYourDemoProfil=Bitte wählen Sie das Demo-Profil das Ihrem Einsatzgebiet am ehesten entspricht ModifiedById=Letzte Änderung durch User ModifiedByLogin=Letzte Änderung durch Userlogin diff --git a/htdocs/langs/de_CH/paybox.lang b/htdocs/langs/de_CH/paybox.lang index 5106ba52404..d6f6464804c 100644 --- a/htdocs/langs/de_CH/paybox.lang +++ b/htdocs/langs/de_CH/paybox.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - paybox ThisIsInformationOnPayment=Informationen zu der vorzunehmenden Zahlunge -YourPaymentHasBeenRecorded=Hiermit Bestätigen wir die Zahlung ausgeführt wurde. Vielen Dank. +YourPaymentHasBeenRecorded=Diese Seite bestätigt, dass Ihre Zahlung erfasst wurde. Vielen Dank. PAYBOX_CGI_URL_V2=Url für das Paybox Zahlungsmodul "CGI Modul" VendorName=Name des Anbieters diff --git a/htdocs/langs/de_CH/printing.lang b/htdocs/langs/de_CH/printing.lang index d8736396f5c..6ef248bee04 100644 --- a/htdocs/langs/de_CH/printing.lang +++ b/htdocs/langs/de_CH/printing.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - printing Module64000Desc=Direktdrucksystem aktivieren PrintingSetup=Direktdrucksystem einrichten +PrintingDesc=Dieses Modul kann Dokumente direkt an einen Drucker schicken. Der Druckbutton erscheint in entsprechenden Modulen. MenuDirectPrinting=Direktdruck - Jobs PrintingDriverDesc=Konfigurationsvariablen für den Druckertreiber. FileWasSentToPrinter=Die Datei %s wurde an den Drucker gesendet @@ -9,8 +10,10 @@ NoActivePrintingModuleFound=Ich habe keinen Druckertreiber gefunden. Bitte kontr PleaseSelectaDriverfromList=Wähle einen Treiber aus der Liste. PleaseConfigureDriverfromList=Richte den gewählten Druckertreiber ein. PRINTGCP_INFO=Google OAuth Schnittstelle einrichten +PrintGCPDesc=Dieser Treiber schickt Dokumente via Google Cloud Print an einen Drucker. GCP_OwnerName=Besitzer GCP_connectionStatus=On- oder Offline? +PrintIPPDesc=Dieser Treiber schickt Dokumente direkt an einen CUPS - Drucker in einer Linuxumgebung. PRINTIPP_USER=Benutzer NoDefaultPrinterDefined=Du hast keinen Standarddrucker defininert. DefaultPrinter=Standarddrucker @@ -20,6 +23,7 @@ IPP_State_reason1=Statusgrund1 IPP_BW=schwarz / weiss IPP_Media=Druckmedium DirectPrintingJobsDesc=Hier siehst du die laufenden Druckjobs aller verfügbaren Drucker. +GoogleAuthNotConfigured=Google OAuth ist nicht konfiguriert. Aktiviere das Modul OAuth und trage dort Google ID / Secret ein. GoogleAuthConfigured=Die Google OAuth - Zugangsdaten sind im Modul OAuth eingetragen. PrintingDriverDescprintgcp=Konfigurationsvariablen für Google Cloud Print. PrintingDriverDescprintipp=Cups Driver - Konfigurationsvariablen diff --git a/htdocs/langs/de_CH/propal.lang b/htdocs/langs/de_CH/propal.lang index 7d3aff55e84..a663ec20a9e 100644 --- a/htdocs/langs/de_CH/propal.lang +++ b/htdocs/langs/de_CH/propal.lang @@ -1,10 +1,14 @@ # Dolibarr language file - Source file is en_US - propal +ProposalsOpened=Offene Angebote ProposalCard=Angebotskarte +NewPropal=Neues Angebot Prospect=Lead LastPropals=%s neueste Angebote ProposalsStatistics=Angebote Statistiken PropalsOpened=Offen +PropalStatusSigned=Unterzeichnet (ist zu verrechnen) PropalsToClose=Zu schliessende Angebote +ListOfProposals=Liste der Angebote DefaultProposalDurationValidity=Standardmässige Gültigkeitsdatuer (Tage) AvailabilityPeriod=Verfügbarkeitszeitraum SetAvailability=Verfügbarkeitszeitraum definieren diff --git a/htdocs/langs/de_CH/users.lang b/htdocs/langs/de_CH/users.lang index 174caca5cdd..ab3eb40ac4c 100644 --- a/htdocs/langs/de_CH/users.lang +++ b/htdocs/langs/de_CH/users.lang @@ -37,3 +37,4 @@ DisabledInMonoUserMode=Im Wartungsmodus deaktiviert UserAccountancyCode=Buchhaltungskonto zum Benutzer DateEmployment=Datum der Anstellung DateEmploymentEnd=Datum des Austrittes +CantDisableYourself=Du kannst dein eigenes Benutzerkonto nicht löschen. diff --git a/htdocs/langs/de_CH/website.lang b/htdocs/langs/de_CH/website.lang index 82ca7baa8f4..c01a50b4b9f 100644 --- a/htdocs/langs/de_CH/website.lang +++ b/htdocs/langs/de_CH/website.lang @@ -4,3 +4,4 @@ WEBSITE_CSS_URL=URL zu externer CSS Datei ViewSiteInNewTab=Webauftritt in neuem Tab anzeigen SetAsHomePage=Als Startseite definieren WebsiteAccounts=Webseitenkonten +BackToListOfThirdParty=Zurück zur Liste für Partner diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index f9e9e1e9380..36aaddcf541 100644 --- a/htdocs/langs/de_DE/accountancy.lang +++ b/htdocs/langs/de_DE/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Buchhaltungskonten in Wartestellung DONATION_ACCOUNTINGACCOUNT=Buchhaltungskonto für die Buchung von Spenden @@ -302,9 +303,9 @@ InitAccountancyDesc=Auf dieser Seite kann ein Sachkonto für Artikel und Dienstl DefaultBindingDesc=Diese Seite kann verwendet werden, um ein Standardkonto festzulegen, das für die Verknüpfung von Transaktionsdatensätzen zu Lohnzahlungen, Spenden, Steuern und Mwst. verwendet werden soll, wenn kein bestimmtes Konto angegeben wurde. DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. Options=Optionen -OptionModeProductSell=Modus Verkauf -OptionModeProductSellIntra=Mode sales exported in EEC -OptionModeProductSellExport=Mode sales exported in other countries +OptionModeProductSell=Modus Verkäufe Inland +OptionModeProductSellIntra=Modus Verkäufe in EU/EWG +OptionModeProductSellExport=Modus Verkäufe Export (ausserhalb EU/EWG) OptionModeProductBuy=Modus Einkäufe OptionModeProductSellDesc=Alle Artikel mit Sachkonten für Vertrieb anzeigen OptionModeProductSellIntraDesc=Show all products with accounting account for sales in EEC. @@ -317,9 +318,9 @@ WithoutValidAccount=Mit keinem gültigen dedizierten Konto WithValidAccount=Mit gültigen dedizierten Konto ValueNotIntoChartOfAccount=Dieser Wert für das Buchhaltungs-Konto existiert nicht im Kontenplan AccountRemovedFromGroup=Account removed from group -SaleLocal=Local sale -SaleExport=Export sale -SaleEEC=Sale in EEC +SaleLocal=Verkauf Inland +SaleExport=Verkauf Export (ausserhalb EWG) +SaleEEC=Verkauf in EU/EWG ## Dictionary Range=Bereich von Sachkonten diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index 7006ed146e8..c3449107abb 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -149,7 +149,7 @@ SystemToolsAreaDesc=In diesem Bereich finden Sie die Verwaltungsfunktionen. Verw Purge=Bereinigen PurgeAreaDesc=Auf dieser Seite können Sie alle von Dolibarr erzeugten oder gespeicherten Dateien (temporäre Dateien oder alle Dateien im Verzeichnis %s ) löschen. Die Verwendung dieser Funktion ist in der Regel nicht erforderlich. Es wird als Workaround für Benutzer bereitgestellt, deren Dolibarr von einem Anbieter gehostet wird, der keine Berechtigungen zum löschen von Dateien anbietet, die vom Webserver erzeugt wurden. PurgeDeleteLogFile=Löschen der Protokolldateien, einschließlich %s, die für das Syslog-Modul definiert wurden (kein Risiko Daten zu verlieren) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=Löschen Sie alle temporären Dateien (kein Datenverlustrisiko). Hinweis: Das Löschen erfolgt nur, wenn das temporäre Verzeichnis vor über 24 Stunden erstellt wurde. PurgeDeleteTemporaryFilesShort=temporäre Dateien löschen PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis: %s löschen:
Dadurch werden alle erzeugten Dokumente löschen, die sich auf verknüpfte (Dritte, Rechnungen usw....), Dateien, die in das ECM Modul hochgeladen wurden, Datenbank, Backup, Dumps und temporäre Dateien beziehen. PurgeRunNow=Jetzt bereinigen @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Kontrollkästchen / Dropdownliste aus DB-Tabelle (meh ExtrafieldLink=Verknüpftes Objekt ComputedFormula=Berechnetes Feld ComputedFormulaDesc=Sie können hier eine Formel eingeben, indem Sie andere Eigenschaften des Objekts oder eine beliebige PHP-Codierung verwenden, um einen dynamisch berechneten Wert zu erhalten. Sie können alle PHP-kompatiblen Formeln verwenden, einschließlich des "?" Bedingungsoperator und folgendes globales Objekt: $ db, $ conf, $ langs, $ mysoc, $ user, $ object .
WARNUNG : Möglicherweise sind nur einige Eigenschaften von $ object verfügbar. Wenn Sie Eigenschaften benötigen, die nicht geladen sind, holen Sie sich das Objekt wie im zweiten Beispiel in Ihre Formel.
Wenn Sie ein berechnetes Feld verwenden, können Sie keinen Wert von der Schnittstelle eingeben. Wenn ein Syntaxfehler vorliegt, gibt die Formel möglicherweise auch nichts zurück.

Beispiel der Formel:
$ object-> id <10? round ($ object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2)

Beispiel zum erneuten Laden eines Objekts
(($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> fetch ($ obj-> id? $ obj-> id: ($ obj-> rowid? $ obj-> rowid: $ object-> id ))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

Ein weiteres Beispiel für eine Formel zum Erzwingen des Ladens eines Objekts und seines übergeordneten Objekts:
(($ reloadedobj = neue Aufgabe ($ db)) && ($ reloadedobj-> Abrufen ($ object-> id)> 0) && ($ secondloadedobj = neues Projekt ($ db)) && ($ secondloadedobj-> Abrufen ($ reloadedobj-> fk_project)> 0))? $ secondloadedobj-> ref: 'Übergeordnetes Projekt nicht gefunden' +Computedpersistent=Speichere berechnetes Feld +ComputedpersistentDesc=Berechnete Extrafelder werden in der Datenbank gespeichert, dennoch wird ihr Wert nur dann neu berechnet wenn sich das Objekt zu diesem Feld ändert. Falls das berechnete Feld von anderen Objekten oder globalen Daten abhängt, kann sein Wert falsch sein! ExtrafieldParamHelpPassword=Wenn Sie dieses Feld leer lassen, wird dieser Wert unverschlüsselt gespeichert (das Feld darf nur mit einem Stern auf dem Bildschirm ausgeblendet werden).
Stellen Sie 'auto'; ein, um die Standardverschlüsselungsregel zum Speichern des Kennworts in der Datenbank zu verwenden (dann ist der gelesene Wert nur der Hash, keine Möglichkeit, den ursprünglichen Wert abzurufen). ExtrafieldParamHelpselect=Die Liste der Werte muss aus Zeilen mit dem Format Schlüssel, Wert bestehen (wobei Schlüssel nicht '0' sein darf)

zum Beispiel:
1, value1
2, value2
Code3, Wert3
...

Damit die Liste von einer anderen ergänzenden Attributliste abhängt:
1, value1 | options_ parent_list_code : parent_key
2, value2 | options_ parent_list_code : parent_key

Um die Liste von einer anderen Liste abhängig zu machen:
1, value1 | parent_list_code : parent_key
2, value2 | parent_list_code : parent_key ExtrafieldParamHelpcheckbox=Die Liste der Werte muss aus Zeilen mit dem Format Schlüssel, Wert bestehen (wobei Schlüssel nicht '0' sein darf)

zum Beispiel:
1, value1
2, value2
3, value3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=Die Liste der Werte muss aus Zeilen mit dem Format Schl ExtrafieldParamHelpsellist=Die Liste der Werte stammt aus einer Tabelle
Syntax: table_name: label_field: id_field :: filter
Beispiel: c_typent: libelle: id :: filter

- idfilter ist notwendigerweise ein primärer int-Schlüssel
- Filter kann ein einfacher Test sein (z. B. aktiv = 1), um nur den aktiven Wert anzuzeigen
Sie können $ ID $ auch in Filtern verwenden, bei denen es sich um die aktuelle ID des aktuellen Objekts handelt
Verwenden Sie $ SEL $, um ein SELECT im Filter durchzuführen
Wenn Sie nach Extrafeldern filtern möchten, verwenden Sie die Syntax extra.fieldcode = ... (wobei field code der Code des Extrafelds ist)

Damit die Liste von einer anderen ergänzenden Attributliste abhängt:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Um die Liste von einer anderen Liste abhängig zu machen:
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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Bibliothek zum Erstellen von PDF-Dateien LocalTaxDesc=Einige Länder erheben möglicherweise zwei oder drei Steuern auf jede Rechnungsposition. Wenn dies der Fall ist, wählen Sie den Typ für die zweite und dritte Steuer und ihren Steuersatz. Mögliche Typen sind:
1: auf Produkte und Dienstleistungen ohne Mehrwertsteuer wird eine örtliche Steuer erhoben (die örtliche Steuer wird auf den Betrag ohne Mehrwertsteuer berechnet)
2: Für Produkte und Dienstleistungen einschließlich Mehrwertsteuer wird eine lokale Steuer erhoben (die lokale Steuer wird auf den Betrag + die Hauptsteuer berechnet).
3: auf Produkte ohne Mehrwertsteuer wird eine lokale Steuer erhoben (die lokale Steuer wird auf den Betrag ohne Mehrwertsteuer berechnet)
4: Für Produkte einschließlich Mehrwertsteuer wird eine lokale Steuer erhoben (die Mehrwertsteuer wird auf den Betrag + die Haupt-Mehrwertsteuer berechnet).
5: auf Dienstleistungen ohne Mehrwertsteuer wird eine lokale Steuer erhoben (die lokale Steuer wird auf den Betrag ohne Mehrwertsteuer berechnet)
6: Für Dienstleistungen einschließlich Mehrwertsteuer wird eine lokale Steuer erhoben (die lokale Steuer wird auf den Betrag und die Steuer berechnet). SMS=SMS @@ -624,13 +627,13 @@ Module20000Desc=Verwalten (erstellen, ablehnen, genehmigen) Sie die Urlaubsantr Module39000Name=Chargen- und Seriennummernverwaltung Module39000Desc=Verwaltung von Chargen- und Seriennummern sowie von Haltbarkeits- und Verkaufslimitdatum Module40000Name=Mehrere Währungen -Module40000Desc=Use alternative currencies in prices and documents +Module40000Desc=Nutze alternative Währungen bei Preisen und in Dokumenten Module50000Name=PayBox Module50000Desc=Bieten Sie Ihren Kunden Onlinezahlungen via PayBox an (Kredit- / Debitkarten). Dies kann verwendet werden, um Ihren Kunden Ad-hoc-Zahlungen oder Zahlungen in Bezug auf ein bestimmtes Dolibarr-Objekt (Rechnung, Bestellung usw.) zu ermöglichen. Module50100Name=einfaches POS-Kassensystem Module50100Desc=einfaches POS Kassenmodul (Simple POS) Module50150Name=Kassensystem TakePOS -Module50150Desc=Point of Sale module TakePOS (touchscreen POS). +Module50150Desc=Kassenterminal "TakePOS" (Kassenteminal mit Touchscreen) Module50200Name=PayPal Module50200Desc=Bieten Sie Kunden eine PayPal-Online-Zahlungsseite (PayPal-Konto oder Kredit- / Debitkarten). Dies kann verwendet werden, um Ihren Kunden Ad-hoc-Zahlungen oder Zahlungen in Bezug auf ein bestimmtes Dolibarr-Objekt (Rechnung, Bestellung usw.) zu ermöglichen. Module50300Name=Stripe @@ -668,7 +671,7 @@ Permission32=Produkte/Leistungen erstellen/bearbeiten Permission34=Produkte/Leistungen löschen Permission36=Projekte/Leistungen exportieren Permission38=Produkte exportieren -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission41=Lesen Sie Projekte und Aufgaben (gemeinsames Projekt und Projekte, für die ich Kontakt habe). Kann auch die für mich oder meine Hierarchie verbrauchte Zeit für zugewiesene Aufgaben eingeben (Arbeitszeittabelle) Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks Permission44=Projekte löschen (gemeinsame Projekte und Projekte, in denen ich Ansprechpartner bin) Permission45=Projekte exportieren @@ -719,7 +722,7 @@ Permission147=Statistiken einsehen Permission151=Bestellung mit Zahlart Lastschrift Permission152=Lastschriftaufträge erstellen/bearbeiten Permission153=Bestellungen mit Zahlart Lastschrift übertragen -Permission154=Record Credits/Rejections of direct debit payment orders +Permission154=Gutschriften / Ablehnungen von Lastschrift-Zahlungsaufträgen erfassen Permission161=Verträge/Abonnements einsehen Permission162=Verträge/Abonnements erstellen/bearbeiten Permission163=Service/Abonnement in einem Vertrag aktivieren @@ -819,9 +822,9 @@ Permission532=Leistungen erstellen/bearbeiten Permission534=Leistungen löschen Permission536=Versteckte Leistungen einsehen/verwalten Permission538=Leistungen exportieren -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Spenden anzeigen Permission702=Spenden erstellen/bearbeiten Permission703=Spenden löschen @@ -852,7 +855,7 @@ Permission1182=Lieferantenbestellungen anzeigen Permission1183=Lieferantenbestellungen erstellen/bearbeiten Permission1184=Lieferantenbestellungen freigeben Permission1185=Lieferantenbestellungen bestätigen/genehmigen -Permission1186=Order purchase orders +Permission1186=Lieferantenbestellungen übermitteln Permission1187=Acknowledge receipt of purchase orders Permission1188=Delete purchase orders Permission1190=Approve (second approval) purchase orders @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1134,7 +1137,7 @@ MAIN_MAX_DECIMALS_TOT=Maximale Anzahl an Dezimalstellen für Gesamtsummen MAIN_MAX_DECIMALS_SHOWN=Maximal auf dem Bildschirm angezeigte Anzahl an Dezimalstellen für Preise (Fügen Sie ... nach dieser Nummer ein, wenn Sie ... sehen wollen, falls ein Bildschirmpreis abgeschnitten wurde. MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something other than base 10. For example, put 0.05 if rounding is done by 0.05 steps) UnitPriceOfProduct=Nettostückpreis -TotalPriceAfterRounding=Total price (excl/vat/incl tax) after rounding +TotalPriceAfterRounding=Gesamtpreis (Netto/USt./Brutto) gerundet ParameterActiveForNextInputOnly=Die Einstellungen werden erst bei der nächsten Eingabe wirksam NoEventOrNoAuditSetup=No security event has been logged. This is normal if Audit has not been enabled in the "Setup - Security - Events" page. NoEventFoundWithCriteria=No security event has been found for this search criteria. @@ -1831,7 +1834,7 @@ TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta i BaseCurrency=Unternehmen-Basiswährung (Kann in den Einsttelungen unter Unternehmen verändert werden) WarningNoteModuleInvoiceForFrenchLaw=Dieses Modul %s erfüllt die Französische Gesetzgebung (Loi Finance 2016). WarningNoteModulePOSForFrenchLaw=Modul %s entspricht der französischen Gesetzgebung (Loi Finance 2016), weil das Modul "Unveränderbare Logs" automatisch aktiviert wird. -WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software. +WarningInstallationMayBecomeNotCompliantWithLaw=Sie versuchen, das externe Modul %s zu installieren. Mit der Aktivierung eines externen Moduls vertrauen Sie dem Herausgeber des Moduls und Sie sind sich sicher, dass Ihr System weiterhin die Gesetze Ihres Landes (%s) erfüllt. Falls das Modul Funktionalität bietet, die in Ihrem Land nicht erlaubt sind dann setzen Sie damit illegale Software ein und sind dafür voll verantwortlich. MAIN_PDF_MARGIN_LEFT=Linker Rand im PDF MAIN_PDF_MARGIN_RIGHT=Rechter Rand im PDF MAIN_PDF_MARGIN_TOP=Oberer Rand im PDF @@ -1851,31 +1854,31 @@ ChartLoaded=Chart of account loaded SocialNetworkSetup=Einstellungen vom Modul für Soziale Medien EnableFeatureFor=Aktiviere Features für %s VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to Off in the menu %s - %s, so Sales tax or Vat used will always be 0 for sales. -SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents -FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. -EmailCollector=Email collector +SwapSenderAndRecipientOnPDF=Tausche Position der Absender- und Empfängeradresse in PDF-Dokumenten +FeatureSupportedOnTextFieldsOnly=Warnung: Diese Funktion unterstützt nur Textfelder. Außerdem muss der URL-Parameter action=create oder action=edit gesetzt werden ODER der Seitenname muss mit 'new.php' enden, damit diese Funktion ausgelöst wird. +EmailCollector=eMail-Collector EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads). -NewEmailCollector=New Email Collector -EMailHost=Host of email IMAP server -MailboxSourceDirectory=Mailbox source directory -MailboxTargetDirectory=Mailbox target directory -EmailcollectorOperations=Operations to do by collector -MaxEmailCollectPerCollect=Max number of emails collected per collect +NewEmailCollector=Neuer eMail-Colletor +EMailHost=Hostname des IMAP-Servers +MailboxSourceDirectory=Quellverzechnis des eMail-Kontos +MailboxTargetDirectory=Zielverzechnis des eMail-Kontos +EmailcollectorOperations=Aktivitäten, die der eMail-Collector ausführen soll +MaxEmailCollectPerCollect=Maximale Anzahl an einzusammelnden eMails je Collect-Vorgang CollectNow=Jetzt abrufen -ConfirmCloneEmailCollector=Are you sure you want to clone the Email collector %s ? -DateLastCollectResult=Date latest collect tried -DateLastcollectResultOk=Date latest collect successfull -LastResult=Latest result -EmailCollectorConfirmCollectTitle=Email collect confirmation -EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ? +ConfirmCloneEmailCollector=Sind Sie sicher, dass Sie den eMail-Collektor %s duplizieren möchten? +DateLastCollectResult=Datum des letzten eMail-Collect-Versuchs +DateLastcollectResultOk=Datum des letzten, erfolgreichen eMail-Collect +LastResult=Letztes Ergebnis +EmailCollectorConfirmCollectTitle=eMail-Collect-Bestätigung +EmailCollectorConfirmCollect=Möchten Sie den Einsammelvorgang für diesen eMail-Collector starten? NoNewEmailToProcess=Keine neue e-Mail (passende Filter) zum Verarbeiten NothingProcessed=Nicht ausgeführt -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 third party if necessary) +XEmailsDoneYActionsDone=%seMails qualifiziert, %seMails erfolgreich verarbeitet (für %sAufzeichnungen/Aktionen durchgeführt) +RecordEvent=eMail-Ereignis aufzeichnen/registrieren +CreateLeadAndThirdParty=als potentiellen Verkaufskontakt anlegen +CreateTicketAndThirdParty=als (Support-)Ticket anlegen CodeLastResult=Letzter Resultatcode -NbOfEmailsInInbox=Number of emails in source directory +NbOfEmailsInInbox=Anzahl eMails im Quellverzeichnis LoadThirdPartyFromName=Load third party searching on %s (load only) LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found) WithDolTrackingID=Dolibarr Tracking ID gefunden @@ -1922,6 +1925,6 @@ IFTTT_DOLIBARR_ENDPOINT_SECUREKEY=Sicherheitsschlüssel zum Schutz der Endpunkt- IFTTTDesc=Dieses Modul wurde entwickelt, um Ereignisse auf IFTTT auszulösen und/oder eine Aktion auf externe IFTTT-Trigger auszuführen. UrlForIFTTT=URL-Endpunkt für IFTTT YouWillFindItOnYourIFTTTAccount=Sie finden es auf Ihrem IFTTTT-Konto. -EndPointFor=End point for %s : %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +EndPointFor=Endpunkt für %s:%s +DeleteEmailCollector=Lösche eMail-Collector +ConfirmDeleteEmailCollector=Sind Sie sicher, dass Sie diesen eMail-Collector löschen wollen? diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index 3a2f1f00e1f..a5809f83189 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma-Rechnung InvoiceProFormaDesc=Die Proforma-Rechnung ist das Abbild einer echten Rechnung, hat aber keinen buchhalterischen Wert. InvoiceReplacement=Ersatzrechnung InvoiceReplacementAsk=Ersatzrechnung für Rechnung -InvoiceReplacementDesc=Ersatzrechnungen dienen dem Storno und vollständigen Ersatz einer Rechnung ohne bereits erfolgtem Zahlungseingang.

Hinweis: Rechnungen mit Zahlungseingang können nicht ersetzt werden. Falls noch nicht geschlossen, werden ersetzte Rechnungen automatisch als 'Aufgegeben geschlossen' markiert. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Gutschrift InvoiceAvoirAsk=Gutschrift zur Rechnungskorrektur InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/de_DE/companies.lang b/htdocs/langs/de_DE/companies.lang index eb7a7196675..9492897f2b6 100644 --- a/htdocs/langs/de_DE/companies.lang +++ b/htdocs/langs/de_DE/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute Lieferantenrabatte (von allen Benutzer SupplierAbsoluteDiscountMy=Absolute Lieferantenrabatte (durch sie erfasst) DiscountNone=Keine Vendor=Lieferant +Supplier=Lieferant AddContact=Kontakt anlegen AddContactAddress=Kontakt/Adresse anlegen EditContact=Kontakt bearbeiten diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang index b79e8d73ab4..96d28a4bd00 100644 --- a/htdocs/langs/de_DE/other.lang +++ b/htdocs/langs/de_DE/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Anzahl Kundenrechnungen NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Anzahl von Einheiten in Angeboten NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Anzahl von Einheiten in Kundenrechnungen NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Serviceauftrag %s wurde freigegeben EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/de_DE/website.lang b/htdocs/langs/de_DE/website.lang index a06c0d64103..ec04253430d 100644 --- a/htdocs/langs/de_DE/website.lang +++ b/htdocs/langs/de_DE/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=Bisher wurde noch keine Website erstellt. Erstellen sie GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang index 84ac37001a7..2303c72355e 100644 --- a/htdocs/langs/de_DE/workflow.lang +++ b/htdocs/langs/de_DE/workflow.lang @@ -1,20 +1,20 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowSetup=Workflow Moduleinstellungen -WorkflowDesc=This module provides some automatic actions. By default, the workflow is open (you can do things in the order you want) but here you can activate some automatic actions. +WorkflowDesc=Dieses Modul liefert verschiedene, automatisierte Aktionen. Standardmäßig ist der Workflow flexibel (d.h. Sie sind frei in der Reihenfolge der Abarbeitung) aber über diesen Modul können Sie einige Aktionen automatisiert ablaufen lassen. ThereIsNoWorkflowToModify=Es sind keine Workflow-Änderungen möglich mit den aktivierten Modulen. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a sales order after a commercial proposal is signed (the new order will have same amount as the proposal) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (the new invoice will have same amount as the proposal) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Erstellt automatisch eine Bestellung, nachdem ein Angebot als "unterzeichnet" markiert wurde. Die neue Bestellung hat dann den selben Wert wie das Angebot. +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Erstellt automatisch eine Kundenrechnung, nachdem ein Angebot als "unterzeichnet" markiert wurde. Diese neue Kundenrechnung lautet über den selben Betrag wie das Angebot. descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Erstelle automatisch eine Kundenrechnung, nachdem der Vertrag bestätigt wurde. -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a sales order is closed (the new invoice will have same amount as the order) +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Erstellt automatisch eine Kundenrechnung, nachdem eine Bestellung geschlossen wurde. Die neue Kundenrechnung lautet über den selben Betrag wie die Bestellung. # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when sales order is set to billed (and if the amount of the order is the same as the total amount of the signed linked proposal) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the signed linked proposal) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is set to paid (and if the amount of the invoice is the same as the total amount of the linked order) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source sales order as shipped when a shipment is validated (and if the quantity shipped by all shipments is the same as in the order to update) +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Setzt das entsprechende Angebot auf "abgerechnet", sofern die Kundenbestellung auf "abgerechnet" gesetzt wurde und sofern der Betrag in der Bestellung gleich dem dem Betrag im Angebot ist. +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Setzt das verknüpfte Angebot auf "abgerechnet", sofern die Kundenrechnung erstellt wurde und sofern der Rechnungsbetrag identisch zur Angebotsumme ist. +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Kennzeichne die verknüpfte Kundenbestellung(en) als fakturiert ( = in Rechnung gestellt) sofern die Kundenrechnung als geprüft markiert wurde und die Beträge übereinstimmen. +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Kennzeichne die verknüpfte Kundenbestellung(en) als fakturiert ( = in Rechnung gestellt) sofern die Kundenrechnung als bezahlt markiert wurde und die Beträge übereinstimmen. +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Kennzeichne die verknüpften Aufträge als geliefert wenn die Lieferung erfolgt ist (und die Liefermenge der Bestellmenge entspricht). # Autoclassify purchase order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked proposal) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Setzt das verknüpfte Lieferantenangebot auf "abgerechnet", sofern die Lieferanrenrechnung erstellt wurde und sofern der Rechnungsbetrag identisch zur Angebotsumme ist. +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Kennzeichne die verknüpfte Einkaufsbestellung als abgerechnet wenn die Lieferantenrechnung erstellt wurde und wenn die Beträge überein stimmen. AutomaticCreation=automatische Erstellung AutomaticClassification=Automatische Klassifikation diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index cda38d3b569..c14fa13dcc9 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index dd5792b897c..8a86a6f41c5 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Βιβλιοθήκη δημιουργίας PDF 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Δημιουργία / τροποποίηση δωρεές Permission703=Διαγραφή δωρεές @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang index 3ff30a5d4fc..23c3e7a1d6b 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Προτιμολόγιο InvoiceProFormaDesc=Το Προτιμολόγιο είναι η εικόνα ενός πραγματικού τιμολογίου, χωρίς όμως να έχει χρηματική αξία InvoiceReplacement=Τιμολόγιο Αντικατάστασης InvoiceReplacementAsk=Αντικατάσταση τιμολογίου με -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Πιστωτικό τιμολόγιο InvoiceAvoirAsk=Πιστωτικό τιμολόγιο για την διόρθωση τιμολογίου InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/el_GR/companies.lang b/htdocs/langs/el_GR/companies.lang index a6a81513340..67fadea2908 100644 --- a/htdocs/langs/el_GR/companies.lang +++ b/htdocs/langs/el_GR/companies.lang @@ -28,7 +28,7 @@ AliasNames=Ψευδώνυμο (εμπορικό, εμπορικό σήμα, ...) AliasNameShort=Alias Name Companies=Εταιρίες CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Καμία Vendor=Vendor +Supplier=Vendor AddContact=Δημιουργία επαφής AddContactAddress=Δημιουργία επαφής/διεύθυνση EditContact=Επεξεργασία επαφής diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang index 53b5bc5a0cc..7d46bb0c404 100644 --- a/htdocs/langs/el_GR/other.lang +++ b/htdocs/langs/el_GR/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Η %s παρέμβαση έχει επικυρωθεί. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/el_GR/website.lang b/htdocs/langs/el_GR/website.lang index cf8c218f6a8..1307d469d99 100644 --- a/htdocs/langs/el_GR/website.lang +++ b/htdocs/langs/el_GR/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/en_AU/admin.lang b/htdocs/langs/en_AU/admin.lang index f792eabe51a..7b0034e0ce8 100644 --- a/htdocs/langs/en_AU/admin.lang +++ b/htdocs/langs/en_AU/admin.lang @@ -3,5 +3,7 @@ OldVATRates=Old GST rate NewVATRates=New GST rate DictionaryVAT=GST Rates or Sales Tax Rates OptionVatMode=GST due +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications LinkColor=Colour of links OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/en_CA/admin.lang b/htdocs/langs/en_CA/admin.lang index e5e33b73dd6..93fc98ac3e2 100644 --- a/htdocs/langs/en_CA/admin.lang +++ b/htdocs/langs/en_CA/admin.lang @@ -2,5 +2,7 @@ LocalTax1Management=PST Management CompanyZip=Postal code LDAPFieldZip=Postal code +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications FormatZip=Postal code OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang index ed606456013..ebc1a049f9c 100644 --- a/htdocs/langs/en_GB/accountancy.lang +++ b/htdocs/langs/en_GB/accountancy.lang @@ -83,7 +83,6 @@ ListeMvts=List of transactions ErrorDebitCredit=Debit and Credit fields cannot have values at the same time AddCompteFromBK=Add finance accounts to the group ListAccounts=List of the financial accounts -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. Blocking error. Pcgtype=Group account Pcgsubtype=Subgroup account DescVentilCustomer=View the list of customer invoice lines linked (or not) to a product financial account @@ -115,10 +114,10 @@ ErrorAccountingJournalIsAlreadyUse=This journal is already in use AccountingAccountForSalesTaxAreDefinedInto=Note: Financial account for Sales Tax is defined in menu %s - %s Modelcsv=Example of export Selectmodelcsv=Select an example of export -Modelcsv_FEC=Export FEC (Art. L47 A) ChartofaccountsId=Chart of accounts ID InitAccountancyDesc=This page can be used to create a financial account for products and services that do not have a financial account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account for linking transaction records about payments, salaries, donations, taxes and vat when no specific finance account had already been set. +DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. OptionModeProductSell=Type of sale OptionModeProductBuy=Type of purchase OptionModeProductSellDesc=Show all products with finance accounts for sales. diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index 29af3e502f6..c5e3e488406 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -46,5 +46,7 @@ DictionaryAccountancyJournal=Finance journals CompanyZip=Postcode LDAPFieldZip=Postcode 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 +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications FormatZip=Postcode OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/en_IN/admin.lang b/htdocs/langs/en_IN/admin.lang index e3cc80d5cea..02a8712d64f 100644 --- a/htdocs/langs/en_IN/admin.lang +++ b/htdocs/langs/en_IN/admin.lang @@ -13,5 +13,7 @@ ProposalsNumberingModules=Quotation numbering models ProposalsPDFModules=Quotation documents models FreeLegalTextOnProposal=Free text on quotations WatermarkOnDraftProposal=Watermark on draft quotations (none if empty) +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications MailToSendProposal=Customer quotations OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_CL/accountancy.lang b/htdocs/langs/es_CL/accountancy.lang index 24bccccfe21..e2157b1e314 100644 --- a/htdocs/langs/es_CL/accountancy.lang +++ b/htdocs/langs/es_CL/accountancy.lang @@ -24,15 +24,20 @@ AssignDedicatedAccountingAccount=Nueva cuenta para asignar InvoiceLabel=Etiqueta de factura OverviewOfAmountOfLinesNotBound=Descripción general de la cantidad de líneas no vinculadas a una cuenta de contabilidad OverviewOfAmountOfLinesBound=Descripción general de la cantidad de líneas ya vinculadas a una cuenta de contabilidad +ConfirmDeleteCptCategory=¿Está seguro de que desea eliminar esta cuenta contable del grupo de cuentas contables? JournalizationInLedgerStatus=Estado de la periodización AlreadyInGeneralLedger=Ya se ha contabilizado en libros mayores NotYetInGeneralLedger=Aún no se ha contabilizado en libros mayores GroupIsEmptyCheckSetup=El grupo está vacío, verifique la configuración del grupo de contabilidad personalizado DetailByAccount=Mostrar detalles por cuenta +AccountWithNonZeroValues=Cuentas con valores distintos de cero. +CountriesInEECExceptMe=Países en EEC excepto %s +AccountantFiles=Documentos contables de exportación MainAccountForCustomersNotDefined=Cuenta de contabilidad principal para los clientes no definidos en la configuración MainAccountForSuppliersNotDefined=Cuenta de contabilidad principal para proveedores no definidos en la configuración MainAccountForUsersNotDefined=Cuenta de contabilidad principal para los usuarios no definidos en la configuración MainAccountForVatPaymentNotDefined=Cuenta de contabilidad principal para el pago de IVA no definido en la configuración +MainAccountForSubscriptionPaymentNotDefined=Cuenta contable principal para el pago de suscripción no definido en la configuración AccountancyArea=Área de contabilidad AccountancyAreaDescActionOnce=Las siguientes acciones generalmente se ejecutan una sola vez o una vez al año ... AccountancyAreaDescActionOnceBis=Deben seguirse los pasos para ahorrarle tiempo en el futuro al sugerirle la cuenta de contabilidad predeterminada correcta al hacer la publicación (registro de escritura en Revistas y Libro mayor) @@ -44,7 +49,9 @@ AccountancyAreaDescVat=PASO %s: Defina cuentas contables para cada tasa de IVA. AccountancyAreaDescDefault=PASO %s: Defina cuentas de contabilidad predeterminadas. Para esto, use la entrada del menú %s. AccountancyAreaDescExpenseReport=PASO %s: Defina las cuentas de contabilidad predeterminadas para cada tipo de informe de gastos. Para esto, use la entrada del menú %s. AccountancyAreaDescSal=PASO %s: Defina cuentas de contabilidad predeterminadas para el pago de salarios. Para esto, use la entrada del menú %s. +AccountancyAreaDescContrib=PASO %s: Defina cuentas de contabilidad predeterminadas para gastos especiales (impuestos diversos). Para esto, use la entrada de menú %s. AccountancyAreaDescDonation=PASO %s: Defina las cuentas de contabilidad predeterminadas para la donación. Para esto, use la entrada del menú %s. +AccountancyAreaDescSubscription=PASO %s: Defina cuentas de contabilidad predeterminadas para la suscripción de miembros. Para esto, use la entrada de menú %s. AccountancyAreaDescMisc=PASO %s: Defina la cuenta predeterminada obligatoria y cuentas de contabilidad predeterminadas para transacciones misceláneas. Para esto, use la entrada del menú %s. AccountancyAreaDescLoan=PASO %s: defina cuentas de contabilidad predeterminadas para préstamos. Para esto, use la entrada del menú %s. AccountancyAreaDescBank=PASO %s: Defina las cuentas de contabilidad y el código del diario para cada banco y cuenta financiera. Para esto, use la entrada del menú %s. @@ -56,20 +63,26 @@ AccountancyAreaDescClosePeriod=PASO %s: Cierre el período para que no podamos r TheJournalCodeIsNotDefinedOnSomeBankAccount=Un paso obligatorio en la configuración no fue completo (diario de códigos de contabilidad no definido para todas las cuentas bancarias) Selectchartofaccounts=Seleccione gráfico de cuentas activo Addanaccount=Agregar cuenta contable +SubledgerAccount=Cuenta auxiliar +SubledgerAccountLabel=Etiqueta de cuenta de libro auxiliar ShowAccountingAccount=Mostrar cuenta contable MenuDefaultAccounts=Cuentas predeterminadas MenuBankAccounts=cuentas bancarias MenuTaxAccounts=Cuentas fiscales MenuExpenseReportAccounts=Cuentas de informe de gastos MenuProductsAccounts=Cuentas de productos +MenuClosureAccounts=Cuentas de cierre +Binding=Vinculante a las cuentas CustomersVentilation=Encuadernación de factura del cliente SuppliersVentilation=Encuadernación de factura del proveedor ExpenseReportsVentilation=Encuadernación del informe de gastos CreateMvts=Crear nueva transacción UpdateMvts=Modificación de una transacción ValidTransaction=Validar transacción +WriteBookKeeping=Registrar transacciones en Ledger Bookkeeping=Libro mayor ObjectsRef=Referencia de objeto de origen +CAHTF=Total vendedor comprado antes de impuestos TotalExpenseReport=Informe de gastos totales InvoiceLines=Líneas de facturas para enlazar InvoiceLinesDone=Líneas de facturas encuadernadas @@ -85,31 +98,44 @@ VentilatedinAccount=Vinculado exitosamente a la cuenta de contabilidad NotVentilatedinAccount=No vinculado a la cuenta de contabilidad XLineSuccessfullyBinded=%s productos / servicios vinculados con éxito a una cuenta de contabilidad XLineFailedToBeBinded=%s productos / servicios no estaban vinculados a ninguna cuenta de contabilidad +ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos a enlazar mostrados por página (máximo recomendado: 50) ACCOUNTING_LIST_SORT_VENTILATION_TODO=Comience la clasificación de la página "Encuadernación para hacer" por los elementos más recientes ACCOUNTING_LIST_SORT_VENTILATION_DONE=Comience la clasificación de la página "Encuadernación realizada" por los elementos más recientes ACCOUNTING_LENGTH_DESCRIPTION=Truncar descripción de productos y servicios en listados después de x caracteres (Mejor = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncar formulario de descripción de cuenta de productos y servicios en listados después de x caracteres (Mejor = 50) ACCOUNTING_LENGTH_GACCOUNT=Longitud de las cuentas de contabilidad generales (si establece el valor en 6 aquí, la cuenta '706' aparecerá como '706000' en la pantalla) +ACCOUNTING_LENGTH_AACCOUNT=Longitud de las cuentas contables de terceros (si establece el valor en 6 aquí, la cuenta '401' aparecerá como '401000' en la pantalla) +ACCOUNTING_MANAGE_ZERO=Permite administrar un número diferente de ceros al final de una cuenta contable. Necesitado por algunos países (como Suiza). Si está desactivado (predeterminado), puede configurar los dos parámetros siguientes para solicitar a la aplicación que agregue ceros virtuales. BANK_DISABLE_DIRECT_INPUT=Deshabilitar la grabación directa de transacciones en cuenta bancaria ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Habilitar exportación de borrador en diario +ACCOUNTANCY_COMBO_FOR_AUX=Habilitar la lista combinada para la cuenta subsidiaria (puede ser lenta si tiene muchos terceros) ACCOUNTING_SELL_JOURNAL=Libro de ventas ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario misceláneo ACCOUNTING_EXPENSEREPORT_JOURNAL=Diario del informe de gastos +ACCOUNTING_RESULT_PROFIT=Cuenta contable de resultados (beneficio) +ACCOUNTING_RESULT_LOSS=Cuenta contable de resultados (pérdida) +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta contable de transferencia bancaria transitoria. ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta de contabilidad de espera DONATION_ACCOUNTINGACCOUNT=Cuenta de contabilidad para registrar donaciones +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Cuenta contable para registrar suscripciones. ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta de contabilidad por defecto para productos comprados (se usa si no está definido en la hoja del producto) ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta de contabilidad por defecto para los productos vendidos (utilizada si no está definida en la hoja del producto) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Cuenta contable por defecto para los productos vendidos en EEC (usado si no está definido en la hoja del producto) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Cuenta contable por defecto para la exportación de productos vendidos fuera de la CEE (se usa si no se define en la hoja del producto) ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta de contabilidad por defecto para los servicios comprados (se usa si no se define en la hoja de servicio) ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta de contabilidad por defecto para los servicios vendidos (utilizada si no está definida en la hoja de servicio) LabelAccount=Cuenta LabelOperation=Operación de etiqueta Sens=Significado +LetteringCode=Codigo de letras +JournalLabel=Etiqueta de revista NumPiece=Pieza número TransactionNumShort=Num. transacción AccountingAccountGroupsDesc=Puede definir aquí algunos grupos de cuentas contables. Se usarán para informes de contabilidad personalizados. DeleteMvt=Eliminar líneas de libro mayor DelYear=Año para borrar DelJournal=Diario para eliminar +ConfirmDeleteMvt=Esto eliminará todas las líneas del Libro mayor por año y / o de una revista específica. Se requiere al menos un criterio. FinanceJournal=Diario de finanzas ExpenseReportsJournal=Diario de informes de gastos DescFinanceJournal=Diario financiero que incluye todos los tipos de pagos por cuenta bancaria @@ -120,28 +146,40 @@ ProductAccountNotDefined=Cuenta para producto no definido FeeAccountNotDefined=Cuenta por tarifa no definida BankAccountNotDefined=Cuenta bancaria no definida CustomerInvoicePayment=Pago de factura de cliente +ThirdPartyAccount=Cuenta de terceros NewAccountingMvt=Nueva transacción NumMvts=Numero de transacciones ListeMvts=Lista de movimientos ErrorDebitCredit=Débito y crédito no pueden tener el mismo valor AddCompteFromBK=Agregar cuentas de contabilidad al grupo +ReportThirdParty=Lista de cuenta de terceros +DescThirdPartyReport=Consulte aquí la lista de proveedores y clientes externos y sus cuentas contables. ListAccounts=Lista de cuentas contables -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. Blocking error. +UnknownAccountForThirdparty=Cuenta de terceros desconocida. Usaremos %s +UnknownAccountForThirdpartyBlocking=Cuenta de terceros desconocida. Error de bloqueo +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Cuenta de terceros no definida o tercero desconocido. Usaremos %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Cuenta de terceros no definida o tercero desconocido. Error de bloqueo. +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Cuenta de terceros desconocida y cuenta de espera no definida. Error de bloqueo PaymentsNotLinkedToProduct=Pago no vinculado a ningún producto / servicio +PcgtypeDesc=El grupo y el subgrupo de cuenta se utilizan como criterios predefinidos de "filtro" y "agrupación" para algunos informes contables. Por ejemplo, 'INGRESOS' o 'GASTOS' se utilizan como grupos para cuentas contables de productos para generar el informe de gastos / ingresos. TotalVente=Volumen de negocios total antes de impuestos TotalMarge=Margen total de ventas DescVentilCustomer=Consulte aquí la lista de líneas de facturación de clientes vinculadas (o no) a una cuenta de contabilidad de producto +DescVentilMore=En la mayoría de los casos, si utiliza productos o servicios predefinidos y configura el número de cuenta en la tarjeta de producto / servicio, la aplicación podrá hacer todo el enlace entre sus líneas de factura y la cuenta contable de su plan de cuentas, solo en un clic con el botón "%s" . Si la cuenta no se configuró en las tarjetas de producto / servicio o si todavía tiene algunas líneas que no están vinculadas a una cuenta, deberá realizar un enlace manual desde el menú " %s ". DescVentilDoneCustomer=Consulte aquí la lista de las líneas de clientes de facturas y su cuenta de contabilidad de productos DescVentilTodoCustomer=Vincular líneas de factura que ya no están vinculadas con una cuenta de contabilidad de producto ChangeAccount=Cambie la cuenta de contabilidad de producto / servicio para líneas seleccionadas con la siguiente cuenta de contabilidad: DescVentilSupplier=Consulte aquí la lista de líneas de facturación de proveedores vinculadas o aún no vinculadas a una cuenta de contabilidad de productos +DescVentilDoneSupplier=Consulte aquí la lista de las líneas de facturas de proveedores y sus cuentas contables. DescVentilTodoExpenseReport=Vincular las líneas de informe de gastos que ya no están vinculadas con una cuenta de contabilidad de tarifas DescVentilExpenseReport=Consulte aquí la lista de líneas de informe de gastos vinculadas (o no) a una cuenta de contabilidad de tasas +DescVentilExpenseReportMore=Si configura una cuenta contable en el tipo de líneas de informe de gastos, la aplicación podrá hacer todo el enlace entre sus líneas de informe de gastos y la cuenta contable de su plan de cuentas, solo con un clic con el botón "%s" . Si la cuenta no se estableció en el diccionario de tarifas o si todavía tiene algunas líneas no vinculadas a ninguna cuenta, deberá realizar un enlace manual desde el menú " %s ". DescVentilDoneExpenseReport=Consulte aquí la lista de las líneas de informes de gastos y su cuenta de contabilidad de tarifas ValidateHistory=Enlazar automáticamente AutomaticBindingDone=Encuadernación automática hecha ErrorAccountancyCodeIsAlreadyUse=No puede eliminar esta cuenta porque está siendo usada MvtNotCorrectlyBalanced=El movimiento no está correctamente equilibrado. Débito = %s | Crédito = %s +Balancing=Equilibrio FicheVentilation=Tarjeta de enlace GeneralLedgerIsWritten=Las transacciones se escriben en el Libro mayor GeneralLedgerSomeRecordWasNotRecorded=Algunas de las transacciones no pueden ser contabilizadas. Si no hay otro mensaje de error, esto es probablemente porque ya estaban en el diario. @@ -151,6 +189,7 @@ ChangeBinding=Cambiar la encuadernación Accounted=Contabilizado en el libro mayor NotYetAccounted=Aún no contabilizado en el libro mayor ApplyMassCategories=Aplicar categorías de masa +AddAccountFromBookKeepingWithNoCategories=Cuenta disponible aún no en el grupo personalizado. CategoryDeleted=La categoría de la cuenta de contabilidad ha sido eliminada AccountingJournals=Libros contables AccountingJournal=Diario de contabilidad @@ -162,25 +201,42 @@ AccountingAccountForSalesTaxAreDefinedInto=Nota: La cuenta de contabilidad para ExportDraftJournal=Exportar borrador del diario Selectmodelcsv=Seleccione un modelo Modelcsv_normal=Exportación clasica -Modelcsv_FEC=Export FEC (Art. L47 A) +Modelcsv_CEGID=Exportación para Comptabilité Experto CEGID +Modelcsv_COALA=Exportación para Salvia Coala +Modelcsv_bob50=Exportación para Sage BOB 50 +Modelcsv_ciel=Exportación para Sage Ciel Compta o Compta Evolution +Modelcsv_quadratus=Exportar para Quadratus QuadraCompta +Modelcsv_ebp=Exportación para EBP +Modelcsv_cogilog=Exportación para Cogilog +Modelcsv_agiris=Exportación para Agiris +Modelcsv_openconcerto=Exportar para OpenConcerto (Prueba) +Modelcsv_configurable=Exportar CSV Configurable +Modelcsv_Sage50_Swiss=Exportación para Sage 50 Suiza ChartofaccountsId=Plan de cuentas Id InitAccountancy=Contabilidad inicial InitAccountancyDesc=Esta página se puede usar para inicializar una cuenta de contabilidad en productos y servicios que no tienen una cuenta de contabilidad definida para ventas y compras. DefaultBindingDesc=Esta página se puede usar para establecer una cuenta predeterminada que se usará para vincular el registro de transacciones sobre los salarios de pago, donaciones, impuestos y IVA cuando no se haya establecido una cuenta contable específica. OptionModeProductSell=Ventas de modo +OptionModeProductSellIntra=Venta de modo exportado en EEC. +OptionModeProductSellExport=Venta de modo exportado en otros países. OptionModeProductBuy=Compras de modo OptionModeProductSellDesc=Mostrar todos los productos con cuenta de contabilidad para ventas. +OptionModeProductSellIntraDesc=Mostrar todos los productos con cuenta contable para ventas en EEC. OptionModeProductBuyDesc=Mostrar todos los productos con cuenta de contabilidad para compras. CleanFixHistory=Eliminar el código de contabilidad de las líneas que no existen en los cuadros de cuentas CleanHistory=Restablecer todas las vinculaciones para el año seleccionado PredefinedGroups=Grupos predefinidos ValueNotIntoChartOfAccount=Este valor de la cuenta de contabilidad no existe en el cuadro de cuentas +SaleEEC=Venta en EEC SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos obligatorios de configuración no se hicieron, por favor complételos ErrorNoAccountingCategoryForThisCountry=No hay un grupo de cuenta contable disponible para el país %s (Consulte Inicio - Configuración - Diccionarios) ErrorInvoiceContainsLinesNotYetBounded=Intenta hacer un diario de algunas líneas de la factura %s , pero algunas otras líneas aún no están limitadas a la cuenta de contabilidad. Se rechaza la periodización de todas las líneas de factura para esta factura. ErrorInvoiceContainsLinesNotYetBoundedShort=Algunas líneas en la factura no están vinculadas a la cuenta contable. ExportNotSupported=El formato de exportación establecido no es compatible con esta página +BookeppingLineAlreayExists=Líneas ya existentes en la contabilidad. Binded=Líneas atadas ToBind=Líneas para enlazar +UseMenuToSetBindindManualy=Líneas aún no enlazadas, use el menú %s para hacer el enlace manualmente +WarningReportNotReliable=Advertencia, este informe no se basa en el Libro mayor, por lo que no contiene la transacción modificada manualmente en el Libro mayor. Si su publicación está actualizada, la vista de contabilidad es más precisa. ExpenseReportJournal=Diario del informe de gastos InventoryJournal=Revista de inventario diff --git a/htdocs/langs/es_CL/admin.lang b/htdocs/langs/es_CL/admin.lang index 6a15d209266..7e164b901b1 100644 --- a/htdocs/langs/es_CL/admin.lang +++ b/htdocs/langs/es_CL/admin.lang @@ -4,7 +4,10 @@ VersionLastInstall=Versión de instalación inicial VersionLastUpgrade=Versión de actualización más reciente. VersionUnknown=Desconocido VersionRecommanded=Recomendado +FileCheck=Comprobaciones de integridad del conjunto de archivos +FileCheckDesc=Esta herramienta le permite verificar la integridad de los archivos y la configuración de su aplicación, comparando cada archivo con el oficial. También se puede verificar el valor de algunas constantes de configuración. Puede usar esta herramienta para determinar si algún archivo ha sido modificado (por ejemplo, por un hacker). FileIntegrityIsStrictlyConformedWithReference=La integridad de los archivos está estrictamente conformada con la referencia. +FileIntegrityIsOkButFilesWereAdded=La verificación de integridad de los archivos ha pasado, sin embargo, se han agregado algunos archivos nuevos. FileIntegritySomeFilesWereRemovedOrModified=La verificación de la integridad de los archivos ha fallado. Algunos archivos fueron modificados, eliminados o agregados. MakeIntegrityAnalysisFrom=Haga un análisis de integridad de los archivos de la aplicación desde LocalSignature=Firma local incorporada (menos confiable) @@ -12,13 +15,19 @@ RemoteSignature=Firma distante remota (más confiable) FilesMissing=Archivos perdidos FilesAdded=Archivos agregados FileCheckDolibarr=Verificar la integridad de los archivos de la aplicación +AvailableOnlyOnPackagedVersions=El archivo local para la verificación de integridad solo está disponible cuando la aplicación se instala desde un paquete oficial XmlNotFound=Xml Integrity Archivo de la aplicación no encontrado SessionId=ID de sesión SessionSaveHandler=Handler para guardar sesiones +SessionSavePath=Ubicación de guardado de sesión ConfirmPurgeSessions=¿De verdad quieres purgar todas las sesiones? Esto desconectará a todos los usuarios (excepto usted). +NoSessionListWithThisHandler=Guardar el controlador de sesión configurado en su PHP no permite enumerar todas las sesiones en ejecución. +ConfirmLockNewSessions=¿Estás seguro de que deseas restringir cualquier nueva conexión de Dolibarr a ti mismo? Solo el usuario %s podrá conectarse después de eso. UnlockNewSessions=Eliminar bloqueo de conexión YourSession=Tu sesión +Sessions=Sesiones de Usuarios WebUserGroup=Usuario / grupo del servidor web +NoSessionFound=Su configuración de PHP parece no permitir el listado de sesiones activas. El directorio utilizado para guardar sesiones ( %s ) puede estar protegido (por ejemplo, por permisos del sistema operativo o por la directiva PHP open_basedir). DBStoringCharset=Juego de caracteres de base de datos para almacenar datos DBSortingCharset=Juego de caracteres de base de datos para ordenar los datos WarningModuleNotActive=El módulo %s debe estar habilitado. @@ -29,6 +38,8 @@ SetupArea=Configurar UploadNewTemplate=Cargar nueva plantilla (s) FormToTestFileUploadForm=Formulario para probar la carga del archivo (según la configuración) IfModuleEnabled=Nota: sí es efectivo solo si el módulo %s está habilitado +RemoveLock=Elimine / rename el archivo %s si existe, para permitir el uso de la herramienta Actualizar / Instalar. +RestoreLock=Restaure el archivo %s , solo con permiso de lectura, para deshabilitar cualquier uso posterior de la herramienta Actualizar / Instalar. SecuritySetup=Configuración de seguridad SecurityFilesDesc=Define aquí las opciones relacionadas con la seguridad sobre la carga de archivos. ErrorModuleRequirePHPVersion=Error, este módulo requiere PHP versión %s o superior @@ -36,8 +47,15 @@ ErrorModuleRequireDolibarrVersion=Error, este módulo requiere Dolibarr versión ErrorDecimalLargerThanAreForbidden=Error, una precisión superior a %s no es compatible. DictionarySetup=Configuración del diccionario ErrorReservedTypeSystemSystemAuto=El valor 'sistema' y 'systemauto' para el tipo está reservado. Puede usar 'user' como valor para agregar su propio registro +DisableJavascript=Deshabilitar las funciones de JavaScript y Ajax +DisableJavascriptNote=Nota: Para propósitos de prueba o depuración. Para la optimización para personas ciegas o navegadores de texto, es posible que prefiera utilizar la configuración en el perfil del usuario. UseSearchToSelectCompanyTooltip=Además, si tiene un gran número de terceros (> 100 000), puede aumentar la velocidad estableciendo constante COMPANY_DONOTSEARCH_ANYWHERE en 1 en Configuración-> Otro. La búsqueda se limitará al inicio de la cadena. UseSearchToSelectContactTooltip=Además, si tiene un gran número de terceros (> 100 000), puede aumentar la velocidad estableciendo CONTACT_DONOTSEARCH_ANYWHERE constante en 1 en Configuración-> Otro. La búsqueda se limitará al inicio de la cadena. +DelaiedFullListToSelectCompany=Espere hasta que se presione una tecla antes de cargar el contenido de la lista de combo de Terceros.
Esto puede aumentar el rendimiento si tiene un gran número de terceros, pero es menos conveniente. +DelaiedFullListToSelectContact=Espere hasta que se presione una tecla antes de cargar el contenido de la lista de combo de contactos.
Esto puede aumentar el rendimiento si tiene una gran cantidad de contactos, pero es menos conveniente. +NumberOfKeyToSearch=Número de caracteres para activar la búsqueda: %s +NumberOfBytes=Número de bytes +SearchString=Cadena de búsqueda NotAvailableWhenAjaxDisabled=No disponible cuando Ajax está deshabilitado AllowToSelectProjectFromOtherCompany=En el documento de un tercero, puede elegir un proyecto vinculado a otro tercero JavascriptDisabled=JavaScript deshabilitado @@ -45,12 +63,14 @@ UsePreviewTabs=Usa pestañas de vista previa ShowPreview=Mostrar vista previa CurrentTimeZone=TimeZone PHP (servidor) MySQLTimeZone=TimeZone MySql (base de datos) +TZHasNoEffect=Las fechas son almacenadas y devueltas por el servidor de bases de datos como si se mantuvieran como una cadena enviada. La zona horaria tiene efecto solo cuando se usa la función UNIX_TIMESTAMP (que no debe ser utilizada por Dolibarr, por lo que la base de datos TZ no debería tener ningún efecto, incluso si se cambia después de ingresar los datos). Space=Espacio NextValue=Siguiente valor NextValueForInvoices=Siguiente valor (facturas) NextValueForCreditNotes=Siguiente valor (notas de crédito) NextValueForDeposit=Siguiente valor (pago inicial) NextValueForReplacements=Siguiente valor (reemplazos) +MustBeLowerThanPHPLimit=Nota: su configuración de PHP actualmente limita el tamaño de archivo máximo para cargar %s %s, independientemente del valor de este parámetro NoMaxSizeByPHPLimit=Nota: no hay límite establecido en su configuración de PHP MaxSizeForUploadedFiles=Tamaño máximo para los archivos cargados (0 para no permitir ninguna carga) UseCaptchaCode=Use el código gráfico (CAPTCHA) en la página de inicio de sesión @@ -65,6 +85,7 @@ DetailPosition=Ordenar número para definir la posición del menú AllMenus=Todo NotConfigured=Módulo / Aplicación no configurada SetupShort=Configurar +OtherSetup=Otra configuración CurrentValueSeparatorThousand=Mil separadores Destination=Destino IdModule=ID del módulo @@ -77,14 +98,20 @@ PHPTZ=Servidor PHP Zona horaria DaylingSavingTime=Horario de verano CurrentHour=Tiempo de PHP (servidor) CurrentSessionTimeOut=Tiempo de espera actual de la sesión +YouCanEditPHPTZ=Para configurar una zona horaria de PHP diferente (no es necesario), puede intentar agregar un archivo .htaccess con una línea como esta "SetEnv TZ Europe / Paris" +HoursOnThisPageAreOnServerTZ=La advertencia, a diferencia de otras pantallas, las horas en esta página no se encuentran en su zona horaria local, sino de la zona horaria del servidor. +MaxNbOfLinesForBoxes=Max. número de líneas para widgets PositionByDefault=Orden predeterminada MenusDesc=Los administradores de menú establecen el contenido de las dos barras de menú (horizontal y vertical). MenusEditorDesc=El editor de menú le permite definir entradas de menú personalizadas. Úselo con cuidado para evitar la inestabilidad y las entradas de menú permanentemente inalcanzables.
Algunos módulos agregan entradas de menú (en el menú Todo principalmente). Si elimina algunas de estas entradas por error, puede restablecerlas deshabilitando y volviendo a habilitar el módulo. MenuForUsers=Menú para usuarios +Language_en_US_es_MX_etc=Idioma (en_US, es_MX, ...) SystemInfo=Información del sistema SystemToolsArea=Área de herramientas del sistema +SystemToolsAreaDesc=Esta área proporciona funciones de administración. Utilice el menú para elegir la función requerida. +PurgeAreaDesc=Esta página le permite eliminar todos los archivos generados o almacenados por Dolibarr (archivos temporales o todos los archivos en el directorio %s ). Usando esta característica normalmente no es necesario. Se proporciona como una solución para los usuarios cuyo Dolibarr está alojado por un proveedor que no ofrece permisos para eliminar archivos generados por el servidor web. PurgeDeleteLogFile=Eliminar archivos de registro, incluido %s definido para el módulo Syslog (sin riesgo de perder datos) -PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (sin riesgo de perder datos) +PurgeDeleteAllFilesInDocumentsDir=Eliminar todos los archivos en el directorio: %s .
Esto eliminará todos los documentos generados relacionados con elementos (terceros, facturas, etc.), archivos cargados en el módulo ECM, volcados de copia de seguridad de bases de datos y archivos temporales. PurgeRunNow=Purgar ahora PurgeNothingToDelete=Sin directorio o archivos para eliminar. PurgeNDirectoriesDeleted=%s archivos o directorios eliminados. @@ -95,9 +122,12 @@ Backup=Respaldo Restore=Restaurar RunCommandSummary=La copia de seguridad se ha lanzado con el siguiente comando BackupFileSuccessfullyCreated=Archivo de respaldo generado con éxito +YouCanDownloadBackupFile=El archivo generado ahora se puede descargar NoBackupFileAvailable=No hay archivos de respaldo disponibles. ToBuildBackupFileClickHere=Para crear un archivo de copia de seguridad, haga clic aquí . +ImportMySqlDesc=Para importar un archivo de copia de seguridad de MySQL, puede usar phpMyAdmin a través de su alojamiento o usar el comando mysql desde la línea de comandos.
Por ejemplo: ImportPostgreSqlDesc=Para importar un archivo de copia de seguridad, debe usar el comando pg_restore desde la línea de comando: +FileNameToGenerate=Nombre de archivo para copia de seguridad: CommandsToDisableForeignKeysForImport=Comando para desactivar claves externas en la importación CommandsToDisableForeignKeysForImportWarning=Obligatorio si desea poder restaurar su volcado sql más tarde MySqlExportParameters=Parámetros de exportación de MySQL @@ -115,14 +145,22 @@ IgnoreDuplicateRecords=Ignorar errores de registro duplicado (INSERTAR IGNORAR) AutoDetectLang=Autodetectar (idioma del navegador) FeatureDisabledInDemo=Característica deshabilitada en demostración FeatureAvailableOnlyOnStable=Característica solo disponible en versiones estables oficiales +BoxesDesc=Los widgets son componentes que muestran información que puede agregar para personalizar algunas páginas. Puede elegir entre mostrar el widget o no seleccionando la página de destino y haciendo clic en 'Activar', o haciendo clic en la papelera para deshabilitarla. OnlyActiveElementsAreShown=Solo se muestran los elementos de los módulos habilitados . +ModulesDesc=Los módulos / aplicaciones determinan qué funciones están disponibles en el software. Algunos módulos requieren que se otorguen permisos a los usuarios después de activar el módulo. Haga clic en el botón de encendido / apagado (al final de la línea del módulo) para habilitar / deshabilitar un módulo / aplicación. +ModulesDeployDesc=Si los permisos en su sistema de archivos lo permiten, puede utilizar esta herramienta para implementar un módulo externo. El módulo será visible en la pestaña %s . ModulesMarketPlaces=Buscar aplicaciones / módulos externos ModulesDevelopYourModule=Desarrolla tu propia aplicación / módulos +ModulesDevelopDesc=También puede desarrollar su propio módulo o encontrar un socio para desarrollar uno para usted. +DOLISTOREdescriptionLong=En lugar de activar el sitio web www.dolistore.com para encontrar un módulo externo, puede utilizar esta herramienta integrada que realizará la búsqueda en el mercado externo para usted (puede ser lento, necesita un acceso a Internet) ... NotCompatible=Este módulo no parece compatible con su Dolibarr %s (Min. %s - Max. %s). CompatibleAfterUpdate=Este módulo requiere una actualización de su Dolibarr %s (Min. %s - Max. %s). SeeInMarkerPlace=Ver en Market place AchatTelechargement=Compra / Descarga +GoModuleSetupArea=Para implementar / instalar un nuevo módulo, vaya al área de configuración del módulo: %s . DoliStoreDesc=DoliStore, el mercado oficial para los módulos externos Dolibarr ERP / CRM +DoliPartnersDesc=Lista de empresas que ofrecen módulos o características desarrollados a medida.
Nota: dado que Dolibarr es una aplicación de código abierto, cualquier persona con experiencia en programación PHP puede desarrollar un módulo. +WebSiteDesc=Sitios web externos para más módulos complementarios (no principales) ... URL=Enlazar BoxesAvailable=Widgets disponibles BoxesActivated=Widgets activados @@ -131,8 +169,11 @@ SourceFile=Archivo fuente AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponible solo si JavaScript no está deshabilitado Required=Necesario UsedOnlyWithTypeOption=Usado solo por alguna opción de agenda +DoNotStoreClearPassword=Cifre las contraseñas almacenadas en la base de datos (NO como texto sin formato). Se recomienda encarecidamente activar esta opción. +MainDbPasswordFileConfEncrypted=Cifra la contraseña de la base de datos almacenada en conf.php. Se recomienda encarecidamente activar esta opción. InstrucToEncodePass=Para codificar la contraseña en el archivo conf.php, reemplace la línea
$dolibarr_main_db_pass="...";
por
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Para decodificar la contraseña (elimina) en el archivo conf.php, reemplace la línea
$dolibarr_main_db_pass="crypted: ...";
por
$dolibarr_main_db_pass="%s"; +ProtectAndEncryptPdfFiles=Proteger los archivos PDF generados. Esto NO se recomienda ya que rompe la generación de PDF a granel. ProtectAndEncryptPdfFilesDesc=La protección de un documento PDF lo mantiene disponible para leer e imprimir con cualquier navegador PDF. Sin embargo, la edición y copia ya no es posible. Tenga en cuenta que el uso de esta característica hace que la creación de un archivo PDF global fusionado no funcione. Feature=Característica Developpers=Desarrolladores / contribuyentes @@ -142,29 +183,64 @@ OfficialWebHostingService=Servicios de alojamiento web a los que se hace referen ReferencedPreferredPartners=Socios Preferidos ForDocumentationSeeWiki=Para documentación del usuario o desarrollador (Doc, Preguntas frecuentes ...),
echa un vistazo a la Wiki de Dolibarr:
%s ForAnswersSeeForum=Para cualquier otra pregunta/ayuda, puede utilizar el foro de Dolibarr:
%s +HelpCenterDesc1=Aquí hay algunos recursos para obtener ayuda y apoyo con Dolibarr. +HelpCenterDesc2=Algunos de estos recursos solo están disponibles en inglés . CurrentMenuHandler=Manejador de menú actual SpaceX=Espacio X SpaceY=Espacio Y Emails=Correos electrónicos EMailsSetup=Configuración de correos electrónicos +EMailsDesc=Esta página le permite anular sus parámetros de PHP predeterminados para el envío de correo electrónico. En la mayoría de los casos en Unix / Linux OS, la configuración de PHP es correcta y estos parámetros no son necesarios. EmailSenderProfiles=Perfiles de remitentes de correos electrónicos +MAIN_MAIL_SMTP_PORT=Puerto SMTP / SMTPS (valor predeterminado en php.ini: %s ) +MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (valor predeterminado en php.ini: %s ) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Puerto SMTP / SMTPS (no definido en PHP en sistemas similares a Unix) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (no definido en PHP en sistemas similares a Unix) +MAIN_MAIL_EMAIL_FROM=Correo electrónico del remitente para correos electrónicos automáticos (valor predeterminado en php.ini: %s ) +MAIN_MAIL_ERRORS_TO=El correo electrónico utilizado para el error devuelve correos electrónicos (campos 'Errores a' en los correos electrónicos enviados) +MAIN_MAIL_AUTOCOPY_TO=Copiar (Bcc) todos los correos electrónicos enviados a +MAIN_DISABLE_ALL_MAILS=Deshabilitar todo el envío de correo electrónico (para propósitos de prueba o demostraciones) MAIN_MAIL_FORCE_SENDTO=Enviar todos los correos electrónicos a (en lugar de destinatarios reales, para fines de prueba) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Agregar usuarios empleados con correo electrónico a la lista de destinatarios permitidos +MAIN_MAIL_SENDMODE=Método de envío de correo electrónico +MAIN_MAIL_SMTPS_ID=ID de SMTP (si el servidor de envío requiere autenticación) +MAIN_MAIL_SMTPS_PW=Contraseña SMTP (si el servidor de envío requiere autenticación) +MAIN_MAIL_EMAIL_TLS=Utilizar cifrado TLS (SSL) +MAIN_MAIL_EMAIL_STARTTLS=Usar cifrado TLS (STARTTLS) +MAIN_MAIL_EMAIL_DKIM_ENABLED=Usa DKIM para generar firma de correo electrónico +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Dominio de correo electrónico para usar con dkim +MAIN_DISABLE_ALL_SMS=Deshabilitar todo el envío de SMS (para propósitos de prueba o demostraciones) MAIN_SMS_SENDMODE=Método a usar para enviar SMS +MAIN_MAIL_SMS_FROM=Número de teléfono del remitente predeterminado para el envío de SMS +MAIN_MAIL_DEFAULT_FROMTYPE=Correo electrónico predeterminado del remitente para envío manual (correo electrónico del usuario o correo electrónico de la empresa) UserEmail=Correo electrónico del usuario +CompanyEmail=Email de la empresa FeatureNotAvailableOnLinux=Característica no disponible en sistemas como Unix. Pruebe su programa sendmail localmente. +SubmitTranslation=Si la traducción de este idioma no está completa o si encuentra errores, puede corregirlos editando los archivos en el directorio langs / %s y envíe su cambio a www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Si la traducción de este idioma no está completa o si encuentra errores, puede corregir esto editando archivos en el directorio langs /%s y enviando archivos modificados en dolibarr.org/forum o para desarrolladores en github.com/Dolibarr/dolibarr. ModulesSetup=Módulos / configuración de la aplicación +ModuleFamilyCrm=Gestión de la relación con el cliente (CRM) +ModuleFamilySrm=Gestión de relaciones con proveedores (VRM) +ModuleFamilyProducts=Gestión de producto (PM) ModuleFamilyProjects=Proyectos / trabajo colaborativo ModuleFamilyTechnic=Herramientas de varios módulos ModuleFamilyFinancial=Módulos financieros (Contabilidad / Tesorería) ModuleFamilyECM=Gestión de contenido electrónico (ECM) +ModuleFamilyPortal=Sitios web y otras aplicaciones frontales. ModuleFamilyInterface=Interfaces con sistemas externos MenuHandlers=Controladores de menú MenuAdmin=Editor de menú ThisIsAlternativeProcessToFollow=Esta es una configuración alternativa para procesar manualmente: +FindPackageFromWebSite=Encuentre un paquete que proporcione las funciones que necesita (por ejemplo, en el sitio web oficial %s). +DownloadPackageFromWebSite=Descargue el paquete (por ejemplo, desde el sitio web oficial %s). +UnpackPackageInDolibarrRoot=Desempaquete / descomprima los archivos empaquetados en el directorio de su servidor Dolibarr: %s +UnpackPackageInModulesRoot=Para implementar / instalar un módulo externo, descomprima / descomprima los archivos empaquetados en el directorio del servidor dedicado a los módulos externos:
%s +SetupIsReadyForUse=El despliegue del módulo ha finalizado. Sin embargo, debe habilitar y configurar el módulo en su aplicación yendo a los módulos de configuración de la página: %s . NotExistsDirect=El directorio raíz alternativo no está definido en un directorio existente.
InfDirAlt=Desde la versión 3, es posible definir un directorio raíz alternativo. Esto le permite almacenar, en un directorio dedicado, complementos y plantillas personalizadas.
Simplemente cree un directorio en la raíz de Dolibarr (p. Ej .: personalizado).
InfDirExample=
Entonces, declare en el archivo conf.php
$dolibarr_main_url_root_alt = '/ custom'
$ dolibarr_main_document_root_alt = '/path/of /dolibarr/htdocs /custom'
Si estas líneas se comentan con "#", para habilitarlas, simplemente elimine el comentario del carácter "#". +YouCanSubmitFile=Alternativamente, puedes subir el paquete de archivos .zip del módulo: +CallUpdatePage=Vaya a la página que actualiza la estructura de la base de datos y los datos: %s. LastActivationIP=Última activación IP UpdateServerOffline=Servidor de actualización fuera de línea WithCounter=Administrar un contador @@ -185,32 +261,49 @@ ErrorCantUseRazIfNoYearInMask=Error, no se puede usar la opción @ para restable ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, no puede usar la opción @ si la secuencia {aa} {mm} o {aaaa} {mm} no está en la máscara. UMask=Parámetro UMask para nuevos archivos en el sistema de archivos Unix / Linux / BSD / Mac. UMaskExplanation=Este parámetro le permite definir permisos establecidos por defecto en los archivos creados por Dolibarr en el servidor (durante la carga, por ejemplo).
Debe ser el valor octal (por ejemplo, 0666 significa leer y escribir para todos).
parámetro es inútil en un servidor de Windows. +SeeWikiForAllTeam=Eche un vistazo a la página de Wiki para obtener una lista de colaboradores y su organización. UseACacheDelay=Retardo para la respuesta de exportación en caché en segundos (0 o vacío para no caché) DisableLinkToHelpCenter=Ocultar enlace "Necesita ayuda o soporte" en la página de inicio de sesión DisableLinkToHelp=Ocultar link para ayuda online "%s" +AddCRIfTooLong=No hay ajuste de texto automático, el texto que es demasiado largo no se mostrará en los documentos. Por favor agregue retornos de carro en el área de texto si es necesario. +ConfirmPurge=¿Estás seguro de que quieres ejecutar esta purga?
Esto eliminará de forma permanente todos sus archivos de datos sin posibilidad de restaurarlos (archivos ECM, archivos adjuntos ...). MinLength=Longitud mínima LanguageFilesCachedIntoShmopSharedMemory=Archivos .lang cargados en la memoria compartida +ExamplesWithCurrentSetup=Ejemplos con la configuración actual. ListOfDirectories=Lista de directorios de plantillas de OpenDocument ListOfDirectoriesForModelGenODT=Lista de directorios que contienen archivos de plantillas con formato OpenDocument.

Ponga aquí la ruta completa de directorios.
Agregue un retorno de carro entre cada directorio.
Para agregar un directorio del módulo GED, agregue aquí DOL_DATA_ROOT/ecm/yourdirectoryname.

Los archivos en esos directorios deben terminar con .odt o .ods. +NumberOfModelFilesFound=Número de archivos de plantilla ODT / ODS encontrados en estos directorios FollowingSubstitutionKeysCanBeUsed=
Para saber cómo crear sus plantillas de documento Odt, antes de almacenarlas en esos directorios, lea la documentación wiki: FirstnameNamePosition=Posición del nombre / apellido +DescWeather=Las siguientes imágenes se mostrarán en el tablero cuando el número de acciones tardías alcance los siguientes valores: KeyForWebServicesAccess=Clave para usar los servicios web (parámetro "dolibarrkey" en los servicios web) TestSubmitForm=Formulario de prueba de entrada +ThisForceAlsoTheme=El uso de este administrador de menús también usará su propio tema, independientemente de la elección del usuario. Además, este administrador de menú especializado para teléfonos inteligentes no funciona en todos los teléfonos inteligentes. Utilice otro administrador de menú si tiene problemas con el suyo. ThemeDir=Directorio de pieles +ConnectionTimeout=El tiempo de conexión expiro ResponseTimeout=Tiempo de espera de respuesta SmsTestMessage=Mensaje de prueba de __PHONEFROM__ a __PHONETO__ ModuleMustBeEnabledFirst=El módulo %s debe estar habilitado primero si necesitas esta característica. SecurityToken=Clave para asegurar URLs +NoSmsEngine=No hay administrador de remitente de SMS disponible. Un administrador de remitentes de SMS no se instala con la distribución predeterminada porque dependen de un proveedor externo, pero puede encontrar algunos en %s +PDFAddressForging=Reglas para cajas de direcciones +HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con el Impuesto de Ventas / IVA PDFRulesForSalesTax=Reglas para el impuesto a las ventas / IVA +HideLocalTaxOnPDF=Ocultar la tasa %s en la columna Venta de impuestos +HideDescOnPDF=Ocultar descripción de productos +HideRefOnPDF=Ocultar productos ref. +HideDetailsOnPDF=Ocultar detalles de líneas de productos PlaceCustomerAddressToIsoLocation=Utilice la posición estándar francesa (La Poste) para la posición de la dirección del cliente Library=Biblioteca UrlGenerationParameters=Parámetros para asegurar URLs SecurityTokenIsUnique=Use un parámetro de clave segura único para cada URL EnterRefToBuildUrl=Ingrese la referencia para el objeto %s GetSecuredUrl=Obtener URL calculado +ButtonHideUnauthorized=Ocultar botones para usuarios no administradores para acciones no autorizadas en lugar de mostrar botones deshabilitados en gris OldVATRates=Tasa de IVA anterior NewVATRates=Nueva tasa de IVA PriceBaseTypeToChange=Modificar en precios con el valor de referencia base definido en +MassConvert=Lanzar la conversión a granel String=Cuerda Int=Entero Float=Flotador @@ -218,11 +311,21 @@ Boolean=Boolean (una casilla de verificación) ExtrafieldSelect =Seleccionar lista ExtrafieldSelectList =Seleccionar de la mesa ExtrafieldSeparator=Separador (no un campo) +ExtrafieldRadio=Botones de radio (solo una opción) ExtrafieldCheckBox=Casillas de verificación ExtrafieldCheckBoxFromList=Casillas de verificación de la mesa ExtrafieldLink=Enlace a un objeto ComputedFormula=Campo computado +ComputedFormulaDesc=Puede ingresar aquí una fórmula usando otras propiedades de objeto o cualquier código PHP para obtener un valor computado dinámico. Puedes usar cualquier fórmula compatible con PHP incluyendo "?" operador de condición y siguiente objeto global: $ db, $ conf, $ langs, $ mysoc, $ usuario, $ objeto .
ADVERTENCIA : Solo algunas propiedades de $ object pueden estar disponibles. Si necesita una propiedad no cargada, solo busque el objeto en su fórmula como en el segundo ejemplo.
El uso de un campo computado significa que no puede ingresar ningún valor desde la interfaz. Además, si hay un error de sintaxis, la fórmula puede no devolver nada.

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

Ejemplo para recargar objeto
(($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> fetch ($ obj-> id? $ obj-> id: ($ obj-> rowid? $ obj-> rowid: $ object-> id ))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

Otro ejemplo de fórmula para forzar la carga del objeto y su objeto padre:
(($ reloadedobj = nueva tarea ($ db)) && ($ reloadedobj-> fetch ($ object-> id)> 0) && ($ secondloadedobj = new Project ($ db)) && ($ secondloadedobj-> fetch ($ reloadedobj-> fk_project)> 0))? $ secondloadedobj-> ref: 'Proyecto principal no encontrado' +ExtrafieldParamHelpPassword=Si deja este campo en blanco, significa que este valor se almacenará sin cifrado (el campo solo debe estar oculto con una estrella en la pantalla).
Establezca 'auto' para usar la regla de cifrado predeterminada para guardar la contraseña en la base de datos (entonces el valor leído será solo el hash, no hay manera de recuperar el valor original) +ExtrafieldParamHelpselect=La lista de valores debe ser líneas con clave de formato, valor (donde la clave no puede ser '0')

por ejemplo:
1, valor1
2, valor2
código3, valor3
...

Para tener la lista dependiendo de otra lista de atributos complementarios:
1, value1 | options_ parent_list_code : parent_key
2, value2 | options_ parent_list_code : parent_key

Para tener la lista dependiendo de otra lista:
1, valor1 | parent_list_code : parent_key
2, valor2 | parent_list_code : parent_key +ExtrafieldParamHelpcheckbox=La lista de valores debe ser líneas con clave de formato, valor (donde la clave no puede ser '0')

por ejemplo:
1, valor1
2, valor2
3, valor3
... +ExtrafieldParamHelpradio=La lista de valores debe ser líneas con clave de formato, valor (donde la clave no puede ser '0')

por ejemplo:
1, valor1
2, valor2
3, valor3
... +ExtrafieldParamHelpsellist=La lista de valores proviene de una tabla.
Sintaxis: table_name: label_field: id_field :: filter
Ejemplo: c_typent: libelle: id :: filter

- idfilter es necesariamente una clave int primaria
- el filtro puede ser una prueba simple (por ejemplo, activo = 1) para mostrar solo el valor activo
También puede usar $ ID $ en el filtro, que es la identificación actual del objeto actual
Para hacer un SELECCIONAR en filtro usa $ SEL $
Si desea filtrar en campos adicionales use la sintaxis extra.fieldcode = ... (donde código de campo es el código de campo adicional)

Para tener la lista dependiendo de otra lista de atributos complementarios:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Para tener la lista dependiendo de otra lista:
c_typent: libelle: id: parent_list_code | parent_column: filter +ExtrafieldParamHelpchkbxlst=La lista de valores proviene de una tabla.
Sintaxis: table_name: label_field: id_field :: filter
Ejemplo: c_typent: libelle: id :: filter

El filtro puede ser una prueba simple (por ejemplo, activo = 1) para mostrar solo el valor activo
También puede usar $ ID $ en el filtro, que es la identificación actual del objeto actual
Para hacer un SELECCIONAR en filtro usa $ SEL $
Si desea filtrar en campos adicionales use la sintaxis extra.fieldcode = ... (donde código de campo es el código de campo adicional)

Para tener la lista dependiendo de otra lista de atributos complementarios:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Para tener la lista dependiendo de otra lista:
c_typent: libelle: id: parent_list_code | parent_column: filter +ExtrafieldParamHelplink=Los parámetros deben ser ObjectName: Classpath
Sintaxis: ObjectName: Classpath
Ejemplos:
Societe: societe / class / societe.class.php
Contacto: contact / class / contact.class.php LibraryToBuildPDF=Biblioteca utilizada para la generación de PDF +LocalTaxDesc=Algunos países pueden aplicar dos o tres impuestos en cada línea de factura. Si este es el caso, elija el tipo para el segundo y tercer impuesto y su tasa. Los tipos posibles son:
1: el impuesto local se aplica a los productos y servicios sin IVA (el impuesto local se calcula sobre el monto sin impuestos)
2: el impuesto local se aplica a los productos y servicios, incluido el IVA
3: el impuesto local se aplica a los productos sin IVA (el impuesto local se calcula sobre el monto sin impuestos)
4: el impuesto local se aplica a los productos, incluido el IVA
5: el impuesto local se aplica a los servicios sin IVA (el impuesto local se calcula sobre el monto sin impuestos)
6: el impuesto local se aplica a los servicios, incluido el IVA (el impuesto local se calcula sobre el monto + impuesto) LinkToTestClickToDial=Ingrese un número de teléfono para llamar y mostrar un enlace para probar la URL de ClickToDial para el usuario %s RefreshPhoneLink=Actualizar enlace LinkToTest=Enlace de clic generado para el usuario %s(haga clic en el número de teléfono para probar) @@ -230,74 +333,152 @@ KeepEmptyToUseDefault=Manténgalo vacío para usar el valor predeterminado DefaultLink=Enlace predeterminado ValueOverwrittenByUserSetup=Advertencia, este valor puede ser sobrescrito por la configuración específica del usuario (cada usuario puede establecer su propia URL de clicktodial) ExternalModule=Módulo externo: instalado en el directorio %s +BarcodeInitForthird-parties=Inicio masivo de código de barras para terceros. BarcodeInitForProductsOrServices=Inicialización o reinicio masivo del código de barras para productos o servicios CurrentlyNWithoutBarCode=Actualmente, tiene %s registros en %s %s sin código de barras definido. InitEmptyBarCode=Valor inicial para los próximos %s registros vacíos EraseAllCurrentBarCode=Borrar todos los valores actuales del código de barras ConfirmEraseAllCurrentBarCode=¿Seguro que quieres borrar todos los valores actuales del código de barras? AllBarcodeReset=Todos los valores del código de barras han sido eliminados +NoBarcodeNumberingTemplateDefined=Ninguna plantilla de código de barras de numeración habilitada en la configuración del módulo de código de barras. +ShowDetailsInPDFPageFoot=Agregue más detalles al pie de página, como la dirección de la empresa o los nombres de los gerentes (además de las identificaciones profesionales, el capital de la empresa y el número de IVA). +NoDetails=No hay detalles adicionales en el pie de página. DisplayCompanyManagers=Mostrar nombres de administrador DisplayCompanyInfoAndManagers=Mostrar los nombres de administrador y dirección de la compañía +EnableAndSetupModuleCron=Si desea que esta factura recurrente se genere automáticamente, el módulo * %s * debe estar habilitado y configurado correctamente. De lo contrario, la generación de facturas debe hacerse manualmente desde esta plantilla usando el botón * Crear *. Tenga en cuenta que incluso si habilita la generación automática, puede iniciar la generación manual de forma segura. No es posible generar duplicados para el mismo período. +ModuleCompanyCodeCustomerAquarium=%s seguido de un código de cliente para un código de contabilidad de cliente +ModuleCompanyCodeSupplierAquarium=%s seguido de un código de proveedor para un código de contabilidad de proveedor ModuleCompanyCodePanicum=Devuelve un código de contabilidad vacío. +ModuleCompanyCodeDigitaria=El código contable depende del código de terceros. El código se compone del carácter "C" en la primera posición, seguido de los primeros 5 caracteres del código de terceros. Use3StepsApproval=De forma predeterminada, los pedidos de compra deben ser creados y aprobados por 2 usuarios diferentes (un paso / usuario para crear y un paso / usuario para aprobar. Tenga en cuenta que si el usuario tiene ambos permisos para crear y aprobar, un paso / usuario será suficiente) . Puede solicitar con esta opción que presente un tercer paso / aprobación del usuario, si el monto es mayor que un valor dedicado (por lo que se necesitarán 3 pasos: 1 = validación, 2 = primera aprobación y 3 = segunda aprobación si el monto es suficiente).
Configure esto como vacío si una aprobación (2 pasos) es suficiente, configúrelo a un valor muy bajo (0.1) si siempre se requiere una segunda aprobación (3 pasos). UseDoubleApproval=Utilice una aprobación de 3 pasos cuando la cantidad (sin impuestos) sea más alta que ... +WarningPHPMail=ADVERTENCIA: a menudo es mejor configurar los correos electrónicos salientes para usar el servidor de correo electrónico de su proveedor en lugar de la configuración predeterminada. Algunos proveedores de correo electrónico (como Yahoo) no le permiten enviar un correo electrónico desde otro servidor que no sea su propio servidor. Su configuración actual utiliza el servidor de la aplicación para enviar correo electrónico y no el servidor de su proveedor de correo electrónico, por lo que algunos destinatarios (el compatible con el protocolo DMARC restrictivo) le preguntarán a su proveedor de correo electrónico si pueden aceptar su correo electrónico y algunos proveedores de correo electrónico. (como Yahoo) puede responder "no" porque el servidor no es de ellos, por lo que pocos de sus correos electrónicos enviados no serán aceptados (tenga cuidado también con la cuota de envío de su proveedor de correo electrónico).
Si su proveedor de correo electrónico (como Yahoo) tiene esta restricción, debe cambiar la configuración de correo electrónico para elegir el otro método "Servidor SMTP" e ingresar el servidor SMTP y las credenciales proporcionadas por su proveedor de correo electrónico. WarningPHPMail2=Si su proveedor SMTP de correo electrónico necesita restringir el cliente de correo electrónico a algunas direcciones IP (muy raras), esta es la dirección IP del agente de usuario de correo (MUA) para su aplicación ERP CRM: %s . ClickToShowDescription=Haga clic para mostrar la descripción +DependsOn=Este módulo necesita el módulo (s) RequiredBy=Este módulo es requerido por el módulo (s) +TheKeyIsTheNameOfHtmlField=Este es el nombre del campo HTML. Se requiere conocimiento técnico para leer el contenido de la página HTML para obtener el nombre clave de un campo. +PageUrlForDefaultValues=Debe ingresar la ruta relativa de la URL de la página. Si incluye parámetros en la URL, los valores predeterminados serán efectivos si todos los parámetros se configuran en el mismo valor. +PageUrlForDefaultValuesCreate=
Ejemplo:
Para el formulario para crear un nuevo tercero, es %s .
Para la URL de los módulos externos instalados en el directorio personalizado, no incluya "custom /", así que use la ruta como mymodule / mypage.php y no custom / mymodule / mypage.php.
Si desea un valor predeterminado solo si la URL tiene algún parámetro, puede usar %s +PageUrlForDefaultValuesList=
Ejemplo:
Para la página que enumera a terceros, es %s .
Para la URL de los módulos externos instalados en el directorio personalizado, no incluya "custom /", así que use una ruta como mymodule / mypagelist.php y no custom / mymodule / mypagelist.php.
Si desea un valor predeterminado solo si la URL tiene algún parámetro, puede usar %s +EnableDefaultValues=Habilitar la personalización de los valores por defecto. +GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código. Para cambiar este valor, debe editarlo desde Home-Setup-translation. WarningSettingSortOrder=Advertencia: establecer un orden de clasificación predeterminado puede dar como resultado un error técnico al ir a la página de la lista si el campo es un campo desconocido. Si experimenta dicho error, vuelva a esta página para eliminar el orden de clasificación predeterminado y restablecer el comportamiento predeterminado. ProductDocumentTemplates=Plantillas de documentos para generar documentos de productos FreeLegalTextOnExpenseReports=Texto legal gratuito en informes de gastos WatermarkOnDraftExpenseReports=Marca de agua en los borradores de informes de gastos AttachMainDocByDefault=Establezca esto en 1 si desea adjuntar el documento principal al correo electrónico de forma predeterminada (si corresponde) +DAV_ALLOW_PRIVATE_DIR=Habilitar el directorio privado genérico (directorio dedicado de WebDAV llamado "privado" - es necesario iniciar sesión) +DAV_ALLOW_PRIVATE_DIRTooltip=El directorio privado genérico es un directorio WebDAV al que cualquiera puede acceder con su inicio de sesión / aprobación de la aplicación. +DAV_ALLOW_PUBLIC_DIR=Habilitar el directorio público genérico (directorio dedicado de WebDAV llamado "público" - no se requiere inicio de sesión) +DAV_ALLOW_PUBLIC_DIRTooltip=El directorio público genérico es un directorio WebDAV al que todos pueden acceder (en modo de lectura y escritura), sin necesidad de autorización (cuenta de inicio de sesión / contraseña). +DAV_ALLOW_ECM_DIR=Habilitar el directorio privado DMS / ECM (directorio raíz del módulo DMS / ECM - es necesario iniciar sesión) +DAV_ALLOW_ECM_DIRTooltip=El directorio raíz donde se cargan manualmente todos los archivos cuando se utiliza el módulo DMS / ECM. De manera similar al acceso desde la interfaz web, necesitará un nombre de usuario / contraseña válido con permisos adecuados para acceder a ella. +Module0Name=Usuarios y Grupos Module0Desc=Gestión de usuarios / empleados y grupos +Module1Desc=Gestión de empresas y contactos (clientes, prospectos ...). Module2Desc=Administración comercial +Module10Name=Contabilidad (simplificada) +Module10Desc=Informes contables simples (revistas, facturación) basados en el contenido de la base de datos. No utiliza ninguna tabla de contabilidad. Module20Name=Cotizaciones Module20Desc=Gestión de cotizaciones/propuestas comerciales +Module22Name=Correos masivos Module23Desc=Monitoreo del consumo de energías +Module25Name=Ordenes de venta +Module25Desc=Gestión de órdenes de venta Module30Name=Facturas +Module30Desc=Gestión de facturas y notas de crédito para clientes. Gestión de facturas y notas de crédito para proveedores. Module40Name=Vendedores +Module40Desc=Proveedores y gestión de compras (órdenes de compra y facturación). Module42Desc=Instalaciones de registro (archivo, syslog, ...). Dichos registros son para fines técnicos / de depuración. Module49Desc=Gestión del editor Module51Name=Envíos masivos Module51Desc=Gerencia de correo de papel en masa +Module54Desc=Gestión de contratos (servicios o suscripciones recurrentes). Module55Desc=Gestión del código de barras Module56Desc=Integración de telefonía +Module57Name=Pagos de débito directo bancario +Module57Desc=Gestión de órdenes de pago de débito directo. Incluye generación de archivo SEPA para países europeos. Module58Desc=Integración de un sistema ClickToDial (Asterisk, ...) Module59Desc=Agregar función para generar una cuenta de Bookmark4u desde una cuenta de Dolibarr Module70Desc=Gestión de intervención Module75Name=Notas de gastos y viaje Module75Desc=Gestión de gastos y viajes Module80Name=Envíos +Module85Name=Bancos y efectivo Module85Desc=Gestión de cuentas bancarias o de efectivo +Module100Name=Sitio externo +Module100Desc=Agregue un enlace a un sitio web externo como icono del menú principal. El sitio web se muestra en un marco debajo del menú superior. Module105Desc=Mailman o interfaz SPIP para el módulo miembro +Module200Desc=Sincronización de directorios LDAP Module210Desc=Integración PostNuke Module240Name=Exportación de datos +Module240Desc=Herramienta para exportar datos de Dolibarr (con asistentes). Module250Name=Importaciones de datos +Module250Desc=Herramienta para importar datos a Dolibarr (con asistentes) Module310Desc=Gestión de miembros de la Fundación +Module320Desc=Añadir un feed RSS a las páginas de Dolibarr. +Module330Name=Marcadores y accesos directos +Module330Desc=Cree accesos directos, siempre accesibles, a las páginas internas o externas a las que accede con frecuencia. +Module400Name=Proyectos o Leads +Module400Desc=Gestión de proyectos, leads / oportunidades y / o tareas. También puede asignar cualquier elemento (factura, pedido, propuesta, intervención, ...) a un proyecto y obtener una vista transversal desde la vista del proyecto. Module410Desc=Integración de Webcalendar Module500Desc=Gestión de otros gastos (impuestos a la venta, impuestos sociales o fiscales, dividendos, ...) +Module510Name=Sueldos +Module510Desc=Registrar y rastrear los pagos de los empleados +Module520Name=Prestamos Module520Desc=Gestión de préstamos +Module600Desc=Enviar notificaciones por correo electrónico desencadenadas por un evento empresarial: por usuario (configuración definida en cada usuario), por contactos de terceros (configuración definida en cada tercero) o por correos electrónicos específicos +Module600Long=Tenga en cuenta que este módulo envía correos electrónicos en tiempo real cuando se produce un evento empresarial específico. Si está buscando una función para enviar recordatorios por correo electrónico para eventos de agenda, ingrese a la configuración del módulo Agenda. +Module610Desc=Creación de variantes de producto (color, tamaño, etc.). +Module770Name=Reporte de gastos +Module770Desc=Gestionar informes de gastos reclamaciones (transporte, comida, ...) +Module1120Name=Propuestas Comerciales de Proveedores Module1120Desc=Solicitar propuesta comercial del vendedor y precios Module1200Desc=Integración Mantis Module1520Name=Generación de documentos +Module1520Desc=Generación masiva de documentos por email. Module1780Name=Etiquetas / Categorías +Module1780Desc=Crear etiquetas / categoría (productos, clientes, proveedores, contactos o miembros) +Module2000Desc=Permitir que los campos de texto sean editados / formateados usando CKEditor (html) +Module2200Desc=Usa expresiones matemáticas para autogeneración de precios. Module2300Name=Trabajos programados Module2300Desc=Gestión programada de trabajos (alias cron o crono tabla) Module2400Name=Eventos / Agenda +Module2400Desc=Eventos de pista. Registre eventos automáticos con fines de seguimiento o registre eventos o reuniones manuales. Este es el módulo principal para una buena gestión de relaciones con clientes o proveedores. Module2500Desc=Sistema de gestión de documentos / gestión electrónica de contenidos. Organización automática de sus documentos generados o almacenados. Compártelos cuando lo necesites. Module2600Name=API / servicios web (servidor SOAP) Module2600Desc=Habilite el servidor Dolibarr SOAP que proporciona servicios de API Module2610Name=API / servicios web (servidor REST) Module2610Desc=Habilite el servidor REST Dolibarr proporcionando servicios API Module2660Name=Llamar a WebServices (cliente SOAP) +Module2660Desc=Habilitar el cliente de servicios web de Dolibarr (puede usarse para enviar datos / solicitudes a servidores externos. Actualmente solo se admiten pedidos de compra). +Module2700Desc=Utilice el servicio Gravatar en línea (www.gravatar.com) para mostrar la foto de los usuarios / miembros (que se encuentra en sus correos electrónicos). Necesita acceso a internet Module2900Desc=Capacidades de conversiones GeoIP Maxmind +Module3200Desc=Habilitar un registro inalterable de eventos empresariales. Los eventos se archivan en tiempo real. El registro es una tabla de solo lectura de eventos encadenados que se pueden exportar. Este módulo puede ser obligatorio para algunos países. Module4000Desc=Gestión de recursos humanos (gestión del departamento, contratos de empleados y sentimientos) Module5000Name=Multi-compañía Module5000Desc=Le permite administrar múltiples compañías Module6000Desc=Gestión de flujo de trabajo (creación automática de objeto y / o cambio de estado automático) +Module10000Desc=Crea sitios web (públicos) con un editor WYSIWYG. Simplemente configure su servidor web (Apache, Nginx, ...) para que apunte al directorio dedicado de Dolibarr para tenerlo en línea en Internet con su propio nombre de dominio. +Module20000Name=Gestión de solicitudes de licencia +Module20000Desc=Definir y rastrear las solicitudes de permiso de los empleados. +Module39000Desc=Lotes, números de serie, gestión de la fecha de caducidad de los productos. +Module40000Name=Multi moneda +Module40000Desc=Utilizar monedas alternativas en precios y documentos. +Module50000Desc=Ofrecer a los clientes una página de pago en línea PayBox (tarjetas de crédito / débito). Esto se puede usar para permitir que sus clientes realicen pagos ad-hoc o pagos relacionados con un objeto Dolibarr específico (factura, pedido, etc.) +Module50200Desc=Ofrezca a los clientes una página de pago en línea de PayPal (cuenta de PayPal o tarjetas de crédito / débito). Esto se puede usar para permitir que sus clientes realicen pagos ad-hoc o pagos relacionados con un objeto Dolibarr específico (factura, pedido, etc.) +Module50300Name=Raya +Module50300Desc=Ofrezca a los clientes una página de pago en línea de Stripe (tarjetas de crédito / débito). Esto se puede usar para permitir que sus clientes realicen pagos ad-hoc o pagos relacionados con un objeto Dolibarr específico (factura, pedido, etc.) +Module50400Name=Contabilidad (doble entrada) +Module50400Desc=Gestión contable (entradas dobles, soporte de contabilidad general y auxiliar). Exportar el libro mayor en varios otros formatos de software de contabilidad. +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 Module60000Desc=Módulo para gestionar comisiones +Module62000Desc=Añadir características para gestionar Incoterms. +Module63000Desc=Gestionar recursos (impresoras, coches, salas, ...) para asignar a eventos. Permission11=Lea las facturas de los clientes Permission12=Crear/modificar facturas de clientes Permission13=Desvalorizar facturas de clientes @@ -314,6 +495,9 @@ Permission27=Eliminar cotizaciones Permission28=Exportar las cotizaciones Permission31=Leer productos Permission36=Ver / administrar productos ocultos +Permission41=Leer proyectos y tareas (proyectos compartidos y proyectos para los que estoy en contacto). También puede ingresar el tiempo consumido, para mí o para mi jerarquía, en las tareas asignadas (hoja de horas) +Permission42=Crear / modificar proyectos (proyecto compartido y proyectos para los que estoy en contacto). También puede crear tareas y asignar usuarios a proyectos y tareas. +Permission44=Eliminar proyectos (proyectos compartidos y proyectos para los que estoy en contacto) Permission45=Proyectos de exportación Permission61=Leer intervenciones Permission67=Intervenciones de exportación @@ -336,18 +520,23 @@ Permission109=Eliminar envíos Permission111=Leer cuentas financieras Permission112=Crear/modificar / eliminar y comparar transacciones Permission113=Configurar cuentas financieras (crear, administrar categorías) +Permission114=Conciliar transacciones Permission115=Exportar transacciones y estados de cuenta Permission116=Transferencias entre cuentas +Permission117=Gestionar cheques despachando Permission121=Leer terceros vinculados al usuario Permission122=Crear/modificar terceros vinculados al usuario Permission125=Eliminar terceros vinculados al usuario Permission126=Exportar terceros +Permission141=Lee todos los proyectos y tareas (también proyectos privados para los que no soy contacto) +Permission142=Crear / modificar todos los proyectos y tareas (también proyectos privados para los cuales no soy un contacto) Permission144=Eliminar todos los proyectos y tareas (también proyectos privados para los que no estoy en contacto) Permission146=Leer proveedores Permission147=Leer estadísticas Permission151=Lea las órdenes de pago de débito directo Permission152=Crear/modificar una orden de pago de débito directo Permission153=Enviar / Transmitir órdenes de pago de débito directo +Permission154=Registro de Créditos / Rechazos de órdenes de pago por domiciliación bancaria. Permission161=Leer contratos/suscripciones Permission163=Activar un servicio / suscripción de un contrato Permission164=Deshabilitar un servicio / suscripción de un contrato @@ -358,6 +547,15 @@ Permission173=Eliminar viajes y gastos Permission174=Lee todos los viajes y gastos Permission178=Viajes y gastos de exportación Permission180=Leer proveedores +Permission181=Leer órdenes de compra +Permission182=Crear / modificar órdenes de compra. +Permission183=Validar pedidos de compra +Permission184=Aprobar ordenes de compra +Permission185=Ordenar o cancelar pedidos de compra +Permission186=Recibe órdenes de compra +Permission187=Cerrar órdenes de compra +Permission188=Cancelar órdenes de compra +Permission194=Lee las líneas de ancho de banda Permission203=Ordenar pedidos de conexiones Permission204=Solicitar conexiones Permission205=Gestionar las conexiones @@ -378,15 +576,20 @@ Permission244=Ver los contenidos de las categorías ocultas Permission251=Leer otros usuarios y grupos PermissionAdvanced251=Leer otros usuarios Permission252=Permisos de lectura de otros usuarios +Permission253=Crea / modifica otros usuarios, grupos y permisos. PermissionAdvanced253=Crear/modificar usuarios y permisos internos / externos Permission254=Crear/modificar solo usuarios externos Permission256=Eliminar o deshabilitar a otros usuarios +Permission262=Extienda el acceso a todos los terceros (no solo a terceros para los cuales ese usuario es un representante de ventas).
No es efectivo para usuarios externos (siempre se limita a ellos mismos para propuestas, pedidos, facturas, contratos, etc.).
No es efectivo para proyectos (solo reglas sobre permisos de proyectos, visibilidad y asignaciones). Permission271=Lee CA Permission272=Leer facturas Permission273=Emitir facturas Permission281=Leer contactos Permission291=Tarifas de lectura Permission292=Establecer permisos sobre las tarifas +Permission293=Modificar las tarifas del cliente. +Permission300=Leer codigos de barras +Permission301=Crear / modificar códigos de barras Permission311=Leer Servicios Permission312=Asignar servicio / suscripción al contrato Permission331=Leer marcadores @@ -400,6 +603,10 @@ Permission401=Leer descuentos Permission402=Crear/modificar descuentos Permission403=Validar descuentos Permission404=Eliminar descuentos +Permission430=Utilice la barra de depuración +Permission511=Leer pagos de salarios. +Permission512=Crear / modificar pagos de salarios. +Permission514=Eliminar pagos de salarios. Permission517=Salarios de exportación Permission520=Leer préstamos Permission522=Crear/modificar préstamos @@ -409,6 +616,9 @@ Permission527=Préstamos a la exportación Permission531=Leer Servicios Permission536=Ver / administrar servicios ocultos Permission538=Servicios de exportación +Permission650=Leer las listas de materiales +Permission651=Crear / actualizar facturas de materiales +Permission652=Eliminar listas de materiales Permission701=Leer donaciones Permission771=Lea los informes de gastos (el suyo y sus subordinados) Permission772=Crear/modificar informes de gastos @@ -422,12 +632,34 @@ Permission1101=Leer órdenes de entrega Permission1102=Crear/modificar órdenes de entrega Permission1104=Validar órdenes de entrega Permission1109=Eliminar pedidos de entrega +Permission1121=Leer propuestas de proveedores +Permission1122=Crear / modificar propuestas de proveedores. +Permission1123=Validar propuestas de proveedores. +Permission1124=Enviar propuestas de proveedores +Permission1125=Eliminar propuestas de proveedores +Permission1126=Cerrar las solicitudes de precios de proveedores Permission1181=Leer proveedores +Permission1182=Leer órdenes de compra +Permission1183=Crear / modificar órdenes de compra. +Permission1184=Validar pedidos de compra +Permission1185=Aprobar ordenes de compra +Permission1186=Ordenar órdenes de compra +Permission1187=Acuse de recibo de las órdenes de compra +Permission1188=Eliminar órdenes de compra +Permission1190=Aprobar (segunda aprobación) órdenes de compra Permission1201=Obtener el resultado de una exportación Permission1202=Crear / Modificar una exportación +Permission1231=Leer facturas de proveedores +Permission1232=Crear / modificar facturas de proveedores +Permission1233=Validar facturas de proveedores +Permission1234=Eliminar facturas de proveedores +Permission1235=Enviar facturas de proveedores por correo electrónico +Permission1236=Exportar facturas de proveedores, atributos y pagos. +Permission1237=Órdenes de compra de exportación y sus detalles. Permission1251=Ejecutar las importaciones masivas de datos externos en la base de datos (carga de datos) Permission1321=Exportar facturas, atributos y pagos de clientes Permission1322=Reabrir una factura paga +Permission1421=Exportación de pedidos y atributos de venta. Permission2414=Exportar acciones / tareas de otros Permission2501=Leer / Descargar documentos Permission2502=Descargar documentos @@ -435,6 +667,12 @@ Permission2503=Presentar o eliminar documentos Permission2515=Configurar directorios de documentos Permission2801=Use el cliente FTP en modo de lectura (navegue y descargue solamente) Permission2802=Utilice el cliente FTP en modo de escritura (eliminar o cargar archivos) +Permission4004=Empleados de exportación +Permission10001=Leer el contenido del sitio web +Permission10002=Crear / modificar el contenido del sitio web (contenido html y javascript) +Permission10003=Crear / modificar el contenido del sitio web (código php dinámico). Peligroso, debe reservarse a desarrolladores restringidos. +Permission20001=Lea las solicitudes de licencia (su licencia y las de sus subordinados) +Permission20002=Cree / modifique sus solicitudes de licencia (su licencia y las de sus subordinados) Permission20003=Eliminar solicitudes de permiso Permission20004=Lea todas las solicitudes de licencia (incluso del usuario no subordinado) Permission20005=Crear / modificar solicitudes de abandono para todos (incluso para usuarios no subordinados) @@ -443,38 +681,77 @@ Permission23001=Leer trabajo programado Permission23002=Crear / actualizar trabajo programado Permission23003=Eliminar trabajo programado Permission23004=Ejecutar trabajo programado +Permission50101=Use el punto de venta Permission50201=Leer transacciones Permission50202=Transacciones de importación +Permission50401=Enlazar productos y facturas con cuentas contables. +Permission50411=Leer operaciones en el libro mayor +Permission50412=Escribir / editar operaciones en el libro mayor. +Permission50420=Reportes y reportes de exportación (facturación, balance, revistas, libro mayor) +Permission50440=Gestionar plan de cuentas, configuración de contabilidad. +Permission51002=Crear / actualizar activos +Permission51005=Configuración de tipos de activos Permission54001=Impresión Permission59003=Lea cada margen de usuario Permission63004=Enlace de recursos a eventos de la agenda +DictionaryCompanyType=Tipos de terceros +DictionaryCompanyJuridicalType=Entidades legales de terceros +DictionaryProspectLevel=Potencial de prospecto +DictionaryCanton=Estados / Provincias +DictionaryCivility=Título de civilidad +DictionarySocialContributions=Tipos de impuestos sociales o fiscales. DictionaryVAT=Tipos de IVA o tasas de impuestos a las ventas DictionaryRevenueStamp=Cantidad de estampillas fiscales +DictionaryPaymentConditions=Términos de pago +DictionaryTypeContact=Contacto / tipos de direcciones +DictionaryTypeOfContainer=Sitio web - Tipo de páginas web / contenedores DictionaryEcotaxe=Ecotax (RAEE) +DictionaryFormatCards=Formatos de tarjeta DictionaryFees=Informe de gastos: tipos de líneas de informe de gastos DictionarySendingMethods=Métodos de envío +DictionaryStaff=Número de empleados DictionaryAvailability=Retraso en la entrega DictionarySource=Origen de las propuestas / órdenes DictionaryAccountancyCategory=Grupos personalizados para informes DictionaryAccountancysystem=Modelos para el cuadro de cuentas DictionaryAccountancyJournal=Libros contables +DictionaryEMailTemplates=Plantillas de correo electrónico +DictionaryMeasuringUnits=Unidades de medida DictionaryProspectStatus=Estado de la perspectiva +DictionaryHolidayTypes=Tipos de licencia +DictionaryOpportunityStatus=Estado de plomo para proyecto / lider +BackToModuleList=Volver a la lista de módulos +BackToDictionaryList=Volver a la lista de diccionarios TypeOfRevenueStamp=Tipo de sello fiscal +VATManagement=Gestión de impuestos de ventas +VATIsUsedDesc=De forma predeterminada, al crear prospectos, facturas, pedidos, etc., la tasa del impuesto a las ventas sigue la regla estándar activa:
Si el vendedor no está sujeto al impuesto sobre las ventas, entonces el impuesto sobre las ventas se establece de manera predeterminada en 0. Fin de la regla.
Si (el país del vendedor = el país del comprador), entonces el impuesto sobre las ventas por defecto es igual al impuesto sobre las ventas del producto en el país del vendedor. Fin de la regla.
Si el vendedor y el comprador están en la Comunidad Europea y los productos son productos relacionados con el transporte (transporte, envío, línea aérea), el IVA predeterminado es 0. Esta regla depende del país del vendedor; consulte con su contador. El IVA debe ser pagado por el comprador a la oficina de aduanas de su país y no al vendedor. Fin de la regla.
Si el vendedor y el comprador pertenecen a la Comunidad Europea y el comprador no es una empresa (con un número de IVA intracomunitario registrado), entonces el IVA está predeterminado para la tasa de IVA del país del vendedor. Fin de la regla.
Si el vendedor y el comprador están en la Comunidad Europea y el comprador es una empresa (con un número de IVA intracomunitario registrado), el IVA es 0 por defecto. Fin de la regla.
En cualquier otro caso, el valor predeterminado propuesto es Impuesto de ventas = 0. Fin de la regla. +VATIsNotUsedDesc=Por defecto, el impuesto a las ventas propuesto es 0, que se puede utilizar para casos como asociaciones, individuos o pequeñas empresas. +VATIsUsedExampleFR=En Francia, significa empresas u organizaciones que tienen un sistema fiscal real (real real o normal simplificado). Un sistema en el que se declara el IVA. +VATIsNotUsedExampleFR=En Francia, significa asociaciones que no están declaradas sin impuestos de ventas o compañías, organizaciones o profesiones liberales que han elegido el sistema fiscal de microempresas (impuestos a las ventas en franquicia) y pagaron una franquicia Impuestos a las ventas sin declaración de impuestos a las ventas. Esta opción mostrará la referencia "Impuesto de ventas no aplicable - art-293B de CGI" en las facturas. LocalTax1IsNotUsed=No use el segundo impuesto +LocalTax1IsUsedDesc=Use un segundo tipo de impuesto (que no sea el primero) +LocalTax1IsNotUsedDesc=No use otro tipo de impuesto (que no sea el primero) LocalTax1Management=Segundo tipo de impuesto LocalTax2IsNotUsed=No use el tercer impuesto +LocalTax2IsUsedDesc=Use un tercer tipo de impuesto (que no sea el primero) +LocalTax2IsNotUsedDesc=No use otro tipo de impuesto (que no sea el primero) LocalTax2Management=Tercer tipo de impuesto +LocalTax1IsUsedDescES=La tasa de RE por defecto al crear prospectos, facturas, pedidos, etc. sigue la regla estándar activa:
Si el comprador no está sujeto a RE, RE por defecto = 0. Fin de la regla.
Si el comprador está sujeto a RE, entonces RE es el predeterminado. Fin de la regla.
LocalTax1IsNotUsedDescES=Por defecto, la RE propuesta es 0. Fin de la regla. LocalTax1IsUsedExampleES=En España son profesionales sujetos a algunas secciones específicas del IAE español. LocalTax1IsNotUsedExampleES=En España son profesionales y sociedades y están sujetas a ciertas secciones del IAE español. +LocalTax2IsUsedDescES=La tasa de IRPF por defecto al crear prospectos, facturas, pedidos, etc. sigue la regla estándar activa:
Si el vendedor no está sujeto a IRPF, entonces IRPF por defecto = 0. Fin de la regla.
Si el vendedor está sujeto a IRPF, entonces el IRPF por defecto. Fin de la regla.
LocalTax2IsNotUsedDescES=Por defecto, el IRPF propuesto es 0. Fin de la regla. LocalTax2IsUsedExampleES=En España, autónomos y profesionales independientes que prestan servicios y empresas que han elegido el sistema impositivo de los módulos. +LocalTax2IsNotUsedExampleES=En España son empresas no sujetas al régimen fiscal de los módulos. CalcLocaltax=Informes sobre impuestos locales CalcLocaltax1Desc=Los informes de impuestos locales se calculan con la diferencia entre las ventas locales y las compras locales. CalcLocaltax2Desc=Los informes de impuestos locales son el total de compras de impuestos locales CalcLocaltax3Desc=Los informes de impuestos locales son el total de las ventas de impuestos locales LabelUsedByDefault=Etiqueta usada por defecto si no se puede encontrar traducción para el código LabelOnDocuments=Etiqueta en documentos +LabelOrTranslationKey=Etiqueta o clave de traducción +NbOfDays=Numero de dias AtEndOfMonth=Al final del mes CurrentNext=Actual / Siguiente Offset=Compensar @@ -489,6 +766,7 @@ DatabasePort=Puerto de base DatabaseUser=Usuario de la base DatabasePassword=Contraseña de la base Tables=Mesas +NbOfRecord=No. de registros DriverType=Tipo de controlador SummarySystem=Resumen de información del sistema SummaryConst=Lista de todos los parámetros de configuración de Dolibarr @@ -499,17 +777,36 @@ Skin=Tema de la piel DefaultSkin=Tema predeterminado de la piel MaxSizeList=Longitud máxima para la lista DefaultMaxSizeList=Longitud máxima predeterminada para las listas +DefaultMaxSizeShortList=Longitud máxima predeterminada para listas cortas (es decir, en la tarjeta del cliente) MessageLogin=Mensaje de la página de inicio LoginPage=Página de inicio de sesión PermanentLeftSearchForm=Formulario de búsqueda permanente en el menú de la izquierda +EnableMultilangInterface=Habilitar soporte multilenguaje EnableShowLogo=Mostrar logo en el menú de la izquierda CompanyInfo=Empresa / Organización +CompanyIds=Identidades de la empresa / organización CompanyCurrency=Moneda principal DoNotSuggestPaymentMode=No sugiera NoActiveBankAccountDefined=No se definió una cuenta bancaria activa OwnerOfBankAccount=Propietario de la cuenta bancaria %s BankModuleNotActive=Módulo de cuentas bancarias no habilitado ShowBugTrackLink=Mostrar el link "%s" +DelaysOfToleranceDesc=Establezca el retraso antes de que aparezca un icono de alerta %s en la pantalla para el elemento tardío. +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Orden no procesada +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Orden de compra no procesada +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Propuesta no cerrada +Delays_MAIN_DELAY_PROPALS_TO_BILL=Propuesta no facturada +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Servicio para activar +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Factura del proveedor sin pagar +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Factura del cliente sin pagar +Delays_MAIN_DELAY_MEMBERS=Cuota de membresía retrasada +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Depósito de cheques no hecho +Delays_MAIN_DELAY_EXPENSEREPORTS=Informe de gastos para aprobar +SetupDescription1=Antes de comenzar a utilizar Dolibarr, se deben definir algunos parámetros iniciales y habilitar / configurar los módulos. +SetupDescription2=Las siguientes dos secciones son obligatorias (las dos primeras entradas en el menú de configuración): +SetupDescription3=%s -> %s
Parámetros básicos utilizados para personalizar el comportamiento predeterminado de su aplicación (por ejemplo, para funciones relacionadas con el país). +SetupDescription4=%s -> %s
Este software es un conjunto de muchos módulos / aplicaciones, todos más o menos independientes. Los módulos relevantes a sus necesidades deben estar habilitados y configurados. Los nuevos elementos / opciones se agregan a los menús con la activación de un módulo. +SetupDescription5=Otras entradas del menú de configuración manejan parámetros opcionales. LogEvents=Eventos de auditoría de seguridad InfoDolibarr=Sobre Dolibarr InfoBrowser=Acerca del navegador @@ -519,35 +816,67 @@ InfoDatabase=Acerca de la base InfoPerf=Sobre representaciones BrowserOS=Sistema operativo del navegador ListOfSecurityEvents=Lista de eventos de seguridad de Dolibarr +LogEventDesc=Habilitar el registro para eventos de seguridad específicos. Administradores el registro a través del menú %s - %s . Advertencia, esta característica puede generar una gran cantidad de datos en la base de datos. AreaForAdminOnly=Los parámetros de configuración solo pueden modificarse por usuarios administradores. SystemInfoDesc=La información del sistema es información técnica miscelánea que obtienes en modo solo lectura y visible solo para los administradores. +CompanyFundationDesc=Editar la información de la empresa / entidad. Haga clic en el botón "%s" o "%s" en la parte inferior de la página. +AccountantDesc=Si tiene un contador / contador externo, puede editar aquí su información. AvailableModules=Aplicación / módulos disponibles ToActivateModule=Para activar los módulos, vaya al Área de configuración (Inicio-> Configuración-> Módulos). SessionTimeOut=Tiempo de espera para la sesión +SessionExplanation=Este número garantiza que la sesión nunca caducará antes de este retraso, si el limpiador de sesión se realiza mediante el limpiador de sesión interno de PHP (y nada más). El limpiador interno de sesiones de PHP no garantiza que la sesión caduque después de este retraso. Expirará, después de este retraso, y cuando se ejecute el limpiador de sesiones, por lo que todos los accesos %s / %s , pero solo durante el acceso realizado por otras sesiones (si el valor es 0, significa que la eliminación de la sesión se realiza solo mediante un proceso externo) .
Nota: en algunos servidores con un mecanismo de limpieza de sesión externo (cron en debian, ubuntu ...), las sesiones pueden destruirse después de un período definido por una configuración externa, sin importar el valor ingresado aquí. TriggersAvailable=Disparadores disponibles +TriggersDesc=Los disparadores son archivos que modificarán el comportamiento del flujo de trabajo de Dolibarr una vez que se copien en el directorio htdocs / core / triggers . Realizan nuevas acciones, activadas en eventos Dolibarr (creación de nueva empresa, validación de facturas, ...). TriggerDisabledByName=Los desencadenantes en este archivo están deshabilitados por el sufijo -NORUN en su nombre. TriggerDisabledAsModuleDisabled=Los disparadores en este archivo están deshabilitados ya que el módulo %s está deshabilitado. TriggerAlwaysActive=Los activadores en este archivo están siempre activos, cualesquiera que sean los módulos Dolibarr activados. TriggerActiveAsModuleActive=Los disparadores en este archivo están activos ya que el módulo %s está habilitado. DictionaryDesc=Inserta todos los datos de referencia. Puede agregar sus valores a los valores predeterminados. +ConstDesc=Esta página le permite editar (anular) los parámetros que no están disponibles en otras páginas. Estos son en su mayoría parámetros reservados para desarrolladores / solución avanzada de problemas. Para obtener una lista completa de los parámetros disponibles, consulte aquí . MiscellaneousDesc=Todos los demás parámetros relacionados con la seguridad se definen aquí. LimitsSetup=Límites / configuración de precisión +LimitsDesc=Puede definir límites, precisiones y optimizaciones utilizadas por Dolibarr aquí +MAIN_MAX_DECIMALS_UNIT=Max. decimales por precios unitarios +MAIN_MAX_DECIMALS_TOT=Max. decimales para precios totales +MAIN_MAX_DECIMALS_SHOWN=Max. Decimales por precios mostrados en pantalla . Agregue un punto suspensivo ... después de este parámetro (por ejemplo, "2 ...") si desea ver " ... " con el sufijo del precio truncado. +MAIN_ROUNDING_RULE_TOT=Paso del rango de redondeo (para países donde el redondeo se realiza en otra cosa que no sea la base 10. Por ejemplo, coloque 0.05 si el redondeo se realiza con 0.05 pasos) UnitPriceOfProduct=Precio unitario neto de un producto +TotalPriceAfterRounding=Precio total (sin IVA / IVA incluido) después del redondeo ParameterActiveForNextInputOnly=Parámetro efectivo solo para la siguiente entrada +NoEventOrNoAuditSetup=No se ha registrado ningún evento de seguridad. Esto es normal si la auditoría no se ha habilitado en la página "Configuración - Seguridad - Eventos". +NoEventFoundWithCriteria=No se ha encontrado ningún evento de seguridad para este criterio de búsqueda. SeeLocalSendMailSetup=Consulte su configuración de sendmail local +BackupDesc2=Realice una copia de seguridad del contenido del directorio "documentos" ( %s ) que contiene todos los archivos cargados y generados. Esto también incluirá todos los archivos de volcado generados en el Paso 1. +BackupDesc3=Realice una copia de seguridad de la estructura y el contenido de su base de datos ( %s ) en un archivo de volcado. Para ello, puede utilizar el siguiente asistente. +BackupDescX=El directorio archivado debe almacenarse en un lugar seguro. BackupDescY=El archivo de volcado generado debe almacenarse en un lugar seguro. +BackupPHPWarning=La copia de seguridad no se puede garantizar con este método. Anterior recomendado. +RestoreDesc=Para restaurar una copia de seguridad de Dolibarr, se requieren dos pasos. +RestoreDesc2=Restaure el archivo de copia de seguridad (archivo zip, por ejemplo) del directorio "documentos" a una nueva instalación de Dolibarr o en este directorio actual de documentos ( %s ). +RestoreDesc3=Restaure la estructura de la base de datos y los datos de un archivo de volcado de respaldo en la base de datos de la nueva instalación de Dolibarr o en la base de datos de esta instalación actual ( %s ). Advertencia: una vez que se complete la restauración, debe usar un nombre de usuario / contraseña, que existía desde el momento de la copia de seguridad / instalación para volver a conectarse.
Para restaurar una base de datos de respaldo en esta instalación actual, puede seguir este asistente. RestoreMySQL=Importación de MySQL ForcedToByAModule=Esta regla es forzada a %s por un módulo activado +RunningUpdateProcessMayBeRequired=Parece que se requiere ejecutar el proceso de actualización (la versión del programa %s difiere de la versión de la base de datos %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Debe ejecutar este comando desde la línea de comando después de iniciar sesión en un shell con el usuario %s o debe agregar la opción -W al final de la línea de comandos para proporcionar una contraseña de %s. DownloadMoreSkins=Más pieles para descargar +SimpleNumRefModelDesc=Devuelve el número de referencia con el formato %syymm-nnnn donde yy es año, mm es mes y nnnn es secuencial sin restablecimiento +ShowProfIdInAddress=Mostrar identificación profesional con direcciones +ShowVATIntaInAddress=Ocultar número de IVA intracomunitario con direcciones MeteoStdMod=Modo estandar MeteoUseMod=Haz clic para usar %s TestLoginToAPI=Prueba de inicio de sesión a la API +ExternalAccess=Acceso externo / internet +MAIN_PROXY_USE=Utilice un servidor proxy (de lo contrario el acceso es directo a internet) +MAIN_PROXY_HOST=Servidor proxy: Nombre / Dirección +MAIN_PROXY_USER=Servidor proxy: Login / Usuario +DefineHereComplementaryAttributes=Defina aquí cualquier atributo adicional / personalizado que desee incluir para: %s ExtraFields=Atributos complementarios ExtraFieldsLines=Atributos complementarios (líneas) ExtraFieldsLinesRec=Atributos complementarios (líneas plantillas de facturas) ExtraFieldsSupplierOrdersLines=Atributos complementarios (líneas de pedido) ExtraFieldsSupplierInvoicesLines=Atributos complementarios (líneas de factura) +ExtraFieldsThirdParties=Atributos complementarios (tercero) +ExtraFieldsContacts=Atributos complementarios (contactos / dirección) ExtraFieldsMember=Atributos complementarios (miembro) ExtraFieldsMemberType=Atributos complementarios (tipo de miembro) ExtraFieldsCustomerInvoices=Atributos complementarios (facturas) @@ -560,52 +889,92 @@ ExtraFieldHasWrongValue=El atributo %s tiene un valor incorrecto. AlphaNumOnlyLowerCharsAndNoSpace=solo caracteres alfanuméricos y minúsculas sin espacio SendmailOptionNotComplete=Advertencia, en algunos sistemas Linux, para enviar correos electrónicos desde su correo electrónico, la configuración de ejecución de sendmail debe contener la opción -ba (parámetro mail.force_extra_parameters en su archivo php.ini). Si algunos destinatarios nunca reciben correos electrónicos, intente editar este parámetro de PHP con mail.force_extra_parameters = -ba). PathToDocuments=Camino a los documentos +SendmailOptionMayHurtBuggedMTA=La función para enviar correos electrónicos mediante el método "PHP mail direct" generará un mensaje de correo que algunos servidores de correo de recepción podrían no analizar correctamente. El resultado es que algunas personas alojadas en esas plataformas con errores no pueden leer algunos correos. Este es el caso de algunos proveedores de Internet (Ej .: Orange en Francia). Este no es un problema con Dolibarr o PHP, sino con el servidor de correo receptor. Sin embargo, puede agregar una opción MAIN_FIX_FOR_BUGGED_MTA a 1 en Configuración - Otros para modificar Dolibarr para evitar esto. Sin embargo, puede experimentar problemas con otros servidores que utilizan estrictamente el estándar SMTP. La otra solución (recomendada) es utilizar el método "biblioteca de sockets SMTP", que no tiene inconvenientes. TranslationSetup=Configuración de la traducción TranslationKeySearch=Buscar una clave o cadena de traducción TranslationOverwriteKey=Sobrescribir una cadena de traducción +TranslationDesc=Cómo configurar el idioma de visualización:
* Predeterminado / En todo el sistema: menú Inicio -> Configuración -> Mostrar
* Por usuario: haga clic en el nombre de usuario en la parte superior de la pantalla y modifique la pestaña Configuración de pantalla de usuario en la tarjeta de usuario. TranslationOverwriteDesc=También puede anular cadenas que llenan la siguiente tabla. Elija su idioma del menú desplegable "%s", inserte la cadena de clave de traducción en "%s" y su nueva traducción en "%s" +TranslationOverwriteDesc2=Puede usar la otra pestaña para ayudarlo a saber qué clave de traducción usar TranslationString=Cadena de traducción CurrentTranslationString=Cadena de traducción actual WarningAtLeastKeyOrTranslationRequired=Se requiere un criterio de búsqueda al menos para la cadena clave o de traducción NewTranslationStringToShow=Nueva cadena de traducción para mostrar OriginalValueWas=La traducción original se sobrescribe. El valor original fue:

%s +TransKeyWithoutOriginalValue=Obligó una nueva traducción para la clave de traducción ' %s ' que no existe en ningún archivo de idioma TotalNumberOfActivatedModules=Aplicaciones/módulos activos: %s/%s YouMustEnableOneModule=Debe al menos habilitar 1 módulo +ClassNotFoundIntoPathWarning=La clase %s no se encuentra en la ruta de PHP +OnlyFollowingModulesAreOpenedToExternalUsers=Tenga en cuenta que solo los siguientes módulos están disponibles para usuarios externos (independientemente de los permisos de dichos usuarios) y solo si se otorgan permisos:
SuhosinSessionEncrypt=Almacenamiento de sesión cifrado por Suhosin 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. +NbOfProductIsLowerThanNoPb=Sólo tiene productos / servicios %s en la base de datos. Esto no requiere ninguna optimización particular. SearchOptim=Optimización de búsqueda +YouHaveXProductUseSearchOptim=Tiene productos %s en la base de datos. Debe agregar la constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 en Home-Setup-Other. Limite la búsqueda al comienzo de las cadenas, lo que hace posible que la base de datos utilice índices y debería obtener una respuesta inmediata. +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. XCacheInstalled=XCache está cargado. +AddRefInList=Mostrar cliente / vendedor ref. Lista de información (lista de selección o cuadro combinado) y la mayoría de los hipervínculos.
Aparecerán terceros con un formato de nombre de "CC12345 - SC45678 - The Big Company corp". en lugar de "The Big Company corp". +AddAdressInList=Mostrar la lista de información de la dirección del cliente / proveedor (seleccionar lista o cuadro combinado)
Aparecerán terceros con el formato de nombre "The Big Company corp. - 21 jump street 123456 Big town - USA" en lugar de "The Big Company corp". +AskForPreferredShippingMethod=Pregunte por el método de envío preferido para terceros. FillThisOnlyIfRequired=Ejemplo: +2 (llenar solo si se experimentan problemas de compensación de zona horaria) PasswordGenerationStandard=Devuelve una contraseña generada de acuerdo con el algoritmo interno de Dolibarr: 8 caracteres que contienen números compartidos y caracteres en minúscula. +PasswordGenerationNone=No sugiera una contraseña generada. La contraseña debe escribirse manualmente. PasswordGenerationPerso=Devuelve una contraseña de acuerdo a tu configuración definida personalmente. SetupPerso=De acuerdo con tu configuración PasswordPatternDesc=Descripción del patrón de contraseña +DisableForgetPasswordLinkOnLogonPage=No mostrar el enlace "Contraseña olvidada" en la página de inicio de sesión UsersSetup=Configuración del módulo de usuarios +UserMailRequired=Email requerido para crear un nuevo usuario HRMSetup=Configuración del módulo RRHH CompanySetup=Configuración del módulo de empresas +CompanyCodeChecker=Opciones para la generación automática de códigos de clientes / proveedores. +AccountCodeManager=Opciones para la generación automática de códigos contables de clientes / proveedores. +NotificationsDesc=Las notificaciones por correo electrónico se pueden enviar automáticamente para algunos eventos de Dolibarr.
Los destinatarios de las notificaciones se pueden definir: +NotificationsDescUser=* por usuario, un usuario a la vez. +NotificationsDescGlobal=* o configurando direcciones de correo electrónico globales en esta página de configuración. +DocumentModelOdt=Genere documentos desde plantillas de OpenDocument (archivos .ODT / .ODS de LibreOffice, OpenOffice, KOffice, TextEdit, ...) WatermarkOnDraft=Marca de agua en el borrador del documento JSOnPaimentBill=Activar la función para completar automáticamente las líneas de pago en forma de pago +CompanyIdProfChecker=Reglas para las identificaciones profesionales +MustBeMandatory=¿Obligatorio crear terceros (si se define el número de IVA o el tipo de empresa)? MustBeInvoiceMandatory=Obligatorio para validar facturas? TechnicalServicesProvided=Servicios técnicos proporcionados +WebDAVSetupDesc=Este es el enlace para acceder al directorio WebDAV. Contiene un directorio "público" abierto a cualquier usuario que conozca la URL (si se permite el acceso al directorio público) y un directorio "privado" que necesita una cuenta / contraseña de inicio de sesión para acceder. +WebDavServer=URL raíz del servidor %s: %s WebCalUrlForVCalExport=Un enlace de exportación al formato %s está disponible en el siguiente enlace: %s BillsSetup=Configuración del módulo de facturas BillsNumberingModule=Modelo de numeración de facturas y notas de crédito BillsPDFModules=Modelos de documentos de factura +BillsPDFModulesAccordindToInvoiceType=Documentos de facturas de modelos según tipo de factura. PaymentsPDFModules=Modelos de documentos de pago ForceInvoiceDate=Forzar fecha de factura a fecha de validación SuggestedPaymentModesIfNotDefinedInInvoice=Modo de pago sugerido en la factura por defecto si no está definido para la factura +SuggestPaymentByRIBOnAccount=Sugerir pago por retiro en cuenta +SuggestPaymentByChequeToAddress=Sugerir pago por cheque a FreeLegalTextOnInvoices=Texto libre en las facturas WatermarkOnDraftInvoices=Marca de agua en borradores de facturas (ninguna si está vacía) PaymentsNumberingModule=Modelo de numeración de pagos +SuppliersPayment=Pagos de proveedores +SupplierPaymentSetup=Configuración de pagos de proveedores PropalSetup=Configuración del módulo Cotizaciones ProposalsNumberingModules=Módulos de numeración de cotizaciones ProposalsPDFModules=Modelos de documentos de cotizaciones +SuggestedPaymentModesIfNotDefinedInProposal=Modo de pago sugerido en la propuesta por defecto si no está definido para la propuesta FreeLegalTextOnProposal=Texto libre en cotizaciones WatermarkOnDraftProposal=Marca de agua en cotizaciones borrador (en caso de estar vacío) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Preguntar por el destino de la cuenta bancaria +SupplierProposalSetup=Solicitud de precios de configuración del módulo de proveedores. +SupplierProposalNumberingModules=Solicitudes de precio proveedores de numeración de modelos. +SupplierProposalPDFModules=Solicitudes de precio proveedores documentos modelos. +FreeLegalTextOnSupplierProposal=Texto libre en las solicitudes de precios proveedores +WatermarkOnDraftSupplierProposal=Marca de agua en los proveedores de solicitudes de precios de borrador (ninguno si está vacío) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Preguntar por el destino de la cuenta bancaria de la solicitud de precio WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Pida la fuente de Warehouse para ordenar BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Preguntar por el destino de la cuenta bancaria de la orden de compra +OrdersSetup=Configuración de gestión de órdenes de venta OrdersNumberingModules=Modelos de numeración de pedidos OrdersModelModule=Modelos de documentos de pedido WatermarkOnDraftOrders=Marca de agua a borradores de pedidos (ninguna si está vacía) @@ -622,7 +991,9 @@ TemplatePDFContracts=Modelos de documentos de contratos WatermarkOnDraftContractCards=Marca de agua en los proyectos de contratos (ninguno si está vacío) MembersSetup=Configuración del módulo de miembros AdherentLoginRequired=Administre un inicio de sesión para cada miembro +AdherentMailRequired=Correo electrónico requerido para crear un nuevo miembro MemberSendInformationByMailByDefault=La casilla de verificación para enviar la confirmación de correo a los miembros (validación o nueva suscripción) está activada por defecto +MEMBER_REMINDER_EMAIL=Habilitar recordatorio automático por correo electrónico de suscripciones caducadas. Nota: El módulo %s debe estar habilitado y configurado correctamente para enviar recordatorios. LDAPSetup=Configuración de LDAP LDAPSynchronizeUsers=Organización de usuarios en LDAP LDAPSynchronizeGroups=Organización de grupos en LDAP @@ -630,6 +1001,7 @@ LDAPSynchronizeContacts=Organización de contactos en LDAP LDAPSynchronizeMembers=Organización de los miembros de la fundación en LDAP LDAPSynchronizeMembersTypes=La organización de los miembros de la fundación escribe en LDAP LDAPServerPort=Puerto de servicio +LDAPServerPortExample=Puerto predeterminado: 389 LDAPServerUseTLS=Usa TLS LDAPServerUseTLSExample=Su servidor LDAP usa TLS LDAPAdminDn=Administrador DN @@ -666,21 +1038,44 @@ LDAPTestSynchroMemberType=Pruebe la sincronización del tipo de miembro LDAPTestSearch=Pruebe una búsqueda LDAP LDAPSynchroOK=Prueba de sincronización exitosa LDAPSynchroKO=Prueba de sincronización fallida +LDAPSynchroKOMayBePermissions=Prueba de sincronización fallida. Compruebe que la conexión al servidor esté configurada correctamente y permita las actualizaciones de LDAP LDAPTCPConnectOK=Conexión TCP al servidor LDAP exitosa (Servidor = %s, Puerto = %s) LDAPTCPConnectKO=No se pudo conectar TCP al servidor LDAP (Servidor = %s, Puerto = %s) +LDAPBindOK=Conexión / autenticación con el servidor LDAP correcta (Servidor = %s, Puerto = %s, Admin = %s, Contraseña = %s) +LDAPBindKO=Falló la conexión / autenticación al servidor LDAP (Servidor = %s, Puerto = %s, Admin = %s, Contraseña = %s) LDAPSetupForVersion3=Servidor LDAP configurado para la versión 3 LDAPSetupForVersion2=Servidor LDAP configurado para la versión 2 LDAPDolibarrMapping=Mapas de Dolibarr LDAPLdapMapping=Asignación de LDAP LDAPFieldLoginUnix=Iniciar sesión (Unix) +LDAPFieldLoginExample=Ejemplo: uid +LDAPFilterConnectionExample=Ejemplo: & (objectClass = inetOrgPerson) +LDAPFieldLoginSambaExample=Ejemplo: samaccountname +LDAPFieldFullnameExample=Ejemplo: cn +LDAPFieldPasswordNotCrypted=Contraseña no cifrada +LDAPFieldPasswordExample=Ejemplo: userPassword +LDAPFieldCommonNameExample=Ejemplo: cn +LDAPFieldNameExample=Ejemplo: sn LDAPFieldFirstName=Primer nombre +LDAPFieldFirstNameExample=Ejemplo: givenName LDAPFieldMail=Dirección de correo electrónico +LDAPFieldMailExample=Ejemplo: correo LDAPFieldPhone=Número de teléfono profesional +LDAPFieldPhoneExample=Ejemplo: número telefónico LDAPFieldHomePhone=Número de teléfono personal +LDAPFieldHomePhoneExample=Ejemplo: homephone LDAPFieldMobile=Teléfono celular +LDAPFieldMobileExample=Ejemplo: móvil LDAPFieldFax=Número de fax +LDAPFieldFaxExample=Ejemplo: facsimiletelephonenumber LDAPFieldAddress=Calle +LDAPFieldAddressExample=Ejemplo: calle +LDAPFieldZipExample=Ejemplo: código postal +LDAPFieldTownExample=Ejemplo: l +LDAPFieldDescriptionExample=Ejemplo: descripción LDAPFieldNotePublic=Nota pública +LDAPFieldCompanyExample=Ejemplo: o +LDAPFieldSidExample=Ejemplo: objectid LDAPFieldEndLastSubscription=Fecha de finalización de la suscripción LDAPFieldTitleExample=Ejemplo: título LDAPSetupNotComplete=La configuración de LDAP no está completa (vaya a las pestañas de otros) @@ -692,26 +1087,38 @@ LDAPDescMembers=Esta página le permite definir el nombre de los atributos LDAP LDAPDescValues=Los valores de ejemplo están diseñados para OpenLDAP con los siguientes esquemas cargados: core.schema, cosine.schema, inetorgperson.schema ). Si usa estos valores y OpenLDAP, modifique su archivo de configuración de LDAP slapd.conf para que se carguen todos estos esquemas. ForANonAnonymousAccess=Para un acceso autenticado (para un acceso de escritura, por ejemplo) PerfDolibarr=Configuración de rendimiento / informe de optimización +YouMayFindPerfAdviceHere=Esta página proporciona algunas verificaciones o consejos relacionados con el rendimiento. +NotInstalled=No está instalado, por lo que su servidor no se ralentiza por esto. ApplicativeCache=Caché aplicable MemcachedNotAvailable=No se encontró caché aplicativo. Puede mejorar el rendimiento instalando un servidor de caché Memcached y un módulo capaz de usar este servidor de caché. Más información aquí http: //wiki.dolibarr.org/index.php/Module_MemCached_EN .
Tenga en cuenta que muchos proveedores de alojamiento web no proporcionan dicho servidor de caché. MemcachedModuleAvailableButNotSetup=El módulo memcached para la memoria caché aplicativa se encuentra pero la configuración del módulo no está completa. MemcachedAvailableAndSetup=El módulo memcached dedicado a usar el servidor memcached está habilitado. OPCodeCache=Caché OPCode +NoOPCodeCacheFound=No se ha encontrado ningún caché OPCode. Quizás esté utilizando un caché OPCode que no sea XCache o eAccelerator (bueno), o tal vez no tenga un caché OPCode (muy malo). HTTPCacheStaticResources=Caché HTTP para recursos estáticos (css, img, javascript) FilesOfTypeCached=Los archivos del tipo %s están en caché en el servidor HTTP FilesOfTypeNotCached=El servidor HTTP no almacena en caché los archivos del tipo %s FilesOfTypeCompressed=Los archivos del tipo %s están comprimidos por el servidor HTTP FilesOfTypeNotCompressed=Los archivos del tipo %s no son comprimidos por el servidor HTTP CacheByServer=Caché por servidor +CacheByServerDesc=Por ejemplo, usando la directiva de Apache "ExpiresByType image / gif A2592000" CacheByClient=Caché por navegador CompressionOfResources=Compresión de respuestas HTTP +CompressionOfResourcesDesc=Por ejemplo, usando la directiva de Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Tal detección automática no es posible con los navegadores actuales +DefaultValuesDesc=Aquí puede definir el valor predeterminado que desea utilizar al crear un nuevo registro, y / o filtros predeterminados o el orden de clasificación cuando enumera los registros. DefaultSearchFilters=Filtros de búsqueda predeterminados DefaultSortOrder=Ordenar por defecto +DefaultMandatory=Campos de formulario obligatorios ProductSetup=Configuración del módulo de productos ServiceSetup=Configuración del módulo de servicios ProductServiceSetup=Configuración de módulos de productos y servicios +NumberOfProductShowInSelect=Número máximo de productos para mostrar en las listas de selección de combo (0 = sin límite) +ViewProductDescInFormAbility=Mostrar descripciones de productos en formularios (de lo contrario, se muestra en una ventana emergente de información sobre herramientas) MergePropalProductCard=Activar en el producto / servicio pestaña Archivos adjuntos una opción para combinar el documento PDF del producto con la propuesta PDF azur si el producto / servicio figura en la propuesta +ViewProductDescInThirdpartyLanguageAbility=Mostrar descripciones de los productos en el idioma del tercero. +UseSearchToSelectProductTooltip=Además, si tiene una gran cantidad de productos (> 100 000), puede aumentar la velocidad configurando la constante PRODUCT_DONOTSEARCH_ANYWHERE en 1 en Configuración-> Otros. La búsqueda se limitará entonces al inicio de la cadena. +UseSearchToSelectProduct=Espere hasta que presione una tecla antes de cargar el contenido de la lista de combo de productos (esto puede aumentar el rendimiento si tiene una gran cantidad de productos, pero es menos conveniente) SetDefaultBarcodeTypeProducts=Tipo de código de barras predeterminado para usar en productos SetDefaultBarcodeTypeThirdParties=Tipo de código de barras predeterminado para usar con terceros UseUnits=Defina una unidad de medida para Cantidad durante la orden, propuesta o edición de líneas de factura @@ -745,14 +1152,21 @@ BarcodeDescDATAMATRIX=Código de barras del tipo Datamatrix BarcodeDescQRCODE=Código de barras del tipo de código QR GenbarcodeLocation=Herramienta de línea de comandos de generación de código de barras (utilizada por el motor interno para algunos tipos de códigos de barras). Debe ser compatible con "genbarcode".
Por ejemplo: / usr / local / bin / genbarcode BarCodeNumberManager=Administrador para definir automáticamente los números de código de barras +WithdrawalsSetup=Configuración del módulo de pagos de débito directo. ExternalRSSSetup=Configuración de importaciones de RSS externo NewRSS=Nueva fuente RSS RSSUrlExample=Una fuente RSS interesante MailingSetup=Configuración del módulo de correo electrónico +MailingEMailFrom=Correo electrónico del remitente (De) para los correos electrónicos enviados por el módulo de correo electrónico +MailingEMailError=Devolver correo electrónico (Errors-to) para correos electrónicos con errores MailingDelay=Segundos para esperar después de enviar el siguiente mensaje +NotificationSetup=Configuración del módulo de notificación por correo electrónico +NotificationEMailFrom=Correo electrónico del remitente (De) para correos electrónicos enviados por el módulo de notificaciones FixedEmailTarget=Recipiente +SendingsSetup=Configuración del módulo de envío SendingsReceiptModel=Modelo de recibo de envío SendingsNumberingModules=Módulos de numeración de los mensajes +NoNeedForDeliveryReceipts=En la mayoría de los casos, las hojas de envío se utilizan como hojas para las entregas a los clientes (lista de productos para enviar) y hojas que son recibidas y firmadas por el cliente. Por lo tanto, el recibo de entregas del producto es una función duplicada y rara vez se activa. DeliveryOrderNumberingModules=Módulo de numeración de recibos de entregas de productos DeliveryOrderModel=Modelo de recepción de entregas de productos DeliveriesOrderAbility=Productos de soporte recibos de entregas @@ -760,10 +1174,12 @@ FreeLegalTextOnDeliveryReceipts=Texto libre en recibos de entrega ActivateFCKeditor=Activa el editor avanzado para: FCKeditorForCompany=Creación / edición WYSIWIG de descripción y nota de elementos (excepto productos / servicios) FCKeditorForProduct=WYSIWIG creación / edición de productos / servicios descripción y nota +FCKeditorForProductDetails=Creación / edición WYSIWIG de líneas de detalles de productos para todas las entidades (propuestas, pedidos, facturas, etc.). Advertencia: el uso de esta opción para este caso no se recomienda seriamente, ya que puede crear problemas con los caracteres especiales y el formato de página al crear archivos PDF. FCKeditorForMailing=Creación / edición WYSIWIG para eMailings masivos (Herramientas-> eMailing) FCKeditorForUserSignature=Creación / edición WYSIWIG de la firma del usuario FCKeditorForMail=Creación / edición WYSIWIG para todo el correo (excepto Herramientas-> correo electrónico) StockSetup=Configuración del módulo de stock +IfYouUsePointOfSaleCheckModule=Si utiliza el módulo de Punto de Venta (POS) provisto por defecto o un módulo externo, su configuración puede ser ignorada por su módulo de POS. La mayoría de los módulos de POS están diseñados de forma predeterminada para crear una factura de inmediato y disminuir el stock, independientemente de las opciones aquí. Por lo tanto, si necesita o no una disminución de existencias al registrar una venta desde su POS, verifique también la configuración de su módulo POS. MenuDeleted=Menú borrado NotTopTreeMenuPersonalized=Menús personalizados no vinculados a una entrada del menú superior Menu=Selección de menú @@ -781,6 +1197,7 @@ DetailRight=Condición para mostrar menús grises no autorizados DetailLangs=Nombre de archivo Lang para la traducción del código de etiqueta DetailUser=Pasante / Externo / Todos Target=Objetivo +DetailTarget=Destino para enlaces (_blank top abre una nueva ventana) DetailLevel=Nivel (-1: menú superior, 0: menú del encabezado,> 0 menú y submenú) ModifMenu=Cambio de menú ConfirmDeleteMenu=¿Seguro que quieres eliminar la entrada del menú %s? @@ -788,7 +1205,10 @@ FailedToInitializeMenu=Error al inicializar el menú TaxSetup=Impuestos, impuestos sociales o fiscales y configuración del módulo de dividendos OptionVatMode=IVA debido OptionVATDebitOption=Devengo +OptionVatDefaultDesc=El IVA se debe:
- En la entrega de bienes (basado en la fecha de factura)
- En pagos por servicios. +OptionVatDebitOptionDesc=El IVA se debe:
- En la entrega de bienes (basado en la fecha de factura)
- En factura (débito) por servicios. OptionPaymentForProductAndServicesDesc=El IVA es pagadero:
- en el pago de bienes
- en los pagos por servicios +SummaryOfVatExigibilityUsedByDefault=Tiempo de elegibilidad de IVA por defecto de acuerdo a la opción elegida: OnPayment=En pago SupposedToBePaymentDate=Fecha de pago utilizada SupposedToBeInvoiceDate=Fecha de la factura utilizada @@ -801,16 +1221,32 @@ AccountancyCodeBuy=Cuenta de compra código AgendaSetup=Configuración del módulo de eventos y agenda PasswordTogetVCalExport=Clave para autorizar el enlace de exportación PastDelayVCalExport=No exportar evento más antiguo que +AGENDA_USE_EVENT_TYPE=Usar tipos de eventos (administrados en el menú Configuración -> Diccionarios -> Tipo de eventos de agenda) +AGENDA_USE_EVENT_TYPE_DEFAULT=Establecer automáticamente este valor predeterminado para el tipo de evento en el formulario de creación de evento +AGENDA_DEFAULT_FILTER_TYPE=Configure automáticamente este tipo de evento en el filtro de búsqueda de la vista de agenda +AGENDA_DEFAULT_FILTER_STATUS=Establecer automáticamente este estado para eventos en el filtro de búsqueda de la vista de agenda AGENDA_DEFAULT_VIEW=¿Qué pestaña desea abrir de forma predeterminada al seleccionar el menú Agenda? AGENDA_REMINDER_EMAIL=Habilite el recordatorio de eventos por correo electrónico (la opción recordar/demorar se puede definir en cada evento). Nota: El módulo %s debe estar habilitado y configurado correctamente para que el recordatorio se envíe con la frecuencia correcta. +AGENDA_REMINDER_BROWSER=Active el recordatorio de eventos en el navegador del usuario (cuando se alcanza la fecha del evento, cada usuario puede rechazar esto de la pregunta de confirmación del navegador) AGENDA_REMINDER_BROWSER_SOUND=Habilitar notificación de sonido AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda ClickToDialUrlDesc=Se llama a Url cuando se hace clic en el picto de un teléfono. En la URL, puede usar etiquetas
__ PHONETO __ que se reemplazarán por el número de teléfono de la persona a quien llamar
__ PHONEFROM __ que se reemplazará por el número de teléfono de la llamada persona (suya)
__ LOGIN __ que se reemplazará con clicktodial de inicio de sesión (definido en la tarjeta de usuario)
__ PASS __ que se reemplazará con clicktodial contraseña (definida en usuario tarjeta). +ClickToDialDesc=Este módulo hace que los números de teléfono hagan clic enlaces Un clic en el icono hará que su teléfono llame al número. Esto se puede usar para llamar a un sistema de centro de llamadas de Dolibarr que puede llamar al número de teléfono en un sistema SIP, por ejemplo. ClickToDialUseTelLink=Use solo un enlace "tel:" en los números de teléfono +ClickToDialUseTelLinkDesc=Use este método si sus usuarios tienen un softphone o una interfaz de software instalada en la misma computadora que el navegador y se le llama cuando hace clic en un enlace de su navegador que comienza con "tel:". Si necesita una solución de servidor completa (sin necesidad de instalación de software local), debe configurar esto en "No" y completar el siguiente campo. +CashDesk=Punto de venta +CashDeskSetup=Configuración del módulo de punto de venta +CashDeskThirdPartyForSell=Tercero genérico predeterminado para usar en ventas CashDeskBankAccountForSell=Cuenta predeterminada para usar para recibir pagos en efectivo +CashDeskBankAccountForCheque=Cuenta predeterminada a utilizar para recibir pagos con cheque. CashDeskBankAccountForCB=Cuenta predeterminada para usar para recibir pagos con tarjeta de crédito +CashDeskDoNotDecreaseStock=Deshabilite la disminución de existencias cuando se realiza una venta desde el punto de venta (si es "no", se realiza una disminución de existencias para cada venta realizada desde POS, independientemente de la opción establecida en el stock de módulos). CashDeskIdWareHouse=Fuerce y restrinja el almacén para utilizarlo en la disminución de existencias +StockDecreaseForPointOfSaleDisabled=Disminución de stock desde punto de venta deshabilitado +StockDecreaseForPointOfSaleDisabledbyBatch=La disminución de stock en POS no es compatible con el módulo Serial / Lot management (actualmente activo), por lo que la disminución de stock está deshabilitada. +CashDeskYouDidNotDisableStockDecease=No desactivó la disminución de existencias al realizar una venta desde el punto de venta. Por lo tanto se requiere un almacén. BookmarkSetup=Configuración del módulo marcador +BookmarkDesc=Este módulo le permite administrar los marcadores. También puede agregar accesos directos a cualquier página de Dolibarr o sitios web externos en su menú de la izquierda. NbOfBoomarkToShow=Número máximo de marcadores para mostrar en el menú de la izquierda WebServicesSetup=Configuración del módulo de servicios web WebServicesDesc=Al habilitar este módulo, Dolibarr se convierte en un servidor de servicios web para proporcionar servicios web diversos. @@ -822,10 +1258,15 @@ ApiExporerIs=Puede explorar y probar las API en la URL OnlyActiveElementsAreExposed=Solo los elementos de los módulos habilitados están expuestos WarningAPIExplorerDisabled=El explorador API se ha deshabilitado. El explorador de API no está obligado a proporcionar servicios de API. Es una herramienta para que el desarrollador encuentre / pruebe API REST. Si necesita esta herramienta, vaya a la configuración del módulo API REST para activarla. BankSetupModule=Configuración del módulo de banco +FreeLegalTextOnChequeReceipts=Texto libre en los recibos de cheques BankOrderShow=Mostrar el orden de las cuentas bancarias para los países que usan "número de banco detallado" BankOrderESDesc=Orden de exhibición en español +ChequeReceiptsNumberingModule=Verifique el módulo de numeración de recibos MultiCompanySetup=Configuración de módulo multi-compañía +SuppliersSetup=Configuración del módulo de proveedor +SuppliersCommandModel=Plantilla completa de pedido de compra (logo ...) SuppliersInvoiceModel=Plantilla completa de la factura del proveedor (logotipo ...) +SuppliersInvoiceNumberingModel=Facturas de proveedores de numeración de modelos. IfSetToYesDontForgetPermission=Si se establece en sí, no se olvide de proporcionar permisos a los grupos o usuarios permitidos para la segunda aprobación PathToGeoIPMaxmindCountryDataFile=Ruta al archivo que contiene la traducción de Maxmind a la traducción del país.
Ejemplos:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat NoteOnPathLocation=Tenga en cuenta que su archivo de datos de IP a país debe estar dentro de un directorio que su PHP puede leer (consulte la configuración de PHP open_basedir y los permisos del sistema de archivos). @@ -837,6 +1278,7 @@ ProjectsSetup=Configuración del módulo de proyecto ProjectsModelModule=Modelo de documento de informes de proyecto TasksNumberingModules=Módulo de numeración de tareas TaskModelModule=Tareas informa el modelo del documento +UseSearchToSelectProject=Espere hasta que se presione una tecla antes de cargar el contenido de la lista de combo Proyecto.
Esto puede mejorar el rendimiento si tiene una gran cantidad de proyectos, pero es menos conveniente. AccountingPeriodCard=Período contable NewFiscalYear=Nuevo período contable OpenFiscalYear=Período contable abierto @@ -851,18 +1293,27 @@ NoAmbiCaracAutoGeneration=No utilice caracteres ambiguos ("1", "l", "i", "|", "0 SalariesSetup=Configuración de los salarios del módulo SortOrder=Orden de clasificación Format=Formato +TypePaymentDesc=0: Tipo de pago del cliente, 1: Tipo de pago del proveedor, 2: Tipo de pago de los clientes y proveedores IncludePath=Incluir ruta (definida en la variable %s) ExpenseReportsSetup=Configuración del módulo Informes de gastos TemplatePDFExpenseReports=Plantillas de documentos para generar el documento de informe de gastos ExpenseReportsIkSetup=Configuración del módulo Informes de gastos: índice Milles NoModueToManageStockIncrease=No se ha activado ningún módulo capaz de gestionar el aumento automático de existencias. El aumento de existencias se realizará solo con la entrada manual. +YouMayFindNotificationsFeaturesIntoModuleNotification=Puede encontrar opciones para notificaciones por correo electrónico habilitando y configurando el módulo "Notificación". ListOfNotificationsPerUser=Lista de notificaciones por usuario * +ListOfNotificationsPerUserOrContact=Lista de notificaciones (eventos) disponibles por usuario * o por contacto ** +ListOfFixedNotifications=Lista de notificaciones fijas +GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para agregar o eliminar notificaciones para usuarios GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un tercero para agregar o eliminar notificaciones de contactos/direcciones Threshold=Límite +BackupDumpWizard=Asistente para construir el archivo de copia de seguridad SomethingMakeInstallFromWebNotPossible=La instalación del módulo externo no es posible desde la interfaz web por el siguiente motivo: +SomethingMakeInstallFromWebNotPossible2=Por esta razón, el proceso de actualización descrito aquí es un proceso manual que solo puede realizar un usuario privilegiado. InstallModuleFromWebHasBeenDisabledByFile=La instalación del módulo externo de la aplicación ha sido desactivada por su administrador. Debes pedirle que elimine el archivo %s para permitir esta función. ConfFileMustContainCustom=La instalación o creación de un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio %s. Para que Dolibarr procese este directorio, debe configurar su conf/conf.php para agregar las 2 líneas de directiva:
$dolibarr_main_url_root_alt ='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Resalta las líneas de la mesa cuando el movimiento del mouse pasa por encima +HighlightLinesColor=Resalte el color de la línea cuando pase el mouse (use 'ffffff' para no resaltar) +HighlightLinesChecked=Resalte el color de la línea cuando esté marcada (use 'ffffff' para no resaltar) TextTitleColor=Color del texto del título de la página LinkColor=Color de enlaces PressF5AfterChangingThis=Presione CTRL + F5 en el teclado o borre la caché de su navegador después de cambiar este valor para que sea efectivo @@ -876,17 +1327,22 @@ BackgroundTableLineEvenColor=Color de fondo para líneas de mesas uniformes MinimumNoticePeriod=Periodo de preaviso mínimo (Su solicitud de ausencia debe hacerse antes de este retraso) NbAddedAutomatically=Cantidad de días añadidos a los contadores de usuarios (automáticamente) cada mes EnterAnyCode=Este campo contiene una referencia para identificar la línea. Ingrese cualquier valor de su elección, pero sin caracteres especiales. +UnicodeCurrency=Ingrese aquí entre llaves, lista de bytes que representan el símbolo de moneda. Por ejemplo: para $, ingrese [36] - para brasil R $ [82,36] - para €, ingrese [8364] ColorFormat=El color RGB está en formato HEX, por ejemplo: FF0000 PositionIntoComboList=Posición de la línea en listas combinadas SellTaxRate=Tasa de impuesto a la venta RecuperableOnly=Sí para el IVA "No percibido pero recuperable" dedicado para un estado en Francia. Mantenga el valor en "No" en todos los demás casos. +UrlTrackingDesc=Si el proveedor o el servicio de transporte ofrece una página o sitio web para verificar el estado de sus envíos, puede ingresar aquí. Puede usar la clave {TRACKID} en los parámetros de la URL para que el sistema la reemplace con el número de seguimiento que el usuario ingresó en la tarjeta de envío. +OpportunityPercent=Cuando cree un cliente potencial, definirá una cantidad estimada de proyecto / cliente potencial. De acuerdo con el estado del cliente potencial, esta cantidad se puede multiplicar por esta tasa para evaluar el monto total que todos sus clientes potenciales pueden generar. El valor es un porcentaje (entre 0 y 100). TemplateForElement=Este registro de plantilla está dedicado a qué elemento +TemplateIsVisibleByOwnerOnly=La plantilla es visible solo para el propietario VisibleNowhere=Visible en ninguna parte FillFixTZOnlyIfRequired=Ejemplo: +2 (llenar solo si se experimentó un problema) ExpectedChecksum=Suma de comprobación esperada CurrentChecksum=Cheque actual ForcedConstants=Valores constantes requeridos MailToSendProposal=Propuestas de clientes +MailToSendOrder=Ordenes de venta MailToSendInvoice=Facturas de cliente MailToSendSupplierRequestForQuotation=Solicitud de presupuesto MailToSendSupplierOrder=Ordenes de compra @@ -897,7 +1353,10 @@ YouUseLastStableVersion=Usas la última versión estable TitleExampleForMajorRelease=Ejemplo de mensaje que puede usar para anunciar esta versión principal (no dude en utilizarla en sus sitios web) TitleExampleForMaintenanceRelease=Ejemplo de mensaje que puede usar para anunciar esta versión de mantenimiento (no dude en utilizarla en sus sitios web) ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s está disponible. La versión %s es una versión importante con muchas características nuevas para usuarios y desarrolladores. Puede descargarlo desde el área de descarga del portal https://www.dolibarr.org (versiones estables del subdirectorio). Puede leer ChangeLog para obtener la lista completa de cambios. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s está disponible. La versión %s es una versión de mantenimiento, por lo que solo contiene correcciones de errores. Recomendamos a todos los usuarios actualizar a esta versión. Una versión de mantenimiento no introduce nuevas funciones o cambios en la base de datos. Puede descargarlo desde el área de descarga del portal https://www.dolibarr.org (subdirectorio Estable versiones). Puede leer el registro de cambios para obtener una lista completa de los cambios. +MultiPriceRuleDesc=Cuando la opción "Varios niveles de precios por producto / servicio" está habilitada, puede definir diferentes precios (uno por nivel de precio) para cada producto. Para ahorrar tiempo, aquí puede ingresar una regla para autocalcular un precio para cada nivel basado en el precio del primer nivel, por lo que tendrá que ingresar solo un precio para el primer nivel para cada producto. Esta página está diseñada para ahorrarle tiempo, pero solo es útil si los precios de cada nivel son relativos al primer nivel. Puedes ignorar esta página en la mayoría de los casos. ModelModulesProduct=Plantillas para documentos de productos +ToGenerateCodeDefineAutomaticRuleFirst=Para poder generar códigos automáticamente, primero debe definir un administrador para definir automáticamente el número de código de barras. SeeSubstitutionVars=Ver * nota para la lista de posibles variables de sustitución AllPublishers=Todos los editores AddRemoveTabs=Agregar o eliminar pestañas @@ -916,14 +1375,75 @@ AddOtherPagesOrServices=Agregar otras páginas o servicios AddModels=Agregar documento o plantillas de numeración AddSubstitutions=Añadir sustituciones de teclas DetectionNotPossible=La detección no es posible +UrlToGetKeyToUseAPIs=Url para obtener el token para utilizar la API (una vez que se ha recibido, se guarda en la tabla de usuarios de la base de datos y debe proporcionarse en cada llamada a la API) ListOfAvailableAPIs=Lista de API disponibles +activateModuleDependNotSatisfied=El módulo "%s" depende del módulo "%s", que falta, por lo que el módulo "%1$s" puede no funcionar correctamente. Instale el módulo "%2$s" o desactive el módulo "%1$s" si quiere estar a salvo de alguna sorpresa +CommandIsNotInsideAllowedCommands=El comando que está intentando ejecutar no está en la lista de comandos permitidos definidos en el parámetro $ dolibarr_main_restrict_os_commands en el archivo conf.php . LandingPage=Página de destino +SamePriceAlsoForSharedCompanies=Si utiliza un módulo de varias empresas, con la opción "Precio único", el precio también será el mismo para todas las empresas si los productos se comparten entre entornos. ModuleEnabledAdminMustCheckRights=Módulo ha sido activado. Los permisos para los módulos activados se otorgaron solo a los usuarios administradores. Es posible que deba otorgar permisos a otros usuarios o grupos manualmente si es necesario. +UserHasNoPermissions=Este usuario no tiene permisos definidos. +TypeCdr=Utilice "Ninguno" si la fecha de pago es la fecha de la factura más un delta en días (delta es el campo "%s")
Use "Al final del mes", si, después de delta, la fecha debe aumentarse para llegar al final del mes (+ un "%s" opcional en días)
Utilice "Actual / Siguiente" para que la fecha del plazo de pago sea el primer N del mes después de delta (delta es el campo "%s", N se almacena en el campo "%s") BaseCurrency=Moneda de referencia de la empresa (entre en la configuración de la empresa para cambiar esto) +WarningNoteModulePOSForFrenchLaw=Este módulo %s cumple con las leyes francesas (Loi Finance 2016) porque el módulo de Registros no reversibles se activa automáticamente. +WarningInstallationMayBecomeNotCompliantWithLaw=Está intentando instalar el módulo %s que es un módulo externo. Activar un módulo externo significa que confía en el editor de ese módulo y que está seguro de que este módulo no afecta negativamente el comportamiento de su aplicación y cumple con las leyes de su país (%s). Si el módulo introduce una característica ilegal, usted se hace responsable del uso de software ilegal. +NothingToSetup=No se requiere ninguna configuración específica para este módulo. SetToYesIfGroupIsComputationOfOtherGroups=Establezca esto en sí si este grupo es un cálculo de otros grupos +EnterCalculationRuleIfPreviousFieldIsYes=Ingrese la regla de cálculo si el campo anterior se estableció en Sí (por ejemplo, 'CODEGRP1 + CODEGRP2') SeveralLangugeVariatFound=Varias variantes de lenguaje encontradas -OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

Use a ; char as separator to extract or set several properties. +GDPRContact=Oficial de protección de datos (DPO, privacidad de datos o contacto GDPR) +GDPRContactDesc=Si almacena datos sobre empresas / ciudadanos europeos, puede nombrar al contacto que es responsable del Reglamento general de protección de datos aquí +HelpOnTooltip=Texto de ayuda para mostrar en información sobre herramientas +HelpOnTooltipDesc=Coloque texto o una clave de traducción aquí para que el texto se muestre en una información sobre herramientas cuando este campo aparezca en un formulario +YouCanDeleteFileOnServerWith=Puede eliminar este archivo en el servidor con la línea de comandos:
%s +ChartLoaded=Plan de cuenta cargado +EnableFeatureFor=Habilitar características para %s +VATIsUsedIsOff=Nota: La opción de usar el impuesto sobre las ventas o el IVA se ha establecido en Desactivado en el menú %s - %s, por lo que el impuesto sobre las ventas o IVA utilizado siempre será 0 para las ventas. +SwapSenderAndRecipientOnPDF=Intercambiar la posición de la dirección del remitente y el destinatario en documentos PDF +FeatureSupportedOnTextFieldsOnly=Advertencia, función compatible solo en los campos de texto. También se debe establecer un parámetro de URL action = create o action = edit O el nombre de la página debe terminar con 'new.php' para activar esta función. +EmailCollector=Recolector de correo electronico +EmailCollectorDescription=Agregue un trabajo programado y una página de configuración para escanear los buzones de correo electrónico con regularidad (utilizando el protocolo IMAP) y registre los correos electrónicos recibidos en su aplicación, en el lugar correcto y / o cree algunos registros automáticamente (como clientes potenciales). +NewEmailCollector=Nuevo coleccionista de email +EMailHost=Host del servidor de correo electrónico IMAP +EmailcollectorOperations=Operaciones a realizar por coleccionista. +MaxEmailCollectPerCollect=Número máximo de correos electrónicos recogidos por cobro +ConfirmCloneEmailCollector=¿Está seguro de que desea clonar el recopilador de correo electrónico %s? +DateLastCollectResult=Fecha de última recopilación probada +DateLastcollectResultOk=Fecha última recogida exitosa +EmailCollectorConfirmCollectTitle=Correo electrónico recoger confirmación +EmailCollectorConfirmCollect=¿Quieres ejecutar la colección para este coleccionista ahora? +NoNewEmailToProcess=No hay correo electrónico nuevo (filtros coincidentes) para procesar +XEmailsDoneYActionsDone=correos electrónicos %s calificados, correos electrónicos %s procesados con éxito (para %s registro / acciones realizadas) +RecordEvent=Grabar evento de correo electrónico +CreateLeadAndThirdParty=Crear plomo (y tercero si es necesario) +CodeLastResult=Código de resultado más reciente +NbOfEmailsInInbox=Número de correos electrónicos en el directorio de origen +LoadThirdPartyFromName=Cargar búsqueda de terceros en %s (solo carga) +LoadThirdPartyFromNameOrCreate=Cargar búsqueda de terceros en %s (crear si no se encuentra) +ECMAutoTree=Mostrar arbol ECM automatico +OperationParamDesc=Defina valores para usar para la acción, o cómo extraer valores. Por ejemplo:
objproperty1 = SET: abc
objproperty1 = SET: un valor con reemplazo de __objproperty1__
objproperty3 = SETIFEMPTY: abc
objproperty4 = EXTRACT: HEADER: X-Myheaderkey. * [^ \\ s] + (. *)
options_myextrafield = EXTRACT: SUBJECT: ([^ \\ s] *)
object.objproperty5 = EXTRACT: BODY: el nombre de mi empresa es \\ s ([^ \\ s] *)

Utilizar una ; Char como separador para extraer o configurar varias propiedades. +OpeningHoursDesc=Introduzca aquí el horario habitual de apertura de su empresa. +ResourceSetup=Configuración del módulo de recursos UseSearchToSelectResource=Use un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable). DisabledResourceLinkUser=Deshabilitar característica para vincular un recurso a los usuarios DisabledResourceLinkContact=Deshabilitar característica para vincular un recurso a contactos ConfirmUnactivation=Confirmar restablecimiento del módulo +OnMobileOnly=Sólo en pantalla pequeña (teléfono inteligente) +DisableProspectCustomerType=Deshabilite el tipo de tercero "Prospecto + Cliente" (por lo tanto, el tercero debe ser Prospecto o Cliente, pero no pueden ser ambos) +MAIN_OPTIMIZEFORTEXTBROWSER=Simplificar la interfaz para ciegos. +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Habilite esta opción si es una persona ciega o si utiliza la aplicación desde un navegador de texto como Lynx o Links. +ThisValueCanOverwrittenOnUserLevel=Este valor puede ser sobrescrito por cada usuario desde su página de usuario - pestaña '%s' +DefaultCustomerType=Tipo de tercero por defecto para el formulario de creación de "Nuevo cliente" +ABankAccountMustBeDefinedOnPaymentModeSetup=Nota: La cuenta bancaria debe definirse en el módulo de cada modo de pago (Paypal, Stripe, ...) para que esta función funcione. +RootCategoryForProductsToSellDesc=Si se define, solo los productos dentro de esta categoría o niños de esta categoría estarán disponibles en el Punto de venta +DebugBar=Barra de debug +WarningValueHigherSlowsDramaticalyOutput=Advertencia, los valores más altos ralentizan dramáticamente la salida. +EXPORTS_SHARE_MODELS=Los modelos de exportación se comparten con todos. +IfTrackingIDFoundEventWillBeLinked=Tenga en cuenta que si se encuentra un ID de seguimiento en el correo electrónico entrante, el evento se vinculará automáticamente a los objetos relacionados. +IFTTT_SERVICE_KEY=IFTTT clave de servicio +IFTTTDesc=Este módulo está diseñado para desencadenar eventos en IFTTT y / o para ejecutar alguna acción en desencadenadores IFTTT externos. +UrlForIFTTT=Punto final de URL para IFTTT +YouWillFindItOnYourIFTTTAccount=Lo encontrarás en tu cuenta de IFTTT. +EndPointFor=Punto final para %s: %s +DeleteEmailCollector=Eliminar el colector de correo electrónico +ConfirmDeleteEmailCollector=¿Estás seguro de que deseas eliminar este recopilador de correo electrónico? diff --git a/htdocs/langs/es_CL/agenda.lang b/htdocs/langs/es_CL/agenda.lang index 1c7223c54c1..d9cea825edb 100644 --- a/htdocs/langs/es_CL/agenda.lang +++ b/htdocs/langs/es_CL/agenda.lang @@ -17,8 +17,12 @@ ViewWeek=Vista de la semana ViewPerUser=Por usuario ViewPerType=Por tipo de vista AutoActions=Llenado automático +AgendaAutoActionDesc=Aquí puede definir los eventos que desea que Dolibarr cree automáticamente en Agenda. Si no se marca nada, solo las acciones manuales se incluirán en los registros y se mostrarán en la Agenda. El seguimiento automático de las acciones comerciales realizadas en objetos (validación, cambio de estado) no se guardará. +AgendaSetupOtherDesc=Esta página ofrece opciones para permitir la exportación de sus eventos Dolibarr a un calendario externo (Thunderbird, Google Calendar, etc.) AgendaExtSitesDesc=Esta página permite declarar fuentes externas de calendarios para ver sus eventos en la agenda de Dolibarr. ActionsEvents=Eventos por los cuales Dolibarr creará una acción en agenda automáticamente +EventRemindersByEmailNotEnabled=Los recordatorios de eventos por correo electrónico no se habilitaron en la configuración del módulo %s. +COMPANY_DELETEInDolibarr=%s de terceros eliminado PropalClosedSignedInDolibarr=Propuesta %s firmada PropalClosedRefusedInDolibarr=Propuesta %s rechazada PropalValidatedInDolibarr=Propuesta %s validada @@ -32,6 +36,7 @@ MemberSubscriptionDeletedInDolibarr=Suscripción %s para el miembro %s eliminado ShipmentValidatedInDolibarr=Envío %s validado ShipmentClassifyClosedInDolibarr=Envío %s clasificado facturado ShipmentUnClassifyCloseddInDolibarr=Envío %s clasificado reabierto +ShipmentBackToDraftInDolibarr=Envío %s volver al estado de borrador ShipmentDeletedInDolibarr=Envío %s eliminado OrderCreatedInDolibarr=Orden %s creado OrderValidatedInDolibarr=Orden %s validada @@ -41,22 +46,34 @@ OrderBilledInDolibarr=Orden %s clasificado facturado OrderApprovedInDolibarr=Orden %s aprobada OrderRefusedInDolibarr=Orden %s rechazada OrderBackToDraftInDolibarr=Ordene %s vuelva al estado del borrador +ProposalSentByEMail=Propuesta comercial %s enviada por correo electrónico +ContractSentByEMail=Contrato %s enviado por correo electrónico +OrderSentByEMail=Pedido de venta %s enviado por correo electrónico +InvoiceSentByEMail=Factura del cliente %s enviada por correo electrónico +SupplierOrderSentByEMail=Orden de compra %s enviada por correo electrónico +SupplierInvoiceSentByEMail=Factura del proveedor %s enviada por correo electrónico +ShippingSentByEMail=Envío %s enviado por correo electrónico ShippingValidated=Envío %s validado ProposalDeleted=Propuesta eliminada OrderDeleted=Orden eliminada InvoiceDeleted=Factura borrada +TICKET_MODIFYInDolibarr=Boleto %s modificado +TICKET_ASSIGNEDInDolibarr=Boleto %s asignado +TICKET_CLOSEInDolibarr=Boleto %s cerrado DateActionEnd=Fecha final AgendaUrlOptions1=También puede agregar los siguientes parámetros para filtrar la salida: AgendaUrlOptions3=logina =%s para restringir la salida a acciones propiedad de un usuario%s. AgendaUrlOptionsNotAdmin=logina=!%s para restringir la salida a acciones que no son propiedad del usuario %s. AgendaUrlOptions4=logint =%s para restringir la salida a acciones asignadas al usuario %s (propietario y otros). AgendaUrlOptionsProject= project = __ PROJECT_ID __ para restringir el resultado a acciones vinculadas al proyecto __ PROJECT_ID __ . +AgendaUrlOptionsNotAutoEvent=notactiontype = systemauto para excluir eventos automáticos. AgendaShowBirthdayEvents=Mostrar cumpleaños de contactos AgendaHideBirthdayEvents=Ocultar cumpleaños de contactos ExportDataset_event1=Lista de eventos de la agenda DefaultWorkingDays=Rango predeterminado de días laborables en la semana (Ejemplo: 1-5, 1-6) DefaultWorkingHours=Horas de trabajo predeterminadas en el día (Ejemplo: 9-18) ExtSites=Importar calendarios externos +ExtSitesEnableThisTool=Mostrar calendarios externos (definidos en la configuración global) en Agenda. No afecta a los calendarios externos definidos por los usuarios. AgendaExtNb=Calendario no. %s ExtSiteUrlAgenda=URL para acceder al archivo .ical DateActionBegin=Fecha del evento de inicio diff --git a/htdocs/langs/es_CL/assets.lang b/htdocs/langs/es_CL/assets.lang index aa1b21e31d6..76872a25ac6 100644 --- a/htdocs/langs/es_CL/assets.lang +++ b/htdocs/langs/es_CL/assets.lang @@ -3,11 +3,15 @@ Assets =Bienes AccountancyCodeAsset =Código de contabilidad (activo) AccountancyCodeDepreciationAsset =Código de contabilidad (cuenta de activos de depreciación) AccountancyCodeDepreciationExpense =Código de contabilidad (cuenta de gastos de depreciación) +AssetsTypeSetup=Configuración de tipo de activo DeleteType=Borrar +ConfirmDeleteAssetType=¿Estás seguro de que quieres eliminar este tipo de activo? +ShowTypeCard=Mostrar tipo '%s' ModuleAssetsName =Bienes ModuleAssetsDesc =Descripción de los activos AssetsSetup =Configuración de activos AssetsSetupPage =Página de configuración de activos +ExtraFieldsAssetsType =Atributos complementarios (Tipo de activo) AssetsTypeId=Identificación del tipo de activo AssetsTypeLabel=Etiqueta de tipo de activo MenuAssets =Bienes diff --git a/htdocs/langs/es_CL/banks.lang b/htdocs/langs/es_CL/banks.lang index 986887cb0c5..b6aa61864a8 100644 --- a/htdocs/langs/es_CL/banks.lang +++ b/htdocs/langs/es_CL/banks.lang @@ -1,8 +1,10 @@ # Dolibarr language file - Source file is en_US - banks +MenuBankCash=Bancos | Efectivo MenuVariousPayment=Pagos diversos MenuNewVariousPayment=Nuevo pago misceláneo BankAccount=cuenta bancaria BankAccounts=Cuentas bancarias +BankAccountsAndGateways=Cuentas bancarias | Puertas de acceso AccountRef=Ref de cuenta financiera AccountLabel=Etiqueta de cuenta financiera CashAccount=Cuenta de efectivo @@ -27,6 +29,8 @@ AccountStatementShort=Declaración AccountStatements=Estados de cuenta LastAccountStatements=Últimos estados de cuenta IOMonthlyReporting=Informes mensuales +BankAccountDomiciliation=Dirección del banco +RIBControlError=Fallo en la comprobación de integridad de valores. Esto significa que la información para este número de cuenta no está completa o es incorrecta (ver país, números e IBAN). CreateAccount=Crear una cuenta MenuNewFinancialAccount=Nueva cuenta financiera EditFinancialAccount=Editar cuenta @@ -51,6 +55,7 @@ ListTransactionsByCategory=Entradas de la lista / categoría TransactionsToConciliate=Entradas para conciliar Conciliable=Puede ser reconciliado Conciliation=Reconciliación +SaveStatementOnly=Guardar solo declaración ReconciliationLate=Reconciliación tarde OnlyOpenedAccount=Solo cuentas abiertas AccountToCredit=Cuenta al crédito @@ -64,10 +69,12 @@ AddBankRecord=Añadir entrada AddBankRecordLong=Agregar entrada manualmente DateConciliating=Fecha de conciliación BankLineConciliated=Entrada reconciliada -WithdrawalPayment=Pago de retiros +SupplierInvoicePayment=Pago del vendedor +WithdrawalPayment=Orden de pago de débito SocialContributionPayment=Pago de impuestos sociales/fiscales BankTransfer=transferencia bancaria BankTransfers=transferencias bancarias +TransferDesc=Tras transferir de una cuenta a otra, Dolibarr escribirá dos registros (una cuenta de débito en origen y un crédito en una cuenta de destino). La misma cantidad (excepto el signo), la etiqueta y la fecha se utilizarán para esta transacción) TransferTo=A TransferFromToDone=Una transferencia de %s a %s de %s %s ha sido grabada. CheckTransmitter=Transmisor @@ -78,6 +85,7 @@ ConfirmDeleteCheckReceipt=¿Seguro que quieres eliminar este recibo de cheque? BankChecks=Cheques bancarios BankChecksToReceipt=Cheques en espera de depósito ShowCheckReceipt=Mostrar recibo de depósito de cheques +NumberOfCheques=No. de cheque DeleteTransaction=Eliminar la entrada ConfirmDeleteTransaction=¿Seguro que quieres eliminar esta entrada? ThisWillAlsoDeleteBankRecord=Esto también eliminará la entrada bancaria generada @@ -92,6 +100,8 @@ PaymentDateUpdateFailed=La fecha de pago no se pudo actualizar Transactions=Actas BankTransactionLine=Entrada bancaria AllAccounts=Todas las cuentas bancarias y de efectivo +FutureTransaction=Transacción futura. No se puede reconciliar. +SelectChequeTransactionAndGenerate=Seleccione / filtrar cheques para incluir en el recibo de depósito de cheques y haga clic en "Crear". InputReceiptNumber=Elija el extracto bancario relacionado con la conciliación. Use un valor numérico ordenable: AAAAMM o AAAAMMDD EventualyAddCategory=Eventualmente, especifique una categoría en la cual clasificar los registros ToConciliate=¿Para reconciliar? @@ -103,7 +113,16 @@ ConfirmDeleteRib=¿Seguro que quieres eliminar este registro de BAN? ConfirmRejectCheck=¿Seguro que quieres marcar este cheque como rechazado? RejectCheckDate=Fecha en que se devolvió el cheque BankAccountModelModule=Plantillas de documentos para cuentas bancarias +DocumentModelSepaMandate=Plantilla de mandato de la SEPA. Útil para los países europeos en la CEE solamente. DocumentModelBan=Plantilla para imprimir una página con información de BAN. +NewVariousPayment=Nuevo pago misceláneo +VariousPayment=Pago misceláneo VariousPayments=Pagos diversos +ShowVariousPayment=Mostrar pago misceláneo +AddVariousPayment=Añadir pago misceláneo SEPAMandate=Mandato de la SEPA YourSEPAMandate=Su mandato de SEPA +FindYourSEPAMandate=Este es su mandato de SEPA para autorizar a nuestra empresa a realizar un pedido de débito directo a su banco. Devuélvalo firmado (escaneo del documento firmado) o envíelo por correo a +AutoReportLastAccountStatement=Rellene automáticamente el campo 'número de extracto bancario' con el último número de extracto al realizar la conciliación +CashControl=Cerca de efectivo POS +NewCashFence=Nueva valla de efectivo diff --git a/htdocs/langs/es_CL/bills.lang b/htdocs/langs/es_CL/bills.lang index 84353e435a0..21dcccac244 100644 --- a/htdocs/langs/es_CL/bills.lang +++ b/htdocs/langs/es_CL/bills.lang @@ -4,6 +4,8 @@ BillsCustomer=Factura del cliente BillsSuppliers=Facturas del vendedor BillsCustomersUnpaid=Facturas pendientes de pago de los clientes BillsCustomersUnpaidForCompany=Facturas impagadas de los clientes para %s +BillsSuppliersUnpaid=Facturas de proveedores sin pagar +BillsSuppliersUnpaidForCompany=Facturas de proveedores sin pagar por %s BillsLate=Pagos atrasados BillsStatistics=Estadísticas de facturas de clientes DisabledBecauseDispatchedInBookkeeping=Desactivado porque la factura se envió a la contabilidad @@ -16,8 +18,10 @@ InvoiceProFormaAsk=Factura de proforma InvoiceProFormaDesc= Factura proforma es una imagen de una factura verdadera pero no tiene valor contable. InvoiceReplacement=Factura de reemplazo InvoiceReplacementAsk=Reemplazo de factura por factura +InvoiceReplacementDesc=La factura de reemplazo se utiliza para reemplazar completamente una factura sin que se haya recibido ningún pago.

Nota: Solo las facturas sin pago pueden ser reemplazadas. Si la factura que reemplaza aún no está cerrada, se cerrará automáticamente a "abandonada". InvoiceAvoir=Nota de crédito InvoiceAvoirAsk=Nota de crédito para corregir la factura +InvoiceAvoirDesc=La nota de crédito es una factura negativa utilizada para corregir el hecho de que una factura muestra una cantidad que difiere de la cantidad realmente pagada (por ejemplo, el cliente pagó demasiado por error o no pagará la cantidad completa ya que algunos productos fueron devueltos). invoiceAvoirWithLines=Crear nota de crédito con líneas de la factura de origen invoiceAvoirWithPaymentRestAmount=Crear nota de crédito con la factura pendiente de pago de origen invoiceAvoirLineWithPaymentRestAmount=Nota de crédito por el monto restante no pagado @@ -28,6 +32,7 @@ ReplacementByInvoice=Reemplazado por factura CorrectInvoice=Corregir factura %s CorrectionInvoice=Factura de corrección UsedByInvoice=Utilizado para pagar la factura %s +NoReplacableInvoice=No hay facturas reemplazables. NoInvoiceToCorrect=Sin factura para corregir InvoiceHasAvoir=Fue fuente de una o varias notas de crédito CardBill=Tarjeta de factura @@ -35,6 +40,8 @@ PredefinedInvoices=Facturas Predefinidas InvoiceCustomer=Factura del cliente CustomerInvoice=Factura del cliente CustomersInvoices=Facturas de clientes +SupplierInvoice=Factura del proveedor +SupplierBill=Factura del proveedor SupplierBills=facturas de proveedores PaymentBack=Pago de vuelta CustomerInvoicePaymentBack=Pago de vuelta @@ -42,21 +49,31 @@ PaymentsBack=Pagos de vuelta paymentInInvoiceCurrency=en la moneda de las facturas DeletePayment=Eliminar pago ConfirmDeletePayment=¿Seguro que quieres eliminar este pago? +ConfirmConvertToReduc2=El monto se guardará entre todos los descuentos y podría utilizarse como un descuento para una factura actual o futura para este cliente. +ConfirmConvertToReducSupplier2=El monto se guardará entre todos los descuentos y podría utilizarse como un descuento para una factura actual o futura de este proveedor. +SupplierPayments=Pagos de proveedores ReceivedCustomersPayments=Pagos recibidos de los clientes +PayedSuppliersPayments=Pagos pagados a los vendedores ReceivedCustomersPaymentsToValid=Recibió pagos de clientes para validar PaymentsReportsForYear=Informes de pagos para %s PaymentsAlreadyDone=Pagos ya hechos PaymentsBackAlreadyDone=Pagos ya hechos PaymentRule=Regla de pago PaymentTypeDC=Tarjeta de crédito débito +PaymentTerm=Plazo de pago +PaymentConditions=Términos de pago +PaymentConditionsShort=Términos de pago PaymentAmount=Monto del pago PaymentHigherThanReminderToPay=Pago más alto que un recordatorio para pagar +HelpPaymentHigherThanReminderToPay=Atención, el monto de pago de una o más facturas es mayor que el monto pendiente de pago.
Edite su entrada, de lo contrario confirme y considere crear una nota de crédito por el exceso recibido por cada factura pagada en exceso. +HelpPaymentHigherThanReminderToPaySupplier=Atención, el monto de pago de una o más facturas es mayor que el monto pendiente de pago.
Edite su entrada, de lo contrario confirme y considere crear una nota de crédito por el exceso pagado por cada factura pagada en exceso. ClassifyUnBilled=Clasificar 'Unbilled' CreateCreditNote=Crear nota de crédito AddBill=Crear factura o nota de crédito AddToDraftInvoices=Agregar a la factura borrador SearchACustomerInvoice=Buscar una factura de cliente CancelBill=Cancelar una factura +SendRemindByMail=Enviar recordatorio por correo electrónico DoPayment=Ingrese el pago DoPaymentBack=Ingrese el reembolso ConvertToReduc=Marcar como crédito disponible @@ -78,6 +95,8 @@ BillStatusNotRefunded=No reembolsado BillStatusClosedUnpaid=Cerrado (sin pagar) BillStatusClosedPaidPartially=Pagado (parcialmente) BillShortStatusPaid=Pagado +BillShortStatusPaidBackOrConverted=Reembolsado o convertido +Refunded=Reintegrado BillShortStatusConverted=Pagado BillShortStatusCanceled=Abandonado BillShortStatusValidated=Validado @@ -87,11 +106,16 @@ BillShortStatusNotRefunded=No reembolsado BillShortStatusClosedUnpaid=Cerrado BillShortStatusClosedPaidPartially=Pagado (parcialmente) PaymentStatusToValidShort=Validar +ErrorVATIntraNotConfigured=Número de IVA intracomunitario aún no definido +ErrorNoPaiementModeConfigured=No se ha definido ningún tipo de pago por defecto. Ir a la configuración del módulo de factura para solucionar este problema. +ErrorCreateBankAccount=Cree una cuenta bancaria, luego vaya al panel de configuración del módulo Factura para definir los tipos de pago ErrorBillNotFound=La factura %s no existe +ErrorInvoiceAlreadyReplaced=Error, intentó validar una factura para reemplazar la factura %s. Pero este ya ha sido reemplazado por la factura %s. ErrorDiscountAlreadyUsed=Error, descuento ya usado ErrorInvoiceAvoirMustBeNegative=Error, la factura correcta debe tener una cantidad negativa ErrorInvoiceOfThisTypeMustBePositive=Error, este tipo de factura debe tener una cantidad positiva ErrorCantCancelIfReplacementInvoiceNotValidated=Error, no puede cancelar una factura que ha sido reemplazada por otra factura que todavía está en estado de borrador +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Esta parte u otra ya está en uso, por lo que no se pueden eliminar las series de descuento BillFrom=De BillTo=A ActionsOnBill=Acciones en la factura @@ -101,10 +125,13 @@ FoundXQualifiedRecurringInvoiceTemplate=Se encontró %s factura (s) de plantilla NotARecurringInvoiceTemplate=No es una factura de plantilla recurrente LatestTemplateInvoices=%s últimas plantillas de facturas LatestCustomerTemplateInvoices=%s últimas plantillas de facturas de cliente +LatestSupplierTemplateInvoices=Las últimas facturas de la plantilla de proveedor %s LastCustomersBills=Últimas facturas de clientes %s +LastSuppliersBills=Las últimas facturas de proveedor %s AllCustomerTemplateInvoices=Todas las plantillas de facturas DraftBills=Borrador de facturas CustomersDraftInvoices=Factura del cliente +SuppliersDraftInvoices=Proyecto de facturas del vendedor. Unpaid=No pagado ConfirmDeleteBill=¿Seguro que quieres eliminar esta factura? ConfirmValidateBill=¿Está seguro de que desea validar esta factura con referencia %s? @@ -113,20 +140,28 @@ ConfirmClassifyPaidBill=¿Está seguro de que desea cambiar la factura del %s ConfirmCancelBill=¿Seguro que quieres cancelar la factura del %s? ConfirmCancelBillQuestion=¿Por qué quiere clasificar esta factura como "abandonada"? ConfirmClassifyPaidPartially=¿Está seguro de que desea cambiar la factura del %s al estado pagado? +ConfirmClassifyPaidPartiallyQuestion=Esta factura no ha sido pagada en su totalidad. ¿Cuál es la razón para cerrar esta factura? +ConfirmClassifyPaidPartiallyReasonAvoir=Queda sin pagar (%s %s) es un descuento otorgado porque el pago se realizó antes del plazo. Regularizo el IVA con una nota de crédito. ConfirmClassifyPaidPartiallyReasonDiscount=El no pagado restante (%s %s) es un descuento otorgado porque el pago se realizó antes del plazo. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El impago restante (%s%s) es un descuento otorgado porque el pago se realizó antes del plazo. Acepto perder el IVA sobre este descuento. ConfirmClassifyPaidPartiallyReasonDiscountVat=El impago restante (%s%s) es un descuento otorgado porque el pago se realizó antes del plazo. Recupero el IVA de este descuento sin una nota de crédito. ConfirmClassifyPaidPartiallyReasonBadCustomer=Mal cliente ConfirmClassifyPaidPartiallyReasonProductReturned=Productos devueltos parcialmente ConfirmClassifyPaidPartiallyReasonOther=Cantidad abandonada por otra razón +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Esta opción es posible si su factura ha recibido comentarios adecuados. (Ejemplo: solo el impuesto correspondiente al precio que realmente se pagó otorga derechos de deducción ») +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=En algunos países, esta opción podría ser posible solo si su factura contiene las notas correctas. ConfirmClassifyPaidPartiallyReasonAvoirDesc=Utilice esta opción si el resto no es adecuado +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Un mal cliente es un cliente que se niega a pagar su deuda. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Esta opción se usa cuando el pago no está completo porque algunos de los productos fueron devueltos +ConfirmClassifyPaidPartiallyReasonOtherDesc=Utilice esta opción si todas las demás no son adecuadas, por ejemplo, en la siguiente situación:
- Pago no completado porque algunos productos fueron enviados de vuelta.
- cantidad reclamada demasiado importante porque se olvidó un descuento
En todos los casos, la cantidad reclamada en exceso debe corregirse en el sistema contable mediante la creación de una nota de crédito. ConfirmClassifyAbandonReasonOtherDesc=Esta elección se usará en todos los demás casos. Por ejemplo, porque planea crear una factura de reemplazo. ConfirmCustomerPayment=¿Confirma esta entrada de pago para %s %s? ConfirmSupplierPayment=¿Confirma esta entrada de pago para %s %s? ConfirmValidatePayment=¿Seguro que quieres validar este pago? No se puede hacer ningún cambio una vez que se valida el pago. UnvalidateBill=Desvalidar factura +NumberOfBillsByMonth=Nº de facturas al mes. AmountOfBills=Cantidad de facturas +AmountOfBillsHT=Importe de las facturas (neto de impuestos) AmountOfBillsByMonthHT=Importe de facturas por mes (neto de impuestos) ShowSocialContribution=Mostrar impuesto social / fiscal ShowBill=Mostrar factura @@ -166,8 +201,11 @@ DateInvoice=Fecha de la factura DatePointOfTax=Punto de impuesto NoInvoice=Sin factura ClassifyBill=Clasificar factura +SupplierBillsToPay=Facturas de proveedores sin pagar CustomerBillsUnpaid=Facturas pendientes de pago de los clientes NonPercuRecuperable=No recuperable +SetConditions=Establecer condiciones de pago +SetMode=Establecer tipo de pago SetRevenuStamp=Establecer sello de ingresos Billed=Pagado RepeatableInvoice=Factura de la plantilla @@ -176,7 +214,9 @@ Repeatable=Modelo ChangeIntoRepeatableInvoice=Convertir en factura de plantilla CreateRepeatableInvoice=Crear factura de plantilla CreateFromRepeatableInvoice=Crear a partir de la factura de la plantilla +CustomersInvoicesAndInvoiceLines=Facturas de los clientes y detalles de la factura. CustomersInvoicesAndPayments=Facturas y pagos de clientes +ExportDataset_invoice_1=Facturas de los clientes y detalles de la factura. ExportDataset_invoice_2=Facturas y pagos de clientes Reductions=Reducciones AddDiscount=Crear descuento @@ -206,6 +246,8 @@ DiscountStillRemaining=Descuentos o créditos disponibles DiscountAlreadyCounted=Descuentos o créditos ya consumidos CustomerDiscounts=Descuentos para clientes BillAddress=Dirección de la cuenta +HelpAbandonBadCustomer=Esta cantidad se ha abandonado (el cliente dice que es un mal cliente) y se considera una pérdida excepcional. +HelpAbandonOther=Esta cantidad ha sido abandonada debido a que fue un error (el cliente o la factura equivocados se reemplazaron por otro, por ejemplo) IdSocialContribution=Identificación de pago de impuesto social / fiscal PaymentId=Identificación de pago PaymentRef=Pago ref. @@ -214,18 +256,28 @@ InvoiceRef=Factura ref. InvoiceDateCreation=Fecha de creación de la factura InvoiceStatus=Estado de la factura InvoiceNote=Nota de factura +OrderBilled=Orden facturada +DonationPaid=Donacion pagada WatermarkOnDraftBill=Marca de agua en borradores de facturas (nada si está vacío) InvoiceNotChecked=Sin factura seleccionada ConfirmCloneInvoice=¿Seguro que quieres clonar esta factura %s? DisabledBecauseReplacedInvoice=Acción deshabilitada porque la factura ha sido reemplazada +DescTaxAndDividendsArea=Esta área presenta un resumen de todos los pagos realizados para gastos especiales. Sólo se incluyen aquí los registros con pagos durante el año fijo. +NbOfPayments=No. de pagos SplitDiscount=Split de descuento en dos +ConfirmSplitDiscount=¿Está seguro de que desea dividir este descuento de %s %s en dos descuentos más pequeños? +TypeAmountOfEachNewDiscount=Cantidad de entrada para cada una de dos partes: +TotalOfTwoDiscountMustEqualsOriginal=El total de los dos nuevos descuentos debe ser igual al monto del descuento original. ConfirmRemoveDiscount=¿Seguro que quieres eliminar este descuento? RelatedBill=Factura relacionada RelatedBills=Facturas relacionadas RelatedCustomerInvoices=Facturas de clientes relacionadas +RelatedSupplierInvoices=Facturas de proveedores relacionados LatestRelatedBill=La última factura relacionada +WarningBillExist=Advertencia, ya existen una o más facturas. MergingPDFTool=Fusionando la herramienta PDF AmountPaymentDistributedOnInvoice=Monto del pago distribuido en la factura +PaymentOnDifferentThirdBills=Permitir pagos en diferentes facturas de terceros, pero la misma empresa matriz PaymentNote=Nota de pago ListOfPreviousSituationInvoices=Lista de facturas de situación previas ListOfNextSituationInvoices=Lista de próximas facturas de situación @@ -235,12 +287,14 @@ FrequencyUnit=Unidad de frecuencia toolTipFrequency=Ejemplos:
Establecer 7, Día : dar una nueva factura cada 7 días
Establecer 3, Mes : dar una nueva factura cada 3 meses NextDateToExecution=Fecha para la próxima generación de facturas DateLastGeneration=Fecha de última generación +MaxPeriodNumber=Max. número de generación de factura NbOfGenerationDone=Número de generación de factura ya realizada NbOfGenerationDoneShort=Número de generación realizada MaxGenerationReached=Número máximo de generaciones alcanzadas GeneratedFromRecurringInvoice=Generado a partir de la factura recurrente de la plantilla %s DateIsNotEnough=Fecha no alcanzada todavía InvoiceGeneratedFromTemplate=Factura %s generada a partir de la factura recurrente de la plantilla %s +GeneratedFromTemplate=Generado desde la factura de plantilla %s WarningInvoiceDateInFuture=Advertencia, la fecha de la factura es más alta que la fecha actual WarningInvoiceDateTooFarInFuture=Advertencia, la fecha de la factura está muy lejos de la fecha actual ViewAvailableGlobalDiscounts=Ver descuentos disponibles @@ -261,6 +315,7 @@ PaymentConditionShort14D=14 dias PaymentCondition14D=14 dias PaymentConditionShort14DENDMONTH=14 días de fin de mes PaymentCondition14DENDMONTH=Dentro de los 14 días siguientes al final del mes +FixAmount=Cantidad fija VarAmount=Cantidad variable (%% tot) PaymentTypeVIR=transferencia bancaria PaymentTypeShortVIR=transferencia bancaria @@ -272,8 +327,11 @@ PaymentTypeTIP=TIP (Documentos contra pago) PaymentTypeTRA=giro bancario BankDetails=Detalles del banco BankCode=codigo bancario +DeskCode=Código de sucursal BankAccountNumber=Número de cuenta +BankAccountNumberKey=Suma de comprobación BIC=BIC / SWIFT +BICNumber=Código BIC / SWIFT ExtraInfos=Infos adicionales RegulatedOn=Regulado en ChequeNumber=Verificar N ° @@ -283,16 +341,27 @@ ChequeMaker=Portador Cheque/Transferencia ChequeBank=Banco de cheque CheckBank=Cheque PrettyLittleSentence=Acepte la cantidad de pagos adeudados por cheques emitidos a mi nombre como miembro de una asociación contable aprobada por la Administración Fiscal. +IntracommunityVATNumber=ID IVA intracomunitario +PaymentByChequeOrderedTo=Los pagos con cheques (impuestos incluidos) se pagan a %s, se envían a +PaymentByChequeOrderedToShort=Los pagos con cheque (impuestos incluidos) son pagaderos a +PaymentByTransferOnThisBankAccount=Pago por transferencia a la siguiente cuenta bancaria VATIsNotUsedForInvoice=* IVA no aplicable art-293B de CGI LawApplicationPart2=los bienes siguen siendo propiedad de +LawApplicationPart3=El vendedor hasta el pago total de LawApplicationPart4=su precio. LimitedLiabilityCompanyCapital=SARL con Capital de UseDiscount=Use descuento UseCreditNoteInInvoicePayment=Reduzca la cantidad a pagar con este crédito +MenuChequeDeposits=Depósitos de cheques MenuCheques=Cheques +MenuChequesReceipts=Revisar recibos +ChequesReceipts=Revisar recibos +ChequesArea=Check depósitos area +ChequeDeposits=Depósitos de cheques DepositId=Depósito de ID NbCheque=Cantidad de cheques CreditNoteConvertedIntoDiscount=Este %s se ha convertido en %s +UsBillingContactAsIncoiveRecipientIfExist=Utilice el contacto / dirección con el tipo 'contacto de facturación' en lugar de la dirección de un tercero como destinatario de las facturas ShowUnpaidAll=Mostrar todas las facturas impagas ShowUnpaidLateOnly=Mostrar solo las facturas pendientes de pago PaymentInvoiceRef=Factura de pago %s @@ -301,15 +370,22 @@ Reported=Retrasado DisabledBecausePayments=No es posible ya que hay algunos pagos CantRemovePaymentWithOneInvoicePaid=No se puede eliminar el pago ya que hay al menos una factura clasificada pagada ExpectedToPay=Pago esperado +CantRemoveConciliatedPayment=No se puede eliminar el pago reconciliado PayedByThisPayment=Pagado por este pago +ClosePaidInvoicesAutomatically=Clasifique "Pagadas" todas las facturas estándar, de anticipo o de reemplazo pagadas en su totalidad. ClosePaidCreditNotesAutomatically=Clasifique "Pagado" todas las notas de crédito completamente devueltas. +ClosePaidContributionsAutomatically=Clasifique "Pagado" todas las contribuciones sociales o fiscales pagadas por completo. +AllCompletelyPayedInvoiceWillBeClosed=Todas las facturas que no queden por pagar se cerrarán automáticamente con el estado "Pagado". ToMakePayment=Paga ToMakePaymentBack=Pagar ListOfYourUnpaidInvoices=Lista de facturas impagas NoteListOfYourUnpaidInvoices=Nota: Esta lista contiene solo facturas para terceros a los que está vinculado como representante de ventas. RevenueStamp=Sello de ingresos +YouMustCreateInvoiceFromThird=Esta opción solo está disponible cuando se crea una factura desde la pestaña "Cliente" de un tercero +YouMustCreateInvoiceFromSupplierThird=Esta opción solo está disponible cuando se crea una factura desde la pestaña "Proveedor" de un tercero YouMustCreateStandardInvoiceFirstDesc=Primero debe crear una factura estándar y convertirla en "plantilla" para crear una nueva factura de plantilla PDFCrabeDescription=Factura plantilla en PDF Crabe. Una plantilla de factura completa (Plantilla recomendada) +PDFSpongeDescription=Factura PDF plantilla de esponja. Una plantilla de factura completa. PDFCrevetteDescription=Plantilla de factura en PDF Crevette. Una plantilla de factura completa para facturas de situación TerreNumRefModelDesc1=Número de devolución con formato %saaam-nnnn para facturas estándar y %saaam-nnnn para notas de crédito donde yy es año, mm es mes y nnnn es una secuencia sin interrupción y sin retorno a 0 MarsNumRefModelDesc1=Número de devolución con el formato %syymm-nnnn para facturas estándar, %syymm-nnnn para facturas de reposición, %syymm-nnnn para facturas de anticipo y %syymm-nnnn para las notas de crédito donde yy es año, mm es mes y nnnn es una secuencia sin interrupción y sin volver a 0 @@ -319,6 +395,10 @@ TypeContact_facture_internal_SALESREPFOLL=Factura de cliente representativa de s TypeContact_facture_external_BILLING=Contacto cliente de facturación cotización TypeContact_facture_external_SHIPPING=Contacto de envío del cliente TypeContact_facture_external_SERVICE=Contacto de servicio al cliente +TypeContact_invoice_supplier_internal_SALESREPFOLL=Representante de seguimiento de la factura del vendedor +TypeContact_invoice_supplier_external_BILLING=Contacto factura vendedor +TypeContact_invoice_supplier_external_SHIPPING=Contacto de envío del vendedor +TypeContact_invoice_supplier_external_SERVICE=Contacto de servicio al vendedor InvoiceFirstSituationAsk=Primera factura de situación InvoiceFirstSituationDesc=Las facturas de situación están relacionadas con situaciones relacionadas con una progresión, por ejemplo, la progresión de una construcción. Cada situación está vinculada a una factura. InvoiceSituationAsk=Factura siguiendo la situación @@ -336,10 +416,13 @@ situationInvoiceShortcode_S=D CantBeLessThanMinPercent=El progreso no puede ser menor que su valor en la situación anterior. PDFCrevetteSituationNumber=Situación N ° %s PDFCrevetteSituationInvoiceLineDecompte=Factura de situación - COUNT +PDFCrevetteSituationInvoiceLine=Situación N ° %s: Inv. N ° %s en %s TotalSituationInvoice=Situación total invoiceLineProgressError=El progreso de la línea de la factura no puede ser mayor o igual a la siguiente línea de la factura +updatePriceNextInvoiceErrorUpdateline=Error: actualizar el precio en la línea de factura: %s ToCreateARecurringInvoice=Para crear una factura recurrente para este contrato, primero cree esta factura en borrador, luego conviértala en una plantilla de factura y defina la frecuencia para la generación de facturas futuras. ToCreateARecurringInvoiceGene=Para generar facturas futuras de forma regular y manual, solo vaya al menú %s - %s - %s. +ToCreateARecurringInvoiceGeneAuto=Si necesita que dichas facturas se generen automáticamente, solicite a su administrador que habilite y configure el módulo %s . Tenga en cuenta que ambos métodos (manual y automático) se pueden usar juntos sin riesgo de duplicación. DeleteRepeatableInvoice=Eliminar factura de plantilla ConfirmDeleteRepeatableInvoice=¿Estás seguro de que deseas eliminar la factura de la plantilla? CreateOneBillByThird=Cree una factura por un tercero (de lo contrario, una factura por pedido) diff --git a/htdocs/langs/es_CL/bookmarks.lang b/htdocs/langs/es_CL/bookmarks.lang index 8b386412649..8c3c7bda847 100644 --- a/htdocs/langs/es_CL/bookmarks.lang +++ b/htdocs/langs/es_CL/bookmarks.lang @@ -3,9 +3,8 @@ AddThisPageToBookmarks=Agregar página actual a marcadores ListOfBookmarks=Lista de marcadores EditBookmarks=Listar/editar Marcadores ShowBookmark=Mostrar marcador -OpenANewWindow=Abrir en nueva ventana -ReplaceWindow=Reemplazar ventana actual +OpenANewWindow=Abre una nueva pestaña BehaviourOnClick=Comportamiento cuando se selecciona una URL de marcador -SetHereATitleForLink=Establecer un título para el marcador -UseAnExternalHttpLinkOrRelativeDolibarrLink=Utilizar una URL http externa o una URL relativa de Dolibarr -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Escoger si la página enlazada debe abrirse en una nueva ventana o no +SetHereATitleForLink=Establecer un nombre para el marcador +UseAnExternalHttpLinkOrRelativeDolibarrLink=Utilice un enlace externo / absoluto (https: // URL) o un enlace interno / relativo (/ DOLIBARR_ROOT / htdocs / ...) +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Elija si la página vinculada debería abrirse en la pestaña actual o en una nueva pestaña diff --git a/htdocs/langs/es_CL/boxes.lang b/htdocs/langs/es_CL/boxes.lang index bd777a32504..7066b77ba75 100644 --- a/htdocs/langs/es_CL/boxes.lang +++ b/htdocs/langs/es_CL/boxes.lang @@ -1,11 +1,28 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Información Entrar +BoxLastRssInfos=Información RSS +BoxLastProducts=Últimos productos / Servicios %s +BoxLastCustomerBills=Últimas facturas de clientes BoxOldestUnpaidCustomerBills=Las facturas impagas más antiguas de los clientes +BoxOldestUnpaidSupplierBills=Las facturas de proveedores impagas más antiguas BoxLastProposals=Últimas propuestas comerciales BoxLastProspects=Últimas prospectos modificados +BoxLastCustomerOrders=Últimos pedidos de venta BoxCurrentAccounts=Abre el saldo de cuentas BoxTitleLastRssInfos=Las últimas %s noticias de %s +BoxTitleLastProducts=Productos / Servicios: Última modificación %s. +BoxTitleLastModifiedSuppliers=Proveedores: última modificación de %s +BoxTitleLastModifiedCustomers=Clientes: última %s modificada BoxTitleLastCustomersOrProspects=Últimos %s clientes o prospectos +BoxTitleLastCustomerBills=Las últimas facturas de los clientes %s +BoxTitleLastSupplierBills=Las últimas facturas de proveedores %s +BoxTitleLastModifiedProspects=Perspectivas: última modificación de %s +BoxTitleLastModifiedMembers=Últimos miembros de %s BoxTitleLastFicheInter=Últimas intervenciones modificadas con %s +BoxTitleOldestUnpaidCustomerBills=Facturas de clientes: más antiguas %s sin pagar +BoxTitleOldestUnpaidSupplierBills=Facturas de proveedores: las más antiguas %s sin pagar +BoxTitleLastModifiedContacts=Contactos / Direcciones: Última modificación %s +BoxMyLastBookmarks=Marcadores: el último %s BoxOldestExpiredServices=Servicios expirados activos más antiguos BoxLastExpiredServices=Últimos %s contactos más antiguos con servicios activos caducados BoxTitleLastActionsToDo=Últimas %s acciones para hacer @@ -13,21 +30,36 @@ BoxTitleLastModifiedDonations=Las últimas %s donaciones modificadas BoxTitleLastModifiedExpenses=Últimos informes de gastos modificados %s BoxGlobalActivity=Actividad global (facturas, propuestas, pedidos) BoxTitleGoodCustomers=%s Buenos clientes +FailedToRefreshDataInfoNotUpToDate=Error al actualizar el flujo de RSS. Última fecha de actualización correcta: %s LastRefreshDate=Última fecha de actualización NoRecordedBookmarks=No hay marcadores definidos ClickToAdd=Haga clic aquí para agregar. NoRecordedCustomers=Sin clientes registrados NoRecordedContacts=Sin contactos grabados NoActionsToDo=No hay acciones para hacer +NoRecordedOrders=No hay órdenes de venta registradas NoRecordedProposals=Sin cotizaciones registradas NoRecordedInvoices=No hay facturas registradas de clientes NoUnpaidCustomerBills=No hay facturas impagas de los clientes +NoUnpaidSupplierBills=No hay facturas de proveedores sin pagar +NoModifiedSupplierBills=No hay facturas de proveedores registrados NoRecordedProducts=Sin productos / servicios grabados NoRecordedProspects=Sin perspectivas registradas NoContractedProducts=No hay productos/servicios contratados NoRecordedContracts=Sin contratos grabados NoRecordedInterventions=Sin intervenciones registradas +BoxLatestSupplierOrders=Últimas órdenes de compra +NoSupplierOrder=No hay orden de compra registrada +BoxCustomersInvoicesPerMonth=Facturas de clientes por mes +BoxCustomersOrdersPerMonth=Pedidos de ventas por mes +BoxSuppliersOrdersPerMonth=Pedidos de proveedores por mes BoxProposalsPerMonth=Cotizaciones por mes +NoTooLowStockProducts=Ningún producto está bajo el límite de stock bajo +BoxProductDistribution=Productos / Servicios de Distribución. +BoxTitleLastModifiedSupplierBills=Facturas de proveedores: última %s modificada +BoxTitleLatestModifiedSupplierOrders=Pedidos de proveedores: última modificación de %s +BoxTitleLastModifiedCustomerBills=Facturas de clientes: última %s modificada +BoxTitleLastModifiedCustomerOrders=Órdenes de venta: última %s modificada BoxTitleLastModifiedPropals=Últimas %s propuestas modificadas ForCustomersInvoices=Facturas de clientes ForProposals=Cotizaciones diff --git a/htdocs/langs/es_CL/commercial.lang b/htdocs/langs/es_CL/commercial.lang index fd74feaecb6..0f6f95c7d14 100644 --- a/htdocs/langs/es_CL/commercial.lang +++ b/htdocs/langs/es_CL/commercial.lang @@ -4,6 +4,7 @@ ConfirmDeleteAction=¿Seguro que quieres eliminar este evento? CardAction=Tarjeta de evento ActionOnCompany=Compañía vinculada TaskRDVWith=Encuentro con %s +ShowTask=Mostrar tarea ShowAction=Mostrar evento ThirdPartiesOfSaleRepresentative=Terceros con representante de ventas SaleRepresentativesOfThirdParty=Representantes de ventas de terceros @@ -36,13 +37,14 @@ ActionDoneBy=Evento hecho por ActionAC_FAX=Enviar fax ActionAC_PROP=Envío cotización por correo ActionAC_EMAIL=Enviar correo electrónico +ActionAC_EMAIL_IN=Recepción de correo electrónico ActionAC_RDV=Reuniones ActionAC_INT=Intervención en el sitio ActionAC_FAC=Enviar la factura del cliente por correo ActionAC_REL=Enviar la factura del cliente por correo (recordatorio) ActionAC_CLO=Cerrar ActionAC_EMAILING=Enviar correo masivo -ActionAC_COM=Enviar la orden del cliente por correo +ActionAC_COM=Enviar pedido por correo ActionAC_SHIP=Enviar el envío por correo ActionAC_SUP_ORD=Enviar pedido de compra por correo ActionAC_SUP_INV=Enviar la factura del proveedor por correo @@ -55,3 +57,4 @@ StatusProsp=Estado de la perspectiva DraftPropals=Cotizaciones borrador WelcomeOnOnlineSignaturePage=Bienvenido a la página para aceptar propuestas comerciales de %s ThisScreenAllowsYouToSignDocFrom=Esta pantalla le permite aceptar y firmar, o rechazar, un presupuesto/propuesta comercial +SignatureProposalRef=Firma de cotización / propuesta comercial %s diff --git a/htdocs/langs/es_CL/companies.lang b/htdocs/langs/es_CL/companies.lang index eb33bc05d52..f5ce06adfc8 100644 --- a/htdocs/langs/es_CL/companies.lang +++ b/htdocs/langs/es_CL/companies.lang @@ -5,8 +5,12 @@ SelectThirdParty=Seleccione un tercero ConfirmDeleteCompany=¿Está seguro de que desea eliminar esta empresa y toda la información heredada? DeleteContact=Eliminar un contacto/dirección ConfirmDeleteContact=¿Está seguro de que desea eliminar este contacto y toda la información heredada? +MenuNewThirdParty=Nueva tercera parte +MenuNewProspect=Nueva perspectiva +MenuNewSupplier=Nuevo vendedor MenuNewPrivateIndividual=Nueva privada individual NewCompany=Nueva compañía (prospecto, cliente, vendedor) +NewThirdParty=Nuevo tercero (prospecto, cliente, vendedor) CreateDolibarrThirdPartySupplier=Crear un tercero (vendedor) CreateThirdPartyOnly=Crear un tercero CreateThirdPartyAndContact=Crear un tercero + un contacto infantil @@ -15,14 +19,21 @@ IdThirdParty=Id tercero IdCompany=ID de la compañía IdContact=ID de contacto Contacts=Contactos/Direcciones +ThirdPartyContacts=Contactos de terceros +ThirdPartyContact=Contacto / dirección de terceros CompanyName=Nombre de empresa AliasNames=Nombre de alias (comercial, marca registrada, ...) Companies=Compañías +CountryIsInEEC=El país está dentro de la Comunidad Económica Europea. +ThirdPartyName=Nombre de terceros +ThirdPartyEmail=Correo electrónico de terceros ThirdPartyProspects=Perspectivas ThirdPartyProspectsStats=Perspectivas ThirdPartyCustomersWithIdProf12=Clientes con %s o %s ThirdPartySuppliers=Vendedores +ThirdPartyType=Tipo de terceros Individual=Individuo privado +ToCreateContactWithSameName=Creará automáticamente un contacto / dirección con la misma información que el tercero bajo el tercero. En la mayoría de los casos, incluso si su tercero es una persona física, basta con crear un tercero solo. ParentCompany=Empresa matriz Subsidiaries=Subsidiarias CivilityCode=Código de civilidad @@ -35,9 +46,15 @@ CountryCode=Código de país CountryId=Identificación del país Call=Llamada PhonePerso=Pers. teléfono +No_Email=Rechazar correos electrónicos a granel Town=Ciudad Poste=Posición +VATIsUsed=Impuesto a las ventas utilizado +VATIsUsedWhenSelling=Esto define si este tercero incluye un impuesto a la venta o no cuando realiza una factura a sus propios clientes. VATIsNotUsed=Impuesto a las ventas no se utiliza +CopyAddressFromSoc=Copie la dirección de los detalles de terceros +ThirdpartyNotCustomerNotSupplierSoNoRef=Terceros ni cliente ni proveedor, no hay objetos de referencia disponibles. +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Terceros ni cliente ni proveedor, no hay descuentos disponibles. OverAllProposals=Cotizaciones OverAllSupplierProposals=Peticiones de precio LocalTax1IsUsed=Use el segundo impuesto @@ -72,6 +89,8 @@ ProfId4PT=Prof Id 4 (Conservatorio) ProfId2TN=Prof Id 2 (matrícula fiscal) ProfId3TN=Prof Id 3 (código de Douane) ProfId1US=Id del profesor (FEIN) +VATIntra=ID de IVA +VATIntraShort=ID de IVA VATIntraSyntaxIsValid=La sintaxis es valida VATReturn=Devolución del IVA ProspectCustomer=Prospecto/Cliente @@ -80,12 +99,22 @@ CustomerRelativeDiscount=Descuento relativo del cliente SupplierRelativeDiscount=Descuento relativo del vendedor CustomerAbsoluteDiscountShort=Descuento absoluto CompanyHasNoRelativeDiscount=Este cliente no tiene descuento relativo por defecto +HasRelativeDiscountFromSupplier=Tiene un descuento predeterminado de %s%% de este proveedor +HasNoRelativeDiscountFromSupplier=No tiene un descuento relativo predeterminado de este proveedor +CompanyHasAbsoluteDiscount=Este cliente tiene descuentos disponibles (notas de créditos o anticipos) para %s %s +CompanyHasDownPaymentOrCommercialDiscount=Este cliente tiene descuentos disponibles (comerciales, pagos iniciales ) para %s %s CompanyHasCreditNote=Este cliente todavía tiene notas de crédito por %s%s +HasNoAbsoluteDiscountFromSupplier=No tiene ningún crédito de descuento disponible de este proveedor. +HasAbsoluteDiscountFromSupplier=Tiene descuentos disponibles (notas de créditos o anticipos) para %s %s de este proveedor +HasDownPaymentOrCommercialDiscountFromSupplier=Tiene descuentos disponibles (comerciales, anticipos) para %s %s de este proveedor +HasCreditNoteFromSupplier=Tiene notas de crédito para %s %s de este proveedor CompanyHasNoAbsoluteDiscount=Este cliente no tiene crédito de descuento disponible CustomerAbsoluteDiscountAllUsers=Descuentos absolutos de clientes (concedidos por todos los usuarios) CustomerAbsoluteDiscountMy=Descuentos absolutos de clientes (otorgados por usted) SupplierAbsoluteDiscountAllUsers=Descuentos absolutos de proveedores (ingresados ​​por todos los usuarios) SupplierAbsoluteDiscountMy=Descuentos absolutos de proveedores (ingresados ​​por usted mismo) +Vendor=Vendedor +Supplier=Vendedor AddContactAddress=Crear contacto / dirección EditContactAddress=Editar contacto / dirección ContactId=ID de contacto @@ -93,12 +122,20 @@ NoContactDefinedForThirdParty=Sin contacto definido para este tercero NoContactDefined=Sin contacto definido DefaultContact=Contacto / dirección predeterminados AddThirdParty=Crear un tercero +CustomerCode=Código de cliente +SupplierCode=Código de proveedor +CustomerCodeShort=Código de cliente +SupplierCodeShort=Código de proveedor +CustomerCodeDesc=Código de cliente, único para todos los clientes. +SupplierCodeDesc=Código de proveedor, único para todos los proveedores RequiredIfCustomer=Obligatorio si un tercero es un cliente o prospecto RequiredIfSupplier=Requerido si un tercero es un vendedor +ValidityControledByModule=Validez controlada por módulo ProspectToContact=Perspectiva de contactar CompanyDeleted=La compañía "%s" eliminada de la base de datos. ListOfContacts=Lista de contactos/direcciones ListOfContactsAddresses=Lista de contactos/direcciones +ListOfThirdParties=Lista de terceros ContactsAllShort=Todo (Sin filtro) ContactType=Tipo de Contacto ContactForOrders=Contacto de la orden @@ -111,9 +148,16 @@ NoContactForAnyOrderOrShipments=Este contacto no es un contacto para ningún ped NoContactForAnyProposal=Este contacto no es contacto de ninguna cotización NoContactForAnyContract=Este contacto no es un contacto para ningún contrato NoContactForAnyInvoice=Este contacto no es un contacto para ninguna factura +NewContactAddress=Nuevo Contacto / Dirección EditCompany=Editar empresa +ThisUserIsNot=Este usuario no es prospecto, cliente ni vendedor. VATIntraCheck=Cheque +VATIntraCheckDesc=La identificación del IVA debe incluir el prefijo del país. El enlace %s utiliza el servicio europeo de verificación de IVA (VIES), que requiere acceso a Internet desde el servidor Dolibarr. +VATIntraCheckableOnEUSite=Compruebe la identificación del IVA intracomunitaria en el sitio web de la Comisión Europea +VATIntraManualCheck=También puede consultar manualmente en el sitio web de la Comisión Europea %s ErrorVATCheckMS_UNAVAILABLE=No es posible comprobar. El servicio de verificación no proporcionado por el estado miembro (%s). +NorProspectNorCustomer=No prospecto, ni cliente +JuridicalStatus=Tipo de entidad jurídica ProspectLevel=Potencial prospectivo OthersNotLinkedToThirdParty=Otros, no vinculados a un tercero ProspectStatus=Estado de la perspectiva @@ -138,14 +182,24 @@ ExportCardToFormat=Exportar la tarjeta al formato ContactNotLinkedToCompany=Contacto no vinculado a ningún tercero DolibarrLogin=Ingreso Dolibbarr NoDolibarrAccess=Sin acceso a Dolibarr +ExportDataset_company_1=Terceros (empresas / fundaciones / personas físicas) y sus propiedades. +ImportDataset_company_2=Contactos / direcciones y atributos adicionales de terceros +ImportDataset_company_4=Representantes de ventas de terceros (asignar representantes de ventas / usuarios a empresas) DeliveryAddress=Dirección de entrega SupplierCategory=Categoría del vendedor DeleteFile=Borrar archivo ConfirmDeleteFile=¿Seguro que quieres eliminar este archivo? AllocateCommercial=Asignado al representante de ventas Organization=Organización +FiscalYearInformation=Año fiscal FiscalMonthStart=Mes de inicio del año fiscal +YouMustAssignUserMailFirst=Debe crear un correo electrónico para este usuario antes de poder agregar una notificación por correo electrónico. YouMustCreateContactFirst=Para poder agregar notificaciones por correo electrónico, primero debe definir contactos con correos electrónicos válidos para el tercero +ListSuppliersShort=Lista de vendedores +ListProspectsShort=Lista de prospectos +ListCustomersShort=Lista de clientes +ThirdPartiesArea=Terceros / Contactos +UniqueThirdParties=Total de Terceros InActivity=Abierto ThirdPartyIsClosed=Tercero está cerrado ProductsIntoElements=Lista de productos / servicios en %s @@ -153,11 +207,16 @@ CurrentOutstandingBill=Factura pendiente actual OutstandingBill=Max. por factura pendiente OutstandingBillReached=Max. por la factura pendiente alcanzado OrderMinAmount=Monto mínimo para la orden +MonkeyNumRefModelDesc=Devuelva un número con el formato %syymm-nnnn para el código del cliente y %syymm-nnnn para el código del proveedor donde yy es año, mm es mes y nnnn es una secuencia sin interrupción ni devolución a 0. LeopardNumRefModelDesc=El código es libre. Este código se puede modificar en cualquier momento. ManagingDirectors=Nombre del gerente (CEO, director, presidente ...) MergeOriginThirdparty=Tercero duplicado (tercero que desea eliminar) +ConfirmMergeThirdparties=¿Está seguro de que desea fusionar este tercero con el actual? Todos los objetos vinculados (facturas, pedidos, ...) se moverán al tercero actual, luego se eliminará el tercero. ThirdpartiesMergeSuccess=Los terceros se han fusionado SaleRepresentativeLogin=Inicio de sesión del representante de ventas SaleRepresentativeFirstname=Nombre del representante de ventas SaleRepresentativeLastname=Apellido del representante de ventas ErrorThirdpartiesMerge=Hubo un error al eliminar los terceros. Por favor revise el registro. Los cambios han sido revertidos. +PaymentTermsSupplier=Plazo de pago - Proveedor +MulticurrencyUsed=Utilizar la moneda múltiple +MulticurrencyCurrency=Moneda diff --git a/htdocs/langs/es_CL/compta.lang b/htdocs/langs/es_CL/compta.lang index 6c137808035..2aa54a47917 100644 --- a/htdocs/langs/es_CL/compta.lang +++ b/htdocs/langs/es_CL/compta.lang @@ -11,6 +11,7 @@ FeatureIsSupportedInInOutModeOnly=Característica solo disponible en el modo de VATReportBuildWithOptionDefinedInModule=Las cantidades que se muestran aquí se calculan utilizando las reglas definidas por la configuración del módulo de impuestos. LTReportBuildWithOptionDefinedInModule=Las cantidades que se muestran aquí se calculan utilizando las reglas definidas por la configuración de la empresa. Param=Configurar +RemainingAmountPayment=Cantidad de pago restante: Accountparent=Cuenta para padres Accountsparent=Cuentas de padres MenuReportInOut=Ingresos / gastos @@ -65,6 +66,7 @@ AddSocialContribution=Agregar impuesto social / fiscal ContributionsToPay=Impuestos sociales/fiscales a pagar AccountancyTreasuryArea=Área de facturación y pago PaymentCustomerInvoice=Pago de factura de cliente +PaymentSupplierInvoice=pago factura proveedor PaymentSocialContribution=Pago de impuestos sociales/fiscales PaymentVat=Pago del IVA ListPayment=Lista de pagos @@ -91,6 +93,7 @@ SocialContributionsPayments=Pagos de impuestos sociales/fiscales ShowVatPayment=Mostrar el pago del IVA BalanceVisibilityDependsOnSortAndFilters=El saldo es visible en esta lista solo si la tabla se ordena de forma ascendente en %s y se filtra para 1 cuenta bancaria CustomerAccountancyCode=Código de contabilidad del cliente +SupplierAccountancyCode=código de contabilidad del vendedor CustomerAccountancyCodeShort=Cust. cuenta. código SupplierAccountancyCodeShort=Cenar. cuenta. código Turnover=Facturación facturada @@ -106,6 +109,7 @@ NewCheckDeposit=Nuevo depósito de cheque NewCheckDepositOn=Crear recibo para el depósito en la cuenta: %s NoWaitingChecks=No hay cheques pendientes de depósito. DateChequeReceived=Verificar fecha de recepción +NbOfCheques=No. de cheques PaySocialContribution=Pagar un impuesto social / fiscal ConfirmPaySocialContribution=¿Estás seguro de que quieres clasificar este impuesto social o fiscal como pagado? DeleteSocialContribution=Eliminar un pago de impuestos sociales o fiscales @@ -115,6 +119,7 @@ CalcModeVATDebt=Modo %sIVA sobre compromisos contables%s. CalcModeVATEngagement=Modo %s IVA en ingresos-gastos%s. CalcModeDebt=Análisis de facturas registradas conocidas incluso si aún no se contabilizan en el libro mayor. CalcModeEngagement=Análisis de los pagos registrados conocidos, incluso si aún no se contabilizan en el Libro mayor. +CalcModeBookkeeping=Análisis de los datos registrados en la tabla de Contabilidad. CalcModeLT1=Modo %sRE en facturas de clientes - facturas de proveedores %s CalcModeLT1Debt=Modo %sRE en las facturas del cliente %s CalcModeLT1Rec=Modo %sRE en facturas de proveedores %s @@ -131,11 +136,14 @@ SeeReportInBookkeepingMode=Consulte %sInforme de facturación%s para real RulesAmountWithTaxIncluded=- Las cantidades que se muestran son con todos los impuestos incluidos RulesResultDue=- Incluye facturas pendientes, gastos, IVA, donaciones ya sean pagadas o no. También incluye salarios pagados.
- Se basa en la fecha de validación de facturas e IVA y en la fecha de vencimiento de los gastos. Para los salarios definidos con el módulo Salario, se usa la fecha de valor del pago. RulesResultInOut=- Incluye los pagos reales realizados en facturas, gastos, IVA y salarios.
- Se basa en las fechas de pago de las facturas, gastos, IVA y salarios. La fecha de donación para la donación. +RulesCADue=- Incluye las facturas debidas del cliente, ya sean pagadas o no.
- Se basa en la fecha de validación de estas facturas.
+RulesCAIn=- Incluye todos los pagos efectivos de las facturas recibidas de los clientes.
- Se basa en la fecha de pago de estas facturas.
RulesCATotalSaleJournal=Incluye todas las líneas de crédito del diario Sale. RulesAmountOnInOutBookkeepingRecord=Incluye registro en su Libro mayor con cuentas de contabilidad que tiene el grupo "GASTOS" o "INGRESOS" RulesResultBookkeepingPredefined=Incluye registro en su Libro mayor con cuentas de contabilidad que tiene el grupo "GASTOS" o "INGRESOS" RulesResultBookkeepingPersonalized=Muestra un registro en su Libro mayor con cuentas de contabilidad agrupadas por grupos personalizados SeePageForSetup=Ver el menú %s para la configuración +DepositsAreNotIncluded=- Las facturas de anticipo no están incluidas. LT1ReportByCustomers=Informe el impuesto 2 por un tercero LT2ReportByCustomers=Informe el impuesto 3 por un tercero LT1ReportByCustomersES=Informe de un tercero RE @@ -180,6 +188,7 @@ RefExt=Ref externo ToCreateAPredefinedInvoice=Para crear una plantilla de factura, cree una factura estándar, luego, sin validarla, haga clic en el botón "%s". LinkedOrder=Enlace a la orden CalculationRuleDesc=Para calcular el IVA total, hay dos métodos:
El método 1 es redondear el IVA en cada línea y luego sumarlas.
El método 2 es sumar todos los IVA en cada línea, luego redondear el resultado.
El resultado final puede diferir de algunos centavos. El modo predeterminado es el modo %s. +CalculationRuleDescSupplier=Según el proveedor, elija el método apropiado para aplicar la misma regla de cálculo y obtenga el mismo resultado esperado por su proveedor. TurnoverPerProductInCommitmentAccountingNotRelevant=El informe de la facturación obtenida por producto no está disponible. Este informe solo está disponible para facturación facturada. TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=El informe de Cifra de negocios recaudada por tasa de impuesto a la venta no está disponible. Este informe solo está disponible para facturación facturada. AccountancyJournal=Revista de códigos contables @@ -187,7 +196,10 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta de contabilidad de forma predeterminada para ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta de contabilidad de forma predeterminada para el IVA en compras (se usa si no está definido en la configuración del diccionario de IVA) ACCOUNTING_VAT_PAY_ACCOUNT=Cuenta de contabilidad por defecto para pagar el IVA ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta de contabilidad utilizada para terceros clientes +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=La cuenta contable dedicada definida en la tarjeta de terceros se utilizará solo para la contabilidad de Libro mayor auxiliar. Este se usará para el Libro mayor general y como valor predeterminado de la contabilidad del Libro mayor auxiliar si no se define una cuenta de cuenta del cliente dedicada a un tercero. ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta de contabilidad utilizada para terceros proveedores +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=La cuenta contable dedicada definida en la tarjeta de terceros se utilizará solo para la contabilidad de Libro mayor auxiliar. Este se usará para el Libro mayor y como valor predeterminado de la contabilidad del Libro mayor auxiliar si no se define una cuenta de proveedor dedicada en un tercero. +ConfirmCloneTax=Confirmar el clon de un impuesto social / fiscal. CloneTaxForNextMonth=Clonarlo para el próximo mes SimpleReport=Informe simple AddExtraReport=Informes adicionales (agregar informe de clientes extranjeros y nacionales) @@ -199,6 +211,7 @@ ImportDataset_tax_vat=Pagos de IVA ErrorBankAccountNotFound=Error: cuenta bancaria no encontrada FiscalPeriod=Período contable ListSocialContributionAssociatedProject=Lista de contribuciones sociales asociadas con el proyecto +AccountingAffectation=Asignación de contabilidad LastDayTaxIsRelatedTo=Último día del período el impuesto está relacionado con VATDue=Impuesto de venta reclamado ByVatRate=Por tasa de impuesto a la venta diff --git a/htdocs/langs/es_CL/ecm.lang b/htdocs/langs/es_CL/ecm.lang index 6bff606eb69..eb90a48c10f 100644 --- a/htdocs/langs/es_CL/ecm.lang +++ b/htdocs/langs/es_CL/ecm.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=N° de documentos en el directorio +ECMNbOfDocs=Nº de documentos en el directorio. ECMAddSection=Agregar directorio ECMCreationDate=Fecha de creación ECMNbOfSubDir=Cantidad de subdirectorios @@ -20,6 +20,8 @@ ECMDocsByProjects=Documentos vinculados a proyectos ECMDocsByUsers=Documentos vinculados a usuarios ECMDocsByInterventions=Documentos vinculados a intervenciones ECMDocsByExpenseReports=Documentos vinculados a informes de gastos +ECMDocsByHolidays=Documentos vinculados a vacaciones +ECMDocsBySupplierProposals=Documentos vinculados a propuestas de proveedores. ECMNoDirectoryYet=Sin directorio creado DeleteSection=Eliminar directorio ConfirmDeleteSection=¿Puedes confirmar que quieres borrar el directorio %s? diff --git a/htdocs/langs/es_CL/install.lang b/htdocs/langs/es_CL/install.lang index 718af0a4691..3e9a45b1ffb 100644 --- a/htdocs/langs/es_CL/install.lang +++ b/htdocs/langs/es_CL/install.lang @@ -1,19 +1,37 @@ # Dolibarr language file - Source file is en_US - install InstallEasy=Simplemente siga las instrucciones paso a paso. MiscellaneousChecks=Verificación de requisitos previos +ConfFileDoesNotExistsAndCouldNotBeCreated=El archivo de configuración %s no existe y no se pudo crear. ConfFileCouldBeCreated=Se puede crear el archivo de configuración %s. +ConfFileIsNotWritable=El archivo de configuración %s no se puede escribir. Compruebe los permisos. Para la primera instalación, su servidor web debe poder escribir en este archivo durante el proceso de configuración ("chmod 666", por ejemplo, en un sistema operativo tipo Unix). ConfFileIsWritable=El archivo de configuración %s es escribible. ConfFileMustBeAFileNotADir=El archivo de configuración %s debe ser un archivo, no un directorio. +ConfFileReload=Recarga de parámetros desde archivo de configuración. PHPSupportSessions=Este PHP admite sesiones. PHPSupportPOSTGETOk=Este PHP soporta variables POST y GET. +PHPSupportPOSTGETKo=Es posible que su configuración de PHP no admita las variables POST y / o GET. Verifique el parámetro variables_order en php.ini. +PHPSupportGD=Este PHP soporta funciones gráficas GD. +PHPSupportCurl=Este PHP soporta Curl. +PHPSupportUTF8=Este PHP soporta funciones UTF8. +PHPSupportIntl=Este PHP soporta funciones de Intl. PHPMemoryOK=Su memoria de sesión máxima de PHP está configurada en %s. Esto debería ser suficiente. +PHPMemoryTooLow=La memoria de sesión máxima de PHP se establece en %s bytes. Esto es demasiado bajo. Cambie su php.ini para establecer el parámetro memory_limit en al menos %s bytes. +Recheck=Haga clic aquí para una prueba más detallada +ErrorPHPDoesNotSupportSessions=Su instalación de PHP no admite sesiones. Esta función es necesaria para permitir que Dolibarr funcione. Compruebe su configuración de PHP y los permisos del directorio de sesiones. +ErrorPHPDoesNotSupportGD=Su instalación de PHP no soporta funciones gráficas de GD. No habrá gráficos disponibles. ErrorPHPDoesNotSupportCurl=Su instalación de PHP no es compatible con Curl. +ErrorPHPDoesNotSupportUTF8=Su instalación de PHP no es compatible con las funciones UTF8. Dolibarr no puede funcionar correctamente. Resuelve esto antes de instalar Dolibarr. +ErrorPHPDoesNotSupportIntl=Su instalación de PHP no admite funciones de Intl. ErrorDirDoesNotExists=El directorio %s no existe. +ErrorGoBackAndCorrectParameters=Regresa y revisa / corrige los parámetros. ErrorWrongValueForParameter=Puede haber escrito un valor incorrecto para el parámetro '%s'. ErrorFailedToConnectToDatabase=Error al conectarse a la base de datos '%s'. ErrorDatabaseVersionTooLow=La versión de la base de datos (%s) es demasiado antigua. Se requiere la versión %s o superior. ErrorPHPVersionTooLow=La versión de PHP es muy antigua. La versión %s es obligatoria. +ErrorConnectedButDatabaseNotFound=La conexión al servidor se realizó correctamente, pero no se encontró la base de datos '%s'. +IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base de datos no existe, regrese y marque la opción "Crear base de datos". IfDatabaseExistsGoBackAndCheckCreate=Si la base de datos ya existe, retroceda y desmarque la opción "Crear base de datos". +WarningBrowserTooOld=La versión del navegador es demasiado antigua. Se recomienda encarecidamente actualizar su navegador a una versión reciente de Firefox, Chrome u Opera. PHPVersion=Versión de PHP License=Usando licencia WebPagesDirectory=Directorio donde se almacenan las páginas web @@ -21,10 +39,19 @@ DocumentsDirectory=Directorio para almacenar documentos cargados y generados CheckToForceHttps=Marque esta opción para forzar conexiones seguras (https).
Esto requiere que el servidor web esté configurado con un certificado SSL. DolibarrDatabase=Base de Datos Dolibarr DatabaseType=Tipo de base +ServerAddressDescription=Nombre o dirección IP para el servidor de la base de datos. Normalmente, 'localhost' cuando el servidor de la base de datos está alojado en el mismo servidor que el servidor web. ServerPortDescription=Puerto del servidor de base de datos Mantente vacío si desconocido. +DatabasePrefix=Prefijo de tabla de base de datos +AdminLogin=Cuenta de usuario para el propietario de la base de datos Dolibarr. +PasswordAgain=Vuelva a escribir la confirmación de la contraseña AdminPassword=Contraseña para el propietario de la base de datos Dolibarr. CreateDatabase=Crear base de datos +CreateUser=Cree una cuenta de usuario o otorgue permiso de cuenta de usuario en la base de datos de Dolibarr DatabaseSuperUserAccess=Servidor de base de datos: acceso de superusuario +CheckToCreateDatabase=Marque la casilla si la base de datos aún no existe y, por lo tanto, debe crearse.
En este caso, también debe completar el nombre de usuario y la contraseña de la cuenta de superusuario al final de esta página. +CheckToCreateUser=Marque la casilla si:
la cuenta de usuario de la base de datos aún no existe y por lo tanto debe crearse, o
si la cuenta de usuario existe pero la base de datos no existe y se deben otorgar permisos.
En este caso, se debe introducir la cuenta de usuario y la contraseña y el nombre de cuenta y contraseña de superusuario en la parte inferior de esta página. Si esta casilla no está marcada, el propietario de la base de datos y la contraseña ya deben existir. +DatabaseRootLoginDescription=Nombre de cuenta de superusuario (para crear nuevas bases de datos o nuevos usuarios), obligatorio si la base de datos o su propietario aún no existen. +KeepEmptyIfNoPassword=Deje en blanco si el superusuario no tiene contraseña (NO se recomienda) DatabaseCreation=Creación de base CreateDatabaseObjects=Creación de objetos de base ReferenceDataLoading=Carga de datos de referencia @@ -33,6 +60,9 @@ CreateTableAndPrimaryKey=Crear tabla %s CreateOtherKeysForTable=Crear claves e índices foráneos para la tabla %s OtherKeysCreation=Creación de claves e índices extranjeros AdminAccountCreation=Creación de inicio +PleaseTypePassword=Por favor escriba una contraseña, las contraseñas vacías no están permitidas! +PleaseTypeALogin=Por favor escriba un nombre de usuario! +PasswordsMismatch=Las contraseñas difieren, por favor intente de nuevo! SystemIsInstalled=Esta instalación está completa. SystemIsUpgraded=Dolibarr se ha actualizado con éxito. YouNeedToPersonalizeSetup=Debe configurar Dolibarr para que se ajuste a sus necesidades (apariencia, características, ...). Para hacer esto, por favor, siga el siguiente enlace: @@ -41,13 +71,16 @@ GoToDolibarr=Ir a Dolibarr GoToSetupArea=Ir a Dolibarr (área de configuración) GoToUpgradePage=Ir a la página de actualización de nuevo WithNoSlashAtTheEnd=Sin la barra "/" al final +AdminLoginAlreadyExists=La cuenta de administrador de Dolibarr ' %s ' ya existe. Vuelve si quieres crear otro. FailedToCreateAdminLogin=Error al crear la cuenta de administrador de Dolibarr. +WarningRemoveInstallDir=Advertencia, por razones de seguridad, una vez que se complete la instalación o la actualización, debe agregar un archivo llamado install.lock en el directorio de documentos de Dolibarr para evitar nuevamente el uso accidental / malicioso de las herramientas de instalación. ChoosedMigrateScript=Elija script de migración DataMigration=Migración de base de datos (datos) DatabaseMigration=Migración de la base de datos (estructura + algunos datos) ProcessMigrateScript=Procesamiento de script ChooseYourSetupMode=Elija su modo de configuración y haga clic en "Comenzar" ... FreshInstall=Instalación nueva +FreshInstallDesc=Utilice este modo si esta es su primera instalación. Si no, este modo puede reparar una instalación previa incompleta. Si desea actualizar su versión, elija el modo "Actualizar". UpgradeDesc=Utilice este modo si ha reemplazado archivos antiguos de Dolibarr con archivos de una versión más nueva. Esto actualizará su base de datos y datos. Start=comienzo InstallNotAllowed=La configuración no está permitida por los permisos de conf.php @@ -57,17 +90,36 @@ DatabaseVersion=Versión de base ServerVersion=Versión de servidor de base YouMustCreateItAndAllowServerToWrite=Debe crear este directorio y permitir que el servidor web escriba en él. DBSortingCollation=Orden de clasificación de caracteres +YouAskDatabaseCreationSoDolibarrNeedToConnect=Seleccionó crear la base de datos %s , pero para esto, Dolibarr necesita conectarse al servidor %s con el superusuario %s permisos. +YouAskLoginCreationSoDolibarrNeedToConnect=Seleccionó crear el usuario de la base de datos %s , pero para esto, Dolibarr necesita conectarse al servidor %s con los permisos de superusuario %s . +BecauseConnectionFailedParametersMayBeWrong=La conexión de la base de datos falló: los parámetros del host o superusuario deben ser incorrectos. OrphelinsPaymentsDetectedByMethod=Pago de huérfanos detectado por el método %s RemoveItManuallyAndPressF5ToContinue=Quítelo manualmente y presione F5 para continuar. +IfLoginDoesNotExistsCheckCreateUser=Si el usuario aún no existe, debe marcar la opción "Crear usuario" +ErrorConnection=El servidor " %s ", el nombre de la base de datos " %s ", el inicio de sesión " %s ", o la contraseña de la base de datos puede ser incorrecta o la versión del cliente PHP puede ser demasiado antigua en comparación con la versión de la base de datos. InstallChoiceRecommanded=Opción recomendada para instalar la versión %s de su versión actual %s InstallChoiceSuggested= Opción de instalación sugerida por el instalador . +MigrateIsDoneStepByStep=La versión de destino (%s) tiene un espacio de varias versiones. El asistente de instalación volverá a sugerir una migración adicional una vez que este se complete. +CheckThatDatabasenameIsCorrect=Compruebe que el nombre de la base de datos " %s " sea correcto. IfAlreadyExistsCheckOption=Si este nombre es correcto y esa base de datos aún no existe, debe marcar la opción "Crear base de datos". OpenBaseDir=Parámetro PHP openbasedir +YouAskToCreateDatabaseSoRootRequired=Has marcado la casilla "Crear base de datos". Para esto, debe proporcionar el nombre de usuario / contraseña del superusuario (parte inferior del formulario). +YouAskToCreateDatabaseUserSoRootRequired=Has marcado la casilla "Crear propietario de base de datos". Para esto, debe proporcionar el nombre de usuario / contraseña del superusuario (parte inferior del formulario). +NextStepMightLastALongTime=El paso actual puede tardar varios minutos. Por favor, espere hasta que la siguiente pantalla se muestre completamente antes de continuar. +MigrationCustomerOrderShipping=Migración de envío para almacenamiento de pedidos de ventas. MigrationShippingDelivery=Actualice el almacenamiento de envío MigrationShippingDelivery2=Actualice el almacenamiento del envío 2 MigrationFinished=Migración finalizada +LastStepDesc=Último paso : defina aquí el nombre de usuario y la contraseña que desea utilizar para conectarse a Dolibarr. No pierda esto, ya que es la cuenta maestra para administrar todas las otras cuentas de usuario / adicionales. ActivateModule=Activar el módulo %s ShowEditTechnicalParameters=Haga clic aquí para mostrar / editar los parámetros avanzados (modo experto) +WarningUpgrade=Advertencia: ¿Ejecutó primero una copia de seguridad de la base de datos? Esto es muy recomendable. La pérdida de datos (debido a, por ejemplo, errores en mysql versión 5.5.40 / 41/42/43) puede ser posible durante este proceso, por lo que es esencial realizar un volcado completo de su base de datos antes de iniciar cualquier migración. Haga clic en Aceptar para iniciar el proceso de migración ... +ErrorDatabaseVersionForbiddenForMigration=La versión de su base de datos es %s. Tiene un error crítico que hace posible la pérdida de datos si realiza cambios estructurales en su base de datos, como lo requiere el proceso de migración. Por esta razón, no se permitirá la migración hasta que actualice su base de datos a una versión de capa (parcheada) (lista de versiones de buggy conocidas: %s) +KeepDefaultValuesWamp=Utilizó el asistente de configuración de Dolibarr de DoliWamp, por lo que los valores propuestos aquí ya están optimizados. Cámbialas solo si sabes lo que estás haciendo. +KeepDefaultValuesDeb=Usó el asistente de configuración de Dolibarr de un paquete de Linux (Ubuntu, Debian, Fedora ...), por lo que los valores propuestos aquí ya están optimizados. Solo se debe ingresar la contraseña del propietario de la base de datos para crear. Cambie otros parámetros solo si sabe lo que está haciendo. +KeepDefaultValuesMamp=Utilizó el asistente de configuración de Dolibarr de DoliMamp, por lo que los valores propuestos aquí ya están optimizados. Cámbialas solo si sabes lo que estás haciendo. +KeepDefaultValuesProxmox=Utilizó el asistente de configuración de Dolibarr desde un dispositivo virtual Proxmox, por lo que los valores propuestos aquí ya están optimizados. Cámbialas solo si sabes lo que estás haciendo. +UpgradeExternalModule=Ejecutar proceso de actualización dedicado de módulo externo SetAtLeastOneOptionAsUrlParameter=Establezca al menos una opción como parámetro en URL. Por ejemplo: '... repair.php? Standard = confirmed' NothingToDelete=Nada para limpiar / eliminar MigrationFixData=Solución para datos desnormalizados @@ -76,6 +128,7 @@ MigrationSupplierOrder=Migración de datos para pedidos del proveedor MigrationProposal=Migración de datos de cotizaciones MigrationInvoice=Migración de datos para las facturas del cliente MigrationContract=Migración de datos para contratos +MigrationSuccessfullUpdate=Actualización exitosa MigrationUpdateFailed=Proceso de actualización fallido MigrationRelationshipTables=Migración de datos para tablas de relaciones (%s) MigrationPaymentsUpdate=Corrección de datos de pago @@ -87,7 +140,9 @@ MigrationContractsUpdate=Corrección de datos contractuales MigrationContractsNumberToUpdate=%scontrato (s) para actualizar MigrationContractsLineCreation=Crear una línea de contrato para la ref. De contrato %s MigrationContractsNothingToUpdate=No más cosas para hacer +MigrationContractsFieldDontExist=El campo fk_facture ya no existe. Nada que hacer. MigrationContractsEmptyDatesUpdate=Contrato de corrección de fecha vacía +MigrationContractsEmptyDatesUpdateSuccess=La corrección de la fecha vacía del contrato se realizó con éxito MigrationContractsEmptyDatesNothingToUpdate=Sin contrato fecha vacía para corregir MigrationContractsEmptyCreationDatesNothingToUpdate=Sin fecha de creación de contrato para corregir MigrationContractsInvalidDatesUpdate=Corrección de contrato de fecha de mal valor @@ -107,11 +162,20 @@ MigrationDeliveryDetail=Actualización de entrega MigrationStockDetail=Actualizar el valor de stock de los productos MigrationMenusDetail=Actualizar tablas de menús dinámicos MigrationDeliveryAddress=Actualizar la dirección de entrega en los envíos +MigrationProjectTaskActors=Migración de datos para la tabla llx_projet_task_actors MigrationProjectUserResp=Campo de migración de datos fk_user_resp de llx_projet a llx_element_contact MigrationProjectTaskTime=Tiempo de actualización pasado en segundos MigrationActioncommElement=Actualizar datos sobre acciones +MigrationPaymentMode=Migración de datos por tipo de pago. MigrationCategorieAssociation=Migración de categorías +MigrationEvents=Migración de eventos para agregar el propietario del evento en la tabla de asignación +MigrationEventsContact=Migración de eventos para agregar contactos de eventos a la tabla de asignación MigrationRemiseEntity=Actualizar el valor del campo de entidad de llx_societe_remise MigrationRemiseExceptEntity=Actualizar el valor del campo de entidad de llx_societe_remise_except MigrationUserRightsEntity=Actualizar el valor del campo de entidad de llx_user_rights MigrationUserGroupRightsEntity=Actualizar el valor del campo de entidad de llx_usergroup_rights +MigrationUserPhotoPath=Migración de rutas de fotos para usuarios. +ErrorFoundDuringMigration=Se informaron errores durante el proceso de migración, por lo que el siguiente paso no está disponible. Para ignorar los errores, puede hacer clic aquí , pero es posible que la aplicación o algunas características no funcionen correctamente hasta que se resuelvan los errores. +YouTryInstallDisabledByDirLock=La aplicación intentó auto actualizarse, pero las páginas de instalación / actualización se han deshabilitado por seguridad (directorio renombrado con el sufijo .lock).
+YouTryInstallDisabledByFileLock=La aplicación intentó auto actualizarse, pero las páginas de instalación / actualización se han deshabilitado por seguridad (debido a la existencia de un archivo de bloqueo install.lock en el directorio de documentos de dolibarr).
+ClickOnLinkOrRemoveManualy=Haga clic en el siguiente enlace. Si siempre ve esta misma página, debe eliminar / cambiar el nombre del archivo install.lock en el directorio de documentos. diff --git a/htdocs/langs/es_CL/interventions.lang b/htdocs/langs/es_CL/interventions.lang index 40cc84043e9..8cdf1db9495 100644 --- a/htdocs/langs/es_CL/interventions.lang +++ b/htdocs/langs/es_CL/interventions.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - interventions InterventionCard=Tarjeta de intervención NewIntervention=Nueva intervención +ChangeIntoRepeatableIntervention=Cambio a intervención repetible. ListOfInterventions=Lista de intervenciones ActionsOnFicheInter=Acciones en intervención InterventionContact=Contacto de intervención @@ -11,6 +12,7 @@ ConfirmValidateIntervention=¿Estas seguro que deseas validad esta intervención ConfirmModifyIntervention=¿Estás seguro de que deseas modificar esta intervención? ConfirmDeleteInterventionLine=¿Estás seguro de que deseas eliminar esta línea de intervención? ConfirmCloneIntervention=¿Estás seguro de que quieres clonar esta intervención? +NameAndSignatureOfInternalContact=Nombre y firma de la intervención: DocumentModelStandard=Modelo de documento estándar para intervenciones InterventionCardsAndInterventionLines=Intervenciones y líneas de intervenciones InterventionClassifyBilled=Clasificar "Facturado" @@ -18,10 +20,12 @@ InterventionClassifyUnBilled=Clasificar "Sin facturar" InterventionClassifyDone=Clasificar "Hecho" StatusInterInvoiced=Pagado SendInterventionRef=Presentación de la intervención %s +SendInterventionByMail=Enviar intervención por correo electrónico InterventionCreatedInDolibarr=Intervención %s creado InterventionModifiedInDolibarr=Intervención %s modificado InterventionClassifiedBilledInDolibarr=Intervención %s configurada como facturada InterventionClassifiedUnbilledInDolibarr=Intervención %s configurada como no facturada +InterventionSentByEMail=Intervención %s enviada por correo electrónico InterventionDeletedInDolibarr=Intervención %s eliminado InterventionsArea=Área de intervenciones DraftFichinter=Borrador de intervenciones @@ -31,6 +35,8 @@ TypeContact_fichinter_external_CUSTOMER=Seguimiento de contacto con el cliente PrintProductsOnFichinter=Imprima también líneas de tipo "producto" (no solo servicios) en la tarjeta de intervención PrintProductsOnFichinterDetails=intervenciones generadas a partir de órdenes UseServicesDurationOnFichinter=Usar la duración de los servicios para las intervenciones generadas a partir de órdenes +NbOfinterventions=Nº de tarjetas de intervención. +NumberOfInterventionsByMonth=Nº de tarjetas de intervención por mes (fecha de validación). AmountOfInteventionNotIncludedByDefault=La cantidad de intervención no se incluye por defecto en los beneficios (en la mayoría de los casos, las hojas de tiempo se utilizan para contar el tiempo invertido). Agregue la opción PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT a 1 en home-setup-other para incluirlos. InterId=Id de intervención InterRef=Intervención ref. diff --git a/htdocs/langs/es_CL/main.lang b/htdocs/langs/es_CL/main.lang index 29fae5a5cca..8eb9aef7170 100644 --- a/htdocs/langs/es_CL/main.lang +++ b/htdocs/langs/es_CL/main.lang @@ -36,13 +36,20 @@ ErrorGoToModuleSetup=Ir a la configuración del módulo para arreglar esto ErrorFailedToSendMail=Error al enviar el correo (remitente = %s, receptor = %s) ErrorFileNotUploaded=El archivo no fue cargado. Compruebe que el tamaño no exceda el máximo permitido, que el espacio libre esté disponible en el disco y que no haya un archivo con el mismo nombre en este directorio. ErrorWrongHostParameter=Parámetro de host incorrecto +ErrorYourCountryIsNotDefined=Tu país no está definido. Vaya a Home-Setup-Edit y vuelva a publicar el formulario. +ErrorRecordIsUsedByChild=Error al eliminar este registro. Este registro es utilizado por al menos un registro secundario. ErrorWrongValueForParameterX=Valor incorrecto para el parámetro %s ErrorNoRequestInError=Sin solicitud por error +ErrorServiceUnavailableTryLater=Servicio no disponible en este momento. Inténtalo de nuevo más tarde. ErrorDuplicateField=Duplicar valor en un campo único +ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Los cambios se han retrotraído. +ErrorConfigParameterNotDefined=El parámetro %s no está definido en el archivo de configuración de Dolibarr conf.php . ErrorCantLoadUserFromDolibarrDatabase=Falló al encontrar el usuario %s en la base de datos Dolibarr. ErrorNoVATRateDefinedForSellerCountry=Error, sin tasas de IVA definidas para el país '%s'. ErrorNoSocialContributionForSellerCountry=Error, ningún tipo de impuestos sociales/fiscales definidos para el país '%s'. ErrorFailedToSaveFile=Error, no se pudo guardar el archivo. +ErrorCannotAddThisParentWarehouse=Está intentando agregar un almacén principal que ya es secundario de un almacén existente +MaxNbOfRecordPerPage=Max. número de registros por página NotAuthorized=Usted no está autorizado a hacer eso. SetDate=Establece la fecha SeeAlso=Véase también %s @@ -54,8 +61,10 @@ FileRenamed=El archivo fue renombrado con éxito FileGenerated=El archivo fue generado con éxito FileSaved=El archivo se guardó con éxito FileUploaded=El archivo se cargó correctamente +FileTransferComplete=Archivo (s) subido exitosamente FilesDeleted=Archivo eliminado con éxito FileWasNotUploaded=Se seleccionó un archivo para el archivo adjunto pero aún no se cargó. Haga clic en "Adjuntar archivo" para esto. +NbOfEntries=Numero de entradas GoToWikiHelpPage=Lea la ayuda en línea (se necesita acceso a Internet) GoToHelpPage=Leer la ayuda RecordDeleted=Registro borrado @@ -65,6 +74,8 @@ Undefined=Indefinido PasswordForgotten=¿Contraseña olvidada? NoAccount=Sin cuenta? SeeAbove=Véase más arriba +LastConnexion=Último acceso +PreviousConnexion=Inicio de sesión anterior PreviousValue=Valor anterior ConnectedOnMultiCompany=Conectado al entorno AuthenticationMode=Modo de autenticación @@ -78,18 +89,21 @@ TechnicalID=ID técnico NotePrivate=Nota (privado) PrecisionUnitIsLimitedToXDecimals=Dolibarr se configuró para limitar la precisión del precio unitario a %s decimales. DoTest=Prueba +WarningYouHaveAtLeastOneTaskLate=Advertencia, tiene al menos un elemento que ha excedido el tiempo de tolerancia. OnlineHelp=Ayuda en linea Under=debajo Period=Período PeriodEndDate=Fecha de finalización del período NotClosed=No se ha cerrado Enabled=Habilitado +Enable=Habilitar Disable=Inhabilitar Disabled=Deshabilitado AddLink=Agregar enlace AddToDraft=Agregar al borrador Update=Actualizar CloseBox=Retire el widget de su tablero de instrumentos +ConfirmSendCardByMail=¿Realmente desea enviar el contenido de esta tarjeta por correo a %s ? Delete=Borrar Remove=retirar Resiliate=Terminar @@ -100,6 +114,7 @@ Save=Guardar SaveAs=Guardar como TestConnection=Conexión de prueba ToClone=Clonar +ConfirmClone=Elija los datos que desea clonar: NoCloneOptionsSpecified=No hay datos para clonar definidos. Run=correr Show=Mostrar @@ -107,6 +122,7 @@ Hide=Ocultar ShowCardHere=Mostrar tarjeta SearchOf=Buscar Valid=Válido +Upload=Subir ToLink=Enlazar Choose=Escoger Resize=Cambiar el tamaño @@ -117,6 +133,8 @@ NoteSomeFeaturesAreDisabled=Tenga en cuenta que muchas características / módul PersonalValue=Valor personal MultiLanguage=Multi lenguaje Info=Iniciar sesión +DescriptionOfLine=Descripción de la línea +DateOfLine=Fecha de la linea Model=Plantilla de documento DefaultModel=Plantilla de documento predeterminada Action=Evento @@ -155,6 +173,9 @@ Mb=megabyte Tb=Tuberculosis Copy=Dupdo Default=Defecto +DefaultValues=Valores predeterminados / filtros / clasificación +UnitPriceHT=Precio unitario (excl.) +UnitPriceHTCurrency=Precio unitario (excl.) (Moneda) UnitPriceTTC=Precio unitario PriceU=ARRIBA. PriceUHT=P.U. (net) @@ -164,11 +185,15 @@ Amount=Cantidad AmountInvoice=Importe de la factura AmountInvoiced=Monto facturado AmountPayment=Monto del pago +AmountHTShort=Cantidad (excl.) AmountTTCShort=Monto (IVA inc.) +AmountHT=Importe (sin IVA) AmountTTC=Monto (impuesto inc.) AmountVAT=IVA +MulticurrencyAlreadyPaid=Ya pagado, moneda original. MulticurrencyRemainderToPay=Permanecer en el pago, moneda original MulticurrencyPaymentAmount=Importe del pago, moneda original +MulticurrencyAmountHT=Importe (sin IVA), moneda original MulticurrencyAmountTTC=Importe (inc. De impuestos), moneda original MulticurrencyAmountVAT=Importe de la cantidad, moneda original AmountLT1=Impuesto a la cantidad 2 @@ -176,8 +201,14 @@ AmountLT2=Impuesto a la cantidad 3 AmountLT1ES=Cantidad RE AmountTotal=Cantidad total AmountAverage=Cantidad promedio +PriceQtyMinHT=Precio cantidad min. (sin impuestos) +PriceQtyMinHTCurrency=Precio cantidad min. (sin IVA) (moneda) SubTotal=Total parcial +TotalHT100Short=Total de 100%% (excl.) +TotalHTShortCurrency=Total (excl. En moneda) TotalTTCShort=Total (IVA inc.) +TotalHT=Total (sin IVA) +TotalHTforthispage=Total (sin IVA) para esta página Totalforthispage=Total para esta página TotalTTC=Total (impuesto inc.) TotalTTCToYourCredit=Total (impuesto inc.) A su crédito @@ -185,6 +216,7 @@ TotalVAT=Total impuestos TotalLT1=Impuesto total 2 TotalLT2=Impuesto total 3 TotalLT2ES=IRPF total +HT=Excl. impuesto TTC=Inc. impuesto INCVATONLY=IVA incluido INCT=Inc. todos los impuestos @@ -194,6 +226,7 @@ LT1=Impuesto a las ventas 2 LT1Type=Tipo de impuesto a las ventas 2 LT2=Impuesto a las ventas 3 LT2Type=Tipo de impuesto a las ventas 3 +LT1GC=Centavos adicionales VATRate=Tasa de impuesto VATCode=Código de tasa impositiva VATNPR=Tasa de impuesto NPR @@ -216,6 +249,8 @@ Accountant=Contador ContactsForCompany=Contactos para este tercero ContactsAddressesForCompany=Contactos/direcciones para este tercero AddressesForCompany=Direcciones para este tercero +ActionsOnCompany=Eventos para este tercero. +ActionsOnContact=Eventos para este contacto / dirección ActionsOnMember=Eventos sobre este miembro NActionsLate=%s tarde Completed=Terminado @@ -224,6 +259,7 @@ Filter=Filtrar FilterOnInto=Criterio de búsqueda '%s' en los campos %s ChartGenerated=Gráfico generado GeneratedOn=Construir en %s +DolibarrWorkBoard=Artículos abiertos NoOpenedElementToProcess=Sin elemento abierto para procesar NotYetAvailable=No disponible aún Categories=Etiquetas / categorías @@ -233,6 +269,7 @@ ResultKo=Fracaso Reporting=Informes Drafts=Borrador Opened=Abierto +ClosedAll=Cerrado (todos) Size=tamaño Topic=Tema ByCompanies=Por terceros @@ -242,6 +279,7 @@ Preview=Previsualizar NextStep=Próximo paso None=Ninguna Late=Tarde +LateDesc=Un elemento se define como Retrasado según la configuración del sistema en el menú Inicio - Configuración - Alertas. NoItemLate=No hay artículo tarde Photo=Imagen Photos=Imágenes @@ -291,6 +329,7 @@ InfoAdmin=Información para administradores Undo=Deshacer UndoExpandAll=Deshacer expandir FeatureNotYetSupported=Característica aún no compatible +SendByMail=Enviar por correo electrónico MailSentBy=Correo electrónico enviado por TextUsedInTheMessageBody=Cuerpo del correo electronico SendAcknowledgementByMail=Enviar correo electrónico de confirmación @@ -304,6 +343,9 @@ CanBeModifiedIfKo=Puede ser modificado si no es válido ValueIsValid=El valor es valido ValueIsNotValid=El valor no es válido RecordCreatedSuccessfully=Registro creado con éxito +RecordsModified=%s registros modificados +RecordsDeleted=%s registro (s) eliminado (s) +RecordsGenerated=%s registro (s) generado (s) AutomaticCode=Código automático FeatureDisabled=Característica deshabilitada MoveBox=Mover widget @@ -314,6 +356,7 @@ Receive=Recibir CompleteOrNoMoreReceptionExpected=Completo o nada más esperado YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar los valores para esta lista desde el menú Configuración - Diccionarios YouCanChangeValuesForThisListFrom=Puede cambiar los valores para esta lista desde el menú %s +YouCanSetDefaultValueInModuleSetup=Puede establecer el valor predeterminado utilizado al crear un nuevo registro en la configuración del módulo Documents=Archivos UploadDisabled=Carga inhabilitada MenuAgendaGoogle=Agenda de Google @@ -327,17 +370,23 @@ UnHidePassword=Mostrar comando real con contraseña clara AddNewLine=Agregar nueva línea AddFile=Agregar archivo FreeZone=No es un producto / servicio predefinido +FreeLineOfType=Artículo de texto libre, escriba: CloneMainAttributes=Clonar objeto con sus atributos principales +ReGeneratePDF=Volver a generar PDF Merge=Unir DocumentModelStandardPDF=Plantilla PDF estándar PrintContentArea=Mostrar página para imprimir área de contenido principal MenuManager=Administrador de menú +WarningYouAreInMaintenanceMode=Advertencia, está en modo de mantenimiento: solo el inicio de sesión %s tiene permiso para usar la aplicación en este modo. CoreErrorMessage=Disculpe, ocurrió un error. Póngase en contacto con el administrador del sistema para verificar los registros o deshabilitar $ dolibarr_main_prod = 1 para obtener más información. ValidatePayment=Validar el pago FieldsWithAreMandatory=Campos con %s son obligatorios +FieldsWithIsForPublic=Los campos con %s se muestran en la lista pública de miembros. Si no quieres esto, desmarca la casilla "público". +AccordingToGeoIPDatabase=(De acuerdo a la conversión de GeoIP) RequiredField=campo requerido ToTest=Prueba ValidateBefore=La tarjeta debe ser validada antes de usar esta característica +TotalizableDesc=Este campo es totalizable en lista. Hidden=Oculto Source=Fuente Before=antes de @@ -350,10 +399,15 @@ LinkTo=Enlace a LinkToProposal=Enlace a la propuesta LinkToOrder=Enlace a la orden LinkToInvoice=Enlace a la factura +LinkToTemplateInvoice=Enlace a la factura de la plantilla +LinkToSupplierOrder=Enlace a la orden de compra +LinkToSupplierProposal=Enlace a la propuesta del vendedor +LinkToSupplierInvoice=Enlace a la factura del vendedor LinkToContract=Enlace a contrato LinkToIntervention=Enlace a la intervención SetToDraft=Volver al borrador ClickToEdit=Haz click para editar +ClickToRefresh=Haga clic para actualizar EditHTMLSource=Editar fuente HTML ByCountry=Por país ByTown=Por la ciudad @@ -363,6 +417,7 @@ NoResults=No hay resultados SystemTools=Herramientas del sistema ModulesSystemTools=Herramientas de módulos NoPhotoYet=No hay fotos disponibles todavía +MyDashboard=Mi tablero SelectAction=Seleccione la acción SelectTargetUser=Seleccionar usuario / empleado objetivo HelpCopyToClipboard=Usa Ctrl + C para copiar al portapapeles @@ -375,6 +430,7 @@ AddBox=Agregar caja SelectElementAndClick=Seleccione un elemento y haga clic en %s PrintFile=Imprimir archivo %s ShowTransaction=Mostrar entrada en cuenta bancaria +GoIntoSetupToChangeLogo=Vaya a Inicio - Configuración - Compañía para cambiar el logotipo o vaya a Inicio - Configuración - Mostrar para ocultar. Deny=Negar Denied=Negado ListOfTemplates=Lista de plantillas @@ -384,28 +440,47 @@ Sincerely=Sinceramente DeleteLine=Eliminar línea ConfirmDeleteLine=¿Estás seguro de que deseas eliminar esta línea? NoPDFAvailableForDocGenAmongChecked=No hay PDF disponible para la generación de documentos entre el registro verificado +TooManyRecordForMassAction=Demasiados registros seleccionados para la acción de masas. La acción está restringida a una lista de registros %s. NoRecordSelected=Ningún registro seleccionado MassFilesArea=Área para archivos creados por acciones masivas +ConfirmMassDeletion=Confirmación de eliminación masiva +ConfirmMassDeletionQuestion=¿Está seguro de que desea eliminar los registros seleccionados %s? ClassifyBilled=Clasificar pago ClassifyUnbilled=Clasificar sin facturar FrontOffice=Oficina frontal ExportFilteredList=Exportar lista filtrada ExportList=Lista de exportación +ExportOfPiecesAlreadyExportedIsEnable=Se habilita la exportación de piezas ya exportadas. +ExportOfPiecesAlreadyExportedIsDisable=La exportación de piezas ya exportadas está deshabilitada. +AllExportedMovementsWereRecordedAsExported=Todos los movimientos exportados fueron registrados como exportados. +NotAllExportedMovementsCouldBeRecordedAsExported=No todos los movimientos exportados pudieron registrarse como exportados Miscellaneous=Diverso GroupBy=Agrupar por... RemoveString=Eliminar la cadena '%s' +SomeTranslationAreUncomplete=Algunos de los idiomas ofrecidos pueden estar solo parcialmente traducidos o pueden contener errores. Ayude a corregir su idioma registrándose en https://transifex.com/projects/p/dolibarr/ para agregar sus mejoras. DirectDownloadLink=Enlace de descarga directa (público / externo) DirectDownloadInternalLink=Enlace de descarga directa (debe registrarse y necesita permisos) DownloadDocument=Descargar documento ActualizeCurrency=Actualizar la tasa de cambio +ModuleBuilder=Módulo y generador de aplicaciones ClickToShowHelp=Haga clic para mostrar la ayuda de información sobre herramientas ExpenseReport=Informe de gastos ExpenseReports=Reporte de gastos HR=HORA HRAndBank=Recursos Humanos y Banco TitleSetToDraft=Volver al borrador +ConfirmSetToDraft=¿Está seguro de que desea volver al estado de borrador? ImportId=Importar identificación +EMailTemplates=Plantillas de correo electrónico +LeadOrProject=Plomo Proyecto +LeadsOrProjects=Lleva | Proyectos +Lead=Dirigir +Leads=Lleva +ListOpenLeads=Lista de clientes potenciales abiertos +ListOpenProjects=Listar proyectos abiertos +NewLeadOrProject=Nuevo plomo o proyecto LineNb=Line no +TabLetteringSupplier=Letras del vendedor Monday=lunes Tuesday=martes Thursday=jueves @@ -430,12 +505,21 @@ Select2LoadingMoreResults=Cargando más resultados ... Select2SearchInProgress=Búsqueda en progreso ... SearchIntoCustomerInvoices=Facturas de cliente SearchIntoSupplierInvoices=Facturas del vendedor +SearchIntoCustomerOrders=Ordenes de venta SearchIntoSupplierOrders=Ordenes de compra SearchIntoCustomerProposals=Propuestas de clientes SearchIntoSupplierProposals=Propuestas del vendedor SearchIntoCustomerShipments=Envíos de clientes SearchIntoExpenseReports=Reporte de gastos +SearchIntoLeaves=Salir +SearchIntoTickets=Entradas NbComments=Numero de comentarios CommentAdded=Comentario agregado Everybody=Todos +PayedTo=Pagado para AssignedTo=Asignado a +ConfirmMassDraftDeletion=Confirmación de borrado masivo borrador +SelectAThirdPartyFirst=Seleccione un tercero primero ... +YouAreCurrentlyInSandboxMode=Actualmente se encuentra en el modo "zona de pruebas" %s +ValidFrom=Válida desde +NoRecordedUsers=No hay usuarios diff --git a/htdocs/langs/es_CL/members.lang b/htdocs/langs/es_CL/members.lang index 69068ec83aa..c360e73cbaf 100644 --- a/htdocs/langs/es_CL/members.lang +++ b/htdocs/langs/es_CL/members.lang @@ -3,6 +3,7 @@ MembersArea=Área de miembros MemberCard=Tarjeta de miembro SubscriptionCard=Tarjeta de suscripción ShowMember=Mostrar tarjeta de miembro +ThirdpartyNotLinkedToMember=Tercero no vinculado a un miembro MembersTickets=Entradas de los miembros FundationMembers=Miembros de la fundación ErrorMemberIsAlreadyLinkedToThisThirdParty=Otro miembro (nombre: %s, login: %s) ya está asignado al tercero %s. Primero elimine la asignación, porque un tercero no puede vincularse solo a un miembro (y viceversa). @@ -49,7 +50,9 @@ Subscriptions=Suscripciones SubscriptionLate=Tarde SubscriptionNotReceived=Suscripción nunca recibida ListOfSubscriptions=Lista de suscripciones +SendCardByMail=Enviar tarjeta por email NoTypeDefinedGoToSetup=Ningún tipo de miembro definido. Ir al menú "Tipos de miembros" +WelcomeEMail=Correo de bienvenida SubscriptionRequired=Suscripción requerida VoteAllowed=Voto permitido MorPhy=Moral / Físico @@ -83,6 +86,16 @@ YourSubscriptionWasRecorded=Su nueva suscripción fue grabada YourMembershipWasCanceled=Su membresía fue cancelada CardContent=Contenido de su tarjeta de miembro ThisIsContentOfYourMembershipRequestWasReceived=Queremos informarle que se recibió su solicitud de membresía.

+ThisIsContentOfSubscriptionReminderEmail=Queremos informarle que su suscripción está a punto de caducar o ya ha caducado (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Esperamos que lo renueven.

+ThisIsContentOfYourCard=Este es un resumen de la información que tenemos sobre usted. Por favor, póngase en contacto con nosotros si algo es incorrecto.

+DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Asunto de la notificación por correo electrónico recibida en caso de autoinscripción de un invitado +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Contenido del correo electrónico de notificación recibido en caso de inscripción automática de un invitado +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Plantilla de correo electrónico que se utilizará para enviar un correo electrónico a un miembro en la suscripción automática de miembros +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Plantilla de correo electrónico para usar para enviar un correo electrónico a un miembro en la validación de miembros +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Plantilla de correo electrónico que se utiliza para enviar un correo electrónico a un miembro en una nueva grabación de suscripción +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Plantilla de correo electrónico que se utilizará para enviar un recordatorio por correo electrónico cuando la suscripción esté a punto de caducar +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Plantilla de correo electrónico que se utiliza para enviar un correo electrónico a un miembro en caso de cancelación de miembro +DescADHERENT_MAIL_FROM=Correo electrónico del remitente para correos electrónicos automáticos DescADHERENT_ETIQUETTE_TYPE=Formato de la página de etiquetas DescADHERENT_ETIQUETTE_TEXT=Texto impreso en las hojas de direcciones de los miembros DescADHERENT_CARD_TYPE=Página de formato de tarjetas @@ -103,6 +116,8 @@ DocForAllMembersCards=Genera tarjetas de visita para todos los miembros DocForOneMemberCards=Genera tarjetas de visita para un miembro en particular DocForLabels=Generar hojas de direcciones SubscriptionPayment=Pago de suscripción +LastSubscriptionDate=Fecha del último pago de suscripción +LastSubscriptionAmount=Cantidad de la última suscripción MembersStatisticsByState=Estadísticas de miembros por estado / provincia MembersStatisticsByTown=Estadísticas de miembros por ciudad NoValidatedMemberYet=No se encontraron miembros validados @@ -126,8 +141,12 @@ MembersStatisticsByProperties=Estadísticas de miembros por naturaleza MembersByNature=Esta pantalla muestra estadísticas de los miembros por naturaleza. MembersByRegion=Esta pantalla muestra estadísticas de los miembros por región. VATToUseForSubscriptions=Tipo de IVA para suscripciones +NoVatOnSubscription=Sin IVA para suscripciones. ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Producto utilizado para la línea de suscripción en la factura: %s SubscriptionRecorded=Suscripción grabada NoEmailSentToMember=No se envió ningún correo electrónico al miembro EmailSentToMember=Correo electrónico enviado al miembro al %s SendReminderForExpiredSubscriptionTitle=Enviar recordatorio por correo electrónico para la suscripción caducada +SendReminderForExpiredSubscription=Enviar recordatorio por correo electrónico a los miembros cuando la suscripción está a punto de caducar (el parámetro es el número de días antes del final de la suscripción para enviar el recordatorio. Puede ser una lista de días separados por un punto y coma, por ejemplo, '10; 5; 0; -5 ') +YouMayFindYourInvoiceInThisEmail=Puede encontrar su factura adjunta a este correo electrónico. +XMembersClosed=%s miembro (s) cerrado (s) diff --git a/htdocs/langs/es_CL/orders.lang b/htdocs/langs/es_CL/orders.lang index 0a809f07ec0..daed592b977 100644 --- a/htdocs/langs/es_CL/orders.lang +++ b/htdocs/langs/es_CL/orders.lang @@ -15,6 +15,14 @@ MakeOrder=Hacer orden SupplierOrder=Orden de compra SuppliersOrders=Ordenes de compra SuppliersOrdersRunning=Pedidos de compra actuales +CustomerOrder=Órdenes de venta +CustomersOrders=Ordenes de venta +CustomersOrdersRunning=Órdenes de venta actuales +CustomersOrdersAndOrdersLines=Pedidos de venta y detalles del pedido +OrdersDeliveredToBill=Pedidos de venta entregados a la factura. +OrdersToBill=Pedidos de venta entregados +OrdersInProcess=Órdenes de venta en proceso +OrdersToProcess=Pedidos de venta para procesar SuppliersOrdersToProcess=Órdenes de compra para procesar StatusOrderCanceledShort=Cancelado StatusOrderSentShort=En proceso @@ -51,14 +59,18 @@ AddToDraftOrders=Añadir a orden de borrador OrdersOpened=Órdenes para procesar NoDraftOrders=No hay borradores de pedidos NoOrder=Sin orden +LastOrders=Últimos pedidos de %s +LastCustomerOrders=Últimos pedidos de %s LastSupplierOrders=Últimas %s órdenes de compra LastModifiedOrders=Últimas %s órdenes modificadas AllOrders=Todas las órdenes NbOfOrders=Numero de ordenes OrdersStatistics=Estadísticas de la orden OrdersStatisticsSuppliers=Estadísticas de orden de compra +AmountOfOrdersByMonthHT=Cantidad de pedidos por mes (sin IVA) ListOfOrders=Lista de ordenes CloseOrder=Cerrar orden +ConfirmCloseOrder=¿Está seguro de que desea configurar este pedido para entregado? Una vez que se entrega un pedido, se puede configurar para facturarse. ConfirmDeleteOrder=¿Seguro que quieres eliminar esta orden? ConfirmValidateOrder=¿Estas seguro que deseas validar esta orden con el nombre %s? ConfirmUnvalidateOrder=¿Estas seguro que deseas restaurar la orden %s al estado de borrador? @@ -80,11 +92,14 @@ AuthorRequest=Solicitar autor UserWithApproveOrderGrant=Usuarios con permiso de "aprobar órdenes". PaymentOrderRef=Pago del pedido %s ConfirmCloneOrder=¿Estas seguro que deseas clonar esta orden %s? +DispatchSupplierOrder=Recibiendo orden de compra %s FirstApprovalAlreadyDone=Primera aprobación ya hecha SecondApprovalAlreadyDone=Segunda aprobación ya hecha SupplierOrderReceivedInDolibarr=La orden de compra %s recibió %s +SupplierOrderSubmitedInDolibarr=Orden de compra %s enviada SupplierOrderClassifiedBilled=Pedido de compra %s establecido facturado OtherOrders=Otras órdenes +TypeContact_commande_internal_SALESREPFOLL=Representante seguimiento de orden de venta TypeContact_commande_internal_SHIPPING=Representante de seguimiento de envío TypeContact_commande_external_BILLING=Contacto cliente de facturación cotización TypeContact_commande_external_SHIPPING=Contacto de envío del cliente @@ -98,6 +113,7 @@ Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Constante COMMANDE_SUPPLIER_ADDON no de Error_COMMANDE_ADDON_NotDefined=Constant COMMANDE_ADDON no definido Error_OrderNotChecked=No hay pedidos para facturar seleccionados PDFEinsteinDescription=Un modelo de pedido completo (logotipo ...) +PDFEratostheneDescription=Un modelo de pedido completo (logo ...) PDFEdisonDescription=Un modelo de orden simple PDFProformaDescription=Una factura proforma completa (logotipo ...) CreateInvoiceForThisCustomer=Pagar Pedidos diff --git a/htdocs/langs/es_CL/other.lang b/htdocs/langs/es_CL/other.lang index 5d75b77f846..cd109e65f63 100644 --- a/htdocs/langs/es_CL/other.lang +++ b/htdocs/langs/es_CL/other.lang @@ -3,6 +3,7 @@ SecurityCode=Código de seguridad NumberingShort=NORTE Tools=Herramientas TMenuTools=Herramientas +ToolsDesc=Todas las herramientas no incluidas en otras entradas del menú se agrupan aquí.
Se puede acceder a todas las herramientas a través del menú de la izquierda. Birthday=Cumpleaños BirthdayAlertOn=alerta de cumpleaños activa BirthdayAlertOff=alerta de cumpleaños inactiva @@ -12,11 +13,22 @@ PreviousMonthOfInvoice=Mes anterior (número 1-12) de la fecha de facturación NextMonthOfInvoice=El mes siguiente (número 1-12) de la fecha de la factura TextNextMonthOfInvoice=Mes siguiente (texto) de fecha de factura DocFileGeneratedInto=Archivo de documento generado en %s. +MessageOK=Mensaje en la página de devolución para un pago validado. +MessageKO=Mensaje en la página de devolución para un pago cancelado. ContentOfDirectoryIsNotEmpty=El contenido de este directorio no está vacío. +DeleteAlsoContentRecursively=Marque para borrar todo el contenido recursivamente YearOfInvoice=Año de la fecha de factura PreviousYearOfInvoice=Año anterior de la fecha de facturación NextYearOfInvoice=El año siguiente a la fecha de la factura +Notify_ORDER_VALIDATE=Pedido de venta validado +Notify_ORDER_SENTBYMAIL=Pedido de venta enviado por correo +Notify_ORDER_SUPPLIER_SENTBYMAIL=Orden de compra enviada por correo electrónico +Notify_ORDER_SUPPLIER_VALIDATE=Orden de compra registrada +Notify_ORDER_SUPPLIER_APPROVE=Orden de compra aprobada +Notify_ORDER_SUPPLIER_REFUSE=Orden de compra rechazada Notify_PROPAL_VALIDATE=Validación cotización cliente +Notify_PROPAL_CLOSE_SIGNED=Propuesta de cliente cerrada firmada +Notify_PROPAL_CLOSE_REFUSED=Propuesta de cliente cerrada rechazada Notify_PROPAL_SENTBYMAIL=Envío cotización por e-mail Notify_WITHDRAW_TRANSMIT=Retirada de transmisión Notify_WITHDRAW_CREDIT=Retiro de crédito @@ -27,6 +39,10 @@ Notify_BILL_VALIDATE=Factura del cliente validada Notify_BILL_UNVALIDATE=Factura del cliente sin validar Notify_BILL_CANCEL=Factura del cliente cancelada Notify_BILL_SENTBYMAIL=Factura del cliente enviada por correo +Notify_BILL_SUPPLIER_VALIDATE=Factura del proveedor validada +Notify_BILL_SUPPLIER_PAYED=Factura pagada al vendedor +Notify_BILL_SUPPLIER_SENTBYMAIL=Factura del proveedor enviada por correo +Notify_BILL_SUPPLIER_CANCELED=Factura del vendedor cancelada Notify_CONTRACT_VALIDATE=Contrato validado Notify_FICHEINTER_VALIDATE=Intervención validada Notify_FICHINTER_ADD_CONTACT=Contacto agregado a la intervención @@ -38,14 +54,26 @@ Notify_MEMBER_SUBSCRIPTION=Miembro suscrito Notify_MEMBER_RESILIATE=Miembro terminado Notify_MEMBER_DELETE=Miembro eliminado Notify_PROJECT_CREATE=Creación del proyecto +Notify_HOLIDAY_VALIDATE=Deja la solicitud validada (se requiere aprobación) +Notify_HOLIDAY_APPROVE=Dejar la solicitud aprobada SeeModuleSetup=Ver configuración del módulo %s NbOfAttachedFiles=Número de archivos / documentos adjuntos TotalSizeOfAttachedFiles=Tamaño total de los archivos / documentos adjuntos MaxSize=Talla máxima AttachANewFile=Adjunte un nuevo archivo / documento LinkedObject=Objeto vinculado +NbOfActiveNotifications=Número de notificaciones (número de correos electrónicos del destinatario) PredefinedMailTest=__(Hola)__\nEste es un correo de prueba enviado a __EMAIL__.\nLas dos líneas están separadas por un retorno de carro.\n\n__USER_SIGNATURE__ PredefinedMailTestHtml=__(Hola)__\nEste es un correo de prueba (la palabra prueba debe estar en negrita).
Las dos líneas están separadas por un retorno de carro.

__USER_SIGNATURE__ +PredefinedMailContentSendInvoice=__ (Hola) __ Encuentre la factura __REF__ adjunta __ONLINE_PAYMENT_TEXT_AND_URL__ __ (Atentamente) __ __USER_SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__ (Hola) __ Nos gustaría recordarle que la factura __REF__ no parece haber sido pagada. Se adjunta una copia de la factura como recordatorio. __ONLINE_PAYMENT_TEXT_AND_URL__ __ (Atentamente) __ __USER_SIGNATURE__ +PredefinedMailContentSendProposal=__ (Hola) __ Encuentre la propuesta comercial __REF__ adjunta __ (Atentamente) __ __USER_SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__ (Hola) __ Por favor encuentre la solicitud de precio __REF__ adjunta __ (Atentamente) __ __USER_SIGNATURE__ +PredefinedMailContentSendOrder=__ (Hola) __ Encuentre el pedido __REF__ adjunto __ (Atentamente) __ __USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__ (Hola) __ Encuentra nuestro pedido __REF__ adjunto __ (Atentamente) __ __USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__ (Hola) __ Encuentre la factura __REF__ adjunta __ (Atentamente) __ __USER_SIGNATURE__ +PredefinedMailContentSendShipping=__ (Hola) __ Encuentra el envío __REF__ adjunto __ (Atentamente) __ __USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__ (Hola) __ Encuentre la intervención __REF__ adjunta __ (Atentamente) __ __USER_SIGNATURE__ DemoDesc=Dolibarr es un ERP / CRM compacto que admite varios módulos comerciales. Una demostración que muestra todos los módulos no tiene sentido ya que este escenario nunca ocurre (varios cientos disponibles). Entonces, varios perfiles de demostración están disponibles. ChooseYourDemoProfilMore=... o crea tu propio perfil
(selección manual del módulo) DemoFundation=Administrar miembros de una fundación @@ -83,15 +111,35 @@ EnableGDLibraryDesc=Instale o habilite la biblioteca de GD en su instalación de ProfIdShortDesc=Prof Id %s es una información que depende del país de un tercero.
Por ejemplo, para el país %s, es el código%s. DolibarrDemo=Demo de Dolibarr ERP / CRM StatsByNumberOfUnits=Estadísticas para suma de cantidad de productos / servicios +StatsByNumberOfEntities=Estadísticas en número de entidades referidas (nº de factura, o pedido ...) NumberOfProposals=Número de propuestas +NumberOfCustomerOrders=Número de órdenes de venta NumberOfCustomerInvoices=Número de facturas de clientes +NumberOfSupplierProposals=Número de propuestas de proveedores +NumberOfSupplierOrders=Número de órdenes de compra +NumberOfSupplierInvoices=Número de facturas del vendedor NumberOfUnitsProposals=Número de unidades en las propuestas +NumberOfUnitsCustomerOrders=Número de unidades en órdenes de venta NumberOfUnitsCustomerInvoices=Número de unidades en las facturas de los clientes +NumberOfUnitsSupplierProposals=Número de unidades en las propuestas de los proveedores. +NumberOfUnitsSupplierOrders=Número de unidades en órdenes de compra +NumberOfUnitsSupplierInvoices=Número de unidades en las facturas de los proveedores. +EMailTextInterventionAddedContact=Se le ha asignado una nueva intervención %s. EMailTextInterventionValidated=La intervención %s ha sido validada. +EMailTextProposalValidated=La propuesta %s ha sido validada. +EMailTextProposalClosedSigned=La propuesta %s ha sido cerrada y firmada. +EMailTextOrderApproved=El pedido %s ha sido aprobado. +EMailTextOrderApprovedBy=La orden %s ha sido aprobada por %s. +EMailTextOrderRefused=La orden %s ha sido rechazada. +EMailTextOrderRefusedBy=La orden %s ha sido rechazada por %s. +EMailTextExpenseReportApproved=Informe de gastos %s ha sido aprobado. +EMailTextHolidayValidated=Deja la solicitud %s ha sido validado. +EMailTextHolidayApproved=Deja la solicitud %s ha sido aprobada. ImportedWithSet=Conjunto de datos de importación ResizeDesc=Ingrese un nuevo ancho O nueva altura. La relación se mantendrá durante el cambio de tamaño ... NewSizeAfterCropping=Nuevo tamaño después del recorte DefineNewAreaToPick=Defina una nueva área en la imagen para elegir (haga clic con el botón izquierdo en la imagen y luego arrastre hasta que llegue a la esquina opuesta) +CurrentInformationOnImage=Esta herramienta fue diseñada para ayudarte a redimensionar o recortar una imagen. Esta es la información sobre la imagen editada actual. YouReceiveMailBecauseOfNotification=Usted recibe este mensaje porque su correo electrónico ha sido agregado a la lista de objetivos para ser informado de eventos particulares en el software %s de %s. YouReceiveMailBecauseOfNotification2=Este evento es el siguiente: ThisIsListOfModules=Esta es una lista de módulos preseleccionados por este perfil de demostración (solo los módulos más comunes son visibles en esta demostración). Edítelo para tener una demostración más personalizada y haga clic en "Comenzar". @@ -114,9 +162,15 @@ SourcesRepository=Repositorio de fuentes PassEncoding=Codificación de contraseña PermissionsAdd=Permisos agregados YourPasswordMustHaveAtLeastXChars=Su contraseña debe tener al menos %s caracteres +MissingIds=IDs que faltan +ThirdPartyCreatedByEmailCollector=Tercero creado por el recolector de correo electrónico del correo electrónico MSGID %s +ContactCreatedByEmailCollector=Contacto / dirección creada por el recolector de correo electrónico del correo electrónico MSGID %s +ProjectCreatedByEmailCollector=Proyecto creado por el recolector de correo electrónico del correo electrónico MSGID %s +TicketCreatedByEmailCollector=Ticket creado por el recolector de correo electrónico del correo electrónico MSGID %s LibraryUsed=Biblioteca utilizada LibraryVersion=Versión de biblioteca NoExportableData=No se pueden exportar datos (no hay módulos con datos exportables cargados o sin permisos) WebsiteSetup=Configuración del sitio web del módulo +WEBSITE_IMAGEDesc=Ruta relativa de los medios de imagen. Puede mantenerlo vacío, ya que rara vez se utiliza (puede ser utilizado por contenido dinámico para mostrar una vista previa de una lista de publicaciones de blog). WEBSITE_KEYWORDS=Palabras clave LinesToImport=Líneas para importar diff --git a/htdocs/langs/es_CL/products.lang b/htdocs/langs/es_CL/products.lang index 5514d75f4c1..8ef82a6ff34 100644 --- a/htdocs/langs/es_CL/products.lang +++ b/htdocs/langs/es_CL/products.lang @@ -6,6 +6,8 @@ ProductDescriptionTranslated=Descripción traducida del producto ProductNoteTranslated=Nota traducida del producto ProductServiceCard=Tarjeta de Productos/Servicios ProductId=Identificación de producto / servicio +ProductVatMassChange=Actualización de IVA global +ProductVatMassChangeDesc=¡Esta herramienta actualiza la tasa de IVA definida en TODOS los productos y servicios! MassBarcodeInit=Iniciar de código de barras masivo MassBarcodeInitDesc=Esta página se puede utilizar para inicializar un código de barras en objetos que no tienen definido el código de barras. Verifique antes de que se complete la configuración del módulo de código de barras. ProductAccountancyBuyCode=Código de contabilidad (compra) @@ -21,6 +23,7 @@ ServicesOnSaleOnly=Servicios solo para venta ServicesOnPurchaseOnly=Servicios solo para compra ServicesNotOnSell=Servicios no en venta y no en compra ServicesOnSellAndOnBuy=Servicios para venta y compra +LastModifiedProductsAndServices=Últimos productos / servicios %s modificados LastRecordedProducts=Últimos %s productos grabados LastRecordedServices=Últimos %s servicios grabados NotOnSell=No en venta @@ -31,10 +34,14 @@ ProductStatusNotOnBuyShort=No en compra UpdateVAT=Actualizar IVA UpdateDefaultPrice=Actualizar el precio predeterminado UpdateLevelPrices=Actualizar precios para cada nivel +SellingPriceHT=Precio de venta (sin IVA) SellingPriceTTC=Precio de venta (IVA incluido) +SellingMinPriceTTC=Precio mínimo de venta (impuestos incluidos) +CostPriceDescription=Este campo de precio (sin impuestos) se puede usar para almacenar el monto promedio que este producto le cuesta a su empresa. Puede ser cualquier precio que usted mismo calcule, por ejemplo, a partir del precio de compra promedio más el costo promedio de producción y distribución. CostPriceUsage=Este valor podría usarse para calcular el margen. SoldAmount=Cantidad vendida PurchasedAmount=Cantidad comprada +MinPrice=Min. precio de venta EditSellingPriceLabel=Editar etiqueta de precio de venta CantBeLessThanMinPrice=El precio de venta no puede ser inferior al mínimo permitido para este producto (%s sin IVA). Este mensaje también puede aparecer si escribe un descuento demasiado importante. ErrorProductAlreadyExists=Un producto con referencia %s ya existe. @@ -42,15 +49,20 @@ ErrorProductBadRefOrLabel=Valor incorrecto para referencia o etiqueta. ErrorProductClone=Hubo un problema al intentar clonar el producto o servicio. ErrorPriceCantBeLowerThanMinPrice=Error, el precio no puede ser inferior al precio mínimo. Suppliers=Vendedores +SupplierRef=SKU del proveedor ProductsAndServicesArea=Área de productos y servicios ProductsArea=Área de producto ServicesArea=Área de servicios ListOfStockMovements=Lista de movimientos de stock +SupplierCard=Tarjeta de proveedor SetDefaultBarcodeType=Establecer el tipo de código de barras BarcodeValue=Valor de código de barras NoteNotVisibleOnBill=Nota (no visible en las facturas, cotizaciones, etc.) ServiceLimitedDuration=Si el producto es un servicio de duración limitada: +MultiPricesAbility=Múltiples segmentos de precios por producto / servicio (cada cliente está en un segmento de precios) MultiPricesNumPrices=Cantidad de precios +AssociatedProductsAbility=Activar productos virtuales (kits) +AssociatedProducts=Productos virtuales AssociatedProductsNumber=Cantidad de productos que componen este producto virtual ParentProductsNumber=Número de producto de embalaje principal ParentProducts=Productos para padres @@ -61,13 +73,23 @@ CategoryFilter=Filtro de categoría ProductToAddSearch=Buscar producto para agregar NoMatchFound=No se encontraron coincidencias ListOfProductsServices=Lista de productos / servicios +ProductAssociationList=Lista de productos / servicios que son componentes de este producto / kit virtual ProductParentList=Lista de productos/servicios virtuales con este producto como componente ErrorAssociationIsFatherOfThis=Uno de los productos seleccionados es el padre con el producto actual ConfirmDeleteProduct=¿Seguro que quieres eliminar este producto/servicio? ProductDeleted=Producto / Servicio "%s" borrado de la base de datos. ExportDataset_produit_1=Productos ConfirmDeleteProductLine=¿Estás seguro de que deseas eliminar esta línea de productos? +QtyMin=Min. Cantidad de compra +PriceQtyMin=Precio cantidad min. +PriceQtyMinCurrency=Precio (moneda) para esta cantidad. (sin descuento) +VATRateForSupplierProduct=Tasa de IVA (para este vendedor / producto) +DiscountQtyMin=Descuento para esta cantidad. +NoPriceDefinedForThisSupplier=Sin precio / cantidad definida para este vendedor / producto +NoSupplierPriceDefinedForThisProduct=Ningún precio / cantidad de vendedor definido para este producto +PredefinedServicesToSell=Servicio Predefinido PredefinedProductsAndServicesToSell=Productos / servicios predefinidos para vender +PredefinedProductsAndServicesToPurchase=Productos / servicios predefinidos para comprar. NotPredefinedProducts=Productos / servicios no predefinidos GenerateThumb=Generar imagen ServiceNb=Servicio #%s @@ -75,12 +97,16 @@ ListProductServiceByPopularity=Lista de productos/servicios por popularidad ListProductByPopularity=Lista de productos por popularidad ListServiceByPopularity=Lista de servicios por popularidad ConfirmCloneProduct=¿Está seguro que desea clonar el producto o servicio %s? +CloneContentProduct=Clona toda la información principal del producto / servicio. +CloneCompositionProduct=Clonar producto / servicio virtual CloneCombinationsProduct=Clonar variantes de productos ProductIsUsed=Este producto es usado NewRefForClone=Referencia de nuevo producto/servicio CustomerPrices=Precios de cliente SuppliersPrices=Precios del proveedor +SuppliersPricesOfProductsOrServices=Precios de venta (de productos o servicios). CustomCode=Código de Aduanas / Productos / HS +Nature=Naturaleza del producto (material / acabado) ProductCodeModel=Plantilla de referencia de producto ServiceCodeModel=Plantilla de referencia de servicio AlwaysUseNewPrice=Utilice siempre el precio actual del producto/servicio @@ -89,6 +115,7 @@ PriceByQuantity=Diferentes precios por cantidad DisablePriceByQty=Deshabilitar precios por cantidad PriceByQuantityRange=Rango Cantidad MultipriceRules=Reglas del segmento de precios +UseMultipriceRules=Utilice las reglas de segmento de precios (definidas en la configuración del módulo del producto) para calcular automáticamente los precios de todos los demás segmentos de acuerdo con el primer segmento KeepEmptyForAutoCalculation=Manténgase vacío para que esto se calcule automáticamente a partir del peso o volumen de productos Build=Producir ProductsMultiPrice=Productos y precios para cada segmento de precio @@ -99,15 +126,20 @@ Quarter1=1er. Trimestre Quarter2=2do. Trimestre Quarter3=3er. Trimestre Quarter4=4to. Trimestre +BarCodePrintsheet=Imprimir código de barras +PageToGenerateBarCodeSheets=Con esta herramienta, puede imprimir hojas de pegatinas de códigos de barras. Elija el formato de su página de etiqueta, el tipo de código de barras y el valor del código de barras, luego haga clic en el botón %s . NumberOfStickers=Número de stickers para imprimir en la página PrintsheetForOneBarCode=Imprime varios stickers para un código de barras BuildPageToPrint=Generar página para imprimir FillBarCodeTypeAndValueManually=Llenar el tipo y el valor del código de barras manualmente. FillBarCodeTypeAndValueFromProduct=Llenar el tipo y el valor del código de barras de un producto. FillBarCodeTypeAndValueFromThirdParty=Llenar el tipo y el valor del código de barras de un tercero. +DefinitionOfBarCodeForProductNotComplete=La definición del tipo o valor del código de barras no está completa para el producto %s. +DefinitionOfBarCodeForThirdpartyNotComplete=Definición del tipo o valor del código de barras no completo para terceros %s. ResetBarcodeForAllRecords=Defina el valor del código de barras para todos los registros (esto también restablecerá el valor del código de barras ya definido con los nuevos valores) PriceByCustomer=Diferentes precios para cada cliente PriceCatalogue=Un único precio de venta por producto / servicio +PricingRule=Reglas para los precios de venta. AddCustomerPrice=Agregar precio por cliente ForceUpdateChildPriceSoc=Establezca el mismo precio en las subsidiarias de los clientes PriceByCustomerLog=Registro de precios anteriores de los clientes @@ -115,11 +147,15 @@ MinimumPriceLimit=El precio mínimo no puede ser inferior a %s PriceExpressionSelected=Expresión de precio seleccionado PriceExpressionEditorHelp1="precio = 2 + 2" o "2 + 2" para establecer el precio. Utilizar ; para separar expresiones PriceExpressionEditorHelp2=Puede acceder a ExtraFields con variables como #extrafield_myextrafieldkey # y variables globales con #global_mycode # +PriceExpressionEditorHelp3=Tanto en el precio del producto / servicio como en el de los proveedores, existen estas variables disponibles:
# tva_tx # # localtax1_tx # # localtax2_tx # # peso # # longitud # # superficie # # precio_min # +PriceExpressionEditorHelp4=Solo en el precio del producto / servicio: # supplier_min_price #
Solo en precios de proveedores: # supplier_quantity # y # supplier_tva_tx # PriceMode=Modo de precio DefaultPrice=Precio predeterminado ComposedProductIncDecStock=Aumentar / Disminuir el stock al cambiar producto padre +ComposedProduct=Productos infantiles MinCustomerPrice=Precio mínimo de venta DynamicPriceConfiguration=Configuración dinámica de precios +DynamicPriceDesc=Puede definir fórmulas matemáticas para calcular los precios de Cliente o Proveedor. Tales fórmulas pueden usar todos los operadores matemáticos, algunas constantes y variables. Aquí puede definir las variables que desea utilizar. Si la variable necesita una actualización automática, puede definir la URL externa para permitir que Dolibarr actualice el valor automáticamente. AddVariable=Agregar variable AddUpdater=Agregar actualización VariableToUpdate=Variable para actualizar @@ -136,6 +172,7 @@ IncludingProductWithTag=Incluye producto / servicio con etiqueta DefaultPriceRealPriceMayDependOnCustomer=El precio predeterminado, el precio real puede depender del cliente NbOfQtyInProposals=Cantidad en propuestas ClinkOnALinkOfColumn=Haga clic en un enlace de la columna %s para obtener una vista detallada ... +ProductsOrServicesTranslations=Traducciones de productos / servicios TranslatedLabel=Etiqueta traducida TranslatedDescription=Descripción traducida TranslatedNote=Notas traducidas @@ -144,6 +181,8 @@ VolumeUnits=Unidad de volumen SizeUnits=Unidad de tamaño ConfirmDeleteProductBuyPrice=¿Estás seguro de que deseas eliminar este precio de compra? SubProduct=Sub producto +UseProductFournDesc=Agregue una función para definir las descripciones de los productos definidos por los proveedores además de las descripciones para los clientes. +ProductSupplierDescription=Descripción del vendedor para el producto. ProductAttributeName=Atributo de variante %s ProductAttributeDeleteDialog=¿Estás seguro de que deseas eliminar este atributo? Todos los valores serán eliminados ProductAttributeValueDeleteDialog=¿Estás seguro de que deseas eliminar el valor "%s" con la referencia "%s" de este atributo? @@ -162,9 +201,15 @@ TooMuchCombinationsWarning=Generar muchas variantes puede dar como resultado una DoNotRemovePreviousCombinations=No eliminar variantes anteriores UsePercentageVariations=Usar variaciones porcentuales ErrorDeletingGeneratedProducts=Hubo un error al intentar eliminar las variantes de productos existentes +NbOfDifferentValues=No. de valores diferentes +NbProducts=No. de productos ParentProduct=Producto principal HideChildProducts=Ocultar productos variantes +ShowChildProducts=Mostrar productos variantes +NoEditVariants=Vaya a la tarjeta del producto principal y edite el impacto del precio de las variantes en la pestaña de variantes ConfirmCloneProductCombinations=¿Le gustaría copiar todas las variantes del producto al otro producto principal con la referencia dada? CloneDestinationReference=Referencia del producto de destino ErrorCopyProductCombinations=Hubo un error al copiar las variantes del producto ErrorDestinationProductNotFound=Producto de destino no encontrado +ActionAvailableOnVariantProductOnly=Acción solo disponible en la variante de producto. +ProductsPricePerCustomer=Precios de producto por cliente. diff --git a/htdocs/langs/es_CL/projects.lang b/htdocs/langs/es_CL/projects.lang index 7d7fa48df2e..228b0ad6dac 100644 --- a/htdocs/langs/es_CL/projects.lang +++ b/htdocs/langs/es_CL/projects.lang @@ -4,6 +4,7 @@ ProjectLabel=Etiqueta del proyecto ProjectsArea=Área de proyectos SharedProject=Todos PrivateProject=Contactos del proyecto +ProjectsImContactFor=Proyectos para que soy explícitamente un contacto AllAllowedProjects=Todo el proyecto que puedo leer (mío + público) MyProjectsDesc=Esta vista está limitada a los proyectos para los que es contacto ProjectsPublicDesc=Esta vista presenta todos los proyectos que puede leer. @@ -20,15 +21,21 @@ OnlyYourTaskAreVisible=Solo las tareas asignadas a ti son visibles. Asigna la ta ProjectCategories=Etiquetas / categorías de proyecto ConfirmDeleteAProject=¿Seguro que quieres eliminar este proyecto? ConfirmDeleteATask=¿Seguro que quieres eliminar esta tarea? +OpportunitiesStatusForOpenedProjects=Lleva cantidad de proyectos abiertos por estado. +OpportunitiesStatusForProjects=Lleva cantidad de proyectos por estado. ShowProject=Mostrar proyecto SetProject=Establecer proyecto NoProject=Ningún proyecto definido o propiedad TimeSpentByYou=Tiempo pasado por ti TimeSpentByUser=Tiempo dedicado por el usuario TimesSpent=Tiempo dedicado +TaskId=ID de tarea +RefTask=Tarea ref. +LabelTask=Etiqueta de tarea TaskTimeSpent=Tiempo dedicado a tareas NewTimeSpent=Tiempo dedicado BillTime=Bill el tiempo pasado +BillTimeShort=Tiempo de facturación TaskDateStart=Fecha de inicio de la tarea TaskDateEnd=Fecha de finalización de tarea TaskDescription=Descripción de la tarea @@ -44,6 +51,20 @@ ListOfTasks=Lista de tareas GoToListOfTimeConsumed=Ir a la lista de tiempo consumido GoToListOfTasks=Ir a la lista de tareas GoToGanttView=Ve a la vista de Gantt +ListProposalsAssociatedProject=Listado de las propuestas comerciales relacionadas con el proyecto. +ListOrdersAssociatedProject=Lista de pedidos relacionados con el proyecto. +ListInvoicesAssociatedProject=Listado de facturas de clientes relacionadas con el proyecto. +ListPredefinedInvoicesAssociatedProject=Lista de facturas de plantillas de clientes relacionadas con el proyecto. +ListSupplierOrdersAssociatedProject=Listado de órdenes de compra relacionadas con el proyecto. +ListSupplierInvoicesAssociatedProject=Listado de facturas de proveedores relacionadas con el proyecto. +ListContractAssociatedProject=Listado de contratos relacionados con el proyecto. +ListShippingAssociatedProject=Listado de envíos relacionados con el proyecto. +ListFichinterAssociatedProject=Listado de intervenciones relacionadas con el proyecto. +ListExpenseReportsAssociatedProject=Listado de informes de gastos relacionados con el proyecto. +ListDonationsAssociatedProject=Listado de donaciones relacionadas con el proyecto. +ListVariousPaymentsAssociatedProject=Lista de pagos varios relacionados con el proyecto. +ListSalariesAssociatedProject=Listado de pagos de salarios relacionados con el proyecto. +ListActionsAssociatedProject=Listado de eventos relacionados con el proyecto. ListTaskTimeUserProject=Lista de tiempo consumido en las tareas del proyecto ListTaskTimeForTask=Lista de tiempo consumido en la tarea ActivityOnProjectToday=Actividad en proyecto hoy @@ -60,11 +81,13 @@ ConfirmCloseAProject=¿Seguro que quieres cerrar este proyecto? AlsoCloseAProject=También cierre el proyecto (manténgalo abierto si todavía necesita seguir tareas de producción en él) ReOpenAProject=Proyecto abierto ConfirmReOpenAProject=¿Estás seguro de que quieres volver a abrir este proyecto? +ProjectContact=Contactos de proyecto ActionsOnProject=Eventos en el proyecto YouAreNotContactOfProject=No eres un contacto de este proyecto privado DeleteATimeSpent=Eliminar el tiempo pasado ConfirmDeleteATimeSpent=¿Estás seguro de que deseas eliminar este tiempo gastado? ShowMyTasksOnly=Ver solo las tareas asignadas a mí +TaskRessourceLinks=Contactos de tarea NoTasks=No hay tareas para este proyecto LinkedToAnotherCompany=Vinculado a otro tercero TaskIsNotAssignedToUser=Tarea no asignada al usuario. Use el botón '%s' para asignar la tarea ahora. @@ -83,6 +106,14 @@ ErrorShiftTaskDate=Imposible cambiar la fecha de la tarea según la fecha de ini TaskCreatedInDolibarr=Tarea %s creada TaskModifiedInDolibarr=Tarea %s modificada TaskDeletedInDolibarr=Tarea %s eliminada +OpportunityStatus=Estado de plomo +OpportunityStatusShort=Estado de plomo +OpportunityProbability=Probabilidad de plomo +OpportunityProbabilityShort=Probab plomo. +OpportunityAmount=Cantidad de plomo +OpportunityAmountShort=Cantidad de plomo +OpportunityAmountAverageShort=Cantidad de plomo promedio +OpportunityAmountWeigthedShort=Cantidad de plomo ponderada WonLostExcluded=Ganado/Perdido excluido TypeContact_project_internal_PROJECTLEADER=Líder del proyecto TypeContact_project_external_PROJECTLEADER=Líder del proyecto @@ -94,26 +125,50 @@ TypeContact_project_task_internal_TASKCONTRIBUTOR=Colaborador TypeContact_project_task_external_TASKCONTRIBUTOR=Colaborador SelectElement=Seleccionar elemento AddElement=Enlace al elemento +DocumentModelBeluga=Plantilla de documento de proyecto para la descripción de objetos vinculados +DocumentModelBaleine=Plantilla de documento de proyecto para tareas +DocumentModelTimeSpent=Plantilla de informe de proyecto para el tiempo empleado. PlannedWorkload=Carga de trabajo planificada ProjectReferers=Artículos relacionados ProjectMustBeValidatedFirst=El proyecto debe ser validado primero FirstAddRessourceToAllocateTime=Asignar un recurso de usuario a la tarea para asignar tiempo TimeAlreadyRecorded=Este es el tiempo que ya se ha registrado para esta tarea / día y el usuario %s +NoUserAssignedToTheProject=No hay usuarios asignados a este proyecto. TimeSpentBy=Tiempo consumido por AssignTaskToMe=Asignarme una tarea AssignTaskToUser=Asignar tarea a %s SelectTaskToAssign=Seleccionar tarea para asignar ... +ManageTasks=Usar proyectos para seguir tareas y / o informar el tiempo empleado (hojas de tiempo) ManageOpportunitiesStatus=Usa proyectos para seguir leads / opportinuties +ProjectNbProjectByMonth=Nº de proyectos creados por mes. +ProjectNbTaskByMonth=Nº de tareas creadas por mes. +ProjectOppAmountOfProjectsByMonth=Cantidad de clientes potenciales por mes +ProjectWeightedOppAmountOfProjectsByMonth=Cantidad ponderada de clientes potenciales por mes +ProjectOpenedProjectByOppStatus=Abrir proyecto / liderar por estado de plomo ProjectsStatistics=Estadísticas de proyectos / leads TasksStatistics=Estadísticas sobre proyectos/tareas principales TaskAssignedToEnterTime=Tarea asignada Ingresar el tiempo en esta tarea debería ser posible. IdTaskTime=Tiempo de la tarea de identificación +YouCanCompleteRef=Si desea completar la referencia con algún sufijo, se recomienda agregar un carácter para separarlo, por lo que la numeración automática seguirá funcionando correctamente para los próximos proyectos. Por ejemplo %s-MYSUFFIX OpenedProjectsByThirdparties=Proyectos abiertos por terceros +OnlyOpportunitiesShort=Solo lleva +OpenedOpportunitiesShort=Conductores abiertos +NotOpenedOpportunitiesShort=No es una ventaja abierta +NotAnOpportunityShort=No es una pista +OpportunityTotalAmount=Cantidad total de clientes potenciales +OpportunityPonderatedAmount=Cantidad ponderada de clientes potenciales +OpportunityPonderatedAmountDesc=Cantidad de leads ponderada con probabilidad OppStatusQUAL=Calificación OppStatusPROPO=Cotización +AllowToLinkFromOtherCompany=Permite vincular proyectos de otra empresa.

Valores soportados:
- Mantener vacío: puede vincular cualquier proyecto de la empresa (por defecto)
- "todos": puede vincular cualquier proyecto, incluso proyectos de otras compañías
- Una lista de identificadores de terceros separados por comas: puede vincular todos los proyectos de estos terceros (Ejemplo: 123,4795,53)
LatestProjects=Últimos %s proyectos LatestModifiedProjects=Últimos proyectos modificados %s +NoAssignedTasks=No se encontraron tareas asignadas (asigne proyectos / tareas al usuario actual desde el cuadro de selección superior para ingresar el tiempo) AllowCommentOnProject=Permitir comentarios de los usuarios sobre los proyectos RecordsClosed=%s proyecto (s) cerrado SendProjectRef=Proyecto de información %s +ModuleSalaryToDefineHourlyRateMustBeEnabled=El módulo 'Salarios' debe estar habilitado para definir la tarifa por hora de los empleados para que el tiempo empleado se valore +NewTaskRefSuggested=Referencia de tarea ya utilizada, se requiere una nueva referencia de tarea TimeSpentForInvoice=Tiempo dedicado +InvoiceGeneratedFromTimeSpent=La factura %s se ha generado desde el tiempo invertido en el proyecto +ProjectBillTimeDescription=Verifique si ingresa la hoja de tiempo en las tareas del proyecto Y planea generar facturas de la hoja de tiempo para facturar al cliente del proyecto (no verifique si planea crear una factura que no esté basada en las hojas de tiempo ingresadas). diff --git a/htdocs/langs/es_CL/propal.lang b/htdocs/langs/es_CL/propal.lang index 1ab2a26f16f..de37c77b039 100644 --- a/htdocs/langs/es_CL/propal.lang +++ b/htdocs/langs/es_CL/propal.lang @@ -43,7 +43,9 @@ ErrorPropalNotFound=%s cotizaciones no encontradas AddToDraftProposals=Añadir a cotización borrador NoDraftProposals=Sin cotizaciones borrador CopyPropalFrom=Crear cotización por copia de una existente +CreateEmptyPropal=Crear propuesta comercial vacía o desde lista de productos / servicios. DefaultProposalDurationValidity=Validar duración de cotización (en días) +UseCustomerContactAsPropalRecipientIfExist=Utilice el contacto / dirección con el tipo 'Propuesta de seguimiento de contacto' si se define en lugar de la dirección de un tercero como dirección del destinatario de la propuesta ConfirmClonePropal=¿Está seguro de que desea clonar la propuesta comercial %s? ConfirmReOpenProp=¿Está seguro de que desea abrir de nuevo la propuesta comercial %s? ProposalsAndProposalsLines=Cotizaciones a clientes y líneas de cotizaciones @@ -63,3 +65,4 @@ DefaultModelPropalCreate=Creación de modelo por defecto DefaultModelPropalToBill=Modelo por defecto al cerrar una cotización (a facturar) DefaultModelPropalClosed=Modelo por defecto al cerrar una cotización (no facturado) ProposalCustomerSignature=Aprobación, timbre, fecha y firma +ProposalsStatisticsSuppliers=Estadísticas de propuestas de proveedores. diff --git a/htdocs/langs/es_CL/receptions.lang b/htdocs/langs/es_CL/receptions.lang index b2805eae1e4..7413f516204 100644 --- a/htdocs/langs/es_CL/receptions.lang +++ b/htdocs/langs/es_CL/receptions.lang @@ -1,4 +1,32 @@ # Dolibarr language file - Source file is en_US - receptions +RefReception=Árbitro. recepción +Reception=Recepción +ReceptionsArea=Area de recepciones +ListOfReceptions=Lista de recepciones +LastReceptions=Últimas recepciones de %s +StatisticsOfReceptions=Estadisticas para recepciones. +NumberOfReceptionsByMonth=Número de recepciones por mes. +ReceptionCard=Tarjeta de recepcion +NewReception=Nueva recepcion +CreateReception=Crear recepcion +QtyInOtherReceptions=Cantidad en otras recepciones +OtherReceptionsForSameOrder=Otras recepciones para este pedido. +ReceptionsAndReceivingForSameOrder=Recepciones y recibos por este pedido. +ReceptionsToValidate=Recepciones para validar StatusReceptionCanceled=Cancelado +StatusReceptionValidated=Validado (productos a enviar o ya enviados) StatusReceptionProcessed=Procesada StatusReceptionProcessedShort=Procesada +ConfirmDeleteReception=¿Estás seguro de que deseas eliminar esta recepción? +ConfirmValidateReception=¿Está seguro de que desea validar esta recepción con la referencia %s ? +ConfirmCancelReception=¿Seguro que quieres cancelar esta recepción? +StatsOnReceptionsOnlyValidated=Estadísticas realizadas en recepciones solo validadas. La fecha utilizada es la fecha de validación de la recepción (la fecha de entrega prevista no siempre se conoce). +SendReceptionByEMail=Enviar recepción por correo electrónico +SendReceptionRef=Presentación de la recepción %s +ActionsOnReception=Eventos en recepción +ReceptionCreationIsDoneFromOrder=Por el momento, la creación de una nueva recepción se realiza desde la tarjeta de pedido. +ProductQtyInReceptionAlreadySent=Cantidad de producto de pedido abierto ya enviado +ProductQtyInSuppliersReceptionAlreadyRecevied=Cantidad de producto de pedido de proveedor abierto ya recibido +ValidateOrderFirstBeforeReception=Primero debe validar el pedido antes de poder hacer recepciones. +ReceptionsNumberingModules=Módulo de numeración para recepciones. +ReceptionsReceiptModel=Plantillas de documentos para recepciones. diff --git a/htdocs/langs/es_CL/stocks.lang b/htdocs/langs/es_CL/stocks.lang index 3ec3de75e9f..4e9f9b90191 100644 --- a/htdocs/langs/es_CL/stocks.lang +++ b/htdocs/langs/es_CL/stocks.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - stocks WarehouseCard=Tarjeta de almacenamiento ParentWarehouse=Almacén principal -NewWarehouse=Nuevo almacén/área de stock +NewWarehouse=Nuevo almacén / ubicación de stock WarehouseEdit=Modificar el almacén WarehouseSource=Almacén de origen WarehouseSourceNotDefined=Sin almacén definido @@ -18,6 +18,7 @@ MovementId=Identificación del movimiento StockMovementForId=ID de movimiento %d ListMouvementStockProject=Lista de movimientos de stock asociados al proyecto StocksArea=Área de almacenes +IncludeAlsoDraftOrders=Incluir también órdenes de giro. Location=Ubicación LocationSummary=Nombre corto NumberOfDifferentProducts=Cantidad de productos diferentes @@ -34,30 +35,31 @@ StockLowerThanLimit=Stock inferior al límite de alerta (%s) PMPValue=Precio promedio ponderado EnhancedValueOfWarehouses=Valor de las bodegas UserWarehouseAutoCreate=Crear un almacén de usuario automáticamente al crear un usuario -AllowAddLimitStockByWarehouse=Permitir agregar límite y stock deseado por pareja (producto, almacén) en lugar de por producto -IndependantSubProductStock=Las existencias de productos y subproductos son independientes +AllowAddLimitStockByWarehouse=Administre también los valores para el stock mínimo y deseado por emparejamiento (producto-almacén) además de los valores por producto +IndependantSubProductStock=El stock de producto y el stock de subproducto son independientes. QtyDispatched=Cantidad despachada QtyDispatchedShort=Cantidad despachada QtyToDispatchShort=Cantidad a despachar OrderDispatch=Recibos de artículos -RuleForStockManagementDecrease=Regla para la disminución automática de la gestión de stock (la disminución manual siempre es posible, incluso si se activa una regla de disminución automática) -RuleForStockManagementIncrease=Regla para el aumento automático de la gestión de existencias (el aumento manual siempre es posible, incluso si se activa una regla de aumento automático) -DeStockOnBill=Disminuir las existencias reales en las facturas de clientes / validación de notas de crédito -DeStockOnValidateOrder=Disminuir las existencias reales en la validación de pedidos de clientes +RuleForStockManagementDecrease=Elija Regla para la reducción automática de existencias (siempre es posible una reducción manual, incluso si se activa una regla de disminución automática) +RuleForStockManagementIncrease=Elija la regla para el aumento automático de existencias (siempre es posible un aumento manual, incluso si se activa una regla de aumento automático) +DeStockOnBill=Disminuir las existencias reales en la validación de la factura del cliente / nota de crédito +DeStockOnValidateOrder=Disminuir las existencias reales en la validación de la orden de venta. DeStockOnShipment=Disminuir las existencias reales en la validación de envío -DeStockOnShipmentOnClosing=Disminuir las existencias reales en la clasificación de envío cerrado -ReStockOnBill=Aumentar el stock real en la validación de facturas/notas de crédito de proveedores -ReStockOnDispatchOrder=Aumente las existencias reales en el despacho manual a los almacenes, después de que el proveedor ordene la recepción de los bienes +DeStockOnShipmentOnClosing=Disminuir las existencias reales cuando el envío se establece en cerrado +ReStockOnBill=Aumentar las existencias reales en la validación de la factura del proveedor / nota de crédito +ReStockOnValidateOrder=Aumentar las existencias reales en la aprobación de la orden de compra +ReStockOnDispatchOrder=Aumente las existencias reales en el envío manual al almacén, después del pedido de compra de las mercancías. OrderStatusNotReadyToDispatch=El pedido todavía no tiene o no tiene un estado que permite el despacho de productos en almacenes de existencias. StockDiffPhysicTeoric=Explicación de la diferencia entre stock físico y virtual NoPredefinedProductToDispatch=No hay productos predefinidos para este objeto. Por lo tanto, no se requiere envío en stock. DispatchVerb=Envío StockLimit=Límite de existencias para alerta StockLimitDesc=(vacío) significa que no hay advertencia.
0 se puede utilizar como advertencia tan pronto como el stock esté vacío. -PhysicalStock=Stock fisico -RealStockDesc=Las existencias físicas o reales son las existencias que tiene actualmente en sus almacenes / emplazamientos internos. -RealStockWillAutomaticallyWhen=El stock real cambiará automáticamente de acuerdo con estas reglas (consulte la configuración del módulo de stock para cambiar esto): -VirtualStockDesc=Las existencias virtuales son las acciones que recibirá una vez que todas las acciones pendientes pendientes que afecten a las existencias se cerrarán (orden de proveedor recibida, pedido del cliente enviado, ...) +PhysicalStock=Inventario FISICO +RealStockDesc=El stock físico / real es el stock actualmente en los almacenes. +RealStockWillAutomaticallyWhen=El stock real se modificará de acuerdo con esta regla (como se define en el módulo de Stock): +VirtualStockDesc=El stock virtual es el stock calculado disponible una vez que se cierran todas las acciones abiertas / pendientes (que afectan a las acciones) (pedidos recibidos, pedidos de ventas enviados, etc.) IdWarehouse=Id almacén LieuWareHouse=Almacén de localización WarehousesAndProductsBatchDetail=Almacenes y productos (con detalle por lote / serie) @@ -73,7 +75,6 @@ ThisWarehouseIsPersonalStock=Este almacén representa stock personal de %s %s SelectWarehouseForStockDecrease=Elija el almacén para usar para la disminución de stock SelectWarehouseForStockIncrease=Elija un almacén para aumentar las existencias NoStockAction=Stock sin movimientos -DesiredStock=Stock óptima deseado DesiredStockDesc=Esta cantidad de stock será el valor utilizado para rellenar el stock mediante la función de reposición. StockToBuy=Ordenar Replenishment=Reposición @@ -88,8 +89,8 @@ SelectProductWithNotNullQty=Seleccione al menos un producto con una cantidad no AlertOnly=Solo alertas WarehouseForStockDecrease=El almacén %s se usará para la disminución de stock WarehouseForStockIncrease=El almacén %s se usará para aumentar las existencias -ReplenishmentStatusDesc=Esta es una lista de todos los productos con un stock inferior al stock deseado (o menor que el valor de alerta si está marcada la casilla "solo alerta"). Con la casilla de verificación, puede crear pedidos a proveedores para completar la diferencia. -ReplenishmentOrdersDesc=Esta es una lista de todos los pedidos a proveedores abiertos, incluidos los productos predefinidos. Solo se muestran pedidos abiertos con productos predefinidos, por lo que los pedidos que pueden afectar a las existencias son visibles aquí. +ReplenishmentStatusDesc=Esta es una lista de todos los productos con un stock inferior al stock deseado (o inferior al valor de alerta si la casilla de verificación "solo alerta" está marcada). Usando la casilla de verificación, puede crear órdenes de compra para llenar la diferencia. +ReplenishmentOrdersDesc=Esta es una lista de todas las órdenes de compra abiertas que incluyen productos predefinidos. Solo las órdenes abiertas con productos predefinidos, por lo que las órdenes que pueden afectar a las existencias, son visibles aquí. Replenishments=Reposición NbOfProductBeforePeriod=Cantidad de producto %s en stock antes del período seleccionado (<%s) NbOfProductAfterPeriod=Cantidad de producto %s en stock después del período seleccionado (> %s) @@ -99,19 +100,19 @@ RecordMovement=Transferencia de registros ReceivingForSameOrder=Recibos por esta orden StockMovementRecorded=Movimientos de stock grabados RuleForStockAvailability=Reglas sobre requisitos de stock -StockMustBeEnoughForInvoice=El nivel de stock debe ser suficiente para agregar producto / servicio a la factura (se realiza un control en el stock real actual al agregar una línea en la factura, cualquiera que sea la regla para el cambio automático de stock) -StockMustBeEnoughForOrder=El nivel de stock debe ser suficiente para agregar producto / servicio al pedido (la verificación se realiza sobre el stock real actual al agregar una línea al orden, cualquiera que sea la regla para el cambio automático de stock) -StockMustBeEnoughForShipment=El nivel de stock debe ser suficiente para agregar producto / servicio al envío (el control se realiza sobre el stock real actual al agregar una línea al envío, cualquiera que sea la regla para el cambio automático de stock) +StockMustBeEnoughForInvoice=El nivel de stock debe ser suficiente para agregar un producto / servicio a la factura (el cheque se realiza en el stock real actual al agregar una línea en la factura, independientemente de la regla para el cambio automático de stock) +StockMustBeEnoughForOrder=El nivel de stock debe ser suficiente para agregar el producto / servicio al pedido (la verificación se realiza en el stock real actual al agregar una línea en el pedido, cualquiera que sea la regla para el cambio automático de stock) +StockMustBeEnoughForShipment=El nivel de stock debe ser suficiente para agregar el producto / servicio al envío (la verificación se realiza en el stock real actual al agregar una línea en el envío, independientemente de la regla para el cambio automático de stock) MovementLabel=Etiqueta de movimiento InventoryCode=Código de movimiento o inventario WarehouseAllowNegativeTransfer=Stock puede ser negativo qtyToTranferIsNotEnough=No tiene stock suficiente de su almacén de origen y su configuración no permite existencias negativas. MovementCorrectStock=Corrección de Stock para el producto %s InventoryCodeShort=Inv./Mov. código -NoPendingReceptionOnSupplierOrder=No hay recepción pendiente debido a la orden abierta a proveedor +NoPendingReceptionOnSupplierOrder=No hay recepción pendiente debido a la orden de compra abierta. ThisSerialAlreadyExistWithDifferentDate=Este número de lote/serie (%s) ya existe pero con fecha de consumo o de vencimiento diferente (se encontró %s pero ingresó %s). OpenInternal=Abierto solo para acciones internas -UseDispatchStatus=Utilice un estado de envío (aprobación / rechazo) para las líneas de productos en la recepción de pedidos del proveedor +UseDispatchStatus=Utilice un estado de envío (aprobar / rechazar) para las líneas de productos en la recepción de la orden de compra OptionMULTIPRICESIsOn=La opción "varios precios por segmento" está activada. Significa que un producto tiene varios precios de venta por lo que el valor de venta no se puede calcular ProductStockWarehouseCreated=Límite de stock para alerta y stock óptimo deseado correctamente creado ProductStockWarehouseUpdated=Límite de stock para alerta y stock óptimo deseado correctamente actualizado @@ -128,9 +129,9 @@ inventoryErrorQtyAdd=Error: una cantidad es menor que cero inventoryWarningProductAlreadyExists=Este producto ya está en la lista SelectCategory=Filtro de categoría SelectFournisseur=Filtro de proveedor -INVENTORY_DISABLE_VIRTUAL=Permitir que no se destockone producto infantil de un kit en inventario +INVENTORY_DISABLE_VIRTUAL=Producto virtual (kit): no disminuir el stock de un producto infantil INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Utilice el precio de compra si no se puede encontrar el último precio de compra -INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Movimiento de stock tiene fecha de inventario +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=El movimiento de stock tiene fecha de inventario. inventoryChangePMPPermission=Permitir cambiar el valor de PMP para un producto OnlyProdsInStock=No agregue productos sin stock TheoricalQty=Cantidad teórica @@ -140,10 +141,14 @@ RealValue=Valor real RegulatedQty=Cantidad regulada AddInventoryProduct=Agregar producto al inventario FlushInventory=Inventario sobrante -ConfirmFlushInventory=¿Confirmas esta acción? +ConfirmFlushInventory=¿Confirma usted esta acción? InventoryFlushed=Inventario eliminado ExitEditMode=Edición de salida inventoryDeleteLine=Eliminar línea RegulateStock=Regular el stock -StockSupportServices=Servicios de soporte de gestión de stock -StockSupportServicesDesc=Por defecto, puede almacenar solo productos con el tipo "producto". Si está activado, y si el servicio de módulo está activado, también puede almacenar un producto con el tipo "servicio" +StockSupportServices=Servicios de gestión de stock. +StockSupportServicesDesc=Por defecto, puede almacenar solo productos del tipo "producto". También puede almacenar un producto de tipo "servicio" si los Servicios del módulo y esta opción están habilitados. +StockIncreaseAfterCorrectTransfer=Incremento por corrección / transferencia. +StockDecreaseAfterCorrectTransfer=Disminución por corrección / transferencia +StockIncrease=Aumento de existencias +StockDecrease=Disminución de existencias diff --git a/htdocs/langs/es_CL/supplier_proposal.lang b/htdocs/langs/es_CL/supplier_proposal.lang index 0c2537dd99d..649d19042a4 100644 --- a/htdocs/langs/es_CL/supplier_proposal.lang +++ b/htdocs/langs/es_CL/supplier_proposal.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - supplier_proposal SupplierProposal=Propuestas comerciales del vendedor +supplier_proposalDESC=Gestionar solicitudes de precios a proveedores. SupplierProposalNew=Nueva solicitud de precio CommRequest=Precio requerido CommRequests=Peticiones de precio diff --git a/htdocs/langs/es_CL/ticket.lang b/htdocs/langs/es_CL/ticket.lang index 39e2e1b15ba..288993b4520 100644 --- a/htdocs/langs/es_CL/ticket.lang +++ b/htdocs/langs/es_CL/ticket.lang @@ -3,6 +3,10 @@ Module56000Name=Entradas Module56000Desc=Sistema de tickets para gestión de problemas o solicitudes Permission56001=Ver entradas Permission56002=Modificar entradas +Permission56005=Ver boletos de todos los terceros (no es efectivo para usuarios externos, siempre debe limitarse al tercero del que dependen) +TicketDictType=Boleto - Tipos +TicketDictCategory=Boleto - Grupos +TicketDictSeverity=Ticket - Severidades TicketTypeShortINCIDENT=Solicitud de asistencia ErrorBadEmailAddress=Campo '%s' incorrecto MenuTicketMyAssign=Mis boletos @@ -11,21 +15,27 @@ MenuListNonClosed=Boletos abiertos TypeContact_ticket_internal_CONTRIBUTOR=Colaborador TypeContact_ticket_external_SUPPORTCLI=Contacto con el cliente / seguimiento de incidentes OriginEmail=Fuente de correo electrónico +Notify_TICKET_SENTBYMAIL=Enviar mensaje de boleto por correo electrónico NotRead=No leer Read=Leer +NeedMoreInformation=Esperando informacion Answered=Contestada Waiting=Esperando Type=Tipo MailToSendTicketMessage=Para enviar un correo electrónico desde un mensaje de ticket +TicketSetupDictionaries=El tipo de ticket, severidad y códigos analíticos son configurables desde los diccionarios. TicketParamMail=Configuración de correo electrónico TicketEmailNotificationFrom=Correo electrónico de notificación de TicketEmailNotificationFromHelp=Utilizado en la respuesta del mensaje del boleto por ejemplo TicketEmailNotificationTo=Notificaciones de correo electrónico a TicketEmailNotificationToHelp=Envíe notificaciones por correo electrónico a esta dirección. +TicketNewEmailBodyLabel=Mensaje de texto enviado después de crear un ticket. TicketNewEmailBodyHelp=El texto especificado aquí se insertará en el correo electrónico confirmando la creación de un nuevo ticket desde la interfaz pública. La información sobre la consulta del ticket se agrega automáticamente. TicketsEmailMustExist=Requerir una dirección de correo electrónico existente para crear un boleto TicketsEmailMustExistHelp=En la interfaz pública, la dirección de correo electrónico ya debe estar llena en la base de datos para crear un nuevo ticket. PublicInterface=Interfaz pública +TicketUrlPublicInterfaceLabelAdmin=URL alternativa para la interfaz pública +TicketUrlPublicInterfaceHelpAdmin=Es posible definir un alias para el servidor web y, por lo tanto, hacer que la interfaz pública esté disponible con otra URL (el servidor debe actuar como un proxy en esta nueva URL) TicketPublicInterfaceTextHome=Puede crear un ticket de soporte o visualizar existente a partir de su ticket de seguimiento de identificador. ExtraFieldsTicket=Atributos adicionales TicketCkEditorEmailNotActivated=El editor de HTML no está activado. Coloque el contenido FCKEDITOR_ENABLE_MAIL en 1 para obtenerlo. @@ -37,15 +47,21 @@ TicketsShowModuleLogoHelp=Habilite esta opción para ocultar el módulo de logot TicketsShowCompanyLogoHelp=Habilite esta opción para ocultar el logotipo de la empresa principal en las páginas de la interfaz pública TicketsEmailAlsoSendToMainAddress=También envíe notificaciones a la dirección de correo electrónico principal TicketsEmailAlsoSendToMainAddressHelp=Habilite esta opción para enviar un correo electrónico a la dirección "Correo electrónico de notificación de" (consulte la configuración a continuación) +TicketsLimitViewAssignedOnly=Restrinja la visualización a los tickets asignados al usuario actual (no es efectivo para usuarios externos, siempre debe limitarse al tercero del que dependen) TicketsLimitViewAssignedOnlyHelp=Solo las entradas asignadas al usuario actual serán visibles. No se aplica a un usuario con derechos de gestión de tickets. TicketsActivatePublicInterface=Activar la interfaz pública TicketsActivatePublicInterfaceHelp=La interfaz pública permite a los visitantes crear tickets. TicketsAutoAssignTicket=Asigna automáticamente al usuario que creó el ticket +TicketNotifyTiersAtCreation=Notificar a un tercero en la creación +TicketsDisableCustomerEmail=Deshabilite siempre los correos electrónicos cuando se crea un ticket desde la interfaz pública TicketsIndex=Ticket - hogar TicketList=Lista de entradas +TicketAssignedToMeInfos=Esta página muestra la lista de tickets creada por o asignada al usuario actual NoTicketsFound=No se encontró boleto +NoUnreadTicketsFound=No se encontraron entradas sin leer TicketViewAllTickets=Ver todos los boletos TicketStatByStatus=Entradas por estado +Ticket=Boleto TicketCard=Tarjeta de boleto CreateTicket=Crear boleto TicketsManagement=Gestión de entradas @@ -55,6 +71,7 @@ SeeTicket=Ver boleto TicketReadOn=Sigue leyendo TicketHistory=Historial de entradas TicketAssigned=Ticket ahora está asignado +TicketChangeCategory=Cambiar código analítico TicketChangeSeverity=Cambiar severidad TicketAddMessage=Añade un mensaje AddMessage=Añade un mensaje @@ -75,9 +92,12 @@ SendMessageByEmail=Enviar mensaje por correo electrónico ErrorMailRecipientIsEmptyForSendTicketMessage=El destinatario está vacío. Sin enviar correo electrónico TicketMessageMailIntroHelp=Este texto se agrega solo al comienzo del correo electrónico y no se guardará. TicketMessageMailIntroLabelAdmin=Introducción al mensaje cuando se envía un correo electrónico +TicketMessageMailIntroText=Hola,
Se envió una nueva respuesta en un ticket que contactaste. Aquí está el mensaje:
TicketMessageMailSignatureHelp=Este texto se agrega solo al final del correo electrónico y no se guardará. +TicketMessageMailSignatureText=

Sinceramente,

-

TicketMessageMailSignatureLabelAdmin=Firma del correo electrónico de respuesta TicketMessageHelp=Solo este texto se guardará en la lista de mensajes en la tarjeta de boletos. +TicketTimeToRead=Tiempo transcurrido antes de leer TicketContacts=Boleto de contactos TicketDocumentsLinked=Documentos vinculados al boleto ConfirmReOpenTicket=¿Confirma volver a abrir este ticket? @@ -85,10 +105,15 @@ TicketAssignedToYou=Boleto asignado TicketAssignedEmailBody=Se le ha asignado el ticket # %s por %s TicketEmailOriginIssuer=Emisor al origen de los boletos LinkToAContract=Enlace a un contrato +UnableToCreateInterIfNoSocid=No se puede crear una intervención cuando no se define un tercero TicketMailExchanges=Intercambios de correo TicketChangeStatus=Cambiar Estado +TicketConfirmChangeStatus=Confirme el cambio de estado: %s? TicketNotNotifyTiersAtCreate=No notificar a la compañía en crear NoLogForThisTicket=Aún no hay registro para este boleto +TicketLogPropertyChanged=Ticket %s modificado: clasificación de %s a %s +TicketLogClosedBy=Boleto %s cerrado por %s +TicketLogReopen=Boleto %s reabierto TicketSystem=Sistema de entradas ShowListTicketWithTrackId=Mostrar lista de tickets de la ID de la pista ShowTicketWithTrackId=Mostrar ticket desde ID de seguimiento @@ -99,16 +124,28 @@ TicketNewEmailSubject=Confirmación de creación de entradas TicketNewEmailBody=Este es un correo electrónico automático para confirmar que ha registrado un nuevo boleto. TicketNewEmailBodyCustomer=Este es un correo electrónico automático para confirmar que se acaba de crear un nuevo ticket en su cuenta. TicketNewEmailBodyInfosTicket=Información para monitorear el boleto +TicketNewEmailBodyInfosTrackId=Número de seguimiento de entradas: %s TicketNewEmailBodyInfosTrackUrl=Puede ver el progreso del ticket haciendo clic en el enlace de arriba. TicketEmailPleaseDoNotReplyToThisEmail=¡Por favor no responda directamente a este correo! Usa el enlace para responder a la interfaz. TicketPublicInfoCreateTicket=Este formulario le permite registrar un ticket de soporte en nuestro sistema de gestión. TicketPublicPleaseBeAccuratelyDescribe=Por favor describe con precisión el problema. Proporcione la mayor cantidad de información posible que nos permita identificar correctamente su solicitud. TicketPublicMsgViewLogIn=Ingrese la ID de seguimiento de boletos +TicketTrackId=ID de seguimiento público +OneOfTicketTrackId=Una de tus ID de seguimiento +ErrorTicketNotFound=¡No se encontró el ticket con el ID de seguimiento %s! Subject=Tema ViewTicket=Ver boleto ViewMyTicketList=Ver mi lista de boletos +ErrorEmailMustExistToCreateTicket=Error: la dirección de correo electrónico no se encuentra en nuestra base de datos TicketNewEmailSubjectAdmin=Nuevo boleto creado +TicketNewEmailBodyAdmin=

El ticket se acaba de crear con ID # %s, ver información:

SeeThisTicketIntomanagementInterface=Ver boleto en la interfaz de administración +ErrorEmailOrTrackingInvalid=Mal valor para el seguimiento de ID o correo electrónico +OldUser=Antiguo usuario +NumberOfTicketsByMonth=Número de entradas al mes +NbOfTickets=Número de entradas +TicketNotificationNumberEmailSent=Correo electrónico de notificación enviado: %s +ActionsOnTicket=Eventos en la entrada BoxLastTicketDescription=Últimas %s entradas creadas BoxLastTicketNoRecordedTickets=No hay entradas recientes sin leer BoxLastModifiedTicketDescription=Las últimas entradas modificadas %s diff --git a/htdocs/langs/es_CL/workflow.lang b/htdocs/langs/es_CL/workflow.lang index 9946bbcb13d..b1ea13c8a0b 100644 --- a/htdocs/langs/es_CL/workflow.lang +++ b/htdocs/langs/es_CL/workflow.lang @@ -1,15 +1,14 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowSetup=Configuración del módulo de flujo de trabajo -WorkflowDesc=Este módulo está diseñado para modificar el comportamiento de las acciones automáticas en la aplicación. Por defecto, el flujo de trabajo está abierto (puede hacer las cosas en el orden que desee). Usted puede activar las acciones automáticas que le interesen. ThereIsNoWorkflowToModify=No hay modificaciones de flujo de trabajo disponibles con los módulos activados. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear automáticamente un pedido de cliente después de que se firme una propuesta comercial (el nuevo pedido tendrá la misma cantidad que la propuesta) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Cree automáticamente una factura de cliente después de que se firme una propuesta comercial (la nueva factura tendrá el mismo importe que la propuesta) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear automáticamente un pedido de venta después de que se haya firmado una propuesta comercial (el nuevo pedido tendrá la misma cantidad que la propuesta) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que se haya firmado una propuesta comercial (la nueva factura tendrá el mismo importe que la propuesta) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que un contrato es validado -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Cree automáticamente una factura de cliente después de cerrar una orden de cliente (la nueva factura tendrá el mismo importe que la orden) -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasifique la(s) fuente(s) propuesta(s) vinculada(s) a facturar cuando el pedido del cliente se configura para facturar (y si el monto del pedido es igual al monto total de propuestas vinculadas firmadas) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasifique la (s) propuesta (s) fuente (s) vinculada (s) para facturar cuando la factura del cliente sea validada (y si el monto de la factura es igual al monto total de las propuestas vinculadas firmadas) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasifique los pedidos de origen del cliente vinculados para facturar cuando se valida la factura del cliente (y si el importe de la factura es igual al importe total de los pedidos vinculados) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasifique los pedidos de origen del cliente vinculados para facturar cuando la factura del cliente se establece como pagada (y si el importe de la factura es igual al importe total de los pedidos vinculados) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasifique la orden del cliente de origen vinculado para enviar cuando se valida un envío (y si la cantidad enviada por todos los envíos es la misma que en el orden de actualización) -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Clasifique la (s) propuesta (s) de proveedores de origen vinculados para facturar cuando se valida la factura del proveedor (y si el importe de la factura es igual al importe total de las propuestas vinculadas) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasifique las órdenes de compra de origen vinculadas para facturar cuando se valida la factura del proveedor (y si el importe de la factura es igual al importe total de las órdenes vinculadas) +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que se cierre un pedido de venta (la nueva factura tendrá el mismo importe que el pedido) +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasifique la propuesta de origen vinculado como facturada cuando el pedido de venta se establece en facturado (y si el monto del pedido es el mismo que el monto total de la propuesta vinculada firmada) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasifique la propuesta de origen vinculado como facturada cuando la factura del cliente se valida (y si el monto de la factura es el mismo que el monto total de la propuesta vinculada firmada) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasifique el pedido de ventas de origen vinculado como facturado cuando la factura del cliente se valida (y si el monto de la factura es el mismo que el monto total del pedido vinculado) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasifique el pedido de venta de origen vinculado como facturado cuando la factura del cliente se establece en pagada (y si el monto de la factura es el mismo que el monto total del pedido vinculado) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasifique el pedido de venta de origen vinculado como enviado cuando se valida un envío (y si la cantidad enviada por todos los envíos es la misma que en el pedido de actualización) +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Clasifique la propuesta del proveedor de origen vinculado como facturada cuando se valida la factura del proveedor (y si el monto de la factura es el mismo que el monto total de la propuesta vinculada) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Clasifique la orden de compra de origen vinculado como facturada cuando se valida la factura del proveedor (y si el monto de la factura es el mismo que el monto total del pedido vinculado) diff --git a/htdocs/langs/es_CO/admin.lang b/htdocs/langs/es_CO/admin.lang index 88f1d404b80..c931369f00e 100644 --- a/htdocs/langs/es_CO/admin.lang +++ b/htdocs/langs/es_CO/admin.lang @@ -101,7 +101,6 @@ MenuForUsers=Menú para usuarios. SystemInfo=Información del sistema SystemToolsArea=Área de herramientas del sistema PurgeDeleteLogFile=Elimine los archivos de registro, incluido el %s definido para el módulo Syslog (sin riesgo de perder datos) -PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (sin riesgo de perder datos) PurgeDeleteTemporaryFilesShort=Borrar archivos temporales PurgeRunNow=Purga ahora PurgeNothingToDelete=No hay directorio o archivos para eliminar. @@ -666,7 +665,6 @@ ListOfSecurityEvents=Listado de eventos de seguridad de Dolibarr. AreaForAdminOnly=Los parámetros de configuración solo pueden ser configurados por usuarios administradores . SystemInfoDesc=La información del sistema es información técnica diversa que se obtiene en modo de solo lectura y visible solo para administradores. CompanyFundationDesc=Editar la información de la empresa / entidad. Haga clic en el botón "%s" o "%s" en la parte inferior de la página. -AccountantDesc=Edite los detalles de su contador / contador AvailableModules=Aplicación / módulos disponibles ToActivateModule=Para activar los módulos, vaya al área de configuración (Inicio-> Configuración-> Módulos). SessionTimeOut=Tiempo fuera para sesión @@ -1072,6 +1070,8 @@ ExpenseReportsRulesSetup=Configuración de los informes de gastos del módulo - ExpenseReportNumberingModules=Módulo de numeración de informes de gastos. NoModueToManageStockIncrease=No se ha activado ningún módulo capaz de gestionar el aumento automático de stock. El aumento de stock se realizará solo con entrada manual. ListOfNotificationsPerUser=Lista de notificaciones por usuario * +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para agregar o eliminar notificaciones para usuarios GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un tercero para agregar o eliminar notificaciones de contactos / direcciones Threshold=Límite diff --git a/htdocs/langs/es_CO/bills.lang b/htdocs/langs/es_CO/bills.lang index b018909f2aa..91e935e7a99 100644 --- a/htdocs/langs/es_CO/bills.lang +++ b/htdocs/langs/es_CO/bills.lang @@ -18,7 +18,6 @@ InvoiceProFormaAsk=Factura de proforma InvoiceProFormaDesc= Factura proforma es una imagen de una factura real pero no tiene valor contable. InvoiceReplacement=Factura de reemplazo InvoiceReplacementAsk=Factura de reemplazo para la factura. -InvoiceReplacementDesc= Factura de reemplazo se utiliza para cancelar y reemplazar completamente una factura que no haya recibido ningún pago.

Nota: Solo se pueden reemplazar las facturas que no tengan ningún pago. Si la factura que reemplaza aún no está cerrada, se cerrará automáticamente a "abandonada". InvoiceAvoir=Nota de crédito InvoiceAvoirAsk=Nota de crédito para corregir factura invoiceAvoirWithLines=Crear nota de crédito con líneas de la factura de origen. diff --git a/htdocs/langs/es_DO/admin.lang b/htdocs/langs/es_DO/admin.lang index 79fb1cc6155..9bc2c2bc07b 100644 --- a/htdocs/langs/es_DO/admin.lang +++ b/htdocs/langs/es_DO/admin.lang @@ -7,4 +7,6 @@ Permission93=Eliminar impuestos e ITBIS DictionaryVAT=Tasa de ITBIS (Impuesto sobre ventas en EEUU) UnitPriceOfProduct=Precio unitario sin ITBIS de un producto OptionVatMode=Opción de carga de ITBIS +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_EC/admin.lang b/htdocs/langs/es_EC/admin.lang index 6e52d4ec437..e388f61c604 100644 --- a/htdocs/langs/es_EC/admin.lang +++ b/htdocs/langs/es_EC/admin.lang @@ -107,7 +107,6 @@ SystemToolsAreaDesc=Esta área proporciona funciones de administración. Utilice Purge=Purgar PurgeAreaDesc=Esta página le permite eliminar todos los archivos generados o almacenados por Dolibarr (archivos temporales o todos los archivos en el directorio %s). Usando esta característica normalmente no es necesario. Se proporciona como una solución para los usuarios cuyo Dolibarr está alojado por un proveedor que no ofrece permisos para eliminar archivos generados por el servidor web. PurgeDeleteLogFile=Eliminar archivo de registro %s definido para el módulo de Registro del Sistema (Syslog) (sin riesgo de perder datos) -PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales. PurgeDeleteAllFilesInDocumentsDir=Eliminar todos los archivos en el directorio: %s.
Esto eliminará todos los documentos generados relacionados con los elementos (terceros, facturas, etc.), los archivos cargados en el módulo ECM, los volcados de respaldo de la base de datos y archivos temporales. PurgeRunNow=Purgar ahora PurgeNothingToDelete=Sin directorio o archivos que desea eliminar. @@ -811,7 +810,6 @@ LogEventDesc=Habilitar el registro para eventos de seguridad específicos. Los a AreaForAdminOnly=Los parámetros de configuración sólo pueden ser establecidos por usuarios de administrador . SystemInfoDesc=La información del sistema es la información técnica diversa que se obtiene en el modo de solo lectura y visible sólo para los administradores. CompanyFundationDesc=Editar la información de la empresa / entidad. Haga clic en el botón " %s" o " %s" en la parte inferior de la página. -AccountantDesc=Edite los detalles de su contador / contador AvailableModules=Aplicaciones / módulos disponibles ToActivateModule=Para activar los módulos, vaya a área de configuración (Inicio-> Configuración-> Módulos). SessionTimeOut=Tiempo de espera para la sesión diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index f80257a135c..c98d1b1ed99 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Cuenta contable de resultados (Pérdidas) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Diario de cierre ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta de caja +TransitionalAccount=Cuenta de transferencia bancaria de transición ACCOUNTING_ACCOUNT_SUSPENSE=Cuenta operaciones pendientes de asignar DONATION_ACCOUNTINGACCOUNT=Cuenta contable para registrar donaciones @@ -216,7 +217,7 @@ DescThirdPartyReport=Consulte aquí el listado de clientes y proveedores y sus c ListAccounts=Listado de cuentas contables UnknownAccountForThirdparty=Cuenta contable de tercero desconocida, usaremos %s UnknownAccountForThirdpartyBlocking=Cuenta contable de tercero desconocida. Error de bloqueo -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. We will use %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Cuenta de tercero no definida o tercero desconocido. Usaremos %s ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Cuenta del tercero desconocida o tercero desconocido. Error de bloqueo UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Cuenta del tercero desconocida y cuenta de espera no definida. Error de bloqueo PaymentsNotLinkedToProduct=Pagos no vinculados a un producto/servicio @@ -292,7 +293,7 @@ Modelcsv_cogilog=Eportar a Cogilog Modelcsv_agiris=Exportar a Agiris Modelcsv_openconcerto=Exportar a OpenConcerto (En pruebas) Modelcsv_configurable=Exportación CSV Configurable -Modelcsv_FEC=Export FEC +Modelcsv_FEC=Exportación FEC Modelcsv_Sage50_Swiss=Exportación a Sage 50 Suiza ChartofaccountsId=Id plan contable @@ -317,9 +318,9 @@ WithoutValidAccount=Sin cuenta dedicada válida WithValidAccount=Con cuenta dedicada válida ValueNotIntoChartOfAccount=Este valor de cuenta contable no existe en el plan general contable AccountRemovedFromGroup=Cuenta eliminada del grupo -SaleLocal=Local sale -SaleExport=Export sale -SaleEEC=Sale in EEC +SaleLocal=Venta local +SaleExport=Venta de exportación +SaleEEC=Venta en CEE ## Dictionary Range=Rango de cuenta contable @@ -340,7 +341,7 @@ UseMenuToSetBindindManualy=No es posible autodetectar, utilice el menú %s
). El uso de esta función no es necesaria. Se proporciona como solución para los usuarios cuyos Dolibarr se encuentran en un proveedor que no ofrece permisos para eliminar los archivos generados por el servidor web. PurgeDeleteLogFile=Eliminar archivos de registro, incluidos %s definidos por el módulo Syslog (sin riesgo de perder datos) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (sin riesgo de perder datos). Nota: la eliminación se realiza solo si el directorio temporal se creó hace 24 horas. PurgeDeleteTemporaryFilesShort=Eliminar archivos temporales PurgeDeleteAllFilesInDocumentsDir=Eliminar todos los archivos del directorio %s. Serán eliminados archivos temporales y archivos relacionados con elementos (terceros, facturas, etc.), archivos subidos al módulo GED, copias de seguridad de la base de datos y archivos temporales. PurgeRunNow=Purgar @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Casilla de selección de tabla ExtrafieldLink=Objeto adjuntado ComputedFormula=Campo combinado ComputedFormulaDesc=Puede introducir aquí una fórmula utilizando otras propiedades de objeto o cualquier código PHP para obtener un valor calculado dinámico. Puede utilizar cualquier fórmula compatible con PHP, incluido el operador de condición "?" y los objetos globales siguientes: $db, $conf, $langs, $mysoc, $user, $object.
ATENCIÓN: Sólo algunas propiedades de $object pueden estar disponibles. Si necesita propiedades no cargadas, solo busque el objeto en su fórmula como en el segundo ejemplo.
Usando un campo computado significa que no puede ingresar ningún valor de la interfaz. Además, si hay un error de sintaxis, la fórmula puede devolver nada.

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

Ejemlo de recarga de objeto
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Otro ejemplo de fórmula para forzar la carga del objeto y su objeto principal:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +Computedpersistent=Almacenar campo combinado +ComputedpersistentDesc=Los campos adicionales calculados se almacenarán en la base de datos, sin embargo, el valor solo se volverá a calcular cuando se cambie el objeto de este campo. ¡Si el campo calculado depende de otros objetos o datos globales, este valor podría ser incorrecto! ExtrafieldParamHelpPassword=Mantener este campo vacío significa que el valor se almacenará sin cifrado (el campo permanecerá solo oculto con estrellas en la pantalla).
Establezca aquí el valor 'auto' para usar la regla de cifrado predeterminada para guardar la contraseña en la base de datos (entonces el valor leído será solo el hash, no hay forma de recuperar el valor original) ExtrafieldParamHelpselect=El listado de valores tiene que ser líneas key,valor

por ejemplo:
1,value1
2,value2
3,value3
...

Para tener una lista en funcion de campos adicionales de lista:
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

Para tener la lista en función de otra:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=El listado de valores tiene que ser líneas con el formato key,valor

por ejemplo:
1,value1
2,value2
3,value3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=El listado de valores tiene que ser líneas con el form ExtrafieldParamHelpsellist=Lista de valores proviene de una tabla
Sintaxis: nombre_tabla: etiqueta_field: id_field :: filtro
Ejemplo: c_typent: libelle: id :: filtro

filtro puede ser una prueba simple (por ejemplo, activa = 1) Para mostrar sólo el valor activo
También puede utilizar $ ID $ en el filtro witch es el actual id del objeto actual
Para hacer un SELECT en el filtro de uso $ SEL $
si desea filtrar en campos adicionales utilizar la sintaxis Extra.fieldcode = ... (donde código de campo es el código de campo adicional)

Para que la lista dependa de otra lista de campos adicionales:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Para que la lista dependa de otra lista:
c_typent: libelle: id: parent_list_code | parent_column: filter ExtrafieldParamHelpchkbxlst=Lista de valores proviene de una tabla
Sintaxis: nombre_tabla: etiqueta_field: id_field :: filtro
Ejemplo: c_typent: libelle: id :: filtro

filtro puede ser una prueba simple (por ejemplo, activa = 1) Para mostrar sólo el valor activo
También puede utilizar $ ID $ en el filtro witch es el id actual del objeto actual
Para hacer un SELECT en el filtro de uso $ SEL $
si desea filtrar en campos adicionales utilizar la sintaxis Extra.fieldcode = ... (donde código de campo es el código de campo adicional)

Para que la lista dependa de otra lista de campos adicionales:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Para que la lista dependa de otra lista:
c_typent: libelle: id: parent_list_code | parent_column: filter ExtrafieldParamHelplink=Los parámetros deben ser ObjectName: Classpath
Sintaxis: ObjectName:Classpath
Ejemplo:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Mantener vacío para un separador simple.
Establézcalo a 1 para un separador colapsado (abierto de manera predeterminada)
Establézcalo a 2 para un separador de colapso (colapsado de forma predeterminada) LibraryToBuildPDF=Libreria usada en la generación de los PDF LocalTaxDesc=Algunos países aplican 2 o 3 tasas a cada línea de factura. Si es el caso, escoja el tipo de la segunda y tercera tasa y su valor. Los posibles tipos son:
1 : tasa local aplicable a productos y servicios sin IVA (tasa local es calculada sobre la base imponible)
2 : tasa local se aplica a productos y servicios incluyendo el IVA (tasa local es calculada sobre base imponible+IVA)
3 : tasa local se aplica a productos sin IVA (tasa local es calculada sobre la base imponible)
4 : tasa local se aplica a productos incluyendo el IVA (tasa local es calculada sobre base imponible+IVA)
5 : tasa local se aplica a servicios sin IVA (tasa local es calculada sobre base imponible)
6 : tasa local se aplica a servicios incluyendo el IVA (tasa local es calculada sobre base imponible+IVA) SMS=SMS @@ -804,7 +807,7 @@ Permission401=Consultar haberes Permission402=Crear/modificar haberes Permission403=Validar haberes Permission404=Eliminar haberes -Permission430=Use Debug Bar +Permission430=Usa barra de debug Permission511=Consultar pagos de salarios Permission512=Crear/modificar pagos de salarios Permission514=Eliminar pagos de salarios @@ -819,9 +822,9 @@ Permission532=Crear/modificar servicios Permission534=Eliminar servicios Permission536=Ver/gestionar los servicios ocultos Permission538=Exportar servicios -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Leer lista de materiales +Permission651=Crear/Actualizar lista de material +Permission652=Eliminar lista de material Permission701=Consultar donaciones Permission702=Crear/modificar donaciones Permission703=Eliminar donaciones @@ -841,12 +844,12 @@ Permission1101=Consultar ordenes de envío Permission1102=Crear/modificar ordenes de envío Permission1104=Validar orden de envío Permission1109=Eliminar orden de envío -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 +Permission1121=Leer presupuestos de proveedor +Permission1122=Crear/modificar presupuestos de proveedor +Permission1123=Validar presupuestos de proveedor +Permission1124=Enviar presupuestos de proveedor +Permission1125=Eliminar presupuestos de proveedor +Permission1126=Cerrar presupuestos de proveedor Permission1181=Consultar proveedores Permission1182=Leer pedidos de compra Permission1183=Crear/modificar pedidos a proveedores @@ -882,15 +885,15 @@ Permission2503=Enviar o eliminar documentos Permission2515=Configuración directorios de documentos Permission2801=Utilizar el cliente FTP en modo lectura (sólo explorar y descargar) Permission2802=Utilizar el cliente FTP en modo escritura (borrar o subir archivos) -Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees -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 +Permission3200=Leer eventos archivados y huellas digitales +Permission4001=Ver empleados +Permission4002=Crear empleados +Permission4003=Eliminar empleados +Permission4004=Exportar empleados +Permission10001=Leer contenido del sitio web +Permission10002=Crear modificar contenido del sitio web (contenido html y javascript) +Permission10003=Crear/modificar contenido del sitio web (código php dinámico). Peligroso, debe reservarse a desarrolladores restringidos. +Permission10005=Eliminar contenido del sitio web Permission20001=Leer peticiones días líbres (suyos y subordinados) Permission20002=Crear/modificar peticiones días libres (suyos y de sus subordinados) Permission20003=Eliminar peticiones de días retribuidos @@ -904,19 +907,19 @@ Permission23004=Ejecutar Trabajo programado Permission50101=Utilizar TPV Permission50201=Consultar las transacciones Permission50202=Importar las transacciones -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 -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50401=Contabilizar productos y facturas con cuentas contables +Permission50411=Leer operaciones del Libro Mayor +Permission50412=Registrar/Editar operaciones en el Libro Mayor +Permission50414=Eliminar operaciones del Libro Mayor +Permission50415=Eliminar todas las operaciones por año y diario del Libro Mayor +Permission50418=Exportar operaciones del Libro Mayor +Permission50420=Informes y exportaciones (facturación, balance, diarios, libro mayor) +Permission50430=Definir y cerrar un período fiscal. +Permission50440=Gestionar plan contable, configuración de contabilidad. +Permission51001=Leer activos +Permission51002=Crear/actualizar activos +Permission51003=Eliminar activos +Permission51005=Configurar tipos de activos Permission54001=Imprimir Permission55001=Leer encuestas Permission55002=Crear/modificar encuestas @@ -1110,7 +1113,7 @@ AreaForAdminOnly=Los parámetros de configuración solamente pueden ser tratados SystemInfoDesc=La información del sistema es información técnica accesible solamente en solo lectura a los administradores. SystemAreaForAdminOnly=Esta área está disponible solo para usuarios administradores. Los permisos de usuario de Dolibarr no pueden cambiar esta restricción. CompanyFundationDesc=Edite la información de la empresa o institución. Haga clic en el botón "%s" o "%s" a pié de página -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. +AccountantDesc=Si tiene un contable/asesor externo, puede editar aquí su información. AccountantFileNumber=Código contable DisplayDesc=Los parámetros que afectan el aspecto y el comportamiento de Dolibarr se pueden modificar aquí. AvailableModules=Módulos disponibles @@ -1923,5 +1926,5 @@ IFTTTDesc=Este módulo está diseñado para desencadenar eventos en IFTTT y/o pa UrlForIFTTT=URL endpoint de IFTTT YouWillFindItOnYourIFTTTAccount=Lo encontrará en su cuenta de IFTTT. EndPointFor=End point for %s : %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +DeleteEmailCollector=Eliminar el recolector de e-mail +ConfirmDeleteEmailCollector=¿Está seguro de que querer eliminar este recolector de e-mail? diff --git a/htdocs/langs/es_ES/cashdesk.lang b/htdocs/langs/es_ES/cashdesk.lang index 0fd77fcbbac..c2754213585 100644 --- a/htdocs/langs/es_ES/cashdesk.lang +++ b/htdocs/langs/es_ES/cashdesk.lang @@ -68,4 +68,4 @@ Terminal=Terminal NumberOfTerminals=Número de terminales TerminalSelect=Seleccione el terminal que desea usar: POSTicket=Ticket POS -BasicPhoneLayout=Use basic layout for phones +BasicPhoneLayout=Utilizar diseño básico para teléfonos. diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang index 7d1aa5104f8..62e66cd8440 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Descuentos fijos de proveedores (acordado por t SupplierAbsoluteDiscountMy=Descuentos fijos de proveedores (acordados personalmente) DiscountNone=Ninguna Vendor=Proveedor +Supplier=Proveedor AddContact=Crear contacto AddContactAddress=Crear contacto/dirección EditContact=Editar contacto diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index 3ec73be0883..c8a8896187b 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -78,9 +78,9 @@ GroupEmails=E-mail grupales OneEmailPerRecipient=Un e-mail por destinatario (de forma predeterminada, un e-mail por registro seleccionado) WarningIfYouCheckOneRecipientPerEmail=Atención: Si marca esta casilla, significa que solo se enviará un e-mail para varios registros diferentes seleccionados, por lo tanto, si su mensaje contiene variables de sustitución que hacen referencia a los datos de un registro, no será posible reemplazarlos. ResultOfMailSending=Resultado del envío masivo de e-mails -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent +NbSelected=Seleccionados +NbIgnored=Ignorados +NbSent=Enviados SentXXXmessages=%s mensaje(s) enviado(s) ConfirmUnvalidateEmailing=¿Está seguro de querer cambiar el estado del e-mailing %s a borrador? MailingModuleDescContactsWithThirdpartyFilter=Filtro de contactos con tercero diff --git a/htdocs/langs/es_ES/members.lang b/htdocs/langs/es_ES/members.lang index 369def6ea99..a1025b9b61e 100644 --- a/htdocs/langs/es_ES/members.lang +++ b/htdocs/langs/es_ES/members.lang @@ -171,7 +171,7 @@ MembersStatisticsDesc=Elija las estadísticas que desea consultar... MenuMembersStats=Estadísticas LastMemberDate=Última fecha de miembro LatestSubscriptionDate=Fecha de la última cotización -MemberNature=Nature of member +MemberNature=Naturaleza del miembro Public=Información pública NewMemberbyWeb=Nuevo miembro añadido. En espera de validación NewMemberForm=Formulario de inscripción diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index 047bd238587..e3a372cd525 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Número de facturas a clientes NumberOfSupplierProposals=Número de presupuestos de proveedores NumberOfSupplierOrders=Número de pedidos a proveedores NumberOfSupplierInvoices=Número de facturas de proveedores +NumberOfContracts=Número de contratos NumberOfUnitsProposals=Número de unidades en los presupuestos a clientes NumberOfUnitsCustomerOrders=Número de unidades en los pedidos de clientes NumberOfUnitsCustomerInvoices=Número de unidades en las facturas a clientes NumberOfUnitsSupplierProposals=Número de unidades en los presupuestos de proveedores NumberOfUnitsSupplierOrders=Número de unidades en los pedidos a proveedores NumberOfUnitsSupplierInvoices=Número de unidades en las facturas de proveedores +NumberOfUnitsContracts=Número de unidades en los contratos EMailTextInterventionAddedContact=Se le ha asignado la intervención %s EMailTextInterventionValidated=Ficha intervención %s validada EMailTextInvoiceValidated=Factura %s ha sido validada. diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang index 26f341e862a..68d21c54e3c 100644 --- a/htdocs/langs/es_ES/products.lang +++ b/htdocs/langs/es_ES/products.lang @@ -159,7 +159,7 @@ SuppliersPrices=Precios de proveedores SuppliersPricesOfProductsOrServices=Precios de proveedores (productos o servicios) CustomCode=Código aduanero CountryOrigin=País de origen -Nature=Nature of produt (material/finished) +Nature=Naturaleza del producto (materia prima/acabado) ShortLabel=Etiqueta corta Unit=Unidad p=u. diff --git a/htdocs/langs/es_ES/salaries.lang b/htdocs/langs/es_ES/salaries.lang index 741fff7e2a4..48215b71f6e 100644 --- a/htdocs/langs/es_ES/salaries.lang +++ b/htdocs/langs/es_ES/salaries.lang @@ -18,4 +18,4 @@ LastSalaries=Últimos %s pagos salariales AllSalaries=Todos los pagos salariales SalariesStatistics=Estadísticas salariales # Export -SalariesAndPayments=Salaries and payments +SalariesAndPayments=Salarios y pagos diff --git a/htdocs/langs/es_ES/stocks.lang b/htdocs/langs/es_ES/stocks.lang index 017b503b915..7595b3f75ee 100644 --- a/htdocs/langs/es_ES/stocks.lang +++ b/htdocs/langs/es_ES/stocks.lang @@ -66,12 +66,12 @@ RuleForStockManagementIncrease=Regla para el aumento automático de stocks (el a DeStockOnBill=Decrementar los stocks físicos sobre las facturas/abonos a clientes DeStockOnValidateOrder=Decrementar el stock real en la validación los pedidos de clientes DeStockOnShipment=Decrementar stock real en la validación de envíos -DeStockOnShipmentOnClosing=Decrease real stocks when shipping is set to closed +DeStockOnShipmentOnClosing=Decrementar el stock real en el cierre del envío ReStockOnBill=Incrementar el stock real en la validación de las facturas/abonos de proveedores ReStockOnValidateOrder=Incrementar los stocks físicos en la aprobación de pedidos a proveedores ReStockOnDispatchOrder=Incrementa el stock real en el desglose manual de la recepción de los pedidos a proveedores -StockOnReception=Increase real stocks on validation of reception -StockOnReceptionOnClosing=Increase real stocks when reception is set to closed +StockOnReception=Incrementar el stock real en la validación de la recepción. +StockOnReceptionOnClosing=Incrementar el stock real en el cierre de la recepción OrderStatusNotReadyToDispatch=El pedido aún no está o no tiene un estado que permita un desglose de stock. StockDiffPhysicTeoric=Motivo de la diferencia entre valores físicos y teóricos NoPredefinedProductToDispatch=No hay productos predefinidos en este objeto. Por lo tanto no se puede realizar un desglose de stock. diff --git a/htdocs/langs/es_ES/website.lang b/htdocs/langs/es_ES/website.lang index 8e33637f714..58ebf80dece 100644 --- a/htdocs/langs/es_ES/website.lang +++ b/htdocs/langs/es_ES/website.lang @@ -98,8 +98,8 @@ NoWebSiteCreateOneFirst=Todavía no se ha creado ningún sitio web. Cree uno pri GoTo=Ir a DynamicPHPCodeContainsAForbiddenInstruction=Ha añadido código PHP dinámico que contiene la instrucción de PHP '%s' que está prohibida por defecto como contenido dinámico (vea las opciones ocultas WEBSITE_PHP_ALLOW_xxx para aumentar la lista de comandos permitidos). NotAllowedToAddDynamicContent=No tiene permiso para agregar o editar contenido dinámico de PHP en sitios web. Pida permiso o simplemente mantenga el código en las etiquetas php sin modificar. -ReplaceWebsiteContent=Reemplazar el contenido del sitio web +ReplaceWebsiteContent=Buscar o reemplazar el contenido del sitio web DeleteAlsoJs=¿Eliminar también todos los archivos javascript específicos de este sitio web? DeleteAlsoMedias=¿Eliminar también todos los archivos de medios específicos de este sitio web? # Export -MyWebsitePages=My website pages +MyWebsitePages=Mis páginas web diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang index c82b2821aa9..e31170475ac 100644 --- a/htdocs/langs/es_ES/withdrawals.lang +++ b/htdocs/langs/es_ES/withdrawals.lang @@ -69,8 +69,8 @@ WithBankUsingBANBIC=Para las cuentas bancarias que utilizan el código BAN/BIC/S BankToReceiveWithdraw=Cuenta bancaria para recibir la domiciliación CreditDate=Abonada el WithdrawalFileNotCapable=No es posible generar el fichero bancario de domiciliación para el país %s (El país no está soportado) -ShowWithdraw=Show Direct Debit Order -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. +ShowWithdraw=Mostrar domiciliación +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Sin embargo, si la factura tiene pendiente algún pago por domiciliación no procesado, no será marcada como pagada para permitir la gestión de la domiciliación. DoStandingOrdersBeforePayments=Esta pestaña le permite realizar una petición de domiciliación. Una vez realizadas las peticiones, vaya al menú Bancos->Domiciliaciones para gestionar la domiciliación. Al cerrar una domiciliación, los pagos de las facturas se registrarán automáticamente, y las facturas completamente pagadas serán cerradas. WithdrawalFile=Archivo de la domiciliación SetToStatusSent=Clasificar como "Archivo enviado" diff --git a/htdocs/langs/es_MX/accountancy.lang b/htdocs/langs/es_MX/accountancy.lang index 8150366c070..d712bd5c6c4 100644 --- a/htdocs/langs/es_MX/accountancy.lang +++ b/htdocs/langs/es_MX/accountancy.lang @@ -46,7 +46,6 @@ NewAccountingMvt=Nueva transacción NumMvts=Número de transacción ListeMvts=Lista de movimientos ErrorDebitCredit=Débito y Crédito no pueden tener un valor al mismo tiempo -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. Blocking error. TotalVente=Facturación total antes de impuestos TotalMarge=Margen de ventas total DescVentilExpenseReport=Consulte aquí la lista de líneas de reporte de gastos vinculadas (o no) a una cuenta de contabilidad de comisiones @@ -57,7 +56,7 @@ AccountingJournalType5=Informe de gastos AccountingJournalType9=Tiene nuevo ErrorAccountingJournalIsAlreadyUse=Este diario ya está en uso ExportDraftJournal=Exportar borrador de diario -Modelcsv_FEC=Export FEC (Art. L47 A) +DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos obligatorios de la instalación no se realizaron, favor de completar ExportNotSupported=El formato de exportación configurado no se admite en esta página NoJournalDefined=Ningún diario definido diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index 9747469d49d..6c0f8fd1ec9 100644 --- a/htdocs/langs/es_MX/admin.lang +++ b/htdocs/langs/es_MX/admin.lang @@ -87,7 +87,6 @@ SystemInfo=Información del sistema SystemToolsArea=Área de herramientas del sistema SystemToolsAreaDesc=Esta área provee funciones administrativas. Usar el menú para seleccionar la característica requerida. PurgeAreaDesc=Esta página te permite eliminar todos los archivos generados o guardados por Dolibarr (archivos temporales o todos los archivos en %s el directorio). Usar esta característica no es normalmente necesario. Esta es proporcionada como una solución alternativa para usuarios cuyo Dolibarr es hospedado por un proveedor que no ofrece permisos de borrado de archivos generados por el servidor web. -PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (sin riesgo de perder datos) PurgeRunNow=Purgar ahora PurgeNothingToDelete=Ningún directorio o archivos que desee eliminar. PurgeNDirectoriesDeleted= %s archivos o directorios eliminados. @@ -132,6 +131,8 @@ DictionaryProspectStatus=Estatus del cliente potencial Upgrade=Actualizar LDAPFieldFirstName=Nombre(s) AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications ConfFileMustContainCustom=Instalar o construir un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio %s . Para que este directorio sea procesado por Dolibarr, debe configurar su conf/conf.php para agregar las 2 líneas de directiva: $dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; MailToSendProposal=Propuestas de clientes MailToSendInvoice=Facturas de clientes diff --git a/htdocs/langs/es_PA/admin.lang b/htdocs/langs/es_PA/admin.lang index 5f6898087d4..a4a7a82aaa0 100644 --- a/htdocs/langs/es_PA/admin.lang +++ b/htdocs/langs/es_PA/admin.lang @@ -1,3 +1,5 @@ # Dolibarr language file - Source file is en_US - admin VersionUnknown=Desconocido +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_PE/accountancy.lang b/htdocs/langs/es_PE/accountancy.lang index c651b103468..24d7b8e4f3b 100644 --- a/htdocs/langs/es_PE/accountancy.lang +++ b/htdocs/langs/es_PE/accountancy.lang @@ -43,6 +43,5 @@ ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta de contabilidad por defecto para los produ Sens=Significado Codejournal=Periódico FinanceJournal=Periodo Financiero -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. Blocking error. TotalMarge=Margen total de ventas -Modelcsv_FEC=Export FEC (Art. L47 A) +DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. diff --git a/htdocs/langs/es_PE/admin.lang b/htdocs/langs/es_PE/admin.lang index cc415c6dda9..0f15310bb3a 100644 --- a/htdocs/langs/es_PE/admin.lang +++ b/htdocs/langs/es_PE/admin.lang @@ -5,4 +5,6 @@ Permission93=Eliminar impuestos e IGV DictionaryVAT=Tasa de IGV (Impuesto sobre ventas en EEUU) UnitPriceOfProduct=Precio unitario sin IGV de un producto OptionVatMode=Opción de carga de IGV +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_VE/admin.lang b/htdocs/langs/es_VE/admin.lang index 9d3c0f25368..4daf55ade15 100644 --- a/htdocs/langs/es_VE/admin.lang +++ b/htdocs/langs/es_VE/admin.lang @@ -32,4 +32,6 @@ WatermarkOnDraftSupplierProposal=Marca de agua en solicitudes de precios a prove LDAPMemberObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) LDAPUserObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) LDAPContactObjectClassListExample=Lista de objectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang index f06e0291439..69bb680becb 100644 --- a/htdocs/langs/et_EE/accountancy.lang +++ b/htdocs/langs/et_EE/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index 89b4189f8ab..bb4631de3fe 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -20,8 +20,8 @@ LocalSignature=Embedded local signature (less reliable) RemoteSignature=Remote distant signature (more reliable) FilesMissing=Missing Files FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files +FilesModified=Muudetud failid +FilesAdded=Lisatud failid FileCheckDolibarr=Check integrity of application files 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 @@ -35,7 +35,7 @@ LockNewSessions=Keela uued ühendused ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user %s will be able to connect after that. UnlockNewSessions=Luba uued ühendused YourSession=Sinu sessioon -Sessions=Users Sessions +Sessions=Kasutajate sessioonid WebUserGroup=Veebiserveri kasutaja/grupp NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (%s) may be protected (for example by OS permissions or by PHP directive open_basedir). DBStoringCharset=Märgistik, mida kasutatakse andmete salvestamiseks andmebaasi @@ -114,14 +114,14 @@ NotConfigured=Moodul/Rakendus pole veel seadistatud Active=Aktiivne SetupShort=Seadistamine OtherOptions=Muud seaded -OtherSetup=Other Setup +OtherSetup=Muud seadistused CurrentValueSeparatorDecimal=Kümnendkoha eraldaja CurrentValueSeparatorThousand=Tuhandete eraldaja Destination=Sihtkoht IdModule=Mooduli ID IdPermissions=Kasutajaõiguste ID LanguageBrowserParameter=Parameeter %s -LocalisationDolibarrParameters=Localization parameters +LocalisationDolibarrParameters=Lokaliseerimise parameetrid ClientTZ=Kliendi ajavöönd (kasutaja) ClientHour=Kliendi aeg (kasutaja) OSTZ=Serveri operatsioonisüsteemi ajavöönd @@ -133,15 +133,15 @@ YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to a HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server. Box=Vidin Boxes=Vidinad -MaxNbOfLinesForBoxes=Max. number of lines for widgets -AllWidgetsWereEnabled=All available widgets are enabled +MaxNbOfLinesForBoxes=Vidinate maksimaalne ridade arv +AllWidgetsWereEnabled=Kõik saadaval vidinad on lubatud PositionByDefault=Vaikimisi järjestus Position=Ametikoht 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. MenuForUsers=Kasutajatele mõeldud menüü -LangFile=File. Lang -Language_en_US_es_MX_etc=Language (en_US, es_MX, ...) +LangFile=.lang fail +Language_en_US_es_MX_etc=Keel (en_US,es_MX,...) System=Süsteem SystemInfo=Süsteemi info SystemToolsArea=Süsteemi tööriistade ala @@ -150,7 +150,7 @@ Purge=Tühjenda 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 temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. -PurgeDeleteTemporaryFilesShort=Delete temporary files +PurgeDeleteTemporaryFilesShort=Kustuta ajutised failid 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. PurgeRunNow=Tühjenda nüüd PurgeNothingToDelete=Pole ühtki faili ega kausta, mida kustutada. @@ -173,7 +173,7 @@ ImportMySqlDesc=To import a MySQL backup file, you may use phpMyAdmin via your h ImportPostgreSqlDesc=Varukoopia importimiseks pead kasutama käsureal pg_restore käsku: ImportMySqlCommand=%s %s < minuvarukoopia.sql ImportPostgreSqlCommand=%s %s minuvarukoopia.sql -FileNameToGenerate=Filename for backup: +FileNameToGenerate=Varukoopia faili nimi: Compression=Pakkimine CommandsToDisableForeignKeysForImport=Käsk, millega keelata välisvõtmete kasutamise keelamine importimisel CommandsToDisableForeignKeysForImportWarning=Kohustuslik, kui tahad tõmmist hiljem taastamiseks kasutada @@ -201,18 +201,18 @@ ModulesDesc=The modules/applications determine which features are available in t ModulesMarketPlaceDesc=Alla laadimiseks leiad rohkem mooduleid Internetist. 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. ModulesMarketPlaces=Otsi katsetuskärgus rakendusi/mooduleid -ModulesDevelopYourModule=Develop your own app/modules +ModulesDevelopYourModule=Arenda enda äpp/moodul 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=Uus -FreeModule=Free -CompatibleUpTo=Compatible with version %s +FreeModule=Vaba +CompatibleUpTo=Ühilduv versioooniga %s NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s). CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s). SeeInMarkerPlace=See in Market place -Updated=Updated +Updated=Uuendatud Nouveauté=Novelty -AchatTelechargement=Buy / Download +AchatTelechargement=Osta / Laadi alla GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s. DoliStoreDesc=DoliStore on ametlik Dolibarr ERP/CRM moodulite müümiseks kasutatav koht DoliPartnersDesc=List of companies providing custom-developed modules or features.
Note: since Dolibarr is an open source application, anyone experienced in PHP programming may develop a module. @@ -238,31 +238,31 @@ ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to Feature=Funktsionaalsus DolibarrLicense=Litsents Developpers=Arendajad/toetajad -OfficialWebSite=Dolibarr official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation / Wiki +OfficialWebSite=Dolibarri ametlik veebileht +OfficialWebSiteLocal=Kohalik veebisait (%s) +OfficialWiki=Dolibarri dokumentatsioon / Wiki OfficialDemo=Dolibarri online demo OfficialMarketPlace=Väliste moodulite ja lisade ametlik müügikoht OfficialWebHostingService=Viidatavad veebimajutuse pakkujad (pilveteenused) ReferencedPreferredPartners=Eelistatud partnerid -OtherResources=Other resources -ExternalResources=External Resources -SocialNetworks=Social Networks +OtherResources=Muud ressursid +ExternalResources=Välised ressursid +SocialNetworks=Sotsiaalvõrgud ForDocumentationSeeWiki=Kasutaja või arendaja dokumentatsiooni (KKK jms) võid leida
ametlikust Dolibarri Wikist:
%s ForAnswersSeeForum=Muude küsimuste või abi küsimise tarbeks saab kasutada Dolibarri foorumit:
%s HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr. HelpCenterDesc2=Some of these resources are only available in english. CurrentMenuHandler=Praegune menüü töötleja MeasuringUnit=Mõõtühik -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type +LeftMargin=Vasak serv +TopMargin=Ülemine serv +PaperSize=Paberi tüüp Orientation=Orientation SpaceX=Space X SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period +FontSize=Kirjasuurus +Content=Sisu +NoticePeriod=Teavitamisperiood NewByMonth=New by month Emails=E-postid EMailsSetup=E-posti seadistamine @@ -278,12 +278,12 @@ 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=Add employee users with email into allowed recipient list -MAIN_MAIL_SENDMODE=Email sending method -MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication) -MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication) -MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption -MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption -MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature +MAIN_MAIL_SENDMODE=E-posti saatmise viis +MAIN_MAIL_SMTPS_ID=SMTP-ID (kui saatev server nõuab autentimist) +MAIN_MAIL_SMTPS_PW=SMTP parool (kui saatev server nõuab autentimist) +MAIN_MAIL_EMAIL_TLS=Kasutage TLS (SSL) krüpteerimist +MAIN_MAIL_EMAIL_STARTTLS=Kasutage TLS (STARTTLS) krüpteerimist +MAIN_MAIL_EMAIL_DKIM_ENABLED=E-posti allkirja loomiseks kasutage DKIM-i MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing @@ -291,18 +291,18 @@ MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos) MAIN_SMS_SENDMODE=SMSi saatmiseks kasutatav meetod MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email) -UserEmail=User email -CompanyEmail=Company Email +UserEmail=Kasutaja e-post +CompanyEmail=Ettevõtte e-post FeatureNotAvailableOnLinux=Funktsionaalsus pole kasutatav Unixi laadsel süsteemil. Kontrolli oma sendmail programmi seadistust. 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 for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Moodulite seadistamine -ModulesSetup=Modules/Application setup +ModulesSetup=Moodulid / rakenduse seadistamine ModuleFamilyBase=Süsteem -ModuleFamilyCrm=Customer Relationship Management (CRM) -ModuleFamilySrm=Vendor Relationship Management (VRM) -ModuleFamilyProducts=Product Management (PM) -ModuleFamilyHr=Human Resource Management (HR) +ModuleFamilyCrm=Kliendisuhete haldamine (CRM) +ModuleFamilySrm=Müügisuhete haldamine (VRM) +ModuleFamilyProducts=Toote haldamine (PM) +ModuleFamilyHr=Personalijuhtimine (HR) ModuleFamilyProjects=Projektid/koostöö ModuleFamilyOther=Muu ModuleFamilyTechnic=Multimoodulite tööriistad @@ -314,8 +314,8 @@ ModuleFamilyInterface=Interfaces with external systems MenuHandlers=Menüüde töötlejad MenuAdmin=Menüü toimeti DoNotUseInProduction=Ära kasuta tootmispaigaldustes -ThisIsProcessToFollow=Upgrade procedure: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsProcessToFollow=Uuendusprotseduur: +ThisIsAlternativeProcessToFollow=See on käsitsi töödeldav alternatiivne seadistus: StepNb=Samm %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). @@ -325,13 +325,13 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se 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=Alternatively, you may upload the module .zip file package: -CurrentVersion=Dolibarri praegune versioo +YouCanSubmitFile=Teise võimalusena võite mooduli .zip failipaketi üles laadida: +CurrentVersion=Praegune Dolibarr versioon CallUpdatePage=Browse to the page that updates the database structure and data: %s. LastStableVersion=Viimane stabiilne versioon -LastActivationDate=Latest activation date -LastActivationAuthor=Latest activation author -LastActivationIP=Latest activation IP +LastActivationDate=Viimane aktiveerimise kuupäev +LastActivationAuthor=Viimane aktiveerimise autor +LastActivationIP=Viimane aktiveerimise IP UpdateServerOffline=Update server offline WithCounter=Manage a counter GenericMaskCodes=Sa võid sisestada suvalise numeratsiooni maski. Järgnevas maskis saab kasutada järgmisi silte:
{000000} vastab arvule, mida suurendatakse iga sündmuse %s korral. Sisesta niipalju nulle, kui soovid loenduri pikkuseks. Loendurile lisatakse vasakult alates niipalju nulle, et ta oleks maskiga sama pikk.
{000000+000} on eelmisega sama, kuid esimesele %s lisatakse nihe, mis vastab + märgist paremal asuvale arvule.
{000000@x} on eelmisega sama, ent kuuni x jõudmisel nullitakse loendur (x on 1 ja 12 vahel, või 0 seadistuses määratletud majandusaasta alguse kasutamiseks, või 99 loenduri nullimiseks iga kuu alguses). Kui kasutad seda funktsiooni ja x on 2 või kõrgem, siis on jada {yy}{mm} or {yyyy}{mm} nõutud.
{dd} päev (01 kuni 31).
{mm} kuu (01 kuni 12).
{yy}, {yyyy} või {y} aasta 2, 4 või 1 numbri kasutamisks.
@@ -351,40 +351,40 @@ ErrorCantUseRazIfNoYearInMask=Viga: ei saa kasutada seadet @ iga aasta alguses l ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Viga: ei saa kasutada võimalust @, kui maskis ei sisaldu jada {yy} {mm} või {yyyy} {mm}. UMask=Umask parameeter uute failide loomiseks Unix/Linux/BSD/Mac failisüsteemidel. UMaskExplanation=See parameeter võimaldab määratleda Dolibarri poolt loodud failide vaikimise õigused (näiteks üleslaadimise ajal)
See peab olema kaheksandsüsteemi väärtus (nt 0666 tähendab lubada kõigile lugemise ja kirjutamise õigused)
Windows serveris seda parameetrit ei kasutata. -SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and their organization +SeeWikiForAllTeam=Vaadake Wiki lehekülge, kus on nimekiri osalejatest ja nende organisatsioonist UseACacheDelay= Eksportimise vastuse vahemällu salvestamise viivitus (0 või tühi vahemälu mitte kasutamiseks) DisableLinkToHelpCenter=Peida link "Vajad abi või tuge" sisselogimise lehel -DisableLinkToHelp=Hide link to online help "%s" +DisableLinkToHelp=Peida link veebipõhisele abile " %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...). MinLength=Minimaalne pikkus LanguageFilesCachedIntoShmopSharedMemory=Jagatud mällu laetud .lang failid -LanguageFile=Language file -ExamplesWithCurrentSetup=Examples with current configuration +LanguageFile=Keelefail +ExamplesWithCurrentSetup=Praeguse konfiguratsiooniga näited ListOfDirectories=OpenDocument mallide kaustad 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 +NumberOfModelFilesFound=Nendes kataloogides leiduvate ODT / ODS-malli failide arv ExampleOfDirectoriesForModelGen=Süntaksi näited:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=
Enne dokumendimallide loomist loe wikis olevat dokumentatsiooni: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=Nimi/perekonnanimi ametikoht -DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values: +DescWeather=Juhtpaneelil kuvatakse järgmised pildid, kui hilisemate toimingute arv on järgmine: KeyForWebServicesAccess=Veebiteenuste kasutamise võti (parameeter "dolibarrkey" webservices moodulis) TestSubmitForm=Sisestamise testimiseks mõeldud vorm 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. ThemeDir=Kestade kataloog -ConnectionTimeout=Connection timeout +ConnectionTimeout=Ühenduse aegumine ResponseTimeout=Vastuse aegumine SmsTestMessage=Test sõnum __TELEFONIST__TELEFONI__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. +ModuleMustBeEnabledFirst=Selle funktsiooni kasutamiseks tuleb kõigepealt aktiveerida moodul %s . SecurityToken=URLide kaitsmiseks kasutatav võti 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 PDF=PDF -PDFDesc=Global options for PDF generation. +PDFDesc=PDFi globaalsed seaded. PDFAddressForging=Rules for address boxes -HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT -PDFRulesForSalesTax=Rules for Sales Tax / VAT -PDFLocaltax=Rules for %s +HideAnyVATInformationOnPDF=Peida kõik müügimaksu / käibemaksuga seotud andmed +PDFRulesForSalesTax=Müügimaksu / käibemaksu reeglid +PDFLocaltax=%s reeglid HideLocalTaxOnPDF=Hide %s rate in column Tax Sale HideDescOnPDF=Hide products description HideRefOnPDF=Hide products ref. @@ -400,28 +400,30 @@ OldVATRates=Vana käibemaksumäär NewVATRates=Uus käibemaksumäär PriceBaseTypeToChange=Muuda hindadel, mille baasväärtus on defineeritud kui MassConvert=Launch bulk conversion -String=Sõne +String=Sõna TextLong=Pikk tekst -HtmlText=Html text +HtmlText=HTML-tekst Int=Täisarv Float=Ujukomaarv DateAndTime=Kuupäev ja tund Unique=Unikaalne -Boolean=Boolean (one checkbox) +Boolean=Tõeväärtus (üks märkeruut) ExtrafieldPhone = Telefon ExtrafieldPrice = Hind ExtrafieldMail = E-post -ExtrafieldUrl = Url +ExtrafieldUrl = URL ExtrafieldSelect = Valikute nimekiri ExtrafieldSelectList = Vali tabelist -ExtrafieldSeparator=Separator (not a field) +ExtrafieldSeparator=Eraldaja (mitte väli) ExtrafieldPassword=Salasõna -ExtrafieldRadio=Radio buttons (one choice only) -ExtrafieldCheckBox=Checkboxes -ExtrafieldCheckBoxFromList=Checkboxes from table -ExtrafieldLink=Link to an object -ComputedFormula=Computed field +ExtrafieldRadio=Raadionupud (ainult üks valik) +ExtrafieldCheckBox=Märkeruudud +ExtrafieldCheckBoxFromList=Märkeruudud tabelist +ExtrafieldLink=Viide objektile +ComputedFormula=Arvutatud väli 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -437,23 +440,23 @@ RefreshPhoneLink=Värskenda linki LinkToTest=Kasutaja %s jaoks genereeriti klõpsatav link (testimiseks klõpsa telefoninumbril) KeepEmptyToUseDefault=Jäta tühjaks vaikeväärtuse kasutamiseks DefaultLink=Vaikimisi link -SetAsDefault=Set as default +SetAsDefault=Määra vaikimisi ValueOverwrittenByUserSetup=Hoiatus: kasutaja võib selle väärtuse üle kirjutada oma seadetega (iga kasutaja saab määratleda isikliku clicktodial URLi) ExternalModule=Väline moodul - paigaldatud kausta %s -BarcodeInitForthird-parties=Mass barcode init for third-parties +BarcodeInitForthird-parties=Mass-vöötkoodi loomine kolmandatele osapooltele BarcodeInitForProductsOrServices=Toodete/teenuste jaoks massiline vöötkoodide loomine või lähtestamine -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. +CurrentlyNWithoutBarCode=Praegu on teil %s kirje %s %s kohta ilma vöötkoodi määramata. InitEmptyBarCode=Järgmise %s tühja kirje lähtestamise väärtus EraseAllCurrentBarCode=Kustuta kõik hetkel kasutatavad vöötkoodide väärtused -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? +ConfirmEraseAllCurrentBarCode=Kas soovite kindlasti kõik praegused vöötkoodi väärtused kustutada? AllBarcodeReset=Kõik triipkoodi väärtused on eemaldatud NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup. -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 -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names +EnableFileCache=Luba faili vahemälu +ShowDetailsInPDFPageFoot=Lisage jalusesse rohkem üksikasju, näiteks ettevõtte aadress või juhtide nimed (ettevõtte registrikood, kapital ja KMKR number). +NoDetails=Jaluses ei ole täiendavaid andmeid +DisplayCompanyInfo=Kuva ettevõtte aadressi +DisplayCompanyManagers=Kuva haldajate nimed +DisplayCompanyInfoAndManagers=Kuva ettevõtte aadress ja haldaja nimed 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 @@ -463,24 +466,24 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email 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 (be careful also of your email provider's sending quota).
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider. WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: %s. -ClickToShowDescription=Click to show description -DependsOn=This module needs the module(s) -RequiredBy=This module is required by module(s) +ClickToShowDescription=Klõpsake kirjelduse nägemiseks +DependsOn=See moodul vajab moodulit +RequiredBy=See moodul on mooduli(te) poolt nõutav 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=Lubage vaikeväärtuste kohandamine +EnableOverwriteTranslation=Lubage ülekirjutatud tõlke kasutamine 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=Väli -ProductDocumentTemplates=Document templates to generate product document +ProductDocumentTemplates=Dokumendi mallid tootedokumendi loomiseks 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) -FilesAttachedToEmail=Attach file +FilesAttachedToEmail=Lisage fail SendEmailsReminders=Send agenda reminders by emails davDescription=Setup a WebDAV server DAVSetup=Setup of module DAV @@ -493,11 +496,11 @@ DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploade # Modules Module0Name=Kasutajad ja grupid Module0Desc=Users / Employees and Groups management -Module1Name=Third Parties -Module1Desc=Companies and contacts management (customers, prospects...) +Module1Name=Kolmandad isikud +Module1Desc=Ettevõtete ja kontaktide haldamine (kliendid, huvilised ...) Module2Name=Äritegevus Module2Desc=Äritegevuse seadistamine -Module10Name=Accounting (simplified) +Module10Name=Raamatupidamine (lihtsustatud) Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. Module20Name=Pakkumised Module20Desc=Pakkumiste haldamine @@ -505,16 +508,16 @@ Module22Name=Mass Emailings Module22Desc=Manage bulk emailing Module23Name=Energia Module23Desc=Energiatarbimise järelevalve -Module25Name=Sales Orders -Module25Desc=Sales order management +Module25Name=Müügitellimused +Module25Desc=Müügitellimuste haldamine Module30Name=Arved Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers -Module40Name=Vendors -Module40Desc=Vendors and purchase management (purchase orders and billing) +Module40Name=Tarnijad +Module40Desc=Tarnijad ja ostuhaldus (ostutellimused ja arveldus) Module42Name=Debug Logs Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. -Module49Name=Toimetid -Module49Desc=Toimetite haldamine +Module49Name=Toimetajad +Module49Desc=Toimetaja haldamine Module50Name=Tooted Module50Desc=Management of Products Module51Name=Masspostitus @@ -541,14 +544,14 @@ Module75Name=Kulud ja lähetused Module75Desc=Kulude ja lähetuste haldamine Module80Name=Saadetised Module80Desc=Shipments and delivery note management -Module85Name=Banks & Cash +Module85Name=Pangad ja kassa Module85Desc=Panga- ja kassakontode haldamine -Module100Name=External Site +Module100Name=Väline veebileht Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. Module105Name=Mailman ja SPIP Module105Desc=Mailman või SPIP liides liikme mooduli jaoks Module200Name=LDAP -Module200Desc=LDAP directory synchronization +Module200Desc=LDAP kausta sünkroniseerimine Module210Name=PostNuke Module210Desc=PostNuke integratsioon Module240Name=Andmete eksport @@ -578,7 +581,7 @@ Module610Name=Product Variants Module610Desc=Creation of product variants (color, size etc.) Module700Name=Annetused Module700Desc=Annetuste haldamine -Module770Name=Expense Reports +Module770Name=Kulude aruanne Module770Desc=Manage expense reports claims (transportation, meal, ...) Module1120Name=Vendor Commercial Proposals Module1120Desc=Request vendor commercial proposal and prices @@ -819,9 +822,9 @@ Permission532=Teenuste loomine/muutmine Permission534=Teenuste kustutamine Permission536=Peidetud teenuste vaatamine/haldamine Permission538=Teenuste eksport -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Annetuste vaatamine Permission702=Annetuste loomine/muutmine Permission703=Annetuste kustutamine @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -939,7 +942,7 @@ DictionaryActions=Types of agenda events DictionarySocialContributions=Types of social or fiscal taxes DictionaryVAT=Käibe- või müügimaksumäärad DictionaryRevenueStamp=Amount of tax stamps -DictionaryPaymentConditions=Payment Terms +DictionaryPaymentConditions=Maksetähtajad DictionaryPaymentModes=Payment Modes DictionaryTypeContact=Kontakti/Aadressi tüübid DictionaryTypeOfContainer=Website - Type of website pages/containers @@ -1082,7 +1085,7 @@ Delays_MAIN_DELAY_PROPALS_TO_BILL=Proposal not billed Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service to activate Delays_MAIN_DELAY_RUNNING_SERVICES=Expired service Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Unpaid vendor invoice -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Unpaid customer invoice +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tasumata müügiarve Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Pending bank reconciliation Delays_MAIN_DELAY_MEMBERS=Delayed membership fee Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check deposit not done @@ -1278,7 +1281,7 @@ SuggestPaymentByChequeToAddress=Suggest payment by check to FreeLegalTextOnInvoices=Vaba tekst arvetel WatermarkOnDraftInvoices=Vesimärk arvete mustanditel (puudub, kui tühi) PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Vendor payments +SuppliersPayment=Tarnija maksed SupplierPaymentSetup=Vendor payments setup ##### Proposals ##### PropalSetup=Pakkumiste mooduli seadistamine @@ -1777,14 +1780,14 @@ FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) ExpectedChecksum=Expected Checksum CurrentChecksum=Current Checksum ForcedConstants=Required constant values -MailToSendProposal=Customer proposals +MailToSendProposal=Müügipakkumised MailToSendOrder=Sales orders -MailToSendInvoice=Customer invoices +MailToSendInvoice=Müügiarved MailToSendShipment=Saadetised MailToSendIntervention=Sekkumised MailToSendSupplierRequestForQuotation=Quotation request MailToSendSupplierOrder=Purchase orders -MailToSendSupplierInvoice=Vendor invoices +MailToSendSupplierInvoice=Tarnija arved MailToSendContract=Lepingud MailToThirdparty=Kolmandad isikud MailToMember=Liikmed @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/et_EE/agenda.lang b/htdocs/langs/et_EE/agenda.lang index 0bd909eb402..8140922c4f7 100644 --- a/htdocs/langs/et_EE/agenda.lang +++ b/htdocs/langs/et_EE/agenda.lang @@ -5,16 +5,16 @@ Agenda=Päevakava TMenuAgenda=Päevakava Agendas=Päevakavad LocalAgenda=Sisemine kalender -ActionsOwnedBy=Event owned by +ActionsOwnedBy=Sündmus kuulub ActionsOwnedByShort=Omanik AffectedTo=Mõjutatud isik -Event=Sündmus +Event=Tegevus Events=Tegevused EventsNb=Tegevuste arv ListOfActions=Tegevuste nimekiri -EventReports=Event reports +EventReports=Tegevuste aruanded Location=Asukoht -ToUserOfGroup=To any user in group +ToUserOfGroup=Iga grupi kasutajale EventOnFullDay=Tegevus kestab kogu/kõik päeva(d) MenuToDoActions=Kõik lõpetamata tegevused MenuDoneActions=Kõik lõpetatud tegevused @@ -37,68 +37,68 @@ AgendaExtSitesDesc=See leht võimaldab määratleda väliseid kalendreid, mis sa ActionsEvents=Tegevused, mille kohta lisab Dolibarr automaatselt päevakavasse sündmuse. EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup. ##### Agenda event labels ##### -NewCompanyToDolibarr=Third party %s created -COMPANY_DELETEInDolibarr=Third party %s deleted -ContractValidatedInDolibarr=Contract %s validated -CONTRACT_DELETEInDolibarr=Contract %s deleted -PropalClosedSignedInDolibarr=Proposal %s signed -PropalClosedRefusedInDolibarr=Proposal %s refused +NewCompanyToDolibarr=Kolmasosapool %s loodud +COMPANY_DELETEInDolibarr=Kolmasosapool %s kustutatud +ContractValidatedInDolibarr=Leping %s kinnitatud +CONTRACT_DELETEInDolibarr=Leping %s kustutatud +PropalClosedSignedInDolibarr=Pakkumine %s kinnitatud +PropalClosedRefusedInDolibarr=Pakkumisest %s keelduti PropalValidatedInDolibarr=Pakkumine %s on kinnitatud -PropalClassifiedBilledInDolibarr=Proposal %s classified billed +PropalClassifiedBilledInDolibarr=Pakkumine %s arveldatud InvoiceValidatedInDolibarr=Arve %s on kinnitatud InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS InvoiceBackToDraftInDolibarr=Arve %s on tagasi mustandi staatuses InvoiceDeleteDolibarr=Arve %s on kustutatud -InvoicePaidInDolibarr=Invoice %s changed to paid -InvoiceCanceledInDolibarr=Invoice %s canceled -MemberValidatedInDolibarr=Member %s validated -MemberModifiedInDolibarr=Member %s modified -MemberResiliatedInDolibarr=Member %s terminated -MemberDeletedInDolibarr=Member %s deleted +InvoicePaidInDolibarr=Arve %s märgitud makstuks +InvoiceCanceledInDolibarr=Arve %s tühistatud +MemberValidatedInDolibarr=Liige %s kinnitatud +MemberModifiedInDolibarr=Liige %s muudetud +MemberResiliatedInDolibarr=Liige %s lõpetatud +MemberDeletedInDolibarr=Liige %s kustutatud MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted -ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classified billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened -ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status -ShipmentDeletedInDolibarr=Shipment %s deleted -OrderCreatedInDolibarr=Order %s created +ShipmentValidatedInDolibarr=Saadetis %s kinnitatud +ShipmentClassifyClosedInDolibarr=Saadetise %s arveldatud +ShipmentUnClassifyCloseddInDolibarr=Saadetis %s taasavatud +ShipmentBackToDraftInDolibarr=Saadetis %s on muudetud mustandiks +ShipmentDeletedInDolibarr=Saadetis %s kustutatud +OrderCreatedInDolibarr=Tellimus %s loodud OrderValidatedInDolibarr=Tellimus %s on kinnitatud -OrderDeliveredInDolibarr=Order %s classified delivered +OrderDeliveredInDolibarr=Tellimus %s tarnitud OrderCanceledInDolibarr=Tellimus %s on tühistatud -OrderBilledInDolibarr=Order %s classified billed -OrderApprovedInDolibarr=Tellimus %s on heaks kiidetud -OrderRefusedInDolibarr=Tellimus %s on tagasi lükatud +OrderBilledInDolibarr=Tellimus %s arveldatud +OrderApprovedInDolibarr=Tellimus %s kinnitatud +OrderRefusedInDolibarr=Tellimusest %s keelduti OrderBackToDraftInDolibarr=Tellimus %s on muudetud mustandiks ProposalSentByEMail=Commercial proposal %s sent by email -ContractSentByEMail=Contract %s sent by email -OrderSentByEMail=Sales order %s sent by email -InvoiceSentByEMail=Customer invoice %s sent by email -SupplierOrderSentByEMail=Purchase order %s sent by email -SupplierInvoiceSentByEMail=Vendor invoice %s sent by email -ShippingSentByEMail=Shipment %s sent by email -ShippingValidated= Shipment %s validated -InterventionSentByEMail=Intervention %s sent by email -ProposalDeleted=Proposal deleted -OrderDeleted=Order deleted -InvoiceDeleted=Invoice deleted -PRODUCT_CREATEInDolibarr=Product %s created -PRODUCT_MODIFYInDolibarr=Product %s modified -PRODUCT_DELETEInDolibarr=Product %s deleted -EXPENSE_REPORT_CREATEInDolibarr=Expense report %s created -EXPENSE_REPORT_VALIDATEInDolibarr=Expense report %s validated -EXPENSE_REPORT_APPROVEInDolibarr=Expense report %s approved -EXPENSE_REPORT_DELETEInDolibarr=Expense report %s deleted -EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused +ContractSentByEMail=Leping %s saadetud e-postiga +OrderSentByEMail=Müügitellimus %s saadetud e-postiga +InvoiceSentByEMail=Kliendi arve %s saadetud e-postiga +SupplierOrderSentByEMail=Ostutellimus %s saadetud e-postiga +SupplierInvoiceSentByEMail=Tarnija arve %s saadetud e-postiga +ShippingSentByEMail=Saadetise %s saadetud e-postiga +ShippingValidated= Saadetis %s kinnitatud +InterventionSentByEMail=Sekkumine %s saadetud e-postiga +ProposalDeleted=Pakkumine kustutatud +OrderDeleted=Tellimus kustutatud +InvoiceDeleted=Arve kustutatud +PRODUCT_CREATEInDolibarr=Toode %s loodud +PRODUCT_MODIFYInDolibarr=Toote %s muudetud +PRODUCT_DELETEInDolibarr=Toode %s kustutatud +EXPENSE_REPORT_CREATEInDolibarr=Kuluaruanne %s loodud +EXPENSE_REPORT_VALIDATEInDolibarr=Kuluaruanne %s kinnitatud +EXPENSE_REPORT_APPROVEInDolibarr=Kuluaruanne %s heaks kiidetud +EXPENSE_REPORT_DELETEInDolibarr=Kuluaruanne %s kustutatud +EXPENSE_REPORT_REFUSEDInDolibarr=Kuluaruanne %s keeldutud PROJECT_CREATEInDolibarr=Projekt %s on loodud -PROJECT_MODIFYInDolibarr=Project %s modified -PROJECT_DELETEInDolibarr=Project %s deleted -TICKET_CREATEInDolibarr=Ticket %s created -TICKET_MODIFYInDolibarr=Ticket %s modified -TICKET_ASSIGNEDInDolibarr=Ticket %s assigned -TICKET_CLOSEInDolibarr=Ticket %s closed -TICKET_DELETEInDolibarr=Ticket %s deleted +PROJECT_MODIFYInDolibarr=Projekti %s muudetud +PROJECT_DELETEInDolibarr=Projekt %s kustutatud +TICKET_CREATEInDolibarr=Pilet %s loodud +TICKET_MODIFYInDolibarr=Pilet %s muudetud +TICKET_ASSIGNEDInDolibarr=Pilet %s määratud +TICKET_CLOSEInDolibarr=Pilet %s suletud +TICKET_DELETEInDolibarr=Pilet %s kustutatud ##### End agenda events ##### AgendaModelModule=Document templates for event DateActionStart=Alguskuupäev @@ -109,18 +109,18 @@ AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not own AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=__PROJECT_ID__ to restrict output to actions linked to project __PROJECT_ID__. AgendaUrlOptionsNotAutoEvent=notactiontype=systemauto to exclude automatic events. -AgendaShowBirthdayEvents=Show birthdays of contacts -AgendaHideBirthdayEvents=Hide birthdays of contacts +AgendaShowBirthdayEvents=Näita kontaktide sünnipäevi +AgendaHideBirthdayEvents=Peida kontaktide sünnipäevad Busy=Hõivatud ExportDataset_event1=Päevakavas olevate tegevuste nimekiri DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6) -DefaultWorkingHours=Default working hours in day (Example: 9-18) +DefaultWorkingHours=Vaikimisi tööaeg (näide: 9-18) # External Sites ical ExportCal=Ekspordi kalender ExtSites=Impordi väline kalender ExtSitesEnableThisTool=Show external calendars (defined in global setup) in Agenda. Does not affect external calendars defined by users. ExtSitesNbOfAgenda=Kalendrite arv -AgendaExtNb=Calendar no. %s +AgendaExtNb=Kalendri nr. %s ExtSiteUrlAgenda=URL .ical failile ligi pääsemiseks ExtSiteNoLabel=Kirjeldus puudub VisibleTimeRange=Nähtav ajavahemik @@ -129,10 +129,10 @@ AddEvent=Loo sündmus MyAvailability=Minu saadavus ActionType=Sündmuse tüüp DateActionBegin=Sündmuse alguse kuupäev -ConfirmCloneEvent=Are you sure you want to clone the event %s? +ConfirmCloneEvent=Kas soovite kindlasti sündmuse kloonida %s ? RepeatEvent=Korda sündmust EveryWeek=Igal nädalal EveryMonth=Igal kuul DayOfMonth=Kuu päeval DayOfWeek=Nädala päeval -DateStartPlusOne=Date start + 1 hour +DateStartPlusOne=Kuupäeva algus + 1 tund diff --git a/htdocs/langs/et_EE/assets.lang b/htdocs/langs/et_EE/assets.lang index 0d459677948..0c25eb8ba5a 100644 --- a/htdocs/langs/et_EE/assets.lang +++ b/htdocs/langs/et_EE/assets.lang @@ -16,44 +16,44 @@ # # Generic # -Assets = Assets -NewAsset = New asset -AccountancyCodeAsset = Accounting code (asset) -AccountancyCodeDepreciationAsset = Accounting code (depreciation asset account) -AccountancyCodeDepreciationExpense = Accounting code (depreciation expense account) -NewAssetType=New asset type -AssetsTypeSetup=Asset type setup -AssetTypeModified=Asset type modified -AssetType=Asset type -AssetsLines=Assets +Assets = Varad +NewAsset = Uus vara +AccountancyCodeAsset = Raamatupidamise kood (vara) +AccountancyCodeDepreciationAsset = Raamatupidamise kood (amortisatsioonivara konto) +AccountancyCodeDepreciationExpense = Raamatupidamise kood (amortisatsioonikulu konto) +NewAssetType=Uus vara tüüp +AssetsTypeSetup=Varade tüübi seadistamine +AssetTypeModified=Varade tüüp on muudetud +AssetType=Vara tüüp +AssetsLines=Varad DeleteType=Kustuta -DeleteAnAssetType=Delete an asset type -ConfirmDeleteAssetType=Are you sure you want to delete this asset type? +DeleteAnAssetType=Kustuta vara tüüp +ConfirmDeleteAssetType=Kas soovite kindlasti selle vara tüübi kustutada? ShowTypeCard=Kuva tüüp '%s' # Module label 'ModuleAssetsName' -ModuleAssetsName = Assets +ModuleAssetsName = Varad # Module description 'ModuleAssetsDesc' -ModuleAssetsDesc = Assets description +ModuleAssetsDesc = Varade kirjeldus # # Admin page # -AssetsSetup = Assets setup -Settings = Settings -AssetsSetupPage = Assets setup page -ExtraFieldsAssetsType = Complementary attributes (Asset type) -AssetsType=Asset type -AssetsTypeId=Asset type id -AssetsTypeLabel=Asset type label -AssetsTypes=Assets types +AssetsSetup = Varade seadistamine +Settings = Seaded +AssetsSetupPage = Varade seadistamise leht +ExtraFieldsAssetsType = Täiendavad atribuudid (vara tüüp) +AssetsType=Vara tüüp +AssetsTypeId=Varade tüübi ID +AssetsTypeLabel=Varade tüübi silt +AssetsTypes=Varade liigid # # Menu # -MenuAssets = Assets -MenuNewAsset = New asset -MenuTypeAssets = Type assets +MenuAssets = Varad +MenuNewAsset = Uus vara +MenuTypeAssets = Tüüp varasid MenuListAssets = Loend MenuNewTypeAssets = Uus MenuListTypeAssets = Loend @@ -61,5 +61,5 @@ MenuListTypeAssets = Loend # # Module # -NewAssetType=New asset type -NewAsset=New asset +NewAssetType=Uus vara tüüp +NewAsset=Uus vara diff --git a/htdocs/langs/et_EE/banks.lang b/htdocs/langs/et_EE/banks.lang index 91cd2cc0f24..57eb2a49921 100644 --- a/htdocs/langs/et_EE/banks.lang +++ b/htdocs/langs/et_EE/banks.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - banks Bank=Pank -MenuBankCash=Banks | Cash -MenuVariousPayment=Miscellaneous payments -MenuNewVariousPayment=New Miscellaneous payment +MenuBankCash=Pangad | Kassa +MenuVariousPayment=Mitmesugused maksed +MenuNewVariousPayment=Uus mitmesugune makse BankName=Panga nimi FinancialAccount=Konto BankAccount=Pangakonto BankAccounts=Pangakontod -BankAccountsAndGateways=Bank accounts | Gateways +BankAccountsAndGateways=Pangakontod | Sisendid ShowAccount=Show Account AccountRef=Finantskonto viide AccountLabel=Finantskonto silt @@ -30,7 +30,7 @@ AllTime=From start Reconciliation=Vastavusse viimine RIB=Arvelduskonto number IBAN=IBAN number -BIC=BIC/SWIFT code +BIC=BIC / SWIFT kood SwiftValid=BIC/SWIFT valid SwiftVNotalid=BIC/SWIFT not valid IbanValid=BAN valid @@ -42,7 +42,7 @@ AccountStatementShort=Väljavõte AccountStatements=Kontoväljavõtted LastAccountStatements=Viimased kontoväljavõtted IOMonthlyReporting=Igakuine aruandlus -BankAccountDomiciliation=Bank address +BankAccountDomiciliation=Panga aadress BankAccountCountry=Konto riik BankAccountOwner=Konto omaniku nimi BankAccountOwnerAddress=Konto omaniku aadress @@ -76,7 +76,7 @@ TransactionsToConciliate=Entries to reconcile Conciliable=Saab viia vastavusse Conciliate=Vii vastavusse Conciliation=Vastavusse viimine -SaveStatementOnly=Save statement only +SaveStatementOnly=Salvesta ainult avaldus ReconciliationLate=Reconciliation late IncludeClosedAccount=Sh suletud tehingute summad OnlyOpenedAccount=Ainult avatud tehingud @@ -98,9 +98,9 @@ BankLineConciliated=Entry reconciled Reconciled=Reconciled NotReconciled=Not reconciled CustomerInvoicePayment=Kliendi laekumi -SupplierInvoicePayment=Vendor payment +SupplierInvoicePayment=Tarnija makse SubscriptionPayment=Liikmemaks -WithdrawalPayment=Debit payment order +WithdrawalPayment=Deebetmaksekorraldus SocialContributionPayment=Social/fiscal tax payment BankTransfer=Pangaülekanne BankTransfers=Pangaülekanded @@ -158,7 +158,7 @@ DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries DocumentModelBan=Template to print a page with BAN information. NewVariousPayment=New miscellaneous payment VariousPayment=Miscellaneous payment -VariousPayments=Miscellaneous payments +VariousPayments=Mitmesugused maksed ShowVariousPayment=Show miscellaneous payment AddVariousPayment=Add miscellaneous payment SEPAMandate=SEPA mandate diff --git a/htdocs/langs/et_EE/bills.lang b/htdocs/langs/et_EE/bills.lang index 3d3140d1068..e7d4083a6a7 100644 --- a/htdocs/langs/et_EE/bills.lang +++ b/htdocs/langs/et_EE/bills.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - bills Bill=Arve Bills=Arved -BillsCustomers=Customer invoices +BillsCustomers=Kliendi arved BillsCustomer=Müügiarve -BillsSuppliers=Vendor invoices +BillsSuppliers=Tarnija arved BillsCustomersUnpaid=Maksmata kliendiarved -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s -BillsSuppliersUnpaid=Unpaid vendor invoices -BillsSuppliersUnpaidForCompany=Unpaid vendors invoices for %s +BillsCustomersUnpaidForCompany=Tasumata kliendiarved %s +BillsSuppliersUnpaid=Tasumata tarnija arved +BillsSuppliersUnpaidForCompany=Tasumata tarnijate arved %s BillsLate=Hilinenud maksed BillsStatistics=Müügiiarvete statistika -BillsStatisticsSuppliers=Vendors invoices statistics +BillsStatisticsSuppliers=Tarnijate arved statistika DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter. DisabledBecauseNotErasable=Disabled because cannot be erased @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma arve InvoiceProFormaDesc=Proforma arve on õige arve kujuga, kuid ei oma raamatupidamislikku tähendust. InvoiceReplacement=Parandusarve InvoiceReplacementAsk=Parandusarve asendab arve -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Kreeditarve InvoiceAvoirAsk=Kreeditarve parandab arve InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). @@ -53,9 +53,9 @@ InvoiceLine=Arve rida InvoiceCustomer=Müügiarve CustomerInvoice=Müügiarve CustomersInvoices=Müügiarved -SupplierInvoice=Vendor invoice -SuppliersInvoices=Vendors invoices -SupplierBill=Vendor invoice +SupplierInvoice=Tarnija arve +SuppliersInvoices=Tarnijate arved +SupplierBill=Tarnija arve SupplierBills=ostuarved Payment=Makse PaymentBack=Tagasimakse @@ -65,12 +65,12 @@ PaymentsBack=Tagasimaksed paymentInInvoiceCurrency=in invoices currency PaidBack=Tagasi makstud DeletePayment=Kustuta makse -ConfirmDeletePayment=Are you sure you want to delete this payment? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount? -ConfirmConvertToReduc2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount? +ConfirmDeletePayment=Kas olete kindel, et soovite selle makse kustutada? +ConfirmConvertToReduc=Kas soovite selle %s konverteerida absoluutseks allahindluseks? +ConfirmConvertToReduc2=Summa salvestatakse kõigi allahindluste hulka ja seda saab kasutada selle kliendi jooksva või tulevase arve allahindlusena. +ConfirmConvertToReducSupplier=Kas soovite selle %s konverteerida absoluutseks allahindluseks? ConfirmConvertToReducSupplier2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. -SupplierPayments=Vendor payments +SupplierPayments=Tarnija maksed ReceivedPayments=Laekunud maksed ReceivedCustomersPayments=Klientidelt laekunud maksed PayedSuppliersPayments=Payments paid to vendors @@ -80,16 +80,16 @@ PaymentsReports=Maksete aruanded PaymentsAlreadyDone=Juba tehtud maksed PaymentsBackAlreadyDone=Juba tehtud tagasimaksed PaymentRule=Maksereegel -PaymentMode=Payment Type +PaymentMode=Makse tüüp PaymentTypeDC=Debit/Credit Card PaymentTypePP=PayPal -IdPaymentMode=Payment Type (id) -CodePaymentMode=Payment Type (code) -LabelPaymentMode=Payment Type (label) -PaymentModeShort=Payment Type -PaymentTerm=Payment Term -PaymentConditions=Payment Terms -PaymentConditionsShort=Payment Terms +IdPaymentMode=Makse tüüp (id) +CodePaymentMode=Makse tüüp (kood) +LabelPaymentMode=Makse tüüp (silt) +PaymentModeShort=Makse tüüp +PaymentTerm=Maksetähtaeg +PaymentConditions=Maksetähtajad +PaymentConditionsShort=Maksetähtajad PaymentAmount=Makse summa PaymentHigherThanReminderToPay=Makse on suurem, kui makstava summa jääk HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. @@ -98,7 +98,7 @@ ClassifyPaid=Liigita 'Makstud' ClassifyPaidPartially=Liigita 'Osaliselt makstud' ClassifyCanceled=Liigita 'Hüljatud' ClassifyClosed=Liigita 'Suletud' -ClassifyUnBilled=Classify 'Unbilled' +ClassifyUnBilled=Liigita „tasumata” CreateBill=Loo arve CreateCreditNote=Koosta kreeditarve AddBill=Create invoice or credit note @@ -248,7 +248,7 @@ DateInvoice=Arve kuupäev DatePointOfTax=Point of tax NoInvoice=Ühtki arvet ei ole ClassifyBill=Liigita arve -SupplierBillsToPay=Unpaid vendor invoices +SupplierBillsToPay=Tasumata tarnija arved CustomerBillsUnpaid=Maksmata kliendiarved NonPercuRecuperable=Tagastamatu SetConditions=Set Payment Terms @@ -404,7 +404,7 @@ VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s' PaymentTypeVIR=Pangaülekanne PaymentTypeShortVIR=Pangaülekanne PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypeShortPRE=Deebetmaksekorraldus PaymentTypeLIQ=Sularaha PaymentTypeShortLIQ=Sularaha PaymentTypeCB=Krediitkaart @@ -428,7 +428,7 @@ Residence=Aadress IBANNumber=IBAN account number IBAN=IBAN BIC=BIC/SWIFT -BICNumber=BIC/SWIFT code +BICNumber=BIC / SWIFT kood ExtraInfos=Lisainfo RegulatedOn=Reguleeritud üksusel ChequeNumber=Tšeki nr @@ -552,4 +552,4 @@ AutoFillDateFromShort=Set start date AutoFillDateTo=Set end date for service line with next invoice date AutoFillDateToShort=Set end date MaxNumberOfGenerationReached=Max number of gen. reached -BILL_DELETEInDolibarr=Invoice deleted +BILL_DELETEInDolibarr=Arve kustutatud diff --git a/htdocs/langs/et_EE/companies.lang b/htdocs/langs/et_EE/companies.lang index b9ef4ee0fa9..df5ddbd8531 100644 --- a/htdocs/langs/et_EE/companies.lang +++ b/htdocs/langs/et_EE/companies.lang @@ -28,7 +28,7 @@ AliasNames=Hüüdnimi (ärinimi, kaubamärk, ...) AliasNameShort=Alias Name Companies=Ettevõtted CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -38,7 +38,7 @@ ThirdPartyProspectsStats=Huvilised ThirdPartyCustomers=Kliendid ThirdPartyCustomersStats=Kliendid ThirdPartyCustomersWithIdProf12=Klient koos %s või %s -ThirdPartySuppliers=Vendors +ThirdPartySuppliers=Tarnijad ThirdPartyType=Third-party type Individual=Eraisik ToCreateContactWithSameName=Will automatically create a contact/address with same information as the third party under the third party. In most cases, even if your third party is a physical person, creating a third party alone is enough. @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Pole Vendor=Vendor +Supplier=Vendor AddContact=Uus kontakt AddContactAddress=Uus kontakt/aadress EditContact=Muuda kontakti diff --git a/htdocs/langs/et_EE/exports.lang b/htdocs/langs/et_EE/exports.lang index 69b4e92183d..0b020401a33 100644 --- a/htdocs/langs/et_EE/exports.lang +++ b/htdocs/langs/et_EE/exports.lang @@ -1,39 +1,39 @@ # Dolibarr language file - Source file is en_US - exports -ExportsArea=Ekspordi ala -ImportArea=Impordi ala -NewExport=Uus eksport -NewImport=Uus import +ExportsArea=Eksportimised +ImportArea=Import +NewExport=New Export +NewImport=New Import ExportableDatas=Eksporditav andmekogu ImportableDatas=Imporditav andmekog SelectExportDataSet=Vali eksporditav andmekog... SelectImportDataSet=Vali imporditav andmehulk... -SelectExportFields=Vali väljad, mida soovid eksportida või vali eelmääratletud ekspordi profiil -SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: +SelectExportFields=Choose the fields you want to export, or select a predefined export profile +SelectImportFields=Choose the source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: NotImportedFields=Lähtefaili väljad, mida ei impordita -SaveExportModel=Salvesta see ekspordi profiil, kui kavatsed seda hiljem uuesti kasutada... -SaveImportModel=Salvesta see impordi profiil, kui kavatsed seda hiljem uuesti kasutada... +SaveExportModel=Save your selections as an export profile/template (for reuse). +SaveImportModel=Save this import profile (for reuse) ... ExportModelName=Ekspordi profiili nimi -ExportModelSaved=Ekspordi profiil salvestatud nimega %s. +ExportModelSaved=Export profile saved as %s. ExportableFields=Eksporditavad väljad ExportedFields=Eksporditud väljad ImportModelName=Impordi profiili nimi -ImportModelSaved=Impordi profiil salvestatud nimega %s. +ImportModelSaved=Import profile saved as %s. DatasetToExport=Eksporditav andmekogu DatasetToImport=Impordi fail andmekogusse ChooseFieldsOrdersAndTitle=Vali väljade järjekord... FieldsTitle=Väljade nimed FieldTitle=Välja nimi -NowClickToGenerateToBuildExportFile=Nüüd vali liitboksis faili formaat ja klõpsa "Loo" nupul ekspordifaili loomiseks... -AvailableFormats=Saadaval olevad formaadid +NowClickToGenerateToBuildExportFile=Now, select the file format in the combo box and click on "Generate" to build the export file... +AvailableFormats=Available Formats LibraryShort=Teek Step=Samm -FormatedImport=Importimise assistent -FormatedImportDesc1=See ala võimaldab assistendi abil isikustatud andmete importimist sügavaid tehnilisi teadmisi omamata. -FormatedImportDesc2=Esimese sammuna tuleb valida imporditavate andmete liik, siis laetav fail ja seejärel laetavad väljad. -FormatedExport=Eksportimise assistent -FormatedExportDesc1=See ala võimaldab assistendi abil isikustatud andmete eksportimist sügavaid tehnilisi teadmisi omamata. -FormatedExportDesc2=Esimesena sammuna tuleb valide eelmääratletud andmekogu, seejärel sihtfailides soovitavad väljad ja nende järjekord. -FormatedExportDesc3=Kui eksporditavad andmed on valitud, saad valida sihtfaili formaadi, kuhu soovid andmeid eksportida. +FormatedImport=Import Assistant +FormatedImportDesc1=This module allows you to update existing data or add new objects into the database from a file without technical knowledge, using an assistant. +FormatedImportDesc2=First step is to choose the kind of data you want to import, then the format of the source file, then the fields you want to import. +FormatedExport=Export Assistant +FormatedExportDesc1=These tools allow the export of personalized data using an assistant, to help you in the process without requiring technical knowledge. +FormatedExportDesc2=First step is to choose a predefined dataset, then which fields you want to export, and in which order. +FormatedExportDesc3=When data to export are selected, you can choose the format of the output file. Sheet=Leht NoImportableData=Imporditavaid andmeid ei ole (ükski moodul ei luba andmete importimist) FileSuccessfullyBuilt=File generated @@ -44,16 +44,16 @@ LineDescription=Rea kirjeldus LineUnitPrice=Rea ühikuhind LineVATRate=Rea KM määr LineQty=Rea kogus -LineTotalHT=Rea summa käibemaksuta +LineTotalHT=Amount excl. tax for line LineTotalTTC=Rea summa käibemaksuga LineTotalVAT=Rea käibemaks TypeOfLineServiceOrProduct=Rea liik (0=toode, 1=teenus) FileWithDataToImport=Imporditavate andmetega fai FileToImport=Imporditav lähtefai -FileMustHaveOneOfFollowingFormat=Imporditav fail peab olema ühes järgnevatest formaatidest -DownloadEmptyExample=Lae alla tühja lähtefaili näidis -ChooseFormatOfFileToImport=Vali kasutatav impordi faili formaat, klõpsates pildil %s selle valimiseks.. -ChooseFileToImport=Lae fail üles, seejärel klõpsa pildil %s faili kasutamiseks impordi failina... +FileMustHaveOneOfFollowingFormat=File to import must have one of following formats +DownloadEmptyExample=Download template file with field content information (* are mandatory fields) +ChooseFormatOfFileToImport=Choose the file format to use as import file format by clicking on the %s icon to select it... +ChooseFileToImport=Upload file then click on the %s icon to select file as source import file... SourceFileFormat=Lähtefaili formaat FieldsInSourceFile=Lähtefailis olevad väljad FieldsInTargetDatabase=Dolibarri andmebaasi sihtväljad (rasvane=kohustuslik) @@ -68,66 +68,66 @@ FieldsTarget=Sihtväljad FieldTarget=Sihtväli FieldSource=Lähteväl NbOfSourceLines=Lähtefaili ridade arv -NowClickToTestTheImport=Kontrolli üle seadistatud importimise parameetrid. Kui nad on õiged, siis klõpsa nupul "%s" importimise simulatsiooni käivitamiseks (andmebaasis andmeid ei muudeta, vaid lihtsalt simuleeritakse muudatusi hetkel) -RunSimulateImportFile=Käivita importimise simulatsioo +NowClickToTestTheImport=Check that the file format (field and string delimiters) of your file matches the options shown and that you have omitted the header line, or these will be flagged as errors in the following simulation.
Click on the "%s" button to run a check of the file structure/contents and simulate the import process.
No data will be changed in your database. +RunSimulateImportFile=Run Import Simulation FieldNeedSource=This field requires data from the source file SomeMandatoryFieldHaveNoSource=Mõnedel kohustuslikel väljadel pole andmefailis allikat InformationOnSourceFile=Lähtefaili informatsioone InformationOnTargetTables=Sihtväljade informatsioon SelectAtLeastOneField=Vaheta ringi vähemalt üks lähteväli eksporditavate väljade veerus SelectFormat=Vali selle impordi faili formaat -RunImportFile=Käivita impordi fail -NowClickToRunTheImport=Kontrolli impordi simulatsiooni tulemust. Kui kõik on korras, käivita lõplik import. -DataLoadedWithId=All data will be loaded with the following import id: %s -ErrorMissingMandatoryValue=Kohustuslikud andmed on tühjad lähtefailis välja %s jaoks. -TooMuchErrors=On veel %s muud rida vigadega, kuid väljundit on piiratud. -TooMuchWarnings=On veel %s muud rida hoiatustega, kuid väljundit on piiratud. +RunImportFile=Import Data +NowClickToRunTheImport=Check the results of the import simulation. Correct any errors and re-test.
When the simulation reports no errors you may proceed to import the data into the database. +DataLoadedWithId=The imported data will have an additional field in each database table with this import id: %s, to allow it to be searchable in the case of investigating a problem related to this import. +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +TooMuchErrors=There are still %s other source lines with errors but output has been limited. +TooMuchWarnings=There are still %s other source lines with warnings but output has been limited. EmptyLine=Tühi rida (ära visata) -CorrectErrorBeforeRunningImport=Enne lõpliku impordi käivitamist pead esmalt parandama kõik vead. +CorrectErrorBeforeRunningImport=You must correct all errors before running the definitive import. FileWasImported=Fail on imporditud numbriga %s. -YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field import_key='%s'. +YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field import_key='%s'. NbOfLinesOK=Hoiatuste ja vigadeta ridu: %s. NbOfLinesImported=Edukalt imporditud ridu: %s. DataComeFromNoWhere=Sisestavat väärtust ei ole mitte kuskil lähtefailis. DataComeFromFileFieldNb=Sisestav väärtus pärineb lähtefaili %s. väljalt. -DataComeFromIdFoundFromRef=Väärtust, mis pärineb lähtefaili %s. realt, kasutatakse emaobjekti ID leidmiseks (selle kindlustamiseks, et objekt %s, millel on lähtefaili viide, oleks Dolibarris olemas). -DataComeFromIdFoundFromCodeId=Code that comes from field number %s of source file will be used to find id of parent object to use (So the code from source file must exists into dictionary %s). Note that if you know id, you can also use it into source file instead of code. Import should work in both cases. +DataComeFromIdFoundFromRef=Value that comes from field number %s of source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=Code that comes from field number %s of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=Lähtefailist pärinevad andmed sisestatakse järgmisse välja: -DataIDSourceIsInsertedInto=Lähtefailis leitud emaobjekti ID sisestatakse järgmisse välja: +DataIDSourceIsInsertedInto=The id of parent object was found using the data in the source file, will be inserted into the following field: DataCodeIDSourceIsInsertedInto=Koodist leitud emarea ID sisestatakse järgmisse välja: SourceRequired=Andmeväärtus on kohustuslik SourceExample=Võimaliku andmeväärtuse näide ExampleAnyRefFoundIntoElement=Iga elemendi %s jaoks leitud viide ExampleAnyCodeOrIdFoundIntoDictionary=Any code (or id) found into dictionary %s -CSVFormatDesc=Comma Separated Value faili formaat (.csv).
See on tekstifaili formaat, kus väljad on eraldatud eraldajaga [ %s ]. Kui välja sisus leidub eraldaja, eraldatakse väli teistest väljadest eraldusssümboliga [ %s ]. Eraldussümboli paomärk on [ %s ]. -Excel95FormatDesc=Excel faili formaat (.xls)
Excel 95 formaat (BIFF5). -Excel2007FormatDesc=Excel faili formaat (.xlsx)
Excel 2007 formaat (SpreadsheetML). +CSVFormatDesc=Comma Separated Value file format (.csv).
This is a text file format where fields are separated by a separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ]. +Excel95FormatDesc=Excel file format (.xls)
This is the native Excel 95 format (BIFF5). +Excel2007FormatDesc=Excel file format (.xlsx)
This is the native Excel 2007 format (SpreadsheetML). TsvFormatDesc=Tab Separated Value faili formaat (.tsv)
See on tekstifaili formaat, kus väljad on eraldatud tabulaatoriga [tab]. ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). -CsvOptions=CSV lisavalikud -Separator=Eraldaja -Enclosure=Aedik +CsvOptions=CSV format options +Separator=Field Separator +Enclosure=String Delimiter SpecialCode=Erikood ExportStringFilter=%% allows replacing one or more characters in the text -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD: filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD: filters on all previous years/months/days ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number -ImportFromToLine=Import line numbers (from - to) -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines -KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +ImportFromToLine=Limit range (From - To) eg. to omit header line(s) +SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines.
If the header lines are NOT omitted, this will result in multiple errors in the Import Simulation. +KeepEmptyToGoToEndOfFile=Keep this field empty to process all lines to the end of the file. +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for an UPDATE import 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=Arvutatud väli ## filters SelectFilterFields=Kui soovid mõnede väärtuste põhjal filtreerida, siis sisesta nad siia. FilteredFields=Filtreeritav väl FilteredFieldsValues=Filtri väärtus FormatControlRule=Format control rule ## imports updates -KeysToUseForUpdates=Key to use for updating data +KeysToUseForUpdates=Key (column) to use for updating existing data NbInsert=Number of inserted lines: %s NbUpdate=Number of updated lines: %s MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/et_EE/holiday.lang b/htdocs/langs/et_EE/holiday.lang index ecb10d79497..a811df5093a 100644 --- a/htdocs/langs/et_EE/holiday.lang +++ b/htdocs/langs/et_EE/holiday.lang @@ -107,7 +107,7 @@ UpdateConfCPOK=Edukalt uuendatud. Module27130Name= Management of leave requests Module27130Desc= Management of leave requests ErrorMailNotSend=E-kirja saatmisel tekkis viga: -NoticePeriod=Notice period +NoticePeriod=Teavitamisperiood #Messages HolidaysToValidate=Validate leave requests HolidaysToValidateBody=Below is a leave request to validate diff --git a/htdocs/langs/et_EE/interventions.lang b/htdocs/langs/et_EE/interventions.lang index 304f7a1f4bb..f9a8bb06dfe 100644 --- a/htdocs/langs/et_EE/interventions.lang +++ b/htdocs/langs/et_EE/interventions.lang @@ -35,7 +35,7 @@ InterventionValidatedInDolibarr=Sekkumine %s on kinnitatud InterventionModifiedInDolibarr=Intervention %s modified InterventionClassifiedBilledInDolibarr=Intervention %s set as billed InterventionClassifiedUnbilledInDolibarr=Intervention %s set as unbilled -InterventionSentByEMail=Intervention %s sent by email +InterventionSentByEMail=Sekkumine %s saadetud e-postiga InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang index 61150076e73..045be9f36b2 100644 --- a/htdocs/langs/et_EE/main.lang +++ b/htdocs/langs/et_EE/main.lang @@ -936,11 +936,11 @@ SearchIntoUsers=Kasutajad SearchIntoProductsOrServices=Products or services SearchIntoProjects=Projektid SearchIntoTasks=Ülesanded -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Vendor invoices +SearchIntoCustomerInvoices=Kliendi arved +SearchIntoSupplierInvoices=Tarnija arved SearchIntoCustomerOrders=Sales orders SearchIntoSupplierOrders=Purchase orders -SearchIntoCustomerProposals=Customer proposals +SearchIntoCustomerProposals=Kliendi pakkumised SearchIntoSupplierProposals=Vendor proposals SearchIntoInterventions=Sekkumised SearchIntoContracts=Lepingud diff --git a/htdocs/langs/et_EE/orders.lang b/htdocs/langs/et_EE/orders.lang index 2125c5f13af..8c792f3fc7b 100644 --- a/htdocs/langs/et_EE/orders.lang +++ b/htdocs/langs/et_EE/orders.lang @@ -17,7 +17,7 @@ SupplierOrder=Purchase order SuppliersOrders=Purchase orders SuppliersOrdersRunning=Current purchase orders CustomerOrder=Sales Order -CustomersOrders=Sales Orders +CustomersOrders=Müügitellimused CustomersOrdersRunning=Current sales orders CustomersOrdersAndOrdersLines=Sales orders and order details OrdersDeliveredToBill=Sales orders delivered to bill diff --git a/htdocs/langs/et_EE/other.lang b/htdocs/langs/et_EE/other.lang index 0af94d6bd39..6a0e6fbdcd2 100644 --- a/htdocs/langs/et_EE/other.lang +++ b/htdocs/langs/et_EE/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Sekkumine %s on kinnitatud. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/et_EE/products.lang b/htdocs/langs/et_EE/products.lang index 5eb54c89bf3..d488dbb1fea 100644 --- a/htdocs/langs/et_EE/products.lang +++ b/htdocs/langs/et_EE/products.lang @@ -79,7 +79,7 @@ ErrorProductAlreadyExists=Toode viitega %s on juba olemas. ErrorProductBadRefOrLabel=Vale viite või nime väärtus. ErrorProductClone=Toote või teenuse kloonimisel tekkis probleem. ErrorPriceCantBeLowerThanMinPrice=Error, price can't be lower than minimum price. -Suppliers=Vendors +Suppliers=Tarnijad SupplierRef=Vendor SKU ShowProduct=Näita toodet ShowService=Näita teenust diff --git a/htdocs/langs/et_EE/projects.lang b/htdocs/langs/et_EE/projects.lang index 07a4497af69..55e25fe2ef9 100644 --- a/htdocs/langs/et_EE/projects.lang +++ b/htdocs/langs/et_EE/projects.lang @@ -146,7 +146,7 @@ ErrorShiftTaskDate=Ülesande kuupäeva ei ole võimalik nihutada vastavalt uuele ProjectsAndTasksLines=Projektid ja ülesanded ProjectCreatedInDolibarr=Projekt %s on loodud ProjectValidatedInDolibarr=Project %s validated -ProjectModifiedInDolibarr=Project %s modified +ProjectModifiedInDolibarr=Projekti %s muudetud TaskCreatedInDolibarr=Ülesanne %s on loodud TaskModifiedInDolibarr=Ülesannet %s on muudetud TaskDeletedInDolibarr=Ülesanne %s on kustutatud diff --git a/htdocs/langs/et_EE/suppliers.lang b/htdocs/langs/et_EE/suppliers.lang index a68a5d7df7b..715be4d8897 100644 --- a/htdocs/langs/et_EE/suppliers.lang +++ b/htdocs/langs/et_EE/suppliers.lang @@ -1,6 +1,6 @@ -# Dolibarr language file - Source file is en_US - suppliers -Suppliers=Vendors -SuppliersInvoice=Vendor invoice +# Dolibarr language file - Source file is en_US - vendors +Suppliers=Tarnijad +SuppliersInvoice=Tarnija arve ShowSupplierInvoice=Show Vendor Invoice NewSupplier=New vendor History=Ajalugu @@ -15,15 +15,15 @@ SomeSubProductHaveNoPrices=Mõnedel alatoodetel pole määratletud hinda AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price SupplierPrices=Vendor prices -ReferenceSupplierIsAlreadyAssociatedWithAProduct=See hankija viide on juba seotud viitega: %s +ReferenceSupplierIsAlreadyAssociatedWithAProduct=This vendor reference is already associated with a product: %s NoRecordedSuppliers=No vendor recorded -SupplierPayment=Vendor payment +SupplierPayment=Tarnija makse SuppliersArea=Vendor area RefSupplierShort=Ref. vendor Availability=Kättesaadavus -ExportDataset_fournisseur_1=Vendor invoices list and invoice lines +ExportDataset_fournisseur_1=Vendor invoices and invoice details ExportDataset_fournisseur_2=Vendor invoices and payments -ExportDataset_fournisseur_3=Purchase orders and order lines +ExportDataset_fournisseur_3=Purchase orders and order details ApproveThisOrder=KIida see tellimuse heaks ConfirmApproveThisOrder=Are you sure you want to approve order %s? DenyingThisOrder=Deny this order @@ -35,13 +35,13 @@ ListOfSupplierProductForSupplier=List of products and prices for vendor %s%s
' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/eu_ES/accountancy.lang b/htdocs/langs/eu_ES/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/eu_ES/accountancy.lang +++ b/htdocs/langs/eu_ES/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang index 085961d7266..0fdb64717fc 100644 --- a/htdocs/langs/eu_ES/admin.lang +++ b/htdocs/langs/eu_ES/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/eu_ES/bills.lang b/htdocs/langs/eu_ES/bills.lang index 0a03fd602e1..a90736a569d 100644 --- a/htdocs/langs/eu_ES/bills.lang +++ b/htdocs/langs/eu_ES/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/eu_ES/companies.lang b/htdocs/langs/eu_ES/companies.lang index d4d0feb7315..6bd24295b2d 100644 --- a/htdocs/langs/eu_ES/companies.lang +++ b/htdocs/langs/eu_ES/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Kontaktua sortu AddContactAddress=Kontua/helbidea sortu EditContact=Kontaktua editatu diff --git a/htdocs/langs/eu_ES/other.lang b/htdocs/langs/eu_ES/other.lang index 2a38543e942..aa113e36f92 100644 --- a/htdocs/langs/eu_ES/other.lang +++ b/htdocs/langs/eu_ES/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/eu_ES/website.lang b/htdocs/langs/eu_ES/website.lang index 4771a5d59d2..df217e77646 100644 --- a/htdocs/langs/eu_ES/website.lang +++ b/htdocs/langs/eu_ES/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang index a95ab2d55ed..5b8e93fda67 100644 --- a/htdocs/langs/fa_IR/accountancy.lang +++ b/htdocs/langs/fa_IR/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=نتیجۀ حساب حساب‌داری (ضرر) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=دفتر خاتمه ACCOUNTING_ACCOUNT_TRANSFER_CASH=حساب‌حسابداری انتقال پول بین‌بانکی +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=حساب حساب‌داری انتظار DONATION_ACCOUNTINGACCOUNT=حساب حساب‌داری ثبت کمک و اعانه diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index 14062d810cf..a142ce5e7c8 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -149,7 +149,7 @@ SystemToolsAreaDesc=این واحد دربردارندۀ عوامل مربوط Purge=پاک‌کردن PurgeAreaDesc=این صفحه به شما امکان حذف همۀ فایل‌های تولید شده و ذخیره شده با Dolibarr  را می‌دهد (فایل‌های موقت یا همۀ فایلهای داخل پوشۀ %s). استفاده از این قابلیت در شرایط عادی ضرورتی ندارد. این قابلیت برای کاربرانی ایجاد شده است که میزبانی وبگاه آن‌ها امکان حذف فایل‌هائی که توسط سرویس‌دهندۀ وب ایجاد شده‌اند را نداده است. PurgeDeleteLogFile=حذف فایل‌های گزارش‌کار، شامل تعریف %s برای واحد گزارش‌کار سامانه Syslog (خطری برای از دست دادن داده‌ها نیست) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=حذف همۀ فایل‌های موقت (خطری برای از دست دادن داده نیست). توجه: حذف تها در صورتی انجام خواهد شد که پوشۀ موقتی حداقل 24 ساعت قبل ساخته شده باشد. PurgeDeleteTemporaryFilesShort=حذف فایل‌های موقتی PurgeDeleteAllFilesInDocumentsDir=حذف همۀ فایل‌های موجود در پوشۀ: %s.
این باعث حذف همۀ مستنداتی که به عناصر مربوطند ( اشخاص سوم، صورت‌حساب و غیره ...)، فایل‌هائی که به واحد ECM ارسال شده‌اند، نسخه‌برداری‌های پشتیبان بانک‌داده و فایل‌های موقت خواهد شد. PurgeRunNow=شروع پاک‌سازی @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=کادرهای تائید از جدول ExtrafieldLink=پیوند به یک شیء ComputedFormula=بخش محاسبه شده ComputedFormulaDesc=شما در این‌جا می‌توانید فرمولی را با استفاده از مشخصات دیگر یک شیء یا یک کدنوشتۀ PHP وارد نمائید تا یک مقدار پویای محاسبه شده دریافت کنید. شما همچنین می‌توانید هر فرمول سازگار با PHP را به همراه عمل‌گر شرطی "?" وارد نمائید که با یک شیء سراسری دنبال می‌شود: $db, $conf, $langs, $mysoc, $user, $object.
هشدار: تنها برخی از مشخصه‌های $object در دسترس هستند. در صورتی که نیاز به مشخصه‌ای دارید که بارگذاری نشده، همانند مثال دوم خودتان باید آن شیء را واکشی نمائید.
استفاده از یک بخش محاسبه‌شده به آن معناست که شما قادر نخواهید باد که از رابط خود مقداری وارد نمائید. همچنین، در صورتی که یک خطای نوشتاری وجود داشته باشد، فرمول هیچ چیز ارائه نخواهد داد.

مثال فرمول:
$object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

مثال بارگذاری مجدد شیئ
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

مثال دیگر فرمول برای اازام به بارگذاری شیء و والد آن:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' +Computedpersistent=بخش محاسبه‌شدۀ فروشگاه +ComputedpersistentDesc=بخش‌های محاسبه‌شدۀ اضافی در پایگاه داده ذخیره خواهند شد، به‌هرحال مقدار تنها در زمانی دوباره محاسبه خواهد شد که شیء این بخش تغییر کند. در صورتی که بخش محاسبه‌شده به سایر اشیاء یا داده‌های سراسری وابسته باشد، این مقدار ممکن است خطا باشد!! ExtrafieldParamHelpPassword=خالی رها کردن این بخش به معنای این است که مقدار بدون حفاظت ذخیره خواهد شد (بخش مربوطه باید با یک ستاره روی صفحه پنهان باشد).
'auto' را برای استفاده از قواعد حفاظت برای ذخیرۀ گذرواژه در بانک‌داده ذخیره کنید (مقدار خوانده شده کدبندی شده است و امکان خواندن مقدار اصلی دیگر وجود نخواهد داشت) ExtrafieldParamHelpselect=فهرست مقادیر باید به صورت سطور به شکل key,value باشد (که key نمی‌تواند برابر با 0 باشد.)

برای مثال:
1,value1
2,value2
code3,value3
...

برای برخورداری از فهرستی وابسته به فهرست دیگری از مشخصات تکمیلی:
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

برای برخورداری از یک فهرست وابسته به یک فهرست دیگر:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=فهرست مقادیر باید سطوری به شکل key,value باشد که (که key نمی‌تواند برابر با 0 باشد)

برای مثال:
1,value1
2,value2
3,value3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=فهرست مقادیر باید سطوری به شکل ExtrafieldParamHelpsellist=فهرست مقادیری که از یک جدول گرفته می‌شود
روش درج: table_name:label_field:id_field::filter
مثال: c_typent:libelle:id::filter

- idfilter برای primary int key ضروری است
- فیلتر می‌تواند یک آزمایش ساده باشد (مثلا active=1) تا صرفا مقدار فعال را نمایش دهد.
شما همچنین در فیلتر می‌توانید از $ID$ استفاده کنید که برابر با شناسۀ کنونی شیء کنونی است
برای انجام یک جستار SELECT در فیلتر از $SEL$ استفاده نمائید.
در صورتی که بخواهید بخش‌های دیگر - extrafields را فیلتر کنید از این روش استفاده کنید extra.fieldcode=... (که fieldcode درآن کد مربوط به آن extrafield است)

برای دریافت یک فهرست بسته به یک فهرست تکمیلی از مشخصه‌های دیگر:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

برای دریافت فهرستی که مبتنی بر فهرستی دیگر است:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=فهرست مقادیری که از یک جدول گرفته می‌شود
روش درج: table_name:label_field:id_field::filter
مثال: c_typent:libelle:id::filter

filter می‌تواند یک آزمایش ساده باشد (مثال active=1) برای نمایش مقدار فعال
شما همچنین می‌توانید از $ID$ در فیلتر استفاده نمائید که شناسۀ کنونی شیء فعلی است
برای انجام جستار SELECTدر فیلتر از $SEL$
اگر بخواهید از extrafields در فیلتر استفاده نمائید، از روش‌درج extra.fieldcode=... استفاده نمائید، (که کد فیلتر، همان کد extrafiled است)

باری دریافت ک فهرست وابسته به یک فهرست تکمیلی از مشخصه‌ها دیگر:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

برای دریافت یک فهرست وابسته به یک فهرست دیگر:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=مؤلفه‌ها باید به شکل ObjectName:Classpath باشد،
روش درج: ObjectName:Classpath
مثال‌ها:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=برای جداکنندۀ ساده خالی بگذارید
برای یک جداکنندۀ نزولی به 1 تنظیم کنید (به طور پیش‌فرض باز است)
برای یک جداکنندۀ نزولی به 2 تنظیم کنید ( به طور پیش‌فرض نزول کرده است) LibraryToBuildPDF=کتابخانۀ قابل استفاده برای تولید PDF LocalTaxDesc=برخی کشورها دو یا سه سطر مالیات در خصوص هر سطر از صورت‌حساب دارند. در این حالت، نوع مالیات دوم و سوم و نرخ آن را تعیین کنید. انواع قابل درج عبارتند از:
1: مالیات محلی به محصولات و خدمات بدون مالیات‌برارزش‌افزوده اختصاص داده می‌شود (مالیات محلی بر مبنای مبلغ بدون مالیات بر ارزش افزوده محاسبه می‌شود)
2: مالیات محلی بر محصولات و خدمات به‌همراه مالیات‌بر‌ارزش‌افزوده (مالیات‌محلی بر مبنای مبلغ + مالیات اصلی محاسبه می‌شود)
3: مالیات محلی بر محصولات بدون مالیات بر ارزش افزوده (مالیات محلی بر اساس مبلع بدون مالیات حساب می‌شود)
4: مالیت محلی بر محصولات به همراه مالیات بر ارزش افزوده محاسبه می‌شود (مالیات محلی بر اساس مبلغ + مالیات بر ارزش افزوده اصلی محاسبه می‌شود)
5: مالیات محلی بر بر خدمات بدون مالیات بر ارزش افزوده محاسبه می‌شود (مالیات محلی بر اساس مبلغ بدون مالیات بر ارزش افزوده)
6: مالیات محلی بر خدمات و شامل مالیات بر ارزش افزوده ( مالیات محلی بر اساس مبلغ + مالیات بر ارزش افزوده) SMS=پیامک @@ -804,7 +807,7 @@ Permission401=ملاحظۀ تخفیف‌ها Permission402=ساخت/ویرایش تخفیف‌ها Permission403=اعتباردهی تخفیف‌ها Permission404=حذف تخفیف‌ها -Permission430=Use Debug Bar +Permission430=استفاده از نوار اشکال‌یابی Permission511=ملاحظۀ پرداخت حقوق‌ها Permission512=ساخت/ویرایش پرداخت حقوق Permission514=حذف پرداخت حقوق @@ -819,9 +822,9 @@ Permission532=ایجاد/ویرایش خدمات Permission534=حذف خدمات Permission536=مشاهده/مدیریت خدمات پنهان Permission538=صادرکردن خدمات -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=خواندن صورت‌حساب‌های مواد +Permission651=ایجاد/به‌هنگام سازی صورت‌حساب‌های موا +Permission652=حذف صورت‌حساب‌های مواد Permission701=ملاحظۀ کمک‌های‌مالی Permission702=ایجاد/ویرایش کمک‌های‌مالی Permission703=حذف کمک‌های‌مالی @@ -841,12 +844,12 @@ Permission1101=ملاحظۀ سفارشات تحویل Permission1102=ساخت/ویرایش سفارشات تحویل Permission1104=اعتباردهی سفارشات تحویل Permission1109=حذف سفارشات تحویل -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 +Permission1121=خواندن پیشنهادهای تامین کنندگان +Permission1122=ساخت/ویرایش پیشنهاد‌های تامین‌کنندگان +Permission1123=تائید اعتبار پیشنهادهای تامین‌کنندگان +Permission1124=ارسال پیشنهادهای تامین کنندگان +Permission1125=حذف پیشنهادهای تامین‌کنندگان +Permission1126=بستن درخواست قیمت تامین کنندگان Permission1181=ملاحظۀ تامین‌کنندگان Permission1182=خواندن سفارشات خرید Permission1183=ساخت/ویرایش سفارشات خرید @@ -882,15 +885,15 @@ Permission2503=تسلیم یا حذف مستندات Permission2515=تنظیم پوشه‌های مستندات Permission2801=استفاده از متقاضی FTP در حالت خواندنی (منحصر به مرور و دریافت) Permission2802=استفاده از متقاضی FTP در حالت نوشتنی (حذف یا ارسال فایل) -Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees -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 +Permission3200=خواندن روی‌دادهای بایگانی شده و اثرانگشت‌ها +Permission4001=نمایش کارمندان +Permission4002=ساخت کارمند +Permission4003=حذف کارمند +Permission4004=صادرکردن کارمندان +Permission10001=خواندن محتوای وبگاه +Permission10002=ساخت/ویرایش محتوای وبگاه (محتوای html و javascript ) +Permission10003=ساخت/ویرایش محتوای وبگاه (کد پویای PHP). خطرناک، تنها باید تحت نظر توسعه‌دهندگان مشخص و محدود باشد. +Permission10005=حذف محتوای وبگاه Permission20001=ملاحظۀ درخواست‌های مرخصی (درخواست‌های مرخصی افراد تحت مدیریت شما) Permission20002=ساخت/ویرایش درخواست‌های مرخصی شما (شما و افراد تحت نظر شما) Permission20003=حذف درخواست‌های مرخصی @@ -904,19 +907,19 @@ Permission23004=اجرای وظایف زمان‌بندی‌شده Permission50101=استفاده از صندوق POS Permission50201=ملاحظۀ تراکنش‌ها Permission50202=واردکردن تراکنش‌ها -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 -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50401=بندکردن محصولات و صورت‌حساب‌های با حساب‌های حساب‌داری +Permission50411=خواندن عملیات موجود در دفترکل +Permission50412=نوشتن/ویرایش عملیات در دفترکل +Permission50414=حذف عملیات از دفترکل +Permission50415=حذف همۀ عملیات در یک سال یا یک دفترروزنامه +Permission50418=صادرکردن عمیات یک دفترکل +Permission50420=گزارش و صادرکردن گزارشات ( گردش مالی، مانده، دفترروزنامه، دفترکل) +Permission50430=تعریف و بستن بازۀ سال‌مالی +Permission50440=مدیریت نمودار حساب‌ها، برپاسازی حساب‌داری +Permission51001=خواندن دارائی‌ها +Permission51002=ساخت/به‌روزرسانی دارائی‌ها +Permission51003=حذف دارائی‌ها +Permission51005=برپاسازی انواع دارائی‌ها Permission54001=چاپ Permission55001=ملاحظۀ نظرسنجی‌ها Permission55002=ساخت/ویرایش نظرسنجی‌ها @@ -1110,7 +1113,7 @@ AreaForAdminOnly=مقادیر برپاسازی تنها توسط کاربرا SystemInfoDesc=اطلاعات سامانه، اطلاعاتی فنی است که در حالت فقط خواندنی است و تنها برای مدیران قابل نمایش است. SystemAreaForAdminOnly=این ناحیه تنها برای کاربران مدیر در دسترس است. مجوزهای کاربران Dolibarr  این محدودیت‌ها را تغییر نمی‌دهد. CompanyFundationDesc=ویرایش اطلاعات مربوط به شرکت/موجودیت. بر روی "%s" یا "%s" در انتهای صفحه کلیک نمائید. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. +AccountantDesc=در صورتی‌که شما یک حساب‌دار/دفتردار بیرونی دارید، می‌توانید اطلاعات وی را این‌جا ویرایش نمائید AccountantFileNumber=کد حساب‌دار DisplayDesc=مقادیری که بر شکل و رفتار Dolibarr اثرگذارند از این‌جا قابل تغییرند. AvailableModules=برنامه‌ها/واحد‌های دردسترس @@ -1923,5 +1926,5 @@ IFTTTDesc=این واحد برای راه‌انداختن رخدادها بر I UrlForIFTTT=نشانی اینترنتی نهائی برای IFTTT YouWillFindItOnYourIFTTTAccount=شما آن را بر حساب IFTTT خود پیدا خواهید کرد EndPointFor=نقطۀ آخر برای %s : %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +DeleteEmailCollector=حذف جمع‌آورندۀ رایانامه +ConfirmDeleteEmailCollector=آیا مطمئن هستید می‌خواهید این جمع‌آورندۀ رایانامه را حذف کنید؟ diff --git a/htdocs/langs/fa_IR/agenda.lang b/htdocs/langs/fa_IR/agenda.lang index 73f931ebe52..e1f74dbf8c9 100644 --- a/htdocs/langs/fa_IR/agenda.lang +++ b/htdocs/langs/fa_IR/agenda.lang @@ -38,7 +38,7 @@ ActionsEvents=روی‌دادهائی که Dolibarr برای آن‌ها در ص EventRemindersByEmailNotEnabled=یادآورنده‌های روی‌داد توسط رایانامه در بخش برپاسازی واحد %s فعال نشده اند. ##### Agenda event labels ##### NewCompanyToDolibarr=شخص‌سوم %s ساخته شد -COMPANY_DELETEInDolibarr=Third party %s deleted +COMPANY_DELETEInDolibarr=طرف‌سوم %s حذف شد ContractValidatedInDolibarr=قرارداد %s تائید شد CONTRACT_DELETEInDolibarr=قرارداد %s حذف شد PropalClosedSignedInDolibarr=پیشنهاد %s امضا شد diff --git a/htdocs/langs/fa_IR/bills.lang b/htdocs/langs/fa_IR/bills.lang index 567e78c4bb7..42ecb831c69 100644 --- a/htdocs/langs/fa_IR/bills.lang +++ b/htdocs/langs/fa_IR/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=پیش‌صورت‌حساب InvoiceProFormaDesc=پیش‌صورت‌حساب تصویری درست از یک صورت‌حساب است اما ارزش حساب‌داری ندارد. InvoiceReplacement=صورت‌حساب تعویض InvoiceReplacementAsk=صورت‌حساب تعویض برای صورت‌حساب -InvoiceReplacementDesc=صورت‌حساب تعویض برای لغو یا جایگزینی کامل یک صورت‌حساب در هنگامی که هیچ مبلغی هنوز دریافت نشده است.

نکته: تنها صورت‌حساب‌های پرداخت‌نشده قابل تعویض هستند. در صورتی که صورت‌حسابی که تعویض می‌کنید هنوز بسته نشده، به طور خودکار به صورت "معلق" بسته خواهد شد. +InvoiceReplacementDesc=فاکتور تعویض در هنگام جایگزینی یک صورت‌حساب که هرگز برای آن پرداختی وجود ندارد استفاده می‌شود.

توجه: تنها صورت‌حساب‌های بدون پرداخت قابلیت جایگزین شدن دارند. در صورتی که صورت‌حسابی که جایگزین می‌کنید هنوز بسته نشده باشد، به طور خودکار به شکل "معلق" بسته خواهد شد. InvoiceAvoir=یادداشت اعتباری InvoiceAvoirAsk=یادداشت اعتباری برای اصلاح صورت‌حساب InvoiceAvoirDesc=یادداشت اعتباری یک صورت‌حساب منفی است که این واقعیت را اصلاح می‌کند که یک صورت‌حساب مبلغی متفاوت از مبلغی که واقعا پرداخت شده نشان می‌دهد (مثلا مشتری به اشتباه مبلغی بیش از مبلغ صورت‌حساب پرداخت کرده، یا این‌که مبلغ کامل را به دلیل بازگرداندن بعضی از کالاها پرداخت نخواهد کرد). @@ -66,10 +66,10 @@ paymentInInvoiceCurrency=به واحد‌پولی صورت‌حساب PaidBack=پرداخت برگردانده شد DeletePayment=حذف پرداخت ConfirmDeletePayment=آیا مطمئنید که می‌خواهید این پرداخت را حذف کنید؟ -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount? -ConfirmConvertToReduc2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount? -ConfirmConvertToReducSupplier2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. +ConfirmConvertToReduc=آیا می‌خواهید این %s را به یک تخفیفت مطلق تبدیل کنید؟ +ConfirmConvertToReduc2=این مبلغ در میان همۀ تخفیف‌ها ذخیره خواهد شد و می‌تواند به‌عنوان یک صورت‌حساب فعلی یا آینده برای این مشتری مورد استفاده قرار گیرد. +ConfirmConvertToReducSupplier=آیا می‌خواهید این %s را به یک تخفیفت مطلق تبدیل کنید؟ +ConfirmConvertToReducSupplier2=این مبلغ در میان همۀ تخفیف‌ها ذخیره خواهد شد و می‌تواند به‌عنوان یک صورت‌حساب فعلی یا آینده برای این فروشنده مورد استفاده قرار گیرد. SupplierPayments=پرداخت‌های فروشندگان ReceivedPayments=پول‌های دریافتی ReceivedCustomersPayments=پول‌های دریافت شده از مشتریان diff --git a/htdocs/langs/fa_IR/companies.lang b/htdocs/langs/fa_IR/companies.lang index a400f0772e7..379ad776c06 100644 --- a/htdocs/langs/fa_IR/companies.lang +++ b/htdocs/langs/fa_IR/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=تخفیف مطلق فروشندگان(وارد SupplierAbsoluteDiscountMy=تخفیف مطلق فروشندگان(واردشدۀ خودشما) DiscountNone=هیچ‌یک Vendor=فروشنده +Supplier=فروشنده AddContact=ساخت طرف‌تماس AddContactAddress=ساخت طرف‌تماس/نشانی EditContact=ویرایش طرف‌تماس diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang index d68b3a85323..e5d0d766ec5 100644 --- a/htdocs/langs/fa_IR/main.lang +++ b/htdocs/langs/fa_IR/main.lang @@ -842,11 +842,11 @@ Exports=صادرات ExportFilteredList=فهرست گزینشی صادرا ExportList=فهرست صادرات ExportOptions=گزینه‌های صادرکردن -IncludeDocsAlreadyExported=Include docs already exported -ExportOfPiecesAlreadyExportedIsEnable=Export of pieces already exported is enable -ExportOfPiecesAlreadyExportedIsDisable=Export of pieces already exported is disable -AllExportedMovementsWereRecordedAsExported=All exported movements were recorded as exported -NotAllExportedMovementsCouldBeRecordedAsExported=Not all exported movements could be recorded as exported +IncludeDocsAlreadyExported=دربرگرفتن مستنداتی که قبلا صادر شده‌اند +ExportOfPiecesAlreadyExportedIsEnable=دربرگیری بخش‌هائی که قبلا صادر شده‌اند فعال است +ExportOfPiecesAlreadyExportedIsDisable=دربرگیری بخش‌هائی که قبلا صادر شده‌اند غیر فعال است +AllExportedMovementsWereRecordedAsExported=همۀ جابه‌جائی‌های صادر شده به عنوان صادرشده ثبت شد +NotAllExportedMovementsCouldBeRecordedAsExported=همۀ جابه‌جائی‌های صادرشده نمی‌توانند به‌عنوان صادرشده ثبت شوند Miscellaneous=متفرقه Calendar=تقویم GroupBy=گروه‌بندی توسط... @@ -978,4 +978,4 @@ SeePrivateNote=ملاحظۀ یادداشت خصوصی PaymentInformation=اطلاعات پرداخت ValidFrom=معتبر از ValidUntil=معتبر تا -NoRecordedUsers=No users +NoRecordedUsers=کاربری نیست diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang index d7787db0f50..26646bd3e4c 100644 --- a/htdocs/langs/fa_IR/other.lang +++ b/htdocs/langs/fa_IR/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=مداخله٪ s را دارای اعتبار بوده است. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/fa_IR/website.lang b/htdocs/langs/fa_IR/website.lang index 8720bfb102b..e8d9603803b 100644 --- a/htdocs/langs/fa_IR/website.lang +++ b/htdocs/langs/fa_IR/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/fi_FI/accountancy.lang b/htdocs/langs/fi_FI/accountancy.lang index a855b64b9b3..96ae44884fd 100644 --- a/htdocs/langs/fi_FI/accountancy.lang +++ b/htdocs/langs/fi_FI/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index 76c3d67dfc2..bcf1f3161f8 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) 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 @@ -819,9 +822,9 @@ Permission532=Luoda / muuttaa palvelut Permission534=Poista palvelut Permission536=Katso / hoitaa piilotettu palvelut Permission538=Vienti palvelut -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Lue lahjoitukset Permission702=Luoda / muuttaa lahjoitusten Permission703=Poista lahjoitukset @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/fi_FI/bills.lang b/htdocs/langs/fi_FI/bills.lang index c44f6ba2298..3528ca862ab 100644 --- a/htdocs/langs/fi_FI/bills.lang +++ b/htdocs/langs/fi_FI/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma lasku InvoiceProFormaDesc=Proforma lasku on todellinen lasku, mutta sillä ei ole kirjanpidollista arvoa. InvoiceReplacement=Korvaava lasku InvoiceReplacementAsk=Laskun korvaava lasku -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Menoilmoitus InvoiceAvoirAsk=Menoilmoitus korjata laskun InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/fi_FI/companies.lang b/htdocs/langs/fi_FI/companies.lang index 2702ff40a84..cf6410370c7 100644 --- a/htdocs/langs/fi_FI/companies.lang +++ b/htdocs/langs/fi_FI/companies.lang @@ -28,7 +28,7 @@ AliasNames=Lisänimi (tuotenimi, brändi, ...) AliasNameShort=Alias Name Companies=Yritykset CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Ei mitään Vendor=Vendor +Supplier=Vendor AddContact=Luo yhteystiedot AddContactAddress=Luo yhteystiedot/osoite EditContact=Muokkaa yhteystiedot / osoite diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang index 14d62be772a..eb8b1a67c65 100644 --- a/htdocs/langs/fi_FI/other.lang +++ b/htdocs/langs/fi_FI/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Väliintulo %s validoitava EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/fi_FI/website.lang b/htdocs/langs/fi_FI/website.lang index b84581dc8e9..805210f3811 100644 --- a/htdocs/langs/fi_FI/website.lang +++ b/htdocs/langs/fi_FI/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/fr_BE/accountancy.lang b/htdocs/langs/fr_BE/accountancy.lang index 008ccdab2d7..30535d01188 100644 --- a/htdocs/langs/fr_BE/accountancy.lang +++ b/htdocs/langs/fr_BE/accountancy.lang @@ -4,8 +4,7 @@ Processing=Exécution Lineofinvoice=Lignes de facture Doctype=Type de document ErrorDebitCredit=Débit et crédit ne peuvent pas être non-nuls en même temps -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. Blocking error. TotalMarge=Marge de ventes totale Selectmodelcsv=Sélectionnez un modèle d'export Modelcsv_normal=Export classique -Modelcsv_FEC=Export FEC (Art. L47 A) +DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. diff --git a/htdocs/langs/fr_BE/admin.lang b/htdocs/langs/fr_BE/admin.lang index 45352a47b83..3090455190b 100644 --- a/htdocs/langs/fr_BE/admin.lang +++ b/htdocs/langs/fr_BE/admin.lang @@ -17,4 +17,6 @@ IfModuleEnabled=Note: oui ne fonctionne que si le module %s est activé Module20Name=Propales Module30Name=Factures Target=Objectif +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_CA/accountancy.lang b/htdocs/langs/fr_CA/accountancy.lang index 64a7ba02334..f7069e0d730 100644 --- a/htdocs/langs/fr_CA/accountancy.lang +++ b/htdocs/langs/fr_CA/accountancy.lang @@ -81,7 +81,6 @@ FeeAccountNotDefined=Compte pour frais non définis BankAccountNotDefined=Compte pour banque non défini NumMvts=Nombre de transactions AddCompteFromBK=Ajouter des comptes comptables au groupe -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. Blocking error. TotalVente=Chiffre d'affaires total avant taxes DescVentilCustomer=Consultez ici la liste des lignes de facture client liées (ou non) à un compte comptable produit DescVentilDoneCustomer=Consultez ici la liste des lignes clients des factures et leur compte comptable produit @@ -100,10 +99,10 @@ AccountingJournals=Revues comptables ShowAccoutingJournal=Afficher le journal comptable AccountingJournalType9=A-nouveau ErrorAccountingJournalIsAlreadyUse=Ce journal est déjà utilisé -Modelcsv_FEC=Export FEC (Art. L47 A) ChartofaccountsId=Carte comptable Id InitAccountancy=Compabilité initiale DefaultBindingDesc=Cette page peut être utilisée pour définir un compte par défaut à utiliser pour lier l'historique des transactions sur les salaires de paiement, le don, les taxes et la TVA lorsque aucun compte comptable spécifique n'a été défini. +DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. OptionModeProductSell=Mode de ventes OptionModeProductBuy=Mode d'achats OptionModeProductSellDesc=Afficher tous les produits avec compte comptable pour les ventes. diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang index 142fd0cec93..fa8441ff760 100644 --- a/htdocs/langs/fr_CA/admin.lang +++ b/htdocs/langs/fr_CA/admin.lang @@ -24,7 +24,6 @@ AllWidgetsWereEnabled=Tous les widgets disponibles sont activés MenusDesc=Les gestionnaires de menu définissent le contenu des deux barres de menus (horizontales et verticales). MenusEditorDesc=L'éditeur de menu vous permet de définir des entrées de menu personnalisées. Utilisez-le soigneusement pour éviter l'instabilité et les entrées de menu inaccessibles en permanence.
Certains modules ajoutent des entrées de menu (dans le menu principal principalement). Si vous supprimez certaines de ces entrées par erreur, vous pouvez les restaurer en désactivant et en réactivant le module. PurgeDeleteLogFile=Supprimer les fichiers journaux, y compris ceux%s définis pour le module Syslog (pas de risque de perte de données) -PurgeDeleteTemporaryFiles=Supprimez tous les fichiers temporaires (pas de risque de perte de données) PurgeDeleteTemporaryFilesShort=Supprimer les fichiers temporaires PurgeNothingToDelete=Pas de répertoire ou de fichiers à supprimer. PurgeNDirectoriesFailed=Impossible de supprimer %s fichiers ou les répertoires. @@ -200,6 +199,8 @@ ConfirmDeleteFiscalYear=Êtes-vous sûr de supprimer cette période comptable? ShowFiscalYear=Afficher la période comptable SalariesSetup=Configuration du module salariés ListOfNotificationsPerUser=Liste des notifications par utilisateur * +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** +ListOfFixedNotifications=List of Fixed Notifications ConfFileMustContainCustom=L'installation ou la construction d'un module externe à partir de l'application doit sauvegarder les fichiers du module dans le répertoire %s. Pour que ce répertoire soit traité par Dolibarr, vous devez configurer votre conf / conf.php pour ajouter les 2 lignes de directive:
$ dolibarr_main_url_root_alt = '/ custom';
$ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de table lorsque déplacement de la souris passe au-dessus PressF5AfterChangingThis=Appuyez sur CTRL + F5 sur le clavier ou effacez votre cache de navigateur après avoir changé cette valeur pour l'avoir efficace diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index ae89a4e57ae..de6f26337d7 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Compte de résultat (perte) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal de fermeture ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte comptable de transfert transitoire bancaire +TransitionalAccount=Compte transitoire de virement bancaire ACCOUNTING_ACCOUNT_SUSPENSE=Compte comptable d'attente DONATION_ACCOUNTINGACCOUNT=Compte comptable pour l'enregistrement des dons @@ -216,7 +217,7 @@ DescThirdPartyReport=Consultez ici la liste des tiers clients et fournisseurs et ListAccounts=Liste des comptes comptables UnknownAccountForThirdparty=Compte de tiers inconnu. %s sera utilisé UnknownAccountForThirdpartyBlocking=Compte de tiers inconnu. Erreur bloquante. -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. We will use %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Code comptable du tiers non défini ou tiers inconnu. On utilisera %s. ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Compte tiers non défini ou inconnu. Erreur bloquante. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Compte tiers inconnu et compte d'attente non défini. Erreur blocante. PaymentsNotLinkedToProduct=Paiement non lié à un produit / service @@ -317,9 +318,9 @@ WithoutValidAccount=Sans compte dédié valide WithValidAccount=Avec un compte dédié valide ValueNotIntoChartOfAccount=Cette valeur de compte comptable n'existe pas dans le plan comptable AccountRemovedFromGroup=Compte supprimé du groupe -SaleLocal=Local sale -SaleExport=Export sale -SaleEEC=Sale in EEC +SaleLocal=Vente locale +SaleExport=Vente export +SaleEEC=Vente dans la CEE ## Dictionary Range=Plage de comptes @@ -340,7 +341,7 @@ UseMenuToSetBindindManualy=Lignes non encore liées, utilisez le menu $db, $conf, $langs, $mysoc, $user, $object
.
ATTENTION : Seulement quelques propriétés de l'objet $object pourraient être disponibles. Si vous avez besoin de propriétés non chargées, créez vous même une instance de l'objet dans votre formule, comme dans le deuxième exemple.
Utiliser un champs calculé signifie que vous ne pouvez pas entrer vous même toute valeur à partir de l'interface. Aussi, s'il y a une erreur de syntaxe, la formule pourrait ne rien retourner.

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

Exemple pour recharger l'objet:
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Un autre exemple de formule pour forcer le rechargement d'un objet et de son objet parent:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Objet parent projet non trouvé' +Computedpersistent=Stocker le champ calculé +ComputedpersistentDesc=Les champs supplémentaires calculés seront stockés dans la base de données. Toutefois, la valeur ne sera recalculée que lorsque l'objet de ce champ sera modifié. Si le champ calculé dépend d'autres objets ou de données globales, cette valeur peut être fausse !! ExtrafieldParamHelpPassword=Laissez ce champ vide signifie que la valeur sera stockée sans cryptage (le champ doit juste être caché avec des étoiles sur l'écran).
Définissez la valeur 'auto' pour utiliser la règle de cryptage par défaut pour enregistrer le mot de passe dans la base de données (ensuite la valeur utilisée sera le hash uniquement, sans moyen de retrouver la valeur d'origine) ExtrafieldParamHelpselect=La liste doit être de la forme clef,valeur (où la clé ne peut être '0')

par exemple :
1,valeur1
2,valeur2
3,valeur3
...

Pour afficher une liste dépendant d'une autre liste attribut complémentaire:
1, valeur1|options_code_liste_parente:clé_parente
2,valeur2|options_ode_liste_parente:clé_parente

Pour que la liste soit dépendante d'une autre liste:
1,valeur1|code_liste_parent:clef_parent
2,valeur2|code_liste_parent:clef_parent ExtrafieldParamHelpcheckbox=La liste doit être de la forme clef,valeur (où la clé ne peut être '0')

par exemple :
1,valeur1
2,valeur2
3,valeur3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=La liste doit être de la forme clef,valeur (où la cl ExtrafieldParamHelpsellist=Les paramètres de la liste viennent d'une table
Syntax : table_name:label_field:id_field::filter
Exemple : c_typent:libelle:id::filter

-idfilter est nécessairement une clé primaire int
- filter peut être un simple test (e.g. active=1) pour seulement montrer les valeurs actives
Vous pouvez aussi utiliser $ID$ dans le filtre qui est le ID actuel de l'objet
Pour faire un SELECT dans le filtre, utilisez $SEL$
Si vous voulez filtrer sur un extrafield, utilisez la syntaxe extra.fieldcode=... (ou fieldcode est le code de l'extrafield)

Pour avoir une liste qui dépend d'un autre attribut complémentaire:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

Pour avoir une liste qui dépend d'une autre liste:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=Les paramètres de la liste proviennent d'une table
:Syntaxe : nom_de_la_table:libelle_champ:id_champ::filtre
Exemple : c_typent:libelle:id::filter

le filtre peut n'est qu'un test (ex : active=1) pour n'afficher que les valeurs actives.
Vous pouvez aussi utiliser $ID$ dans les filtres pour indiquer l'ID de l'élément courant.
Pour utiliser un SELECT dans un filtre, utilisez $SEL$
Pour filtrer sur un attribut supplémentaire, utilisez la syntaxeextra.fieldcode=... (ou fieldcode est le code de l'attribut supplémentaire)

Pour afficher une liste dépendant d'un autre attribut supplémentaire :
c_typent:libelle:id:options_code_liste_parente|colonne_parente:filtre

Pour afficher une liste dépendant d'une autre liste :
c_typent:libelle:id:code_liste_parente|colonne_parente:filter ExtrafieldParamHelplink=Les paramètres doivent être ObjectName:Classpath
Syntaxe: ObjectName:Classpath
Exemples:
Société:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Garder vide pour un simple séparateur
Définissez-le sur 1 pour un séparateur accordéon (ouvert par défaut)
Définissez-le sur 2 pour un séparateur accordéon (réduit par défaut) LibraryToBuildPDF=Bibliothèque utilisée pour la génération des PDF LocalTaxDesc=Certains pays appliquent 2 voire 3 taux sur chaque ligne de facture. Si c'est le cas, choisissez le type du deuxième et troisième taux et sa valeur. Les types possibles sont:
1 : taxe locale sur les produits et services hors tva (la taxe locale est calculée sur le montant hors taxe)
2 : taxe locale sur les produits et services avant tva (la taxe locale est calculée sur le montant + tva)
3 : taxe locale uniquement sur les produits hors tva (la taxe locale est calculée sur le montant hors taxe)
4 : taxe locale uniquement sur les produits avant tva (la taxe locale est calculée sur le montant + tva)
5 : taxe locale uniquement sur les services hors tva (la taxe locale est calculée sur le montant hors taxe)
6 : taxe locale uniquement sur les service avant tva (la taxe locale est calculée sur le montant + tva) SMS=SMS @@ -804,7 +807,7 @@ Permission401=Consulter les avoirs Permission402=Créer/modifier les avoirs Permission403=Valider les avoirs Permission404=Supprimer les avoirs -Permission430=Use Debug Bar +Permission430=Utilisez la barre de débogage Permission511=Lire les règlements de salaires Permission512=Créer/modifier les règlements de salaires Permission514=Supprimer les paiements de salaires @@ -819,9 +822,9 @@ Permission532=Créer/modifier les services Permission534=Supprimer les services Permission536=Voir/gérer les services cachés Permission538=Exporter les services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Lire les Nomenclatures (BOM) +Permission651=Créer/modifier les Nomenclatures (BOM) +Permission652=Supprimer les Nomenclatures (BOM) Permission701=Consulter les dons Permission702=Créer/modifier les dons Permission703=Supprimer les dons @@ -841,12 +844,12 @@ Permission1101=Consulter les bons de livraison Permission1102=Créer/modifier les bons de livraison Permission1104=Valider les bons de livraison Permission1109=Supprimer les bons de livraison -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 +Permission1121=Lire les propositions fournisseurs +Permission1122=Créer/modifier les demandes de prix fournisseurs +Permission1123=Valider les demandes de prix fournisseurs +Permission1124=Envoyer les demandes de prix fournisseurs +Permission1125=Effacer les demandes de prix de fournisseurs +Permission1126=Fermer les demandes de prix fournisseurs Permission1181=Consulter les fournisseurs Permission1182=Consulter les commandes fournisseurs Permission1183=Créer/modifier les commandes fournisseurs @@ -882,15 +885,15 @@ Permission2503=Soumettre ou supprimer des documents Permission2515=Administrer les rubriques de documents Permission2801=Utiliser un client FTP en mode lecture (parcours et téléchargement de fichiers) Permission2802=Utiliser un client FTP en mode écriture (suppression et envoi de fichiers) -Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees -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 +Permission3200=Lire les événements archivés et leurs empreintes +Permission4001=Voir les employés +Permission4002=Créer/modifier les employés +Permission4003=Supprimer les employés +Permission4004=Exporter les employés +Permission10001=Lire le contenu du site +Permission10002=Créer/modifier le contenu du site Web (contenu HTML et JavaScript) +Permission10003=Créer/modifier le contenu du site Web (code php dynamique). Dangereux, doit être réservé à un nombre restreint de développeurs. +Permission10005=Supprimer du contenu de site web Permission20001=Lire les demandes de congé (les vôtres et celle de vos subordonnés) Permission20002=Créer/modifier vos demandes de congé (les vôtres et celle de vos subordonnés) Permission20003=Supprimer les demandes de congé @@ -904,19 +907,19 @@ Permission23004=Exécuter travail planifié Permission50101=Utiliser le point de vente Permission50201=Consulter les transactions Permission50202=Importer les transactions -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 -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50401=Lier les produits et factures avec des comptes comptables +Permission50411=Lire les opérations du Grand livre +Permission50412=Créer/modifier des opérations dans le Grand livre +Permission50414=Supprimer les opérations dans le Grand livre +Permission50415=Supprimer toutes les opérations par année ou journal dans le Grand livre +Permission50418=Exporter les opérations dans le Grand livre +Permission50420=Consulter les rapports et exports de rapports (chiffre d'affaires, solde, journaux, grand livre) +Permission50430=Définir et clôturer une période fiscale +Permission50440=Gérer le plan comptable, configurer la comptabilité +Permission51001=Lire les actifs +Permission51002=Créer/Mettre à jour des actifs +Permission51003=Supprimer les actifs +Permission51005=Configurer les types d'actif Permission54001=Imprimer Permission55001=Lire sondages Permission55002=Créer/modifier les sondages @@ -1110,7 +1113,7 @@ AreaForAdminOnly=Les paramètres d'installation ne peuvent être remplis que par SystemInfoDesc=Les informations systèmes sont des informations techniques diverses accessibles en lecture seule aux administrateurs uniquement. SystemAreaForAdminOnly=Cet espace n'est accessible qu'aux utilisateurs de type administrateur. Aucune permission Dolibarr ne permet d'étendre le cercle des utilisateurs autorisés à cet espace. CompanyFundationDesc=Éditez sur cette page toutes les informations connues de la société ou de l'association que vous souhaitez gérer. Pour cela, cliquez sur les boutons "%s" ou "%s" en bas de page. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. +AccountantDesc=Si vous avez un comptable externe, vous pouvez saisir ici ses informations. AccountantFileNumber=Code comptable DisplayDesc=Vous pouvez choisir ici tous les paramètres liés à l'apparence de Dolibarr AvailableModules=Modules/applications installés @@ -1923,5 +1926,5 @@ IFTTTDesc=Ce module est conçu pour déclencher des événements sur IFTTT et/ou UrlForIFTTT=URL endpoint pour IFTTT YouWillFindItOnYourIFTTTAccount=Vous le trouverez sur votre compte IFTTT EndPointFor=Endpoint pour %s: %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +DeleteEmailCollector=Supprimer le collecteur d'email +ConfirmDeleteEmailCollector=Êtes-vous sûr de vouloir supprimer ce collecteur d'email ? diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 063b1056884..41f5aca717c 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Facture proforma InvoiceProFormaDesc=La facture proforma est une image de facture définitive mais qui n'a aucune valeur comptable. InvoiceReplacement=Facture de remplacement InvoiceReplacementAsk=Facture de remplacement de la facture -InvoiceReplacementDesc=La facture de remplacement sert à annuler et remplacer complètement une facture existante sur laquelle aucun paiement n'a encore eu lieu.

Rem: Seules les factures sans aucun paiement peuvent être remplacées. Si ces dernières ne sont pas fermées, elles le seront automatiquement au statut 'abandonnée'. +InvoiceReplacementDesc=La facture de remplacement sert à remplacer complètement une facture existante sur laquelle aucun paiement n'a encore eu lieu.

Rem: Seules les factures sans aucun paiement peuvent être remplacées. Si ces dernières ne sont pas encore fermées, elles le seront automatiquement au statut 'abandonnée'. InvoiceAvoir=Facture avoir InvoiceAvoirAsk=Facture avoir pour correction de la facture InvoiceAvoirDesc=La facture d'avoir est une facture négative destinée à compenser un montant de facture qui diffère du montant réellement versé (suite à un trop versé par le client par erreur ou un manque non versé par le client suite à un retour produit par exemple). diff --git a/htdocs/langs/fr_FR/blockedlog.lang b/htdocs/langs/fr_FR/blockedlog.lang index c9d0ff0b731..2588df90cee 100644 --- a/htdocs/langs/fr_FR/blockedlog.lang +++ b/htdocs/langs/fr_FR/blockedlog.lang @@ -48,7 +48,7 @@ DataOfArchivedEvent=Données complètes de l'événement archivé ImpossibleToReloadObject=Objet d'origine (type %s, id %s) non lié (voir la colonne 'Données complètes' pour obtenir les données sauvegardées non modifiables) BlockedLogAreRequiredByYourCountryLegislation=Le module Journaux inaltérables peut être requis par la législation de votre pays. La désactivation de ce module peut invalider toute transaction future au regard de la loi et de l'utilisation de logiciels légaux, car elles ne peuvent être validées par un contrôle fiscal. BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Le module Journaux inaltérables a été activé en raison de la législation de votre pays. La désactivation de ce module peut invalider toute transaction future au regard de la loi et de l’utilisation de logiciels légaux, car elles ne peuvent pas être validées par un audit fiscal. -BlockedLogDisableNotAllowedForCountry=Liste des pays où l'utilisation de ce module est obligatoire (juste pour éviter de désactiver le module par erreur. Si votre pays est dans cette liste, la désactivation du module n'est pas possible sans la modification préalable de cette liste. Notez également que l'activation/désactivation de ce module garder une trace dans le journal des logs inaltérables). +BlockedLogDisableNotAllowedForCountry=Liste des pays où l'utilisation de ce module est obligatoire (juste pour éviter de désactiver le module par erreur. Si votre pays est dans cette liste, la désactivation du module n'est pas possible sans la modification préalable de cette liste. Notez également que l'activation/désactivation de ce module garde une trace dans le journal des logs inaltérables). OnlyNonValid=Non valide TooManyRecordToScanRestrictFilters=Trop d'enregistrements à analyser / analyser. Veuillez restreindre la liste avec des filtres plus restrictifs. RestrictYearToExport=Restreindre mois / année pour exporter diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang index 52a6eb863a9..25465ebc4b2 100644 --- a/htdocs/langs/fr_FR/cashdesk.lang +++ b/htdocs/langs/fr_FR/cashdesk.lang @@ -68,4 +68,4 @@ Terminal=Terminal NumberOfTerminals=Nombre de terminaux TerminalSelect=Sélectionnez le terminal que vous souhaitez utiliser: POSTicket=Ticket POS -BasicPhoneLayout=Use basic layout for phones +BasicPhoneLayout=Utiliser une interface basique pour les smartphones diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index a25a7ffba4f..8f39b8ce7a9 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Remises fournisseurs absolues (saisies par tous SupplierAbsoluteDiscountMy=Remises fournisseur absolues (saisies par vous-même) DiscountNone=Aucune Vendor=Fournisseur +Supplier=Fournisseur AddContact=Créer contact AddContactAddress=Créer contact/adresse EditContact=Éditer contact diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang index 1e4bb836708..178b3dd421d 100644 --- a/htdocs/langs/fr_FR/mails.lang +++ b/htdocs/langs/fr_FR/mails.lang @@ -78,9 +78,9 @@ GroupEmails=Regroupement emails OneEmailPerRecipient=Un e-mail par destinataire (par défaut, un e-mail par enregistrement sélectionné) WarningIfYouCheckOneRecipientPerEmail=Attention, si vous cochez cette case, cela signifie qu'un seul email sera envoyé pour plusieurs enregistrements différents, donc, si votre message contient des variables de substitution qui se réfèrent aux données d'un enregistrement, il devient impossible de les remplacer. ResultOfMailSending=Résultat de l'envoi d'EMail en masse -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent +NbSelected=Nombre sélectionné +NbIgnored=Nombre ignoré +NbSent=Nombre envoyé SentXXXmessages=%s message(s) envoyé(s). ConfirmUnvalidateEmailing=Êtes-vous sûr de vouloir repasser l'emailing %s au statut brouillon ? MailingModuleDescContactsWithThirdpartyFilter=Contact avec filtres des tiers diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index c0e0a3057e4..14185575b3f 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -947,7 +947,7 @@ SearchIntoContracts=Contrats SearchIntoCustomerShipments=Expéditions clients SearchIntoExpenseReports=Notes de frais SearchIntoLeaves=Congés -SearchIntoTickets=Gestionnaire de tickets +SearchIntoTickets=Tickets CommentLink=Commentaires NbComments=Nombre de commentaires CommentPage=Commentaires diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 0f6e7ecb589..2d5b024df4f 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -171,7 +171,7 @@ MembersStatisticsDesc=Choisissez les statistiques que vous désirez consulter... MenuMembersStats=Statistiques LastMemberDate=Date dernier adhérent LatestSubscriptionDate=Date de dernière adhésion -MemberNature=Nature of member +MemberNature=Nature d'adhérent Public=Informations publiques NewMemberbyWeb=Nouvel adhérent ajouté. En attente de validation NewMemberForm=Nouvel Adhérent form diff --git a/htdocs/langs/fr_FR/mrp.lang b/htdocs/langs/fr_FR/mrp.lang index 6bcdb4e11c4..6916c178554 100644 --- a/htdocs/langs/fr_FR/mrp.lang +++ b/htdocs/langs/fr_FR/mrp.lang @@ -1,6 +1,6 @@ MRPArea=Espace MRP MenuBOM=Nomenclatures BOM -LatestBOMModified=Le %sdernières BOMs modifiées +LatestBOMModified=Le %s dernières BOMs modifiées BillOfMaterials=Nomenclature BOM BOMsSetup=Configuration du module BOM ListOfBOMs=Liste des BOMs diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 1b8b24d61a6..f6286b6ea23 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -104,7 +104,7 @@ DemoFundation=Gestion des adhérents d'une association DemoFundation2=Gestion des adhérents et trésorerie d'une association DemoCompanyServiceOnly=Société ou indépendant faisant du service uniquement DemoCompanyShopWithCashDesk=Gestion d'un magasin avec caisse -DemoCompanyProductAndStocks=Société vendant des produits avec magazin +DemoCompanyProductAndStocks=Société vendant des produits avec magasin DemoCompanyAll=Société avec de multiples activités (tous les modules principaux) CreatedBy=Créé par %s ModifiedBy=Modifié par %s @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Nombre de factures clients NumberOfSupplierProposals=Nombre de demandes de prix NumberOfSupplierOrders=Nombre de commandes fournisseurs NumberOfSupplierInvoices=Nombre de factures fournisseurs +NumberOfContracts=Nombre de contrats NumberOfUnitsProposals=Quantités présentes dans les propositions commerciales NumberOfUnitsCustomerOrders=Quantités présentes dans les commandes clients NumberOfUnitsCustomerInvoices=Quantités présentes dans les factures clients NumberOfUnitsSupplierProposals=Quantités présentes dans les demande de prix NumberOfUnitsSupplierOrders=Quantités présentes dans les commandes fournisseurs NumberOfUnitsSupplierInvoices=Quantités présentes dans les factures fournisseurs +NumberOfUnitsContracts=Nombre d'unités en contrat EMailTextInterventionAddedContact=Une nouvelle intervention %s vous a été assignée EMailTextInterventionValidated=La fiche intervention %s vous concernant a été validée. EMailTextInvoiceValidated=La facture %s vous concernant a été validée. diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index d4135c2273e..fe794e65446 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -159,7 +159,7 @@ SuppliersPrices=Prix fournisseurs SuppliersPricesOfProductsOrServices=Prix fournisseurs (des produits ou services) CustomCode=Nomenclature douanière / Code SH CountryOrigin=Pays d'origine -Nature=Nature of produt (material/finished) +Nature=Nature du produit (matière première / produit fini) ShortLabel=Libellé court Unit=Unité p=u. diff --git a/htdocs/langs/fr_FR/salaries.lang b/htdocs/langs/fr_FR/salaries.lang index dc2ff783ed9..f4138177a16 100644 --- a/htdocs/langs/fr_FR/salaries.lang +++ b/htdocs/langs/fr_FR/salaries.lang @@ -18,4 +18,4 @@ LastSalaries=Les %s derniers règlements de salaires AllSalaries=Tous les règlements de salaires SalariesStatistics=Statistiques # Export -SalariesAndPayments=Salaries and payments +SalariesAndPayments=Salaires et paiements diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang index 13367adcc31..f4d7e789ff5 100644 --- a/htdocs/langs/fr_FR/stocks.lang +++ b/htdocs/langs/fr_FR/stocks.lang @@ -66,12 +66,12 @@ RuleForStockManagementIncrease=Règle de gestion des incrémentations de stock ( DeStockOnBill=Décrémenter les stocks physiques sur validation des factures/avoirs clients DeStockOnValidateOrder=Décrémenterr les stocks physiques sur validation des commandes clients DeStockOnShipment=Décrémenter les stocks physiques sur validation des expéditions -DeStockOnShipmentOnClosing=Decrease real stocks when shipping is set to closed +DeStockOnShipmentOnClosing=Décrémente les stocks physiques au classement "clôturée" de l'expédition ReStockOnBill=Incrémenter les stocks physiques sur validation des factures/avoirs fournisseurs ReStockOnValidateOrder=Incrémenter les stocks physiques sur approbation des commandes fournisseurs ReStockOnDispatchOrder=Incrémenter les stocks physiques sur ventilation manuelle dans les entrepôts, après réception de la marchandise -StockOnReception=Increase real stocks on validation of reception -StockOnReceptionOnClosing=Increase real stocks when reception is set to closed +StockOnReception=Incrémenter les stocks physiques sur validation des réceptions +StockOnReceptionOnClosing=Incrémenter les stocks physiques lorsque la réception est classée "Close". OrderStatusNotReadyToDispatch=La commande n'a pas encore ou n'a plus un statut permettant une ventilation en stock. StockDiffPhysicTeoric=Explication de l'écart stock physique-virtuel NoPredefinedProductToDispatch=Pas de produits prédéfinis dans cet objet. Aucune ventilation en stock n'est donc à faire. diff --git a/htdocs/langs/fr_FR/website.lang b/htdocs/langs/fr_FR/website.lang index e52f9f2f955..e8a11ce5594 100644 --- a/htdocs/langs/fr_FR/website.lang +++ b/htdocs/langs/fr_FR/website.lang @@ -71,7 +71,7 @@ Banner=Bandeau BlogPost=Article de Blog WebsiteAccount=Compte de site Web WebsiteAccounts=Comptes de site web -AddWebsiteAccount=Créer un compte sur le site web +AddWebsiteAccount=Créer un compte de site web BackToListOfThirdParty=Retour à la liste pour le Tiers DisableSiteFirst=Désactiver le site Web d'abord MyContainerTitle=Titre de mon site web @@ -98,8 +98,8 @@ NoWebSiteCreateOneFirst=Aucun site Web n'a encore été créé. Créez-en un d'a GoTo=Aller à DynamicPHPCodeContainsAForbiddenInstruction=Vous ajoutez du code PHP dynamique contenant l'instruction PHP '%s ' qui est interdite par défaut en tant que contenu dynamique (voir les options masquées WEBSITE_PHP_ALLOW_xxx pour augmenter la liste des commandes autorisées). NotAllowedToAddDynamicContent=Vous n'êtes pas autorisé à ajouter ou modifier du contenu dynamique PHP sur des sites Web. Demandez la permission ou conservez simplement le code dans les balises php non modifié. -ReplaceWebsiteContent=Remplacer un contenu du site +ReplaceWebsiteContent=Rechercher ou remplacer un contenu du site DeleteAlsoJs=Supprimer également tous les fichiers javascript spécifiques à ce site? DeleteAlsoMedias=Supprimer également tous les fichiers médias spécifiques à ce site? # Export -MyWebsitePages=My website pages +MyWebsitePages=Mes pages de site web diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang index d3ee922f75a..586da7253da 100644 --- a/htdocs/langs/fr_FR/withdrawals.lang +++ b/htdocs/langs/fr_FR/withdrawals.lang @@ -69,8 +69,8 @@ WithBankUsingBANBIC=Pour les comptes bancaires utilisant le code BAN/BIC/SWIFT BankToReceiveWithdraw=Compte bancaire pour recevoir les prélèvements CreditDate=Crédité le WithdrawalFileNotCapable=Impossible de générer le fichier de reçu des prélèvement pour votre pays %s (Votre pays n'est pas supporté) -ShowWithdraw=Show Direct Debit Order -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. +ShowWithdraw=Afficher ordre de prélèvement +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Toutefois, si la facture a au moins une demande de prélèvement non traité, elle ne sera pas classée payée afin de permettre le prélèvement d'abord. DoStandingOrdersBeforePayments=Cet onglet vous permet de demander un prélèvement. Une fois la demande faite, allez dans le menu Banque->Prélèvement pour gérer l'ordre de prélèvement. Lorsque l'ordre de paiement est fermé, le paiement sur la facture sera automatiquement enregistrée, et la facture fermée si le reste à payer est nul. WithdrawalFile=Fichier de prélèvement SetToStatusSent=Mettre au statut "Fichier envoyé" diff --git a/htdocs/langs/he_IL/accountancy.lang b/htdocs/langs/he_IL/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/he_IL/accountancy.lang +++ b/htdocs/langs/he_IL/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index 168e49e5d72..91d7f6f0c2c 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=יצירה / שינוי שירותים Permission534=מחק את השירותים Permission536=ראה / ניהול שירותים נסתרים Permission538=יצוא שירותים -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=לקרוא תרומות Permission702=צור / לשנות תרומות Permission703=מחק תרומות @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/he_IL/bills.lang b/htdocs/langs/he_IL/bills.lang index 073dfd7d215..51e56257d26 100644 --- a/htdocs/langs/he_IL/bills.lang +++ b/htdocs/langs/he_IL/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=כתב זכויות InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/he_IL/companies.lang b/htdocs/langs/he_IL/companies.lang index a2a3da50aa6..e7677c858d7 100644 --- a/htdocs/langs/he_IL/companies.lang +++ b/htdocs/langs/he_IL/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/he_IL/other.lang b/htdocs/langs/he_IL/other.lang index 5f07aac3436..ff970b34c23 100644 --- a/htdocs/langs/he_IL/other.lang +++ b/htdocs/langs/he_IL/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/he_IL/website.lang b/htdocs/langs/he_IL/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/he_IL/website.lang +++ b/htdocs/langs/he_IL/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/hr_HR/accountancy.lang b/htdocs/langs/hr_HR/accountancy.lang index 93dd454abfc..81a9aa03a11 100644 --- a/htdocs/langs/hr_HR/accountancy.lang +++ b/htdocs/langs/hr_HR/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang index bf0af08078e..40f4dc40255 100644 --- a/htdocs/langs/hr_HR/admin.lang +++ b/htdocs/langs/hr_HR/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Poveži s objektom ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Biblioteka korištena za kreiranje PDF-a 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=SMS @@ -819,9 +822,9 @@ Permission532=Kreiraj/izmjeni usluge Permission534=Obriši usluge Permission536=Vidi/upravljaj skrivenim uslugama Permission538=Izvezi usluge -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Čitaj donacije Permission702=Kreiraj/izmjeni donacije Permission703=Obriši donacije @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/hr_HR/bills.lang b/htdocs/langs/hr_HR/bills.lang index 16543aeb9fb..6f68286f9ae 100644 --- a/htdocs/langs/hr_HR/bills.lang +++ b/htdocs/langs/hr_HR/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Zamjenski račun InvoiceReplacementAsk=Zamjenski račun za račun -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Storno računa/knjižno odobrenje InvoiceAvoirAsk=Storno računa/knjižno odobrenje za ispravak računa InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/hr_HR/companies.lang b/htdocs/langs/hr_HR/companies.lang index aa486c9437c..a8189128d76 100644 --- a/htdocs/langs/hr_HR/companies.lang +++ b/htdocs/langs/hr_HR/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias (komercijala, zaštitni znak, ...) AliasNameShort=Alias Name Companies=Kompanije CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Ništa Vendor=Vendor +Supplier=Vendor AddContact=Kreiraj kontakt AddContactAddress=Izradi kontakt/adresu EditContact=Uredi kontakt diff --git a/htdocs/langs/hr_HR/other.lang b/htdocs/langs/hr_HR/other.lang index 755ac4b0040..81defa05c8d 100644 --- a/htdocs/langs/hr_HR/other.lang +++ b/htdocs/langs/hr_HR/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/hr_HR/website.lang b/htdocs/langs/hr_HR/website.lang index e0b26a0ac1b..ada37124c25 100644 --- a/htdocs/langs/hr_HR/website.lang +++ b/htdocs/langs/hr_HR/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang index fe4a3421bb3..d6b1e1ba041 100644 --- a/htdocs/langs/hu_HU/accountancy.lang +++ b/htdocs/langs/hu_HU/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index 78f0003530f..381bd02eadf 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Létrehozza / módosítja szolgáltatások Permission534=Törlés szolgáltatások Permission536=Lásd még: / szolgáltatások kezelésére rejtett Permission538=Export szolgáltatások -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Olvassa el adományokat Permission702=Létrehozza / módosítja adományok Permission703=Törlés adományok @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang index fbc72fd179a..3b14581d116 100644 --- a/htdocs/langs/hu_HU/bills.lang +++ b/htdocs/langs/hu_HU/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma számla InvoiceProFormaDesc=Proforma számla egy kép egy valódi számla, de nincs könyvelési értéke. InvoiceReplacement=Csere számla InvoiceReplacementAsk=A számla csere számlája -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Jóváírás InvoiceAvoirAsk=Számlát javtó jóváíró számla InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/hu_HU/companies.lang b/htdocs/langs/hu_HU/companies.lang index 22ab3c6c139..06b41da68c4 100644 --- a/htdocs/langs/hu_HU/companies.lang +++ b/htdocs/langs/hu_HU/companies.lang @@ -28,7 +28,7 @@ AliasNames=Álnév megnevezése (kereskedelmi, jogvédett, ...) AliasNameShort=Alias Name Companies=Cégek CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Nincs Vendor=Vendor +Supplier=Vendor AddContact=Kapcsolat létrehozása AddContactAddress=Kapcsolat/cím létrehozása EditContact=Kapcsoalt szerkesztése diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang index 553b69e8446..6d0a9f9a1a6 100644 --- a/htdocs/langs/hu_HU/other.lang +++ b/htdocs/langs/hu_HU/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=A beavatkozás %s nem érvényesítette. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/hu_HU/website.lang b/htdocs/langs/hu_HU/website.lang index e84a4c5aa47..6a6693d8b9a 100644 --- a/htdocs/langs/hu_HU/website.lang +++ b/htdocs/langs/hu_HU/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang index 87a4ab6c61b..e54efc59469 100644 --- a/htdocs/langs/id_ID/accountancy.lang +++ b/htdocs/langs/id_ID/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang index 6287fa067bc..122aa5382fb 100644 --- a/htdocs/langs/id_ID/admin.lang +++ b/htdocs/langs/id_ID/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Membuat/Merubah Jasa Permission534=Menghapus Jasa Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Membaca Sumbangan Permission702=Membuat/Merubah Sumbangan Permission703=Menghapus Sumbangan @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/id_ID/bills.lang b/htdocs/langs/id_ID/bills.lang index c2123564da9..81ec0d98abc 100644 --- a/htdocs/langs/id_ID/bills.lang +++ b/htdocs/langs/id_ID/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Tagihan Proforma InvoiceProFormaDesc=Tagihan Proforma adalah gambaran untuk tagihan sebenarnya tapi tidak mempunyai nilai akutansi. InvoiceReplacement=Taghian pengganti InvoiceReplacementAsk=Tagihan pengganti untuk tagihan -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Catatan kredit InvoiceAvoirAsk=Catatan kredit untuk tagihan yang cocok atau yang sudah benar InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/id_ID/companies.lang b/htdocs/langs/id_ID/companies.lang index 4d2e8218d11..cb085d5e958 100644 --- a/htdocs/langs/id_ID/companies.lang +++ b/htdocs/langs/id_ID/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/id_ID/other.lang b/htdocs/langs/id_ID/other.lang index 0424ff71fbd..66f7b57c3fe 100644 --- a/htdocs/langs/id_ID/other.lang +++ b/htdocs/langs/id_ID/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/id_ID/website.lang b/htdocs/langs/id_ID/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/id_ID/website.lang +++ b/htdocs/langs/id_ID/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/is_IS/accountancy.lang b/htdocs/langs/is_IS/accountancy.lang index c15b5f30176..54ec9883ec9 100644 --- a/htdocs/langs/is_IS/accountancy.lang +++ b/htdocs/langs/is_IS/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index 6492046725e..7deb68bf5a0 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Búa til / breyta þjónusta Permission534=Eyða þjónustu Permission536=Sjá / stjórna falinn þjónusta Permission538=Útflutningur þjónustu -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Lesa Fjárframlög Permission702=Búa til / breyta framlög Permission703=Eyða Fjárframlög @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/is_IS/bills.lang b/htdocs/langs/is_IS/bills.lang index cb0b6d34674..d4bcf37cc17 100644 --- a/htdocs/langs/is_IS/bills.lang +++ b/htdocs/langs/is_IS/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma reikning InvoiceProFormaDesc=Proforma reikningur með mynd af a sannur reikning en hefur engar bókhalds gildi. InvoiceReplacement=Skipti reikningi InvoiceReplacementAsk=Skipti reikning fyrir reikning -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit athugið InvoiceAvoirAsk=Credit athugið að leiðrétta reikning InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/is_IS/companies.lang b/htdocs/langs/is_IS/companies.lang index b971ddb1127..29eb767e26f 100644 --- a/htdocs/langs/is_IS/companies.lang +++ b/htdocs/langs/is_IS/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Stofnanir CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Breyta tengilið / netfang diff --git a/htdocs/langs/is_IS/other.lang b/htdocs/langs/is_IS/other.lang index f159c4d45dd..a505cac202b 100644 --- a/htdocs/langs/is_IS/other.lang +++ b/htdocs/langs/is_IS/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Á% afskipti s hefur verið staðfest. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/is_IS/website.lang b/htdocs/langs/is_IS/website.lang index e5fe3f05d8a..c6b0f89f0b0 100644 --- a/htdocs/langs/is_IS/website.lang +++ b/htdocs/langs/is_IS/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang index d48ef981c48..49e09d6bed2 100644 --- a/htdocs/langs/it_IT/accountancy.lang +++ b/htdocs/langs/it_IT/accountancy.lang @@ -9,13 +9,13 @@ ACCOUNTING_EXPORT_AMOUNT=Esporta importo ACCOUNTING_EXPORT_DEVISE=Esporta valuta Selectformat=Scegli il formato del file ACCOUNTING_EXPORT_FORMAT=Scegli il formato del file -ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type +ACCOUNTING_EXPORT_ENDLINE=Seleziona il tipo di ritorno a capo ACCOUNTING_EXPORT_PREFIX_SPEC=Specifica il prefisso per il nome del file ThisService=Questo servizio ThisProduct=Questo prodotto DefaultForService=Predefinito per servizio DefaultForProduct=Predefinito per prodotto -CantSuggest=Can't suggest +CantSuggest=Non posso suggerire AccountancySetupDoneFromAccountancyMenu=La maggior parte del setup della contabilità è effettuata dal menù %s ConfigAccountingExpert=Configurazione del modulo contabilità esperta Journalization=Giornali @@ -23,14 +23,14 @@ Journaux=Giornali JournalFinancial=Giornali finanziari BackToChartofaccounts=Ritorna alla lista dell'account Chartofaccounts=Piano dei conti -CurrentDedicatedAccountingAccount=Current dedicated account +CurrentDedicatedAccountingAccount=Attuale account dedicato AssignDedicatedAccountingAccount=Nuovo account da assegnare InvoiceLabel=Etichetta fattura -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account +OverviewOfAmountOfLinesNotBound=Panoramica della quantità di linee non collegate a un account contabile +OverviewOfAmountOfLinesBound=Panoramica della quantità di linee già associate a un account contabile OtherInfo=Altre informazioni DeleteCptCategory=Rimuovi conto corrente dal gruppo -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group? +ConfirmDeleteCptCategory=Sei sicuro di voler rimuovere questo account contabile dal gruppo di account contabilità? JournalizationInLedgerStatus=Stato delle registrazioni AlreadyInGeneralLedger=Già registrato nei libri mastri NotYetInGeneralLedger=Non ancora registrato nei libri mastri @@ -42,7 +42,7 @@ CountriesInEEC=Paesi nella CEE CountriesNotInEEC=Paesi al di fuori della CEE CountriesInEECExceptMe=Paesi nella CEE eccetto %s CountriesExceptMe=Tutti i paesi eccetto %s -AccountantFiles=Export accounting documents +AccountantFiles=Esportare documenti contabili MainAccountForCustomersNotDefined=Account principale di contabilità per i clienti non definito nel setup MainAccountForSuppliersNotDefined=Account principale di contabilità per fornitori non definito nel setup @@ -53,10 +53,10 @@ MainAccountForSubscriptionPaymentNotDefined=Account principale di contabilità p AccountancyArea=Area di contabilità AccountancyAreaDescIntro=L'utilizzo del modulo di contabilità è effettuato in diversi step: AccountancyAreaDescActionOnce=Le seguenti azioni vengono di solito eseguite una volta sola, o una volta all'anno... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=I prossimi passi dovrebbero essere fatti per farti risparmiare tempo in futuro, suggerendoti l'account di contabilità predefinito corretto quando fai la registrazione nel Giornale (registra nel Libro Mastro e Contabilità Generale) AccountancyAreaDescActionFreq=Le seguenti azioni vengono di solito eseguite ogni mese, settimana o giorno per le grandi compagnie... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=PASSO %s: Crea o controlla il contenuto del tuo elenco del giornale dal menu %s AccountancyAreaDescChartModel=STEP %s: Crea un modello di piano dei conti dal menu %s AccountancyAreaDescChart=STEP %s: Crea o seleziona il tuo piano dei conti dal menu %s @@ -79,40 +79,40 @@ AccountancyAreaDescAnalyze=STEP %s: Aggiunti o modifica le transazioni esistenti AccountancyAreaDescClosePeriod=STEP %s: Chiudo il periodo così non verranno fatte modifiche in futuro. TheJournalCodeIsNotDefinedOnSomeBankAccount=Uno step obbligatorio non è stato completato (il codice del diario contabile non è stato definito per tutti i conti bancari) -Selectchartofaccounts=Seleziona una lista degli account +Selectchartofaccounts=Seleziona il piano dei conti attivo ChangeAndLoad=Cambia e carica -Addanaccount=Aggiungi un account di contabilità -AccountAccounting=Account di contabilità +Addanaccount=Aggiungi un conto di contabilità +AccountAccounting=Conto di contabilità AccountAccountingShort=Conto -SubledgerAccount=Subledger account -SubledgerAccountLabel=Subledger account label -ShowAccountingAccount=Mostra account di contabilità +SubledgerAccount=Conto del registro secondario +SubledgerAccountLabel=Etichetta del conto Registro secondario +ShowAccountingAccount=Mostra conti di contabilità ShowAccountingJournal=Mostra diario contabile -AccountAccountingSuggest=Account per contabilità suggerito -MenuDefaultAccounts=Account di default +AccountAccountingSuggest=Conto suggerito per contabilità +MenuDefaultAccounts=Conti predefiniti MenuBankAccounts=Conti bancari MenuVatAccounts=Conti IVA MenuTaxAccounts=Imposte fiscali MenuExpenseReportAccounts=Conto spese MenuLoanAccounts=Conti di prestito -MenuProductsAccounts=Account prodotto -MenuClosureAccounts=Closure accounts -ProductsBinding=Account prodotti -TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting -Binding=Vincola all'account +MenuProductsAccounts=Conto prodotto +MenuClosureAccounts=Conti di chiusura +ProductsBinding=Conti prodotti +TransferInAccounting=Trasferimento in contabilità +RegistrationInAccounting=Registrazione in contabilità +Binding=Associazione ai conti CustomersVentilation=Collegamento fatture attive SuppliersVentilation=Associa fattura fornitore ExpenseReportsVentilation=Associa nota spese CreateMvts=Crea nuova transazione UpdateMvts=Modifica una transazione ValidTransaction=Valida transazione -WriteBookKeeping=Register transactions in Ledger +WriteBookKeeping=Registrare le transazioni nel Libro Mastro Bookkeeping=Libro contabile AccountBalance=Saldo ObjectsRef=Sorgente oggetto in riferimento -CAHTF=Total purchase vendor before tax -TotalExpenseReport=Report spese totali +CAHTF=Totale acquisto al lordo delle imposte +TotalExpenseReport=Rapporto spese totale InvoiceLines=Righe di fatture da vincolare InvoiceLinesDone=Righe di fatture bloccate ExpenseReportLines=Linee di note spese da associare @@ -120,14 +120,14 @@ ExpenseReportLinesDone=Linee vincolate di note spese IntoAccount=Collega linee con il piano dei conti -Ventilate=Vincola +Ventilate=Associa LineId=Id di linea Processing=In elaborazione EndProcessing=Fine del processo SelectedLines=Righe selezionate Lineofinvoice=Riga fattura LineOfExpenseReport=Linea di note spese -NoAccountSelected=Nessun account di contabilità selezionato +NoAccountSelected=Nessun conto di contabilità selezionato VentilatedinAccount=Collegamento completato al piano dei conti NotVentilatedinAccount=Non collegato al piano dei conti XLineSuccessfullyBinded=%sprodotti/servizi correttamente collegato ad un piano dei conti @@ -138,85 +138,86 @@ ACCOUNTING_LIST_SORT_VENTILATION_TODO=Inizia ad ordinare la pagina "Associazioni ACCOUNTING_LIST_SORT_VENTILATION_DONE=Inizia ad ordinare la pagina "Associazioni effettuate" dagli elementi più recenti ACCOUNTING_LENGTH_DESCRIPTION=Tronca la descrizione di prodotto & servizi negli elenchi dopo x caratteri (Consigliato = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Troncare il modulo di descrizione del conto prodotti e servizi in elenchi dopo x caratteri (Migliore = 50) ACCOUNTING_LENGTH_GACCOUNT=Lunghezza generale del piano dei conti (se imposti come valore 6 qui, il conto 706 apparirà come 706000) -ACCOUNTING_LENGTH_AACCOUNT=Lunghezza della contabilità di terze parti (se imposti un valore uguale a 6 ad esempio, l'account '401' apparirà come '401000' sullo schermo) -ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zeros at the end of an accounting account. Needed by some countries (like Switzerland). If set to off (default), you can set the following two parameters to ask the application to add virtual zeros. -BANK_DISABLE_DIRECT_INPUT=Disabilita la registrazione diretta della transazione sul conto banca -ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal -ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties) +ACCOUNTING_LENGTH_AACCOUNT=Lunghezza della contabilità di terze parti (se imposti un valore uguale a 6 ad esempio, il conto '401' apparirà come '401000' sullo schermo) +ACCOUNTING_MANAGE_ZERO=Consentire di gestire un diverso numero di zeri alla fine di un conto contabile. Necessario in alcuni paesi (come la Svizzera). Se impostato su off (predefinito), è possibile impostare i seguenti due parametri per chiedere all'applicazione di aggiungere zeri virtuali. +BANK_DISABLE_DIRECT_INPUT=Disabilita la registrazione diretta della transazione nel conto bancario +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Abilita la bozza di esportazione sul giornale +ACCOUNTANCY_COMBO_FOR_AUX=Abilita l'elenco combinato per il conto secondario (potrebbe essere lento se hai un sacco di terze parti) ACCOUNTING_SELL_JOURNAL=Giornale Vendite ACCOUNTING_PURCHASE_JOURNAL=Giornale Acquisti ACCOUNTING_MISCELLANEOUS_JOURNAL=Giornale Varie ACCOUNTING_EXPENSEREPORT_JOURNAL=Giornale Note Spese ACCOUNTING_SOCIAL_JOURNAL=Giornale Sociale -ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_HAS_NEW_JOURNAL=Ha un nuovo giornale -ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) -ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) -ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure +ACCOUNTING_RESULT_PROFIT=Conto contabile risultante (profitto) +ACCOUNTING_RESULT_LOSS=Conto contabile risultato (perdita) +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Giornale di chiusura -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conto contabile del bonifico bancario transitorio +TransitionalAccount=Conto di trasferimento bancario transitorio -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Conto di contabilità di attesa +DONATION_ACCOUNTINGACCOUNT=Conto di contabilità per registrare le donazioni +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Conto contabile per registrare gli abbonamenti -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account di contabilità predefinito per i prodotti acquistati (se non definito nella scheda prodotto) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account di contabilità predefinito per i prodotti venduti (se non definito nella scheda prodotto) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the sold products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the sold products export out of EEC (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Account di contabilità predefinito per i servizi acquistati (se non definito nella scheda servizio) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account di contabilità predefinito per i servizi venduti (se non definito nella scheda servizio) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Conto di contabilità predefinito per i prodotti acquistati (se non definito nella scheda prodotto) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Conto di contabilità predefinito per i prodotti venduti (se non definito nella scheda prodotto) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Conto contabile per impostazione predefinita per i prodotti venduti in CEE (utilizzato se non definito nella scheda prodotto) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Conto contabile per impostazione predefinita per l'esportazione dei prodotti venduti fuori dalla CEE (utilizzato se non definito nella scheda prodotto) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Conto di contabilità per impostazione predefinita per i servizi acquistati (utilizzato se non definito nel foglio di servizio) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conto di contabilità per impostazione predefinita per i servizi venduti (utilizzato se non definito nel foglio di servizio) Doctype=Tipo documento Docdate=Data Docref=Riferimento -LabelAccount=Etichetta account +LabelAccount=Etichetta conto LabelOperation=Etichetta operazione Sens=Verso -LetteringCode=Lettering code -Lettering=Lettering +LetteringCode=Codice impressioni +Lettering=Impressioni Codejournal=Giornale -JournalLabel=Journal label +JournalLabel=Etichetta del giornale NumPiece=Numero del pezzo TransactionNumShort=Num. transazione -AccountingCategory=Personalized groups +AccountingCategory=Gruppi personalizzati GroupByAccountAccounting=Raggruppamento piano dei conti -AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. -ByAccounts=By accounts -ByPredefinedAccountGroups=By predefined groups +AccountingAccountGroupsDesc=Qui puoi definire alcuni gruppi di conti contabili. Saranno utilizzati per rapporti contabili personalizzati. +ByAccounts=Per conto +ByPredefinedAccountGroups=Per gruppi predefiniti ByPersonalizedAccountGroups=Gruppi personalizzati ByYear=Per anno NotMatch=Non impostato DeleteMvt=Cancella linee libro contabile DelYear=Anno da cancellare DelJournal=Giornale da cancellare -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criterion is required. -ConfirmDeleteMvtPartial=This will delete the transaction from the Ledger (all lines related to same transaction will be deleted) -FinanceJournal=Finance journal -ExpenseReportsJournal=Expense reports journal -DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined -ProductAccountNotDefined=Account for product not defined -FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined +ConfirmDeleteMvt=Questo cancellerà tutte le righe del libro mastro per l'anno e/o da un giornale specifico. È richiesto almeno un criterio. +ConfirmDeleteMvtPartial=Questo cancellerà la transazione dal libro mastro (tutte le righe relative alla stessa transazione saranno cancellate) +FinanceJournal=Giornale delle finanze +ExpenseReportsJournal=Rapporto spese +DescFinanceJournal=Giornale finanziario che include tutti i tipi di pagamenti per conto bancario +DescJournalOnlyBindedVisible=Questa è una vista del record che sono legati a un conto contabile e possono essere registrati nel libro mastro. +VATAccountNotDefined=Conto per IVA non definito +ThirdpartyAccountNotDefined=Conto per terze parti non definito +ProductAccountNotDefined=Account per prodotto non definito +FeeAccountNotDefined=Conto per tassa non definito +BankAccountNotDefined=Conto per banca non definito CustomerInvoicePayment=Pagamento fattura attiva -ThirdPartyAccount=Third-party account +ThirdPartyAccount=Conto terze parti NewAccountingMvt=Nuova transazione NumMvts=Numero della transazione ListeMvts=Lista dei movimenti ErrorDebitCredit=Debito e Credito non possono avere un valore contemporaneamente -AddCompteFromBK=Add accounting accounts to the group -ReportThirdParty=List third-party account -DescThirdPartyReport=Consult here the list of third-party customers and vendors and their accounting accounts +AddCompteFromBK=Aggiungi conto di contabilità al gruppo +ReportThirdParty=Elenca conti di terze parti +DescThirdPartyReport=Consulta qui l'elenco dei clienti e fornitori di terze parti e i loro conti contabili ListAccounts=Lista delle voci del piano dei conti -UnknownAccountForThirdparty=Unknown third-party account. We will use %s -UnknownAccountForThirdpartyBlocking=Unknown third-party account. Blocking error -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. We will use %s +UnknownAccountForThirdparty=Conto di terze parti sconosciuto. Useremo %s +UnknownAccountForThirdpartyBlocking=Conto di terze parti sconosciuto. Errore di blocco +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Conto di terzi non definito o sconosciuto. Useremo %s ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Third-party account not defined or third party unknown. Blocking error. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third-party account and waiting account not defined. Blocking error PaymentsNotLinkedToProduct=Payment not linked to any product / service diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index 76561fafefa..61af6b824bb 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Campo calcolato 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Libreria utilizzata per generare PDF 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=SMS @@ -493,7 +496,7 @@ DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploade # Modules Module0Name=Utenti e gruppi Module0Desc=Gestione utenti/impiegati e gruppi -Module1Name=Sogg. Terzi +Module1Name=Soggetti terzi Module1Desc=Companies and contacts management (customers, prospects...) Module2Name=Commerciale Module2Desc=Gestione commerciale @@ -541,7 +544,7 @@ Module75Name=Spese di viaggio e note spese Module75Desc=Gestione spese di viaggio e note spese Module80Name=Spedizioni Module80Desc=Shipments and delivery note management -Module85Name=Banks & Cash +Module85Name=Banche & Denaro Module85Desc=Gestione di conti bancari o conti di cassa Module100Name=External Site Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. @@ -772,7 +775,7 @@ PermissionAdvanced253=Creare/modificare utenti interni/esterni e permessi Permission254=Eliminare o disattivare altri utenti Permission255=Cambiare le password di altri utenti Permission256=Eliminare o disabilitare altri utenti -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=Estendere l'accesso a tutte le terze parti (non solo le terze parti per le quali tale utente è un rappresentante di vendita).
Non efficace per gli utenti esterni (sempre limitato a se stessi per proposte, ordini, fatture, contratti, ecc.).
Non efficace per i progetti (solo le regole sulle autorizzazioni del progetto, la visibilità e le questioni relative all'assegnazione). Permission271=Vedere CA Permission272=Vedere fatture Permission273=Emettere fatture @@ -819,9 +822,9 @@ Permission532=Creare/modificare servizi Permission534=Eliminare servizi Permission536=Vedere/gestire servizi nascosti Permission538=Esportare servizi -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Vedere donazioni Permission702=Creare/modificare donazioni Permission703=Eliminare donazioni @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -927,8 +930,8 @@ Permission63001=Leggi risorse Permission63002=Crea/modifica risorse Permission63003=Elimina risorsa Permission63004=Collega le risorse agli eventi -DictionaryCompanyType=Third-party types -DictionaryCompanyJuridicalType=Third-party legal entities +DictionaryCompanyType=Tipo di soggetto terzo +DictionaryCompanyJuridicalType=Entità legali di terze parti DictionaryProspectLevel=Liv. cliente potenziale DictionaryCanton=States/Provinces DictionaryRegion=Regioni @@ -939,7 +942,7 @@ DictionaryActions=Tipi di azioni/eventi DictionarySocialContributions=Types of social or fiscal taxes DictionaryVAT=Aliquote IVA o Tasse di vendita DictionaryRevenueStamp=Amount of tax stamps -DictionaryPaymentConditions=Payment Terms +DictionaryPaymentConditions=Termini di Pagamento DictionaryPaymentModes=Payment Modes DictionaryTypeContact=Tipi di contatti/indirizzi DictionaryTypeOfContainer=Website - Type of website pages/containers @@ -982,9 +985,9 @@ LocalTax1Management=Secondo tipo di tassa LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=Non usare terza tassa -LocalTax2IsUsedDesc=Use a third type of tax (other than first one) +LocalTax2IsUsedDesc=Utilizzare un terzo tipo di imposta (diversa dalla prima) LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one) -LocalTax2Management=Terzo tipo di tassa +LocalTax2Management=Terzo: tipo di tassa LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES=Gestione RE @@ -1180,7 +1183,7 @@ ExtraFieldsLines=Complementary attributes (lines) ExtraFieldsLinesRec=Complementary attributes (templates invoices lines) ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (third party) +ExtraFieldsThirdParties=Attributi complementari (soggetto terzo) ExtraFieldsContacts=Complementary attributes (contacts/address) ExtraFieldsMember=Attributi Complementari (membri) ExtraFieldsMemberType=Attributi Complementari (tipo di membro) @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/it_IT/banks.lang b/htdocs/langs/it_IT/banks.lang index 9195288e505..48a20673482 100644 --- a/htdocs/langs/it_IT/banks.lang +++ b/htdocs/langs/it_IT/banks.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - banks Bank=Banca -MenuBankCash=Banks | Cash +MenuBankCash=Banche | Denaro MenuVariousPayment=Pagamenti vari MenuNewVariousPayment=Nuovo pagamento vario BankName=Nome della Banca @@ -30,7 +30,7 @@ AllTime=Dall'inizio Reconciliation=Riconciliazione RIB=Coordinate bancarie IBAN=Codice IBAN -BIC=BIC/SWIFT code +BIC=Codice BIC/SWIFT SwiftValid=Il codice BIC/SWIFT è valido SwiftVNotalid=BIC/SWIFT non valido IbanValid=Il codice IBAN è valido diff --git a/htdocs/langs/it_IT/bills.lang b/htdocs/langs/it_IT/bills.lang index 71887c0b194..4955a8a9598 100644 --- a/htdocs/langs/it_IT/bills.lang +++ b/htdocs/langs/it_IT/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Fattura proforma InvoiceProFormaDesc=La fattura proforma è uguale ad una fattura vera, ma non ha valore contabile. InvoiceReplacement=Fattura sostitutiva InvoiceReplacementAsk=Fattura sostitutiva -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Nota di credito InvoiceAvoirAsk=Nota di credito per correggere fattura InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). @@ -88,8 +88,8 @@ CodePaymentMode=Payment Type (code) LabelPaymentMode=Payment Type (label) PaymentModeShort=Payment Type PaymentTerm=Payment Term -PaymentConditions=Payment Terms -PaymentConditionsShort=Payment Terms +PaymentConditions=Termini di Pagamento +PaymentConditionsShort=Termini di Pagamento PaymentAmount=Importo del pagamento PaymentHigherThanReminderToPay=Pagamento superiore alla rimanenza da pagare HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. @@ -251,7 +251,7 @@ ClassifyBill=Classificazione fattura SupplierBillsToPay=Unpaid vendor invoices CustomerBillsUnpaid=Fatture attive non pagate NonPercuRecuperable=Non recuperabile -SetConditions=Set Payment Terms +SetConditions=Imposta Termini di Pagamento SetMode=Set Payment Type SetRevenuStamp=Imposta marca da bollo Billed=Fatturati @@ -375,11 +375,11 @@ ViewAvailableGlobalDiscounts=Mostra gli sconti disponibili Statut=Stato PaymentConditionShortRECEP=Rimessa diretta PaymentConditionRECEP=Rimessa diretta -PaymentConditionShort30D=a 30 giorni +PaymentConditionShort30D=30 giorni PaymentCondition30D=Pagamento a 30 giorni PaymentConditionShort30DENDMONTH=30 giorni fine mese PaymentCondition30DENDMONTH=Pagamento a 30 giorni fine mese -PaymentConditionShort60D=a 60 giorni +PaymentConditionShort60D=60 giorni PaymentCondition60D=Pagamento a 60 giorni PaymentConditionShort60DENDMONTH=60 giorni fine mese PaymentCondition60DENDMONTH=Pagamento a 60 giorni fine mese @@ -425,10 +425,10 @@ DeskCode=Branch code BankAccountNumber=C.C. BankAccountNumberKey=Checksum Residence=Indirizzo -IBANNumber=IBAN account number +IBANNumber=Codice IBAN IBAN=IBAN BIC=BIC/SWIFT -BICNumber=BIC/SWIFT code +BICNumber=Codice BIC/SWIFT ExtraInfos=Extra info RegulatedOn=Regolamentato su ChequeNumber=Assegno N° @@ -446,7 +446,7 @@ IntracommunityVATNumber=Intra-Community VAT ID PaymentByChequeOrderedTo=Check payments (including tax) are payable to %s, send to PaymentByChequeOrderedToShort=Check payments (incl. tax) are payable to SendTo=spedire a -PaymentByTransferOnThisBankAccount=Payment by transfer to the following bank account +PaymentByTransferOnThisBankAccount=Pagamento tramite Bonifico sul seguente Conto Bancario VATIsNotUsedForInvoice=* Non applicabile IVA art-293B del CGI LawApplicationPart1=Con l'applicazione della legge 80.335 del 12/05/80 LawApplicationPart2=I beni restano di proprietà della diff --git a/htdocs/langs/it_IT/boxes.lang b/htdocs/langs/it_IT/boxes.lang index 259920ab099..1879e9f03c1 100644 --- a/htdocs/langs/it_IT/boxes.lang +++ b/htdocs/langs/it_IT/boxes.lang @@ -23,16 +23,16 @@ BoxTitleLastRssInfos=Ultime %s notizie da %s BoxTitleLastProducts=Products/Services: last %s modified BoxTitleProductsAlertStock=Prodotti: allerta scorte BoxTitleLastSuppliers=Ultimi %s ordini fornitore -BoxTitleLastModifiedSuppliers=Vendors: last %s modified -BoxTitleLastModifiedCustomers=Customers: last %s modified +BoxTitleLastModifiedSuppliers=Fornitori: ultimi %s modificati +BoxTitleLastModifiedCustomers=Clienti: ultimi %s modificati BoxTitleLastCustomersOrProspects=Ultimi %s clienti o potenziali clienti BoxTitleLastCustomerBills=Latest %s Customer invoices BoxTitleLastSupplierBills=Latest %s Vendor invoices -BoxTitleLastModifiedProspects=Prospects: last %s modified +BoxTitleLastModifiedProspects=Clienti potenziali: ultimi %s modificati BoxTitleLastModifiedMembers=Ultimi %s membri BoxTitleLastFicheInter=Ultimi %s interventi modificati BoxTitleOldestUnpaidCustomerBills=Fatture cliente: %s non pagate più vecchie -BoxTitleOldestUnpaidSupplierBills=Vendor Invoices: oldest %s unpaid +BoxTitleOldestUnpaidSupplierBills=Fatture fornitori: %s più vecchie non pagate BoxTitleCurrentAccounts=Conti aperti: bilanci BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified BoxMyLastBookmarks=Bookmarks: latest %s @@ -76,7 +76,7 @@ ForObject=On %s BoxTitleLastModifiedSupplierBills=Vendor Invoices: last %s modified BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified -BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified +BoxTitleLastModifiedCustomerOrders=Ordini: ultimi %s modificati BoxTitleLastModifiedPropals=Ultime %s proposte modificate ForCustomersInvoices=Fatture attive ForCustomersOrders=Ordini cliente diff --git a/htdocs/langs/it_IT/companies.lang b/htdocs/langs/it_IT/companies.lang index 9666ac35dfa..556096c3565 100644 --- a/htdocs/langs/it_IT/companies.lang +++ b/htdocs/langs/it_IT/companies.lang @@ -32,7 +32,7 @@ PriceFormatInCurrentLanguage=Price display format in the current language and cu ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party -ThirdParties=Third-parties +ThirdParties=Soggetti Terzi ThirdPartyProspects=Clienti potenziali ThirdPartyProspectsStats=Clienti potenziali ThirdPartyCustomers=Clienti @@ -257,8 +257,8 @@ ProfId1DZ=RC ProfId2DZ=Art. ProfId3DZ=NIF ProfId4DZ=NIS -VATIntra=VAT ID -VATIntraShort=VAT ID +VATIntra=Partita IVA +VATIntraShort=Partita IVA VATIntraSyntaxIsValid=La sintassi è valida VATReturn=Rimborso IVA ProspectCustomer=Cliente/Cliente potenziale @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Sconti globali fornitore (inseriti da tutti gli SupplierAbsoluteDiscountMy=Sconti globali fornitore (inseriti da me stesso) DiscountNone=Nessuno Vendor=Fornitore +Supplier=Fornitore AddContact=Crea contatto AddContactAddress=Crea contatto/indirizzo EditContact=Modifica contatto/indirizzo @@ -434,7 +435,7 @@ ErrorThirdpartiesMerge=Si è verificato un errore durante l'eliminazione di terz NewCustomerSupplierCodeProposed=Customer or Vendor code already used, a new code is suggested #Imports PaymentTypeCustomer=Payment Type - Customer -PaymentTermsCustomer=Payment Terms - Customer +PaymentTermsCustomer=Termini di Pagamento - Cliente PaymentTypeSupplier=Payment Type - Vendor PaymentTermsSupplier=Payment Term - Vendor MulticurrencyUsed=Use Multicurrency diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang index f7995b0ef97..1cdfe3e6746 100644 --- a/htdocs/langs/it_IT/main.lang +++ b/htdocs/langs/it_IT/main.lang @@ -370,12 +370,12 @@ PriceQtyMinHTCurrency=Price quantity min. (excl. tax) (currency) Percentage=Percentuale Total=Totale SubTotal=Totale parziale -TotalHTShort=Total (excl.) -TotalHT100Short=Total 100%% (excl.) -TotalHTShortCurrency=Total (excl. in currency) +TotalHTShort=Totale Netto +TotalHT100Short=Totalke 100 1%% Netto +TotalHTShortCurrency=Totale Netto in valuta TotalTTCShort=Totale (IVA inc.) -TotalHT=Total (excl. tax) -TotalHTforthispage=Total (excl. tax) for this page +TotalHT=Totale Netto +TotalHTforthispage=Totale Netto per questa Pagina Totalforthispage=Totale in questa pagina TotalTTC=Totale (IVA inclusa) TotalTTCToYourCredit=Totale (IVA inclusa) a tuo credito @@ -462,8 +462,8 @@ Generate=Genera Duration=Durata TotalDuration=Durata totale Summary=Riepilogo -DolibarrStateBoard=Database Statistics -DolibarrWorkBoard=Open Items +DolibarrStateBoard=Statistiche Gestionale +DolibarrWorkBoard=Oggetti Aperti NoOpenedElementToProcess=Nessun elemento aperto da elaborare Available=Disponibile NotYetAvailable=Non ancora disponibile diff --git a/htdocs/langs/it_IT/members.lang b/htdocs/langs/it_IT/members.lang index 40f41c18a6c..7e387e3ebd3 100644 --- a/htdocs/langs/it_IT/members.lang +++ b/htdocs/langs/it_IT/members.lang @@ -26,7 +26,7 @@ MembersListQualified=Elenco dei membri qualificati MenuMembersToValidate=Membri da convalidare MenuMembersValidated=Membri convalidati MenuMembersUpToDate=Membri aggiornati -MenuMembersNotUpToDate=Membri non aggiornTI +MenuMembersNotUpToDate=Membri non aggiornati MenuMembersResiliated=Terminated members MembersWithSubscriptionToReceive=Membri con adesione da riscuotere DateSubscription=Data di adesione diff --git a/htdocs/langs/it_IT/other.lang b/htdocs/langs/it_IT/other.lang index b1c16f67868..4ce59b419c6 100644 --- a/htdocs/langs/it_IT/other.lang +++ b/htdocs/langs/it_IT/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Numero di ordini fornitore NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Intervento %s convalidato EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/it_IT/website.lang b/htdocs/langs/it_IT/website.lang index 8f9b03f504a..2cd44a0519c 100644 --- a/htdocs/langs/it_IT/website.lang +++ b/htdocs/langs/it_IT/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang index e24f3e5506c..11b5f42eb07 100644 --- a/htdocs/langs/ja_JP/accountancy.lang +++ b/htdocs/langs/ja_JP/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index 201227b6b2c..d3e4b8730ca 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=サービスを作成/変更 Permission534=サービスを削除する Permission536=隠されたサービスを参照してください/管理 Permission538=輸出サービス -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=寄付を読む Permission702=寄付を作成/変更 Permission703=寄付を削除します。 @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang index 65249f1760e..f821606de2e 100644 --- a/htdocs/langs/ja_JP/bills.lang +++ b/htdocs/langs/ja_JP/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=見積送り状 InvoiceProFormaDesc=プロフォーマインボイスは、請求書のイメージですが、どんな会計の値を持っていません。 InvoiceReplacement=交換用の請求書 InvoiceReplacementAsk=請求書の交換請求書 -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=クレジットメモ InvoiceAvoirAsk=請求書を訂正するためにクレジットノート InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/ja_JP/companies.lang b/htdocs/langs/ja_JP/companies.lang index b7983355f88..46d03183003 100644 --- a/htdocs/langs/ja_JP/companies.lang +++ b/htdocs/langs/ja_JP/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=企業 CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=なし Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=コンタクト/アドレスを編集 diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang index bb8dc667a4b..f511dcb82ee 100644 --- a/htdocs/langs/ja_JP/other.lang +++ b/htdocs/langs/ja_JP/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=介入%sが検証されています。 EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/ja_JP/website.lang b/htdocs/langs/ja_JP/website.lang index a923caf67b7..5cd14c6da32 100644 --- a/htdocs/langs/ja_JP/website.lang +++ b/htdocs/langs/ja_JP/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/ka_GE/accountancy.lang b/htdocs/langs/ka_GE/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/ka_GE/accountancy.lang +++ b/htdocs/langs/ka_GE/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/ka_GE/admin.lang b/htdocs/langs/ka_GE/admin.lang index 9eaa12ec9be..f30d6edd9f7 100644 --- a/htdocs/langs/ka_GE/admin.lang +++ b/htdocs/langs/ka_GE/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/ka_GE/bills.lang b/htdocs/langs/ka_GE/bills.lang index c9d46e4ffff..4f114d4df1c 100644 --- a/htdocs/langs/ka_GE/bills.lang +++ b/htdocs/langs/ka_GE/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/ka_GE/companies.lang b/htdocs/langs/ka_GE/companies.lang index 77bd4f8a445..578f5cb8920 100644 --- a/htdocs/langs/ka_GE/companies.lang +++ b/htdocs/langs/ka_GE/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/ka_GE/other.lang b/htdocs/langs/ka_GE/other.lang index a6802140be3..8a5ccdbab5c 100644 --- a/htdocs/langs/ka_GE/other.lang +++ b/htdocs/langs/ka_GE/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/ka_GE/website.lang b/htdocs/langs/ka_GE/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/ka_GE/website.lang +++ b/htdocs/langs/ka_GE/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/kn_IN/accountancy.lang b/htdocs/langs/kn_IN/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/kn_IN/accountancy.lang +++ b/htdocs/langs/kn_IN/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/kn_IN/admin.lang b/htdocs/langs/kn_IN/admin.lang index c2ac3d4bc8e..4f98d74a676 100644 --- a/htdocs/langs/kn_IN/admin.lang +++ b/htdocs/langs/kn_IN/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/kn_IN/bills.lang b/htdocs/langs/kn_IN/bills.lang index cc78ae53b31..e7b17c926d2 100644 --- a/htdocs/langs/kn_IN/bills.lang +++ b/htdocs/langs/kn_IN/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/kn_IN/companies.lang b/htdocs/langs/kn_IN/companies.lang index 483d54f3a45..b24894cd7f8 100644 --- a/htdocs/langs/kn_IN/companies.lang +++ b/htdocs/langs/kn_IN/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=ಕಂಪನಿಗಳು CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=ಯಾವುದೂ ಇಲ್ಲ Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=ಸಂಪರ್ಕವನ್ನು ತಿದ್ದಿ diff --git a/htdocs/langs/kn_IN/other.lang b/htdocs/langs/kn_IN/other.lang index 8540b2f5d2b..a9c16fa7894 100644 --- a/htdocs/langs/kn_IN/other.lang +++ b/htdocs/langs/kn_IN/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/kn_IN/website.lang b/htdocs/langs/kn_IN/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/kn_IN/website.lang +++ b/htdocs/langs/kn_IN/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/ko_KR/accountancy.lang b/htdocs/langs/ko_KR/accountancy.lang index 734271adbf0..3ce2ffde609 100644 --- a/htdocs/langs/ko_KR/accountancy.lang +++ b/htdocs/langs/ko_KR/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang index 5b2ce325260..00d354072b1 100644 --- a/htdocs/langs/ko_KR/admin.lang +++ b/htdocs/langs/ko_KR/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/ko_KR/bills.lang b/htdocs/langs/ko_KR/bills.lang index 2d92a5836da..fc1a2e2058d 100644 --- a/htdocs/langs/ko_KR/bills.lang +++ b/htdocs/langs/ko_KR/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/ko_KR/companies.lang b/htdocs/langs/ko_KR/companies.lang index f5e2e79962a..d446029ff46 100644 --- a/htdocs/langs/ko_KR/companies.lang +++ b/htdocs/langs/ko_KR/companies.lang @@ -28,7 +28,7 @@ AliasNames=별칭 (상업용, 상표권 ...) AliasNameShort=Alias Name Companies=회사 CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=없음 Vendor=Vendor +Supplier=Vendor AddContact=연락처 생성 AddContactAddress=연락처 / 주소 생성 EditContact=연락처 편집 diff --git a/htdocs/langs/ko_KR/other.lang b/htdocs/langs/ko_KR/other.lang index dac4183c645..d7000f4e661 100644 --- a/htdocs/langs/ko_KR/other.lang +++ b/htdocs/langs/ko_KR/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/ko_KR/website.lang b/htdocs/langs/ko_KR/website.lang index 09d273e28e7..c73b128d7bc 100644 --- a/htdocs/langs/ko_KR/website.lang +++ b/htdocs/langs/ko_KR/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang index 54ff1f68337..d64c13327b4 100644 --- a/htdocs/langs/lo_LA/accountancy.lang +++ b/htdocs/langs/lo_LA/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang index 9da8cc7c37b..f3335cb7b23 100644 --- a/htdocs/langs/lo_LA/admin.lang +++ b/htdocs/langs/lo_LA/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/lo_LA/bills.lang b/htdocs/langs/lo_LA/bills.lang index c9d46e4ffff..4f114d4df1c 100644 --- a/htdocs/langs/lo_LA/bills.lang +++ b/htdocs/langs/lo_LA/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/lo_LA/companies.lang b/htdocs/langs/lo_LA/companies.lang index 7790e8d173e..20e74ab2ac1 100644 --- a/htdocs/langs/lo_LA/companies.lang +++ b/htdocs/langs/lo_LA/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/lo_LA/other.lang b/htdocs/langs/lo_LA/other.lang index b2242a76887..67df8a82501 100644 --- a/htdocs/langs/lo_LA/other.lang +++ b/htdocs/langs/lo_LA/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/lo_LA/website.lang b/htdocs/langs/lo_LA/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/lo_LA/website.lang +++ b/htdocs/langs/lo_LA/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/lt_LT/accountancy.lang b/htdocs/langs/lt_LT/accountancy.lang index e95f36b0abd..d3befafadf9 100644 --- a/htdocs/langs/lt_LT/accountancy.lang +++ b/htdocs/langs/lt_LT/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang index 2a4945d9fae..40655912693 100644 --- a/htdocs/langs/lt_LT/admin.lang +++ b/htdocs/langs/lt_LT/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Nuoroda į objektą, ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Sukurti/keisti paslaugas Permission534=Ištrinti paslaugas Permission536=Žiūrėti/tvarkyti paslėptas paslaugas Permission538=Eksportuoti paslaugas -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Skaityti aukas Permission702=Sukurti/keisti aukas Permission703=Ištrinti aukas @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/lt_LT/bills.lang b/htdocs/langs/lt_LT/bills.lang index c40206e8d2d..a0f656f429a 100644 --- a/htdocs/langs/lt_LT/bills.lang +++ b/htdocs/langs/lt_LT/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=išankstinė (proforma) sąskaita-faktūra InvoiceProFormaDesc=Išankstinė sąskaita-faktūra yra tikros sąskaitos forma, bet neatvaizduojama realioje apskaitoje. InvoiceReplacement=Sąskaitos-faktūros pakeitimas InvoiceReplacementAsk=Sąskaitos-faktūros pakeitimas sąskaita-faktūra -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Kreditinė sąskaita (kredito aviza) InvoiceAvoirAsk=Kreditinė sąskaita tikslinanti sąskaitą-faktūrą InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/lt_LT/companies.lang b/htdocs/langs/lt_LT/companies.lang index ff990678b36..4272211bf31 100644 --- a/htdocs/langs/lt_LT/companies.lang +++ b/htdocs/langs/lt_LT/companies.lang @@ -28,7 +28,7 @@ AliasNames=Pseudonimo pavadinimas (komercinis, prekės ženklas, ...) AliasNameShort=Alias Name Companies=Įmonės CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Nė vienas Vendor=Vendor +Supplier=Vendor AddContact=Sukurti kontaktą AddContactAddress=Sukurti kontaktą / adresą EditContact=Redaguoti adresatą diff --git a/htdocs/langs/lt_LT/other.lang b/htdocs/langs/lt_LT/other.lang index eea79328a0e..7399591bf0c 100644 --- a/htdocs/langs/lt_LT/other.lang +++ b/htdocs/langs/lt_LT/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Intervencija %s buvo patvirtinta EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/lt_LT/website.lang b/htdocs/langs/lt_LT/website.lang index 9acf3675a3b..61265c3251d 100644 --- a/htdocs/langs/lt_LT/website.lang +++ b/htdocs/langs/lt_LT/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang index 5ae8808bf6b..7808991734b 100644 --- a/htdocs/langs/lv_LV/accountancy.lang +++ b/htdocs/langs/lv_LV/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Rezultātu uzskaites konts (zaudējumi) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Noslēguma žurnāls ACCOUNTING_ACCOUNT_TRANSFER_CASH=Grāmatvedības konts bankas pārskaitījuma starp konts +TransitionalAccount=Pārejas bankas konta pārejas konts ACCOUNTING_ACCOUNT_SUSPENSE=Gaidīšanas grāmatvedības konts DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations @@ -216,7 +217,7 @@ DescThirdPartyReport=Konsultējieties ar trešo pušu klientu un pārdevēju sar ListAccounts=Grāmatvedības kontu saraksts UnknownAccountForThirdparty=Nezināmas trešās puses konts. Mēs izmantosim %s UnknownAccountForThirdpartyBlocking=Nezināms trešās puses konts. Bloķēšanas kļūda -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. We will use %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Trešās puses konts nav definēts vai trešā persona nav zināma. Mēs izmantosim %s ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Trešās puses konts nav definēts vai trešā persona nav zināma. Bloķēšanas kļūda. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Nav noteikts nezināms trešās puses konts un gaidīšanas konts. Bloķēšanas kļūda PaymentsNotLinkedToProduct=Maksājums nav saistīts ar kādu produktu / pakalpojumu @@ -292,7 +293,7 @@ Modelcsv_cogilog=Eksportēt uz Cogilog Modelcsv_agiris=Eksports uz Agiris Modelcsv_openconcerto=Eksportēt OpenConcerto (tests) Modelcsv_configurable=Eksportēt CSV konfigurējamu -Modelcsv_FEC=Export FEC +Modelcsv_FEC=Eksporta FEC Modelcsv_Sage50_Swiss=Eksports uz Sage 50 Šveici ChartofaccountsId=Kontu konts. Id @@ -317,9 +318,9 @@ WithoutValidAccount=Bez derīga veltīta konta WithValidAccount=Izmantojot derīgu veltītu kontu ValueNotIntoChartOfAccount=Šī grāmatvedības konta vērtība konta diagrammā nepastāv AccountRemovedFromGroup=Konts ir noņemts no grupas -SaleLocal=Local sale -SaleExport=Export sale -SaleEEC=Sale in EEC +SaleLocal=Vietējā pārdošana +SaleExport=Eksporta pārdošana +SaleEEC=Pārdošana EEK ## Dictionary Range=Range of accounting account @@ -340,7 +341,7 @@ UseMenuToSetBindindManualy=Līnijas, kas vēl nav saistītas, izmantojiet izvēl ## Import ImportAccountingEntries=Grāmatvedības ieraksti -DateExport=Date export +DateExport=Eksporta datums WarningReportNotReliable=Brīdinājums. Šis pārskats nav balstīts uz grāmatvedi, tādēļ tajā nav darījumu, kas Manuāli ir manuāli modificēts. Ja žurnāls ir atjaunināts, grāmatvedības skats ir precīzāks. ExpenseReportJournal=Izdevumu atskaites žurnāls InventoryJournal=Inventāra žurnāls diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index c0937d9be97..226e333fcd1 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -149,7 +149,7 @@ SystemToolsAreaDesc=Šī sadaļa nodrošina administrēšanas funkcijas. Izmanto Purge=Tīrīt PurgeAreaDesc=Šī lapa ļauj izdzēst visus Dolibarr ģenerētos vai glabātos failus (pagaidu faili vai visi faili %s direktorijā). Šīs funkcijas izmantošana parasti nav nepieciešama. Tas tiek nodrošināts kā risinājums lietotājiem, kuru Dolibarr uztur pakalpojumu sniedzējs, kas nepiedāvā atļaujas, lai dzēstu tīmekļa servera ģenerētos failus. PurgeDeleteLogFile=Dzēsiet žurnāla failus, tostarp %s, kas definēti Syslog modulim (nav datu pazaudēšanas riska). -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=Dzēst visus pagaidu failus (nav datu zaudēšanas riska). Piezīme. Dzēšana tiek veikta tikai tad, ja pagaidu katalogs tika izveidots pirms 24 stundām. PurgeDeleteTemporaryFilesShort=Dzēst pagaidu failus PurgeDeleteAllFilesInDocumentsDir=Dzēsiet visus failus direktorijā: %s .
Tas izdzēsīs visus radītos dokumentus, kas saistīti ar elementiem (trešajām personām, rēķiniem utt.), ECM modulī augšupielādētiem failiem, datu bāzes rezerves izgāztuvēm un pagaidu failus. PurgeRunNow=Tīrīt tagad @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Izvēles rūtiņas no tabulas ExtrafieldLink=Saite uz objektu ComputedFormula=Aprēķinātais lauks ComputedFormulaDesc=Šeit varat ievadīt formulu, izmantojot citas objekta īpašības vai jebkuru PHP kodējumu, lai iegūtu dinamisku aprēķināto vērtību. Jūs varat izmantot jebkuru PHP saderīgu formulu, ieskaitot "?" stāvokļa operators un šāds globāls objekts: $ db, $ conf, $ langs, $ mysoc, $ user, $ object .
BRĪDINĀJUMS : tikai daži $ $ rekvizīti objekts var būt pieejams. Ja jums nav vajadzīgo īpašību, vienkārši ielādējiet objektu savā formulā, piemēram, otrajā piemērā.
Izmantojot aprēķināto lauku, jūs nevarat ievadīt sev nekādu vērtību no saskarnes. Arī tad, ja ir sintakses kļūda, formula nevar atgriezties neko.

Piemērs formulas:
$ object-> id <10? apaļa ($ object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2)

Piemērs, lai ielādētu objektu
(($ reloadedobj = jauns Societe ($ db)) & & ($ reloadedobj-> ielādēt ($ obj-> id? $ Obj-> id: ($ obj-> rowid? $ Obj-> rowid: $ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

Cits piemērs formulas, lai piespiestu objektu slodzi un tā mātes objektu:
(($ reloadedobj = jauns uzdevums ($ db)) && ($ reloadedobj-> fetch ($ object-> id)> 0) & & ($ secondloadedobj = jauns projekts ($ db)) & & ($ secondloadedobj-> fetch ($ reloadedobj-> fk_project )> 0))? $ secondloadedobj-> ref: 'Vecāku projekts nav atrasts' +Computedpersistent=Veikt aprēķinātu lauku +ComputedpersistentDesc=Aprēķinātie papildu lauki tiks saglabāti datubāzē, taču vērtība tiks pārrēķināta tikai tad, kad mainīsies šī lauka objekts. Ja aprēķinātais lauks ir atkarīgs no citiem objektiem vai globāliem datiem, šī vērtība var būt nepareiza! ExtrafieldParamHelpPassword=Atstājot šo lauku tukšu, tas nozīmē, ka šī vērtība tiks saglabāta bez šifrēšanas (laukam jābūt paslēptai tikai ar zvaigznīti uz ekrāna).
Iestatiet 'auto', lai izmantotu noklusējuma šifrēšanas kārtulu, lai saglabātu paroli datubāzē (pēc tam vērtība lasīt būs ashh tikai, nav iespējams izgūt sākotnējo vērtību) ExtrafieldParamHelpselect=Vērtību sarakstam jābūt rindām ar formāta atslēgu, vērtība (kur atslēga nevar būt '0')

, piemēram,: 1, vērtība1
2, vērtība2
kods3, vērtība3 < br> ...

Lai saraksts būtu atkarīgs no cita papildinošā atribūtu saraksta:
1, vērtība1 | opcijas_ vecāku_līmeņa kods : vecāku_skava
2, vērtība2 | opcijas_ vecāku saraksts_code : parent_key

Lai saraksts būtu atkarīgs no cita saraksta:
1, vērtība1 | vecāku saraksts_code : vecāku_skava
2, vērtība2 | vecāku saraksts_code : vecāku_poga ExtrafieldParamHelpcheckbox=Vērtību sarakstam jābūt rindām ar formāta atslēgu, vērtība (kur atslēga nevar būt '0')

, piemēram,: 1, vērtība1
2, vērtība2
3, vērtība3 < br> ... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=Vērtību sarakstam jābūt rindām ar formāta atslēg ExtrafieldParamHelpsellist=Vērtību saraksts nāk no tabulas
Sintakse: table_name: label_field: id_field :: filtrs
piemērs: c_typent: libelle: id :: filtrs

- idfilter ir obligāti primārs int key | - filtrs var būt vienkāršs tests (piemēram, aktīvs = 1), lai parādītu tikai aktīvo vērtību
filtru raganā var izmantot arī $ ID $, kas ir pašreizējā objekta pašreizējais ID. $
, ja vēlaties filtrēt uz ekrāna, izmantojiet sintaksi extra.fieldcode = ... (ja lauka kods ir extrafield kods)

Lai saraksts būtu atkarīgs no cita papildu atribūtu saraksta: < br> c_typent: libelle: id: options_ vecāku_list_code | vecāku_krāsa: filtrs

Lai iegūtu sarakstu atkarībā no cita saraksta:
c_typent: libelle: id: parent_list_code | vecāku_ sleja: filtrs ExtrafieldParamHelpchkbxlst=Vērtību saraksts nāk no tabulas
Sintakse: table_name: label_field: id_field :: filtrs
piemērs: c_typent: libelle: id :: filtrs

filtrs var būt vienkāršs tests (piemēram, aktīvs = 1 ), lai parādītu tikai aktīvo vērtību
Jūs varat arī izmantot $ ID $ filtru raganā, kas ir pašreizējā objekta pašreizējais ID
Lai SELECT veiktu filtru, izmantojiet $ SEL $
, ja vēlaties filtrēt uz ekrāna. syntax extra.fieldcode = ... (ja lauka kods ir extrafield kods)

Lai iegūtu sarakstu atkarībā no cita papildu atribūtu saraksta:
c_typent: libelle: id: options_ parent_list_code | vecāku_krāsa: filtrs

Lai iegūtu sarakstu atkarībā no cita saraksta:
c_typent: libelle: id: vecāku saraksts_code | vecāku_ sleja: filtrs ExtrafieldParamHelplink=Parametriem jābūt ObjectName: Classpath
Syntax: ObjectName: Classpath
Piemēri:
Societe: societe / class / societe.class.php
Kontakti: contact / class / contact.class.php +ExtrafieldParamHelpSeparator=Vienkāršam atdalītājam jāglabā tukšs
Iestatiet to uz 1, lai atdalītu atdalītāju (atvērts pēc noklusējuma)
Iestatiet to uz 2, lai atdalītu atdalītāju (noklusēts pēc noklusējuma) LibraryToBuildPDF=Bibliotēka, ko izmanto PDF veidošanai LocalTaxDesc=Dažas valstis var piemērot divus vai trīs nodokļus katrā rēķina rindā. Šādā gadījumā izvēlieties otrā un trešā nodokļa veidu un likmi. Iespējamie veidi ir:
1: vietējais nodoklis attiecas uz produktiem un pakalpojumiem bez tvertnes (localtax tiek aprēķināts bez nodokļa)
2: vietējie nodokļi attiecas uz produktiem un pakalpojumiem, ieskaitot vat (localtax tiek aprēķināta pēc summas + galvenais nodoklis) )
3: vietējie nodokļi attiecas uz produktiem bez cisternām (localtax tiek aprēķināta bez nodokļa)
4: vietējie nodokļi attiecas uz produktiem, ieskaitot tvertni (localtax tiek aprēķināta pēc summas + galvenā tvertne)
5: vietējais nodoklis, ko piemēro par pakalpojumiem bez vat (vietējais maksājums tiek aprēķināts bez nodokļa)
6: vietējiem nodokļiem, kas attiecas uz pakalpojumiem, ieskaitot mucu (vietējais maksājums tiek aprēķināts pēc summas + nodokļa) SMS=SMS @@ -804,7 +807,7 @@ Permission401=Lasīt atlaides Permission402=Izveidot/mainīt atlaides Permission403=Apstiprināt atlaides Permission404=Dzēst atlaides -Permission430=Use Debug Bar +Permission430=Izmantot Debug Bar Permission511=Lasīt algu maksājumus Permission512=Izveidojiet / modificējiet algu maksājumus Permission514=Dzēst algu maksājumus @@ -819,9 +822,9 @@ Permission532=Izveidot/mainīt pakalpojumus Permission534=Dzēst pakalpojumus Permission536=Skatīt/vadīt slēptos pakalpojumus Permission538=Eksportēt pakalpojumus -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Lasīt materiālu rēķinus +Permission651=Izveidot / atjaunināt materiālu rēķinus +Permission652=Dzēst materiālu rēķinus Permission701=Lasīt ziedojumus Permission702=Izveidot/mainīt ziedojumus Permission703=Dzēst ziedojumus @@ -841,12 +844,12 @@ Permission1101=Skatīt piegādes pasūtījumus Permission1102=Izveidot/mainīt piegādes pasūtījumus Permission1104=Apstiprināt piegādes pasūtījumus Permission1109=Dzēst piegādes pasūtījumus -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 +Permission1121=Lasiet piegādātāja priekšlikumus +Permission1122=Izveidojiet / modificējiet piegādātāja priekšlikumus +Permission1123=Apstipriniet piegādātāja priekšlikumus +Permission1124=Sūtīt piegādātāja priekšlikumus +Permission1125=Dzēst piegādātāja priekšlikumus +Permission1126=Aizvērt piegādātāja cenu pieprasījumus Permission1181=Lasīt piegādātājus Permission1182=Lasīt pirkuma pasūtījumus Permission1183=Izveidot / mainīt pirkuma pasūtījumus @@ -882,15 +885,15 @@ Permission2503=Pievienot vai dzēst dokumentus Permission2515=Iestatīt dokumentu direktorijas Permission2801=Lietot FTP klientu lasīšanas režīmā (pārlūko un lejupielādē) Permission2802=Lietot FTP klientu rakstīšanas režīmā (dzēst vai augšupielādēt failus) -Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees -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 +Permission3200=Lasīt arhivētos notikumus un pirkstu nospiedumus +Permission4001=Skatīt darbiniekus +Permission4002=Izveidot darbiniekus +Permission4003=Dzēst darbiniekus +Permission4004=Eksportēt darbiniekus +Permission10001=Lasīt tīmekļa vietnes saturu +Permission10002=Izveidot / mainīt vietnes saturu (html un javascript saturu) +Permission10003=Izveidojiet / modificējiet vietnes saturu (dinamisko php kodu). Bīstami, tie ir jārezervē ierobežotiem izstrādātājiem. +Permission10005=Dzēst vietnes saturu Permission20001=Lasiet atvaļinājuma pieprasījumus (jūsu atvaļinājumu un jūsu padoto atvaļinājumu) Permission20002=Izveidojiet / modificējiet atvaļinājuma pieprasījumus (jūsu atvaļinājumu un jūsu padotajiem) Permission20003=Dzēst atvaļinājumu pieprasījumus @@ -904,19 +907,19 @@ Permission23004=Izpildīt ieplānoto uzdevumu Permission50101=Izmantot pārdošanas vietu Permission50201=Lasīt darījumus Permission50202=Importēt darījumus -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 -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50401=Iesiet produktus un rēķinus ar grāmatvedības kontiem +Permission50411=Lasiet operācijas virsgrāmatā +Permission50412=Rakstīt / rediģēt operācijas virsgrāmatā +Permission50414=Dzēst operācijas virsgrāmatā +Permission50415=Izdzēsiet visas darbības pēc gada un žurnāla žurnālā +Permission50418=Virsgrāmatas eksporta operācijas +Permission50420=Ziņot un eksportēt pārskatus (apgrozījums, bilance, žurnāli, virsgrāmatas) +Permission50430=Definēt un slēgt fiskālo periodu +Permission50440=Pārvaldiet kontu sarakstu, grāmatvedības uzskaiti +Permission51001=Lasīt krājumus +Permission51002=Izveidot / atjaunināt aktīvus +Permission51003=Dzēst aktīvus +Permission51005=Aktīvu iestatīšanas veidi Permission54001=Drukāt Permission55001=Lasīt aptaujas Permission55002=Izveidot/labot aptaujas @@ -1110,7 +1113,7 @@ AreaForAdminOnly=Iestatīšanas parametrus var iestatīt tikai administrator SystemInfoDesc=Sistēmas informācija ir dažādi tehniskā informācija jums tikai lasīšanas režīmā un redzama tikai administratoriem. SystemAreaForAdminOnly=Šī joma ir pieejama tikai administratora lietotājiem. Dolibarr lietotāja atļaujas nevar mainīt šo ierobežojumu. CompanyFundationDesc=Rediģējiet uzņēmuma / organizācijas informāciju. Noklikšķiniet uz pogas "%s" vai "%s" lapas apakšdaļā. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. +AccountantDesc=Ja jums ir ārējais grāmatvedis / grāmatvedis, varat rediģēt šeit savu informāciju. AccountantFileNumber=Grāmatveža kods DisplayDesc=Šeit var mainīt parametrus, kas ietekmē Dolibarr izskatu un uzvedību. AvailableModules=Pieejamās progrmma / moduļi @@ -1923,5 +1926,5 @@ IFTTTDesc=Šis modulis ir paredzēts, lai aktivizētu IFTTT notikumus un / vai v UrlForIFTTT=URL beigu punkts IFTTT YouWillFindItOnYourIFTTTAccount=Jūs atradīsiet to savā IFTTT kontā EndPointFor=Beigu punkts %s: %s -DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +DeleteEmailCollector=Dzēst e-pasta kolekcionāru +ConfirmDeleteEmailCollector=Vai tiešām vēlaties dzēst šo e-pasta kolekcionāru? diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang index 47690bc4ba5..44f7d7838b1 100644 --- a/htdocs/langs/lv_LV/bills.lang +++ b/htdocs/langs/lv_LV/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma rēķins InvoiceProFormaDesc=Formāta rēķins ir attēls patiesu rēķina, bet nav nekādas grāmatvedības uzskaites vērtības. InvoiceReplacement=Nomaiņas rēķins InvoiceReplacementAsk=Nomaiņa rēķins par rēķinu -InvoiceReplacementDesc= Nomaiņa rēķins tiek izmantots, lai atceltu un pilnībā nomainītu rēķinu bez jau saņemta maksājuma.

Piezīme. Var nomainīt tikai rēķinus bez maksājuma. Ja rēķins, kuru nomaināt, vēl nav aizvērts, tas tiks automātiski slēgts, lai "pamestu". +InvoiceReplacementDesc=Rezerves rēķinu izmanto, lai pilnībā aizstātu rēķinu bez maksājuma, kas jau saņemts.

Piezīme: var nomainīt tikai rēķinus, kuriem nav maksājuma. Ja aizstātais rēķins vēl nav slēgts, tas tiks automātiski aizvērts, lai to atteiktu. InvoiceAvoir=Kredīta piezīme InvoiceAvoirAsk=Kredīta piezīme, lai koriģētu rēķinu InvoiceAvoirDesc= Kredīta piezīme ir negatīvs rēķins, ko izmanto, lai izlabotu faktu, ka rēķinā parādīta summa, kas atšķiras no faktiski samaksātās summas (piemēram, klients kļūdaini samaksājis pārāk daudz vai nemaksās pilno summu kopš daži produkti tika atgriezti). diff --git a/htdocs/langs/lv_LV/cashdesk.lang b/htdocs/langs/lv_LV/cashdesk.lang index 1c71ba8aa6c..461fd16da52 100644 --- a/htdocs/langs/lv_LV/cashdesk.lang +++ b/htdocs/langs/lv_LV/cashdesk.lang @@ -68,4 +68,4 @@ Terminal=Terminal NumberOfTerminals=Termināļu skaits TerminalSelect=Atlasiet termināli, kuru vēlaties izmantot: POSTicket=POS biļete -BasicPhoneLayout=Use basic layout for phones +BasicPhoneLayout=Izmantojiet telefonu pamata izkārtojumu diff --git a/htdocs/langs/lv_LV/companies.lang b/htdocs/langs/lv_LV/companies.lang index 4061ed23e72..349661c2a6f 100644 --- a/htdocs/langs/lv_LV/companies.lang +++ b/htdocs/langs/lv_LV/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolūtā pārdevēju atlaides (ievada visi li SupplierAbsoluteDiscountMy=Absolūtā pārdevēja atlaides (ievadījis pats) DiscountNone=Nav Vendor=Pārdevējs +Supplier=Pārdevējs AddContact=Izveidot kontaktu AddContactAddress=Izveidot kontaktu/adresi EditContact=Labot kontaktu diff --git a/htdocs/langs/lv_LV/mails.lang b/htdocs/langs/lv_LV/mails.lang index dd400d13e7d..9eaa536b32c 100644 --- a/htdocs/langs/lv_LV/mails.lang +++ b/htdocs/langs/lv_LV/mails.lang @@ -78,9 +78,9 @@ GroupEmails=Grupas e-pasti OneEmailPerRecipient=Viens e-pasts katram adresātam (pēc noklusējuma viens e-pasts uz vienu atlasīto ierakstu) WarningIfYouCheckOneRecipientPerEmail=Brīdinājums. Ja atzīmēsit šo izvēles rūtiņu, tas nozīmē, ka tiks nosūtīts tikai viens e-pasta ziņojums, izvēloties vairākus atšķirīgus ierakstus, tādēļ, ja jūsu ziņojumā ir iekļauti aizstājējumultiņi, kas attiecas uz ieraksta datiem, tos nevar aizstāt. ResultOfMailSending=Masu sūtīšanas rezultāts -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent +NbSelected=Numurs izvēlēts +NbIgnored=Numurs ignorēts +NbSent=Sūtītais numurs SentXXXmessages=%s ziņa (s) nosūtīta. ConfirmUnvalidateEmailing=Vai tiešām vēlaties mainīt e-pastu %s uz melnraksta statusu? MailingModuleDescContactsWithThirdpartyFilter=Sazinieties ar klientu filtriem diff --git a/htdocs/langs/lv_LV/members.lang b/htdocs/langs/lv_LV/members.lang index 1b53052c51a..03971532446 100644 --- a/htdocs/langs/lv_LV/members.lang +++ b/htdocs/langs/lv_LV/members.lang @@ -171,7 +171,7 @@ MembersStatisticsDesc=Izvēlieties statistiku kuru vēlaties izlasīt ... MenuMembersStats=Statistika LastMemberDate=Pēdējā biedra datums LatestSubscriptionDate=Jaunākais piereģistrēšanās datums -MemberNature=Nature of member +MemberNature=Dalībnieka raksturs Public=Informācija ir publiska NewMemberbyWeb=Jauns dalībnieks pievienots. Gaida apstiprinājumu NewMemberForm=Jauna dalībnieka forma diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang index 78f4e29d191..6a164cc5ef3 100644 --- a/htdocs/langs/lv_LV/other.lang +++ b/htdocs/langs/lv_LV/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Klientu rēķinu skaits NumberOfSupplierProposals=Pārdevēja priekšlikumu skaits NumberOfSupplierOrders=Pirkuma pasūtījumu skaits NumberOfSupplierInvoices=Pārdevēja rēķinu skaits +NumberOfContracts=Līgumu skaits NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Vienību skaits pārdošanas pasūtījumos NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Vienību skaits pārdevēja priekšlikumos NumberOfUnitsSupplierOrders=Vienību skaits pirkuma pasūtījumos NumberOfUnitsSupplierInvoices=Vienību skaits pārdevēja rēķinos +NumberOfUnitsContracts=Vienību skaits līgumos EMailTextInterventionAddedContact=Jums ir piešķirta jauna iejaukšanās %s. EMailTextInterventionValidated=Iejaukšanās %s ir apstiprināta. EMailTextInvoiceValidated=Rēķins %s ir apstiprināts. diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang index 6dd9360e6b9..7db31a84a8e 100644 --- a/htdocs/langs/lv_LV/products.lang +++ b/htdocs/langs/lv_LV/products.lang @@ -159,7 +159,7 @@ SuppliersPrices=Pārdevēja cenas SuppliersPricesOfProductsOrServices=Pārdevēja cenas (produktiem vai pakalpojumiem) CustomCode=Muita / Prece / HS kods CountryOrigin=Izcelsmes valsts -Nature=Nature of produt (material/finished) +Nature=Izstrādājuma veids (materiāls/gatavs) ShortLabel=Īsais nosaukums Unit=Vienība p=u. diff --git a/htdocs/langs/lv_LV/salaries.lang b/htdocs/langs/lv_LV/salaries.lang index 07b280565e6..816227ad4cb 100644 --- a/htdocs/langs/lv_LV/salaries.lang +++ b/htdocs/langs/lv_LV/salaries.lang @@ -18,4 +18,4 @@ LastSalaries=Jaunākie %s algu maksājumi AllSalaries=Visi algu maksājumi SalariesStatistics=Algas statistika # Export -SalariesAndPayments=Salaries and payments +SalariesAndPayments=Algas un maksājumi diff --git a/htdocs/langs/lv_LV/stocks.lang b/htdocs/langs/lv_LV/stocks.lang index 26ecdf29269..7a6ff663492 100644 --- a/htdocs/langs/lv_LV/stocks.lang +++ b/htdocs/langs/lv_LV/stocks.lang @@ -66,12 +66,12 @@ RuleForStockManagementIncrease=Izvēlieties noteikumu automātiskai krājumu pal DeStockOnBill=Samaziniet reālos krājumus klienta rēķina / kredītzīmes atzīmēšanā DeStockOnValidateOrder=Samaziniet reālos krājumus pārdošanas pasūtījuma apstiprināšanā DeStockOnShipment=Samazināt reālos krājumus piegādes apstiprinājuma gadījumā -DeStockOnShipmentOnClosing=Decrease real stocks when shipping is set to closed +DeStockOnShipmentOnClosing=Samazināt reālos krājumus, kad sūtījums ir noslēgts ReStockOnBill=Palieliniet reālos krājumus, apstiprinot pārdevēja rēķinu / kredīta piezīmi ReStockOnValidateOrder=Palieliniet reālo krājumu pirkšanas pasūtījuma apstiprinājumā ReStockOnDispatchOrder=Palieliniet reālos krājumus manuālajā nosūtīšanā noliktavā, pēc pirkuma pasūtījuma saņemšanas -StockOnReception=Increase real stocks on validation of reception -StockOnReceptionOnClosing=Increase real stocks when reception is set to closed +StockOnReception=Palieliniet reālos krājumus, kad apstiprināta saņemšana +StockOnReceptionOnClosing=Palieliniet reālos krājumus, kad saņemšana ir slēgta OrderStatusNotReadyToDispatch=Lai vēl nav vai vairs statusu, kas ļauj sūtījumiem produktu krājumu noliktavās. StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nav iepriekš produktu šo objektu. Līdz ar to nav nosūtot noliktavā ir nepieciešama. diff --git a/htdocs/langs/lv_LV/website.lang b/htdocs/langs/lv_LV/website.lang index 1ceefd882d9..b751bddd422 100644 --- a/htdocs/langs/lv_LV/website.lang +++ b/htdocs/langs/lv_LV/website.lang @@ -98,8 +98,8 @@ NoWebSiteCreateOneFirst=Vēl nav izveidota neviena vietne. Vispirms izveidojiet GoTo=Iet uz DynamicPHPCodeContainsAForbiddenInstruction=Jūs pievienojat dinamisku PHP kodu, kas satur PHP norādījumu ' %s ', kas pēc noklusējuma ir aizliegta kā dinamisks saturs (skatiet slēptās opcijas WEBSITE_PHP_ALLOW_xxx, lai palielinātu atļauto komandu sarakstu). NotAllowedToAddDynamicContent=Jums nav atļaujas pievienot vai rediģēt PHP dinamisko saturu tīmekļa vietnēs. Uzdodiet atļauju vai vienkārši saglabājiet kodu php tagos nemainītā veidā. -ReplaceWebsiteContent=Nomainiet vietnes saturu +ReplaceWebsiteContent=Meklēt vai aizstāt vietnes saturu DeleteAlsoJs=Vai arī dzēst visus šajā tīmekļa vietnē raksturīgos javascript failus? DeleteAlsoMedias=Vai arī dzēst visus šajā tīmekļa vietnē esošos mediju failus? # Export -MyWebsitePages=My website pages +MyWebsitePages=Manas vietnes lapas diff --git a/htdocs/langs/lv_LV/withdrawals.lang b/htdocs/langs/lv_LV/withdrawals.lang index 43d51376581..841f1627174 100644 --- a/htdocs/langs/lv_LV/withdrawals.lang +++ b/htdocs/langs/lv_LV/withdrawals.lang @@ -69,8 +69,8 @@ WithBankUsingBANBIC=Attiecībā uz banku kontiem, izmantojot IBAN / BIC / SWIFT BankToReceiveWithdraw=Bankas konta saņemšana CreditDate=Kredīts WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported) -ShowWithdraw=Show Direct Debit Order -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. +ShowWithdraw=Rādīt tiešā debeta rīkojumu +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Tomēr, ja rēķinam ir vismaz viens tiešā debeta maksājuma rīkojums, kas vēl nav apstrādāts, tas netiks iestatīts kā maksāts, lai varētu veikt iepriekšēju izņemšanas pārvaldību. DoStandingOrdersBeforePayments=Šī cilne ļauj pieprasīt tiešā debeta maksājuma uzdevumu. Kad esat pabeidzis, dodieties uz izvēlni Bank-> Tiešais debets, lai pārvaldītu tiešā debeta maksājuma uzdevumu. Ja maksājuma uzdevums ir slēgts, rēķins tiek automātiski reģistrēts, un rēķins tiek slēgts, ja atlikušais maksājums ir nulle. WithdrawalFile=Izstāšanās fails SetToStatusSent=Nomainīt uz statusu "Fails nosūtīts" diff --git a/htdocs/langs/mk_MK/accountancy.lang b/htdocs/langs/mk_MK/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/mk_MK/accountancy.lang +++ b/htdocs/langs/mk_MK/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/mk_MK/admin.lang b/htdocs/langs/mk_MK/admin.lang index 18fac329b2d..c021eeb4cff 100644 --- a/htdocs/langs/mk_MK/admin.lang +++ b/htdocs/langs/mk_MK/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/mk_MK/bills.lang b/htdocs/langs/mk_MK/bills.lang index a5db0421635..aef2b5fce2f 100644 --- a/htdocs/langs/mk_MK/bills.lang +++ b/htdocs/langs/mk_MK/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Про Фактура InvoiceProFormaDesc= Профактурата е иста како вистинска фактура, но нема сметководствена вредност. InvoiceReplacement=Замена на фактура InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/mk_MK/companies.lang b/htdocs/langs/mk_MK/companies.lang index e88e4a1dee0..5a6e506d90e 100644 --- a/htdocs/langs/mk_MK/companies.lang +++ b/htdocs/langs/mk_MK/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/mk_MK/other.lang b/htdocs/langs/mk_MK/other.lang index a6802140be3..8a5ccdbab5c 100644 --- a/htdocs/langs/mk_MK/other.lang +++ b/htdocs/langs/mk_MK/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/mk_MK/website.lang b/htdocs/langs/mk_MK/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/mk_MK/website.lang +++ b/htdocs/langs/mk_MK/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/mn_MN/accountancy.lang b/htdocs/langs/mn_MN/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/mn_MN/accountancy.lang +++ b/htdocs/langs/mn_MN/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/mn_MN/admin.lang b/htdocs/langs/mn_MN/admin.lang index 9eaa12ec9be..f30d6edd9f7 100644 --- a/htdocs/langs/mn_MN/admin.lang +++ b/htdocs/langs/mn_MN/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/mn_MN/bills.lang b/htdocs/langs/mn_MN/bills.lang index c9d46e4ffff..4f114d4df1c 100644 --- a/htdocs/langs/mn_MN/bills.lang +++ b/htdocs/langs/mn_MN/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/mn_MN/companies.lang b/htdocs/langs/mn_MN/companies.lang index 77bd4f8a445..578f5cb8920 100644 --- a/htdocs/langs/mn_MN/companies.lang +++ b/htdocs/langs/mn_MN/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/mn_MN/other.lang b/htdocs/langs/mn_MN/other.lang index a6802140be3..8a5ccdbab5c 100644 --- a/htdocs/langs/mn_MN/other.lang +++ b/htdocs/langs/mn_MN/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/mn_MN/website.lang b/htdocs/langs/mn_MN/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/mn_MN/website.lang +++ b/htdocs/langs/mn_MN/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang index 1c296c94956..1357c7572c0 100644 --- a/htdocs/langs/nb_NO/accountancy.lang +++ b/htdocs/langs/nb_NO/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Resultatregnskapskonto (tap) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Avslutningsjournal ACCOUNTING_ACCOUNT_TRANSFER_CASH=Regnskapkonto for overgangsbasert overføring +TransitionalAccount=Overgangsbasert bankoverføringskonto ACCOUNTING_ACCOUNT_SUSPENSE=Regnskapskonto for vent DONATION_ACCOUNTINGACCOUNT=Regnskapskonto for registrering av donasjoner @@ -216,7 +217,7 @@ DescThirdPartyReport=Liste over tredjeparts kunder og leverandører og deres reg ListAccounts=Liste over regnskapskontoer UnknownAccountForThirdparty=Ukjent tredjepartskonto. Vi vil bruke %s UnknownAccountForThirdpartyBlocking=Ukjent tredjepartskonto. Blokkeringsfeil -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. We will use %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Tredjepartskonto ikke definert eller tredjepart ukjent. Vi bruker %s ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Tredjepartskonto ikke definert eller tredjepart ukjent. Blokkeringsfeil. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Ukjent tredjepartskonto og ventekonto ikke definert. Blokkeringsfeil PaymentsNotLinkedToProduct=Betaling ikke knyttet til noen vare/tjeneste @@ -292,7 +293,7 @@ Modelcsv_cogilog=Eksport til Cogilog Modelcsv_agiris=Eksport til Agiris Modelcsv_openconcerto=Eksport for OpenConcerto (Test) Modelcsv_configurable=Eksport CSV Konfigurerbar -Modelcsv_FEC=Export FEC +Modelcsv_FEC=Eksporter FEC Modelcsv_Sage50_Swiss=Eksport for Sage 50 Switzerland ChartofaccountsId=Kontoplan ID @@ -317,9 +318,9 @@ WithoutValidAccount=Uten gyldig dedikert konto WithValidAccount=Med gyldig dedikert konto ValueNotIntoChartOfAccount=Denne verdien av regnskapskonto eksisterer ikke i kontoplanen AccountRemovedFromGroup=Kontoen er fjernet fra gruppen -SaleLocal=Local sale -SaleExport=Export sale -SaleEEC=Sale in EEC +SaleLocal=Lokalt salg +SaleExport=Eksportsalg +SaleEEC=Salg i EU ## Dictionary Range= Oversikt over regnskapskonto @@ -340,7 +341,7 @@ UseMenuToSetBindindManualy=Linjer som ennå ikke er bundet, bruk menyen
%s ). Bruk av denne funksjonen er normalt ikke nødvendig. Den leveres som en løsning for brukere hvis Dolibarr er vert for en leverandør som ikke tilbyr tillatelser for å slette filer generert av webserveren. PurgeDeleteLogFile=Slett loggfiler, inkludert %s definert for Syslog-modulen (ingen risiko for å miste data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=Slett alle midlertidige filer (ingen risiko for å miste data). Merk: Slettingen gjøres bare hvis temp-katalogen ble opprettet for over 24 timer siden. PurgeDeleteTemporaryFilesShort=Slett temporære filer PurgeDeleteAllFilesInDocumentsDir=Slett alle filer i katalogen: %s .
Dette vil slette alle genererte dokumenter relatert til elementer (tredjeparter, fakturaer etc ...), filer lastet opp i ECM-modulen, database backup dumper og midlertidig filer. PurgeRunNow=Start utrenskning @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Avkrysningsbokser fra tabell ExtrafieldLink=Lenke til et objekt ComputedFormula=Beregnet felt ComputedFormulaDesc=Her kan du skrive inn en formel ved hjelp av andre objektegenskaper eller PHP-koding for å få en dynamisk beregningnet verdi. Du kan bruke PHP-kompatible formler, inkludert "?" operator og følgende globale objekt: $db, $conf, $langs, $mysoc, $user, $objekt .

ADVARSEL : Kanskje bare noen egenskaper på $objekt er tilgjengelig. Hvis du trenger egenskaper som ikke er lastet, kan du bare hente objektet i formelen din som i det andre eksempelet.
Ved å bruke et beregnet felt betyr det at du ikke selv kan angi noen verdi fra grensesnittet. Også, hvis det er en syntaksfeil, kan det hende formelen ikke returnerer noe.

Eksempel på formel:
$objekt->id<10? round ($object->id / 2, 2) : ($object-> id + 2 *$user->id) * (int) substr($mysoc->zip, 1, 2)

Eksempel på å ny innlasting av objekt
(($reloadedobj = new Societe ($db)) && ($reloadedobj->fetch($obj-> id? $ obj-> id: ($obj-> rowid? $obj-> rowid: $object-> id))> 0))? $reloadedobj-> array_options ['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

Annet eksempel på formel for å tvinge lasting av objekt og dets overordnede objekt:
(($reloadedobj = Ny oppgave ($db)) && ($reloadedobj->fetch($objekt->id)> 0) && ($secondloadedobj = nytt prosjekt ($db)) && ($secondloadedobj->fetch($reloadedobj-> fk_project )> 0))? $secondloadedobj-> ref: 'Foreldreprosjekt ikke funnet' +Computedpersistent=Lagre beregnede felt +ComputedpersistentDesc=Beregnede ekstrafelt vil bli lagret i databasen, men verdien blir bare omregnet når objektet til dette feltet endres. Hvis det beregnede feltet avhenger av andre objekter eller globale data, kan denne verdien være feil! ExtrafieldParamHelpPassword=Hvis dette feltet er tomt, vil denne verdien bli lagret uten kryptering (feltet må bare skjules med stjerne på skjermen).
Angi 'auto' for å bruke standard krypteringsregel for å lagre passordet i databasen (da vil verdiavlesning være bare hash, uten noen måte å hente opprinnelig verdi på) ExtrafieldParamHelpselect=Liste over verdier må være linjer med formatet nøkkel,verdi (hvor nøkkelen ikke kan være '0')

for eksempel:
1,verdi1
2,verdi2
kode3,verdi3
...

For å få listen avhengig av en annen komplementær attributtliste:
1,verdi1|options_parent_list_code:parent_key
2,value2|options_parent_list_code: parent_key

For å få listen avhengig av en annen liste:
1,verdi1|parent_list_code:parent_key
2,value2|parent_list_code : parent_key ExtrafieldParamHelpcheckbox=Liste over verdier må være linjer med formatet nøkkel,verdi (hvor nøkkelen ikke kan være '0')

for eksempel:
1,verdi1
2,verdi2
3,verdi3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=Liste over verdier må være linjer med formatet nøkke ExtrafieldParamHelpsellist=Liste over verdier kommer fra en tabell
Syntaks: tabellnavn: label_field: id_field::filter
Eksempel: c_typent: libelle:id::filter

- idfilter er nødvendigvis en primær int nøkkel
- filteret kan være en enkel test (f.eks. aktiv = 1) for å vise bare aktiv verdi
Du kan også bruke $ID$ i filtre, som er gjeldende ID for nåværende objekt
For å utføre en SELECT i filtre, bruk $SEL$
Hvis du vil filtrere på ekstrafelt, bruk syntaks extra.fieldcode=... (der feltkoden er koden til ekstrafelt)

For å få listen avhengig av en annen komplementær attributtliste:
c_typent:libelle:id:options_parent_list_code | parent_column:filter

For å få listen avhengig av en annen liste:
c_typent:libelle:id:parent_list_code |parent_column:filter ExtrafieldParamHelpchkbxlst=Liste over verdier kommer fra en tabell
Syntaks: table_name:label_field:id_field::filter
Eksempel: c_typent:libelle:id::filter

filter kan være en enkel test (f.eks. Aktiv=1 ) for å vise bare aktiv verdi
Du kan også bruke $ID$ i filter, som er gjeldende ID for nåværende objekt
For å utføre en SELECT i filter, bruk $SEL$
Hvis du vil filtrere på ekstrafeltbruk bruk syntaks extra.fieldcode=... (der feltkoden er koden til ekstrafelt)

For å få listen avhengig av en annen komplementær attributtliste:
c_typent:libelle:id:options_parent_list_code |parent_column:filter

For å få listen avhengig av en annen liste:
c_typent:libelle:id:parent_list_code |parent_column:filter ExtrafieldParamHelplink=Parametere må være ObjectName: Classpath
Syntax: ObjectName: Classpath
Eksempler:
Societe: societe / class / societe.class.php
Kontakt: kontakt / class / contact.class.php +ExtrafieldParamHelpSeparator=Hold tom for en enkel separator
Sett dette til 1 for en kollapserende separator (åpen som standard)
Sett dette til 2 for en kollapserende separator (kollapset som standard) LibraryToBuildPDF=Bibliotek brukt for PDF-generering LocalTaxDesc=For noen land gjelder to eller tre skatter på hver fakturalinje. Dersom dette er tilfelle, velg type for andre og tredje skatt, samt sats. Mulig type:
1: lokalavgift gjelder på varer og tjenester uten mva (lokal avgift er beregnet beløp uten mva)
2: lokalavgift gjelder på varer og tjenester, inkludert merverdiavgift (lokalavgift beregnes på beløpet + hovedavgift)
3: lokalavgift gjelder på varer uten mva (lokalavgift er beregnet beløp uten mva)
4: lokalagift gjelder på varer inkludert mva (lokalavgift beregnes på beløpet + hovedavgift)
5: lokal skatt gjelder tjenester uten mva (lokalavgift er beregnet beløp uten mva)
6: lokalavgift gjelder på tjenester inkludert mva (lokalavgift beregnes på beløpet + mva) SMS=SMS @@ -766,10 +769,10 @@ Permission243=Slett kategorier Permission244=Se innholdet i skjulte kategorier Permission251=Vis andre brukere og grupper PermissionAdvanced251=Vis andre brukere -Permission252=Lage/endre andre brukere, grupper og deres rettigheter +Permission252=Les tillatelser fra andre brukere Permission253=Opprett/endre andre brukere, grupper og tillatelser PermissionAdvanced253=Opprett/endre interne/eksterne brukere og tillatelser -Permission254=Slette eller deaktivere andre brukere +Permission254=Opprett/modifiser kun eksterne brukere Permission255=Opprett/endre egen brukerinformasjon Permission256=Slett eller deaktiver andre brukere Permission262=Utvid tilgangen til alle tredjeparter (ikke bare tredjeparter der brukeren er en salgsrepresentant).
Virker ikke på eksterne brukere (alltid begrenset til egne tilbud, ordre, fakturaer, kontrakter mm).
Virker ikke på prosjekter (kun regler for prosjekttillatelser, synlighet og tildeling gjelder). @@ -804,7 +807,7 @@ Permission401=Vis rabatter Permission402=Opprett/endre rabatter Permission403=Valider rabatter Permission404=Slett rabatter -Permission430=Use Debug Bar +Permission430=Bruk Debug Bar Permission511=Les lønnsutbetalinger Permission512=Opprett/endre betaling av lønn Permission514=Slett utbetalinger av lønn @@ -819,9 +822,9 @@ Permission532=Opprett/endre tjenester Permission534=Slett tjenester Permission536=Administrer skjulte tjenester Permission538=Eksporter tjenester -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Les BOM (Bills of Materials) +Permission651=Opprett/oppdater BOM +Permission652=Slett BOM Permission701=Vis donasjoner Permission702=Opprett/endre donasjoner Permission703=Slett donasjoner @@ -841,12 +844,12 @@ Permission1101=Vis pakksedler Permission1102=Opprett/endre pakksedler Permission1104=Valider pakksedler Permission1109=Slett pakksedler -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 +Permission1121=Les leverandørtilbud +Permission1122=Opprett/modifiser leverandørtilbud +Permission1123=Bekreft leverandørtilbud +Permission1124=Send leverandørtilbud +Permission1125=Slett leverandørtilbud +Permission1126=Lukk leverandør prisforespørsler Permission1181=Vis leverandører Permission1182=Les innkjøpsordre Permission1183=Opprett/modifiser innkjøpsordre @@ -882,15 +885,15 @@ Permission2503=Send eller slett dokumenter Permission2515=Oppsett av dokumentmapper Permission2801=Bruk FTP-klient i lesemodus (bla gjennom og laste ned) Permission2802=Bruk FTP-klient i skrivemodus (slette eller laste opp filer) -Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees -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 +Permission3200=Les arkiverte hendelser og fingeravtrykk +Permission4001=Se ansatte +Permission4002=Opprett ansatte +Permission4003=Slett ansatte +Permission4004=Eksporter ansatte +Permission10001=Les nettstedsinnhold +Permission10002=Opprett/endre innhold på nettstedet (html og javascript innhold) +Permission10003=Opprett/endre nettstedsinnhold (dynamisk PHP-kode). Farlig, må reserveres for erfarne utviklere. +Permission10005=Slett nettstedsinnhold Permission20001=Les permitteringsforespørsler (dine og dine underordnedes) Permission20002=Opprett/endre permisjonene dine (dine og dine underordnedes) Permission20003=Slett ferieforespørsler @@ -904,19 +907,19 @@ Permission23004=Utfør planlagt oppgave Permission50101=Bruk utsalgssted Permission50201=Les transaksjoner Permission50202=Importer transaksjoner -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 -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50401=Tilknytt varer og fakturaer til regnskapskontoer +Permission50411=Les operasjoner i hovedbok +Permission50412=Skriv/rediger operasjoner i hovedbok +Permission50414=Slett operasjoner i hovedbok +Permission50415=Slett alle operasjoner etter år og journal i hovedbok +Permission50418=Eksporter operasjoner fra hovedboken +Permission50420=Rapporter og eksportrapporter (omsetning, balanse, journaler, hovedbok) +Permission50430=Definer og lukk en regnskapsperiode +Permission50440=Administrer kontooversikt, oppsett av regnskap +Permission51001=Les eiendeler +Permission51002=Opprett/oppdater eiendeler +Permission51003=Slett eiendeler +Permission51005=Oppsett av aktivatyper Permission54001=Skriv ut Permission55001=Les meningsmålinger Permission55002=Opprett/endre meningsmålinger @@ -1110,7 +1113,7 @@ AreaForAdminOnly=Oppsettparametere kan bare angis av administratorbrukere Proforma faktura er et bilde av en ekte faktura, men har ingen verdi i regnskapsføring. InvoiceReplacement=Erstatningsfaktura InvoiceReplacementAsk=Erstatningsfaktura for faktura -InvoiceReplacementDesc=Erstatningsfaktura brukes til å avbryte og erstatte en faktura uten at betaling allerede er mottatt.

Merk: Bare faktura uten innbetaling kan erstattes. Hvis ikke faktura er lukket, vil den bli automatisk satt til 'forlatt'. +InvoiceReplacementDesc=Erstatningsfaktura brukes til å erstatte en faktura uten at betaling allerede mottatt.

Merk: Bare fakturaer uten innbetaling kan erstattes. Hvis fakturaen du erstatter, ikke er avsluttet, blir den automatisk stengt for å "forlates". InvoiceAvoir=Kreditnota InvoiceAvoirAsk=Kreditnota for å korrigere faktura InvoiceAvoirDesc=En kreditnota er en negativ faktura som brukes for å løse situasjoner hvor en faktura har et annet beløp enn det som virkelig er betalt (fordi kunden har betalt for lite ved en feil, eller for eksempel ikke ønsker å betale alt fordi han har returnert noen varer). diff --git a/htdocs/langs/nb_NO/cashdesk.lang b/htdocs/langs/nb_NO/cashdesk.lang index 9dcab394ae2..9a1c46f65a2 100644 --- a/htdocs/langs/nb_NO/cashdesk.lang +++ b/htdocs/langs/nb_NO/cashdesk.lang @@ -68,4 +68,4 @@ Terminal=Terminal NumberOfTerminals=Antall terminaler TerminalSelect=Velg terminalen du vil bruke: POSTicket=POS Billett -BasicPhoneLayout=Use basic layout for phones +BasicPhoneLayout=Bruk grunnleggende oppsett for telefoner diff --git a/htdocs/langs/nb_NO/companies.lang b/htdocs/langs/nb_NO/companies.lang index 9fc215894a4..96cb91248e5 100644 --- a/htdocs/langs/nb_NO/companies.lang +++ b/htdocs/langs/nb_NO/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolutte leverandørrabatter (oppgitt av alle SupplierAbsoluteDiscountMy=Absolutt leverandørrabatter (oppgitt av deg selv) DiscountNone=Ingen Vendor=Leverandør +Supplier=Leverandør AddContact=Opprett kontakt AddContactAddress=Opprett kontakt/adresse EditContact=Endre kontakt diff --git a/htdocs/langs/nb_NO/mails.lang b/htdocs/langs/nb_NO/mails.lang index a1e27fc6687..e0ab0167659 100644 --- a/htdocs/langs/nb_NO/mails.lang +++ b/htdocs/langs/nb_NO/mails.lang @@ -78,9 +78,9 @@ GroupEmails=Gruppe e-postmeldinger OneEmailPerRecipient=Én e-post per mottaker (som standard, en e-post per post valgt) WarningIfYouCheckOneRecipientPerEmail=Advarsel, hvis du merker av denne boksen, betyr det at bare en e-post vil bli sendt for flere forskjellige valgte poster, så hvis meldingen inneholder erstatningsvariabler som refererer til data i en post, blir det ikke mulig å erstatte dem. ResultOfMailSending=Resultat av massesending av e-post -NbSelected=Number selected -NbIgnored=Number ignored -NbSent=Number sent +NbSelected=Antall valgt +NbIgnored=Antall ignorert +NbSent=Antall sendt SentXXXmessages=%s melding(er) sendt. ConfirmUnvalidateEmailing=Er du sikker på at du vil endre status på epost %s til kladd? MailingModuleDescContactsWithThirdpartyFilter=Kontakt med kundefilter diff --git a/htdocs/langs/nb_NO/members.lang b/htdocs/langs/nb_NO/members.lang index 6faaf810b05..5949a5b499a 100644 --- a/htdocs/langs/nb_NO/members.lang +++ b/htdocs/langs/nb_NO/members.lang @@ -171,7 +171,7 @@ MembersStatisticsDesc=Velg statistikk du ønsker å lese ... MenuMembersStats=Statistikk LastMemberDate=Siste medlemsdato LatestSubscriptionDate=Siste abonnementsdato -MemberNature=Nature of member +MemberNature=Medlemskapets art Public=Informasjon er offentlig NewMemberbyWeb=Nytt medlem lagt til. Venter på godkjenning NewMemberForm=Skjema for nytt medlem diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang index fea18d2ca40..020490eb57e 100644 --- a/htdocs/langs/nb_NO/other.lang +++ b/htdocs/langs/nb_NO/other.lang @@ -3,7 +3,7 @@ SecurityCode=Sikkerhetskode NumberingShort=Nr Tools=Verktøy TMenuTools=Verktøy -ToolsDesc=All tools not included in other menu entries are grouped here.
All the tools can be accessed via the left menu. +ToolsDesc=Alle verktøy som ikke er inkludert i andre menyoppføringer, er gruppert her.
Alle verktøyene kan nås via menyen til venstre. Birthday=Fødselsdag BirthdayDate=Fødselsdag DateToBirth=Fødselsdag @@ -20,10 +20,10 @@ ZipFileGeneratedInto=Zip-fil generert til %s. DocFileGeneratedInto=Doc-fil generert til %s. JumpToLogin=Frakoblet. Gå til påloggingssiden ... MessageForm=Melding på elektronisk betalingsformular -MessageOK=Message on the return page for a validated payment -MessageKO=Message on the return page for a canceled payment +MessageOK=Melding på retursiden for en godkjent betaling +MessageKO=Melding på retursiden for en kansellert betaling ContentOfDirectoryIsNotEmpty=Denne katalogen er ikke tom. -DeleteAlsoContentRecursively=Check to delete all content recursively +DeleteAlsoContentRecursively=Sjekk om du vil slette alt innhold rekursivt YearOfInvoice=År av fakturadato PreviousYearOfInvoice=Forrige års fakturadato @@ -31,15 +31,15 @@ NextYearOfInvoice=Følgende år av fakturadato DateNextInvoiceBeforeGen=Dato for neste faktura (før generering) DateNextInvoiceAfterGen=Dato for neste faktura (etter generering) -Notify_ORDER_VALIDATE=Sales order validated -Notify_ORDER_SENTBYMAIL=Sales order sent by mail -Notify_ORDER_SUPPLIER_SENTBYMAIL=Purchase order sent by email -Notify_ORDER_SUPPLIER_VALIDATE=Purchase order recorded -Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved -Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused -Notify_PROPAL_VALIDATE=Kundentilbud validert -Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed -Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused +Notify_ORDER_VALIDATE=Salgsordre validert +Notify_ORDER_SENTBYMAIL=Salgsordre sendt via epost +Notify_ORDER_SUPPLIER_SENTBYMAIL=Innkjøpsordre sendt via e-post +Notify_ORDER_SUPPLIER_VALIDATE=Innkjøpsordre er registrert +Notify_ORDER_SUPPLIER_APPROVE=Innkjøpsordre godkjent +Notify_ORDER_SUPPLIER_REFUSE=Innkjøpsordre avvist +Notify_PROPAL_VALIDATE=Kundetilbud validert +Notify_PROPAL_CLOSE_SIGNED=Kundetilbud lukket signert +Notify_PROPAL_CLOSE_REFUSED=Kundetilbud lukket avvist Notify_PROPAL_SENTBYMAIL=Tilbud sendt med post Notify_WITHDRAW_TRANSMIT=Overføring avbrudt Notify_WITHDRAW_CREDIT=Kreditt tilbaketrekning @@ -51,10 +51,10 @@ Notify_BILL_UNVALIDATE=Validering fjernet på kundefaktura Notify_BILL_PAYED=Kundefaktura betalt Notify_BILL_CANCEL=Kundefaktura kansellert Notify_BILL_SENTBYMAIL=Kundefaktura sendt i posten -Notify_BILL_SUPPLIER_VALIDATE=Vendor invoice validated -Notify_BILL_SUPPLIER_PAYED=Vendor invoice paid -Notify_BILL_SUPPLIER_SENTBYMAIL=Vendor invoice sent by mail -Notify_BILL_SUPPLIER_CANCELED=Vendor invoice cancelled +Notify_BILL_SUPPLIER_VALIDATE=Leverandørfaktura validert +Notify_BILL_SUPPLIER_PAYED=Leverandørfaktura betalt +Notify_BILL_SUPPLIER_SENTBYMAIL=Leverandørfaktura sendt via post +Notify_BILL_SUPPLIER_CANCELED=Leverandørfaktura kansellert Notify_CONTRACT_VALIDATE=Kontrakt validert Notify_FICHEINTER_VALIDATE=Intervensjon validert Notify_FICHINTER_ADD_CONTACT=Kontakt lagt til intervensjon @@ -70,29 +70,29 @@ Notify_PROJECT_CREATE=Opprettelse av prosjekt Notify_TASK_CREATE=Oppgave opprettet Notify_TASK_MODIFY=Oppgave endret Notify_TASK_DELETE=Oppgave slettet -Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required) -Notify_EXPENSE_REPORT_APPROVE=Expense report approved -Notify_HOLIDAY_VALIDATE=Leave request validated (approval required) -Notify_HOLIDAY_APPROVE=Leave request approved +Notify_EXPENSE_REPORT_VALIDATE=Utgiftsrapport validert(godkjenning kreves) +Notify_EXPENSE_REPORT_APPROVE=Utgiftsrapport godkjent +Notify_HOLIDAY_VALIDATE=Permisjonsforespørselen er validert (godkjenning kreves) +Notify_HOLIDAY_APPROVE=Permisjonsforespørsel godkjent SeeModuleSetup=Se oppsett av modul %s NbOfAttachedFiles=Antall vedlagte filer/dokumenter TotalSizeOfAttachedFiles=Total størrelse på vedlagte filer/dokumenter MaxSize=Maksimal størrelse AttachANewFile=Legg ved ny fil/dokument LinkedObject=Lenkede objekter -NbOfActiveNotifications=Number of notifications (no. of recipient emails) +NbOfActiveNotifications=Antall notifikasjoner (antall e-postmottakere) PredefinedMailTest=__(Hei)__\nDette er en testmelding sendt til __EMAIL__.\nDe to linjene er skilt fra hverandre med et linjeskift.\n\n__USER_SIGNATURE__ PredefinedMailTestHtml=__(Hei)__\nDette er en test e-post (ordtesten må være i fet skrift). De to linjene skilles med et linjeskift.

__USER_SIGNATURE__ PredefinedMailContentContract=__(Hei)__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find commercial proposal __REF__ attached \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find price request __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find our order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find shipping __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find intervention __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoice=__(Hei)__\n\nVedlagt faktura __REF__ \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__(Hei)__\n\nVi vil gjerne minne om at fakturaen __REF__ ikke har blitt betalt. En kopi av fakturaen er vedlagt som en påminnelse.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendProposal=__(Hei)__\n\nTilbud __REF__ vedlagt\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__(Hei)__\n\nPrisforespørsel __REF__ vedlagt\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendOrder=__(Hei)__\n\nOrdre __REF__ vedlagt\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__(Hei)__\n\nBestilling __REF__ vedlagt\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__(Hei)__\n\nFaktura __REF__ vedlagt\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(Hei)__\n\nFraktbrev __REF__ vedlagt\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ +PredefinedMailContentSendFichInter=__(Hei)__\n\nIntervensjon __REF__ vedlagt\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ PredefinedMailContentThirdparty=__(Hei)__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ PredefinedMailContentContact=__(Hei)__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ PredefinedMailContentUser=__(Hei)__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__ @@ -108,7 +108,7 @@ DemoCompanyProductAndStocks=Firma som selger varer via butikk DemoCompanyAll=Firma med mange aktiviteter (alle hovedmoduler) CreatedBy=Laget av %s ModifiedBy=Endret av %s -ValidatedBy=Validertav %s +ValidatedBy=Validert av %s ClosedBy=Lukket av %s CreatedById=Bruker-ID som opprettet ModifiedById=Bruker-ID som gjorde siste endring @@ -177,36 +177,38 @@ EnableGDLibraryDesc=Installer eller aktiver GD-bibliotek i din PHP-installasjon ProfIdShortDesc=Prof-ID %s er avhengig av tredjepartens land.
For eksempel er det for %s, koden %s. DolibarrDemo=Dolibarr ERP/CRM demo StatsByNumberOfUnits=Statistikk over summen av produkter/tjenester -StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...) +StatsByNumberOfEntities=Statistikk over antall henvisende enheter (antall fakturaer, eller ordre ...) NumberOfProposals=Antall tilbud -NumberOfCustomerOrders=Number of sales orders +NumberOfCustomerOrders=Antall salgsordre NumberOfCustomerInvoices=Antall kundefakturaer -NumberOfSupplierProposals=Number of vendor proposals -NumberOfSupplierOrders=Number of purchase orders -NumberOfSupplierInvoices=Number of vendor invoices +NumberOfSupplierProposals=Antall leverandørtilbud +NumberOfSupplierOrders=Antall innkjøpsordre +NumberOfSupplierInvoices=Antall leverandørfakturaer +NumberOfContracts=Antall kontrakter NumberOfUnitsProposals=Antall enheter i tilbud -NumberOfUnitsCustomerOrders=Number of units on sales orders +NumberOfUnitsCustomerOrders=Antall enheter på salgsordre NumberOfUnitsCustomerInvoices=Antall enheter i kundefakturaer -NumberOfUnitsSupplierProposals=Number of units on vendor proposals -NumberOfUnitsSupplierOrders=Number of units on purchase orders -NumberOfUnitsSupplierInvoices=Number of units on vendor invoices -EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. +NumberOfUnitsSupplierProposals=Antall enheter på leverandørtilbud +NumberOfUnitsSupplierOrders=Antall enheter på innkjøpsordre +NumberOfUnitsSupplierInvoices=Antall enheter på leverandørfakturaer +NumberOfUnitsContracts=Antall enheter i kontrakter +EMailTextInterventionAddedContact=En ny intervensjon %s har blitt tildelt deg. EMailTextInterventionValidated=Intervensjonen %s har blitt validert. -EMailTextInvoiceValidated=Invoice %s has been validated. -EMailTextInvoicePayed=Invoice %s has been paid. -EMailTextProposalValidated=Proposal %s has been validated. -EMailTextProposalClosedSigned=Proposal %s has been closed signed. -EMailTextOrderValidated=Order %s has been validated. -EMailTextOrderApproved=Order %s has been approved. -EMailTextOrderValidatedBy=Order %s has been recorded by %s. -EMailTextOrderApprovedBy=Order %s has been approved by %s. -EMailTextOrderRefused=Order %s has been refused. -EMailTextOrderRefusedBy=Order %s has been refused by %s. -EMailTextExpeditionValidated=Shipping %s has been validated. -EMailTextExpenseReportValidated=Expense report %s has been validated. -EMailTextExpenseReportApproved=Expense report %s has been approved. -EMailTextHolidayValidated=Leave request %s has been validated. -EMailTextHolidayApproved=Leave request %s has been approved. +EMailTextInvoiceValidated=Faktura %s er validert. +EMailTextInvoicePayed=Faktura %s er betalt. +EMailTextProposalValidated=Tilbud %s er validert. +EMailTextProposalClosedSigned=Tilbud %s er lukket, signert. +EMailTextOrderValidated=Ordre %s er validert. +EMailTextOrderApproved=Ordre %s er godkjent. +EMailTextOrderValidatedBy=Ordre %s har blitt registrert av %s. +EMailTextOrderApprovedBy=Ordre %s har blitt godkjent av %s. +EMailTextOrderRefused=Ordre%s har blitt avvist. +EMailTextOrderRefusedBy=Ordre %s har blitt avvist av %s. +EMailTextExpeditionValidated=Forsendelse %s er validert. +EMailTextExpenseReportValidated=Utgiftsrapport %s er validert. +EMailTextExpenseReportApproved=Utgiftsrapport %s er godkjent. +EMailTextHolidayValidated=Permisjonsforespørsel %s er validert. +EMailTextHolidayApproved=Permisjonsforespørsel %s er godkjent. ImportedWithSet=Datasett for import DolibarrNotification=Automatisk varsling ResizeDesc=Skriv inn ny bredde eller ny høyde. BxH forhold vil bli beholdt . @@ -214,7 +216,7 @@ NewLength=Ny bredde NewHeight=Ny høyde NewSizeAfterCropping=Ny størrelse etter beskjæring DefineNewAreaToPick=Definer nytt område på bildet for å hente (venstreklikk på bildet og dra til du kommer til motsatt hjørne) -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image +CurrentInformationOnImage=Dette verktøyet ble utviklet for å hjelpe deg med å endre størrelse eller beskjære et bilde. Dette er informasjonen om gjeldende redigert bilde ImageEditor=Billedbehandler YouReceiveMailBecauseOfNotification=Du mottar denne meldingen fordi din e-post har blitt lagt til listen over mål for å bli informert om spesielle hendelser i %s programvare av %s. YouReceiveMailBecauseOfNotification2=Denne hendelsen er følgende: @@ -245,11 +247,11 @@ YourPasswordMustHaveAtLeastXChars=Passordet ditt må ha minst %s %s' som vanligvis er forbudt som dynamisk innhold (se skjulte alternativer WEBSITE_PHP_ALLOW_xxx for å øke listen over tillatte kommandoer). NotAllowedToAddDynamicContent=Du har ikke tillatelse til å legge til eller redigere PHP dynamisk innhold på nettsteder. Be om tillatelse eller behold koden i php-kodene uendret. -ReplaceWebsiteContent=Erstatt nettsideinnhold +ReplaceWebsiteContent=Søk eller erstatt nettstedsinnhold DeleteAlsoJs=Slett også alle javascript-filer som er spesifikke for denne nettsiden? DeleteAlsoMedias=Slett også alle mediefiler som er spesifikke for denne nettsiden? # Export -MyWebsitePages=My website pages +MyWebsitePages=Mine nettsider diff --git a/htdocs/langs/nb_NO/withdrawals.lang b/htdocs/langs/nb_NO/withdrawals.lang index ce42e5e20a0..12a9ddada5f 100644 --- a/htdocs/langs/nb_NO/withdrawals.lang +++ b/htdocs/langs/nb_NO/withdrawals.lang @@ -69,8 +69,8 @@ WithBankUsingBANBIC=For bankkontoer som bruker IBAN/BIC/SWIFT BankToReceiveWithdraw=Mottakende bankkonto CreditDate=Kreditt på WithdrawalFileNotCapable=Kan ikke ikke generere kvitteringsfil for tilbaketrekking for landet ditt %s (Landet er ikke støttet) -ShowWithdraw=Show Direct Debit Order -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one direct debit payment order not yet processed, it won't be set as paid to allow prior withdrawal management. +ShowWithdraw=Vis direkte debitordre +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Men, hvis fakturaen har minst én avbestillingsordre som ikke er behandlet ennå, blir den ikke satt som betalt for å tillate tidligere håndtering av tilbaketrekninger. DoStandingOrdersBeforePayments=Under denne fanen kan du be om en direktedebet-betalingsordre .Når dette er gjort, kan du gå inn i menyen Bank-> direktedebet-ordre for å håndtere betalingsoppdraget .Når betalingsoppdraget er lukket, vil betaling på fakturaen automatisk bli registrert, og fakturaen lukkes hvis restbeløpet er null. WithdrawalFile=Tilbaketrekkingsfil SetToStatusSent=Sett status til "Fil Sendt" diff --git a/htdocs/langs/nl_BE/accountancy.lang b/htdocs/langs/nl_BE/accountancy.lang index 119e3b4882f..5e684f25fe2 100644 --- a/htdocs/langs/nl_BE/accountancy.lang +++ b/htdocs/langs/nl_BE/accountancy.lang @@ -22,7 +22,6 @@ EndProcessing=Verwerking beëindigd Lineofinvoice=Factuur lijn Docdate=Datum Docref=Artikelcode -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. Blocking error. TotalVente=Totaal omzet voor belastingen AccountingJournalType2=Verkoop AccountingJournalType3=Inkoop diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang index 2ffd6272541..429474d0fd5 100644 --- a/htdocs/langs/nl_BE/admin.lang +++ b/htdocs/langs/nl_BE/admin.lang @@ -1,6 +1,21 @@ # Dolibarr language file - Source file is en_US - admin VersionLastInstall=Versie van eerste installatie +FileCheck=Fileset Integriteitscontrole +FileCheckDesc=Met deze tool kunt u de integriteit van bestanden en de instellingen van uw toepassing controleren door elk bestand te vergelijken met het officiële bestand. De waarde van sommige setup-constanten kan ook worden gecontroleerd. U kunt dit hulpprogramma gebruiken om te bepalen of bestanden zijn gewijzigd (bijvoorbeeld door een hacker). +FileIntegrityIsOkButFilesWereAdded=Controle van de integriteit van bestanden is verstreken, maar er zijn enkele nieuwe bestanden toegevoegd. +FileIntegritySomeFilesWereRemovedOrModified=Controle van de integriteit van bestanden is mislukt. Sommige bestanden zijn gewijzigd, verwijderd of toegevoegd. +GlobalChecksum=Globale checksum +RemoteSignature=Remote distant handtekening (betrouwbaarder) +FilesModified=Gewijzigde bestanden +FilesAdded=Bestanden toegevoegd +AvailableOnlyOnPackagedVersions=Het lokale bestand voor integriteitscontrole is alleen beschikbaar als de toepassing is geïnstalleerd vanuit een officieel pakket +XmlNotFound=Xml-integriteitsbestand van toepassing niet gevonden +SessionSavePath=Sessie opslaglocatie ConfirmPurgeSessions=Ben je zeker dat je alle sessies wil wissen? De connectie van elke gebruiker zal worden verbroken (uitgezonderd jezelf). +NoSessionListWithThisHandler=Save session handler geconfigureerd in uw PHP staat niet toe dat alle lopende sessies worden getoond. +ConfirmLockNewSessions=Weet je zeker dat je elke nieuwe Dolibarr-verbinding wilt beperken tot jezelf? Alleen gebruiker %s kan daarna nog een verbinding maken. +Sessions=Gebruikers Sessie +NoSessionFound=Uw PHP-configuratie lijkt het toevoegen van actieve sessies niet toe te staan. De map die wordt gebruikt om sessies op te slaan ( %s ) kan worden beveiligd (bijvoorbeeld door OS-machtigingen of door PHP-richtlijn open_basedir). DBStoringCharset=Databasekarakterset voor het opslaan van gegevens DBSortingCharset=Databasekarakterset voor het sorteren van gegevens UserSetup=Gebruikersbeheerinstellingen @@ -11,7 +26,6 @@ MenusDesc=Menubeheerders stellen de inhoud van de 2 menubalken in (horizontaal e MenusEditorDesc=De menu editor laat je toe om aangepaste menu-invoer te definiëren. Wees voorzichtig bij het gebruik van deze functionaliteit, om instabiele en permanent onvindbare menus te voorkomen.
Sommige modules voegen menu-meldingen toe (in menu Alles meestal). Indien u per ongeluk sommige van deze meldingen zou verwijderen, dan kan u deze herstellen door de module eerst uit te schakelen en opnieuw in te schakelen. SystemToolsArea=Systeemwerksetoverzicht PurgeDeleteLogFile=Verwijder logbestanden, inclusief %s  gedefinieerd voor Syslog module (geen risico om gegevens te verliezen) -PurgeDeleteTemporaryFiles=Verwijder alle tijdelijke bestanden (geen risico op verlies van gegevens) PurgeNothingToDelete=Geen map of bestanden om te verwijderen. PurgeAuditEvents=Verwijder alle gebeurtenisen ConfirmPurgeAuditEvents=Ben je zeker dat je alle veiligheidsgebeurtenissen wil verwijderen? Alle veiligheidslogboeken zullen worden verwijderd, en geen andere bestanden worden verwijderd diff --git a/htdocs/langs/nl_BE/agenda.lang b/htdocs/langs/nl_BE/agenda.lang index 6ba8ec0c085..04f2b85cd6e 100644 --- a/htdocs/langs/nl_BE/agenda.lang +++ b/htdocs/langs/nl_BE/agenda.lang @@ -2,8 +2,11 @@ EventReports=Gebeurtenisrapporten ToUserOfGroup=Aan elke gebruiker in groep ViewPerType=Overzicht per type +AgendaAutoActionDesc=Hier kunt u gebeurtenissen definiëren die u Dolibarr automatisch in Agenda wilt laten maken. Als er niets wordt gecontroleerd, worden alleen handmatige acties opgenomen in logboeken en weergegeven in Agenda. Automatisch bijhouden van zakelijke acties die worden uitgevoerd op objecten (validatie, statuswijziging), wordt niet opgeslagen. +AgendaSetupOtherDesc=Deze pagina biedt opties voor het exporteren van uw Dolibarr-evenementen naar een externe agenda (Thunderbird, Google Agenda, enz.) EventRemindersByEmailNotEnabled=Herinneringen via email was niet ingeschakeld in %s van module setup. NewCompanyToDolibarr=Derde %s aangemaakt +COMPANY_DELETEInDolibarr=Derden (externen) %s verwijderd ContractValidatedInDolibarr=Contract %s goedgekeurd CONTRACT_DELETEInDolibarr=Contract %s geannuleerd MemberModifiedInDolibarr=Lid %s werd aangepast @@ -12,7 +15,15 @@ MemberSubscriptionModifiedInDolibarr=Abonnement %s voor lid %s aangepast ShipmentValidatedInDolibarr=Shipment %s goedgekeurd ShipmentClassifyClosedInDolibarr=Verzending %s werd geclassificeerd als gefactureerd ShipmentUnClassifyCloseddInDolibarr=Verzending %s werd geclassificieerd als opnieuw geopend +ShipmentBackToDraftInDolibarr=Verzending %s zet om naar conceptstatus ShipmentDeletedInDolibarr=Shipment %s gewist +ProposalSentByEMail=Commercieel voorstel %s verzonden per e-mail +ContractSentByEMail=Contract %s verzonden per e-mail +OrderSentByEMail=Verkooporder %s verzonden per e-mail +InvoiceSentByEMail=Klantfactuur %s per e-mail verzonden +SupplierOrderSentByEMail=Bestelling %s per e-mail verzonden +SupplierInvoiceSentByEMail=Leveranciersfactuur %s verzonden per e-mail +ShippingSentByEMail=Verzending %s verzonden per e-mail ProposalDeleted=Offerte verwijderd EXPENSE_REPORT_CREATEInDolibarr=Onkostenrapport %s aangemaakt EXPENSE_REPORT_VALIDATEInDolibarr=Onkostenrapport %s gevalideerd @@ -20,6 +31,11 @@ EXPENSE_REPORT_APPROVEInDolibarr=Onkostenrapport %s goedgekeurd EXPENSE_REPORT_DELETEInDolibarr=Onkostenrapport %s verwijderd EXPENSE_REPORT_REFUSEDInDolibarr=Onkostenrapport %s geweigerd PROJECT_MODIFYInDolibarr=Project %s gewijzigd +TICKET_CREATEInDolibarr=Ticket %s aangemaakt +TICKET_MODIFYInDolibarr=Ticket %s aangepast +TICKET_ASSIGNEDInDolibarr=Ticket %s toegewezen +TICKET_CLOSEInDolibarr=Ticket %s gesloten +TICKET_DELETEInDolibarr=Ticket %s verwijderd AgendaModelModule=Document sjablonen voor een gebeurtenis AgendaUrlOptionsNotAdmin=logina=!%s om de uitvoer van acties te beperken die niet werden toegewezen aan de gebruiker %s. AgendaUrlOptions4=logint=%s om de uitvoer van acties te beperken die aan de gebruiker %s is toegewezen. (eigenaar en anderen). diff --git a/htdocs/langs/nl_BE/contracts.lang b/htdocs/langs/nl_BE/contracts.lang index 149dc3ee2eb..7fb625a9a17 100644 --- a/htdocs/langs/nl_BE/contracts.lang +++ b/htdocs/langs/nl_BE/contracts.lang @@ -1,6 +1,24 @@ # Dolibarr language file - Source file is en_US - contracts +ShowContractOfService=Toon servicecontract NewContractSubscription=Nieuwe contracten/abonnementen +ActivateAllOnContract=Activeer alle diensten +ConfirmDeleteAContract=Weet je zeker dat je dit contract en alle bijbehorende services wilt verwijderen? +ConfirmValidateContract=Weet je zeker dat je dit contract wilt valideren onder de naam %s ? +ConfirmActivateAllOnContract=Hiermee worden alle services geopend (nog niet actief). Weet je zeker dat je alle diensten wil openen? +ConfirmCloseContract=Hiermee worden alle diensten gesloten (actief of niet). Weet je zeker dat je dit contract wilt sluiten? +ConfirmCloseService=Weet je zeker dat je deze dienst wilt afsluiten met de datum %s ? +ConfirmActivateService=Weet je zeker dat je deze dienst wilt activeren met de datum %s ? +LastContracts=Laatste %s-contracten +LastModifiedServices=Laatste %s gewijzigde diensten DateStartPlanned=Geplande startdatum DateStartPlannedShort=Geplande startdatum DateEndPlanned=Geplande einddatum DateEndPlannedShort=Geplande einddatum +BoardRunningServices=Lopende diensten +CloseRefusedBecauseOneServiceActive=Contract kan niet worden gesloten omdat er ten minste één open dienst op staat +ActivateAllContracts=Activeer alle contractregels +ConfirmDeleteContractLine=Weet je zeker dat je deze contractregel wilt verwijderen? +ConfirmCloneContract=Weet u zeker als u event %s wilt klonen? +LowerDateEndPlannedShort=Eerdere geplande einddatum van actieve diensten +SendContractRef=Contractinformatie __REF__ +OtherContracts=Andere contracten diff --git a/htdocs/langs/nl_BE/interventions.lang b/htdocs/langs/nl_BE/interventions.lang index 937ada94ffc..e1ec9e29b85 100644 --- a/htdocs/langs/nl_BE/interventions.lang +++ b/htdocs/langs/nl_BE/interventions.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - interventions +InterventionSentByEMail=Interventie %s per e-mail verzonden InterventionsArea=Interventieruimte DraftFichinter=Concept interventie LastModifiedInterventions=Laatste %s gemodificeerde interventies diff --git a/htdocs/langs/nl_BE/ticket.lang b/htdocs/langs/nl_BE/ticket.lang index 0b54b422afb..b59d26af5bc 100644 --- a/htdocs/langs/nl_BE/ticket.lang +++ b/htdocs/langs/nl_BE/ticket.lang @@ -2,6 +2,9 @@ Permission56001=Zie tickets Permission56002=Wijzig tickets Permission56003=Tickets verwijderen +Permission56005=Bekijk tickets van alle externe partijen (niet effectief voor externe gebruikers, altijd beperkt tot de derde partij waarvan ze afhankelijk zijn) +TicketDictCategory=Ticket - Groepen +TicketDictSeverity=Ticket - Gradaties TicketTypeShortBUGSOFT=Software storing TicketTypeShortBUGHARD=Hardware storing TicketTypeShortOTHER=Ander @@ -10,24 +13,31 @@ ErrorBadEmailAddress=Veld '%s' onjuist MenuTicketMyAssignNonClosed=Mijn open tickets TypeContact_ticket_external_SUPPORTCLI=Klantcontact / incident volgen TypeContact_ticket_external_CONTRIBUTOR=Externe bijdrager +Notify_TICKET_SENTBYMAIL=Verzend ticketbericht per e-mail Read=Lezen Assigned=Toegewezen InProgress=Bezig +NeedMoreInformation=Wachten op informatie Closed=Afgesloten +Category=Analytische code Severity=Strengheid TicketSetup=Installatie van ticketmodule TicketPublicAccess=Een openbare interface die geen identificatie vereist, is beschikbaar op de volgende URL +TicketSetupDictionaries=Het type ticket, Gradatie en analytische codes kunnen vanuit woordenboeken worden geconfigureerd TicketParamModule=Module variabele instelling TicketParamMail=E-mail instellen TicketEmailNotificationFrom=Meldingsmail van TicketEmailNotificationFromHelp=Gebruikt als antwoord op het ticketbericht door een voorbeeld TicketEmailNotificationTo=Meldingen e-mail naar TicketEmailNotificationToHelp=Stuur e-mailmeldingen naar dit adres. +TicketNewEmailBodyLabel=Tekstbericht verzonden na het maken van een ticket TicketNewEmailBodyHelp=De tekst die hier wordt opgegeven, wordt in de e-mail ingevoegd die bevestigt dat er een nieuw ticket is gemaakt in de openbare interface. Informatie over de raadpleging van het ticket wordt automatisch toegevoegd. TicketParamPublicInterface=Openbare interface-instellingen TicketsEmailMustExist=Een bestaand e-mailadres vereisen om een ​​ticket te maken TicketsEmailMustExistHelp=In de openbare interface moet het e-mailadres al in de database zijn ingevuld om een ​​nieuw ticket te maken. PublicInterface=Openbare interface +TicketUrlPublicInterfaceLabelAdmin=Alternatieve URL voor openbare interface +TicketUrlPublicInterfaceHelpAdmin=Het is mogelijk om een alias voor de webserver te definiëren en zo de openbare interface beschikbaar te maken met een andere URL (de server moet optreden als een proxy voor deze nieuwe URL) TicketPublicInterfaceTextHomeLabelAdmin=Welkomsttekst van de openbare interface TicketPublicInterfaceTextHome=U kunt een ondersteuningsticket of -weergave maken die bestaat uit het ID-trackingticket. TicketPublicInterfaceTextHomeHelpAdmin=De tekst die hier wordt gedefinieerd, wordt weergegeven op de startpagina van de openbare interface. @@ -37,6 +47,7 @@ TicketPublicInterfaceTextHelpMessageLabelAdmin=Hulp tekst bij het bericht TicketPublicInterfaceTextHelpMessageHelpAdmin=Deze tekst verschijnt boven het berichtinvoergedeelte van de gebruiker. ExtraFieldsTicket=Extra attributen TicketCkEditorEmailNotActivated=HTML-editor is niet geactiveerd. Plaats alstublieft de inhoud van FCKEDITOR_ENABLE_MAIL op 1 om deze te krijgen. +TicketsDisableEmail=Stuur geen e-mails voor het aanmaken van tickets of het opnemen van berichten TicketsDisableEmailHelp=Standaard worden e-mails verzonden wanneer nieuwe tickets of berichten worden aangemaakt. Schakel deze optie in om * alle * e-mailmeldingen uit te schakelen TicketsLogEnableEmail=Schakel logboek per e-mail in TicketsLogEnableEmailHelp=Bij elke wijziging wordt een e-mail ** verzonden naar elk contact ** dat aan het ticket is gekoppeld. @@ -46,12 +57,14 @@ TicketsShowCompanyLogo=Geef het logo van het bedrijf weer in de openbare interfa TicketsShowCompanyLogoHelp=Schakel deze optie in om het logo van het hoofdbedrijf te verbergen op de pagina's van de openbare interface TicketsEmailAlsoSendToMainAddress=Stuur ook een bericht naar het hoofd e-mailadres TicketsEmailAlsoSendToMainAddressHelp=Schakel deze optie in om een ​​e-mail te sturen naar het e-mailadres "Kennisgevings e-mail van" (zie onderstaande instellingen) +TicketsLimitViewAssignedOnly=Beperk de weergave tot tickets die zijn toegewezen aan de huidige gebruiker (niet effectief voor externe gebruikers, altijd beperkt tot de derde partij waarvan ze afhankelijk zijn) TicketsLimitViewAssignedOnlyHelp=Alleen tickets die aan de huidige gebruiker zijn toegewezen, zijn zichtbaar. Is niet van toepassing op een gebruiker met rechten voor ticket beheer. TicketsActivatePublicInterface=Activeer de publieke interface TicketsActivatePublicInterfaceHelp=Met de openbare interface kunnen bezoekers tickets maken. TicketsAutoAssignTicket=Wijs automatisch de gebruiker toe die het ticket heeft gemaakt TicketsAutoAssignTicketHelp=Bij het maken van een ticket kan de gebruiker automatisch worden toegewezen aan het ticket. TicketNumberingModules=Nummeringsmodule tickets +TicketNotifyTiersAtCreation=Breng externen op de hoogte tijdens het maken TicketList=Lijst met tickets TicketViewNonClosedOnly=Bekijk alleen open tickets TicketStatByStatus=Tickets op status @@ -98,6 +111,7 @@ LinkToAContract=Link naar een contract TicketMailExchanges=Mail-uitwisselingen TicketInitialMessageModified=Oorspronkelijk bericht aangepast TicketNotNotifyTiersAtCreate=Het bedrijf niet melden bij de creatie +Unread=Ongelezen NoLogForThisTicket=Nog geen log voor dit ticket TicketSystem=Ticket-systeem ShowListTicketWithTrackId=Geef ticketlijst weer vanaf track ID diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index a9c274e87fb..c815dc9d158 100644 --- a/htdocs/langs/nl_NL/accountancy.lang +++ b/htdocs/langs/nl_NL/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Resultaat grootboekrekening (Verlies) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Afsluiten journaal ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Grootboekrekening kruisposten (dagboeken) DONATION_ACCOUNTINGACCOUNT=Grootboeknummer voor donaties diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index deaa6104f3c..fd7b4ac1aae 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxen uit tabel ExtrafieldLink=Link naar een object ComputedFormula=Berekend veld 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Gebruikte library voor generen PDF 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=SMS @@ -819,9 +822,9 @@ Permission532=Creëren / wijzigen van diensten Permission534=Diensten verwijderen Permission536=Inzien / beheren van verborgen diensten Permission538=Diensten exporteren -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Bekijk donaties Permission702=Creëren / wijzigen donaties Permission703=Verwijderen donaties @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/nl_NL/bills.lang b/htdocs/langs/nl_NL/bills.lang index 925a56c4613..00421a77b3b 100644 --- a/htdocs/langs/nl_NL/bills.lang +++ b/htdocs/langs/nl_NL/bills.lang @@ -10,7 +10,7 @@ BillsSuppliersUnpaid=Onbetaalde leveranciersfacturen BillsSuppliersUnpaidForCompany=Onbetaalde leveranciersfacturen voor %s BillsLate=Betalingsachterstand BillsStatistics=Statistieken afnemersfacturen -BillsStatisticsSuppliers=Vendors invoices statistics +BillsStatisticsSuppliers=Statistieken leveranciersfacturen DisabledBecauseDispatchedInBookkeeping=Uitgeschakeld omdat de factuur werd verzonden naar de boekhouding DisabledBecauseNotLastInvoice=Uitgeschakeld omdat factuur niet kan worden gewist. Er zijn vervolg-facturen aangemaakt en hierdoor zullen gaten ontstaan in de factuurteller. DisabledBecauseNotErasable=Uitgeschakeld om dat het niet verwijderd kan worden @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma factuur InvoiceProFormaDesc=Een proforma factuur is een voorlopige factuur en een orderbevestiging. Het is geen officiële factuur, maar bedoeld voor afnemers in het buitenland om bijvoorbeeld een vergunning aan te vragen of de inklaring voor te bereiden. Ze worden ook gebruikt voor het aanvragen van een Letter of Credit (L/C). InvoiceReplacement=Vervangingsfactuur InvoiceReplacementAsk=Vervangingsfactuur voor factuur -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Creditnota InvoiceAvoirAsk=Creditnota te corrigeren factuur InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). @@ -317,8 +317,8 @@ InvoiceDateCreation=Aanmaakdatum factuur InvoiceStatus=Factuurstatus InvoiceNote=Factuurnota InvoicePaid=Factuur betaald -OrderBilled=Order billed -DonationPaid=Donation paid +OrderBilled=Bestelling gefactureerd +DonationPaid=Betaalde donatie PaymentNumber=Betalingsnummer RemoveDiscount=Verwijder korting WatermarkOnDraftBill=Watermerk over conceptfacturen (niets indien leeg) @@ -397,7 +397,7 @@ PaymentConditionShort14D=14 dagen PaymentCondition14D=14 dagen PaymentConditionShort14DENDMONTH=Einde maand over 14 dagen PaymentCondition14DENDMONTH=Binnen 14 dagen na het einde van de maand -FixAmount=Fixed amount +FixAmount=Vast bedrag VarAmount=Variabel bedrag (%% tot.) VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s' # PaymentType @@ -413,8 +413,8 @@ PaymentTypeCHQ=Cheque PaymentTypeShortCHQ=Cheque PaymentTypeTIP=TIP (Documenten tegen betaling) PaymentTypeShortTIP=Betaling fooi -PaymentTypeVAD=Online payment -PaymentTypeShortVAD=Online payment +PaymentTypeVAD=Online betaling +PaymentTypeShortVAD=Online betaling PaymentTypeTRA=Bankcheque PaymentTypeShortTRA=Ontwerp PaymentTypeFAC=Factor @@ -457,11 +457,11 @@ UseLine=Toepassen UseDiscount=Gebruik korting UseCredit=Kredietbeoordelingen UseCreditNoteInInvoicePayment=Verminderen van de betaling met deze credit nota -MenuChequeDeposits=Check Deposits +MenuChequeDeposits=Controleer stortingen MenuCheques=Cheques -MenuChequesReceipts=Check receipts +MenuChequesReceipts=Controleer ontvangsten NewChequeDeposit=Nieuw depot -ChequesReceipts=Check receipts +ChequesReceipts=Controleer ontvangsten ChequesArea=Check deposits area ChequeDeposits=Check deposits Cheques=Cheques diff --git a/htdocs/langs/nl_NL/companies.lang b/htdocs/langs/nl_NL/companies.lang index d5711ccbe11..2b869938cff 100644 --- a/htdocs/langs/nl_NL/companies.lang +++ b/htdocs/langs/nl_NL/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Vastgelegde leverancier kortingen (toegekend do SupplierAbsoluteDiscountMy=Vastgelegde klant kortingen (toegekend door uzelf) DiscountNone=Geen Vendor=Verkoper +Supplier=Verkoper AddContact=Nieuwe contactpersoon AddContactAddress=Nieuw contact/adres EditContact=Bewerk contact / adres diff --git a/htdocs/langs/nl_NL/other.lang b/htdocs/langs/nl_NL/other.lang index 7a9587eebd0..7b9814a2c68 100644 --- a/htdocs/langs/nl_NL/other.lang +++ b/htdocs/langs/nl_NL/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Aantal klant facturen NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Aantal eenheden in voorstel NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Aantal eenheden op klant facturen NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=De interventie %s is gevalideerd EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/nl_NL/website.lang b/htdocs/langs/nl_NL/website.lang index f466074cb2a..024e1b4b6e6 100644 --- a/htdocs/langs/nl_NL/website.lang +++ b/htdocs/langs/nl_NL/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang index 006ac65e13c..fae0558c485 100644 --- a/htdocs/langs/pl_PL/accountancy.lang +++ b/htdocs/langs/pl_PL/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Konto księgowe dla oczekujących DONATION_ACCOUNTINGACCOUNT=Konto księgowe dla zarejestrowanych dotatcji diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index 0ed44756d6d..7cf5c8b6e13 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link do obiektu ComputedFormula=Obliczone pole 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Biblioteka używana do generowania plików PDF 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=SMS @@ -819,9 +822,9 @@ Permission532=Tworzenie / modyfikacja usług Permission534=Usuwanie usług Permission536=Zobacz / zarządzaj ukrytymi usługami Permission538=Eksport usług -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Zobacz darowizny Permission702=Tworzenie / modyfikacja darowizn Permission703=Usuń darowizny @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/pl_PL/bills.lang b/htdocs/langs/pl_PL/bills.lang index 405d0077d50..55121d67d6c 100644 --- a/htdocs/langs/pl_PL/bills.lang +++ b/htdocs/langs/pl_PL/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma faktury InvoiceProFormaDesc=Faktura proforma jest obrazem prawdziwej faktury, ale nie ma jeszcze wartości księgowych. InvoiceReplacement=Duplikat faktury InvoiceReplacementAsk=Duplikat faktury do faktury -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Nota kredytowa InvoiceAvoirAsk=Edytuj notatkę do skorygowania faktury InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/pl_PL/companies.lang b/htdocs/langs/pl_PL/companies.lang index c0643cb0aa2..42623e23dd3 100644 --- a/htdocs/langs/pl_PL/companies.lang +++ b/htdocs/langs/pl_PL/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias (handlowy, znak firmowy, ...) AliasNameShort=Alias Name Companies=Firmy CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Żaden Vendor=Vendor +Supplier=Vendor AddContact=Stwórz konktakt AddContactAddress=Stwórz kontakt/adres EditContact=Edytuj kontakt diff --git a/htdocs/langs/pl_PL/other.lang b/htdocs/langs/pl_PL/other.lang index 0b45c36de1d..031e65c7c41 100644 --- a/htdocs/langs/pl_PL/other.lang +++ b/htdocs/langs/pl_PL/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Ilość faktur klientów NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Interwencja %s zatwierdzona EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/pl_PL/website.lang b/htdocs/langs/pl_PL/website.lang index b53162bf594..be2a003ec32 100644 --- a/htdocs/langs/pl_PL/website.lang +++ b/htdocs/langs/pl_PL/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang index 9804fdb4c55..a72182b0755 100644 --- a/htdocs/langs/pt_BR/accountancy.lang +++ b/htdocs/langs/pt_BR/accountancy.lang @@ -144,7 +144,7 @@ DescThirdPartyReport=Consulte aqui a lista de clientes e fornecedores de terceir ListAccounts=Lista das contas contábeis UnknownAccountForThirdparty=Conta de terceiros desconhecida. Nós usaremos %s UnknownAccountForThirdpartyBlocking=Conta de terceiros desconhecida. Erro de bloqueio -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Conta de terceiros não definida ou desconhecida de terceiros. Erro de bloqueio. +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Conta de terceiros não definida ou desconhecida de terceiros. Erro de bloqueio. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Conta de terceiros desconhecida e conta em espera não definida. Erro de bloqueio Pcgtype=Plano de Contas Pcgsubtype=Subgrupo de Contas diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 9878c50a066..147b7dbabcc 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -120,7 +120,6 @@ SystemToolsAreaDesc=Essa área dispõem de funções administrativas. Use esse m Purge=Purgar (apagar tudo) PurgeAreaDesc=Esta página permite deletar todos os arquivos gerados ou armazenados pelo Dolibarr (arquivos temporários ou todos os arquivos no diretório %s). Este recurso é fornecido como uma solução alternativa aos usuários cujo a instalação esteja hospedado num servidor que impeça o acesso as pastas onde os arquivos gerados pelo Dolibarr são armazenados, para excluí-los. PurgeDeleteLogFile=Excluir os arquivos de registro, incluindo o %s definido pelo módulo Syslog (não há risco de perda de dados) -PurgeDeleteTemporaryFiles=Excluir todos os arquivos temporários (sem risco de perca de dados) PurgeDeleteTemporaryFilesShort=Excluir arquivos temporários PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os arquivos do diretório %s. Isto irá excluir todos documentos (Terceiros, faturas, ...), arquivos carregados no módulo ECM, Backups e arquivos temporários PurgeRunNow=Purgar(Apagar) Agora diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang index 9cd6b2dc65f..7e3445ffca9 100644 --- a/htdocs/langs/pt_PT/accountancy.lang +++ b/htdocs/langs/pt_PT/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Conta contabilística de espera DONATION_ACCOUNTINGACCOUNT=Conta contabilística para registar donativos diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index 5f8e5ed45c0..dec7048306a 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Caixas de marcação da tabela ExtrafieldLink=Vincular a um objeto ComputedFormula=Campo calculado 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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=Deixar esse campo em branco significa que esse valor será armazenado sem criptografia (o campo deve ser oculto apenas com estrela na tela).
Defina 'auto' para usar a regra de criptografia padrão para salvar a senha no banco de dados (o valor lido será o hash apenas, nenhuma maneira de recuperar o valor original) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Biblioteca utilizada para gerar PDF 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=SMS @@ -819,9 +822,9 @@ Permission532=Criar/modificar serviços Permission534=Eliminar serviços Permission536=Ver/gerir serviços ocultos Permission538=Exportar serviços -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Consultar donativos Permission702=Criar/modificar donativos Permission703=Eliminar donativos @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang index e0f25e98f61..cc737fc2d1d 100644 --- a/htdocs/langs/pt_PT/bills.lang +++ b/htdocs/langs/pt_PT/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Fatura Pró-Forma InvoiceProFormaDesc=A Fatura Pró-Forma é uma imagem de uma fatura, mas não tem valor contabilístico. InvoiceReplacement=Fatura de Substituição InvoiceReplacementAsk=Fatura de Substituição para a Fatura -InvoiceReplacementDesc= A fatura de substituição é usada para cancelar e substituir completamente uma fatura sem nenhum pagamento já recebido.

Nota: Somente faturas sem pagamento podem ser substituídas. Se a fatura que você substituir ainda não estiver fechada, ela será automaticamente fechada para "abandonada". +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Nota de Crédito InvoiceAvoirAsk=Nota de crédito para corrigir a fatura InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/pt_PT/companies.lang b/htdocs/langs/pt_PT/companies.lang index 70f9cae441e..393abc36064 100644 --- a/htdocs/langs/pt_PT/companies.lang +++ b/htdocs/langs/pt_PT/companies.lang @@ -28,7 +28,7 @@ AliasNames=Pseudónimo (comercial, marca registada, ...) AliasNameShort=Nome do alias Companies=Empresas CountryIsInEEC=País faz parte da Comunidade Económica Europeia -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Descontos de fornecedor fixos (inseridos por to SupplierAbsoluteDiscountMy=Descontos de fornecedor fixos (inseridos por si) DiscountNone=Nenhuma Vendor=Fornecedor +Supplier=Fornecedor AddContact=Criar contacto AddContactAddress=Novo contacto/morada EditContact=Editar contato / endereço diff --git a/htdocs/langs/pt_PT/other.lang b/htdocs/langs/pt_PT/other.lang index d93c411bb32..fff2fab03d4 100644 --- a/htdocs/langs/pt_PT/other.lang +++ b/htdocs/langs/pt_PT/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Número de faturas a clientes NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Número de unidades nos orçamentos NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Número de unidades em faturas a clientes NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=Uma nova intervenção %s foi atribuída a você. EMailTextInterventionValidated=Intervenção %s validados EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/pt_PT/website.lang b/htdocs/langs/pt_PT/website.lang index c98603548d7..45e4472c601 100644 --- a/htdocs/langs/pt_PT/website.lang +++ b/htdocs/langs/pt_PT/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang index aa81f9c0a8d..472c02c9452 100644 --- a/htdocs/langs/ro_RO/accountancy.lang +++ b/htdocs/langs/ro_RO/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Contul contabil rezultat (pierdere) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Jurnal de închidere ACCOUNTING_ACCOUNT_TRANSFER_CASH=Contul contabil al transferului bancar în tranziție +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Contul contabil de așteptare DONATION_ACCOUNTINGACCOUNT=Contul contabil pentru a înregistra donații diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index 97849658f83..8f9e5dc09fd 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Căsuțele de selectare din tabel ExtrafieldLink=Link către un obiect ComputedFormula=Câmp calculat ComputedFormulaDesc=Puteți introduce aici o formulă care utilizează alte proprietăți ale obiectului sau orice codare PHP pentru a obține o valoare dinamică calculată. Puteți utiliza orice formule compatibile PHP, inclusiv operatorul de stare "?" și următorul obiect global:$db, $conf, $langs, $mysoc, $user, $object .
AVERTISMENT Doar unele proprietăţi ale $obiect pot fi disponibile. Dacă aveți nevoie de proprietăți care nu sunt încărcate, trebuie doar să vă aduceți obiectul în formula dvs. ca în cel de-al doilea exemplu.
Utilizarea unui câmp calculat înseamnă că nu vă puteți introduce nici o valoare din interfață. De asemenea, dacă există o eroare de sintaxă, formula poate să nu redea nimic.

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

Exemplu de reîncărcare a obiectului
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ?$reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

Alt exemplu de formula pentru forțarea încărcării obiectului și a obiectului său părinte:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: "Proiectul părinte nu a fost găsit" +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=Lăsând acest câmp necompletat înseamnă că această valoare va fi stocată fără criptare (câmpul trebuie ascuns numai cu stea pe ecran).
Setarea "auto" pentru utilizarea regulii de criptare implicită pentru a salva parola în baza de date (atunci valoarea citită va fi hash numai, nici o şansă de a recupera valoarea inițială) ExtrafieldParamHelpselect=Lista de valori trebuie să fie linii cu format cheie,valoare (unde cheia nu poate fi "0")

de exemplu:
1,valoare1
2,valoare2
code3,valoare3
...

Pentru a avea lista în funcție de o altă listă de atribute complementare:
1, valoare1| opţiuni_ parent_list_code : parent_key
2,valoare2|opţiuni_ parent_list_code : parent_key

Pentru a avea lista în funcție de altă listă:
1, valoare1| parent_list_code : parent_key
2, valoare2| parent_list_code : parent_key ExtrafieldParamHelpcheckbox=Lista de valori trebuie să fie linii cu format cheie,valoare ( cheia nu poate fi "0")

de exemplu:
1,valoare1
2,valoare2
3,valoare3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=Lista de valori trebuie să fie linii cu format cheie,v ExtrafieldParamHelpsellist=Lista de valori provine dintr-un tabel
Sintaxă: table_name: label_field: id_field :: filter
Exemplu: c_typent: libelle: id :: filter

- idfilter este obligatoriu o cheie primară
- filtrul poate fi un test simplu (de exemplu, activ = 1) pentru a afișa numai valoarea activă
Puteți utiliza, de asemenea, $ID$ în filtrul care este ID-ul curent al obiectului curent
Pentru a face SELECT în filtru utilizați $SEL$
dacă vrei să filtrezi în extracâmpuri foloseste sintaxa extra.fieldcode = ... (unde codul de câmp este codul extra-câmpului)

Pentru a avea lista în funcție de o altă listă de atribute complementare:
c_typent: libelle: id: options_ parent_list_code |parent_column: filter

Pentru a avea lista în funcție de altă listă:
c_typent: libelle: id: parent_list_code | parent_column: filtru ExtrafieldParamHelpchkbxlst=Lista de valori vine dintr-un tabel
Sintaxă: table_name:label_field:id_field::filter
Examplu: c_typent:libelle:id::filter

filtrul poate fi un simplu test (ex active=1) pentru a afişa doar valoarea activă
De asemenea se poate utiliza $ID$ în filtrul care este ID-ul curent al obiectului curent
Pentru a face o SELECTARE în filtru folosiţi $SEL$
dacă doriţi să filtraţi în extracâmpuri folosiţi sintaxa extra.fieldcode=... (unde codul câmpului este codul extracâmpului)

Pentru a avea lista în funcție de o altă listă de atribute complementare:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

Pentru a avea lista în funcție de o altă listă :
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Parametrii trebuie să fie ObjectName: Classpath
Sintaxă: ObjectName: Classpath
Exemple:
Societe:societe/class/societe.class.php
Contact: contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Bibliotecă utilizată pentru generarea PDF-urilor LocalTaxDesc=Unele țări pot aplica două sau trei taxe pe fiecare linie de facturare. Dacă este cazul, alegeți tipul pentru a doua și a treia taxă și rata acestora. Tipuri posibile sunt:
1: taxa locală se aplică produselor și serviciilor fără TVA (localtax se calculează pe valoare fără taxă)
2: taxa locală se aplică produselor și serviciilor, inclusiv TVA (localtax se calculează în funcție de valoare+ taxa principală )
3: taxa locală se aplică produselor fără TVA (localtax se calculează pe valoare fără taxă)
4: taxa locală se aplică produselor şi includ tva (localtax se calculeaza pe valoare + TVA principală)
5: taxa locală se aplică serviciilor fără TVA (localtax se calculează pe valoarea fără TVA)
6: taxa locală se aplică serviciilor, inclusiv TVA (localtax se calculează pe sumă + taxă) SMS=SMS @@ -819,9 +822,9 @@ Permission532=Creare / Modificare servicii Permission534=Ştergere servicii Permission536=A se vedea / administra serviciile ascunse Permission538=Exportul de servicii -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Citiţi donaţii Permission702=Creare / Modificare donaţii Permission703=Ştergere donaţii @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/ro_RO/bills.lang b/htdocs/langs/ro_RO/bills.lang index 1018e4a2b24..61886b2fa25 100644 --- a/htdocs/langs/ro_RO/bills.lang +++ b/htdocs/langs/ro_RO/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Factură Proformă InvoiceProFormaDesc=Factura Proformă este o imagine a adevăratei facturi, dar nu are nici o valoare contabilă. InvoiceReplacement=Factură de Înlocuire InvoiceReplacementAsk=Factură de Înlocuire a altei facturi -InvoiceReplacementDesc=  Înlocuire factură este folosită pentru a anula și înlocui complet o factură fără plata primită deja.

Notă: Numai facturile fără plată pot fi înlocuite. În cazul în care factura pe care o înlocuiți nu este încă închisă, va fi închisă automat la "abandonat" +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Nota de credit InvoiceAvoirAsk=Nota de credit pentru a corecta factura InvoiceAvoirDesc= Nota de credit este o factură negativă utilizată pentru a corecta faptul că o factură arată o sumă care diferă de suma plătită efectiv (de exemplu, clientul a plătit prea mult din greșeală sau nu va plăti suma completă din momentul returnării unor produse). diff --git a/htdocs/langs/ro_RO/companies.lang b/htdocs/langs/ro_RO/companies.lang index 37948d05eaa..a109434b4bb 100644 --- a/htdocs/langs/ro_RO/companies.lang +++ b/htdocs/langs/ro_RO/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias nume (comercial, marca inregistrata, ...) AliasNameShort=Porecla Companies=Societăţi CountryIsInEEC=Țara se află în interiorul Comunității Economice Europene -PriceFormatInCurrentLanguage=Formatul prețului în limba curentă +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Numele terț ThirdPartyEmail=E-mail terț ThirdParty=Terț @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Reduceri absolute ale furnizorului (introduse d SupplierAbsoluteDiscountMy=Reduceri absolute ale furnizorilor (introduse de dvs.) DiscountNone=Niciunul Vendor=Furnizor +Supplier=Furnizor AddContact=Creare contact AddContactAddress=Creare contact/adresă EditContact=Editare contact diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang index 49f96d76d85..8dd02e9abd7 100644 --- a/htdocs/langs/ro_RO/other.lang +++ b/htdocs/langs/ro_RO/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Numărul de facturi pentru clienți NumberOfSupplierProposals=Numărul de propuneri de furnizori NumberOfSupplierOrders=Numărul de ordine de cumpărare NumberOfSupplierInvoices=Numărul facturilor furnizorilor +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Numărul de unități pe propuneri NumberOfUnitsCustomerOrders=Numărul de unități din comenzile de vânzări NumberOfUnitsCustomerInvoices=Numărul de unități pe facturile clienților NumberOfUnitsSupplierProposals=Numărul de unități pe propunerile furnizorilor NumberOfUnitsSupplierOrders=Numărul de unități din comenzile de achiziție NumberOfUnitsSupplierInvoices=Numărul de unități pe facturile furnizorului +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A fost atribuită o nouă intervenție %s. EMailTextInterventionValidated=Intervenţia %s validată EMailTextInvoiceValidated=Factura %s a fost validată. diff --git a/htdocs/langs/ro_RO/website.lang b/htdocs/langs/ro_RO/website.lang index 88d70505887..5a688b89cce 100644 --- a/htdocs/langs/ro_RO/website.lang +++ b/htdocs/langs/ro_RO/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=Niciun site nu a fost creat încă. Creați primul. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang index b4c2e9a6f16..99e4fefd472 100644 --- a/htdocs/langs/ru_RU/accountancy.lang +++ b/htdocs/langs/ru_RU/accountancy.lang @@ -13,10 +13,10 @@ ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type ACCOUNTING_EXPORT_PREFIX_SPEC=Укажите префикс для имени файла ThisService=This service ThisProduct=This product -DefaultForService=Default for service -DefaultForProduct=Default for product +DefaultForService=По умолчанию для услуги +DefaultForProduct=По умолчанию для товара CantSuggest=Can't suggest -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s +AccountancySetupDoneFromAccountancyMenu=Больше настроек бухгалтерии выполняется из меню %s ConfigAccountingExpert=Конфигурация бухгалтерского модуля Journalization=Журналирование Journaux=Журналы @@ -26,23 +26,23 @@ Chartofaccounts=Схема учётных записей CurrentDedicatedAccountingAccount=Current dedicated account AssignDedicatedAccountingAccount=New account to assign InvoiceLabel=Invoice label -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account -OtherInfo=Other information -DeleteCptCategory=Remove accounting account from group -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group? +OverviewOfAmountOfLinesNotBound=Обзор количества строк, не привязанных к учётному счёту +OverviewOfAmountOfLinesBound=Обзор количества строк, привязанных к учётному счёту +OtherInfo=Дополнительная информация +DeleteCptCategory=Удалить учётный счёт из группы +ConfirmDeleteCptCategory=Вы действительно хотите удалить этот учетный счет из группы бухгалтерских счетов? JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers NotYetInGeneralLedger=Not yet journalized in ledgers GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group -DetailByAccount=Show detail by account -AccountWithNonZeroValues=Accounts with non-zero values -ListOfAccounts=List of accounts +DetailByAccount=Показать детали счета +AccountWithNonZeroValues=Счета с ненулевыми значениями +ListOfAccounts=Список счетов CountriesInEEC=Countries in EEC CountriesNotInEEC=Countries not in EEC CountriesInEECExceptMe=Countries in EEC except %s CountriesExceptMe=All countries except %s -AccountantFiles=Export accounting documents +AccountantFiles=Экспорт бухгалтерских документов MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations @@ -270,7 +271,7 @@ AccountingJournalType2=Продажи AccountingJournalType3=Покупки AccountingJournalType4=Банк AccountingJournalType5=Expenses report -AccountingJournalType8=Inventory +AccountingJournalType8=Инвентарная ведомость AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s @@ -339,8 +340,8 @@ ToBind=Lines to bind UseMenuToSetBindindManualy=Lines not yet bound, use menu
%s to make the binding manually ## Import -ImportAccountingEntries=Accounting entries -DateExport=Date export -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. -ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal +ImportAccountingEntries=Бухгалтерские записи +DateExport=Дата экспорта +WarningReportNotReliable=Внимание, этот отчет не основан на Гроссбухе, поэтому не содержит транзакции, измененные вручную в Гроссбухе. Если журналирование актуально, бухгалтерский учет будет более точным. +ExpenseReportJournal=Журнал отчетов о затратах +InventoryJournal=Журнал инвентарного учета diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index c46c80ab9f8..08836e9e900 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -9,35 +9,35 @@ VersionExperimental=Экспериментальная VersionDevelopment=Разработка VersionUnknown=Неизвестно VersionRecommanded=Рекомендуемые -FileCheck=Fileset Integrity Checks -FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to determine if any files have been modified (e.g by a hacker). +FileCheck=Проверка целостности файлов +FileCheckDesc=Этот инструмент позволяет проверить целостность файлов и настройки вашего приложения, сравнивая каждый файл с официальным. Значение некоторых установочных констант также может быть проверено. Вы можете использовать этот инструмент, чтобы определить, были ли какие-либо файлы изменены (например, хакером). FileIntegrityIsStrictlyConformedWithReference=Целостность файлов строго соответствует ссылке. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added. +FileIntegrityIsOkButFilesWereAdded=Проверка целостности файлов пройдена, однако были добавлены новые файлы. FileIntegritySomeFilesWereRemovedOrModified=Ошибка проверки целостности файлов. Некоторые файлы были изменены, удалены или добавлены. GlobalChecksum=Глобальная контрольная сумма MakeIntegrityAnalysisFrom=Сделайте анализ целостности файлов приложений LocalSignature=Встроенная локальная подпись (менее надежная) -RemoteSignature=Удаленная дальняя подпись (более надежная) +RemoteSignature=Подпись на удаленном сервере (более надежная) FilesMissing=Отсутсвующие файлы FilesUpdated=Обновлённые файлы FilesModified=Модифицированные файлы FilesAdded=Добавленные файлы FileCheckDolibarr=Проверка целостности файлов приложений -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when the application is installed from an official package -XmlNotFound=Xml Integrity Файл приложения не найден +AvailableOnlyOnPackagedVersions=Локальный файл для проверки целостности доступен только тогда, когда приложение установлено из официального пакета +XmlNotFound=Xml-файл целостности приложения не найден SessionId=ID сессии SessionSaveHandler=Обработчик для сохранения сессий -SessionSavePath=Session save location +SessionSavePath=Место сохранения сессии PurgeSessions=Очистка сессий ConfirmPurgeSessions=Вы хотите завершить все сессии? Это действие отключит всех пользователей (кроме вас). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions. +NoSessionListWithThisHandler=Обработчик сохраненных сеансов, настроенный в вашем PHP, не позволяет листинг всех запущенных сессий. LockNewSessions=Заблокировать новые подключения -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user %s will be able to connect after that. +ConfirmLockNewSessions=Вы уверены, что хотите ограничить любое новое подключение Dolibarr к себе? Только пользователь %s сможет подключиться после этого. UnlockNewSessions=Удалить блокировку подключений YourSession=Ваша сессия -Sessions=Users Sessions +Sessions=Пользовательские сессии WebUserGroup=Пользователь / группа Web-сервера -NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (%s) may be protected (for example by OS permissions or by PHP directive open_basedir). +NoSessionFound=Кажется, ваша конфигурация PHP не позволяет отображать активные сеансы. Каталог, используемый для сохранения сеансов ( %s ), может быть защищен (например, разрешениями ОС или директивой PHP open_basedir). DBStoringCharset=Кодировка базы данных для хранения данных DBSortingCharset=Кодировка базы данных для сортировки данных ClientCharset=Клиентская кодировка @@ -51,11 +51,11 @@ InternalUsers=Внутренние пользователи ExternalUsers=Внешние пользователи GUISetup=Внешний вид SetupArea=Настройка -UploadNewTemplate=Загрузить новый шаблон (ы) +UploadNewTemplate=Загрузить новый шаблон(ы) FormToTestFileUploadForm=Форма для проверки загрузки файлов (в зависимости от настройки) IfModuleEnabled=Примечание: "Да" влияет только тогда, когда модуль %s включен -RemoveLock=Remove/rename file %s if it exists, to allow usage of the Update/Install tool. -RestoreLock=Restore file %s, with read permission only, to disable any further use of the Update/Install tool. +RemoveLock=Удалите/переименуйте файл %s, если он существует, чтобы разрешить использование инструмента обновления/установки. +RestoreLock=Восстановите файл %s с разрешением только для чтение, чтобы отключить дальнейшее использование инструмента обновления/установки. SecuritySetup=Настройка безопасности SecurityFilesDesc=Определите здесь параметры, связанные с безопасностью загрузки файлов. ErrorModuleRequirePHPVersion=Ошибка, этот модуль требует PHP версии %s или выше @@ -66,16 +66,16 @@ Dictionary=Словари ErrorReservedTypeSystemSystemAuto=Значение 'system' и 'systemauto' для типа зарезервировано. Вы можете использовать значение 'user' для добавления вашей собственной записи ErrorCodeCantContainZero=Код не может содержать значение 0 DisableJavascript=Отключить JavaScript и Ajax функции -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=Кроме того, если у вас есть большое количество третьих лиц (> 100 000), вы можете увеличить скорость, установив постоянную COMPANY_DONOTSEARCH_ANYWHERE на 1 в Setup-> Other. Затем поиск будет ограничен началом строки. -UseSearchToSelectContactTooltip=Кроме того, если у вас есть большое количество третьих лиц (> 100 000), вы можете увеличить скорость, установив постоянную связь CONTACT_DONOTSEARCH_ANYWHERE в 1 в Setup-> Other. Затем поиск будет ограничен началом строки. -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) -NumberOfKeyToSearch=Number of characters to trigger search: %s -NumberOfBytes=Number of Bytes -SearchString=Search string +DisableJavascriptNote=Примечание. Для тестирования или отладки. Для оптимизации для слепых или текстовых браузеров, вы можете использовать настройки в профиле пользователя. +UseSearchToSelectCompanyTooltip=Кроме того, если у вас есть большое количество контрагентов (> 100 000), вы можете увеличить скорость, установив постоянную COMPANY_DONOTSEARCH_ANYWHERE на 1 в Настройка-Доп.настройки. Затем поиск будет ограничен началом строки. +UseSearchToSelectContactTooltip=Кроме того, если у вас есть большое количество контрагентов (> 100 000), вы можете увеличить скорость, установив постоянную COMPANY_DONOTSEARCH_ANYWHERE на 1 в Настройка-Доп.настройки. Затем поиск будет ограничен началом строки. +DelaiedFullListToSelectCompany=Ожидание нажатия клавиши, прежде чем загружать содержимое списка Контрагентов.
Это может повысить производительность, если у вас много контрагентов, но это менее удобно. +DelaiedFullListToSelectContact=Ожидание нажатия клавиши, прежде чем загружать содержимое списка Контактов.
Это может увеличить производительность, если у вас большое количество контактов, но это менее удобно +NumberOfKeyToSearch=Количество символов для запуска поиска: %s +NumberOfBytes=Количество байт +SearchString=Строка поиска NotAvailableWhenAjaxDisabled=Недоступно при отключенном Ajax -AllowToSelectProjectFromOtherCompany=В документе третьей стороны можно выбрать проект, связанный с другой третьей стороной +AllowToSelectProjectFromOtherCompany=В документе контрагента можно выбрать проект, связанный с другим контрагентом JavascriptDisabled=JavaScript отключен UsePreviewTabs=Использовать вкладки предпросмотра ShowPreview=Предварительный просмотр @@ -83,7 +83,7 @@ PreviewNotAvailable=Предварительный просмотр не дос ThemeCurrentlyActive=Текущая тема CurrentTimeZone=Текущий часовой пояс в настройках PHP MySQLTimeZone=Часовой пояс БД (MySQL) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). +TZHasNoEffect=Даты хранятся и возвращаются сервером базы данных, как если бы они хранились в виде переданной строки. Часовой пояс действует только при использовании функции UNIX_TIMESTAMP (которая не должна использоваться Dolibarr, поэтому часовая зона (TZ) базы данных не должна иметь никакого эффекта, даже если она изменилась после ввода данных). Space=Пробел Table=Таблица Fields=Поля @@ -94,7 +94,7 @@ NextValueForInvoices=Следующее значение (счета-факту NextValueForCreditNotes=Следующее значение (кредитные авизо) NextValueForDeposit=Следующее значение (первоначальный взнос) NextValueForReplacements=Следующее значение (замены) -MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to %s %s, irrespective of the value of this parameter +MustBeLowerThanPHPLimit=Примечание: ваша конфигурация PHP в настоящее время ограничивает максимальный размер файла для загрузки до %s %s, независимо от значения этого параметра NoMaxSizeByPHPLimit=Примечание: в вашей конфигурации PHP установлено no limit MaxSizeForUploadedFiles=Максимальный размер загружаемых файлов (0 для запрещения каких-либо загрузок) UseCaptchaCode=Использовать графический код (CAPTCHA) на странице входа @@ -102,8 +102,8 @@ AntiVirusCommand= Полный путь к антивирусной команд AntiVirusCommandExample= Пример для ClamWin: C: \\ Program Files (x86) \\ ClamWin \\ Bin \\ clamscan.exe
Пример для ClamAV: / USR / BIN / clamscan AntiVirusParam= Дополнительные параметры командной строки AntiVirusParamExample= Пример для ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Установка модуля контрагентов -UserSetup=Установка управления пользователями +ComptaSetup=Настройка модуля бухгалтерского учета +UserSetup=Настройка управления пользователями MultiCurrencySetup=Многовалютная настройка MenuLimits=Точность и ограничения MenuIdParent=ID родительского меню @@ -114,14 +114,14 @@ NotConfigured=Модуль/Приложение не настроен Active=Активная SetupShort=Настройка OtherOptions=Другие настройки -OtherSetup=Other Setup +OtherSetup=Другие настройки CurrentValueSeparatorDecimal=Десятичный разделитель CurrentValueSeparatorThousand=Разделитель разрядов Destination=Назначение IdModule=ID модуля IdPermissions=ID прав доступа LanguageBrowserParameter=Параметр %s -LocalisationDolibarrParameters=Localization parameters +LocalisationDolibarrParameters=Параметры локализации ClientTZ=Часовой пояс пользователя ClientHour=Время клиента (пользователя) OSTZ=Часовой пояс сервера @@ -129,11 +129,11 @@ PHPTZ=Часовой пояс PHP сервера DaylingSavingTime=Летнее время CurrentHour=Время PHP (на PHP-сервере) CurrentSessionTimeOut=Тайм-аут текущей сессии -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=Чтобы установить другой часовой пояс PHP (не обязательно), вы можете попробовать добавить файл .htaccess с такой строкой, как «SetEnv TZ Europe/Paris» +HoursOnThisPageAreOnServerTZ=Внимание, в отличие от других экранов, часы на этой странице не в вашем часовом поясе, а в часовом поясе сервера. Box=Виджет Boxes=Виджеты -MaxNbOfLinesForBoxes=Max. number of lines for widgets +MaxNbOfLinesForBoxes=Макс. количество строк для виджета AllWidgetsWereEnabled=Доступны все доступные виджеты PositionByDefault=Порядок по умолчанию Position=Позиция @@ -141,17 +141,17 @@ MenusDesc=Менеджеры меню позволяют настраивать MenusEditorDesc=Редактор меню позволяет задавать собственные пункты в меню. Используйте это осторожно, что бы избежать нестабильности и всегда недоступных пунктов меню.
Некоторые модули добавляют пункты меню (в основном в меню Все). Если вы удалите некоторые из них по ошибке, вы можете восстановить их отключив или включив модуль повторно. MenuForUsers=Меню для пользователей LangFile=.lang файл -Language_en_US_es_MX_etc=Language (en_US, es_MX, ...) +Language_en_US_es_MX_etc=Язык (en_US, es_MX, ...) System=Система SystemInfo=Информация о системе SystemToolsArea=Раздел системных настроек -SystemToolsAreaDesc=This area provides administration functions. Use the menu to choose the required feature. +SystemToolsAreaDesc=Эта область обеспечивает функции администрирования. Используйте меню, чтобы выбрать необходимую функцию. Purge=Очистить -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. +PurgeAreaDesc=Эта страница позволяет вам удалить все файлы, созданные или сохраненные Dolibarr (временные файлы или все файлы в каталоге %s ). Использование этой функции обычно не требуется. Он предоставляется в качестве обходного пути для пользователей, чей Dolibarr размещен поставщиком, который не предлагает разрешения на удаление файлов, созданных веб-сервером. PurgeDeleteLogFile=Удаление файлов журналов, включая %s определенный для модуля Syslog (без риска потери данных) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=Удалить все временные файлы (без риска потери данных). Примечание: Удаление выполняется только в том случае, если временный каталог был создан 24 часа назад. PurgeDeleteTemporaryFilesShort=Удаление временных файлов -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. +PurgeDeleteAllFilesInDocumentsDir=Удалить все файлы в каталоге: %s .
Это удалит все сгенерированные документы, связанные с элементами (контрагенты, счета и т.д.), файлы, загруженные в модуль ECM, резервные копии базы данных и временные файлы. PurgeRunNow=Очистить сейчас PurgeNothingToDelete=Нет директории или файла для удаления. PurgeNDirectoriesDeleted=Удалено %s файлов или каталогов. @@ -164,16 +164,16 @@ Restore=Восстановить RunCommandSummary=Резервное копирование запущено следующей командой BackupResult=Результат резервного копирования BackupFileSuccessfullyCreated=Файл резервной копии успешно создан -YouCanDownloadBackupFile=The generated file can now be downloaded +YouCanDownloadBackupFile=Созданный файл теперь можно скачать NoBackupFileAvailable=Нет файлов резервной копии. ExportMethod=Метод экспорта ImportMethod=Метод импорта ToBuildBackupFileClickHere=Для создания файла резервной копии нажмите здесь. -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=Чтобы импортировать файл резервной копии MySQL, вы можете использовать phpMyAdmin через ваш хостинг или использовать команду mysql из командной строки.
Например: ImportPostgreSqlDesc=Для импорта файла резервной копии, вы должны использовать команду pg_restore из командной строки: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Filename for backup: +FileNameToGenerate=Имя файла резервной копии: Compression=Сжатие CommandsToDisableForeignKeysForImport=Команда отключения внешних ключей при импорте CommandsToDisableForeignKeysForImportWarning=Обязательно, если вы хотите иметь возможность для последующего восстановления sql dump @@ -195,15 +195,15 @@ IgnoreDuplicateRecords= Игнорировать ошибки дублирующ AutoDetectLang=Автоопределение (язык браузера) FeatureDisabledInDemo=Функция отключена в демо - FeatureAvailableOnlyOnStable=Функция доступна только в официальных стабильных версиях -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. +BoxesDesc=Виджеты - это компоненты, показывающие некоторую информацию, которую можно добавить для персонализации некоторых страниц. Вы можете выбрать отображать или нет виджет, выбрав целевую страницу и нажав «Активировать», или щелкнув корзину, чтобы отключить ее. OnlyActiveElementsAreShown=Показаны только элементы из включенных модулей -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 (at end of module line) to enable/disable a module/application. +ModulesDesc=Модули/приложения определяют, какие функции доступны в программном обеспечении. Некоторые модули требуют предоставления разрешений пользователям после активации модуля. Нажмите кнопку включения/выключения (в конце строки модуля), чтобы включить/отключить модуль/приложение. ModulesMarketPlaceDesc=В интернете вы можете найти больше модулей для загрузки... -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. +ModulesDeployDesc=Если разрешения вашей файловой системе позволяют, вы можете использовать этот инструмент для развертывания внешнего модуля. Модуль будет виден на вкладке %s . ModulesMarketPlaces=Поиск внешних приложений/модулей ModulesDevelopYourModule=Разработка собственного приложения/модулей -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)... +ModulesDevelopDesc=Вы также можете разработать свой собственный модуль или найти партнера для его разработки. +DOLISTOREdescriptionLong=Вместо того чтобы переключаться на сайт www.dolistore.com для поиска внешнего модуля, вы можете использовать этот встроенный инструмент, который будет выполнять поиск для вас (может быть медленным, нужен доступ в Интернет) ... NewModule=Новый FreeModule=Свободно CompatibleUpTo=Совместимость с версией %s @@ -213,10 +213,10 @@ SeeInMarkerPlace=См. На рынке Updated=Обновлено Nouveauté=Новое AchatTelechargement=Купить/Скачать -GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: %s. +GoModuleSetupArea=Чтобы развернуть/установить новый модуль, перейдите в область настройки модуля: %s . DoliStoreDesc=DoliStore, официальный магазин внешних модулей Dolibarr ERP / CRM -DoliPartnersDesc=List of companies providing custom-developed modules or features.
Note: since Dolibarr is an open source application, anyone experienced in PHP programming may develop a module. -WebSiteDesc=External websites for more add-on (non-core) modules... +DoliPartnersDesc=Список компаний, предоставляющих индивидуально разработанные модули или функции.
Примечание: поскольку Dolibarr является приложением с открытым исходным кодом, любой , кто имеет опыт программирования на PHP, может разработать модуль. +WebSiteDesc=Внешние веб-сайты для дополнительных модулей (неосновных) ... DevelopYourModuleDesc=Некоторые решения для разработки собственного модуля ... URL=Ссылка BoxesAvailable=Доступные виджеты @@ -229,29 +229,29 @@ Required=Обязательный UsedOnlyWithTypeOption=Используется только для некоторых вариантов повестки дня Security=Безопасность Passwords=Пароли -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. +DoNotStoreClearPassword=Шифрование паролей, хранящихся в базе данных (НЕ в виде простого текста). Настоятельно рекомендуем активировать эту опцию. +MainDbPasswordFileConfEncrypted=Зашифруйте пароль базы данных, хранящийся в conf.php. Настоятельно рекомендуем активировать эту опцию. InstrucToEncodePass=Чтобы поместить зашифрованный пароль в conf.php файл, замените строку
$dolibarr_main_db_pass ="..."
на
$dolibarr_main_db_pass"=crypted:%s" InstrucToClearPass=Чтобы поместить не зашифрованный пароль в conf.php файл, замените строку
$dolibarr_main_db_pass="crypted:..."
на
$dolibarr_main_db_pass="%s" -ProtectAndEncryptPdfFiles=Protect generated PDF files. This is NOT recommended as it breaks bulk PDF generation. +ProtectAndEncryptPdfFiles=Защита сгенерированных PDF-файлов. Это НЕ рекомендуется, поскольку это нарушает массовую генерацию PDF. ProtectAndEncryptPdfFilesDesc=Защита документов PDF допускает чтение и распечатку любым приложением просмотра файлов PDF. Однако редактирование и копирование не возможно. Использование этой возможности не позволит глобальное объединение файлов PDF. Feature=Возможность DolibarrLicense=Лицензия Developpers=Разработчики / авторы -OfficialWebSite=Dolibarr official web site +OfficialWebSite=Официальный сайт Dolibarr OfficialWebSiteLocal=Локальный веб-сайт (%s) -OfficialWiki=Dolibarr documentation / Wiki +OfficialWiki=Документация Dolibarr / Wiki OfficialDemo=Демонстрация возможностей Dolibarr в интернете -OfficialMarketPlace=Официальный магазин внешних модулей / дополнений +OfficialMarketPlace=Официальный магазин внешних модулей/дополнений OfficialWebHostingService=Рекомендуемые сервисы веб-хостинга (облачный хостинг) ReferencedPreferredPartners=Предпочитаемые партнёры OtherResources=Другие источники -ExternalResources=External Resources +ExternalResources=Внешние Ресурсы SocialNetworks=Социальные сети ForDocumentationSeeWiki=Для получения документации пользователя или разработчика (документация, часто задаваемые вопросы...),
посетите Dolibarr Wiki:
%s ForAnswersSeeForum=Для любых других вопросов / помощи, вы можете использовать форум Dolibarr:
%s -HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr. -HelpCenterDesc2=Some of these resources are only available in english. +HelpCenterDesc1=Вот некоторые ресурсы для получения помощи и поддержки с Dolibarr. +HelpCenterDesc2=Некоторые из этих ресурсов доступны только на английском языке . CurrentMenuHandler=Обработчик текущего меню MeasuringUnit=Единица измерения LeftMargin=Левое поле @@ -266,42 +266,42 @@ NoticePeriod=Период уведомления NewByMonth=Новые по месяцам Emails=Электронная почта EMailsSetup=Настройка электронной почты -EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary. +EMailsDesc=Эта страница позволяет вам переопределить параметры PHP по умолчанию для отправки электронной почты. В большинстве случаев в ОС Unix / Linux настройка PHP правильная, и эти параметры не нужны. EmailSenderProfiles=Профили отправителей электронной почты -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) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems) -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_SMTP_PORT=Порт SMTP/SMTPS (значение по умолчанию в php.ini: %s ) +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (значение по умолчанию в php.ini: %s ) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Порт SMTP / SMTPS (не определен в PHP в Unix-подобных системах) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (не определен в PHP в Unix-подобных системах) +MAIN_MAIL_EMAIL_FROM=Адрес электронной почты отправителя для автоматической отправки электронных писем (значение по умолчанию в 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_AUTOCOPY_TO= Копировать (СК) все отправленные письма в +MAIN_DISABLE_ALL_MAILS=Отключить всю отправку электронной почты (для тестирования или демонстрации) MAIN_MAIL_FORCE_SENDTO=Отправляйте все электронные письма (вместо реальных получателей, для целей тестирования) -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list -MAIN_MAIL_SENDMODE=Email sending method -MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication) -MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication) -MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption -MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption -MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature -MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim -MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector -MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing -MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos) +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Добавить сотрудников с электронной почтой в список разрешенных получателей +MAIN_MAIL_SENDMODE=Способ отправки электронной почты +MAIN_MAIL_SMTPS_ID=SMTP ID (если отправляющий сервер требует аутентификации) +MAIN_MAIL_SMTPS_PW=Пароль SMTP (если отправляющий сервер требует аутентификации) +MAIN_MAIL_EMAIL_TLS=Использовать шифрование TLS (SSL) +MAIN_MAIL_EMAIL_STARTTLS=Использовать шифрование TLS (STARTTLS) +MAIN_MAIL_EMAIL_DKIM_ENABLED=Используйте DKIM для создания подписи электронной почты +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Домен электронной почты для использования с DKIM +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Имя селектора DKIM +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Закрытый ключ для подписи DKIM +MAIN_DISABLE_ALL_SMS=Отключить всю отправку SMS (для тестирования или демонстрации) MAIN_SMS_SENDMODE=Метод, используемый для передачи SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending -MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email) +MAIN_MAIL_SMS_FROM=Номер телефона отправителя по умолчанию для отправки SMS +MAIN_MAIL_DEFAULT_FROMTYPE=Электронная почта отправителя по умолчанию для отправки вручную (электронная почта пользователя или компании) UserEmail=Электронная почта пользователя -CompanyEmail=Company Email +CompanyEmail=Электронная почта компании FeatureNotAvailableOnLinux=Функция недоступна на Unix подобных систем. Проверьте вашу программу для отправки почты локально. -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/ +SubmitTranslation=Если перевод для этого языка не завершен или вы обнаружили ошибки, вы можете исправить это, отредактировав файлы в каталоге langs / %s и отправив свое изменение по адресу www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Если перевод для этого языка не завершен или вы обнаружите ошибки, вы можете исправить это, отредактировав файлы в каталог langs/%s и отправив измененные файлы на dolibarr.org/forum или для разработчиков на github.com/Dolibarr/dolibarr. ModuleSetup=Настройка модуля ModulesSetup=Настройка Модулей/Приложений ModuleFamilyBase=Система -ModuleFamilyCrm=Customer Relationship Management (CRM) -ModuleFamilySrm=Vendor Relationship Management (VRM) -ModuleFamilyProducts=Product Management (PM) +ModuleFamilyCrm=Управление взаимоотношениями с клиентами (CRM) +ModuleFamilySrm=Управление взаимоотношениями с поставщиками (VRM) +ModuleFamilyProducts=Управление продуктом (PM) ModuleFamilyHr=Управление персоналом (HR) ModuleFamilyProjects=Проекты / Совместная работа ModuleFamilyOther=Другое @@ -309,25 +309,25 @@ ModuleFamilyTechnic=Много-модульные инструменты ModuleFamilyExperimental=Экспериментальные модули ModuleFamilyFinancial=Финансовые модули (Бухгалтерия / Казначейство) ModuleFamilyECM=Управление электронным содержимым (ECM) -ModuleFamilyPortal=Websites and other frontal application +ModuleFamilyPortal=Сайты и другие интерфейсные приложения ModuleFamilyInterface=Интерфейсы с внешними системами MenuHandlers=Обработчики меню MenuAdmin=Редактор меню DoNotUseInProduction=Не используйте в производстве -ThisIsProcessToFollow=Upgrade procedure: +ThisIsProcessToFollow=Процедура обновления: ThisIsAlternativeProcessToFollow=Это альтернативная настройка для обработки вручную: StepNb=Шаг %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. +FindPackageFromWebSite=Найдите пакет, который предоставит нужные вам функции (например, на официальном веб-сайте %s). +DownloadPackageFromWebSite=Скачать пакет (например, с официального сайта %s). +UnpackPackageInDolibarrRoot=Распакуйте упакованные файлы в каталог вашего сервера Dolibarr: %s +UnpackPackageInModulesRoot=Чтобы развернуть/установить внешний модуль, распакуйте/разархивируйте упакованные файлы в каталог сервера, предназначенный для внешних модулей:
%s +SetupIsReadyForUse=Развертывание модуля завершено. Однако вы должны включить и настроить модуль в своем приложении, перейдя на страницу настройки модулей: %s . NotExistsDirect=Альтернативная корневая директория не задана.
InfDirAlt=Начиная с 3-ей версии, можно определить альтернативный корневой каталог. Это позволяет вам хранить в специальном каталоге, плагины и настраиваемые шаблоны.
Просто создайте каталог в корне Dolibarr (например: custom).
InfDirExample=
Затем объявите его в файле conf.php
$dolibarr_main_url_root_alt = '/custom'
$dolibarr_main_document_root_alt ='/path/of/dolibarr/htdocs/custom'
Если эти строки комментируются с помощью ''#", чтобы включить их, просто раскомментируйте, удалив символ "#''. -YouCanSubmitFile=Alternatively, you may upload the module .zip file package: +YouCanSubmitFile=Кроме того, вы можете загрузить файл пакета .zip: CurrentVersion=Текущая версия Dolibarr -CallUpdatePage=Browse to the page that updates the database structure and data: %s. +CallUpdatePage=Перейдите на страницу, которая обновляет структуру базы данных и данные: %s. LastStableVersion=Последняя стабильная версия LastActivationDate=Последняя дата активации LastActivationAuthor=Последний активированный автор @@ -351,55 +351,55 @@ ErrorCantUseRazIfNoYearInMask= Ошибка, не может использов ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Ошибка, не возможно использовать опцию @ если последовательность {yy}{mm} или {yyyy}{mm} не в маске. UMask=UMask параметр для новых файлов в файловых системах Unix / Linux / BSD / Mac. UMaskExplanation=Этот параметр позволяет определить набор прав по умолчанию для файлов, созданных Dolibarr на сервере (при загрузке, например).
Это должно быть восьмеричное значение (например, 0666 означает, читать и записывать сможет каждый).
Этот параметр бесполезен на Windows-сервере. -SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and their organization +SeeWikiForAllTeam=Посмотрите на вики-странице список участников и их организации. UseACacheDelay= Задержка для кэширования при экспорте в секундах (0 или пусто для отключения кэширования) DisableLinkToHelpCenter=Скрыть ссылку "нужна помощь или поддержка" на странице авторизации DisableLinkToHelp=Скрыть ссылку интернет-справки "%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=Отсутствует автоматическое перенос текста, слишком длинный текст не будет отображаться в документах. При необходимости перенесите строке вручную в текстовой области. +ConfirmPurge=Вы уверены, что хотите выполнить эту очистку?
Это навсегда удалит все ваши файлы данных без возможности их восстановления (файлы ECM, вложенные файлы ...). MinLength=Минимальная длина LanguageFilesCachedIntoShmopSharedMemory=Файлы .lang, загружены в общую памяти LanguageFile=Языковой файл -ExamplesWithCurrentSetup=Examples with current configuration +ExamplesWithCurrentSetup=Примеры с текущей конфигурацией ListOfDirectories=Список каталогов с шаблонами OpenDocument -ListOfDirectoriesForModelGenODT=Список каталогов содержащих файлы шаблонов в форматеOpenDocument.

Укажите здесь полный пусть к каталогу.
Каждый каталог с новой строки.
Для добавления каталога GED-модулей, добавьте здесь DOL_DATA_ROOT/ecm/yourdirectoryname.

Файлы в этих каталогах должны заканчиваться символами .odt или .ods. -NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories +ListOfDirectoriesForModelGenODT=Список каталогов, содержащих файлы шаблонов в формате OpenDocument.

Укажите здесь полный путь к каталогу.
Каждый каталог с новой строки.
Чтобы добавить каталог GED-модуля, добавьте здесь DOL_DATA_ROOT/ecm/yourdirectoryname .

Файлы в этих каталогах должны заканчиваться на .odt или .ods . +NumberOfModelFilesFound=Количество файлов шаблонов ODT/ODS, найденных в этих каталогах ExampleOfDirectoriesForModelGen=Примеры синтаксиса:
C: \\ MYDIR
/ home / mydir
DOL_DATA_ROOT / ecm / ecmdir FollowingSubstitutionKeysCanBeUsed=
Прежде чем сохранить шаблоны в этих каталогах прочитайте документацию на Wiki чтобы узнать, как создать свой шаблоны ODT документов: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=Расположение Имени / Фамилиии -DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values: +DescWeather=Следующие изображения будут отображаться на Информ-панели, когда количество последних действий достигнет следующих значений: KeyForWebServicesAccess=Ключ к использованию веб-служб (параметр "dolibarrkey" в веб-службах) TestSubmitForm=Форма тестового ввода -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=При использовании этого менеджера меню также будет использоваться собственная тема независимо от выбора пользователя. Также этот менеджер меню, специализированный для смартфонов, работает не на всех смартфонах. Используйте другой менеджер меню, если у вас возникли проблемы с вашим. ThemeDir=Каталог тем оформления -ConnectionTimeout=Connection timeout +ConnectionTimeout=Время соединения вышло ResponseTimeout=Время ожидания ответа SmsTestMessage=Пробное сообщение от __PHONEFROM__ к ​​__PHONETO__ ModuleMustBeEnabledFirst=Для использования этой функции необходимо сначала включить модуль %s SecurityToken=Ключ для шифрования 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=Менеджер отправления SMS недоступен. Диспетчер отправления SMS не устанавливается вместе с дистрибутивом по умолчанию, поскольку он зависит от внешнего поставщика, но некоторые из них можно найти на %s. PDF=PDF -PDFDesc=Global options for PDF generation. -PDFAddressForging=Rules for address boxes -HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT +PDFDesc=Общие опции для генерации PDF. +PDFAddressForging=Правила для зоны адреса +HideAnyVATInformationOnPDF=Скрыть всю информацию, связанную с налогом с продаж / НДС PDFRulesForSalesTax=Правила для налога с продаж/НДС PDFLocaltax=Правила для %s -HideLocalTaxOnPDF=Hide %s rate in column Tax Sale -HideDescOnPDF=Hide products description -HideRefOnPDF=Hide products ref. -HideDetailsOnPDF=Hide product lines details +HideLocalTaxOnPDF=Скрыть ставку %s в колонке Налог +HideDescOnPDF=Скрыть описание товара +HideRefOnPDF=Скрыть ссылки на продукты. +HideDetailsOnPDF=Скрыть детали о линейки продуктов PlaceCustomerAddressToIsoLocation=Используйте французскую стандартную позицию (La Poste) для позиции адреса клиента Library=Библиотека UrlGenerationParameters=Параметры безопасных URL`ов SecurityTokenIsUnique=Использовать уникальный параметр securekey для каждого URL EnterRefToBuildUrl=Введите ссылку на объект %s GetSecuredUrl=Получить рассчитанный URL -ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons +ButtonHideUnauthorized=Скрыть кнопки для пользователей без прав администратора для несанкционированных действий вместо отображения серых отключенных кнопок OldVATRates=Предыдущее значение НДС NewVATRates=Новое значение НДС PriceBaseTypeToChange=Изменять базовые цены на определенную величину -MassConvert=Launch bulk conversion +MassConvert=Запустить пакетное преобразование String=Строка TextLong=Длинный текст HtmlText=Html текст @@ -416,21 +416,24 @@ ExtrafieldSelect = Выбрать из списка ExtrafieldSelectList = Выбрать из таблицы ExtrafieldSeparator=Разделитель (не поле) ExtrafieldPassword=Пароль -ExtrafieldRadio=Radio buttons (one choice only) +ExtrafieldRadio=Радио кнопки (только один выбор) ExtrafieldCheckBox=Флажок ExtrafieldCheckBoxFromList=Флажки из таблицы ExtrafieldLink=Ссылка на объект ComputedFormula=Вычисленное поле -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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found' -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) -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
... -ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 -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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ComputedFormulaDesc=Вы можете ввести здесь формулу, используя другие свойства объекта или любую кодировку PHP, чтобы получить динамически вычисленное значение. Вы можете использовать любые PHP-совместимые формулы, включая "?" оператор условия и следующий глобальный объект: 1$db, $conf, $langs, $mysoc, $user, $object1 . 2 3ВНИМАНИЕ3 : могут быть доступны только некоторые свойства $object. Если нужные вам свойства не загружены, просто извлеките объект в формулу, как во втором примере.
Использование вычисляемого поля означает, что вы не можете ввести себе любое значение из интерфейса. Также, если есть синтаксическая ошибка, формула может ничего не возвращать.

Пример формулы:
$object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Пример для перезагрузки объекта
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

Другой пример формулы для принудительной загрузки объекта и его родительского объекта:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Родительский проект не найден' +Computedpersistent=Сохранить вычисленное поле +ComputedpersistentDesc=Вычисленные дополнительные поля будут сохранены в базе данных, однако значение будет пересчитано только при изменении объекта этого поля. Если вычисляемое поле зависит от других объектов или глобальных данных, это значение может быть неправильным!! +ExtrafieldParamHelpPassword=Оставьте это поле пустым, чтобы значение хранилось без шифрования (поле должно быть скрыто только звездочкой на экране).
Установите 'auto', чтобы использовать правило шифрования по умолчанию для сохранения пароля в базе данных (тогда считываемое значение будет только хешем, никакой возможности восстановить исходное значение) +ExtrafieldParamHelpselect=Список значений должен быть строками формата: ключ, значение (где ключ не может быть равен 0)

например:
1, значение1
2, значение2
code3, значение3
...

Чтобы иметь список в зависимости от другого списка дополнительных атрибутов:
1, значение1|options_ parent_list_code : parent_key
2, значение2|options_ parent_list_code : parent_key

Чтобы иметь список в зависимости от другого списка:
1, значение1 | parent_list_code : parent_key
2, значение2 | parent_list_code : parent_key +ExtrafieldParamHelpcheckbox=Список значений должен быть строками с форматом: ключ, значение (где ключ не может быть равен 0)

например:
1, значение1
2, значение2
3, значение3
... +ExtrafieldParamHelpradio=Список значений должен быть строками с форматом: ключ, значение (где ключ не может быть равен 0)

например:
1, значение1
2, значение2
3, значение3
... +ExtrafieldParamHelpsellist=Список значений поступает из таблицы
Синтаксис: table_name:label_field:id_field::filter
Пример: c_typent:libelle:id:: filter

-idfilter - обязательно первичный ключ int
- фильтр может быть простым тестом (например, active = 1) для отображения только активного значения
Вы также можете использовать $ID$ в фильтре с текущим идентификатором текущего объекта.
Чтобы сделать SELECT в фильтре, используйте $SEL$
если вы хотите фильтровать extrafields, используйте синтаксис extra.fieldcode = ... (где code field - это код extrafields)

Чтобы иметь список в зависимости от другого списка дополнительных атрибутов:
c_typent:libelle:id:options_ parent_list_code|parent_column:filter

Чтобы иметь список в зависимости от другого списка:
c_typent:libelle:id: parent_list_code|parent_column:filter +ExtrafieldParamHelpchkbxlst=Список значений поступает из таблицы
Синтаксис: table_name:label_field:id_field::filter
Пример: c_typent: libelle:id::filter

Фильтр может быть простым тестом (например, active = 1) для отображения только активного значения
Вы также можете использовать $ID$ в фильтре с текущим идентификатором текущего объекта.
Чтобы сделать SELECT в фильтре, используйте $SEL$
если вы хотите фильтровать extrafield, используйте синтаксис extra.fieldcode = ... (где code field - это код extrafield)

Чтобы иметь список в зависимости от другого списка дополнительных атрибутов:
c_typent:libelle:id: options_ parent_list_code|parent_column: filter

Чтобы иметь список в зависимости от другого списка:
c_typent: ibelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelplink=Параметры должны быть ObjectName:Classpath
Синтаксис: ObjectName:Classpath
Примеры:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Оставьте пустым для простого разделителя
Установите 1 для сворачивающегося разделителя (открытый по умолчанию)
Установите 2 для сворачивающегося разделителя (свернут по умолчанию) LibraryToBuildPDF=Библиотека используемая для создания PDF-файлов -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) +LocalTaxDesc=Некоторые страны могут применять два или три налога на каждую позицию счета. Если это так, выберите тип второго и третьего налога и его ставку. Возможные типы:
1: местный налог применяется к продуктам и услугам без НДС (местный налог рассчитывается на сумму без налога)
2: местный налог применяется к продуктам и услугам, включая НДС (местный налог рассчитывается на сумму + основной налог)
3: местный налог применяется к продуктам без НДС (местный налог рассчитывается на сумму без налога)
4: местный налог применяется к продуктам, включая НДС (местный налог рассчитывается на сумму + основной НДС)
5: местный налог применяется к услугам без НДС (местный налог рассчитывается на сумму без налога)
6: местный налог применяется к услугам, включая НДС (местный налог рассчитывается на сумму + налог) SMS=SMS LinkToTestClickToDial=Введите номер телефона для отображения ссылки с целью проверки ClickToDial-адреса пользователя %s RefreshPhoneLink=Обновить ссылку @@ -440,40 +443,40 @@ DefaultLink=Ссылка по умолчанию SetAsDefault=Установить по умолчанию ValueOverwrittenByUserSetup=Предупреждение: это значение может быть перезаписано в настройках пользователя (каждый пользователь может задать свои настройки ссылки ClickToDial) ExternalModule=Внешний модуль - установлен в директорию %s -BarcodeInitForthird-parties=Mass barcode init for third-parties +BarcodeInitForthird-parties=Массовая инициализация штрих-кода для контрагентов BarcodeInitForProductsOrServices=Массовое создание или удаление штрих-кода для Товаров или Услуг CurrentlyNWithoutBarCode=В настоящее время у вас есть %sзапись на %s%s без определенного штрих-кода. InitEmptyBarCode=Начальное значения для следующих %s пустых записей EraseAllCurrentBarCode=Стереть все текущие значения штрих-кодов ConfirmEraseAllCurrentBarCode=Вы действительно хотите удалить все текущие значения штрих-кода? AllBarcodeReset=Все значения штрих-кодов были удалены -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup. +NoBarcodeNumberingTemplateDefined=В настройках модуля штрих-кода не включен шаблон нумерации. EnableFileCache=Включить кеш файлов -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=Добавьте дополнительные сведения в нижний колонтитул, такие как адрес компании или имена менеджеров (в дополнение к профессиональным идентификаторам, капиталу компании и номеру НДС). +NoDetails=Никаких дополнительных подробностей в нижнем колонтитуле DisplayCompanyInfo=Показать адрес компании DisplayCompanyManagers=Отображать имена менеджеров DisplayCompanyInfoAndManagers=Отображать имена адресов и менеджеров компаний -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 +EnableAndSetupModuleCron=Если вы хотите, чтобы этот повторяющийся счет генерировался автоматически, модуль * %s * должен быть включен и правильно настроен. В противном случае генерация счетов должна производиться вручную из этого шаблона с помощью кнопки * Создать *. Обратите внимание, что даже если вы включили автоматическую генерацию, вы все равно можете не опасаясь запустить ручную генерацию. Генерация дубликатов за один и тот же период невозможна. +ModuleCompanyCodeCustomerAquarium=%s, за которым следует код клиента для кода учетной записи клиента +ModuleCompanyCodeSupplierAquarium=%s, за которым следует код поставщика для кода учетной записи поставщика ModuleCompanyCodePanicum=Верните пустой учетный код. -ModuleCompanyCodeDigitaria=Accounting code depends on third-party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third-party code. +ModuleCompanyCodeDigitaria=Бухгалтерский код зависит от кода контрагента. Код состоит из символа «C» в первой позиции, за которым следуют первые 5 символов кода контрагента. Use3StepsApproval=По умолчанию заказы на поставку должны быть созданы и одобрены двумя разными пользователями (один шаг/пользователь для создания и один шаг/пользователь для одобрения. Обратите внимание, что если у пользователя есть как разрешение на создание и утверждение, достаточно одного шага/пользователя) , Вы можете задать эту опцию, чтобы ввести утверждение третьего шага/пользователя, если сумма превышает выделенное значение (так что потребуется 3 шага: 1 = валидация, 2 = первое утверждение и 3 = второе одобрение, если суммы достаточно).
Установите это для пустого, если достаточно одного утверждения (2 шага), установите его на очень низкое значение (0,1), если требуется второе утверждение (3 шага). UseDoubleApproval=Используйте одобрение на 3 шага, когда сумма (без налога) выше ... -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email 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 (be careful also of your email provider's sending quota).
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider. +WarningPHPMail=ПРЕДУПРЕЖДЕНИЕ. Часто лучше настроить исходящую электронную почту, чтобы использовать почтовый сервер вашего провайдера вместо настроек по умолчанию. Некоторые провайдеры электронной почты (например, Yahoo) не позволяют отправлять электронную почту с другого сервера, не их собственного сервера. Ваша текущая настройка использует сервер приложения для отправки электронной почты, а не сервер вашего провайдера электронной почты, поэтому некоторые получатели (совместимые с ограничительным протоколом DMARC) спросят вашего провайдера электронной почты, могут ли они принять вашу электронную почту, а некоторые провайдеры электронной почты (например, Yahoo) может ответить «нет», потому что сервер не принадлежит им, поэтому некоторые из отправленных вами писем могут быть не приняты (будьте осторожны и с квотой отправки вашего провайдера электронной почты).
Если у вашего провайдера электронной почты (например, Yahoo) есть это ограничение, вы должны изменить настройки электронной почты, чтобы выбрать другой метод «SMTP-сервер» и ввести SMTP-сервер и учетные данные, предоставленные вашим провайдером электронной почты. WarningPHPMail2=Если вашему SMTP-провайдеру электронной почты необходимо ограничить почтовый клиент некоторыми IP-адресами (это очень редко), это IP-адрес почтового пользователя (MUA) для вашего приложения ERP CRM: %s. ClickToShowDescription=Нажмите, чтобы посмотреть описание -DependsOn=This module needs the module(s) -RequiredBy=Этому модулю требуется модуль (модулями) -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 -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation. +DependsOn=Этот модуль нуждается в модуле (модулях) +RequiredBy=Этот модуль требуется для модуля (модулей) +TheKeyIsTheNameOfHtmlField=Это имя поля HTML. Необходимы технические знания, чтобы прочитать содержимое HTML-страницы, чтобы получить ключевое имя поля. +PageUrlForDefaultValues=Вы должны ввести относительный путь URL страницы. Если вы укажете параметры в URL-адресе, значения по умолчанию будут эффективны, если все параметры будут установлены на одно и то же значение. +PageUrlForDefaultValuesCreate=
Пример:
Для формы создания нового контрагента, это %s .
Для URL внешних модулей, установленных в пользовательский каталог, не добавляйте «custom /», поэтому используйте путь mymodule/mypage.php, а не custom/mymodule / mypage.php.
Если вы хотите использовать значение по умолчанию, только если в url есть какой-либо параметр, вы можете использовать %s +PageUrlForDefaultValuesList=
Пример:
Для страницы, на которой перечислены контрагенты, это %s .
Для URL-адресов внешних модулей, установленных в пользовательский каталог, не включайте «custom /», и используйте путь как mymodule/mypagelist.php, а не custom/mymodule/mypagelist.php.
Если вы хотите использовать значение по умолчанию, только если в url есть какой-либо параметр, вы можете использовать %s +AlsoDefaultValuesAreEffectiveForActionCreate=Также обратите внимание, что перезапись значений по умолчанию для создания формы работает только для страниц, которые были правильно созданы (так с параметром action = create или presend ...) +EnableDefaultValues=Включить настройку значений по умолчанию +EnableOverwriteTranslation=Разрешить использование переписанного перевода +GoIntoTranslationMenuToChangeThis=Для ключа с этим кодом найден перевод. Чтобы изменить это значение, вы должны отредактировать его из Главная-Настройки-Перевод. WarningSettingSortOrder=Предупреждение, установка порядка сортировки по умолчанию может привести к технической ошибке при переходе на страницу списка, если поле является неизвестным. Если у вас возникла такая ошибка, вернитесь на эту страницу, чтобы удалить порядок сортировки по умолчанию и восстановить поведение по умолчанию. Field=Поле ProductDocumentTemplates=Шаблоны документов для создания документа продукта @@ -482,55 +485,55 @@ WatermarkOnDraftExpenseReports=Водяной знак по отчетам о р AttachMainDocByDefault=Установите это значение в 1, если вы хотите приложить основной документ к электронной почте по умолчанию (если применимо) FilesAttachedToEmail=Прикрепить файл SendEmailsReminders=Отправить напоминания по электронной почте -davDescription=Setup a WebDAV server +davDescription=Настройте сервер WebDAV DAVSetup=Настройка модуля DAV -DAV_ALLOW_PRIVATE_DIR=Enable the generic private directory (WebDAV dedicated directory named "private" - login required) -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). -DAV_ALLOW_ECM_DIR=Enable the DMS/ECM private directory (root directory of the DMS/ECM module - login required) -DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Similarly as access from the web interface, you will need a valid login/password with adecuate permissions to access it. +DAV_ALLOW_PRIVATE_DIR=Включить общий частный каталог (выделенный каталог WebDAV с именем «private» - требуется вход в систему) +DAV_ALLOW_PRIVATE_DIRTooltip=Общий частный каталог - это каталог WebDAV, к которому любой может получить доступ с помощью своего логина/пароля. +DAV_ALLOW_PUBLIC_DIR=Включить общий публичный каталог (выделенный каталог WebDAV с именем «public» - вход в систему не требуется) +DAV_ALLOW_PUBLIC_DIRTooltip=Общий публичный каталог - это каталог WebDAV, к которому может получить доступ каждый (в режиме чтения и записи) без авторизации (логин/пароль). +DAV_ALLOW_ECM_DIR=Включить приватный каталог DMS/ECM (корневой каталог модуля DMS/ECM - требуется вход в систему) +DAV_ALLOW_ECM_DIRTooltip=Корневой каталог, куда все файлы загружаются вручную при использовании модуля DMS/ECM. Аналогично доступу через веб-интерфейс, вам потребуется действующий логин/пароль с соответствующими разрешениями для доступа к нему. # Modules Module0Name=Пользователи и Группы Module0Desc=Управление Пользователями / Сотрудниками и Группами -Module1Name=Third Parties -Module1Desc=Companies and contacts management (customers, prospects...) +Module1Name=Контрагенты +Module1Desc=Управление компаниями и контактами (клиенты, потенциальные клиенты ...) Module2Name=Коммерческие Module2Desc=Коммерческое управление -Module10Name=Accounting (simplified) -Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table. +Module10Name=Бухгалтерский учет (упрощенный) +Module10Desc=Простые бухгалтерские отчеты (журналы, обороты) на основе содержимого базы данных. Не использует таблицы гроссбуха. Module20Name=Предложения Module20Desc=Управление коммерческими предложеними -Module22Name=Mass Emailings -Module22Desc=Manage bulk emailing +Module22Name=Массовые рассылки +Module22Desc=Управление массовой рассылкой Module23Name=Энергия Module23Desc=Мониторинг потребления энергии -Module25Name=Sales Orders -Module25Desc=Sales order management +Module25Name=Заказы на продажу +Module25Desc=Управление заказами на продажу Module30Name=Счета-фактуры -Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers +Module30Desc=Управление счетами и кредитными авизо для клиентов. Управление счетами и кредитными авизо для поставщиков Module40Name=Поставщики -Module40Desc=Vendors and purchase management (purchase orders and billing) +Module40Desc=Поставщики и управление закупками (заказы на покупку и выставление счетов) Module42Name=Отчет об ошибках Module42Desc=Средства регистрации (file, syslog, ...). Такие журналы предназначены для технических/отладочных целей. Module49Name=Редакторы Module49Desc=Управления редактором Module50Name=Продукция -Module50Desc=Management of Products +Module50Desc=Управление продуктами Module51Name=Массовые рассылки Module51Desc=Управление массовыми бумажными отправлениями Module52Name=Акции -Module52Desc=Stock management (for products only) +Module52Desc=Управление запасами (только для продуктов) Module53Name=Услуги -Module53Desc=Management of Services +Module53Desc=Управление Услугами Module54Name=Контакты/Подписки -Module54Desc=Management of contracts (services or recurring subscriptions) +Module54Desc=Управление контрактами (услуги или периодические подписки) Module55Name=Штрих-коды Module55Desc=Управление штрих-кодами Module56Name=Телефония Module56Desc=Интеграция телефонии -Module57Name=Bank Direct Debit payments -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries. +Module57Name=Прямые банковские платежи +Module57Desc=Управление платежными поручениями с прямым дебитом. Включает создание файла SEPA для европейских стран. Module58Name=ClickToDial Module58Desc=Интеграция с системами НажатьДляЗвонка (Asterisk, ...) Module59Name=Bookmark4u @@ -540,115 +543,115 @@ Module70Desc=Управление мероприятиями Module75Name=Транспортные расходы Module75Desc=Управление транспортными расходами Module80Name=Отгрузки -Module80Desc=Shipments and delivery note management -Module85Name=Banks & Cash +Module80Desc=Управление отгрузками и накладными +Module85Name=Банки и Наличные Module85Desc=Управление банковскими счетами или наличными -Module100Name=External Site -Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame under the top menu. +Module100Name=Внешний сайт +Module100Desc=Добавьте ссылку на внешний сайт в виде значка главного меню. Сайт отображается в рамке под верхним меню. Module105Name=Mailman и SPIP Module105Desc=Модуль интерфейса для рассылок Mailman или SPIP Module200Name=LDAP -Module200Desc=LDAP directory synchronization +Module200Desc=Синхронизация каталогов LDAP Module210Name=PostNuke Module210Desc=Интергация с PostNuke Module240Name=Экспорт данных Module240Desc=Инструмент для экспорта данных Dolibarr (с ассистентами) Module250Name=Импорт данных -Module250Desc=Tool to import data into Dolibarr (with assistants) +Module250Desc=Инструмент для импорта данных в Dolibarr (с помощниками) Module310Name=Участники Module310Desc=Управление участниками фонда Module320Name=RSS-канал -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 -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. +Module320Desc=Добавить канал RSS на страницы Dolibarr +Module330Name=Закладки и Ярлыки +Module330Desc=Создавайте ярлыки, всегда доступные, для внутренних или внешних страниц, к которым вы часто обращаетесь +Module400Name=Проекты или Сделки +Module400Desc=Управление проектами, сделками/возможностями и/или задачами. Вы также можете назначить любой элемент (счет-фактура, заказ, предложение, мероприятия, ...) проекту и видеть в срезе представление проекта. Module410Name=Веб-календарь Module410Desc=Интеграция веб-календаря -Module500Name=Taxes & Special Expenses -Module500Desc=Управление другими расходами (налоги на продажу, социальные или налоговые налоги, дивиденды, ...) +Module500Name=Налоги и специальные расходы +Module500Desc=Управление другими расходами (НДС, социальные или налоговые расходы, дивиденды, ...) Module510Name=Зарплаты -Module510Desc=Record and track employee payments +Module510Desc=Записывать и отслеживать выплаты сотрудникам Module520Name=Ссуды Module520Desc=Управление ссудами Module600Name=Уведомления -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. +Module600Desc=Отправка уведомлений по электронной почте, инициированных бизнес-событием: для каждого пользователя (настройка, определенная для каждого пользователя), для сторонних контактов (настройка, определенная для каждого контрагента) или для определенных электронных писем +Module600Long=Обратите внимание, что этот модуль отправляет электронные письма в режиме реального времени, когда происходит определенное деловое событие. Если вы ищете функцию для отправки напоминаний по электронной почте для событий в повестке дня, перейдите к настройке модуля Agenda. Module610Name=Варианты продукта -Module610Desc=Creation of product variants (color, size etc.) +Module610Desc=Создание вариантов продукта (цвет, размер и т.д.) Module700Name=Пожертвования Module700Desc=Управление пожертвованиями -Module770Name=Expense Reports -Module770Desc=Manage expense reports claims (transportation, meal, ...) -Module1120Name=Vendor Commercial Proposals -Module1120Desc=Запросить коммерческое предложение и цены продавца +Module770Name=Отчеты о расходах +Module770Desc=Управление и утверждение отчетов о расходах (транспорт, питание, ...) +Module1120Name=Коммерческие предложения поставщика +Module1120Desc=Запросить коммерческое предложение и цены поставщика Module1200Name=Mantis Module1200Desc=Интеграция с Mantis Module1520Name=Создание документов -Module1520Desc=Mass email document generation +Module1520Desc=Массовая генерация документов по электронной почте Module1780Name=Теги/Категории Module1780Desc=Создание тегов/категорий (продукции, клиентов, поставщиков, контактов или участников) Module2000Name=Текстовый редактор WYSIWYG -Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) +Module2000Desc=Разрешить редактирование/форматирование текстовых полей с помощью CKEditor (html) Module2200Name=Динамическое ценообразование -Module2200Desc=Use maths expressions for auto-generation of prices +Module2200Desc=Используйте математические выражения для автогенерации цен Module2300Name=Запланированные задания -Module2300Desc=Запланированное управление заданиями (псевдоним cron или chrono table) +Module2300Desc=Управление запланированными заданиями (alias cron или chrono table) Module2400Name=События/Повестка дня -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. +Module2400Desc=Отслеживать события. Журнал автоматических событий для отслеживания или записи вручную событий или встреч. Это основной модуль для хорошего управления взаимоотношениями с клиентами или поставщиками. Module2500Name=DMS / ECM -Module2500Desc=Система управления документами / Управление электронным контентом. Автоматическая организация ваших сгенерированных или сохраненных документов. Поделитесь им, когда вам нужно. +Module2500Desc=Система управления документами / Управление электронным контентом. Автоматическая организация ваших сгенерированных или сохраненных документов. Поделитесь ими, когда вам нужно. Module2600Name=API/Веб-службы (SOAP-сервер) Module2600Desc=Включение Dolibarr SOAP сервера предоставляющего API-сервис Module2610Name= API/веб-службы (сервер REST) Module2610Desc=Включить сервер REST для Dolibarr, предоставляющий услуги API Module2660Name=Вызовите WebServices (клиент SOAP) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.) +Module2660Desc=Включить клиент веб-служб Dolibarr (может использоваться для передачи данных/запросов на внешние серверы. В настоящее время поддерживаются только заказы на покупку.) Module2700Name=Всемирно распознаваемый аватар -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access +Module2700Desc=Используйте онлайн-сервис Gravatar (www.gravatar.com), чтобы показывать фотографию пользователей/участников (связанную с их электронной почтой). Нужен доступ в интернет Module2800Desc=FTP-клиент Module2900Name=GeoIPMaxmind Module2900Desc=Подключение к службе GeoIP MaxMind для преобразования IP-адреса в название страны Module3200Name=Неограниченные архивы -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. -Module4000Name=Менеджер отдела кадров +Module3200Desc=Включите неизменяемый журнал деловых событий. События архивируются в режиме реального времени. Журнал представляет собой доступную только для чтения таблицу связанных событий, которые можно экспортировать. Этот модуль может быть обязательным для некоторых стран. +Module4000Name=Управление персоналом Module4000Desc=Управление персоналом (управление отделом, контракты и чувства сотрудников) Module5000Name=Группы компаний Module5000Desc=Управление группами компаний Module6000Name=Бизнес-Процесс Module6000Desc=Управление рабочим процессом (автоматическое создание объекта и/или автоматическое изменение статуса) Module10000Name=Веб-сайты -Module10000Desc=Create websites (public) with a WYSIWYG editor. 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 -Module39000Name=Product Lots -Module39000Desc=Lots, serial numbers, eat-by/sell-by date management for products -Module40000Name=Multicurrency -Module40000Desc=Use alternative currencies in prices and documents +Module10000Desc=Создавайте веб-сайты (общедоступные) с помощью редактора WYSIWYG. Просто настройте свой веб-сервер (Apache, Nginx, ...), чтобы он указывал на выделенный каталог Dolibarr, чтобы он был онлайн в Интернете с вашим собственным доменным именем. +Module20000Name=Управление запросами на отпуск +Module20000Desc=Определить и отслеживать запросы сотрудников на отпуск +Module39000Name=Товарные партии +Module39000Desc=Управление Партиями, серийными номерами, датой/временем продажи продуктов +Module40000Name=Мульти валюта +Module40000Desc=Используйте альтернативные валюты в ценах и документах Module50000Name=PayBox -Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50000Desc=Предложите покупателям страницу оплаты через PayBox (кредитные / дебетовые карты). Это может быть использовано, чтобы позволить вашим клиентам осуществлять специальные платежи или платежи, связанные с конкретным объектом Dolibarr (счет, заказ и т. д.) Module50100Name=POS SimplePOS -Module50100Desc=Point of Sale module SimplePOS (simple POS). +Module50100Desc=Модуль торговой точки SimplePOS (простой POS). Module50150Name=POS TakePOS -Module50150Desc=Point of Sale module TakePOS (touchscreen POS). +Module50150Desc=Модуль торговой точки TakePOS (POS с сенсорным экраном). Module50200Name=Paypal -Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) +Module50200Desc=Предложите клиентам страницу онлайн-платежей PayPal (учетная запись PayPal или кредитные / дебетовые карты). Это может быть использовано, чтобы позволить вашим клиентам осуществлять специальные платежи или платежи, связанные с конкретным объектом Dolibarr (счет, заказ и т. д.) Module50300Name=Stripe -Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...) -Module50400Name=Accounting (double entry) -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats. +Module50300Desc=Предложите клиентам страницу онлайн-оплаты Stripe (кредитные / дебетовые карты). Это может быть использовано, чтобы позволить вашим клиентам осуществлять специальные платежи или платежи, связанные с конкретным объектом Dolibarr (счет, заказ и т. д.) +Module50400Name=Бухгалтерский учет (двойная запись) +Module50400Desc=Управление бухгалтерским учетом (двойные записи, поддержка гроссбуха и вспомогательных книг). Экспорт книги в несколько других форматов бухгалтерского программного обеспечения. Module54000Name=Модуль PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server). +Module54000Desc=Прямая печать (без открытия документов) с использованием интерфейса Cups IPP (принтер должен быть виден с сервера, а CUPS должен быть установлен на сервере). Module55000Name=Голосование, обзор или голосование -Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...) +Module55000Desc=Создавайте онлайн-опросы, обзоры или голосования (например, Doodle, Studs, RDVz и т. Д.) Module59000Name=Наценки Module59000Desc=Модуль управления наценками Module60000Name=Комиссии Module60000Desc=Модуль управления комиссиями Module62000Name=Обязанности по доставке товаров -Module62000Desc=Add features to manage Incoterms +Module62000Desc=Добавить функции для управления Инкотермс Module63000Name=Ресурсы -Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events +Module63000Desc=Управление ресурсами (принтеры, машины, комнаты, ...) для распределения на события Permission11=Просмотр счетов-фактур клиентов Permission12=Создание/Изменение счета-фактуры Permission13=Аннулирование счетов-фактур @@ -668,9 +671,9 @@ Permission32=Создание / изменение продукции / услу Permission34=Удаленные продукция / услуги Permission36=Просмотр / управление скрытой продукцией / услугами Permission38=Экспорт продукции -Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects I'm contact for) +Permission41=Просмотрите проекты и задачи (общий проект и мои проекты). Можно также ввести время, затраченное на вас или ваших подчиненных, на назначенные задачи (расписание) +Permission42=Создание/изменение проектов (общий и мои проекты). Может также создавать задачи и назначать пользователей для проекта и задач +Permission44=Удалить проекты (общие и мои проекты) Permission45=Экспорт проектов Permission61=Смотреть мероприятия Permission62=Создание / измение мероприятий @@ -701,25 +704,25 @@ Permission104=Проверка отправок Permission106=Экспортировать отправки Permission109=Удалить отправки Permission111=Читать финансовую отчетность -Permission112=Создать / изменить / удалить и сравнить сделоки -Permission113=Настройка финансовых учётных записей (создание, изменение категорий) -Permission114=Reconcile transactions +Permission112=Создать / изменить / удалить и сравнить сделки +Permission113=Настройка финансовых счетов (создание, изменение категорий) +Permission114=Сверить транзакции Permission115=Экспорт операций и выписок со счета Permission116=Перераспределение средств между счетами -Permission117=Manage checks dispatching +Permission117=Управление диспетчеризацией чеков Permission121=Просмотр контрагентов, связанных с пользователем Permission122=Создать / изменить контрагентов, связанных с пользователем Permission125=Удалить контрагентов, связанных с пользователем Permission126=Экспорт контрагентов -Permission141=Read all projects and tasks (also private projects for which I am not a contact) -Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact) +Permission141=Просмотреть все проекты и задачи (в том числе частные проекты, в которыми я не контактное лицо) +Permission142=Создать/изменить все проекты и задачи (также частные проекты, для которых я не контактное лицо) Permission144=Удалить все проекты и задачи (так же частные проекты в которых я не контактное лицо) Permission146=Посмотреть провайдеров Permission147=Посмотреть статистику -Permission151=Посмотреть заказанные прямые дебетные платежи -Permission152=Создать / изменить заказанные прямые дебетные платежи -Permission153=Отправка / Передача заказанных прямых дебетовых платежей -Permission154=Record Credits/Rejections of direct debit payment orders +Permission151=Посмотреть платежные поручения с прямым дебетом +Permission152=Создать/Изменить платежные поручения с прямым дебетом +Permission153=Отправка/Передача платежных поручений с прямым дебетом +Permission154=Запись зачетов/отказов платежных поручений с прямым дебетом Permission161=Посмотреть котракты/подписки Permission162=Создать/изменить котракты/подписки Permission163=Активировать услугу/подписку в контракте @@ -732,14 +735,14 @@ Permission173=Удалить транспортные расходы Permission174=Просмотр поездок и расходов Permission178=Экспорт транспортных расходов Permission180=Посмотреть поставщиков -Permission181=Read purchase orders -Permission182=Create/modify purchase orders -Permission183=Validate purchase orders -Permission184=Approve purchase orders -Permission185=Order or cancel purchase orders -Permission186=Receive purchase orders -Permission187=Close purchase orders -Permission188=Cancel purchase orders +Permission181=Просмотреть заказы на покупку +Permission182=Создание/изменение заказов на покупку +Permission183=Проверка заказов на покупку +Permission184=Утвердить заказы на покупку +Permission185=Заказать или отменить заказы на покупку +Permission186=Получать заказы на покупку +Permission187=Закрыть заказы на покупку +Permission188=Отменить заказы на покупку Permission192=Создать строки Permission193=Отмена строк Permission194=Read the bandwidth lines @@ -750,10 +753,10 @@ Permission205=Управление подключениями Permission206=Посмотреть соединения Permission211=Посмотреть Телефонию Permission212=Заказ линий -Permission213=Включить строки +Permission213=Включить линию Permission214=Настройка телефонии Permission215=Настройка провайдеров -Permission221=Посмотреть отправки электронной почты +Permission221=Посмотреть переписку Permission222=Создать / изменить отправки электронной почты (тема, получатели ...) Permission223=Проверка отправки электронной почты (разрешение на отправку) Permission229=Удалить отправки электронной почты @@ -767,12 +770,12 @@ Permission244=Посмотреть содержание скрытых кате Permission251=Посмотреть других пользователей и группы PermissionAdvanced251=Посмотреть других пользователей Permission252=Посмотреть права доступа других пользователей -Permission253=Create/modify other users, groups and permissions +Permission253=Создание/изменение других пользователей, групп и разрешений PermissionAdvanced253=Создать / изменить внутренних / внешних пользователей и права доступа Permission254=Создать / изменить только внешних пользователей Permission255=Изменить пароли других пользователей Permission256=Удалить или отключить других пользователей -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=Расширить доступ ко всем контрагентам (не только контрагентам, для которых этот пользователь является торговым представителем).
Не действует для внешних пользователей (всегда ограничены предложениями, заказами, счетами, контрактами и т. д.).
Не действует для проектов (только правила разрешений, видимости и назначения). Permission271=Читать CA Permission272=Читать счета Permission273=Выпуск счетов @@ -782,10 +785,10 @@ Permission283=Удалить контакты Permission286=Экспортировать контакты Permission291=Читать тарифы Permission292=Установка разрешений на тарифы -Permission293=Modify customer's tariffs -Permission300=Read barcodes -Permission301=Create/modify barcodes -Permission302=Delete barcodes +Permission293=Изменить тарифы клиента +Permission300=Читать штрих-коды +Permission301=Создание/изменение штрих-кодов +Permission302=Удалить штрих-коды Permission311=Читать услуги Permission312=Назначить услугу/подписку договору Permission331=Читать закладки @@ -804,10 +807,10 @@ Permission401=Читать скидки Permission402=Создать / изменить скидки Permission403=Проверить скидки Permission404=Удалить скидки -Permission430=Use Debug Bar -Permission511=Read payments of salaries -Permission512=Create/modify payments of salaries -Permission514=Delete payments of salaries +Permission430=Использовать панель отладки +Permission511=Просмотр выплаты зарплат +Permission512=Создание/изменение выплат зарплат +Permission514=Удалить выплаты зарплаты Permission517=Экспорт зарплат Permission520=Открыть ссуды Permission522=Создать/изменить ссуды @@ -819,9 +822,9 @@ Permission532=Создать / изменить услуги Permission534=Удаление услуг Permission536=Смотреть / Управлять скрытыми услугами Permission538=Экспорт услуг -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Просмотр ведомости материалов +Permission651=Создание/обновление ведомостей материалов +Permission652=Удалить списки материалов Permission701=Просмотр пожертвований Permission702=Создание / изменение пожертвований Permission703=Удаление пожертвований @@ -841,34 +844,34 @@ Permission1101=Просмотр доставки заказов Permission1102=Создание / изменение доставки заказов Permission1104=Подтверждение доставки заказов Permission1109=Удаление доставки заказов -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 +Permission1121=Просмотр предложения поставщиков +Permission1122=Создание/изменение предложений поставщиков +Permission1123=Проверить предложения поставщика +Permission1124=Отправить предложения поставщика +Permission1125=Удалить предложения поставщиков +Permission1126=Закрыть запрос цены поставщика Permission1181=Просмотр поставщиков -Permission1182=Read purchase orders -Permission1183=Create/modify purchase orders -Permission1184=Validate purchase orders -Permission1185=Approve purchase orders -Permission1186=Order purchase orders -Permission1187=Acknowledge receipt of purchase orders -Permission1188=Delete purchase orders -Permission1190=Approve (second approval) purchase orders +Permission1182=Просмотреть заказы на покупку +Permission1183=Создание/изменение заказов на покупку +Permission1184=Проверка заказов на покупку +Permission1185=Утвердить заказы на покупку +Permission1186=Заказать заказы на покупку +Permission1187=Подтвердить получение заказов на покупку +Permission1188=Удалить заказы на покупку +Permission1190=Утвердить (второе утверждение) заказы на покупку Permission1201=Получите результат экспорта Permission1202=Создание / Изменение экспорта -Permission1231=Read vendor invoices -Permission1232=Create/modify vendor invoices -Permission1233=Validate vendor invoices -Permission1234=Delete vendor invoices -Permission1235=Send vendor invoices by email -Permission1236=Export vendor invoices, attributes and payments -Permission1237=Export purchase orders and their details +Permission1231=Просмотреть счета поставщиков +Permission1232=Создание/изменение счетов поставщиков +Permission1233=Проверка счетов поставщиков +Permission1234=Удалить счета поставщиков +Permission1235=Отправить счета поставщика по электронной почте +Permission1236=Экспорт счетов, атрибутов и платежей поставщиков +Permission1237=Экспорт заказов на покупку и их детали Permission1251=Запуск массового импорта внешних данных в базу данных (загрузка данных) Permission1321=Экспорт клиентом счета-фактуры, качества и платежей Permission1322=Повторно открыть оплаченный счет -Permission1421=Export sales orders and attributes +Permission1421=Экспорт заказов на продажу и атрибутов Permission2401=Посмотреть действия (события или задачи), связанные с его учетной записью Permission2402=Создание / изменение / удаление действий (события или задачи), связанные с его учетной записью Permission2403=Удаление действий (задачи, события или) связанных с его учетной записью @@ -882,17 +885,17 @@ Permission2503=Отправить или удалить документы Permission2515=Настройка директорий документов Permission2801=Использовать FTP клиент в режиме только чтения (только просмотр и загрузка файлов) Permission2802=Использовать FTP клиент в режиме записи (удаление или выгрузка файлов) -Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees -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) +Permission3200=Просмотреть архивированные события +Permission4001=Смотреть сотрудников +Permission4002=Создать сотрудников +Permission4003=Удалить сотрудников +Permission4004=Экспорт сотрудников +Permission10001=Смотреть содержание сайта +Permission10002=Создание/изменение содержимого веб-сайта (HTML и JavaScript) +Permission10003=Создание/изменение содержимого сайта (динамический PHP-код). Опасно, должно быть зарезервировано для разработчиков с ограниченным доступом. +Permission10005=Удалить контент сайта +Permission20001=Просмотр запросов на отпуск (ваш отпуск и ваших подчиненных) +Permission20002=Создайте/измените ваши запросы на отпуск (ваш отпуск и отпуск ваших подчиненных) Permission20003=Удалить заявления на отпуск Permission20004=Читайте все запросы на отпуск (даже пользователь не подчиняется) Permission20005=Создавать/изменять запросы на отпуск для всех (даже для пользователей, не подчиненных) @@ -901,22 +904,22 @@ Permission23001=Просмотр Запланированных задач Permission23002=Создать/обновить Запланированную задачу Permission23003=Удалить Запланированную задачу Permission23004=Выполнить запланированную задачу -Permission50101=Use Point of Sale +Permission50101=Использовать точку продажи Permission50201=Просмотр транзакций Permission50202=Импорт транзакций -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 -Permission50418=Export operations of the ledger -Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year -Permission50440=Manage chart of accounts, setup of accountancy -Permission51001=Read assets -Permission51002=Create/Update assets -Permission51003=Delete assets -Permission51005=Setup types of asset +Permission50401=Связать продукты и счета с учетными записями +Permission50411=Просмотр операций в бухгалтерской книге +Permission50412=Операции записи/редактирования в бухгалтерской книге +Permission50414=Удалить операции в бухгалтерской книге +Permission50415=Удалить все операции по году и журналу в бухгалтерской книге +Permission50418=Экспортные операций бухгалтерской книги +Permission50420=Отчеты и отчеты об экспорте (оборот, баланс, журналы, бухгалтерская книга) +Permission50430=Определить и закрыть финансовый период +Permission50440=Управление структурой счетов, настройка бухгалтерского учета +Permission51001=Просмотр активов +Permission51002=Создать/обновить активы +Permission51003=Удалить активы +Permission51005=Настройка типов актива Permission54001=Печать Permission55001=Открыть опросы Permission55002=Создать/изменить опросы @@ -927,76 +930,76 @@ Permission63001=Чтение ресурсов Permission63002=Создание/изменение ресурсов Permission63003=Удалить ресурсы Permission63004=Свяжите ресурсы с повесткой дня -DictionaryCompanyType=Third-party types -DictionaryCompanyJuridicalType=Third-party legal entities +DictionaryCompanyType=Типы контрагента +DictionaryCompanyJuridicalType=Правовая форма контрагента DictionaryProspectLevel=Потенциальный клиент -DictionaryCanton=States/Provinces +DictionaryCanton=Штат/Провинция DictionaryRegion=Регионы DictionaryCountry=Страны DictionaryCurrency=Валюты -DictionaryCivility=Title of civility +DictionaryCivility=Обращение DictionaryActions=Тип мероприятия -DictionarySocialContributions=Types of social or fiscal taxes +DictionarySocialContributions=Типы социальных или налоговых сборов DictionaryVAT=Значения НДС или налога с продаж DictionaryRevenueStamp=Количество налоговых марок -DictionaryPaymentConditions=Payment Terms -DictionaryPaymentModes=Payment Modes +DictionaryPaymentConditions=Условия оплаты +DictionaryPaymentModes=Способы оплаты DictionaryTypeContact=Типы Контактов/Адресов -DictionaryTypeOfContainer=Website - Type of website pages/containers +DictionaryTypeOfContainer=Веб-сайт - Тип страниц сайта/контейнеров DictionaryEcotaxe=Экологический налог Ecotax (WEEE) DictionaryPaperFormat=Форматы бумаги -DictionaryFormatCards=Card formats +DictionaryFormatCards=Форматы карт DictionaryFees=Отчет о расходах - Типы строк отчета о расходах DictionarySendingMethods=Способы доставки -DictionaryStaff=Number of Employees +DictionaryStaff=Количество работников DictionaryAvailability=Задержка доставки DictionaryOrderMethods=Методы заказов DictionarySource=Происхождение Коммерческих предложений / Заказов DictionaryAccountancyCategory=Персонализированные группы для отчетов DictionaryAccountancysystem=Модели для диаграммы счетов DictionaryAccountancyJournal=Бухгалтерские журналы -DictionaryEMailTemplates=Email Templates +DictionaryEMailTemplates=Шаблоны электронной почты DictionaryUnits=Единицы -DictionaryMeasuringUnits=Measuring Units +DictionaryMeasuringUnits=Единицы измерения DictionaryProspectStatus=Статус потенциального клиента -DictionaryHolidayTypes=Types of leave -DictionaryOpportunityStatus=Lead status for project/lead +DictionaryHolidayTypes=Типы отпуска +DictionaryOpportunityStatus=Правовой статус проекта/сделки DictionaryExpenseTaxCat=Отчет о расходах - Категории транспорта DictionaryExpenseTaxRange=Отчет о расходах - Диапазон по транспортной категории SetupSaved=Настройки сохранены SetupNotSaved=Установки не сохранены -BackToModuleList=Back to Module list -BackToDictionaryList=Back to Dictionaries list +BackToModuleList=Вернуться к списку модулей +BackToDictionaryList=Вернуться к списку словарей TypeOfRevenueStamp=Тип налоговой печати -VATManagement=Sales Tax Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sales Tax rate follows the active standard rule:
If the seller is not subject to Sales tax, then Sales tax defaults to 0. End of rule.
If the (seller's country = buyer's country), then the Sales tax by default equals the Sales tax of the product in the seller's country. End of rule.
If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default VAT is 0. This rule is dependant on the seller's country - please consult with your accountant. The VAT should be paid by the buyer to the customs office in their country and not to the seller. End of rule.
If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community VAT number) then the VAT defaults to the VAT rate of the seller's country. End of rule.
If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community VAT number), then the VAT is 0 by default. End of rule.
In any other case the proposed default is Sales tax=0. End of rule. -VATIsNotUsedDesc=By default the proposed Sales tax is 0 which can be used for cases like associations, individuals or small companies. -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non Sales tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sales tax in franchise) and paid a franchise Sales tax without any Sales tax declaration. This choice will display the reference "Non applicable Sales tax - art-293B of CGI" on invoices. +VATManagement=Управление налогом с продаж +VATIsUsedDesc=По умолчанию при создании потенциальных клиентов, счетов, заказов и т. д. ставка налога с продаж соответствует действующему стандартному правилу:
Если продавец не облагается налогом с продаж, по умолчанию налог с продаж равен 0. Конец правила.
Если (страна продавца = страна покупателя), то налог с продаж по умолчанию равен налогу с продаж продукта в стране продавца. Конец правила.
Если продавец и покупатель находятся в Европейском сообществе, а товары относятся к транспортным товарам (перевозка, доставка, авиакомпания), НДС по умолчанию равен 0. Это правило зависит от страны продавца - пожалуйста, проконсультируйтесь с вашим бухгалтером. НДС должен быть оплачен покупателем на таможне в их стране, а не продавцу. Конец правила.
Если продавец и покупатель находятся в Европейском сообществе, а покупатель не является компанией (с зарегистрированным номером НДС внутри Сообщества), то НДС по умолчанию устанавливается по ставке НДС страны продавца. Конец правила.
Если продавец и покупатель находятся в Европейском сообществе, а покупатель является компанией (с зарегистрированным номером НДС внутри Сообщества), то по умолчанию НДС равен 0. Конец правила.
В любом другом случае предлагаемым значением по умолчанию является налог с продаж = 0. Конец правила. +VATIsNotUsedDesc=По умолчанию предлагаемый налог с продаж равен 0, и его можно использовать в таких случаях, как ассоциации, частные лица или небольшие компании. +VATIsUsedExampleFR=Во Франции это означает компании или организации, имеющие реальную фискальную систему (упрощенная реальная или обычная реальная). Система, в которой декларируется НДС. +VATIsNotUsedExampleFR=Во Франции это означает ассоциации, которые не декларируют НДС, или компании, организации или либеральные профессии, которые выбрали фискальную систему микропредприятий (НДС во франшизе) и уплатили налог на франшизу без какой-либо декларации НДС. При выборе этого варианта в счетах будет отображаться ссылка "Non applicable Sales tax - art-293B of CGI" («НДС не применяется - art-293B CGI»). ##### Local Taxes ##### LTRate=Ставка LocalTax1IsNotUsed=Не использовать второй налог -LocalTax1IsUsedDesc=Use a second type of tax (other than first one) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax1IsUsedDesc=Используйте второй тип налога (кроме первого) +LocalTax1IsNotUsedDesc=Не используйте другой вид налога (кроме первого) LocalTax1Management=Второй тип налога LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=Не использовать третий налог -LocalTax2IsUsedDesc=Use a third type of tax (other than first one) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one) +LocalTax2IsUsedDesc=Используйте третий тип налога (кроме первого) +LocalTax2IsNotUsedDesc=Не используйте другой вид налога (кроме первого) LocalTax2Management=Третий тип налога LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= -LocalTax1ManagementES=RE управления -LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
If the buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
+LocalTax1ManagementES=Управление недвижимостью +LocalTax1IsUsedDescES=Ставка RE (real estate - налог на недвижимость) по умолчанию при создании потенциальных клиентов, счетов, заказов и т.д. Следует действующему стандартному правилу:
Если покупатель не подвергается RE, RE по умолчанию = 0. Конец правила.
Если покупатель подвергается RE, то RE по умолчанию. Конец правила.
LocalTax1IsNotUsedDescES=По умолчанию предлагается RE 0. Конец правления. LocalTax1IsUsedExampleES=В Испании они являются профессионалами с учетом некоторых конкретных разделов испанский ИАЭ. LocalTax1IsNotUsedExampleES=В Испании они являются профессиональными и общества и при условии соблюдения определенных слоев испанского ИАЭ. LocalTax2ManagementES=IRPF управления -LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
+LocalTax2IsUsedDescES=Ставка IRPF (подоходный налог для физических лиц) по умолчанию при создании потенциальных клиентов, счетов-фактур, заказов и т.д. Соответствует действующему стандартному правилу:
Если продавец не подвергается IRPF, то IRPF по умолчанию = 0. Конец правила.
Если продавец подвергается IRPF, то IRPF по умолчанию. Конец правила.
LocalTax2IsNotUsedDescES=По умолчанию предлагается IRPF 0. Конец правления. -LocalTax2IsUsedExampleES=В Испании, фрилансеры и независимые специалисты, которые оказывают услуги и компаний, которые выбрали налоговой системы модулей. -LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules. +LocalTax2IsUsedExampleES=В Испании работают фрилансеры и независимые профессионалы, предлагающие услуги, и компании, которые выбрали налоговую систему модулей. +LocalTax2IsNotUsedExampleES=В Испании это предприятия, не подпадающие под налоговую систему модулей. CalcLocaltax=Отчеты о местных налогах CalcLocaltax1=Продажи-Покупки CalcLocaltax1Desc=Отчёты о местных налогах - это разница между местными налогами с продаж и покупок @@ -1006,16 +1009,16 @@ CalcLocaltax3=Продажи CalcLocaltax3Desc=Отчёты о местных налогах - это итог местных налогов с продаж LabelUsedByDefault=Метки, используемые по умолчанию, если нет перевода можно найти код LabelOnDocuments=Этикетка на документах -LabelOrTranslationKey=Label or translation key -ValueOfConstantKey=Value of constant -NbOfDays=No. of days +LabelOrTranslationKey=Метка или ключ перевода +ValueOfConstantKey=Значение константы +NbOfDays=Кол-во дней AtEndOfMonth=На конец месяца CurrentNext=Текущая/Следующая Offset=Сдвиг AlwaysActive=Всегда активный Upgrade=Обновление MenuUpgrade=Обновление / Расширение -AddExtensionThemeModuleOrOther=Развертывание/установить внешний модуль/приложения +AddExtensionThemeModuleOrOther=Развертывание/установка внешнего модуля/приложения WebServer=Веб-сервер DocumentRootServer=Корневой каталог Веб-сервера DataRootServer=Каталог фалов данных @@ -1033,7 +1036,7 @@ DatabaseUser=Пользователь базы данных DatabasePassword=Пароль базы данных Tables=Таблицы TableName=Наименование таблицы -NbOfRecord=No. of records +NbOfRecord=Кол-во записей Host=Сервер DriverType=Тип драйвера SummarySystem=Обзор системной информации @@ -1045,14 +1048,14 @@ Skin=Тема оформления DefaultSkin=Тема по умолчанию MaxSizeList=Максимальная длина списка DefaultMaxSizeList=Максимальная длина по умолчанию для списков -DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card) +DefaultMaxSizeShortList=Максимальная длина по умолчанию для коротких списков (т.е. в карточке клиента) MessageOfDay=Сообщение дня MessageLogin=Сообщение на странице входа LoginPage=Страница авторизации BackgroundImageLogin=Фоновое изображение PermanentLeftSearchForm=Постоянный поиск формы на левом меню -DefaultLanguage=Default language -EnableMultilangInterface=Enable multilanguage support +DefaultLanguage=Язык по умолчанию +EnableMultilangInterface=Включить поддержку мультиязычности EnableShowLogo=Показать логотип на левом меню CompanyInfo=Компания/Организация CompanyIds=Company/Organization identities @@ -1070,28 +1073,28 @@ OwnerOfBankAccount=Владелец банковского счета %s BankModuleNotActive=Модуль Банковских счетов не активирован ShowBugTrackLink=Показать ссылку "%s" Alerts=Предупреждения -DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for: -DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Planned task (project tasks) not completed -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Order not processed -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Purchase order not processed -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Proposal not closed -Delays_MAIN_DELAY_PROPALS_TO_BILL=Proposal not billed +DelaysOfToleranceBeforeWarning=Задержка перед отображением предупреждения о: +DelaysOfToleranceDesc=Установите задержку до того, как значок предупреждения %s будет отображаться на экране для последнего элемента. +Delays_MAIN_DELAY_ACTIONS_TODO=Запланированные события (события повестки дня) не завершены +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Проект не закрыт во время +Delays_MAIN_DELAY_TASKS_TODO=Запланированная задача (задачи проекта) не выполнена +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Заказ не обработан +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Заказ на покупку не обработан +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Предложение не закрыто +Delays_MAIN_DELAY_PROPALS_TO_BILL=Предложение не выставлено Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Expired service -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Unpaid vendor invoice -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Unpaid customer invoice -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check deposit not done -Delays_MAIN_DELAY_EXPENSEREPORTS=Expense report to approve -SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured. -SetupDescription2=The following two sections are mandatory (the two first entries in the Setup menu): -SetupDescription3=%s -> %s
Basic parameters used to customize the default behavior of your application (e.g for country-related features). -SetupDescription4=%s -> %s
This software is a suite of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module. -SetupDescription5=Other Setup menu entries manage optional parameters. +Delays_MAIN_DELAY_RUNNING_SERVICES=Просроченная услуга +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Неоплаченный счет поставщика +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Неоплаченный счет клиента +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=В ожидании банковской сверки +Delays_MAIN_DELAY_MEMBERS=Задержка членского взноса +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Чековый депозит не сделан +Delays_MAIN_DELAY_EXPENSEREPORTS=Отчет о расходах для утверждения +SetupDescription1=Перед началом использования Dolibarr необходимо определить параметры и включить/настроить модули. +SetupDescription2=Следующие два раздела являются обязательными (две первые записи в меню настройки): +SetupDescription3=%s -> %s
Основные параметры, используемые для настройки поведения вашего приложения по умолчанию (например, для функций, связанных со страной). +SetupDescription4=%s -> %s
Это программное обеспечение представляет собой набор из множества модулей/приложений, все более или менее независимые. Модули, соответствующие вашим потребностям, должны быть включены и настроены. Новые пункты/опции добавляются в меню при активации модуля. +SetupDescription5=Другие пункты меню настройки управляют дополнительными параметрами. LogEvents=Безопасность ревизии события Audit=Аудит InfoDolibarr=О Dolibarr @@ -1105,83 +1108,83 @@ BrowserName=Имя браузера BrowserOS=Операционная система браузера ListOfSecurityEvents=Список Dolibarr безопасность события SecurityEventsPurged=Безопасность событий очищены -LogEventDesc=Enable logging for specific security events. Administrators the log via menu %s - %s. Warning, this feature can generate a large amount of data in the database. +LogEventDesc=Включите ведение журнала для определенных событий безопасности. Администраторы журнала через меню %s - %s . Предупреждение, эта функция может генерировать большой объем данных в базе данных. AreaForAdminOnly=Параметры настройки могут быть установлены только пользователем администратора . SystemInfoDesc=Система информации разного техническую информацию Вы получите в режиме только для чтения и видимые только для администраторов. -SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction. -CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page. -AccountantDesc=If you have an external accountant/bookkeeper, you can edit here its information. -AccountantFileNumber=Accountant code -DisplayDesc=Parameters affecting the look and behaviour of Dolibarr can be modified here. +SystemAreaForAdminOnly=Эта область доступна только для администраторов. Пользовательские разрешения Dolibarr не могут изменить это ограничение. +CompanyFundationDesc=Редактировать информацию о компании/организации. Нажмите кнопку «%s» или «%s» внизу страницы. +AccountantDesc=Если у вас есть внешний бухгалтер/бухгалтер, вы можете отредактировать здесь эту информацию. +AccountantFileNumber=Код бухгалтера +DisplayDesc=Параметры, влияющие на внешний вид и поведение Dolibarr, могут быть изменены здесь. AvailableModules=Доступное приложение/модули -ToActivateModule=Чтобы активировать модуль, перейдите на настройку зоны. +ToActivateModule=Чтобы активировать модуль, перейдите в место настройки (Главная-Настройки-Модули/Приложения). SessionTimeOut=Тайм-аут для сессии -SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every %s/%s access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is. +SessionExplanation=Это число гарантирует, что сеанс никогда не истечет до этой задержки, если очиститель сеанса выполняется внутренним чистильщиком сессии PHP (и ничем иным). Внутренний чистильщик сессии PHP не гарантирует, что сессия истечет после этой задержки. Он истечет после этой задержки и при запуске чистильщика сессии, поэтому каждый доступ %s / %s , но только во время доступа, сделанного другими сеансами (если значение равно 0, это означает, что очистка сеанса выполняется только внешним процессом) ,
Примечание: на некоторых серверах с внешним механизмом очистки сеансов (cron под debian, ubuntu ...) сеансы могут быть уничтожены после периода, определенного внешней установкой, независимо от того, какое значение здесь введено. TriggersAvailable=Доступные триггеры -TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...). +TriggersDesc=Триггеры - это файлы, которые изменят поведение рабочего процесса Dolibarr после копирования в каталог htdocs/core/triggers . Они реализуют новые действия, активированные в событиях Dolibarr (создание новой компании, проверка счетов, ...). TriggerDisabledByName=Триггеры этого файла отключено NORUN-суффикс в названии. -TriggerDisabledAsModuleDisabled=Триггеры в этом файле будут отключены как модуль %s отключен. -TriggerAlwaysActive=Триггеры в этом файле, всегда активны, независимо являются активированный Dolibarr модули. -TriggerActiveAsModuleActive=Триггеры в этом файле действуют как модуль %s включен. -GeneratedPasswordDesc=Choose the method to be used for auto-generated passwords. +TriggerDisabledAsModuleDisabled=Триггеры в этом файле отключены, так как модуль %s отключен. +TriggerAlwaysActive=Триггеры в этом файле, всегда активны, независимо являются активированными модули Dolibarr . +TriggerActiveAsModuleActive=Триггеры в этом файле активны, так как модуль %s включен. +GeneratedPasswordDesc=Выберите метод, который будет использоваться для автоматически сгенерированных паролей. DictionaryDesc=Вставьте все справочные данные. Вы можете добавить свои значения по умолчанию. -ConstDesc=This page allows you to edit (override) parameters not available in other pages. These are mostly reserved parameters for developers/advanced troubleshooting. For a full list of the parameters available see here. +ConstDesc=Эта страница позволяет редактировать (переопределять) параметры, недоступные на других страницах. Это в основном зарезервированные параметры для разработчиков / расширенного поиска неисправностей. Полный список доступных параметров смотрите здесь. MiscellaneousDesc=Все остальные параметры, связанные с безопасностью, определены здесь. LimitsSetup=Пределы / Точная настройка -LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max. decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max. decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max. decimals for prices shown on screen. Add an ellipsis ... after this parameter (e.g. "2...") if you want to see "..." suffixed to the truncated price. -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something other than base 10. For example, put 0.05 if rounding is done by 0.05 steps) +LimitsDesc=Вы можете определить пределы, точности и оптимизации, используемые Dolibarr здесь +MAIN_MAX_DECIMALS_UNIT=Максимум. десятичные дроби для цен за единицу +MAIN_MAX_DECIMALS_TOT=Максимум. десятичные дроби для общих цен +MAIN_MAX_DECIMALS_SHOWN=Максимум. десятичные дроби для цен, отображаемых на экране . Добавьте многоточие ... после этого параметра (например,"2 ..."), если вы хотите видеть суффикс " ... " к усеченной цене. +MAIN_ROUNDING_RULE_TOT=Диапазон шага округления (для стран, где округление выполняется не на основе 10. Например, укажите 0,05, если округление выполняется с шагом 0,05) UnitPriceOfProduct=Чистая цена единицы продукта -TotalPriceAfterRounding=Total price (excl/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Параметр эффективным для следующего ввода только -NoEventOrNoAuditSetup=No security event has been logged. This is normal if Audit has not been enabled in the "Setup - Security - Events" page. -NoEventFoundWithCriteria=No security event has been found for this search criteria. +TotalPriceAfterRounding=Общая стоимость (включая налоги / НДС) с округлением +ParameterActiveForNextInputOnly=Параметр эффективен только для следующего ввода +NoEventOrNoAuditSetup=Событие безопасности не было зарегистрировано. Это нормально, если на странице «Настройка - Безопасность - События» не был включен аудит. +NoEventFoundWithCriteria=Для этого критерия поиска событие безопасности не найдено. SeeLocalSendMailSetup=См. вашей локальной настройки Sendmail -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. -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. +BackupDesc=Полное резервное копирование установки Dolibarr требует двух шагов. +BackupDesc2=Резервное копирование содержимого каталога «documents» ( %s ), содержащего все загруженные и сгенерированные файлы. Это также будет включать все файлы дампа, сгенерированные на шаге 1. +BackupDesc3=Резервное копирование структуры и содержимого вашей базы данных (%s ) в файл дампа. Для этого вы можете использовать следующий помощник. +BackupDescX=Архивный каталог должен храниться в безопасном месте. BackupDescY=Генерируемый файла дампа следует хранить в надежном месте. -BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended. -RestoreDesc=To restore a Dolibarr backup, two steps are required. -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. +BackupPHPWarning=Резервное копирование не может быть гарантировано с помощью этого метода. Предыдущий метод рекомендуется. +RestoreDesc=Чтобы восстановить резервную копию Dolibarr, необходимо выполнить два шага. +RestoreDesc2=Восстановить файл резервной копии (например, zip-файл) каталога «документы» в новую установку Dolibarr или в этот текущий каталог документов ( %s ). +RestoreDesc3=Восстановить структуру базы данных и данные из файла резервной копии в базу данных новой установки Dolibarr или в базу данных текущей установки ( %s ). Предупреждение: после завершения восстановления вы должны использовать логин / пароль, который существовал во время резервного копирования / установки, чтобы снова подключиться.
Чтобы восстановить резервную копию базы данных в этой текущей установке, вы можете следовать этому помощнику. RestoreMySQL=Иvпорт MySQL -ForcedToByAModule= Это правило вынуждены %s на активированный модуль -PreviousDumpFiles=Existing backup files -WeekStartOnDay=First day of the week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Program version %s differs from Database version %s) +ForcedToByAModule= Это правило принудительно активируется модулем %s. +PreviousDumpFiles=Существующие файлы резервных копий +WeekStartOnDay=Первый день недели +RunningUpdateProcessMayBeRequired=Похоже требуется запуск процесса обновления (версия программы %s отличается от версии базы данных %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Вы должны запустить эту команду из командной строки после Войти в оболочку с пользователем %s. YourPHPDoesNotHaveSSLSupport=SSL функций, не доступных в PHP DownloadMoreSkins=Дополнительные шкуры для загрузки -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is sequential with no reset -ShowProfIdInAddress=Show professional id with addresses -ShowVATIntaInAddress=Hide intra-Community VAT number with addresses +SimpleNumRefModelDesc=Возвращать справочный в формате %syymm-nnnn, где yy - год, mm - месяц, а nnnn - последовательность без сброса +ShowProfIdInAddress=Показать профессиональный идентификатор с адресами +ShowVATIntaInAddress=Скрыть номер НДС внутри Сообщества с адресами TranslationUncomplete=Частичный перевод -MAIN_DISABLE_METEO=Disable meteorological view +MAIN_DISABLE_METEO=Отключить просмотр погоды MeteoStdMod=Стандартный режим MeteoStdModEnabled=Стандартный режим включен MeteoPercentageMod=Процентный режим MeteoPercentageModEnabled=Включен режим процента MeteoUseMod=Нажмите, чтобы использовать%s TestLoginToAPI=Испытание Войти в API -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) -MAIN_PROXY_HOST=Proxy server: Name/Address -MAIN_PROXY_PORT=Proxy server: Port -MAIN_PROXY_USER=Proxy server: Login/User -MAIN_PROXY_PASS=Proxy server: Password -DefineHereComplementaryAttributes=Define here any additional/custom attributes that you want to be included for: %s +ProxyDesc=Некоторые функции Dolibarr требуют доступа в Интернет. Определите здесь параметры интернет-соединения, такие как доступ через прокси-сервер, если это необходимо. +ExternalAccess=Внешний доступ +MAIN_PROXY_USE=Использовать прокси-сервер (в противном случае прямой доступ в интернет) +MAIN_PROXY_HOST=Прокси-сервер: имя / адрес +MAIN_PROXY_PORT=Прокси-сервер: Порт +MAIN_PROXY_USER=Прокси-сервер: Логин +MAIN_PROXY_PASS=Прокси-сервер: пароль +DefineHereComplementaryAttributes=Определите здесь любые дополнительные / пользовательские атрибуты, которые вы хотите включить для: %s ExtraFields=Дополнительные атрибуты ExtraFieldsLines=Дополнительные атрибуты (строки) ExtraFieldsLinesRec=Дополнительные атрибуты (шаблоны счетов-фактур) ExtraFieldsSupplierOrdersLines=Дополнительные атбрибуты (строки заказа) ExtraFieldsSupplierInvoicesLines=Дополнительные атрибуты (строки счёта) -ExtraFieldsThirdParties=Complementary attributes (third party) -ExtraFieldsContacts=Complementary attributes (contacts/address) +ExtraFieldsThirdParties=Дополнительные атрибуты (контрагент) +ExtraFieldsContacts=Дополнительные атрибуты (контакты/адрес) ExtraFieldsMember=Дополнительные атрибуты (Участник) ExtraFieldsMemberType=Дополнительные атрибуты (тип Участника) ExtraFieldsCustomerInvoices=Дополнительные атрибуты (Счета-Фактуры) @@ -1195,13 +1198,13 @@ AlphaNumOnlyLowerCharsAndNoSpace=только латинские строчны SendmailOptionNotComplete=Предупреждение, на некоторых системах Linux, для отправки электронной почты из электронной почты, Sendmail выполнения установки должны conatins опцию-ба (параметр mail.force_extra_parameters в файле php.ini). Если некоторые получатели не получают электронные письма, попытке изменить этот параметр с PHP mail.force_extra_parameters =-ба). PathToDocuments=Путь к документам PathDirectory=Каталог -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages. +SendmailOptionMayHurtBuggedMTA=Функция отправки почты с использованием метода «PHP mail direct» будет генерировать почтовое сообщение, которое может быть неправильно проанализировано некоторыми получающими почтовыми серверами. В результате некоторые письма не могут быть прочитаны людьми, использующие эти платформы с ошибками. Это касается некоторых интернет-провайдеров (например, Orange во Франции). Это не проблема с Dolibarr или PHP, а с принимающим почтовым сервером. Однако вы можете добавить опцию MAIN_FIX_FOR_BUGGED_MTA в 1 в меню «Настройка - Другие настройки», тем самым подправив изменить Dolibarr, чтобы избежать этого. Однако могут возникнуть проблемы с другими серверами, которые строго используют стандарт SMTP. Другое решение (рекомендуется) - использовать метод «Библиотека сокетов SMTP», который не имеет недостатков. TranslationSetup=Настройка перевода TranslationKeySearch=Поиск ключа перевода или строки TranslationOverwriteKey=Перезаписать строку перевода -TranslationDesc=How to set the display language:
* Default/Systemwide: menu Home -> Setup -> Display
* Per user: Click on the username at the top of the screen and modify the User Display Setup tab on the user card. +TranslationDesc=Как установить язык отображения:
* По умолчанию/для всей системы: меню Главная-Настройки-Внешний вид
* Для каждого пользователя: нажмите на имя пользователя в верхней части экрана и измените вкладку « Настройка отображения пользователя » на карточке пользователя. TranslationOverwriteDesc=Вы также можете переопределить строки, заполняющие следующую таблицу. Выберите свой язык из раскрывающегося списка «%s», вставьте строку перевода в «%s» и ваш новый перевод в «%s» -TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use +TranslationOverwriteDesc2=Вы можете использовать другую вкладку, чтобы узнать, какой ключ перевода использовать TranslationString=Строка перевода CurrentTranslationString=Текущая строка перевода WarningAtLeastKeyOrTranslationRequired=Критерии поиска требуются, по крайней мере, для строки ключа или перевода @@ -1212,86 +1215,86 @@ TotalNumberOfActivatedModules=Активированное приложение/ YouMustEnableOneModule=Вы должны включить минимум 1 модуль ClassNotFoundIntoPathWarning=Class %s not found in PHP path YesInSummer=Да летом -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:
+OnlyFollowingModulesAreOpenedToExternalUsers=Обратите внимание, что только следующие модули доступны для внешних пользователей (независимо от разрешений этих пользователей) и только при наличии разрешений:
SuhosinSessionEncrypt=Хранилище сессий шифровано системой SUHOSIN ConditionIsCurrently=Текущее состояние %s -YouUseBestDriver=You use driver %s which is the best driver currently available. -YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +YouUseBestDriver=Вы используете драйвер %s, который является лучшим драйвером, доступным в настоящее время. +YouDoNotUseBestDriver=Вы используете драйвер %s, но рекомендуется драйвер %s. +NbOfProductIsLowerThanNoPb=У вас есть только %s товаров/услуг в базе данных. Это не требуебует никакой оптимизации. SearchOptim=Поисковая оптимизация -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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=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. +YouHaveXProductUseSearchOptim=У вас есть продукты %s в базе данных. Вы должны добавить константу PRODUCT_DONOTSEARCH_ANYWHERE равную 1 в Главная-Настройки-Другие настройки. Ограничьте поиск началом строк, что позволяет базе данных использовать индексы, и вы будете получать быстрый ответ. +BrowserIsOK=Вы используете веб-браузер %s. Этот браузер подходит в отношении безопасности и производительности. +BrowserIsKO=Вы используете веб-браузер %s. Этот браузер, как известно, является плохим выбором по безопасности, производительности и надежности. Мы рекомендуем использовать Firefox, Chrome, Opera или Safari. XDebugInstalled=XDebug загружен. XCacheInstalled=XCache загружен. 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". -AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. +AskForPreferredShippingMethod=Запросить предпочтительный способ доставки для контрагентов. FieldEdition=Редакция поля %s FillThisOnlyIfRequired=Например, +2 (заполняйте это поле только тогда, когда ваш часовой пояс отличается от того, который используется на сервере) GetBarCode=Получить штрих-код ##### Module password generation PasswordGenerationStandard=Возврат пароля, полученных в соответствии с внутренними Dolibarr алгоритма: 8 символов, содержащих общие цифры и символы в нижнем регистре. -PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually. +PasswordGenerationNone=Не предлагать сгенерированный пароль. Пароль должен быть введен вручную. PasswordGenerationPerso=Верните пароль в соответствии с вашей личной конфигурацией. SetupPerso=Согласно вашей конфигурации PasswordPatternDesc=Описание шаблона паролей ##### Users setup ##### -RuleForGeneratedPasswords=Rules to generate and validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the "Password Forgotten" link on the Login page -UsersSetup=Пользователь модуля установки -UserMailRequired=Email required to create a new user +RuleForGeneratedPasswords=Правила генерации и проверки паролей +DisableForgetPasswordLinkOnLogonPage=Не показывать ссылку «Забыли пароль» на странице входа +UsersSetup=Настройка модуля пользователя +UserMailRequired=Требуется электронная почта для создания нового пользователя ##### HRM setup ##### -HRMSetup=Настройка модуля HRM +HRMSetup=Настройка модуля HRM (Отдела кадров) ##### Company setup ##### -CompanySetup=Предприятия модуль настройки -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,...) -WatermarkOnDraft=Watermark по проекту документа +CompanySetup=Настройка модуля Компании +CompanyCodeChecker=Опции для автоматической генерации кодов клиентов/поставщиков +AccountCodeManager=Опции для автоматической генерации учетных кодов клиентов/поставщиков +NotificationsDesc=Уведомления по электронной почте могут быть отправлены автоматически для некоторых событий Dolibarr.
Получатели уведомлений могут быть определены: +NotificationsDescUser=* на пользователя, по одному пользователю за раз. +NotificationsDescContact=* на контрагента (клиенты или поставщики), по одному контакту за раз. +NotificationsDescGlobal=* или установив глобальные адреса электронной почты на этой странице настроек. +ModelModules=Шаблоны документов +DocumentModelOdt=Генерация документов из шаблонов OpenDocument (файлы .ODT / .ODS из LibreOffice, OpenOffice, KOffice, TextEdit, ...) +WatermarkOnDraft=Водяной знак в проекте документа JSOnPaimentBill=Активировать фунцию автозаполнения строк платежа в платёжной форме -CompanyIdProfChecker=Rules for Professional IDs +CompanyIdProfChecker=Правила для отраслевой идентификации MustBeUnique=Должно быть уникальным? -MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ? +MustBeMandatory=Обязательно ли создавать контрагентов (если указан номер НДС или тип компании)? MustBeInvoiceMandatory=Обязательно проверять счета-фактуры? TechnicalServicesProvided=Предоставляемые технические услуги #####DAV ##### -WebDAVSetupDesc=This is the link to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that needs an existing login account/password for access. -WebDavServer=Root URL of %s server: %s +WebDAVSetupDesc=Это ссылка для доступа к каталогу WebDAV. Он содержит «общедоступный» каталог, открытый для любого пользователя, знающего URL (если доступ к общедоступному каталогу разрешен), и «личный» каталог, которому для доступа требуется существующая учетная запись / пароль. +WebDavServer=Корневой URL-адрес сервера %s: %s ##### Webcal setup ##### WebCalUrlForVCalExport=Экспорт ссылка на %s формате доступна на следующую ссылку: %s ##### Invoices ##### -BillsSetup=Счета модуль настройки -BillsNumberingModule=Счета и кредитных нот нумерации модуль -BillsPDFModules=Счет документы моделей -BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type +BillsSetup=Настройка модуля Счетов +BillsNumberingModule=Модель нумерации счетов и кредитных нот +BillsPDFModules=Модели счетов-фактур +BillsPDFModulesAccordindToInvoiceType=Модели документов счета в соответствии с типом счета PaymentsPDFModules=Модели платежных документов -ForceInvoiceDate=Силы дата счета-фактуры для подтверждения даты -SuggestedPaymentModesIfNotDefinedInInvoice=Предлагаемые платежи на счета в режиме по умолчанию, если не определено в счете-фактуре -SuggestPaymentByRIBOnAccount=Suggest payment by withdrawal on account -SuggestPaymentByChequeToAddress=Suggest payment by check to -FreeLegalTextOnInvoices=Свободный текст о счетах-фактурах +ForceInvoiceDate=Принудительно приравнять дату выставления счета к дате проверки +SuggestedPaymentModesIfNotDefinedInInvoice=Предложенный способ оплаты по умолчанию, если иной не определен в счете +SuggestPaymentByRIBOnAccount=Предложить оплату выводом средств на счет +SuggestPaymentByChequeToAddress=Предложить оплату чеком на +FreeLegalTextOnInvoices=Свободный текст на счетах-фактурах WatermarkOnDraftInvoices=Водяные знаки на черновиках счетов-фактур ("Нет" если пусто) PaymentsNumberingModule=Модель нумерации платежей -SuppliersPayment=Vendor payments -SupplierPaymentSetup=Vendor payments setup +SuppliersPayment=Платежи поставщику +SupplierPaymentSetup=Настройка платежей поставщику ##### Proposals ##### -PropalSetup=Коммерческие предложения модуль настройки -ProposalsNumberingModules=Коммерческие предложения нумерации модулей -ProposalsPDFModules=Коммерческие предложения документы моделей -SuggestedPaymentModesIfNotDefinedInProposal=Suggested payments mode on proposal by default if not defined for proposal -FreeLegalTextOnProposal=Свободный текст на коммерческие предложения +PropalSetup=Настройка модуля Коммерческих предложений +ProposalsNumberingModules=Модели нумерации Коммерческих предложений +ProposalsPDFModules=Модели документов Коммерческого предложения +SuggestedPaymentModesIfNotDefinedInProposal=Предлагаемый способ оплаты по предложению по умолчанию, если иной не определено предложением +FreeLegalTextOnProposal=Свободный текст на Коммерческих предложениях WatermarkOnDraftProposal=Водяные знаки на черновиках Коммерческих предложений ("Нет" если пусто) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Запрос банковского счёта для предложения ##### SupplierProposal ##### SupplierProposalSetup=Настройка модуля запросов цен поставщиков -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models +SupplierProposalNumberingModules=Модели нумерации ценовых запросов поставщиков +SupplierProposalPDFModules=Модели документов ценовых запросов поставщиков FreeLegalTextOnSupplierProposal=Свободный текст на запросе цены у поставщиков WatermarkOnDraftSupplierProposal=Водяной знак на проекте запроса цены у поставщиков (нет знака, если пустое) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Запросите банковский счет назначения ценового запроса @@ -1299,22 +1302,22 @@ WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Попросите источник скл ##### Suppliers Orders ##### BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Запросить адрес банковского счета для заказа на поставку ##### Orders ##### -OrdersSetup=Sales Orders management setup -OrdersNumberingModules=Приказы нумерации модулей +OrdersSetup=Настройка управления заказами на продажу +OrdersNumberingModules=Модели нумерации заказов OrdersModelModule=Заказ документов моделей -FreeLegalTextOnOrders=Свободный текст распоряжения +FreeLegalTextOnOrders=Свободный текст на Заказах WatermarkOnDraftOrders=Водяные знаки на черновиках Заказов ("Нет" если пусто) ShippableOrderIconInList=Добавьте значок в список заказов, который указывает, может ли заказ быть отправлен -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Запросите адрес банковского счета для заказа +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Запросить счет получателя заказа ##### Interventions ##### -InterventionsSetup=Выступления модуль настройки +InterventionsSetup=Настройка модуля вмешательств FreeLegalTextOnInterventions=Дополнительный текст на документах посредничества FicheinterNumberingModules=Вмешательство нумерации модулей TemplatePDFInterventions=Вмешательство карту документы моделей WatermarkOnDraftInterventionCards=Водяной знак на документах посредничества (нет если не задано) ##### Contracts ##### ContractsSetup=Настройка модуля Договоры/подписки -ContractsNumberingModules=Контракты нумерации модулей +ContractsNumberingModules=Модуль нумерации контрактов TemplatePDFContracts=Модели документов контрактов FreeLegalTextOnContracts=Дополнительный текст к доворам WatermarkOnDraftContractCards=Водяной знак на черновиках контрактов ("Нет" если пусто) @@ -1322,17 +1325,17 @@ WatermarkOnDraftContractCards=Водяной знак на черновиках MembersSetup=Настройка модуля участников MemberMainOptions=Основные настройки AdherentLoginRequired= Управление логином для каждого пользователя -AdherentMailRequired=Email required to create a new member +AdherentMailRequired=Требуется электронная почта для создания нового участника MemberSendInformationByMailByDefault=Чекбокс отправить по почте подтверждение членов по умолчанию -VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes -MEMBER_REMINDER_EMAIL=Enable automatic reminder by email of expired subscriptions. Note: Module %s must be enabled and correctly setup to send reminders. +VisitorCanChooseItsPaymentMode=Посетитель может выбрать один из доступных способов оплаты +MEMBER_REMINDER_EMAIL=Включить автоматическое напоминание по электронной почте о просроченных подписках. Примечание. Модуль %s должен быть включен и правильно настроен для отправки напоминаний. ##### LDAP setup ##### LDAPSetup=Установка LDAP LDAPGlobalParameters=Глобальные параметры LDAPUsersSynchro=Пользователи LDAPGroupsSynchro=Группы LDAPContactsSynchro=Контакты -LDAPMembersSynchro=Члены +LDAPMembersSynchro=Участники LDAPMembersTypesSynchro=Типы участников LDAPSynchronization=LDAP синхронизация LDAPFunctionsNotAvailableOnPHP=LDAP функции не availbale на PHP @@ -1347,7 +1350,7 @@ LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP LDAPPrimaryServer=Первичный сервер LDAPSecondaryServer=Вторичный сервер LDAPServerPort=Порт сервера -LDAPServerPortExample=Default port: 389 +LDAPServerPortExample=Порт по умолчанию: 389 LDAPServerProtocolVersion=Версия протокола LDAPServerUseTLS=Использовать TLS LDAPServerUseTLSExample=Ваш LDAP сервер использования TLS @@ -1394,59 +1397,59 @@ LDAPTestSynchroMemberType=Тестирование синхронизации т LDAPTestSearch= Тестировать поиск LDAP LDAPSynchroOK=Синхронизация успешные испытания LDAPSynchroKO=Сбой синхронизации тест -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates +LDAPSynchroKOMayBePermissions=Неудачный тест синхронизации. Проверьте, правильно ли настроено соединение с сервером и разрешены ли обновления LDAP LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP соединение с сервером LDAP успешного (Server= %s, Порт= %s) LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP соединение с сервером LDAP Failed (Server= %s, Порт= %s) -LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPBindOK=Подключение / проверка подлинности при подключении к серверу LDAP прошла успешно (сервер = %s, порт = %s, Admin = %s, пароль = %s) +LDAPBindKO=Ошибка подключения / аутентификации на сервере LDAP (Server = %s, Port = %s, Admin = %s, Password = %s) LDAPSetupForVersion3=LDAP-сервер настроен для версии 3 LDAPSetupForVersion2=LDAP-сервер настроен для версии 2 LDAPDolibarrMapping=Dolibarr Картирование LDAPLdapMapping=LDAP Картирование LDAPFieldLoginUnix=Логин (Unix) -LDAPFieldLoginExample=Example: uid +LDAPFieldLoginExample=Пример: UID LDAPFilterConnection=Фильтр поиска -LDAPFilterConnectionExample=Example: &(objectClass=inetOrgPerson) +LDAPFilterConnectionExample=Пример: &(objectClass=inetOrgPerson) LDAPFieldLoginSamba=Логин (самба, activedirectory) -LDAPFieldLoginSambaExample=Example: samaccountname +LDAPFieldLoginSambaExample=Пример: samaccountname LDAPFieldFullname=Фамилия Имя -LDAPFieldFullnameExample=Example: cn -LDAPFieldPasswordNotCrypted=Password not encrypted -LDAPFieldPasswordCrypted=Password encrypted -LDAPFieldPasswordExample=Example: userPassword -LDAPFieldCommonNameExample=Example: cn +LDAPFieldFullnameExample=Пример: cn +LDAPFieldPasswordNotCrypted=Пароль не зашифрован +LDAPFieldPasswordCrypted=Пароль зашифрован +LDAPFieldPasswordExample=Пример: userPassword +LDAPFieldCommonNameExample=Пример: cn LDAPFieldName=Имя -LDAPFieldNameExample=Example: sn +LDAPFieldNameExample=Пример: sn LDAPFieldFirstName=Имя -LDAPFieldFirstNameExample=Example: givenName +LDAPFieldFirstNameExample=Пример: данноеимя LDAPFieldMail=Адрес электронной почты -LDAPFieldMailExample=Example: mail +LDAPFieldMailExample=Пример: почта LDAPFieldPhone=Профессиональные телефонные номера -LDAPFieldPhoneExample=Example: telephonenumber +LDAPFieldPhoneExample=Пример: телефонныйномер LDAPFieldHomePhone=Личный номер телефона -LDAPFieldHomePhoneExample=Example: homephone +LDAPFieldHomePhoneExample=Пример: домашнийтелефон LDAPFieldMobile=Сотовый телефон -LDAPFieldMobileExample=Example: mobile +LDAPFieldMobileExample=Пример: мобильныйтелефон LDAPFieldFax=Номер факса -LDAPFieldFaxExample=Example: facsimiletelephonenumber +LDAPFieldFaxExample=Пример: факсимильныйномертелефона LDAPFieldAddress=Улица -LDAPFieldAddressExample=Example: street +LDAPFieldAddressExample=Пример: улица LDAPFieldZip=Zip -LDAPFieldZipExample=Example: postalcode +LDAPFieldZipExample=Пример: почтовыйиндекс LDAPFieldTown=Город -LDAPFieldTownExample=Example: l +LDAPFieldTownExample=Пример: л LDAPFieldCountry=Страна LDAPFieldDescription=Описание -LDAPFieldDescriptionExample=Example: description +LDAPFieldDescriptionExample=Пример: описание LDAPFieldNotePublic=Общая записка -LDAPFieldNotePublicExample=Example: publicnote +LDAPFieldNotePublicExample=Пример: публичнаязаметка LDAPFieldGroupMembers= Члены группы -LDAPFieldGroupMembersExample= Example: uniqueMember +LDAPFieldGroupMembersExample= Пример: uniqueMember LDAPFieldBirthdate=Дата рождения LDAPFieldCompany=Компания -LDAPFieldCompanyExample=Example: o +LDAPFieldCompanyExample=Пример: o LDAPFieldSid=SID -LDAPFieldSidExample=Example: objectsid +LDAPFieldSidExample=Пример: objectsid LDAPFieldEndLastSubscription=Дата окончания подписки LDAPFieldTitle=Должность LDAPFieldTitleExample=Например, заголовок @@ -1460,40 +1463,40 @@ LDAPDescMembersTypes=На этой странице вы можете опред LDAPDescValues=Пример значения для OpenLDAP с загружены следующие схемы: core.schema, cosine.schema, inetorgperson.schema). Если вы используете thoose ценности и OpenLDAP, модифицировать LDAP конфигурационный файл slapd.conf, чтобы все thoose схемы загрузки. ForANonAnonymousAccess=Для аутентифицированных доступа (для записи, например) PerfDolibarr=Настройки производительности/отчёты о оптимизации -YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance. -NotInstalled=Not installed, so your server is not slowed down by this. +YouMayFindPerfAdviceHere=Эта страница содержит некоторые проверки или советы, связанные с производительностью. +NotInstalled=Не установлен, поэтому ваш сервер от этого не замедлится. ApplicativeCache=Прикладной кеш -MemcachedNotAvailable=Не найдено аддитивного кэша. Вы можете повысить производительность, установив кэш-сервер Memcached и модуль, способный использовать этот сервер кеша.
Более подробная информация здесь. http: //wiki.dolibarr.org/index.php/Module_MemCached_EN.
. Заметьте, что многие веб-хостинг-провайдеры не предоставляют такой сервер кеша. +MemcachedNotAvailable=Аппликативный кеш не найден. Вы можете повысить производительность, установив кеш-сервер Memcached и модуль, способный использовать этот кеш-сервер.
Более подробная информация здесь http://wiki.dolibarr.org/index.php/Module_MemCached_EN .
Обратите внимание, что многие веб-хостинг-провайдеры не предоставляют такой кеш-сервер. MemcachedModuleAvailableButNotSetup=Модуль memcached для прикладного кэша найден, но настройка модуля не завершена. MemcachedAvailableAndSetup=Включен модуль memcached, предназначенный для использования сервера memcached. OPCodeCache=Кэш OPCode -NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad). +NoOPCodeCacheFound=Кэш OPCode не найден. Возможно, вы используете кэш OPCode, отличный от XCache или eAccelerator (хорошо), или, возможно, у вас нет кэша OPCode (очень плохо). HTTPCacheStaticResources=Кеш HTTP для статичных ресурсов (файлы стилей, изображений, скриптов) FilesOfTypeCached=Файлы типа %s кешируются HTTP сервером FilesOfTypeNotCached=Файлы типа %s не кешируются HTTP сервером FilesOfTypeCompressed=Файлы типа %s сжимаются HTTP сервером FilesOfTypeNotCompressed=Файлы типа %s сжимаются не HTTP сервером CacheByServer=Кэшируется сервером -CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000" +CacheByServerDesc=Например, используя директиву Apache "ExpiresByType image/gif A2592000" CacheByClient=Кэшируется браузером CompressionOfResources=Сжатие HTTP заголовков -CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE" +CompressionOfResourcesDesc=Например, используя директиву Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Такое автоматическое обнаружение невозможно с текущими браузерами -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) +DefaultValuesDesc=Здесь вы можете определить значение по умолчанию, которое вы хотите использовать при создании новой записи, и/или фильтры по умолчанию или порядок сортировки при перечислении записей. +DefaultCreateForm=Значения по умолчанию (для использования в формах) DefaultSearchFilters=Фильтры поиска по умолчанию DefaultSortOrder=Заказы сортировки по умолчанию DefaultFocus=Поля фокусировки по умолчанию -DefaultMandatory=Mandatory form fields +DefaultMandatory=Обязательные поля формы ##### Products ##### -ProductSetup=Продукты модуль настройки -ServiceSetup=Услуги установки модуля -ProductServiceSetup=Продукты и услуги установки модулей -NumberOfProductShowInSelect=Maximum number of products to show in combo select lists (0=no limit) -ViewProductDescInFormAbility=Display product descriptions in forms (otherwise shown in a tooltip popup) +ProductSetup=Настройка модуля Продуктов +ServiceSetup=Настройка модуля Услуг +ProductServiceSetup=Настройка модулей Продуктов и Услуг +NumberOfProductShowInSelect=Максимальное количество товаров для отображения в комбинированных списках выбора (0 = без ограничений) +ViewProductDescInFormAbility=Отображать описания продуктов в формах (в противном случае отображается во всплывающей подсказке) MergePropalProductCard=Активировать в продукте/услуге Вложенные файлы вставить опцию объединить PDF-документ продукта в предложение PDF azur, если продукт/услуга находится в предложении -ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party -UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. +ViewProductDescInThirdpartyLanguageAbility=Отображать описания продуктов на языке контрагентов +UseSearchToSelectProductTooltip=Также, если у вас есть большое количество продуктов (> 100 000), вы можете увеличить скорость, установив постоянное значение PRODUCT_DONOTSEARCH_ANYWHERE равное 1 в меню «Настройка» - «Другие настройки». Поиск будет ограничен началом строки. UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) SetDefaultBarcodeTypeProducts=Стандартный вид штрих-кода, используемого для продуктов SetDefaultBarcodeTypeThirdParties=Стандартный вид штрих-кода, используемого для третьих сторон @@ -1502,7 +1505,7 @@ ProductCodeChecker= Модуль для генерации кода продук ProductOtherConf= Конфигурация Товаров / Услуг IsNotADir=Не является каталогом! ##### Syslog ##### -SyslogSetup=Настройка модуля системного журнала +SyslogSetup=Настройка модуля Системного журнала SyslogOutput=Вход выходных SyslogFacility=Фонд SyslogLevel=Уровень @@ -1514,14 +1517,14 @@ CompressSyslogs=Сжатие и резервное копирование фай SyslogFileNumberOfSaves=Журнал резервных копий ConfigureCleaningCronjobToSetFrequencyOfSaves=Настроить очистку запланированного задания для установки частоты резервного копирования журнала ##### Donations ##### -DonationsSetup=Пожертвования модуль настройки +DonationsSetup=Настройка модуля Пожертвования DonationsReceiptModel=Шаблон дарения получения ##### Barcode ##### -BarcodeSetup=Штрих-код установки -PaperFormatModule=Версия для печати формата модуля -BarcodeEncodeModule=Штрих-кодирование типа -CodeBarGenerator=Штрих-код генератор -ChooseABarCode=Нет генератором определена +BarcodeSetup=Настройка штрих-кода +PaperFormatModule=Модуль Формата печати +BarcodeEncodeModule=Тип кодировки штрих-кода +CodeBarGenerator=Генератор штрих-кода +ChooseABarCode=Генератор не определен FormatNotSupportedByGenerator=Формат не поддерживается этим генератором BarcodeDescEAN8=Штрих-код типа EAN8 BarcodeDescEAN13=Штрих-код типа EAN13 @@ -1535,31 +1538,31 @@ GenbarcodeLocation=Путь для запуска к утилите генера BarcodeInternalEngine=Внутренние средства управления BarCodeNumberManager=Менеджер для автоматического определения номеров штрих-кода ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct Debit payments +WithdrawalsSetup=Настройка модуля платежей с прямым дебетированием ##### ExternalRSS ##### -ExternalRSSSetup=Внешние RSS импорт установки +ExternalRSSSetup=Настройка внешнего импорта RSS NewRSS=Новые RSS Feed RSSUrl=Ссылка RSS RSSUrlExample=Интересные RSS-ленты ##### Mailing ##### -MailingSetup=Отправка модуля настройки -MailingEMailFrom=Sender email (From) for emails sent by emailing module +MailingSetup=Настройка почтового модуля +MailingEMailFrom=Модуль Адресанта (от кого) для отправки писем по электронной почте MailingEMailError=Return Email (Errors-to) for emails with errors MailingDelay=Время ожидания в секундах перед отправкой следующего сообщения ##### Notification ##### -NotificationSetup=Email Notification module setup -NotificationEMailFrom=Sender email (From) for emails sent by the Notifications module +NotificationSetup=Настройка модуля Уведомления по электронной почте +NotificationEMailFrom=Электронная почта отправителя (От кого) для писем, отправленных модулем Уведомлений FixedEmailTarget=Получатель ##### Sendings ##### -SendingsSetup=Shipping module setup -SendingsReceiptModel=Отправка получения модели -SendingsNumberingModules=Отправки нумерации модулей -SendingsAbility=Поддержка листов доставки для доставки клиентов +SendingsSetup=Настройка модуля доставки +SendingsReceiptModel=Модель отправки квитанции +SendingsNumberingModules=Модули нумерации отправлений +SendingsAbility=Поддержка накладных для доставки клиенту NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated. FreeLegalTextOnShippings=Дополнительный текст для поставок ##### Deliveries ##### -DeliveryOrderNumberingModules=Продукция Поставки получения нумерации модуль -DeliveryOrderModel=Продукция Поставки получения модели +DeliveryOrderNumberingModules=Модуль нумерации чеков поставки продукции +DeliveryOrderModel=Шаблон бланка товарного чека DeliveriesOrderAbility=Поддержка продуктов, поставки квитанции FreeLegalTextOnDeliveryReceipts=Бесплатная доставка по тексту квитанции ##### FCKeditor ##### @@ -1573,27 +1576,27 @@ FCKeditorForUserSignature=Редактор WYSIWIG для создания/из FCKeditorForMail=WYSIWIG создание/издание для всей почты (кроме Tools-> eMailing) ##### Stock ##### StockSetup=Настройка модуля запаса -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. +IfYouUsePointOfSaleCheckModule=Если вы используете модуль торговой точки (POS), предоставленный по умолчанию, или внешний модуль, эта установка может быть проигнорирована вашим модулем POS. Большинство POS-модулей по умолчанию предназначены для немедленного создания счета-фактуры и уменьшения складских запасов независимо от имеющихся здесь опций. Поэтому, если вам нужно или не нужно уменьшать запас при регистрации продажи в вашем POS, проверьте также настройку вашего POS-модуля. ##### Menu ##### MenuDeleted=Удаленное Меню Menus=Меню TreeMenuPersonalized=Персонализированная меню -NotTopTreeMenuPersonalized=Персонализированные меню, не связанные с верхним меню ввода +NotTopTreeMenuPersonalized=Персонализированные меню, не связанные с пунктом верхнего меню NewMenu=Новое меню Menu=Выбор меню MenuHandler=Меню обработчик -MenuModule=Источник модуль +MenuModule=Исходный модуль HideUnauthorizedMenu= Скрыть несанкционированного меню (серый) DetailId=Идентификатор меню -DetailMenuHandler=Меню обработчик где показывать новое меню -DetailMenuModule=Имя модуля, если меня из модуля +DetailMenuHandler=Обработчик меню, где показывать новое меню +DetailMenuModule=Имя модуля, если пункт меню взят из модуля DetailType=Тип меню (вверху или слева) DetailTitre=Меню ярлык или этикетку код для перевода -DetailUrl=URL, где меня отправить вам (абсолютный URL ссылку или внешние ссылки с http://) -DetailEnabled=Условие, чтобы показать или не вступления +DetailUrl=URL-адрес, по которому вам отправляется меню (абсолютная ссылка или внешняя ссылка с http: //) +DetailEnabled=Условие показать или нет запись DetailRight=Условие для отображения несанкционированным серого меню -DetailLangs=Ланг имя ярлыка код перевода -DetailUser=Стажер / Extern / Все +DetailLangs=Имя файла Lang для перевода кода метки +DetailUser=Стажер / Внештатный / Все Target=Цель DetailTarget=Target for links (_blank top opens a new window) DetailLevel=Уровень (-1: верхнее меню, 0: заголовок меню> 0 меню и подменю) @@ -1602,7 +1605,7 @@ DeleteMenu=Удалить меню ConfirmDeleteMenu=Вы действительно хотите удалить запись меню %s? FailedToInitializeMenu=Не удалось инициализировать меню ##### Tax ##### -TaxSetup=Налоги, социальные или налоговые налоги и установка модулей дивидендов +TaxSetup=Настройка модуля НДС, социальные или налоговые сборов и дивидендов OptionVatMode=НДС к оплате OptionVATDefault=Стандартная основа OptionVATDebitOption=Принцип начисления @@ -1619,12 +1622,12 @@ SupposedToBeInvoiceDate=Счет дата, используемая Buy=Покупать Sell=Продавать InvoiceDateUsed=Счет дата, используемая -YourCompanyDoesNotUseVAT=В вашей компании определено, что вы не используете НДС (Home - Setup - Company / Organization), поэтому для настройки нет параметров НДС. -AccountancyCode=Учетный код +YourCompanyDoesNotUseVAT=В вашей компании определено, что вы не используете НДС (Главная - Настройки - Компания/Организация), поэтому для настройки нет параметров НДС. +AccountancyCode=Бухгалтерский код AccountancyCodeSell=Бух. код продаж AccountancyCodeBuy=Бух. код покупок ##### Agenda ##### -AgendaSetup=Акции и повестки модуль настройки +AgendaSetup=Настройка модуля событий и повестки дня PasswordTogetVCalExport=Ключевые разрешить экспорт ссылке PastDelayVCalExport=Не экспортировать события старше AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events) @@ -1637,26 +1640,26 @@ AGENDA_REMINDER_BROWSER=Enable event reminder on user's browser (when eve AGENDA_REMINDER_BROWSER_SOUND=Включить звуковое оповещение AGENDA_SHOW_LINKED_OBJECT=Показывать связанный объект в представлении повестки дня ##### Clicktodial ##### -ClickToDialSetup=Нажмите для набора модуля настройки +ClickToDialSetup=Настройка модуля Click To Dial ClickToDialUrlDesc=Url звонившего, когда клик по пиктограмме телефона сделан. В URL-адресе вы можете использовать теги
__PHONETO__, которые будут заменены на номер телефона человека для вызова
__PHONEFROM__, который будет заменен номером телефона вызывающего абонента (вашего)
__LOGIN__, который будет заменен на clicktodial login (определенном на карточке пользователя)
__PASS__, который будет заменен кликтодиальным паролем (определяется на карточке пользователя). -ClickToDialDesc=This module makea phone numbers clickable links. A click on the icon will make your phone call the number. This can be used to call a call-center system from Dolibarr that can call the phone number on a SIP system for example. +ClickToDialDesc=Этот модуль делает номера телефонов кликабельными ссылками. Нажатие на значок заставит ваш телефонный номер позвонить. Это можно использовать для вызова системы call-центра из Dolibarr, которая может, например, позвонить по номеру телефона в системе SIP. ClickToDialUseTelLink=Используйте только ссылку «tel:» на номера телефонов ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. ##### Point Of Sale (CashDesk) ##### CashDesk=Point of Sale -CashDeskSetup=Point of Sales module setup +CashDeskSetup=Настройка модуля «Точка продаж» CashDeskThirdPartyForSell=Default generic third party to use for sales CashDeskBankAccountForSell=Денежные счета, используемого для продает CashDeskBankAccountForCheque= Default account to use to receive payments by check CashDeskBankAccountForCB= Учетной записи для использования на получение денежных выплат по кредитным картам -CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock). +CashDeskDoNotDecreaseStock=Отключить уменьшение запаса, когда продажа осуществляется из торговой точки (если «нет», уменьшение запаса производится для каждой продажи, совершаемой из POS, независимо от опции, установленной в модуле Запас). CashDeskIdWareHouse=Ускорить и ограничить склад для уменьшения запасов StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with module Serial/Lot management (currently active) so stock decrease is disabled. +StockDecreaseForPointOfSaleDisabledbyBatch=Уменьшение запаса в POS не совместимо с модулем Управление сериями/партиями (в настоящее время активно), поэтому уменьшение запаса отключено CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required. ##### Bookmark ##### -BookmarkSetup=Закладка Настройка модуля -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu. +BookmarkSetup=Настройка модуля Закладки +BookmarkDesc=Этот модуль позволяет вам управлять закладками. Вы также можете добавить ярлыки на любые страницы Dolibarr или внешние веб-сайты в левом меню. NbOfBoomarkToShow=Максимальное количество закладок, отображаемых в меню слева ##### WebServices ##### WebServicesSetup=Webservices модуль настройки @@ -1670,42 +1673,42 @@ ApiProductionMode=Включить режим производства (это ApiExporerIs=Вы можете исследовать и тестировать API по URL-адресу OnlyActiveElementsAreExposed=Выделяются только элементы из разрешенных модулей ApiKey=Ключ для API -WarningAPIExplorerDisabled=Исследователь API отключен. API-интерфейс API не требуется для предоставления услуг API. Это инструмент для разработчика для поиска/тестирования API REST. Если вам нужен этот инструмент, перейдите в настройку модуля API REST, чтобы активировать его. +WarningAPIExplorerDisabled=Проводник API отключен. Обозреватель API не обязан предоставлять службы API. Это инструмент для разработчика, чтобы найти / протестировать REST API. Если вам нужен этот инструмент, зайдите в настройку модуля API REST, чтобы активировать его. ##### Bank ##### -BankSetupModule=Банк модуль настройки +BankSetupModule=Настройка Банковского модуля FreeLegalTextOnChequeReceipts=Free text on check receipts -BankOrderShow=Порядок отображения банковских счетов для стран, использующих "подробную номер банковского" +BankOrderShow=Порядок отображения банковских счетов для стран, использующих «подробный номер банка» BankOrderGlobal=Общий BankOrderGlobalDesc=Генеральный порядок отображения BankOrderES=Испанский BankOrderESDesc=Испанская порядок отображения -ChequeReceiptsNumberingModule=Check Receipts Numbering Module +ChequeReceiptsNumberingModule=Модуль Проверки чеков ##### Multicompany ##### -MultiCompanySetup=Компания Multi-модуль настройки +MultiCompanySetup=Настройка модуля Корпорация ##### Suppliers ##### -SuppliersSetup=Vendor module setup +SuppliersSetup=Настройка модуля Поставщика SuppliersCommandModel=Complete template of purchase order (logo...) SuppliersInvoiceModel=Полный шаблон счета-фактуры поставщика (логотип ...) SuppliersInvoiceNumberingModel=Vendor invoices numbering models IfSetToYesDontForgetPermission=Если установлено "Да", не забудьте дать доступ группам или пользователям, разрешённым для повторного утверждения ##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP MaxMind модуля установки +GeoIPMaxmindSetup=Настройка модуля GeoIP Maxmind PathToGeoIPMaxmindCountryDataFile=Путь к файлу Maxmind, который требуется для геолокации.
Например,
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat NoteOnPathLocation=Обратите внимание, что Ваш IP, чтобы страны файл данных должен быть в директории вашего PHP может читать (Проверьте ваши установки PHP open_basedir и файловой системы разрешений). YouCanDownloadFreeDatFileTo=Вы можете скачать бесплатную демонстрационную версию страны GeoIP MaxMind файл на %s. YouCanDownloadAdvancedDatFileTo=Вы также можете скачать более полную версию, с обновлениями, в стране GeoIP MaxMind файл на %s. TestGeoIPResult=Испытание преобразование IP -> страны ##### Projects ##### -ProjectsNumberingModules=Проекты нумерации модуль -ProjectsSetup=Проект модуля установки -ProjectsModelModule=доклад документ проекта модели +ProjectsNumberingModules=Модуль нумерации проектов +ProjectsSetup=Настройка модуля проекта +ProjectsModelModule=Модель отчета по проекту TasksNumberingModules=Модуль нумерации Задач TaskModelModule=Документы с отчетами о задачах UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.
This may improve performance if you have a large number of projects, but it is less convenient. ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Сроки учета -AccountingPeriodCard=Период учета +AccountingPeriods=Учетные периоды +AccountingPeriodCard=Отчетный период NewFiscalYear=Новый отчетный период OpenFiscalYear=Открытый отчетный период CloseFiscalYear=Закрытый отчетный период @@ -1719,7 +1722,7 @@ NbNumMin=Минимальное количество цифр NbSpeMin=Минимальное количество специальных символов NbIteConsecutive=Максимальное количество повторяющихся повторяющихся одинаковых символов NoAmbiCaracAutoGeneration=Не используйте похожие символы ("1","l","i","|","0","O") для автоматической генерации -SalariesSetup=Настройка зарплатного модуля +SalariesSetup=Настройка модуля Зарплаты SortOrder=Порядок сортировки Format=Формат TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and suppliers payment type @@ -1730,7 +1733,7 @@ ExpenseReportsIkSetup=Настройка модуля Отчеты о расхо ExpenseReportsRulesSetup=Настройка модуля Отчеты о расходах - Правила ExpenseReportNumberingModules=Модуль нумерации отчетов о расходах NoModueToManageStockIncrease=Был активирован модуль, способный управлять автоматическим увеличением запасов. Увеличение запасов будет производиться только вручную. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". +YouMayFindNotificationsFeaturesIntoModuleNotification=Вы можете найти опции для уведомлений по электронной почте, включив и настроив модуль «Уведомления». ListOfNotificationsPerUser=Список уведомлений на пользователя * ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** ListOfFixedNotifications=List of Fixed Notifications @@ -1778,7 +1781,7 @@ ExpectedChecksum=Ожидаемая контрольная сумма CurrentChecksum=Текущая контрольная сумма ForcedConstants=Требуемые постоянные значения MailToSendProposal=Предложения клиенту -MailToSendOrder=Sales orders +MailToSendOrder=Заказы на продажу MailToSendInvoice=Счета клиента MailToSendShipment=Отгрузки MailToSendIntervention=Проектные работы @@ -1821,22 +1824,22 @@ AddSubstitutions=Добавить замены клавиш DetectionNotPossible=Обнаружение невозможно UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call) ListOfAvailableAPIs=Список доступных API -activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise +activateModuleDependNotSatisfied=Модуль "%s" зависит от модуля "%s", который отсутствует, поэтому модуль "%1$s" может работать неправильно. Пожалуйста, установите модуль "%2$s" или отключите модуль "%1$s", если вы хотите быть в безопасности от неожиданностей CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter $dolibarr_main_restrict_os_commands in the conf.php file. LandingPage=Целевая страница -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments +SamePriceAlsoForSharedCompanies=Если вы используете модуль мультикомпания с выбором «Единая цена», цена также будет одинаковой для всех компаний, если продукты распределены между окружениями. ModuleEnabledAdminMustCheckRights=Модуль активирован. Разрешения для активированного модуля (модулей) были предоставлены только администраторам. Возможно, вам потребуется предоставить разрешения другим пользователям или группам вручную, если это необходимо. UserHasNoPermissions=This user has no permissions defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)
Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s") BaseCurrency=Справочная валюта компании (перейдите в настройку компании, чтобы изменить это) -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016). -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. -WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software. +WarningNoteModuleInvoiceForFrenchLaw=Этот модуль %s соответствует французским законам (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Этот модуль %s соответствует французским законам (Loi Finance 2016), поскольку модуль необратимых журналов активируется автоматически. +WarningInstallationMayBecomeNotCompliantWithLaw=Вы пытаетесь установить модуль %s, который является внешним модулем. Активация внешнего модуля означает, что вы доверяете издателю этого модуля и уверены, что этот модуль не оказывает негативного влияния на поведение вашего приложения и соответствует законодательству вашей страны (%s). Если модуль вводит незаконную функцию, вы несете ответственность за использование нелегального программного обеспечения. MAIN_PDF_MARGIN_LEFT=Левый отступ в PDF MAIN_PDF_MARGIN_RIGHT=Правый отступ PDF MAIN_PDF_MARGIN_TOP=Верхний отступ PDF MAIN_PDF_MARGIN_BOTTOM=Нижний отступ PDF -NothingToSetup=There is no specific setup required for this module. +NothingToSetup=Для этого модуля не требуется никаких специальных настроек. SetToYesIfGroupIsComputationOfOtherGroups=Установите для этого значение yes, если эта группа является вычислением других групп EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2') SeveralLangugeVariatFound=Было найдено несколько вариантов языка @@ -1848,9 +1851,9 @@ HelpOnTooltip=Help text to show on tooltip HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:
%s ChartLoaded=Chart of account loaded -SocialNetworkSetup=Setup of module Social Networks +SocialNetworkSetup=Настройка модуля Социальные сети EnableFeatureFor=Enable features for %s -VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to Off in the menu %s - %s, so Sales tax or Vat used will always be 0 for sales. +VATIsUsedIsOff=Примечание: В меню %s - %s для параметра «Использовать налог с продаж или НДС» было установлено значение Выкл. , поэтому для продаж всегда используется 0 налога с продаж или НДС. SwapSenderAndRecipientOnPDF=Swap sender and recipient address position on PDF documents FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature. EmailCollector=Email collector @@ -1886,7 +1889,7 @@ ECMAutoTree=Show automatic ECM tree OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
object.objproperty5=EXTRACT:BODY:My company name is\\s([^\\s]*)

Use a ; char as separator to extract or set several properties. OpeningHours=Opening hours OpeningHoursDesc=Enter here the regular opening hours of your company. -ResourceSetup=Configuration of Resource module +ResourceSetup=Конфигурация модуля Ресурсов UseSearchToSelectResource=Используйте форму поиска, чтобы выбрать ресурс (а не раскрывающийся список). DisabledResourceLinkUser=Отключить функцию привязки ресурса к пользователям DisabledResourceLinkContact=Отключить функцию привязки ресурса к контактам @@ -1897,7 +1900,7 @@ 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. ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. +ABankAccountMustBeDefinedOnPaymentModeSetup=Примечание. Банковский счет должен быть указан в модуле каждого способа оплаты (Paypal, Stripe, ...), чтобы эта функция работала. 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 @@ -1908,7 +1911,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +DebugBarModuleActivated=Модуль отладки активируется и резко замедляет интерфейс EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/ru_RU/bills.lang b/htdocs/langs/ru_RU/bills.lang index 9d8cac3c0a1..eedacc9143d 100644 --- a/htdocs/langs/ru_RU/bills.lang +++ b/htdocs/langs/ru_RU/bills.lang @@ -20,12 +20,12 @@ InvoiceStandardDesc=Такой вид счёта является общим. InvoiceDeposit=Down payment invoice InvoiceDepositAsk=Down payment invoice InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. -InvoiceProForma=Формальный счёт +InvoiceProForma=Предварительный счет InvoiceProFormaAsk=Формальный счёт InvoiceProFormaDesc=Формальный счёт является образом оригинального счёта, но не имеет бухгалтерской учетной записи. InvoiceReplacement=Замена счета-фактуры InvoiceReplacementAsk=Замена счета-фактуры на другой -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Кредитовое авизо InvoiceAvoirAsk=Кредитовое авизо для исправления счета-фактуры InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). @@ -70,7 +70,7 @@ ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount? ConfirmConvertToReduc2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount? ConfirmConvertToReducSupplier2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. -SupplierPayments=Vendor payments +SupplierPayments=Платежи поставщику ReceivedPayments=Полученные платежи ReceivedCustomersPayments=Платежи, полученные от покупателей PayedSuppliersPayments=Payments paid to vendors @@ -88,8 +88,8 @@ CodePaymentMode=Payment Type (code) LabelPaymentMode=Payment Type (label) PaymentModeShort=Payment Type PaymentTerm=Payment Term -PaymentConditions=Payment Terms -PaymentConditionsShort=Payment Terms +PaymentConditions=Условия оплаты +PaymentConditionsShort=Условия оплаты PaymentAmount=Сумма платежа PaymentHigherThanReminderToPay=Платеж больше, чем в напоминании об оплате HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. diff --git a/htdocs/langs/ru_RU/blockedlog.lang b/htdocs/langs/ru_RU/blockedlog.lang index 22383133f41..25d4540bff2 100644 --- a/htdocs/langs/ru_RU/blockedlog.lang +++ b/htdocs/langs/ru_RU/blockedlog.lang @@ -1,36 +1,36 @@ -BlockedLog=Unalterable Logs +BlockedLog=Неизменяемые логи Field=Поле BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF525). Fingerprints=Archived events and fingerprints FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask that you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non-valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed). CompanyInitialKey=Company initial key (hash of genesis block) BrowseBlockedLog=Unalterable logs -ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long) -ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long) +ShowAllFingerPrintsMightBeTooLong=Показать все архивные логи (может быть долго) +ShowAllFingerPrintsErrorsMightBeTooLong=Показать все недействительные архивные логи (может быть долго) DownloadBlockChain=Download fingerprints -KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this re after it was recorded, or has erased the previous archived record (check that line with previous # exists). -OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one. +KoCheckFingerprintValidity=Архивные записи недействительна. Это значит, что кто-то (хакер?) изменил некоторые данные этого после того, как они были записаны, или удалил предыдущую архивную запись (проверьте, что строка с предыдущим # существует). +OkCheckFingerprintValidity=Архивная запись в журнале действительна. Данные в этой строке не были изменены, и запись следует за предыдущей. OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously. AddedByAuthority=Stored into remote authority NotAddedByAuthorityYet=Not yet stored into remote authority -ShowDetails=Show stored details +ShowDetails=Показать сохраненные данные logPAYMENT_VARIOUS_CREATE=Payment (not assigned to an invoice) created logPAYMENT_VARIOUS_MODIFY=Payment (not assigned to an invoice) modified logPAYMENT_VARIOUS_DELETE=Payment (not assigned to an invoice) logical deletion logPAYMENT_ADD_TO_BANK=Payment added to bank -logPAYMENT_CUSTOMER_CREATE=Customer payment created +logPAYMENT_CUSTOMER_CREATE=Платеж клиента создан logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion -logDONATION_PAYMENT_CREATE=Donation payment created +logDONATION_PAYMENT_CREATE=Платеж пожертвования создан logDONATION_PAYMENT_DELETE=Donation payment logical deletion -logBILL_PAYED=Customer invoice paid -logBILL_UNPAYED=Customer invoice set unpaid +logBILL_PAYED=Счет клиента оплачен +logBILL_UNPAYED=Неоплаченный счет клиента logBILL_VALIDATE=Проверка векселя logBILL_SENTBYMAIL=Customer invoice send by mail logBILL_DELETE=Customer invoice logically deleted logMODULE_RESET=Module BlockedLog was disabled logMODULE_SET=Module BlockedLog was enabled -logDON_VALIDATE=Donation validated -logDON_MODIFY=Donation modified +logDON_VALIDATE=Пожертвование подтверждено +logDON_MODIFY=Пожертвование изменено logDON_DELETE=Donation logical deletion logMEMBER_SUBSCRIPTION_CREATE=Member subscription created logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified diff --git a/htdocs/langs/ru_RU/bookmarks.lang b/htdocs/langs/ru_RU/bookmarks.lang index c6009dfc922..701f235600f 100644 --- a/htdocs/langs/ru_RU/bookmarks.lang +++ b/htdocs/langs/ru_RU/bookmarks.lang @@ -6,15 +6,15 @@ ListOfBookmarks=Список закладок EditBookmarks=Список/редактирование закладок NewBookmark=Новая закладка ShowBookmark=Показать закладку -OpenANewWindow=Открыть новое окно -ReplaceWindow=Заменить текущее окно -BookmarkTargetNewWindowShort=Новое окно -BookmarkTargetReplaceWindowShort=Текущее окно -BookmarkTitle=Название закладки +OpenANewWindow=Открыть новую вкладку +ReplaceWindow=Заменить текущую вкладку +BookmarkTargetNewWindowShort=Новая вкладка +BookmarkTargetReplaceWindowShort=Текущая вкладка +BookmarkTitle=Имя закладки UrlOrLink=URL BehaviourOnClick=Поведение когда выбран URL закладки CreateBookmark=Создать закладку -SetHereATitleForLink=Установите название для закладки -UseAnExternalHttpLinkOrRelativeDolibarrLink=Используйте внешний HTTP URL или относительный Dolibarr URL -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Выберите если связанную страницу необходимо открыть в новом окне +SetHereATitleForLink=Задать имя закладки +UseAnExternalHttpLinkOrRelativeDolibarrLink=Использовать внешнюю/абсолютную ссылку (https://URL) или внутреннюю/относительную ссылку (/DOLIBARR_ROOT/ htdocs /...) +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Выберите, должна ли связанная страница открываться в текущей вкладке или в новой вкладке BookmarksManagement=Управление закладками diff --git a/htdocs/langs/ru_RU/boxes.lang b/htdocs/langs/ru_RU/boxes.lang index d79c6632395..3f1f3835168 100644 --- a/htdocs/langs/ru_RU/boxes.lang +++ b/htdocs/langs/ru_RU/boxes.lang @@ -1,29 +1,29 @@ # Dolibarr language file - Source file is en_US - boxes -BoxLoginInformation=Login Information -BoxLastRssInfos=RSS Information -BoxLastProducts=Latest %s Products/Services -BoxProductsAlertStock=Stock alerts for products -BoxLastProductsInContract=Latest %s contracted products/services -BoxLastSupplierBills=Latest Vendor invoices -BoxLastCustomerBills=Latest Customer invoices -BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices -BoxOldestUnpaidSupplierBills=Oldest unpaid vendor invoices -BoxLastProposals=Latest commercial proposals -BoxLastProspects=Latest modified prospects -BoxLastCustomers=Latest modified customers -BoxLastSuppliers=Latest modified suppliers -BoxLastCustomerOrders=Latest sales orders -BoxLastActions=Latest actions -BoxLastContracts=Latest contracts -BoxLastContacts=Latest contacts/addresses -BoxLastMembers=Latest members -BoxFicheInter=Latest interventions +BoxLoginInformation=Информация для входа +BoxLastRssInfos=RSS информация +BoxLastProducts=Последние %s Продукты/ Услуги +BoxProductsAlertStock=Имеющиеся оповещения для продуктов +BoxLastProductsInContract=Последние %s контрактные продукты/услуги +BoxLastSupplierBills=Последние счета поставщиков +BoxLastCustomerBills=Последние счета клиентов +BoxOldestUnpaidCustomerBills=Старые неоплаченные счета клиентов +BoxOldestUnpaidSupplierBills=Старые неоплаченные счета поставщиков +BoxLastProposals=Последние коммерческие предложения +BoxLastProspects=Последние изменения потенциальных клиентов +BoxLastCustomers=Последние изменения клиентов +BoxLastSuppliers=Последние изменения поставщиков +BoxLastCustomerOrders=Последние заказы +BoxLastActions=Последние действия +BoxLastContracts=Последние контракты +BoxLastContacts=Последние контакты/адреса +BoxLastMembers=Последние участники +BoxFicheInter=Последние вмешательства BoxCurrentAccounts=Open accounts balance -BoxTitleLastRssInfos=Latest %s news from %s -BoxTitleLastProducts=Products/Services: last %s modified -BoxTitleProductsAlertStock=Products: stock alert -BoxTitleLastSuppliers=Latest %s recorded suppliers -BoxTitleLastModifiedSuppliers=Vendors: last %s modified +BoxTitleLastRssInfos=Последние %s новостей от %s +BoxTitleLastProducts=Продукты/Услуги: последних %s изменений +BoxTitleProductsAlertStock=Продукты: имеющиеся оповещения +BoxTitleLastSuppliers=Последние %s зарегистрированные поставщики +BoxTitleLastModifiedSuppliers=Продавцы: последнее %s изменений BoxTitleLastModifiedCustomers=Customers: last %s modified BoxTitleLastCustomersOrProspects=Latest %s customers or prospects BoxTitleLastCustomerBills=Latest %s Customer invoices @@ -35,53 +35,53 @@ BoxTitleOldestUnpaidCustomerBills=Customer Invoices: oldest %s unpaid BoxTitleOldestUnpaidSupplierBills=Vendor Invoices: oldest %s unpaid BoxTitleCurrentAccounts=Open Accounts: balances BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified -BoxMyLastBookmarks=Bookmarks: latest %s +BoxMyLastBookmarks=Закладки: последние %s BoxOldestExpiredServices=Старейшие активных истек услуги BoxLastExpiredServices=Latest %s oldest contacts with active expired services BoxTitleLastActionsToDo=Latest %s actions to do BoxTitleLastContracts=Latest %s modified contracts -BoxTitleLastModifiedDonations=Latest %s modified donations +BoxTitleLastModifiedDonations=Последние %sизмененные пожертвования BoxTitleLastModifiedExpenses=Latest %s modified expense reports BoxGlobalActivity=Глобальная активность (фактуры, предложения, заказы) -BoxGoodCustomers=Good customers +BoxGoodCustomers=Хорошие клиенты BoxTitleGoodCustomers=%s Good customers FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successful refresh date: %s -LastRefreshDate=Latest refresh date +LastRefreshDate=Дата последнего обновления NoRecordedBookmarks=Закладки не созданы. ClickToAdd=Нажмите здесь, чтобы добавить. NoRecordedCustomers=Нет зарегистрированных клиентов NoRecordedContacts=Нет введенных контактов NoActionsToDo=Нет действий для выполнения -NoRecordedOrders=No recorded sales orders +NoRecordedOrders=Нет зарегистрированных заказов на продажу NoRecordedProposals=Нет зарегистрированных предложений -NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid vendor invoices -NoModifiedSupplierBills=No recorded vendor invoices +NoRecordedInvoices=Нет зарегистрированных счетов клиентов +NoUnpaidCustomerBills=Нет неоплаченных счетов клиентов +NoUnpaidSupplierBills=Нет неоплаченных счетов поставщиков +NoModifiedSupplierBills=Нет зарегистрированных счетов поставщиков NoRecordedProducts=Нет зарегистрированных товаров / услуг NoRecordedProspects=Нет зарегистрированных потенциальных клиентов NoContractedProducts=Нет законтрактованных товаров / услуг NoRecordedContracts=Нет введенных договоров NoRecordedInterventions=Нет записанных мероприятий -BoxLatestSupplierOrders=Latest purchase orders -NoSupplierOrder=No recorded purchase order -BoxCustomersInvoicesPerMonth=Customer Invoices per month +BoxLatestSupplierOrders=Последние заказы на покупку +NoSupplierOrder=Нет зарегистрированного заказа на покупку +BoxCustomersInvoicesPerMonth=Счета клиентов в месяц BoxSuppliersInvoicesPerMonth=Vendor Invoices per month -BoxCustomersOrdersPerMonth=Sales Orders per month +BoxCustomersOrdersPerMonth=Заказы на продажу в месяц BoxSuppliersOrdersPerMonth=Vendor Orders per month BoxProposalsPerMonth=Предложений в месяц -NoTooLowStockProducts=No products are under the low stock limit -BoxProductDistribution=Products/Services Distribution +NoTooLowStockProducts=Нет товаров на складе с запасом ниже установленного +BoxProductDistribution=Дистрибуция Продуктов/Услуг ForObject=On %s -BoxTitleLastModifiedSupplierBills=Vendor Invoices: last %s modified -BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified -BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified +BoxTitleLastModifiedSupplierBills=Счета поставщиков: последнее %s изменений +BoxTitleLatestModifiedSupplierOrders=Заказы поставщиков: последнее %s изменений +BoxTitleLastModifiedCustomerBills=Счета клиентов: последнее %s изменений BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified BoxTitleLastModifiedPropals=Latest %s modified proposals ForCustomersInvoices=Счета-фактуры Покупателей ForCustomersOrders=Заказы клиентов ForProposals=Предложения LastXMonthRolling=The latest %s month rolling -ChooseBoxToAdd=Add widget to your dashboard -BoxAdded=Widget was added in your dashboard -BoxTitleUserBirthdaysOfMonth=Birthdays of this month +ChooseBoxToAdd=Добавить виджет на вашу панель +BoxAdded=Виджет был добавлен на вашу панель +BoxTitleUserBirthdaysOfMonth=Дни рождения в этом месяце diff --git a/htdocs/langs/ru_RU/cashdesk.lang b/htdocs/langs/ru_RU/cashdesk.lang index 2a83680e420..b6ea72c8f0c 100644 --- a/htdocs/langs/ru_RU/cashdesk.lang +++ b/htdocs/langs/ru_RU/cashdesk.lang @@ -14,7 +14,7 @@ ShoppingCart=Корзина NewSell=Новые продать AddThisArticle=Добавить эту статью RestartSelling=Вернитесь на продажу -SellFinished=Sale complete +SellFinished=Продажа завершена PrintTicket=Печать билетов NoProductFound=Ни одна статья найдены ProductFound=продукт найден @@ -37,17 +37,17 @@ PointOfSaleShort=POS CloseBill=Close Bill Floors=Floors Floor=Floor -AddTable=Add table +AddTable=Добавить таблицу Place=Place TakeposConnectorNecesary='TakePOS Connector' required OrderPrinters=Order printers -SearchProduct=Search product +SearchProduct=Поиск товара Receipt=Квитанция -Header=Header -Footer=Footer -AmountAtEndOfPeriod=Amount at end of period (day, month or year) -TheoricalAmount=Theorical amount -RealAmount=Real amount +Header=Заголовок +Footer=Нижний колонтитул +AmountAtEndOfPeriod=Сумма на конец периода (день, месяц или год) +TheoricalAmount=Теоретическая сумма +RealAmount=Действительная сумма CashFenceDone=Cash fence done for the period NbOfInvoices=Кол-во счетов-фактур Paymentnumpad=Type of Pad to enter payment @@ -61,11 +61,11 @@ NoPaimementModesDefined=No paiment mode defined in TakePOS configuration TicketVatGrouped=Group VAT by rate in tickets AutoPrintTickets=Automatically print tickets EnableBarOrRestaurantFeatures=Enable features for Bar or Restaurant -ConfirmDeletionOfThisPOSSale=Do your confirm the deletion of this current sale ? +ConfirmDeletionOfThisPOSSale=Подтверждаете ли вы удаление этой продажи? History=История -ValidateAndClose=Validate and close -Terminal=Terminal -NumberOfTerminals=Number of Terminals -TerminalSelect=Select terminal you want to use: +ValidateAndClose=Подтвердить и закрыть +Terminal=Терминал +NumberOfTerminals=Количество терминалов +TerminalSelect=Выберите терминал, который хотите использовать: POSTicket=POS Ticket BasicPhoneLayout=Use basic layout for phones diff --git a/htdocs/langs/ru_RU/categories.lang b/htdocs/langs/ru_RU/categories.lang index 0166ec07b6c..1b29f114966 100644 --- a/htdocs/langs/ru_RU/categories.lang +++ b/htdocs/langs/ru_RU/categories.lang @@ -1,23 +1,23 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Тег/Категория Rubriques=Теги/Категории -RubriquesTransactions=Tags/Categories of transactions +RubriquesTransactions=Теги/Категории транзакций categories=теги/категории NoCategoryYet=Нет созданных тегов/категорий данного типа In=В AddIn=Добавить в modify=изменить -Classify=Добавить +Classify=Классифицировать CategoriesArea=Раздел тегов/категорий ProductsCategoriesArea=Раздел тегов/категорий товаров/услуг -SuppliersCategoriesArea=Vendors tags/categories area +SuppliersCategoriesArea=Раздел тегов/категорий поставщиков CustomersCategoriesArea=Раздел тегов/категорий клиентов MembersCategoriesArea=Раздел тегов/категорий участников ContactsCategoriesArea=Раздел тегов/категорий контактов AccountsCategoriesArea=Accounts tags/categories area -ProjectsCategoriesArea=Projects tags/categories area -UsersCategoriesArea=Users tags/categories area -SubCats=Sub-categories +ProjectsCategoriesArea=Раздел тегов/категорий проектов +UsersCategoriesArea=Раздел тегов/категорий пользователей +SubCats=Подкатегории CatList=Список тегов/категорий NewCategory=Новый тег/категория ModifCat=Изменить тег/категорию @@ -27,64 +27,64 @@ CreateThisCat=Создать этот (эту) тег/категорию NoSubCat=Нет подкатегории. SubCatOf=Подкатегория FoundCats=Найденные теги/категории -ImpossibleAddCat=Impossible to add the tag/category %s +ImpossibleAddCat=Невозможно добавить тег/категорию %s WasAddedSuccessfully=%s успешно добавлена. ObjectAlreadyLinkedToCategory=Элемент уже связан с этим тегом/категорией -ProductIsInCategories=Product/service is linked to following tags/categories -CompanyIsInCustomersCategories=This third party is linked to following customers/prospects tags/categories -CompanyIsInSuppliersCategories=This third party is linked to following vendors tags/categories -MemberIsInCategories=This member is linked to following members tags/categories -ContactIsInCategories=This contact is linked to following contacts tags/categories +ProductIsInCategories=Продукт/услуга связаны со следующими тегами/категориями +CompanyIsInCustomersCategories=Данное третье лицо связано со следующими тегами/категориями клиентов/потенциальных клиентов +CompanyIsInSuppliersCategories=Данное третье лицо связано со следующими тегами/категориями поставщиков +MemberIsInCategories=Данный участник связан со следующими тегами/категориями участников +ContactIsInCategories=Этот контакт связан со следующими тэгами/категориями контактов ProductHasNoCategory=У этого продукта/услуги нет тегов/категорий -CompanyHasNoCategory=This third party is not in any tags/categories +CompanyHasNoCategory=У этой третьей стороны нет тэгов/категорий MemberHasNoCategory=У этого участника нет тегов/категорий ContactHasNoCategory=Это контакт не имеет тега или не принадлежит категории -ProjectHasNoCategory=This project is not in any tags/categories -ClassifyInCategory=Add to tag/category +ProjectHasNoCategory=У этого проекта нет тегов/категорий +ClassifyInCategory=Добавить в тег/категорию NotCategorized=Без тега/категории CategoryExistsAtSameLevel=Категория к таким кодом уже существует ContentsVisibleByAllShort=Содержимое доступно всем ContentsNotVisibleByAllShort=Содержание не доступно всем DeleteCategory=Удалить тег/категорию -ConfirmDeleteCategory=Are you sure you want to delete this tag/category? +ConfirmDeleteCategory=Вы уверены, что хотите удалить этот тег/категорию? NoCategoriesDefined=Не задан тег/категория -SuppliersCategoryShort=Vendors tag/category -CustomersCategoryShort=Customers tag/category -ProductsCategoryShort=Products tag/category -MembersCategoryShort=Members tag/category -SuppliersCategoriesShort=Vendors tags/categories +SuppliersCategoryShort=Тег/категория поставщиков +CustomersCategoryShort=Тег/категория клиентов +ProductsCategoryShort=Тег/категория продуктов +MembersCategoryShort=Тег/категория участников +SuppliersCategoriesShort=Теги/категории производителей CustomersCategoriesShort=Теги/категории клиентов -ProspectsCategoriesShort=Prospects tags/categories -CustomersProspectsCategoriesShort=Cust./Prosp. tags/categories +ProspectsCategoriesShort=Теги/категории проектов +CustomersProspectsCategoriesShort=Теги/категории Клиентов/Потенциальных клиентов ProductsCategoriesShort=Теги/категории товаров MembersCategoriesShort=Теги/категории участников ContactCategoriesShort=Теги/категории контактов AccountsCategoriesShort=Accounts tags/categories -ProjectsCategoriesShort=Projects tags/categories -UsersCategoriesShort=Users tags/categories +ProjectsCategoriesShort=Теги/категории Проектов +UsersCategoriesShort=Теги/категории пользователей ThisCategoryHasNoProduct=В этой категории нет товаров. -ThisCategoryHasNoSupplier=This category does not contain any vendor. +ThisCategoryHasNoSupplier=В этой категории нет ни одного поставщика. ThisCategoryHasNoCustomer=В этой категории нет покупателей. ThisCategoryHasNoMember=В этой категории нет участников. ThisCategoryHasNoContact=Эта категория не содержит ни одного контакта ThisCategoryHasNoAccount=This category does not contain any account. -ThisCategoryHasNoProject=This category does not contain any project. +ThisCategoryHasNoProject=В этой категории нет ни одного проекта CategId=ID тега/категории CatSupList=List of vendor tags/categories CatCusList=Список тегов/категорий клиента/потенциального клиента CatProdList=Список тегов/категорий товаров CatMemberList=Список тегов/категорий участников -CatContactList=List of contact tags/categories +CatContactList=Список тегов/категорий контактов CatSupLinks=Связи между поставщиками и тегами/категориями CatCusLinks=Связи между клиентами/потенц. клиентами и тегами/категориями CatProdLinks=Связи между продуктами/услугами и тегами/категориями -CatProJectLinks=Links between projects and tags/categories +CatProJectLinks=Связи между проектами и тегами/категориями DeleteFromCat=Удалить из тега/категории ExtraFieldsCategories=Дополнительные атрибуты CategoriesSetup=Настройка тегов/категорий CategorieRecursiv=Автоматическая ссылка на родительский тег/категорию -CategorieRecursivHelp=If option is on, when you add a product into a subcategory, product will also be added into the parent category. +CategorieRecursivHelp=Если опция включена, то при добавлении товара в подкатегорию товар также будет добавлен в родительскую категорию. AddProductServiceIntoCategory=Добавить следующий товар/услугу ShowCategory=Показать тег/категорию ByDefaultInList=By default in list -ChooseCategory=Choose category +ChooseCategory=Выберите категорию diff --git a/htdocs/langs/ru_RU/commercial.lang b/htdocs/langs/ru_RU/commercial.lang index 0016a1c5b31..aeaf2e67936 100644 --- a/htdocs/langs/ru_RU/commercial.lang +++ b/htdocs/langs/ru_RU/commercial.lang @@ -1,19 +1,19 @@ # Dolibarr language file - Source file is en_US - commercial -Commercial=Коммерция +Commercial=Управление запасами CommercialArea=Раздел коммерции Customer=Клиент Customers=Клиенты Prospect=Потенциальный клиент Prospects=Потенциальные клиенты -DeleteAction=Delete an event -NewAction=New event +DeleteAction=Удалить событие +NewAction=Новое событие AddAction=Создать событие -AddAnAction=Create an event +AddAnAction=Создать событие AddActionRendezVous=Создать назначенное событие -ConfirmDeleteAction=Are you sure you want to delete this event? +ConfirmDeleteAction=Вы уверены, что хотите удалить это событие? CardAction=Карточка события -ActionOnCompany=Related company -ActionOnContact=Related contact +ActionOnCompany=Связанная компания +ActionOnContact=Связанный контакт TaskRDVWith=Встреча с %s ShowTask=Показать задачу ShowAction=Показать действий @@ -52,17 +52,17 @@ ActionAC_TEL=Телефонный звонок ActionAC_FAX=Отправить факс ActionAC_PROP=Отправить предложение по Email ActionAC_EMAIL=Отправить электронное письмо -ActionAC_EMAIL_IN=Reception of Email +ActionAC_EMAIL_IN=Прием электронной почты ActionAC_RDV=Встречи ActionAC_INT=Вмешательство на сайте ActionAC_FAC=Отправить платежную ActionAC_REL=Отправить платежную (напоминание) ActionAC_CLO=Закрыть ActionAC_EMAILING=Отправить по электронной почте масса -ActionAC_COM=Отправить заказ по почте +ActionAC_COM=Отправить заказ на продажу по почте ActionAC_SHIP=Отправить доставку по почте -ActionAC_SUP_ORD=Send purchase order by mail -ActionAC_SUP_INV=Send vendor invoice by mail +ActionAC_SUP_ORD=Отправить заказ на покупку по почте +ActionAC_SUP_INV=Отправить счет поставщика по почте ActionAC_OTH=Другой ActionAC_OTH_AUTO=Мероприятия созданные автоматически ActionAC_MANUAL=Мероприятия, созданные вручную @@ -71,10 +71,10 @@ ActionAC_OTH_AUTOShort=Auto Stats=Статистика продаж StatusProsp=Проспект статус DraftPropals=Проект коммерческих предложений -NoLimit=No limit +NoLimit=Нет ограничений ToOfferALinkForOnlineSignature=Link for online signature WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s -ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal +ThisScreenAllowsYouToSignDocFrom=Этот экран позволяет вам принять и подписать или отклонить предложение или коммерческое предложение ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse SignatureProposalRef=Signature of quote/commercial proposal %s FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled diff --git a/htdocs/langs/ru_RU/companies.lang b/htdocs/langs/ru_RU/companies.lang index 2973b8cc419..75936a1639c 100644 --- a/htdocs/langs/ru_RU/companies.lang +++ b/htdocs/langs/ru_RU/companies.lang @@ -5,14 +5,14 @@ SelectThirdParty=Выберите контрагента ConfirmDeleteCompany=Вы хотите удалить компанию и всю связанную с ней информацию? DeleteContact=Удалить контакт ConfirmDeleteContact=Удалить этот контакт и всю связанную с ним информацию? -MenuNewThirdParty=New Third Party -MenuNewCustomer=New Customer -MenuNewProspect=New Prospect -MenuNewSupplier=New Vendor +MenuNewThirdParty=Новый контрагент +MenuNewCustomer=Новый Клиент +MenuNewProspect=Новый Потенциальный клиент +MenuNewSupplier=Новый Продавец MenuNewPrivateIndividual=Новое физическое лицо NewCompany=Новая компания (перспектива, клиент, поставщик) -NewThirdParty=New Third Party (prospect, customer, vendor) -CreateDolibarrThirdPartySupplier=Создайте стороннего поставщика (поставщика) +NewThirdParty=Новый контрагент (потенциальный клиент, клиент, поставщик) +CreateDolibarrThirdPartySupplier=Создать контрагента (поставщика) CreateThirdPartyOnly=Создать контрагента CreateThirdPartyAndContact=Создать контрагента и связанный контакт ProspectionArea=Область потенциальных клиентов @@ -20,28 +20,28 @@ IdThirdParty=Код контрагента IdCompany=Код компании IdContact=Код контакта Contacts=Контакты -ThirdPartyContacts=Third-party contacts -ThirdPartyContact=Third-party contact/address +ThirdPartyContacts=Контакты контрагента +ThirdPartyContact=Контакт/адрес контрагента Company=Компания CompanyName=Название компании AliasNames=Название псевдонима (коммерческий, торговая марка, ...) -AliasNameShort=Alias Name +AliasNameShort=Псевдоним Companies=Компании -CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language -ThirdPartyName=Third-party name -ThirdPartyEmail=Third-party email -ThirdParty=Third-party -ThirdParties=Third-parties +CountryIsInEEC=Страна внутри Европейского Экономического Сообщества +PriceFormatInCurrentLanguage=Формат отображения цены в текущем языке и валюте +ThirdPartyName=Имя контрагента +ThirdPartyEmail= E-mail контрагента +ThirdParty=Контрагент +ThirdParties=Контрагенты ThirdPartyProspects=Потенциальные клиенты ThirdPartyProspectsStats=Потенциальные клиенты ThirdPartyCustomers=Покупатели ThirdPartyCustomersStats=Заказчики ThirdPartyCustomersWithIdProf12=Покупатели с %s или %s ThirdPartySuppliers=Вендоры -ThirdPartyType=Third-party type +ThirdPartyType=Тип контрагента Individual=Физическое лицо -ToCreateContactWithSameName=Will automatically create a contact/address with same information as the third party under the third party. In most cases, even if your third party is a physical person, creating a third party alone is enough. +ToCreateContactWithSameName=Будет автоматически создан контакт/адрес с той информацией которая связывает контрагента с контрагентом. В большинстве случаев, даже если контрагент является физическим лицом, достаточно создать одного контрагента. ParentCompany=Материнская компания Subsidiaries=Филиалы ReportByMonth=Отчет за месяц @@ -53,7 +53,7 @@ Lastname=Фамилия Firstname=Имя PostOrFunction=Должность UserTitle=Название -NatureOfThirdParty=Природа третьей стороны +NatureOfThirdParty=Свойство контрагента Address=Адрес State=Штат/Провинция StateShort=Штат @@ -70,19 +70,19 @@ Chat=Чат PhonePro=Раб. телефон PhonePerso=Личн. телефон PhoneMobile=Мобильный -No_Email=Refuse bulk emailings +No_Email=Отказаться от массовых рассылок Fax=Факс Zip=Почтовый индекс Town=Город Web=Web Poste= Должность -DefaultLang=Language default -VATIsUsed=Sales tax used -VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers +DefaultLang=Язык по умолчанию +VATIsUsed=Используется налог с продаж +VATIsUsedWhenSelling=Это определяет, включает ли этот контрагент налог с продаж или нет, когда выставляет счет своим клиентам VATIsNotUsed=Налог с продаж не используется -CopyAddressFromSoc=Copy address from third-party details -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor vendor, discounts are not available +CopyAddressFromSoc=Копировать адрес из данных контрагента +ThirdpartyNotCustomerNotSupplierSoNoRef=Контрагент не является ни клиентом, ни поставщиком, нет справочных объектов +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Контрагент не является ни клиентом, ни поставщиком, скидки не предоставляются PaymentBankAccount=Банковские реквизиты OverAllProposals=Предложения OverAllOrders=Заказы @@ -257,8 +257,8 @@ ProfId1DZ=RC ProfId2DZ=Art. ProfId3DZ=NIF ProfId4DZ=NIS -VATIntra=VAT ID -VATIntraShort=VAT ID +VATIntra=Код плательщика НДС +VATIntraShort=Код плательщика НДС VATIntraSyntaxIsValid=Синтаксис корректен VATReturn=Возврат НДС ProspectCustomer=Потенц. клиент / Покупатель @@ -271,22 +271,23 @@ CustomerRelativeDiscountShort=Относительная скидка CustomerAbsoluteDiscountShort=Абсолютная скидка CompanyHasRelativeDiscount=Этот покупатель имеет скидку по умолчанию %s%% CompanyHasNoRelativeDiscount=Этот клиент не имеет относительной скидки по умолчанию -HasRelativeDiscountFromSupplier=You have a default discount of %s%% from this vendor -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this vendor -CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for %s %s -CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for %s %s +HasRelativeDiscountFromSupplier=У вас есть скидка по умолчанию %s%% от этого поставщика +HasNoRelativeDiscountFromSupplier=У вас нет скидки по умолчанию от этого поставщика +CompanyHasAbsoluteDiscount=У этого клиента есть скидки (кредиты или авансовые платежи) на %s %s +CompanyHasDownPaymentOrCommercialDiscount=У этого клиента есть скидки (коммерческая, авансовые платежи) на %s %s CompanyHasCreditNote=Этот клиент все еще имеет кредитный лимит или авансовый платеж за %s %s -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this vendor -HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for %s %s from this vendor -HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for %s %s from this vendor -HasCreditNoteFromSupplier=You have credit notes for %s %s from this vendor +HasNoAbsoluteDiscountFromSupplier=У вас нет скидки на кредит от этого поставщика +HasAbsoluteDiscountFromSupplier=У вас есть скидки (кредиты или авансовые платежи) на %s %s от этого поставщика +HasDownPaymentOrCommercialDiscountFromSupplier=У вас есть скидки (коммерческие, авансовые платежи) на %s %s от этого поставщика +HasCreditNoteFromSupplier=У вас есть кредиты на %s %s от этого поставщика CompanyHasNoAbsoluteDiscount=Этот клиент не имеет дисконтный кредит CustomerAbsoluteDiscountAllUsers=Абсолютные скидки клиентов (предоставляются всеми пользователями) CustomerAbsoluteDiscountMy=Абсолютные скидки клиентов (предоставляются сами) SupplierAbsoluteDiscountAllUsers=Абсолютные скидки продавца (введенные всеми пользователями) SupplierAbsoluteDiscountMy=Абсолютные скидки продавца (введены самим) DiscountNone=Нет -Vendor=Vendor +Vendor=Поставщик +Supplier=Поставщик AddContact=Создать контакт AddContactAddress=Создать контакт/адрес EditContact=Изменить контакт / адреса @@ -302,22 +303,22 @@ AddThirdParty=Создать контрагента DeleteACompany=Удалить компанию PersonalInformations=Личные данные AccountancyCode=Бухгалтерский счёт -CustomerCode=Customer Code -SupplierCode=Vendor Code -CustomerCodeShort=Customer Code -SupplierCodeShort=Vendor Code -CustomerCodeDesc=Customer Code, unique for all customers -SupplierCodeDesc=Vendor Code, unique for all vendors +CustomerCode=Код Клиента +SupplierCode=Код Поставщика +CustomerCodeShort=Код клиента +SupplierCodeShort=Код Поставщика +CustomerCodeDesc=Код Клиента, уникальный для каждого клиента +SupplierCodeDesc=Код Поставщика, уникальный для каждого поставщика RequiredIfCustomer=Требуется, если контрагент является покупателем или потенциальным клиентом -RequiredIfSupplier=Требуется, если сторонняя сторона является поставщиком -ValidityControledByModule=Validity controlled by module -ThisIsModuleRules=Rules for this module +RequiredIfSupplier=Требуется, если контрагент является поставщиком +ValidityControledByModule=Актуальность контролируется модулем +ThisIsModuleRules=Правила для этого модуля ProspectToContact=Потенциальный клиент для связи CompanyDeleted=Компания " %s" удалена из базы данных. ListOfContacts=Список контактов/адресов ListOfContactsAddresses=Список контактов/адресов -ListOfThirdParties=List of Third Parties -ShowCompany=Show Third Party +ListOfThirdParties=Список контрагентов +ShowCompany=Показать контрагента ShowContact=Показать контакт ContactsAllShort=Все (без фильтра) ContactType=Вид контакт @@ -332,21 +333,21 @@ NoContactForAnyProposal=Этот контакт не является конта NoContactForAnyContract=Этот контакт не является контактом договора NoContactForAnyInvoice=Этот контакт не является контактом счета-фактуры NewContact=Новый контакт/адрес -NewContactAddress=New Contact/Address +NewContactAddress=Новый контакт/адрес MyContacts=Мои контакты Capital=Капитал CapitalOf=Столица %s EditCompany=Изменить компанию ThisUserIsNot=Этот пользователь не является перспективой, клиентом и поставщиком VATIntraCheck=Проверить -VATIntraCheckDesc=The VAT ID must include the country prefix. The link %s uses the European VAT checker service (VIES) which requires internet access from the Dolibarr server. +VATIntraCheckDesc=Идентификатор НДС должен включать префикс страны. Ссылка %s использует европейскую службу проверки НДС (VIES), для которой требуется доступ в Интернет с сервера Dolibarr. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do -VATIntraCheckableOnEUSite=Check the intra-Community VAT ID on the European Commission website -VATIntraManualCheck=You can also check manually on the European Commission website %s +VATIntraCheckableOnEUSite=Проверьте идентификатора НДС на веб-сайте Европейской комиссии +VATIntraManualCheck=Вы также можете проверить его вручную на сайте Европейской Комиссии %s ErrorVATCheckMS_UNAVAILABLE=Проверка невозможна. Сервис проверки не предоставляется государством-членом ЕС (%s). -NorProspectNorCustomer=Not prospect, nor customer -JuridicalStatus=Legal Entity Type -Staff=Employees +NorProspectNorCustomer=Не потенциальный клиент, не клиент +JuridicalStatus=Тип юридического лица +Staff=Сотрудники ProspectLevelShort=Потенциальный ProspectLevel=Потенциальный клиент ContactPrivate=Личный @@ -367,7 +368,7 @@ TE_MEDIUM=Средняя компания TE_ADMIN=Гос. орган TE_SMALL=Малая компания TE_RETAIL=Розничная торговля -TE_WHOLE=Wholesaler +TE_WHOLE=Оптовик TE_PRIVATE=Физическое лицо TE_OTHER=Другое StatusProspect-1=Не контактировать @@ -386,14 +387,14 @@ ExportCardToFormat=Экспорт карточки в формате ContactNotLinkedToCompany=Контакт не связан с каким-либо контрагентом DolibarrLogin=Имя пользователя Dolibarr NoDolibarrAccess=Нет доступа к Dolibarr -ExportDataset_company_1=Third-parties (companies/foundations/physical people) and their properties -ExportDataset_company_2=Contacts and their properties -ImportDataset_company_1=Third-parties and their properties -ImportDataset_company_2=Third-parties additional contacts/addresses and attributes -ImportDataset_company_3=Third-parties Bank accounts -ImportDataset_company_4=Third-parties Sales representatives (assign sales representatives/users to companies) -PriceLevel=Price Level -PriceLevelLabels=Price Level Labels +ExportDataset_company_1=Контрагенты (компании/фонды/ физические лица) и их свойства +ExportDataset_company_2=Контакты и их свойства +ImportDataset_company_1=Контрагенты и их свойства +ImportDataset_company_2=Дополнительные контакты/адреса и атрибуты контрагентов +ImportDataset_company_3=Банковские счета контрагентов +ImportDataset_company_4=Торговые представители контрагентов (назначить торговых представителей/пользователей для компаний) +PriceLevel=Уровень цены +PriceLevelLabels=Метки уровня цены DeliveryAddress=Адрес доставки AddAddress=Добавить адрес SupplierCategory=Категория поставщика @@ -402,16 +403,16 @@ DeleteFile=Удалить файл ConfirmDeleteFile=Вы уверены, что хотите удалить этот файл? AllocateCommercial=Назначить торгового представителя Organization=Организация -FiscalYearInformation=Fiscal Year +FiscalYearInformation=Финансовый год FiscalMonthStart=Первый месяц финансового года -YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification. +YouMustAssignUserMailFirst=Вы должны создать адрес электронной почты для этого пользователя, прежде чем сможете добавить уведомление по электронной почте. YouMustCreateContactFirst=Для добавления электронных уведомлений вы должны сначала указать действующий email контрагента -ListSuppliersShort=List of Vendors -ListProspectsShort=List of Prospects -ListCustomersShort=List of Customers -ThirdPartiesArea=Third Parties/Contacts -LastModifiedThirdParties=Last %s modified Third Parties -UniqueThirdParties=Total of Third Parties +ListSuppliersShort=Список Поставщиков +ListProspectsShort=Список Потенциальных клиентов +ListCustomersShort=Список Клиентов +ThirdPartiesArea=Контрагенты/Контакты +LastModifiedThirdParties=Последнее %s изменение контрагентов +UniqueThirdParties=Всего контрагентов InActivity=Открытые ActivityCeased=Закрыто ThirdPartyIsClosed=Закрывшиеся контрагенты @@ -420,22 +421,22 @@ CurrentOutstandingBill=Валюта неуплаченного счёта OutstandingBill=Максимальный неуплаченный счёт OutstandingBillReached=Достигнут максимум не оплаченных счетов OrderMinAmount=Минимальная сумма заказа -MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0. +MonkeyNumRefModelDesc=Возвращает число в формате %syymm-nnnn для кода клиента и %syymm-nnnn для кода поставщика, где yy - год, mm - месяц, а nnnn - последовательность без разрыва и без сброса. LeopardNumRefModelDesc=Код покупателю/поставщику не присваивается. Он может быть изменен в любое время. ManagingDirectors=Имя управляющего или управляющих (Коммерческого директора, директора, президента...) MergeOriginThirdparty=Копия контрагента (контрагент которого вы хотите удалить) MergeThirdparties=Объединить контрагентов -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted. +ConfirmMergeThirdparties=Вы уверены, что хотите объединить этого контрагента с текущим? Все связанные объекты (счета, заказы, ...) будут перемещены в текущего контрагента, а этот контрагент будет удален. ThirdpartiesMergeSuccess=Третьи стороны были объединены SaleRepresentativeLogin=Логин торгового представителя SaleRepresentativeFirstname=Имя торгового представителя SaleRepresentativeLastname=Фамилия торгового представителя ErrorThirdpartiesMerge=При удалении третьих сторон произошла ошибка. Проверьте журнал. Изменения были отменены. -NewCustomerSupplierCodeProposed=Customer or Vendor code already used, a new code is suggested +NewCustomerSupplierCodeProposed=Код Клиента или Поставщика уже используется, предлагается новый код #Imports -PaymentTypeCustomer=Payment Type - Customer -PaymentTermsCustomer=Payment Terms - Customer -PaymentTypeSupplier=Payment Type - Vendor -PaymentTermsSupplier=Payment Term - Vendor -MulticurrencyUsed=Use Multicurrency +PaymentTypeCustomer=Тип оплаты - Клиент +PaymentTermsCustomer=Условия оплаты - Клиент +PaymentTypeSupplier=Тип оплаты - Поставщик +PaymentTermsSupplier=Условия оплаты - Поставщик +MulticurrencyUsed=Использовать Мультивалютность MulticurrencyCurrency=Валюта diff --git a/htdocs/langs/ru_RU/compta.lang b/htdocs/langs/ru_RU/compta.lang index 8c7cd9b904e..bb264b10e93 100644 --- a/htdocs/langs/ru_RU/compta.lang +++ b/htdocs/langs/ru_RU/compta.lang @@ -25,7 +25,7 @@ PaymentsNotLinkedToInvoice=Платежи, не связанные с какой PaymentsNotLinkedToUser=Платежи, не связанные с какой-либо пользователь Profit=Прибыль AccountingResult=Accounting result -BalanceBefore=Balance (before) +BalanceBefore=Баланс (до) Balance=Баланс Debit=Дебет Credit=Кредит @@ -232,7 +232,7 @@ ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. ConfirmCloneTax=Confirm the clone of a social/fiscal tax CloneTaxForNextMonth=Клонировать для следующего месяца -SimpleReport=Simple report +SimpleReport=Простой отчет AddExtraReport=Extra reports (add foreign and national customer report) OtherCountriesCustomersReport=Foreign customers report BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code diff --git a/htdocs/langs/ru_RU/contracts.lang b/htdocs/langs/ru_RU/contracts.lang index 0801db8362a..ae376c0ebc6 100644 --- a/htdocs/langs/ru_RU/contracts.lang +++ b/htdocs/langs/ru_RU/contracts.lang @@ -64,7 +64,8 @@ DateStartRealShort=Реальная дата начала DateEndReal=Реальная дата окончания DateEndRealShort=Реальная дата окончания CloseService=Закрыть услугу -BoardRunningServices=Истекшие запущенные услуги +BoardRunningServices=Services running +BoardExpiredServices=Просроченные услуги ServiceStatus=Статус услуги DraftContracts=Проекты договоров CloseRefusedBecauseOneServiceActive=Contract can't be closed as there is at least one open service on it @@ -86,9 +87,9 @@ StandardContractsTemplate=Стандартный шаблон контракта ContactNameAndSignature=Для %s, имя и подпись OnlyLinesWithTypeServiceAreUsed=Только строки с типом "Услуга" могут быть клонированы. ConfirmCloneContract=Are you sure you want to clone the contract %s? -LowerDateEndPlannedShort=Lower planned end date of active services +LowerDateEndPlannedShort=Нижняя запланированная дата завершения активных услуг SendContractRef=Contract information __REF__ -OtherContracts=Other contracts +OtherContracts=Другие контракты ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Торговый представитель подписания контракта TypeContact_contrat_internal_SALESREPFOLL=Торговый представитель последующего договора diff --git a/htdocs/langs/ru_RU/cron.lang b/htdocs/langs/ru_RU/cron.lang index b61a771f133..c21b1597510 100644 --- a/htdocs/langs/ru_RU/cron.lang +++ b/htdocs/langs/ru_RU/cron.lang @@ -6,26 +6,26 @@ Permission23102 = Создать/обновить Запланированную Permission23103 = Удалить Запланированную задачу Permission23104 = Выполнить запланированную задачу # Admin -CronSetup= Настройки запланированных заданий +CronSetup=Настройки запланированных заданий URLToLaunchCronJobs=URL to check and launch qualified cron jobs OrToLaunchASpecificJob=Или проверить и запустить специальную задачу KeyForCronAccess=Ключ безопасности для запуска запланированных заданий FileToLaunchCronJobs=Command line to check and launch qualified cron jobs CronExplainHowToRunUnix=В системах Unix-like вы должны задать crontab для выполнения команды каждые 5 минут. -CronExplainHowToRunWin=В Майкрософт Windows © вы должны использовать Планировщик для запуска команды каждые 5 минут. +CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes CronMethodDoesNotExists=Class %s does not contains any method %s CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s. CronJobProfiles=List of predefined cron job profiles # Menu -EnabledAndDisabled=Enabled and disabled +EnabledAndDisabled=Включено и отключено # Page list CronLastOutput=Latest run output CronLastResult=Latest result code CronCommand=Команда CronList=Запланированные задания CronDelete=Удалить запланированные задания -CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job +CronConfirmDelete=Вы уверены, что хотите удалить эти запланированные задания? +CronExecute=Запустить запланированное задание CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Задание @@ -42,8 +42,8 @@ CronModule=Модуль CronNoJobs=Нет зарегистрированных заданий CronPriority=Приоритет CronLabel=Наименование -CronNbRun=Кол-во запусков -CronMaxRun=Max number launch +CronNbRun=Number of launches +CronMaxRun=Maximum number of launches CronEach=Каждый JobFinished=Задание запущено и завершено #Page card @@ -61,11 +61,11 @@ CronStatusInactiveBtn=Выключать CronTaskInactive=Задание отключено CronId=ID CronClassFile=Filename with class -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is
product -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is
product/class/product.class.php -CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is
Product -CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is
fetch -CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
0, ProductRef +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is
product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For example to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is
product/class/product.class.php +CronObjectHelp=The object name to load.
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is
Product +CronMethodHelp=The object method to launch.
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is
fetch +CronArgsHelp=The method arguments.
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
0, ProductRef CronCommandHelp=Команда для выполнения CronCreateJob=Создать новое запланированное задание CronFrom=От @@ -79,5 +79,5 @@ CronCannotLoadObject=Class file %s was loaded, but object %s was not found into UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup -MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql' or 'pgsql'), 1, 'auto' or filename to build, number of backup files to keep +MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/ru_RU/dict.lang b/htdocs/langs/ru_RU/dict.lang index 3ef17a8324b..867b14f2fde 100644 --- a/htdocs/langs/ru_RU/dict.lang +++ b/htdocs/langs/ru_RU/dict.lang @@ -116,7 +116,7 @@ CountryHM=Остров Херд и Макдональд CountryVA=Папский Престол (Государство-город Ватикан) CountryHN=Гондурас CountryHK=Гонконг -CountryIS=Iceland +CountryIS=Исландия CountryIN=Индия CountryID=Индонезия CountryIR=Иран @@ -131,7 +131,7 @@ CountryKI=Кирибати CountryKP=Северная Корея CountryKR=Южная Корея CountryKW=Кувейт -CountryKG=Kyrgyzstan +CountryKG=Киргизия CountryLA=Лаосский CountryLV=Латвия CountryLB=Ливан @@ -139,7 +139,7 @@ CountryLS=Лесото CountryLR=Либерия CountryLY=Ливийская CountryLI=Лихтенштейн -CountryLT=Lithuania +CountryLT=Литва CountryLU=Люксембург CountryMO=Макао CountryMK=Македонии, бывшей югославской Республики @@ -290,10 +290,10 @@ CurrencyXOF=Франков КФА ЦБЗАГ CurrencySingXOF=Франк КФА ЦБЗАГ CurrencyXPF=CFP франков CurrencySingXPF=Франк КФП -CurrencyCentEUR=cents +CurrencyCentEUR=центы CurrencyCentSingEUR=цент -CurrencyCentINR=paisa -CurrencyCentSingINR=paise +CurrencyCentINR=пайсы +CurrencyCentSingINR=пайса CurrencyThousandthSingTND=тысячный #### Input reasons ##### DemandReasonTypeSRC_INTE=Интернет @@ -307,7 +307,7 @@ DemandReasonTypeSRC_WOM=Из уст в уста DemandReasonTypeSRC_PARTNER=Партнер DemandReasonTypeSRC_EMPLOYEE=Сотрудник DemandReasonTypeSRC_SPONSORING=Спонсорство -DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer +DemandReasonTypeSRC_SRC_CUSTOMER=Входящая связь с клиентом #### Paper formats #### PaperFormatEU4A0=Формат 4A0 PaperFormatEU2A0=Формат 2A0 diff --git a/htdocs/langs/ru_RU/donations.lang b/htdocs/langs/ru_RU/donations.lang index 002b3d1b7b7..108a50827bf 100644 --- a/htdocs/langs/ru_RU/donations.lang +++ b/htdocs/langs/ru_RU/donations.lang @@ -6,7 +6,7 @@ Donor=Донор AddDonation=Создать пожертование NewDonation=Новое пожертвование DeleteADonation=Удалить пожертование -ConfirmDeleteADonation=Are you sure you want to delete this donation? +ConfirmDeleteADonation=Вы уверены, что хотите удалить это пожертвование? ShowDonation=Показать пожертование PublicDonation=Общественное пожертвование DonationsArea=Пожертвования @@ -21,7 +21,7 @@ DonationDatePayment=Дата платежа ValidPromess=Подтвердить обещание DonationReceipt=Получатель пожертования DonationsModels=Модели документов для подтверждение получения пожертвования -LastModifiedDonations=Latest %s modified donations +LastModifiedDonations=Последние %sизмененные пожертвования DonationRecipient=Получатель пожертования IConfirmDonationReception=Получатель объявляет приём, как пожертвование, в следующем размере MinimumAmount=Минимальное пожертвование %s @@ -31,4 +31,4 @@ DONATION_ART200=Если вы обеспокоены, показывать вы DONATION_ART238=Если вы обеспокоены, показывать выдержку статьи 238 из CGI DONATION_ART885=Если вы обеспокоены, показывать выдержку статьи 885 из CGI DonationPayment=Платёж пожертвования -DonationValidated=Donation %s validated +DonationValidated= Пожертвование %s подтверждено diff --git a/htdocs/langs/ru_RU/ecm.lang b/htdocs/langs/ru_RU/ecm.lang index 75f3092ad49..2f3e3377b45 100644 --- a/htdocs/langs/ru_RU/ecm.lang +++ b/htdocs/langs/ru_RU/ecm.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=No. of documents in directory +ECMNbOfDocs=Количество документов в каталоге ECMSection=Директория ECMSectionManual=Директория в ручном режиме ECMSectionAuto=Директория в автоматическом режиме @@ -33,9 +33,9 @@ ECMDocsByProducts=Документы, связанные с продуктами ECMDocsByProjects=Документы, связанные с проектрами ECMDocsByUsers=Документы, связанные с пользователями ECMDocsByInterventions=Документы, связанные с меропрятиями -ECMDocsByExpenseReports=Documents linked to expense reports -ECMDocsByHolidays=Documents linked to holidays -ECMDocsBySupplierProposals=Documents linked to supplier proposals +ECMDocsByExpenseReports=Документы, связанные с отчетами о расходах +ECMDocsByHolidays=Документы, связанные с отпусками +ECMDocsBySupplierProposals=Documents linked to vendor proposals ECMNoDirectoryYet=Директория не создана ShowECMSection=Показать директорию DeleteSection=Удаление директории diff --git a/htdocs/langs/ru_RU/help.lang b/htdocs/langs/ru_RU/help.lang index e28a5f74611..6e0f564a311 100644 --- a/htdocs/langs/ru_RU/help.lang +++ b/htdocs/langs/ru_RU/help.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - help CommunitySupport=Поддержка через Форум/Wiki EMailSupport=Поддержка по email -RemoteControlSupport=Поддержка через Интернет в реальном времени/удаленно +RemoteControlSupport=Online real-time / remote support OtherSupport=Другие виды поддержки ToSeeListOfAvailableRessources=Связаться/Смотреть имеющиеся ресурсы: HelpCenter=Справочный центр diff --git a/htdocs/langs/ru_RU/holiday.lang b/htdocs/langs/ru_RU/holiday.lang index f9c08748017..0288ac3768f 100644 --- a/htdocs/langs/ru_RU/holiday.lang +++ b/htdocs/langs/ru_RU/holiday.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Отдел кадров -Holidays=Leave -CPTitreMenu=Leave +Holidays=Отпуск +CPTitreMenu=Отпуск MenuReportMonth=Ежемесячная выписка MenuAddCP=New leave request NotActiveModCP=You must enable the module Leave to view this page. diff --git a/htdocs/langs/ru_RU/hrm.lang b/htdocs/langs/ru_RU/hrm.lang index ead8b8c54d2..ba41b26f209 100644 --- a/htdocs/langs/ru_RU/hrm.lang +++ b/htdocs/langs/ru_RU/hrm.lang @@ -5,13 +5,13 @@ Establishments=Establishments Establishment=Establishment NewEstablishment=New establishment DeleteEstablishment=Delete establishment -ConfirmDeleteEstablishment=Are-you sure to delete this establishment? +ConfirmDeleteEstablishment=Are you sure you wish to delete this establishment? OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary DictionaryDepartment=HRM - Department list DictionaryFunction=HRM - Function list # Module -Employees=Employees +Employees=Сотрудники Employee=Сотрудник NewEmployee=New employee diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index 2358fc8d01d..16888bfd4c2 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -40,7 +40,7 @@ ErrorFileDoesNotExists=Файл %s не существует ErrorFailedToOpenFile=Не удалось открыть файл %s ErrorCanNotCreateDir=Не удалось создать папку %s ErrorCanNotReadDir=Не удалось прочитать папку %s -ErrorConstantNotDefined=Параметр s% не определен +ErrorConstantNotDefined=Параметр %s не определен ErrorUnknown=Неизвестная ошибка ErrorSQL=Ошибка SQL ErrorLogoFileNotFound=Файл логотипа '%s' не найден @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Не удалось отправить почту (отп ErrorFileNotUploaded=Файл не был загружен. Убедитесь, что его размер не превышает максимально допустимое значение, свободное место имеется на диске, и файл с таким же именем не существует в этом каталоге. ErrorInternalErrorDetected=Обнаружена ошибка ErrorWrongHostParameter=Неверный параметр хоста -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record. +ErrorYourCountryIsNotDefined=Ваша страна не определена. Перейдите Главная-Настройки-Редактировать и снова отправьте форму. +ErrorRecordIsUsedByChild=Не удалось удалить эту запись. Эта запись используется, по крайней мере, одной дочерней записью. ErrorWrongValue=Неправильное значение ErrorWrongValueForParameterX=Неправильное значение параметра %s ErrorNoRequestInError=В ошибке нет никаких запросов -ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later. +ErrorServiceUnavailableTryLater=Служба недоступна. Попробуйте позже. ErrorDuplicateField=Повторяющееся значение в уникальном поле -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back. -ErrorConfigParameterNotDefined=Parameter %s is not defined in the Dolibarr config file conf.php. +ErrorSomeErrorWereFoundRollbackIsDone=Были обнаружены некоторые ошибки. Изменения были отменены. +ErrorConfigParameterNotDefined=Параметр %s не определен в конфигурационном файле Dolibarr conf.php . ErrorCantLoadUserFromDolibarrDatabase=Не удалось найти пользователя %s в базе данных Dolibarr. ErrorNoVATRateDefinedForSellerCountry=Ошибка, ставки НДС не установлены для страны '%s'. ErrorNoSocialContributionForSellerCountry=Ошибка, не определен тип социальных/налоговых взносов для страны %s. ErrorFailedToSaveFile=Ошибка, не удалось сохранить файл. -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 +ErrorCannotAddThisParentWarehouse=Вы пытаетесь добавить родительский склад, который уже является дочерним по отношению к существующему складу +MaxNbOfRecordPerPage=Макс. количество записей на странице NotAuthorized=Вы не авторизованы чтобы сделать это. SetDate=Установить дату SelectDate=Выбрать дату @@ -78,15 +78,15 @@ FileRenamed=Файл успешно переименован FileGenerated=Файл успешно создан FileSaved=Файл сохранен FileUploaded=Файл успешно загружен -FileTransferComplete=File(s) uploaded successfully +FileTransferComplete=Файл(ы) успешно загружены FilesDeleted=Файл(ы) успешно удалены FileWasNotUploaded=Файл выбран как вложение, но пока не загружен. Для этого нажмите "Вложить файл". -NbOfEntries=No. of entries +NbOfEntries=Кол-во записей GoToWikiHelpPage=Читать интернет-справку (необходим доступ к Интернету) GoToHelpPage=Читать помощь RecordSaved=Запись сохранена RecordDeleted=Запись удалена -RecordGenerated=Record generated +RecordGenerated=Запись сгенерирована LevelOfFeature=Уровень возможностей NotDefined=Неопределено DolibarrInHttpAuthenticationSoPasswordUseless=Режим аутентификации Dolibarr установлен в %s в файле конфигурации conf.php.
Это означает, что Dolibarr хранит пароли во внешней базе, поэтому изменение этого поля может не помочь. @@ -96,13 +96,13 @@ PasswordForgotten=Забыли пароль? NoAccount=Нет аккаунта? SeeAbove=См. выше HomeArea=Главная -LastConnexion=Last login -PreviousConnexion=Previous login +LastConnexion=Последний вход +PreviousConnexion=Предыдущий вход PreviousValue=Предыдущее значение ConnectedOnMultiCompany=Подключено к объекту ConnectedSince=Подключено с AuthenticationMode=Режим аутентификации -RequestedUrl=Запрашиваемый Url +RequestedUrl=Запрашиваемый URL DatabaseTypeManager=Менеджер типов баз данных RequestLastAccessInError=Ошибка при последнем запросе доступа к базе данных ReturnCodeLastAccessInError=Код ошибки при последнем запросе доступа к базе данных @@ -119,7 +119,7 @@ PrecisionUnitIsLimitedToXDecimals=Dolibarr был настроен на огра DoTest=Проверка ToFilter=Фильтр NoFilter=Нет фильтра -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance time. +WarningYouHaveAtLeastOneTaskLate=Внимание, у вас есть хотя бы один элемент, который превысил допустимое время. yes=да Yes=Да no=нет @@ -153,9 +153,9 @@ RemoveLink=Удалить ссылку AddToDraft=Добавить к черновику Update=Обновить Close=Закрыть -CloseBox=Удалить виджет с главного экрана +CloseBox=Удалить виджет с Информ-панели Confirm=Подтвердить -ConfirmSendCardByMail=Do you really want to send the content of this card by mail to %s? +ConfirmSendCardByMail=Отправить содержимое этой карты по почте на %s ? Delete=Удалить Remove=Удалить Resiliate=Завершить @@ -170,7 +170,7 @@ Save=Сохранить SaveAs=Сохранить как TestConnection=Проверка подключения ToClone=Дублировать -ConfirmClone=Choose data you want to clone: +ConfirmClone=Выберите данные для клонирования: NoCloneOptionsSpecified=Данные для дублирования не определены. Of=из Go=Выполнить @@ -182,10 +182,10 @@ ShowCardHere=Показать карточку Search=Поиск SearchOf=Поиск Valid=Действительный -Approve=Одобрить +Approve=Утвердить Disapprove=Не утверждать ReOpen=Переоткрыть -Upload=Upload +Upload=Загрузить ToLink=Ссылка Select=Выбор Choose=Выберите @@ -200,9 +200,9 @@ Groups=Группы NoUserGroupDefined=Не задана группа для пользователя Password=Пароль PasswordRetype=Повторите ваш пароль -NoteSomeFeaturesAreDisabled=Обратите внимание, что многие возможности/модули отключены в этой демонстрации. +NoteSomeFeaturesAreDisabled=Обратите внимание, что многие функции/модули отключены в этой демонстрации. Name=Имя -NameSlashCompany=Name / Company +NameSlashCompany=Имя / Компания Person=Персона Parameter=Параметр Parameters=Параметры @@ -224,8 +224,8 @@ Family=Семья Description=Описание Designation=Описание DescriptionOfLine=Описание строки -DateOfLine=Date of line -DurationOfLine=Duration of line +DateOfLine=Дата строки +DurationOfLine=Продолжительность строки Model=Шаблон документа DefaultModel=Шаблон документа по-умолчанию Action=Действие @@ -237,7 +237,7 @@ Numero=Номер Limit=Лимит Limits=Лимиты Logout=Выход -NoLogoutProcessWithAuthMode=Нет возможности разрыва соединения с этим режимим аунтетификации %s +NoLogoutProcessWithAuthMode=Нет возможности разрыва соединения с этим режимом аунтетификации %s Connection=Логин Setup=Настройка Alert=Оповещение @@ -309,12 +309,12 @@ Yesterday=Вчера Tomorrow=Завтра Morning=Утро Afternoon=После полудня -Quadri=Квадри +Quadri=Квартал MonthOfDay=Месяц дня HourShort=ч MinuteShort=мин. Rate=Курс -CurrencyRate=Текущий уровень конверсии +CurrencyRate=Курс обмена валют UseLocalTax=Включить налог Bytes=Байт KiloBytes=Килобайт @@ -333,49 +333,49 @@ Copy=Копировать Paste=Вставить Default=По умолчанию DefaultValue=Значение по умолчанию -DefaultValues=Default values/filters/sorting +DefaultValues=Значения/фильтры/сортировка по умолчанию Price=Цена PriceCurrency=Цена (валюта) UnitPrice=Цена за единицу -UnitPriceHT=Unit price (excl.) -UnitPriceHTCurrency=Unit price (excl.) (currency) +UnitPriceHT=Цена за единицу (без учета налога) +UnitPriceHTCurrency=Цена за единицу (без налога) (валюта) UnitPriceTTC=Цена за единицу PriceU=Цена ед. PriceUHT=Цена ед. (нетто) -PriceUHTCurrency=цена (текущая) -PriceUTTC=Цена ед. (с тарой) +PriceUHTCurrency=Цена (валюта) +PriceUTTC=Цена ед. (с налогом) Amount=Сумма AmountInvoice=Сумма счета-фактуры AmountInvoiced=Сумма выставленного счета AmountPayment=Сумма платежа -AmountHTShort=Amount (excl.) +AmountHTShort=Сумма (без налога) AmountTTCShort=Сумма (вкл-я налог) -AmountHT=Amount (excl. tax) +AmountHT=Сумма (без налога) AmountTTC=Сумма (вкл-я налог) AmountVAT=Сумма НДС -MulticurrencyAlreadyPaid=Already paid, original currency +MulticurrencyAlreadyPaid=Уже оплачено, в исходной валюте MulticurrencyRemainderToPay=Осталось оплатить, в оригинальной валюте MulticurrencyPaymentAmount=Сумма платежа, в оригинальной валюте -MulticurrencyAmountHT=Amount (excl. tax), original currency -MulticurrencyAmountTTC=Сумма (брутто), в исходной валюте +MulticurrencyAmountHT=Сумма (без налога), исходная валюта +MulticurrencyAmountTTC=Сумма (с налогом), в исходной валюте MulticurrencyAmountVAT=Сумма налога, в исходной валюте AmountLT1=Сумма налога 2 AmountLT2=Сумма налога 3 AmountLT1ES=Сумма RE -AmountLT2ES=Сумма IRPF +AmountLT2ES=Сумма НДФЛ AmountTotal=Общая сумма AmountAverage=Средняя сумма -PriceQtyMinHT=Price quantity min. (excl. tax) -PriceQtyMinHTCurrency=Price quantity min. (excl. tax) (currency) +PriceQtyMinHT=Цена за мин. количество (без налога) +PriceQtyMinHTCurrency=Цена за мин. количество (без налога) (валюта) Percentage=Процент Total=Всего SubTotal=Подитог -TotalHTShort=Total (excl.) -TotalHT100Short=Total 100%% (excl.) -TotalHTShortCurrency=Total (excl. in currency) +TotalHTShort=Всего (без налога) +TotalHT100Short=Всего 100%% (без налога) +TotalHTShortCurrency=Всего (без налога в \nоригинальной валюте) TotalTTCShort=Всего (вкл-я налог) -TotalHT=Total (excl. tax) -TotalHTforthispage=Total (excl. tax) for this page +TotalHT=Всего (без налога) +TotalHTforthispage=Всего (без налога) для этой страницы Totalforthispage=Итого для этой страницы TotalTTC=Всего (вкл-я налог) TotalTTCToYourCredit=Всего (вкл-я налог) с Вашей кредитной @@ -387,9 +387,9 @@ TotalLT1ES=Всего RE TotalLT2ES=Всего IRPF TotalLT1IN=Всего CGST TotalLT2IN=Всего SGST -HT=Excl. tax +HT=Без налога TTC=Вкл-я налог -INCVATONLY=Inc. НДС +INCVATONLY=вкл. НДС INCT=включая все налоги VAT=НДС VATIN=IGST @@ -403,7 +403,7 @@ LT1ES=RE LT2ES=IRPF LT1IN=CGST LT2IN=SGST -LT1GC=Additionnal cents +LT1GC=Дополнительные центы VATRate=Ставка НДС VATCode=Код ставки налога VATNPR=Налоговая ставка NPR @@ -411,7 +411,7 @@ DefaultTaxRate=Ставка налога по умолчанию Average=Среднее Sum=Сумма Delta=Разница -RemainToPay=Оставаться в оплате +RemainToPay=Осталось заплатить Module=Модуль/Приложение Modules=Модули/Приложения Option=Опция @@ -424,7 +424,7 @@ Favorite=Избранное ShortInfo=Инфо Ref=Ссылка ExternalRef=Внешний источник -RefSupplier=Ссылка продавец +RefSupplier=Ссылка поставщика RefPayment=Ссылка на оплату CommercialProposalsShort=Коммерческие предложения Comment=Комментарий @@ -436,15 +436,15 @@ ActionNotApplicable=Не применяется ActionRunningNotStarted=Не начато ActionRunningShort=Выполняется ActionDoneShort=Завершено -ActionUncomplete=Incomplete +ActionUncomplete=Не завершено LatestLinkedEvents=Последние связанные события %s -CompanyFoundation=Компания / организация +CompanyFoundation=Компания/Организация Accountant=Бухгалтер -ContactsForCompany=Контакты для этого контрагента контрагента +ContactsForCompany=Контакты для этого контрагента ContactsAddressesForCompany=Контакты/Адреса для этого контрагента AddressesForCompany=Адреса для этого контарагента -ActionsOnCompany=Events for this third party -ActionsOnContact=Events for this contact/address +ActionsOnCompany=События для этого контрагента +ActionsOnContact=Событие для этого контакта/адреса ActionsOnMember=События этого участника ActionsOnProduct=События об этом продукте NActionsLate=% с опозданием @@ -462,8 +462,8 @@ Generate=Создать Duration=Продолжительность TotalDuration=Общая продолжительность Summary=Общее -DolibarrStateBoard=Database Statistics -DolibarrWorkBoard=Open Items +DolibarrStateBoard=Статистика базы данных +DolibarrWorkBoard=Открытые позиции NoOpenedElementToProcess=Нет открытого элемента для обработки Available=Доступно NotYetAvailable=Пока не доступно @@ -477,7 +477,7 @@ and=и or=или Other=Другой Others=Другие -OtherInformations=Other information +OtherInformations=Дополнительная информация Quantity=Количество Qty=Кол-во ChangedBy=Изменен @@ -491,11 +491,11 @@ Reporting=Отчет Reportings=Отчеты Draft=Черновик Drafts=Черновики -StatusInterInvoiced=Invoiced +StatusInterInvoiced=Выставлен счет Validated=Подтверждено Opened=Открытые -OpenAll=Open (All) -ClosedAll=Closed (All) +OpenAll=Открыто (Все) +ClosedAll=Закрыто (все) New=Новый Discount=Скидка Unknown=Неизвестно @@ -505,7 +505,7 @@ OriginalSize=Оригинальный размер Received=Получено Paid=Оплачено Topic=Тема -ByCompanies=По компаниям +ByCompanies=По контрагентам ByUsers=Пользователь Links=Ссылки Link=Ссылка @@ -517,7 +517,7 @@ None=Никакой NoneF=Никакой NoneOrSeveral=Нет или несколько Late=Поздно -LateDesc=An item is defined as Delayed as per the system configuration in menu Home - Setup - Alerts. +LateDesc=Элемент определяется как «Задержанный» согласно конфигурации системы в меню «Домой» - «Настройка» - «Оповещения». NoItemLate=Нет позднего пункта Photo=Изображение Photos=Изображения @@ -565,29 +565,29 @@ MonthShort09=сен MonthShort10=окт MonthShort11=ноя MonthShort12=дек -MonthVeryShort01=J -MonthVeryShort02=Пт -MonthVeryShort03=Пн +MonthVeryShort01=Я +MonthVeryShort02=Ф +MonthVeryShort03=М MonthVeryShort04=A -MonthVeryShort05=Пн -MonthVeryShort06=J -MonthVeryShort07=J +MonthVeryShort05=М +MonthVeryShort06=И +MonthVeryShort07=И MonthVeryShort08=A -MonthVeryShort09=Вс +MonthVeryShort09=С MonthVeryShort10=O -MonthVeryShort11=N -MonthVeryShort12=D +MonthVeryShort11=Н +MonthVeryShort12=Д AttachedFiles=Присоединенные файлы и документы JoinMainDoc=Присоединить основной документ DateFormatYYYYMM=ГГГГ-ММ DateFormatYYYYMMDD=ГГГГ-ММ-ДД DateFormatYYYYMMDDHHMM=ГГГГ-ММ-ДД ЧЧ:СС ReportName=Имя отчета -ReportPeriod=Отчетный период +ReportPeriod=Период отчета ReportDescription=Описание Report=Отчет Keyword=Ключевое слово -Origin=Оригинальный +Origin=Происхождение Legend=Легенда Fill=Заполнить Reset=Сбросить @@ -595,7 +595,7 @@ File=Файл Files=Файлы NotAllowed=Недопустимо ReadPermissionNotAllowed=Разрешение на чтение не предоставлено -AmountInCurrency=Сумма в валюте %s +AmountInCurrency=Сумма в %s валюте Example=Пример Examples=Примеры NoExample=Нет примеров @@ -637,15 +637,15 @@ FeatureNotYetSupported=Функция не поддерживается CloseWindow=Закрыть окно Response=Ответ Priority=Приоритет -SendByMail=Send by email +SendByMail=Послать по электронной почте MailSentBy=Email отправлен TextUsedInTheMessageBody=Текст Email SendAcknowledgementByMail=Отправить подтверждение на электронную почту SendMail=Отправить письмо Email=Адрес электронной почты NoEMail=Нет Email -AlreadyRead=Already read -NotRead=Not read +AlreadyRead=Прочитано +NotRead=Не прочитано NoMobilePhone=Нет мобильного телефона Owner=Владелец FollowingConstantsWillBeSubstituted=Следующие константы будут подменять соответствующие значения. @@ -658,9 +658,9 @@ ValueIsValid=Значение корректено ValueIsNotValid=Значение не действительно RecordCreatedSuccessfully=Запись успешно создана RecordModifiedSuccessfully=Запись успешно изменена -RecordsModified=%s record(s) modified -RecordsDeleted=%s record(s) deleted -RecordsGenerated=%s record(s) generated +RecordsModified=%s запись(ей) изменено +RecordsDeleted=%s запись(ей) удалено +RecordsGenerated=%s запись(ей) создано AutomaticCode=Автоматический код FeatureDisabled=Функция отключена MoveBox=Переместить виджет @@ -673,11 +673,11 @@ CompleteOrNoMoreReceptionExpected=Завершено или ничего бол ExpectedValue=Ожидаемое значение PartialWoman=Частичное TotalWoman=Всего -NeverReceived=Никогда не получено +NeverReceived=Не было получено Canceled=Отменено YouCanChangeValuesForThisListFromDictionarySetup=Можно изменить содержание этого списка в Главная - Настройка - Словари YouCanChangeValuesForThisListFrom=Можно изменить значения этого списка из меню %s -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup +YouCanSetDefaultValueInModuleSetup=Вы можете установить значение по умолчанию, используемое при создании новой записи в настройках модуля Color=Цвет Documents=Связанные файлы Documents2=Документы @@ -685,7 +685,7 @@ UploadDisabled=Загрузка отключена MenuAccountancy=Бухгалтерия MenuECM=Документы MenuAWStats=AWStats -MenuMembers=Члены +MenuMembers=Участники MenuAgendaGoogle=Google agenda ThisLimitIsDefinedInSetup=Лимит Dolibarr (Меню Главная-Настройки-Безопасность): %s Кб, лимит PHP: %s Кб NoFileFound=Нет документов, сохраненных в этом каталоге @@ -709,23 +709,23 @@ Notes=Примечания AddNewLine=Добавить новую строку AddFile=Добавить файл FreeZone=Не предопределенный продукт/услуга -FreeLineOfType=Free-text item, type: +FreeLineOfType=Элемент произвольного текста, набрать: CloneMainAttributes=Клонирование объекта с его основными атрибутами -ReGeneratePDF=Re-generate PDF +ReGeneratePDF=Повторно сгенерировать PDF PDFMerge=Слияние PDF Merge=Слияние DocumentModelStandardPDF=Стандартные PDF-шаблоны PrintContentArea=Показать страницу для печати области основного содержимого MenuManager=Менеджер меню -WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode: only login %s is allowed to use the application in this mode. +WarningYouAreInMaintenanceMode=Внимание, вы находитесь в режиме обслуживания: только пользователь %s может использовать приложение в этом режиме. CoreErrorTitle=Системная ошибка CoreErrorMessage=Извините, произошла ошибка. Для получения большей информации свяжитесь с системным администратором для проверки технических событий или отключения $dolibarr_main_prod=1. CreditCard=Кредитная карта ValidatePayment=Подтвердть платёж CreditOrDebitCard=Кредитная или дебетовая карта FieldsWithAreMandatory=Поля с %s являются обязательными -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) +FieldsWithIsForPublic=Поля с %s отображаются в общедоступном списке участников. Если вы не хотите этого, снимите флажок «публичный». +AccordingToGeoIPDatabase=(согласно преобразования GeoIP) Line=Строка NotSupported=Не поддерживается RequiredField=Обязательное поле @@ -733,8 +733,8 @@ Result=Результат ToTest=Тест ValidateBefore=Карточка должна быть проверена, прежде чем использовать эту функцию Visibility=Видимость -Totalizable=Totalizable -TotalizableDesc=This field is totalizable in list +Totalizable=Суммирование +TotalizableDesc=Это поле суммируемо в списке Private=Частный Hidden=Скрытый Resources=Ресурсы @@ -748,43 +748,43 @@ IM=Мгновенный обмен сообщениями NewAttribute=Новый атрибут AttributeCode=Код атрибута URLPhoto=Адрес фотографии/логотипа -SetLinkToAnotherThirdParty=Ссылка на другой третьей стороне +SetLinkToAnotherThirdParty=Ссылка на другого контрагента LinkTo=Ссылка к LinkToProposal=Ссылка для предложения LinkToOrder=Ссылка для заказа LinkToInvoice=Ссылка для счета -LinkToTemplateInvoice=Link to template invoice -LinkToSupplierOrder=Link to purchase order -LinkToSupplierProposal=Link to vendor proposal -LinkToSupplierInvoice=Link to vendor invoice +LinkToTemplateInvoice=Ссылка на шаблон счета +LinkToSupplierOrder=Ссылка на заказ на покупку +LinkToSupplierProposal=Ссылка на предложение поставщика +LinkToSupplierInvoice=Ссылка на счет поставщика LinkToContract=Ссылка на контакт LinkToIntervention=Ссылка на мероприятие -CreateDraft=Создать проект +CreateDraft=Создать черновик SetToDraft=Назад к черновику ClickToEdit=Нажмите, чтобы изменить -ClickToRefresh=Click to refresh +ClickToRefresh=Нажмите для обновления EditWithEditor=Изменить с помощью CKEditor EditWithTextEditor=Редактировать с помощью текстового редактора EditHTMLSource=Редактировать HTML-источник -ObjectDeleted=Объект удален %s +ObjectDeleted=Объект %s удален ByCountry=По стране -ByTown=В городе +ByTown=по городу ByDate=По дате -ByMonthYear=В месяц / год +ByMonthYear=по месяцу/году ByYear=По годам ByMonth=по месяцам -ByDay=Днем -BySalesRepresentative=По торговым представителем +ByDay=по дням +BySalesRepresentative=По торговым представителям LinkedToSpecificUsers=Связан с особым контактом пользователя NoResults=Нет результатов -AdminTools=Admin Tools +AdminTools=Инструменты администратора SystemTools=Системные инструменты ModulesSystemTools=Настройки модулей Test=Тест Element=Элемент -NoPhotoYet=Пока недо доступных изображений -Dashboard=Начальная страница -MyDashboard=My Dashboard +NoPhotoYet=Пока нет доступных изображений +Dashboard=Информ-панель +MyDashboard=Моя Информ-панель Deductible=Подлежащий вычету from=от toward=к @@ -807,7 +807,7 @@ PrintFile=Печать файл %s ShowTransaction=Показать транзакцию на банковском счете ShowIntervention=Показать посредничества ShowContract=Показать договор -GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide. +GoIntoSetupToChangeLogo=Перейдите в раздел «Главная» - «Настройка» - «Компания», чтобы изменить логотип, или выберите «Главная» - «Настройка» - «Внешний вид», чтобы скрыть. Deny=Запретить Denied=Запрещено ListOf=Список %s @@ -820,77 +820,77 @@ Mandatory=Обязательно Hello=Здравствуйте GoodBye=До свидания Sincerely=С уважением, -DeleteLine=Удалить строки +DeleteLine=Удалить строку ConfirmDeleteLine=Вы точно хотите удалить эту строку? NoPDFAvailableForDocGenAmongChecked=PDF не доступен для документов созданных из выбранных записей -TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records. +TooManyRecordForMassAction=Слишком много записей выбрано для пакетного действия. Действие ограничено списком из %s записей. NoRecordSelected=Нет выделенных записей -MassFilesArea=Пространство для массовых действий с файлами -ShowTempMassFilesArea=Показать область для массовых действий с файлами -ConfirmMassDeletion=Bulk Delete confirmation -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record(s)? +MassFilesArea=Пространство для пакетных действий с файлами +ShowTempMassFilesArea=Показать область для пакетных действий с файлами +ConfirmMassDeletion=Подтверждение пакетного удаления +ConfirmMassDeletionQuestion=Вы уверены, что хотите удалить %s выбранных записей? RelatedObjects=Связанные объекты -ClassifyBilled=Классифицировать счета -ClassifyUnbilled=Классифицировать невыполненные +ClassifyBilled=Классифицировать выставленные счета +ClassifyUnbilled=Классифицировать невыполненные счета Progress=Прогресс -ProgressShort=Progr. +ProgressShort=Прогресс FrontOffice=Дирекция BackOffice=Бэк-офис View=Вид Export=Экспорт Exports=Экспорт -ExportFilteredList=Экспорт списка фильтров +ExportFilteredList=Экспорт отфильтрованного списка ExportList=Экспорт списка ExportOptions=Настройки экспорта -IncludeDocsAlreadyExported=Include docs already exported -ExportOfPiecesAlreadyExportedIsEnable=Export of pieces already exported is enable -ExportOfPiecesAlreadyExportedIsDisable=Export of pieces already exported is disable -AllExportedMovementsWereRecordedAsExported=All exported movements were recorded as exported -NotAllExportedMovementsCouldBeRecordedAsExported=Not all exported movements could be recorded as exported +IncludeDocsAlreadyExported=Включенные документы уже экспортированы +ExportOfPiecesAlreadyExportedIsEnable=Экспорт уже экспортированных частей включен +ExportOfPiecesAlreadyExportedIsDisable=Экспорт уже экспортированных частей отключен +AllExportedMovementsWereRecordedAsExported=Все экспортированные движения были зарегистрированы как экспортировано +NotAllExportedMovementsCouldBeRecordedAsExported=Не все экспортированные движения могут быть зарегистрированы как экспортировано Miscellaneous=Разное Calendar=Календарь GroupBy=Группировка по... ViewFlatList=Вид плоским списком RemoveString=Удалить строку '%s' -SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at https://transifex.com/projects/p/dolibarr/ to add your improvements. +SomeTranslationAreUncomplete=Некоторые из предлагаемых языков пакетов могут быть переведены только частично или могут содержать ошибки. Пожалуйста, помогите исправить ваш язык, зарегистрировавшись по адресу https://transifex.com/projects/p/dolibarr/, чтобы добавить свои улучшения. DirectDownloadLink=Прямая ссылка для скачивания (общедоступная/внешняя) DirectDownloadInternalLink=Прямая ссылка для скачивания (требуется регистрация и необходимые разрешения) Download=Загрузка DownloadDocument=Скачать документ ActualizeCurrency=Обновить текущий курс Fiscalyear=Финансовый год -ModuleBuilder=Module and Application Builder +ModuleBuilder=Конструктор Модулей и Приложений SetMultiCurrencyCode=Настройка валюты BulkActions=Массовые действия ClickToShowHelp=Нажмите для отображения подсказок -WebSite=Website +WebSite=Веб-сайт WebSites=Веб-сайты -WebSiteAccounts=Website accounts +WebSiteAccounts=Аккаунты сайта ExpenseReport=Отчёт о затратах ExpenseReports=Отчёты о затратах HR=Кадры HRAndBank=Кадры и Банк AutomaticallyCalculated=Автоматический подсчет TitleSetToDraft=Вернуться к черновику -ConfirmSetToDraft=Are you sure you want to go back to Draft status? +ConfirmSetToDraft=Вы уверены, что хотите вернуть статус Черновик? ImportId=Импорт идентификатора Events=События -EMailTemplates=Email templates -FileNotShared=File not shared to external public +EMailTemplates=Шаблоны электронной почты +FileNotShared=Файл не доступен для внешних пользователей Project=Проект Projects=Проекты -LeadOrProject=Lead | Project -LeadsOrProjects=Leads | Projects -Lead=Lead -Leads=Leads -ListOpenLeads=List open leads -ListOpenProjects=List open projects -NewLeadOrProject=New lead or project +LeadOrProject=Сделка | Проект +LeadsOrProjects=Сделки | Проекты +Lead=Сделка +Leads=Сделки +ListOpenLeads=Список открытых сделок +ListOpenProjects=Список открытых проектов +NewLeadOrProject=Новая сделка или проект Rights=Права доступа LineNb=Номер строки IncotermLabel=Обязанности по доставке товаров -TabLetteringCustomer=Customer lettering -TabLetteringSupplier=Vendor lettering +TabLetteringCustomer=Обозначение клиента +TabLetteringSupplier=Обозначение поставщика Monday=Понедельник Tuesday=Вторник Wednesday=Среда @@ -938,7 +938,7 @@ SearchIntoProjects=Проекты SearchIntoTasks=Задание SearchIntoCustomerInvoices=Счета клиента SearchIntoSupplierInvoices=Счета-фактуры поставщика -SearchIntoCustomerOrders=Sales orders +SearchIntoCustomerOrders=Заказы на продажу SearchIntoSupplierOrders=Заказы SearchIntoCustomerProposals=Предложения клиенту SearchIntoSupplierProposals=Предложения поставщиков @@ -946,16 +946,16 @@ SearchIntoInterventions=Мероприятия SearchIntoContracts=Договоры SearchIntoCustomerShipments=Отгрузки клиентам SearchIntoExpenseReports=Отчёты о затратах -SearchIntoLeaves=Leave -SearchIntoTickets=Tickets +SearchIntoLeaves=Отпуск +SearchIntoTickets=Заявки CommentLink=Комментарии NbComments=Количество комментариев CommentPage=Комментарии CommentAdded=Комментарий добавлен CommentDeleted=Комментарий удален Everybody=Общий проект -PayedBy=Paid by -PayedTo=Paid to +PayedBy=Оплачивается +PayedTo=Оплатить до Monthly=ежемесячно Quarterly=Ежеквартальный Annual=годовой @@ -964,18 +964,18 @@ Remote=Удаленный LocalAndRemote=Локальные и удаленные KeyboardShortcut=Сочетание клавиш AssignedTo=Ответств. -Deletedraft=Удалить проект -ConfirmMassDraftDeletion=Draft mass delete confirmation +Deletedraft=Удалить черновик +ConfirmMassDraftDeletion=Подтверждение пакетного удаления Черновиков FileSharedViaALink=Файл, общий доступ по ссылке -SelectAThirdPartyFirst=Select a third party first... -YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode -Inventory=Inventory -AnalyticCode=Analytic code -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 +SelectAThirdPartyFirst=Сначала выберите контрагента ... +YouAreCurrentlyInSandboxMode=В настоящее время вы в %s режиме "песочницы" +Inventory=Инвентаризация +AnalyticCode=Аналитический код +TMenuMRP=ППМ +ShowMoreInfos=Показать больше информации +NoFilesUploadedYet=Пожалуйста, загрузите сначала документ +SeePrivateNote=Смотреть личную заметку +PaymentInformation=Платежная информация +ValidFrom=Действительно с +ValidUntil=Действительно до +NoRecordedUsers=Нет пользователей diff --git a/htdocs/langs/ru_RU/orders.lang b/htdocs/langs/ru_RU/orders.lang index 78bbbe496b1..d8e19ddf9e1 100644 --- a/htdocs/langs/ru_RU/orders.lang +++ b/htdocs/langs/ru_RU/orders.lang @@ -17,7 +17,7 @@ SupplierOrder=Purchase order SuppliersOrders=Заказы SuppliersOrdersRunning=Current purchase orders CustomerOrder=Sales Order -CustomersOrders=Sales Orders +CustomersOrders=Заказы на продажу CustomersOrdersRunning=Current sales orders CustomersOrdersAndOrdersLines=Sales orders and order details OrdersDeliveredToBill=Sales orders delivered to bill diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang index 93c750185ee..dec0f019432 100644 --- a/htdocs/langs/ru_RU/other.lang +++ b/htdocs/langs/ru_RU/other.lang @@ -48,7 +48,7 @@ Notify_COMPANY_CREATE=Третья партия, созданная Notify_COMPANY_SENTBYMAIL=Mails sent from third party card Notify_BILL_VALIDATE=Проверка векселя Notify_BILL_UNVALIDATE=Счёт клиента не подтверждён -Notify_BILL_PAYED=Customer invoice paid +Notify_BILL_PAYED=Счет клиента оплачен Notify_BILL_CANCEL=Счёт клиента отменён Notify_BILL_SENTBYMAIL=Клиенту счет-фактура высылается по почте Notify_BILL_SUPPLIER_VALIDATE=Vendor invoice validated @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Посредничество %s проверено. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/ru_RU/resource.lang b/htdocs/langs/ru_RU/resource.lang index 8f778006f60..11ab6d3ba69 100644 --- a/htdocs/langs/ru_RU/resource.lang +++ b/htdocs/langs/ru_RU/resource.lang @@ -5,7 +5,7 @@ DeleteResource=Удалить ресурс ConfirmDeleteResourceElement=Подтвердите удаление ресурса для этого элемента NoResourceInDatabase=Нет ресурсов в базе данных NoResourceLinked=Нет связанных ресурсов - +ActionsOnResource=События из этого ресурсе ResourcePageIndex=Список ресурсов ResourceSingular=Ресурс ResourceCard=Карточка ресурса diff --git a/htdocs/langs/ru_RU/salaries.lang b/htdocs/langs/ru_RU/salaries.lang index b8079813a21..a9ed4d4a6f7 100644 --- a/htdocs/langs/ru_RU/salaries.lang +++ b/htdocs/langs/ru_RU/salaries.lang @@ -1,21 +1,21 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Учет используется для пользователей контрагентов +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Выделенный бухгалтерский счет, указанный в карточке пользователя, будет использоваться только для учета во вспомогательной книги. Этот будет использоваться для Главной книги и в качестве значения по умолчанию для учета вспомогательной книги, если выделенная пользовательский бухгалтерский счет для пользователя не определен. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Бухгалтерский счет по умолчанию для выплат заработной платы Salary=Зарплата Salaries=Зарплаты NewSalaryPayment=Новая выплата зарплаты -AddSalaryPayment=Add salary payment +AddSalaryPayment=Добавить выплату зарплаты SalaryPayment=Выплата зарплаты SalariesPayments=Выплата зарплат ShowSalaryPayment=Показать выплату зарплаты -THM=Average hourly rate -TJM=Average daily rate +THM=Средняя почасовая ставка +TJM=Среднесуточная ставка CurrentSalary=Текущая зарплата -THMDescription=This value may be used to calculate the cost of time consumed on a project entered by users if module project is used -TJMDescription=This value is currently for information only and is not used for any calculation -LastSalaries=Latest %s salary payments -AllSalaries=All salary payments -SalariesStatistics=Salary statistics +THMDescription=Это значение может использоваться для расчета затрат времени, затраченного на проект, введенный пользователями, если используется модуль Проектов +TJMDescription=Это значение в настоящее время только для информации и не используется для каких-либо расчетов +LastSalaries=Последние%s выплат зарплаты +AllSalaries=Все выплаты зарплаты +SalariesStatistics=Статистика зарплаты # Export -SalariesAndPayments=Salaries and payments +SalariesAndPayments=Заработная плата и выплаты diff --git a/htdocs/langs/ru_RU/stocks.lang b/htdocs/langs/ru_RU/stocks.lang index ca909e13642..8e06ef743fb 100644 --- a/htdocs/langs/ru_RU/stocks.lang +++ b/htdocs/langs/ru_RU/stocks.lang @@ -165,7 +165,7 @@ inventoryCreatePermission=Create new inventory inventoryReadPermission=View inventories inventoryWritePermission=Update inventories inventoryValidatePermission=Validate inventory -inventoryTitle=Inventory +inventoryTitle=Инвентарная ведомость inventoryListTitle=Inventories inventoryListEmpty=No inventory in progress inventoryCreateDelete=Create/Delete inventory @@ -181,7 +181,7 @@ inventoryMvtStock=By inventory inventoryWarningProductAlreadyExists=This product is already into list SelectCategory=Категория фильтр SelectFournisseur=Vendor filter -inventoryOnDate=Inventory +inventoryOnDate=Инвентарная ведомость INVENTORY_DISABLE_VIRTUAL=Virtual product (kit): do not decrement stock of a child product INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock movement has date of inventory diff --git a/htdocs/langs/ru_RU/suppliers.lang b/htdocs/langs/ru_RU/suppliers.lang index d9cea9beb00..d3fb1c16512 100644 --- a/htdocs/langs/ru_RU/suppliers.lang +++ b/htdocs/langs/ru_RU/suppliers.lang @@ -1,4 +1,4 @@ -# Dolibarr language file - Source file is en_US - suppliers +# Dolibarr language file - Source file is en_US - vendors Suppliers=Поставщики SuppliersInvoice=Vendor invoice ShowSupplierInvoice=Show Vendor Invoice @@ -15,15 +15,15 @@ SomeSubProductHaveNoPrices=Для некоторых подтоваров не AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price SupplierPrices=Vendor prices -ReferenceSupplierIsAlreadyAssociatedWithAProduct=Этот поставщик ссылок уже связан со ссылкой: %s +ReferenceSupplierIsAlreadyAssociatedWithAProduct=This vendor reference is already associated with a product: %s NoRecordedSuppliers=No vendor recorded SupplierPayment=Vendor payment SuppliersArea=Vendor area RefSupplierShort=Ref. поставщик Availability=Доступность -ExportDataset_fournisseur_1=Vendor invoices list and invoice lines +ExportDataset_fournisseur_1=Vendor invoices and invoice details ExportDataset_fournisseur_2=Vendor invoices and payments -ExportDataset_fournisseur_3=Purchase orders and order lines +ExportDataset_fournisseur_3=Purchase orders and order details ApproveThisOrder=Утвердить этот заказ ConfirmApproveThisOrder=Are you sure you want to approve order %s? DenyingThisOrder=Отменить этот заказ @@ -35,13 +35,13 @@ ListOfSupplierProductForSupplier=List of products and prices for vendor %s%s
? -ConfirmDeleteUser=Are you sure you want to delete user %s? -ConfirmDeleteGroup=Are you sure you want to delete group %s? -ConfirmEnableUser=Are you sure you want to enable user %s? -ConfirmReinitPassword=Are you sure you want to generate a new password for user %s? -ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s? +ConfirmDisableUser=Вы уверены, что хотите отключить пользователя %s ? +ConfirmDeleteUser=Вы уверены, что хотите удалить пользователя %s ? +ConfirmDeleteGroup=Вы уверены, что хотите удалить группу %s ? +ConfirmEnableUser=Вы уверены, что хотите включить пользователя %s ? +ConfirmReinitPassword=Вы уверены, что хотите сгенерировать новый пароль для пользователя %s ? +ConfirmSendNewPassword=Вы уверены, что хотите сгенерировать и отправить новый пароль для пользователя %s ? NewUser=Новый пользователь CreateUser=Создать пользователя LoginNotDefined=Логин не определен. @@ -34,8 +34,8 @@ ListOfUsers=Список пользователей SuperAdministrator=Супер Администратор SuperAdministratorDesc=Администратор со всеми правами AdministratorDesc=Администратор -DefaultRights=Default Permissions -DefaultRightsDesc=Define here the default permissions that are automatically granted to a new user (to modify permissions for existing users, go to the user card). +DefaultRights=Разрешения по умолчанию +DefaultRightsDesc=Определите здесь разрешения по умолчанию , которые автоматически предоставляются новому пользователю (чтобы изменить разрешения для существующих пользователей, перейдите в карточку пользователя). DolibarrUsers=Пользователи Dolibarr LastName=Фамилия FirstName=Имя @@ -44,12 +44,12 @@ NewGroup=Новая группа CreateGroup=Создать группу RemoveFromGroup=Удалить из группы PasswordChangedAndSentTo=Пароль изменен и направил в %s. -PasswordChangeRequest=Request to change password for %s +PasswordChangeRequest=Запрос на изменение пароля для %s PasswordChangeRequestSent=Запрос на изменение пароля для %s направлено %s. -ConfirmPasswordReset=Confirm password reset +ConfirmPasswordReset=Подтвердите сброс пароля MenuUsersAndGroups=Пользователи и Группы -LastGroupsCreated=Latest %s groups created -LastUsersCreated=Latest %s users created +LastGroupsCreated=Последние %s созданные группы +LastUsersCreated=Последние %s созданных пользователя ShowGroup=Показать группы ShowUser=Показать пользователей NonAffectedUsers=Расходы пользователей @@ -64,13 +64,13 @@ LinkedToDolibarrThirdParty=Ссылка на Dolibarr третья сторон CreateDolibarrLogin=Создать аккаунт Dolibarr CreateDolibarrThirdParty=Создание третьей стороной LoginAccountDisableInDolibarr=Счет-инвалидов в Dolibarr. -UsePersonalValue=Использование личных ценностей +UsePersonalValue=Использовать личные предпочтения InternalUser=Внутренний пользователь -ExportDataset_user_1=Users and their properties +ExportDataset_user_1=Пользователи и их свойства DomainUser=Домен пользователя %s Reactivate=Возобновить -CreateInternalUserDesc=This form allows you to create an internal user in your company/organization. To create an external user (customer, vendor etc. ..), use the button 'Create Dolibarr User' from that third-party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/organization.
An external user is a customer, vendor or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=Эта форма позволяет вам создать внутреннего пользователя в вашей компании. Чтобы создать внешнего пользователя (клиента, поставщика и т.д.), используйте кнопку «Создать пользователя Dolibarr» из карточки контакта этого контрагента. +InternalExternalDesc=Внутренний пользователь - это пользователь, который является частью вашей компании.
Внешний пользователь - это клиент, продавец или кто-то другой.

В обоих случаях права доступа определяют права в Dolibarr, также внешний пользователь может иметь менеджер меню, отличный от внутреннего пользователя (см. Главная - Настройка - Внешний вид). PermissionInheritedFromAGroup=Разрешение предоставляется, поскольку унаследовал от одного из пользователей в группы. Inherited=Унаследованный UserWillBeInternalUser=Созданный пользователь будет внутреннего пользователя (потому что не связаны с определенным третьим лицам) @@ -85,28 +85,28 @@ UserDeleted=Пользователь %s удален NewGroupCreated=Создана группа %s GroupModified=Группа %s изменена GroupDeleted=Удалена группа %s -ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact? -ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member? -ConfirmCreateThirdParty=Are you sure you want to create a third party for this member? +ConfirmCreateContact=Вы уверены, что хотите создать учетную запись Dolibarr для этого контакта? +ConfirmCreateLogin=Вы уверены, что хотите создать учетную запись Dolibarr для этого участника? +ConfirmCreateThirdParty=Вы уверены, что хотите создать контрагента для этого участника? LoginToCreate=Логин для создания NameToCreate=Имя третьей стороной для создания YourRole=Ваша роль YourQuotaOfUsersIsReached=Квота активных пользователей будет достигнута! -NbOfUsers=No. of users -NbOfPermissions=No. of permissions +NbOfUsers=Кол-во пользователей +NbOfPermissions=Кол-во разрешений DontDowngradeSuperAdmin=Только суперамин может понизить суперамин HierarchicalResponsible=Руководитель HierarchicView=Иерархический вид UseTypeFieldToChange=Использьзуйте поле Тип для изменения OpenIDURL=OpenID URL LoginUsingOpenID=Использовать OpenID для входа -WeeklyHours=Hours worked (per week) -ExpectedWorkedHours=Expected worked hours per week +WeeklyHours=Отработанные часы (в неделю) +ExpectedWorkedHours=Ожидаемое отработанное время за неделю ColorUser=Цвет пользователя -DisabledInMonoUserMode=Disabled in maintenance mode -UserAccountancyCode=User accounting code -UserLogoff=User logout -UserLogged=User logged -DateEmployment=Employment Start Date -DateEmploymentEnd=Employment End Date -CantDisableYourself=You can't disable your own user record +DisabledInMonoUserMode=Отключено в режиме обслуживания +UserAccountancyCode=Код учета пользователя +UserLogoff=Выход пользователя +UserLogged=Пользователь вошел +DateEmployment=Дата начала трудоустройства +DateEmploymentEnd=Дата окончания занятости +CantDisableYourself=Вы не можете отключить свою собственную запись пользователя diff --git a/htdocs/langs/ru_RU/website.lang b/htdocs/langs/ru_RU/website.lang index 42bffa2f68c..619b8022065 100644 --- a/htdocs/langs/ru_RU/website.lang +++ b/htdocs/langs/ru_RU/website.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - website Shortname=Код WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them. -DeleteWebsite=Delete website +DeleteWebsite=Удалить сайт ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed. WEBSITE_TYPE_CONTAINER=Type of page/container WEBSITE_PAGE_EXAMPLE=Web page to use as example @@ -70,7 +70,7 @@ IDOfPage=Id of page Banner=Banner BlogPost=Blog post WebsiteAccount=Website account -WebsiteAccounts=Website accounts +WebsiteAccounts=Аккаунты сайта AddWebsiteAccount=Create web site account BackToListOfThirdParty=Back to list for Third Party DisableSiteFirst=Disable website first @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/ru_RU/workflow.lang b/htdocs/langs/ru_RU/workflow.lang index 98227e18291..bfacde3683f 100644 --- a/htdocs/langs/ru_RU/workflow.lang +++ b/htdocs/langs/ru_RU/workflow.lang @@ -1,20 +1,20 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowSetup=Установка модуля Рабочих процессов -WorkflowDesc=Данный модуль предназначен для изменения поведения автоматических действий в приложении. По умолчанию рабочий процесс открыт (вы можете делать вещи в произвольном порядке). Вы можете включить автоматические действия, которые вам необходимы. +WorkflowDesc=Этот модуль предусматривает автоматические действия. По умолчанию рабочий процесс открыт (вы можете делать все в нужном вам порядке), но здесь вы можете включить какие-либо автоматические действия. ThereIsNoWorkflowToModify=Для активированных модулей нет доступных изменений рабочего процесса. # Autocreate -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a sales order after a commercial proposal is signed (the new order will have same amount as the proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (the new invoice will have same amount as the proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматически создавать счет клиента после проверки договора -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a sales order is closed (the new invoice will have same amount as the order) # Autoclassify customer proposal or order -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source customer order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) -# Autoclassify supplier order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked proposals) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked orders) -AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when sales order is set to billed (and if the amount of the order is the same as the total amount of the signed linked proposal) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the signed linked proposal) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is set to paid (and if the amount of the invoice is the same as the total amount of the linked order) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source sales order as shipped when a shipment is validated (and if the quantity shipped by all shipments is the same as in the order to update) +# Autoclassify purchase order +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked proposal) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order) +AutomaticCreation=Автоматическое создание +AutomaticClassification=Автоматическая классификация diff --git a/htdocs/langs/sk_SK/accountancy.lang b/htdocs/langs/sk_SK/accountancy.lang index e7127eb165b..ec2439d5d71 100644 --- a/htdocs/langs/sk_SK/accountancy.lang +++ b/htdocs/langs/sk_SK/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Účtovný účet čakania DONATION_ACCOUNTINGACCOUNT=Účtovný účet na registráciu darov diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang index 45c31a47e0d..a4156dc9f84 100644 --- a/htdocs/langs/sk_SK/admin.lang +++ b/htdocs/langs/sk_SK/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Odkaz na objekt ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Knižnica používaná pre generovanie PDF 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=SMS @@ -819,9 +822,9 @@ Permission532=Vytvoriť / upraviť služby Permission534=Odstrániť služby Permission536=Pozri / správa skryté služby Permission538=Export služieb -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Prečítajte si dary Permission702=Vytvoriť / upraviť dary Permission703=Odstrániť dary @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/sk_SK/bills.lang b/htdocs/langs/sk_SK/bills.lang index 0a0e51aa0bb..e59e132e721 100644 --- a/htdocs/langs/sk_SK/bills.lang +++ b/htdocs/langs/sk_SK/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma faktúra InvoiceProFormaDesc=Proforma faktúra je obraz skutočnej faktúry, ale nemá evidencia hodnotu. InvoiceReplacement=Náhradné faktúra InvoiceReplacementAsk=Náhradné faktúra faktúry -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Dobropis InvoiceAvoirAsk=Dobropis opraviť faktúru InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/sk_SK/companies.lang b/htdocs/langs/sk_SK/companies.lang index 50b6a7b65c6..30d71912379 100644 --- a/htdocs/langs/sk_SK/companies.lang +++ b/htdocs/langs/sk_SK/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Firmy CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Nikto Vendor=Vendor +Supplier=Vendor AddContact=Vytvoriť kontakt AddContactAddress=Vytvoriť kontakt/adresu EditContact=Upraviť kontakt diff --git a/htdocs/langs/sk_SK/other.lang b/htdocs/langs/sk_SK/other.lang index 8a2735cfc58..1978f4eabcf 100644 --- a/htdocs/langs/sk_SK/other.lang +++ b/htdocs/langs/sk_SK/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Zásah %s bol overený. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/sk_SK/website.lang b/htdocs/langs/sk_SK/website.lang index 9678b6fd948..00ccd033492 100644 --- a/htdocs/langs/sk_SK/website.lang +++ b/htdocs/langs/sk_SK/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/sl_SI/accountancy.lang b/htdocs/langs/sl_SI/accountancy.lang index ad54ed949cf..9ece7db19d0 100644 --- a/htdocs/langs/sl_SI/accountancy.lang +++ b/htdocs/langs/sl_SI/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index 2991502b826..025ffcef4df 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Poveži z objektom ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Kreiranje/spreminjanje storitev Permission534=Brisanje storitev Permission536=Pregled/upravljanje skritih storitev Permission538=Izvoz storitev -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Branje donacij Permission702=Kreiranje/spreminjanje donacij Permission703=Delete donacij @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/sl_SI/bills.lang b/htdocs/langs/sl_SI/bills.lang index f818dd4b127..199397eed37 100644 --- a/htdocs/langs/sl_SI/bills.lang +++ b/htdocs/langs/sl_SI/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Predračun InvoiceProFormaDesc=Predračun izgleda enako kot račun, vendar nima računovodske vrednosti. InvoiceReplacement=Nadomestni račun InvoiceReplacementAsk=Nadomestni račun za račun -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Dobropis InvoiceAvoirAsk=Dobropis za korekcijo računa InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/sl_SI/companies.lang b/htdocs/langs/sl_SI/companies.lang index 8d52f86f18f..ab68d02ed39 100644 --- a/htdocs/langs/sl_SI/companies.lang +++ b/htdocs/langs/sl_SI/companies.lang @@ -28,7 +28,7 @@ AliasNames=Drugo ime (komercialno, blagovna znamka, ...) AliasNameShort=Alias Name Companies=Podjetja CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Brez popusta Vendor=Vendor +Supplier=Vendor AddContact=Ustvari kntakt AddContactAddress=Ustvari naslov EditContact=Uredi osebo / naslov diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang index e413a5da13f..aebd453a307 100644 --- a/htdocs/langs/sl_SI/other.lang +++ b/htdocs/langs/sl_SI/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Potrjena intervencija %s EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/sl_SI/website.lang b/htdocs/langs/sl_SI/website.lang index 4a37a3efb93..3244952145a 100644 --- a/htdocs/langs/sl_SI/website.lang +++ b/htdocs/langs/sl_SI/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/sq_AL/accountancy.lang b/htdocs/langs/sq_AL/accountancy.lang index 076a59f3bea..8e1a61cb5bd 100644 --- a/htdocs/langs/sq_AL/accountancy.lang +++ b/htdocs/langs/sq_AL/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang index 1704e1b7cb0..c7a844db4d2 100644 --- a/htdocs/langs/sq_AL/admin.lang +++ b/htdocs/langs/sq_AL/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/sq_AL/bills.lang b/htdocs/langs/sq_AL/bills.lang index 3000a7ae4c6..6d410dc879e 100644 --- a/htdocs/langs/sq_AL/bills.lang +++ b/htdocs/langs/sq_AL/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/sq_AL/companies.lang b/htdocs/langs/sq_AL/companies.lang index 27a292f7fbb..c4d7ea97a06 100644 --- a/htdocs/langs/sq_AL/companies.lang +++ b/htdocs/langs/sq_AL/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Kompanitë CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/sq_AL/other.lang b/htdocs/langs/sq_AL/other.lang index dd2fa132429..84e2ff12857 100644 --- a/htdocs/langs/sq_AL/other.lang +++ b/htdocs/langs/sq_AL/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/sq_AL/website.lang b/htdocs/langs/sq_AL/website.lang index 534756ac932..0ee00aff7c0 100644 --- a/htdocs/langs/sq_AL/website.lang +++ b/htdocs/langs/sq_AL/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/sr_RS/accountancy.lang b/htdocs/langs/sr_RS/accountancy.lang index c567bb5ba78..02d455a8817 100644 --- a/htdocs/langs/sr_RS/accountancy.lang +++ b/htdocs/langs/sr_RS/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang index c4d811485cb..1ac61447847 100644 --- a/htdocs/langs/sr_RS/admin.lang +++ b/htdocs/langs/sr_RS/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/sr_RS/bills.lang b/htdocs/langs/sr_RS/bills.lang index 14b1c76b888..41751c9406f 100644 --- a/htdocs/langs/sr_RS/bills.lang +++ b/htdocs/langs/sr_RS/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Predračun InvoiceProFormaDesc=Predračun je neobavezujući dokument koji ima sve karakteristike računa. InvoiceReplacement=Zamenski račun InvoiceReplacementAsk=Zamenski račun za račun -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Knjižno odobrenje (kredit nota) InvoiceAvoirAsk=Knjižno odobrenje za korekciju računa InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/sr_RS/companies.lang b/htdocs/langs/sr_RS/companies.lang index 91a8d7d6a6b..039365081a4 100644 --- a/htdocs/langs/sr_RS/companies.lang +++ b/htdocs/langs/sr_RS/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias (komercijalni) AliasNameShort=Alias Name Companies=Kompanije CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Nema Vendor=Vendor +Supplier=Vendor AddContact=kreiraj kontakt AddContactAddress=Kreiraj kontakt/adresuz EditContact=Izmeni kontakt diff --git a/htdocs/langs/sr_RS/other.lang b/htdocs/langs/sr_RS/other.lang index 706ad39a5be..34e997d52f1 100644 --- a/htdocs/langs/sr_RS/other.lang +++ b/htdocs/langs/sr_RS/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Intervencija %s je potvrđena. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index 1e46c6e213c..a97e82d5dfe 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Resultaträkningskonto (förlust) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Loggbok för stängning ACCOUNTING_ACCOUNT_TRANSFER_CASH=Redovisningskonto övergångsöverföring +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Redovisningskonto för väntan DONATION_ACCOUNTINGACCOUNT=Redovisningskonto för att registrera donationer diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index b967f1948a8..1118f400fe0 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Kryssrutor från bordet ExtrafieldLink=Länk till ett objekt ComputedFormula=Beräknat fält ComputedFormulaDesc=Du kan ange här en formel med andra objektegenskaper eller någon PHP-kodning för att få ett dynamiskt beräknat värde. Du kan använda alla PHP-kompatibla formler inklusive "?" tillståndsoperatör och följande globala objekt: $ db, $ conf, $ längd, $ mysoc, $ user, $ object .
VARNING : Endast vissa egenskaper på $ -objekt kan vara tillgängliga. Om du behöver en egenskap inte laddad, hämta bara objektet i din formel som i det andra exemplet.
Med ett beräknat fält kan du inte ange något värde från gränssnittet själv. Om det också finns ett syntaxfel kan inte formeln returnera någonting.

Exempel på formel:
$ objekt-> id < 10 ? round($object-> id / 2, 2): ($ objekt-> id + 2 * $ användar-> id) * (int) substr ($ mysoc-> zip, 1, 2 )

Exempel på att ladda objektet
(($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> hämta ($ obj-> id? $ Obj-> id: ($ obj-> rowid? $ Obj- > rowid: $ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> kapital / 5: '-1'

Ett annat exempel på formel för att tvinga belastning av objekt och dess moderobjekt:
(($ reloadedobj = new Task ($ db )) && ($ reloadedobj-> hämta ($ object-> id)> 0) && ($ secondloadedobj = nytt projekt ($ db)) && ($ secondloadedobj-> hämta ($ reloadedobj-> fk_project)> 0))? $ secondloadedobj-> ref: 'Föräldraprojekt hittades inte' +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=Om du lämnar fältet tomt betyder det att detta värde kommer att sparas utan kryptering (fältet måste bara döljas med stjärnan på skärmen).
Ange 'auto' för att använda standardkrypteringsregeln för att spara lösenord i databasen (då är läsningsvärde endast ett hash, inget sätt att hämta originalvärdet) ExtrafieldParamHelpselect=Förteckning över värden måste vara linjer med formatnyckel, värde (där nyckel inte kan vara '0')

till exempel:
1, värde1
2, värde2
code3, värde3
...

För att få lista beroende på en annan komplementär attributlista:
1, värde1 | options_ parent_list_code : parent_key
2, value2 | options_ parent_list_code : parent_key

För att få listan beroende på en annan lista:
1, värde1 | parent_list_code : parent_key
2, värde2 | parent_list_code : parent_key ExtrafieldParamHelpcheckbox=Lista över värden måste vara rader med formatnyckel, värde (där nyckel inte kan vara '0')

till exempel:
1, värde1
2, värde2
3, värde3
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=Lista över värden måste vara rader med formatnyckel, ExtrafieldParamHelpsellist=Lista över värden kommer från en tabell
Syntax: tabellnamn: label_field: id_field :: filter
Exempel: c_typent: libelle: id :: filter

- idfilter är nödvändigtvis en primär int nyckel
- filtret kan vara ett enkelt test = 1) för att visa endast aktivt värde
Du kan också använda $ ID $ i filterhäxa är det aktuella idet av nuvarande objekt
För att göra ett SELECT i filter använder du $ SEL $
om du vill filtrera på extrafält använder du syntax extra.fieldcode = ... (där fältkoden är koden för extrafältet)

För att få listan beroende på en annan komplementär attributlista:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

För att ha listan beror på en annan lista:
c_typent: libelle: id: parent_list_code | parent_column: filter ExtrafieldParamHelpchkbxlst=Lista över värden kommer från en tabell
Syntax: tabellnamn: label_field: id_field :: filter
Exempel: c_typent: libelle: id :: filter

filtret kan vara ett enkelt test (t.ex. aktiv = 1) för att visa endast aktivt värde
Du kan också använda $ ID $ i filterhäxa är nuvarande ID för nuvarande objekt
För att göra ett SELECT i filter använd $ SEL $
om du vill filtrera på extrafält använder syntax extra.fieldcode = ... (där fältkoden är kod för extrafält)

För att få listan beroende på en annan komplementär attributlista:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

För att få listan beroende på en annan lista:
c_typent: libelle: id: parent_list_code | parent_column: filter ExtrafieldParamHelplink=Parametrar måste vara ObjectName: Classpath
Syntax: ObjectName: Classpath
Exempel:
Societe: societe / class / societe.class.php
Kontakt: kontakt / class / contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Bibliotek som används för PDF-generering LocalTaxDesc=Vissa länder kan ansöka om två eller tre skatter på varje faktura. Om så är fallet, välj typ för andra och tredje skatt och dess skattesats. Möjlig typ är:
1: Lokal skatt gäller för produkter och tjänster utan moms (localtax beräknas på belopp utan skatt)
2: Lokal skatt gäller för produkter och tjänster inklusive moms (lokal skatt beräknas på belopp + huvudskatt)
3: lokal skatt tillämpas på varor utan moms (lokal skatt beräknas på belopp utan skatt)
4: Lokal skatt gäller för produkter inklusive moms (lokal skatt beräknas på belopp + huvudskatt)
5: Lokal skatt gäller för tjänster utan moms (lokal skatt beräknas på belopp utan skatt)
6: Lokal skatt gäller för tjänster inklusive moms (lokal skatt beräknas på belopp + skatt) SMS=SMS @@ -819,9 +822,9 @@ Permission532=Skapa / modifiera tjänster Permission534=Ta bort tjänster Permission536=Se / Hantera dolda tjänster Permission538=Exportera tjänster -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Läs donationer Permission702=Skapa / ändra donationer Permission703=Ta bort donationer @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang index 87ba06c3f74..738c2068c9d 100644 --- a/htdocs/langs/sv_SE/bills.lang +++ b/htdocs/langs/sv_SE/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma faktura InvoiceProFormaDesc=Proforma faktura är en bild av en sann faktura men har ingen bokföring värde. InvoiceReplacement=Ersättnings faktura InvoiceReplacementAsk=Ersättnings faktura för faktura -InvoiceReplacementDesc=  Ersättningsfaktura används för att avbryta och helt ersätta en faktura utan betalning som redan tagits emot.

Obs! Endast fakturor utan betalning på den kan bytas ut. Om fakturan du byter inte är avslutad stängs den automatiskt för att "överge". +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Kreditnota InvoiceAvoirAsk=Kreditnota att korrigera fakturan InvoiceAvoirDesc= kreditnota är en negativ faktura som används för att korrigera det faktum att en faktura visar ett belopp som skiljer sig från det belopp som faktiskt betalats (t.ex. kunden betalade för mycket av misstag eller betalar inte hela beloppet eftersom vissa produkter returnerades) . diff --git a/htdocs/langs/sv_SE/companies.lang b/htdocs/langs/sv_SE/companies.lang index c4a75a1afaa..098c3c073b4 100644 --- a/htdocs/langs/sv_SE/companies.lang +++ b/htdocs/langs/sv_SE/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias namn (kommersiellt, varumärke, ...) AliasNameShort=Alias namn Companies=Företag CountryIsInEEC=Landet ligger inom Europeiska ekonomiska gemenskapen -PriceFormatInCurrentLanguage=Prisformat i nuvarande språk +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Namn på tredjepart ThirdPartyEmail=Tredjeparts e-post ThirdParty=Tredjepart @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absoluta leverantörsrabatter (angivna av alla SupplierAbsoluteDiscountMy=Absoluta leverantörsrabatter (angivna av dig själv) DiscountNone=Ingen Vendor=Säljare +Supplier=Vendor AddContact=Skapa kontakt AddContactAddress=Skapa kontakt / adress EditContact=Redigera kontakt / adress diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang index 93d2115b9be..71012c57976 100644 --- a/htdocs/langs/sv_SE/other.lang +++ b/htdocs/langs/sv_SE/other.lang @@ -20,7 +20,7 @@ ZipFileGeneratedInto=Zip-fil genererad till %s . DocFileGeneratedInto=Doc-filen genereras till %s . JumpToLogin=Förbindelse förlorad. Gå till inloggningssidan ... MessageForm=Meddelande på onlinebetalningsformulär -MessageOK=Meddelande på retursidan för en validerad betalning +MessageOK=Meddelande på retursidan för en bekräftat betalning MessageKO=Meddelande på retursidan för en avbokad betalning ContentOfDirectoryIsNotEmpty=Innehållet i den här katalogen är inte tomt. DeleteAlsoContentRecursively=Kontrollera att allt innehåll rekursivt raderas @@ -31,13 +31,13 @@ NextYearOfInvoice=Följande år med fakturadatum DateNextInvoiceBeforeGen=Datum för nästa faktura (före generationen) DateNextInvoiceAfterGen=Datum för nästa faktura (efter generation) -Notify_ORDER_VALIDATE=Försäljningsorder validerad +Notify_ORDER_VALIDATE=Försäljningsorder bekräftat Notify_ORDER_SENTBYMAIL=Försäljningsorder skickad via post Notify_ORDER_SUPPLIER_SENTBYMAIL=Beställningsorder skickad via e-post Notify_ORDER_SUPPLIER_VALIDATE=Beställningsorder registrerad Notify_ORDER_SUPPLIER_APPROVE=Köporder godkänd Notify_ORDER_SUPPLIER_REFUSE=Inköpsorder nekades -Notify_PROPAL_VALIDATE=Kunden förslag validerade +Notify_PROPAL_VALIDATE=Kunden förslag bekräftades Notify_PROPAL_CLOSE_SIGNED=Kundförslaget är undertecknat Notify_PROPAL_CLOSE_REFUSED=Kundförslaget stängdes vägrade Notify_PROPAL_SENTBYMAIL=Kommersiell förslag skickas per post @@ -46,22 +46,22 @@ Notify_WITHDRAW_CREDIT=Credit tillbakadragande Notify_WITHDRAW_EMIT=Isue tillbakadragande Notify_COMPANY_CREATE=Tredje part som skapats Notify_COMPANY_SENTBYMAIL=Post som skickas från tredjepartskort -Notify_BILL_VALIDATE=Kundfaktura validerade +Notify_BILL_VALIDATE=Kundfaktura bekräftades Notify_BILL_UNVALIDATE=Kundfakturan Fraktpris saknas Notify_BILL_PAYED=Kundfaktura betalad Notify_BILL_CANCEL=Kundfaktura avbryts Notify_BILL_SENTBYMAIL=Kundfaktura skickas per post -Notify_BILL_SUPPLIER_VALIDATE=Leverantörsfaktura validerad +Notify_BILL_SUPPLIER_VALIDATE=Leverantörsfaktura bekräftat Notify_BILL_SUPPLIER_PAYED=Leverantörsfaktura betalad Notify_BILL_SUPPLIER_SENTBYMAIL=Leverantörsfaktura skickad via post Notify_BILL_SUPPLIER_CANCELED=Leverantörsfaktura inställd -Notify_CONTRACT_VALIDATE=Kontrakt validerade -Notify_FICHEINTER_VALIDATE=Intervention validerade +Notify_CONTRACT_VALIDATE=Kontrakt bekräftades +Notify_FICHEINTER_VALIDATE=Intervention bekräftades Notify_FICHINTER_ADD_CONTACT=Tillagd kontakt till insats Notify_FICHINTER_SENTBYMAIL=Ingripande skickas per post -Notify_SHIPPING_VALIDATE=Frakt validerade +Notify_SHIPPING_VALIDATE=Frakt bekräftades Notify_SHIPPING_SENTBYMAIL=Leverans skickas per post -Notify_MEMBER_VALIDATE=Medlem validerade +Notify_MEMBER_VALIDATE=Medlem bekräftades Notify_MEMBER_MODIFY=Medlem modifierad Notify_MEMBER_SUBSCRIPTION=Medlem tecknat Notify_MEMBER_RESILIATE=Medlem avslutad @@ -70,9 +70,9 @@ Notify_PROJECT_CREATE=Projekt skapande Notify_TASK_CREATE=Task skapade Notify_TASK_MODIFY=Task modifierad Notify_TASK_DELETE=Uppgift utgår -Notify_EXPENSE_REPORT_VALIDATE=Expense rapport validerad (godkännande krävs) +Notify_EXPENSE_REPORT_VALIDATE=Utläggsrapport bekräftat (godkännande krävs) Notify_EXPENSE_REPORT_APPROVE=Kostnadsrapport godkänd -Notify_HOLIDAY_VALIDATE=Lämna förfrågan validerad (godkännande krävs) +Notify_HOLIDAY_VALIDATE=Lämna förfrågan bekräftat (godkännande krävs) Notify_HOLIDAY_APPROVE=Lämna förfrågan godkänd SeeModuleSetup=Se inställning av modul %s NbOfAttachedFiles=Antal bifogade filer / dokument @@ -112,12 +112,12 @@ ValidatedBy=Bekräftad av %s ClosedBy=Stängt av %s CreatedById=Användarkod som skapade ModifiedById=Användar-ID som gjorde senaste ändringen -ValidatedById=Användarkod som validerats +ValidatedById=Användarkod som bekräftats CanceledById=Användar-ID som annulleras ClosedById=Användar-ID som stängd CreatedByLogin=Användarinloggning som skapade ModifiedByLogin=Användarinloggning som gjorde senaste ändringen -ValidatedByLogin=Användarinloggning som validerats +ValidatedByLogin=Användarinloggning som bekräftats CanceledByLogin=Användarinloggning som annullerats ClosedByLogin=Användarinloggning som stängde FileWasRemoved=Arkiv %s togs bort @@ -184,28 +184,30 @@ NumberOfCustomerInvoices=Antal kundfakturor NumberOfSupplierProposals=Antal leverantörsförslag NumberOfSupplierOrders=Antal inköpsorder NumberOfSupplierInvoices=Antal leverantörsfakturor +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Antal enheter på förslag NumberOfUnitsCustomerOrders=Antal enheter på försäljningsorder NumberOfUnitsCustomerInvoices=Antal enheter på kundfakturor NumberOfUnitsSupplierProposals=Antal enheter på leverantörsförslag NumberOfUnitsSupplierOrders=Antal enheter på inköpsorder NumberOfUnitsSupplierInvoices=Antal enheter på leverantörsfakturor +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=Ett nytt ingripande %s har tilldelats dig. -EMailTextInterventionValidated=Interventionen %s har validerats. -EMailTextInvoiceValidated=Faktura %s har validerats. +EMailTextInterventionValidated=Interventionen %s har bekräftats. +EMailTextInvoiceValidated=Faktura %s har bekräftats. EMailTextInvoicePayed=Faktura %s har betalats. -EMailTextProposalValidated=Förslag %s har validerats. +EMailTextProposalValidated=Förslag %s har bekräftats. EMailTextProposalClosedSigned=Förslag %s har avslutats undertecknat. -EMailTextOrderValidated=Order %s har validerats. +EMailTextOrderValidated=Order %s har bekräftats. EMailTextOrderApproved=Beställningen %s har godkänts. EMailTextOrderValidatedBy=Order %s har spelats in av %s. EMailTextOrderApprovedBy=Beställningen %s har godkänts av %s. EMailTextOrderRefused=Beställningen %s har vägrats. EMailTextOrderRefusedBy=Beställningen %s har blivit nekad av %s. -EMailTextExpeditionValidated=Frakt %s har validerats. -EMailTextExpenseReportValidated=Kostnadsrapport %s har validerats. +EMailTextExpeditionValidated=Frakt %s har bekräftats. +EMailTextExpenseReportValidated=Kostnadsrapport %s har bekräftats. EMailTextExpenseReportApproved=Kostnadsrapport %s har godkänts. -EMailTextHolidayValidated=Lämna förfrågan %s har validerats. +EMailTextHolidayValidated=Lämna förfrågan %s har bekräftats. EMailTextHolidayApproved=Förfrågan %s har godkänts. ImportedWithSet=Import dataunderlaget DolibarrNotification=Automatisk anmälan @@ -246,10 +248,10 @@ YourPasswordHasBeenReset=Ditt lösenord har återställts framgångsrikt ApplicantIpAddress=Sökandens IP-adress SMSSentTo=SMS skickat till %s MissingIds=Saknande ID -ThirdPartyCreatedByEmailCollector=Third party created by email collector from email MSGID %s -ContactCreatedByEmailCollector=Contact/address created by email collector from email MSGID %s -ProjectCreatedByEmailCollector=Project created by email collector from email MSGID %s -TicketCreatedByEmailCollector=Ticket created by email collector from email MSGID %s +ThirdPartyCreatedByEmailCollector=Tredje part skapad av e-post samlare från e-post MSGID %s +ContactCreatedByEmailCollector=Kontakt / adress skapad via e-post samlare från email MSGID %s +ProjectCreatedByEmailCollector=Projekt skapat av e-post samlare från email MSGID %s +TicketCreatedByEmailCollector=Biljett skapad av e-post samlare från email MSGID %s ##### Export ##### ExportsArea=Export område @@ -268,5 +270,5 @@ WEBSITE_IMAGEDesc=Relativ sökväg i bildmediet. Du kan hålla det tomt eftersom WEBSITE_KEYWORDS=Nyckelord LinesToImport=Rader att importera -MemoryUsage=Memory usage -RequestDuration=Duration of request +MemoryUsage=Minnesanvändning +RequestDuration=Varaktighet för förfrågan diff --git a/htdocs/langs/sv_SE/website.lang b/htdocs/langs/sv_SE/website.lang index bdecce66d17..cc934e66abc 100644 --- a/htdocs/langs/sv_SE/website.lang +++ b/htdocs/langs/sv_SE/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=Ingen hemsida har skapats än. Skapa en första. GoTo=Gå till DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/sw_SW/accountancy.lang b/htdocs/langs/sw_SW/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/sw_SW/accountancy.lang +++ b/htdocs/langs/sw_SW/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/sw_SW/admin.lang b/htdocs/langs/sw_SW/admin.lang index 9eaa12ec9be..f30d6edd9f7 100644 --- a/htdocs/langs/sw_SW/admin.lang +++ b/htdocs/langs/sw_SW/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/sw_SW/bills.lang b/htdocs/langs/sw_SW/bills.lang index c9d46e4ffff..4f114d4df1c 100644 --- a/htdocs/langs/sw_SW/bills.lang +++ b/htdocs/langs/sw_SW/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/sw_SW/companies.lang b/htdocs/langs/sw_SW/companies.lang index 77bd4f8a445..578f5cb8920 100644 --- a/htdocs/langs/sw_SW/companies.lang +++ b/htdocs/langs/sw_SW/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/sw_SW/other.lang b/htdocs/langs/sw_SW/other.lang index a6802140be3..8a5ccdbab5c 100644 --- a/htdocs/langs/sw_SW/other.lang +++ b/htdocs/langs/sw_SW/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/th_TH/accountancy.lang b/htdocs/langs/th_TH/accountancy.lang index b895dec5004..32ea494ec01 100644 --- a/htdocs/langs/th_TH/accountancy.lang +++ b/htdocs/langs/th_TH/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang index 1dc638b8ef8..bd4dd75398a 100644 --- a/htdocs/langs/th_TH/admin.lang +++ b/htdocs/langs/th_TH/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=เชื่อมโยงไปยังวัตถุ ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=สร้าง / แก้ไขบริการ Permission534=ลบบริการ Permission536=ดู / จัดการบริการซ่อน Permission538=บริการส่งออก -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=อ่านบริจาค Permission702=สร้าง / แก้ไขการบริจาค Permission703=ลบบริจาค @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/th_TH/bills.lang b/htdocs/langs/th_TH/bills.lang index b1eaa9aec89..17b76759851 100644 --- a/htdocs/langs/th_TH/bills.lang +++ b/htdocs/langs/th_TH/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=ใบแจ้งหนี้ Proforma InvoiceProFormaDesc=ใบแจ้งหนี้ Proforma คือภาพของใบแจ้งหนี้ที่แท้จริง แต่มีค่าไม่มีบัญชี InvoiceReplacement=เปลี่ยนใบแจ้งหนี้ InvoiceReplacementAsk=ใบแจ้งหนี้แทนใบแจ้งหนี้ -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=ใบลดหนี้ InvoiceAvoirAsk=ใบลดหนี้ใบแจ้งหนี้ที่ถูกต้อง InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/th_TH/companies.lang b/htdocs/langs/th_TH/companies.lang index 9e6f8e210b1..c51b7af54ee 100644 --- a/htdocs/langs/th_TH/companies.lang +++ b/htdocs/langs/th_TH/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=บริษัท CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=ไม่ Vendor=Vendor +Supplier=Vendor AddContact=สร้างรายชื่อผู้ติดต่อ AddContactAddress=สร้างการติดต่อ / ที่อยู่ EditContact=ติดต่อแก้ไข diff --git a/htdocs/langs/th_TH/other.lang b/htdocs/langs/th_TH/other.lang index 8d6d1865935..f1c06d24a6d 100644 --- a/htdocs/langs/th_TH/other.lang +++ b/htdocs/langs/th_TH/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=การแทรกแซง% s ได้รับการตรวจสอบ EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/th_TH/website.lang b/htdocs/langs/th_TH/website.lang index 5b59ac7627d..9b9de86aa07 100644 --- a/htdocs/langs/th_TH/website.lang +++ b/htdocs/langs/th_TH/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index 109fb69160e..abce087b09e 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Muhasebe hesabının bekletilmesi DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 29901665231..4ec639898e0 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -105,7 +105,7 @@ AntiVirusParamExample= ClamWin için örnek: --database="C:\\Program Files (x86) ComptaSetup=Muhasebe modülü ayarları UserSetup=Kullanıcı yönetimi ayarları MultiCurrencySetup=Çoklu para birimi ayarları -MenuLimits=Sınırlar ve doğruluk +MenuLimits=Sınırlar ve Doğruluk MenuIdParent=Ana menü Kimliği DetailMenuIdParent=Ana menü Kimliği (bir üst menü için boş) DetailPosition=Menü konumunu tanımlamak için sıralamanumarası @@ -149,7 +149,7 @@ SystemToolsAreaDesc=Bu alan yönetim işlevlerini sunar. İstenilen özelliği s Purge=Temizleme PurgeAreaDesc=Bu sayfa Dolibarr tarafından oluşturulan veya depolanan tüm dosyaları silmenizi sağlar (%s dizinindeki geçici veya tüm dosyalar). Bu özelliğin kullanılması normalde gerekli değildir. Bu araç, Dolibarr yazılımı web sunucusu tarafından oluşturulan dosyaların silinmesine izin vermeyen bir sağlayıcı tarafından barındırılan kullanıcılar için geçici bir çözüm olarak sunulur. PurgeDeleteLogFile=Syslog modülü için tanımlı %s dosyası da dahil olmak üzere günlük dosyalarını sil (veri kaybetme riskiniz yoktur) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data). Note: Deletion is done only if the temp directory was created 24 hours ago. +PurgeDeleteTemporaryFiles=Tüm geçici dosyaları sil (veri kaybetme riskiniz yoktur). Not: Geçici dizin eğer 24 saat önce oluşturulmuşsa silme işlemi tamamlanır. PurgeDeleteTemporaryFilesShort=Geçici dosyaları sil PurgeDeleteAllFilesInDocumentsDir=%s dizinindeki bütün dosyaları sil.
Bu işlem, öğelerle (üçüncü partiler, faturalar, v.s.) ilgili oluşturulan tüm dosyaları, ECM modülüne yüklenen dosyaları, veritabanı yedekleme dökümlerini ve geçici dosyaları silecektir. PurgeRunNow=Şimdi temizle @@ -160,7 +160,7 @@ PurgeAuditEvents=Tüm güvenlik etkinliklerini temizle ConfirmPurgeAuditEvents=Tüm güvenlik etkinliklerini temizlemek istediğinizden emin misiniz? Tüm güvenlik günlükleri silinecek olup, başka veriler silinmeyecektir. GenerateBackup=Yedekleme oluştur Backup=Yedekleme -Restore=Geri yükleme +Restore=Geri Yükleme RunCommandSummary=Yedekleme aşağıdaki komut ile başlatılmıştır BackupResult=Yedekleme sonucu BackupFileSuccessfullyCreated=Yedekleme dosyası başarıyla oluşturuldu @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Tablodan onay kutuları ExtrafieldLink=Bir nesneye bağlantı ComputedFormula=Hesaplanmış alan 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=PDF oluşturmada kullanılan kütüphane 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=SMS @@ -482,7 +485,7 @@ WatermarkOnDraftExpenseReports=Taslak gider raporlarındaki filigran AttachMainDocByDefault=Ana belgeyi varsayılan olarak e-postaya eklemek istiyorsanız bunu 1 olarak ayarlayın (uygunsa) FilesAttachedToEmail=Dosya ekle SendEmailsReminders=Gündem hatırlatıcılarını e-posta ile gönder -davDescription=Setup a WebDAV server +davDescription=Bir WebDAV sunucusu kurun DAVSetup=DAV modülü kurulumu DAV_ALLOW_PRIVATE_DIR=Enable the generic private directory (WebDAV dedicated directory named "private" - login required) DAV_ALLOW_PRIVATE_DIRTooltip=The generic private directory is a WebDAV directory anybody can access with its application login/pass. @@ -592,7 +595,7 @@ Module2000Name=WYSIWYG düzenleyici Module2000Desc=CKEditor (html) kullanarak metin alanlarının düzenlenmesine/biçimlendirilmesine olanak sağlayın Module2200Name=Dinamik Fiyatlar Module2200Desc=Otomatik fiyat üretimi için matematiksel ifadeler kullanın -Module2300Name=Planlı işler +Module2300Name=Planlı İşler Module2300Desc=Scheduled jobs management (alias cron or chrono table) Module2400Name=Etkinlik/Gündem Module2400Desc=Etkinlikleri takip edin. İzleme amacıyla otomatik etkinlikleri günlüğe geçirin veya manuel etkinlikleri ya da toplantıları kaydedin. Bu, iyi bir Müşteri veya Tedarikçi İlişkileri Yönetimi için temel modüldür. @@ -819,9 +822,9 @@ Permission532=Hizmet oluştur/değiştir Permission534=Hizmet sil Permission536=Gizli hizmetleri gör/yönet Permission538=Hizmet dışaaktar -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Bağış oluştur/değiştir Permission702=Bağış sil Permission703=Bağış sil @@ -844,7 +847,7 @@ Permission1109=Teslim emri sil Permission1121=Read supplier proposals Permission1122=Create/modify supplier proposals Permission1123=Validate supplier proposals -Permission1124=Send supplier proposals +Permission1124=Tedarikçi tekliflerini gönder Permission1125=Delete supplier proposals Permission1126=Close supplier price requests Permission1181=Tedarikçi oku @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1096,8 +1099,8 @@ LogEvents=Güvenlik denetimi etkinlikleri Audit=Denetim InfoDolibarr=Dolibarr Bilgileri InfoBrowser=Tarayıcı Bilgileri -InfoOS=OS Bilgileri -InfoWebServer=Web Sunucusu Hakkında +InfoOS=İşletim Sistemi Bilgileri +InfoWebServer=Web Sunucusu Bilgileri InfoDatabase=Veritabanı Bilgileri InfoPHP=PHP Bilgileri InfoPerf=Performans Bilgileri @@ -1238,7 +1241,7 @@ SetupPerso=Yapılandırmanıza göre PasswordPatternDesc=Parola modeli açıklaması ##### Users setup ##### RuleForGeneratedPasswords=Parola oluşturma ve doğrulama kuralları -DisableForgetPasswordLinkOnLogonPage=Oturum açma sayfasında “Parola mı unutuldu?” bağlantısını gösterme +DisableForgetPasswordLinkOnLogonPage=Oturum açma sayfasında “Parolanızı mı unuttunuz?” bağlantısını gösterme UsersSetup=Kullanıcılar modülü kurulumu UserMailRequired=Yeni bir kullanıcı oluşturmak için e-posta gerekli ##### HRM setup ##### @@ -1924,4 +1927,4 @@ UrlForIFTTT=IFTTT için URL bitiş noktası YouWillFindItOnYourIFTTTAccount=Onu IFTTT hesabınızda bulacaksınız EndPointFor=%s için bitiş noktası: %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/tr_TR/agenda.lang b/htdocs/langs/tr_TR/agenda.lang index b6741221ac2..698842f32e7 100644 --- a/htdocs/langs/tr_TR/agenda.lang +++ b/htdocs/langs/tr_TR/agenda.lang @@ -129,7 +129,7 @@ AddEvent=Etkinlik oluştur MyAvailability=Uygunluğum ActionType=Etkinlik türü DateActionBegin=Etkinlik başlangıç tarihi -ConfirmCloneEvent=%s etkinliğini çoğaltmak istediğinizden emin misiniz? +ConfirmCloneEvent=%s etkinliğinin kopyasını oluşturmak istediğinizden emin misiniz? RepeatEvent=Etkinliği tekrarla EveryWeek=Her hafta EveryMonth=Her ay diff --git a/htdocs/langs/tr_TR/assets.lang b/htdocs/langs/tr_TR/assets.lang index c27d995824a..4c5f9631093 100644 --- a/htdocs/langs/tr_TR/assets.lang +++ b/htdocs/langs/tr_TR/assets.lang @@ -22,13 +22,13 @@ AccountancyCodeAsset = Muhasebe kodu (varlık) AccountancyCodeDepreciationAsset = Muhasebe kodu (amortisman varlık hesabı) AccountancyCodeDepreciationExpense = Muhasebe kodu (amortisman gideri hesabı) NewAssetType=Yeni varlık türü -AssetsTypeSetup=Asset type setup -AssetTypeModified=Asset type modified +AssetsTypeSetup=Varlık türü ayarları +AssetTypeModified=Varlık türü değiştirildi AssetType=Varlık türü AssetsLines=Varlıklar DeleteType=Sil -DeleteAnAssetType=Delete an asset type -ConfirmDeleteAssetType=Are you sure you want to delete this asset type? +DeleteAnAssetType=Bir varlık türü sil +ConfirmDeleteAssetType=Bu varlık türünü silmek istediğinizden emin misiniz? ShowTypeCard='%s' türünü göster # Module label 'ModuleAssetsName' @@ -42,7 +42,7 @@ ModuleAssetsDesc = Varlık açıklaması AssetsSetup = Varlık kurulumu Settings = Ayarlar AssetsSetupPage = Varlık kurulum sayfası -ExtraFieldsAssetsType = Complementary attributes (Asset type) +ExtraFieldsAssetsType = Tamamlayıcı öznitelikler (Varlık türü) AssetsType=Varlık türü AssetsTypeId=Varlık türü ID'si AssetsTypeLabel=Varlık türü etiketi @@ -53,7 +53,7 @@ AssetsTypes=Varlık türleri # MenuAssets = Varlıklar MenuNewAsset = Yeni varlık -MenuTypeAssets = Yeni varlıklar +MenuTypeAssets = Varlık türleri MenuListAssets = Liste MenuNewTypeAssets = Yeni MenuListTypeAssets = Liste diff --git a/htdocs/langs/tr_TR/banks.lang b/htdocs/langs/tr_TR/banks.lang index e3bbbb68146..b2bebf41130 100644 --- a/htdocs/langs/tr_TR/banks.lang +++ b/htdocs/langs/tr_TR/banks.lang @@ -9,13 +9,13 @@ BankAccount=Banka hesabı BankAccounts=Banka hesapları BankAccountsAndGateways=Banka hesapları | Ağ geçitleri ShowAccount=Hesabı Göster -AccountRef=Ticari hesap ref -AccountLabel=Ticari hesap adı +AccountRef=Ticari hesap referansı +AccountLabel=Ticari hesap etiketi CashAccount=Kasa hesabı CashAccounts=Kasa hesapları CurrentAccounts=Cari hesaplar SavingAccounts=Mevduat hesapları -ErrorBankLabelAlreadyExists=Ticari hesap adı zaten var +ErrorBankLabelAlreadyExists=Ticari hesap etiketi zaten var BankBalance=Bakiye BankBalanceBefore=Önceki bakiye BankBalanceAfter=Sonraki bakiye @@ -26,8 +26,8 @@ EndBankBalance=Kapanış bakiyesi CurrentBalance=Güncel bakiye FutureBalance=Gelecek bakiye ShowAllTimeBalance=Bakiyeyi başlangıçtan göster -AllTime=Başlangıç -Reconciliation=Uzlaşma +AllTime=Başlangıçtan +Reconciliation=Uzlaştırma RIB=Banka Hesap Numarası IBAN=IBAN numarası BIC=BIC/SWIFT kodu @@ -37,22 +37,22 @@ IbanValid=BAN geçerli IbanNotValid=BAN geçerli değil StandingOrders=Otomatik Ödeme talimatları StandingOrder=Otomatik ödeme talimatı -AccountStatement=Hesap özeti -AccountStatementShort=Özet -AccountStatements=Hesap özetleri -LastAccountStatements=Son hesap özetleri +AccountStatement=Hesap ekstresi +AccountStatementShort=Ekstre +AccountStatements=Hesap ekstresi +LastAccountStatements=Son hesap ekstreleri IOMonthlyReporting=Aylık raporlama BankAccountDomiciliation=Banka adresi BankAccountCountry=Hesap ülkesi BankAccountOwner=Hesap sahibi adı BankAccountOwnerAddress=Hesap sahibi adresi -RIBControlError=Integrity check of values failed. This means the information for this account number is not complete or is incorrect (check country, numbers and IBAN). +RIBControlError=Değerlerin bütünlük kontrolü başarısız oldu. Bu da, bu hesap numarası bilgilerinin tamamlanmamış veya yanlış olduğu anlamına gelir (ülkeyi, numaraları ve IBAN'ı kontrol edin). CreateAccount=Hesap oluştur NewBankAccount=Yeni hesap NewFinancialAccount=Yeni ticari hesap MenuNewFinancialAccount=Yeni ticari hesap EditFinancialAccount=Hesap düzenle -LabelBankCashAccount=Banka veya kasa adı +LabelBankCashAccount=Banka veya kasa etiketi AccountType=Hesap türü BankType0=Mevduat hesabı BankType1=Vadesiz banka ya da kredi kartı hesabı @@ -65,36 +65,36 @@ Account=Hesap BankTransactionByCategories=Kategorilere göre banka kayıtları BankTransactionForCategory=%s kategorisi için banka kayıtları RemoveFromRubrique=Kategori bağlantısını kaldır -RemoveFromRubriqueConfirm=Giriş ve kategori arasındaki bağlantıyı kaldırmak istediğinizden emin misiniz? +RemoveFromRubriqueConfirm=Kayıt ve kategori arasındaki bağlantıyı kaldırmak istediğinizden emin misiniz? ListBankTransactions=Banka kayıtlarının listesi IdTransaction=İşlem Kimliği BankTransactions=Banka kayıtları -BankTransaction=Banka girişi +BankTransaction=Banka kaydı ListTransactions=Kayıtları listele ListTransactionsByCategory=Kayıtları/Kategorileri listele -TransactionsToConciliate=Uzlaştırılacak girişler +TransactionsToConciliate=Uzlaştırılacak kayıtlar Conciliable=Uzlaştırılabilir Conciliate=Uzlaştır -Conciliation=Uzlaşma -SaveStatementOnly=Yalnızca bildirimi kaydet +Conciliation=Uzlaştırma +SaveStatementOnly=Yalnızca ekstreyi kaydet ReconciliationLate=Uzlaştırma gecikmiş -IncludeClosedAccount=Kapalı hesapları içer +IncludeClosedAccount=Kapalı hesapları dahil et OnlyOpenedAccount=Yalnızca açık hesaplar AccountToCredit=Alacak hesabı AccountToDebit=Borç hesabı -DisableConciliation=Bu hesap için uzlaşma özelliğini engelle -ConciliationDisabled=Uzlaşma özelliği engelli -LinkedToAConciliatedTransaction=Uzlaştırılmış bir girişe bağlı +DisableConciliation=Bu hesap için uzlaşma özelliğini devre dışı bırak +ConciliationDisabled=Uzlaşma özelliği devre dışı +LinkedToAConciliatedTransaction=Uzlaştırılmış bir kayda bağlı StatusAccountOpened=Açık StatusAccountClosed=Kapalı -AccountIdShort=Numarası +AccountIdShort=Numara LineRecord=İşlem -AddBankRecord=Giriş ekle -AddBankRecordLong=El ile giriş ekle +AddBankRecord=Kayıt ekle +AddBankRecordLong=Kaydı manuel olarak ekle Conciliated=Uzlaştırıldı ConciliatedBy=Uzlaştıran DateConciliating=Uzlaştırma tarihi -BankLineConciliated=Giriş uzlaştırıldı +BankLineConciliated=Kayıt uzlaştırıldı Reconciled=Uzlaştırıldı NotReconciled=Uzlaştırılmadı CustomerInvoicePayment=Müşteri ödemesi @@ -104,8 +104,8 @@ WithdrawalPayment=Borç ödeme talimatı SocialContributionPayment=Sosyal/mali vergi ödemesi BankTransfer=Banka havalesi BankTransfers=Banka havaleleri -MenuBankInternalTransfer=İç aktarım -TransferDesc=Transfer from one account to another, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction) +MenuBankInternalTransfer=İç transfer +TransferDesc=Bir hesaptan başka bir hesaba transfer sırasında Dolibarr iki kayıt yazacaktır (kaynak hesaba borç ve hedef hesaba kredi). Bu işlem için aynı tutar (işaret hariç), etiket ve tarih kullanılacaktır. TransferFrom=Kimden TransferTo=Kime TransferFromToDone=%s den %s nin %s %s ne bir transfer kaydedildi. @@ -118,9 +118,9 @@ BankChecks=Banka çekleri BankChecksToReceipt=Ödeme için bekleyen çekler ShowCheckReceipt=Çek tahsilat makbuzunu göster NumberOfCheques=Çek sayısı -DeleteTransaction=Girişi sil -ConfirmDeleteTransaction=Bu girişi silmek istediğinizden emin misiniz? -ThisWillAlsoDeleteBankRecord=Bu, oluşturulan banka girişini de silecektir +DeleteTransaction=Kaydı sil +ConfirmDeleteTransaction=Bu kaydı silmek istediğinizden emin misiniz? +ThisWillAlsoDeleteBankRecord=Bu, oluşturulan banka kaydını da silecektir BankMovements=Hareketler PlannedTransactions=Planlanmış girişler Graph=Grafikler @@ -132,16 +132,16 @@ PaymentNumberUpdateFailed=Ödeme numarası güncellenemedi PaymentDateUpdateSucceeded=Ödeme tarihi güncellemesi başarılı PaymentDateUpdateFailed=Ödeme tarihi güncellenemedi Transactions=İşlemler -BankTransactionLine=Banka girişi +BankTransactionLine=Banka kaydı AllAccounts=Tüm banka ve kasa hesapları BackToAccount=Hesaba geri dön ShowAllAccounts=Tüm hesaplar için göster -FutureTransaction=Future transaction. Unable to reconcile. +FutureTransaction=Gelecekteki işlem. Uzlaştırılamıyor. SelectChequeTransactionAndGenerate=Çek mevduat makbuzuna dahil etmek için çekleri seç/filtrele ve "Oluştur" butonuna tıkla. -InputReceiptNumber=Uzlaştırma ile ilişkili banka hesap özetini seç. Sıralanabilir bir sayısal değer kullan: YYYYMM ya da YYYYMMDD +InputReceiptNumber=Uzlaştırma ile ilişkili banka ekstresini seç. Sıralanabilir bir sayısal değer kullan: YYYYMM ya da YYYYMMDD EventualyAddCategory=Sonunda, kayıtları sınıflandırmak için bir kategori belirtin ToConciliate=Uzlaştırılsın mı? -ThenCheckLinesAndConciliate=Sonra, banka hesap özetindeki kalemleri işaretleyin ve tıklayın +ThenCheckLinesAndConciliate=Sonra, banka hesap özetindeki satırları işaretleyin ve tıklayın DefaultRIB=Varsayılan BAN AllRIB=Tüm BAN LabelRIB=BAN Etiketi @@ -152,18 +152,18 @@ RejectCheck=Çek döndü ConfirmRejectCheck=Bu çeki reddedildi olarak işaretlemek istediğinizden emin misiniz? RejectCheckDate=Dönen çekin tarihi CheckRejected=Çek döndü -CheckRejectedAndInvoicesReopened=Çek döndü ve fatura yeniden açık yapıldı +CheckRejectedAndInvoicesReopened=Çek döndü ve faturalar yeniden açıldı BankAccountModelModule=Banka hesapları için belge şablonları -DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only. +DocumentModelSepaMandate=SEPA yetkisi şablonu. Sadece EEC’deki Avrupa ülkeleri için kullanışlıdır. DocumentModelBan=BAN bilgisini içeren bir sayfayı yazdırmak için şablon -NewVariousPayment=New miscellaneous payment -VariousPayment=Miscellaneous payment +NewVariousPayment=Yeni çeşitli ödeme +VariousPayment=Çeşitli ödeme VariousPayments=Çeşitli ödemeler -ShowVariousPayment=Show miscellaneous payment +ShowVariousPayment=Çeşitli ödemeyi göster AddVariousPayment=Çeşitli ödeme ekle -SEPAMandate=SEPA mandate -YourSEPAMandate=Your SEPA mandate -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to -AutoReportLastAccountStatement=Automatically fill the field 'number of bank statement' with last statement number when making reconciliation +SEPAMandate=SEPA yetkisi +YourSEPAMandate=SEPA yetkiniz +FindYourSEPAMandate=Bu, şirketimizin bankanıza otomatik ödeme talimatı verebilme yetkisi için SEPA yetkinizdir. İmzalayarak iade edin (imzalı belgeyi tarayarak) veya e-mail ile gönderin +AutoReportLastAccountStatement=Uzlaşma yaparken 'banka hesap özeti numarasını' en son hesap özeti numarası ile otomatik olarak doldur CashControl=POS cash fence NewCashFence=New cash fence diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang index c7ea5eba0b8..53d372c93fd 100644 --- a/htdocs/langs/tr_TR/bills.lang +++ b/htdocs/langs/tr_TR/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma fatura InvoiceProFormaDesc=Proforma fatura gerçek faturanın bir görüntüsüdür ancak muhasebe değeri yoktur. InvoiceReplacement=Fatura değiştirme InvoiceReplacementAsk=Fatura değiştirme yapılacak fatura -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=İade faturası InvoiceAvoirAsk=Fatura düzeltmek için iade faturası InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). @@ -323,7 +323,7 @@ PaymentNumber=Ödeme numarası RemoveDiscount=İndirimi kaldır WatermarkOnDraftBill=Taslak faturaların üzerinde filigran (eğer boşsa hiçbirşey yok) InvoiceNotChecked=Seçilen yok fatura -ConfirmCloneInvoice=%s faturasını kopyalamak istediğinizden emin misiniz? +ConfirmCloneInvoice=%s faturasının kopyasını oluşturmak istediğinizden emin misiniz? DisabledBecauseReplacedInvoice=Eylem engellendi, çünkü fatura değiştirilmiştir DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payments during the fixed year are included here. NbOfPayments=Ödeme sayısı diff --git a/htdocs/langs/tr_TR/categories.lang b/htdocs/langs/tr_TR/categories.lang index f2b04bf28ab..9b784c6cb1e 100644 --- a/htdocs/langs/tr_TR/categories.lang +++ b/htdocs/langs/tr_TR/categories.lang @@ -16,7 +16,7 @@ MembersCategoriesArea=Üyeler etiketleri/kategorileri alanı ContactsCategoriesArea=Kişi etiketleri/kategorileri alanı AccountsCategoriesArea=Hesap etiketleri/kategorileri alanı ProjectsCategoriesArea=Proje etiket/kategori alanı -UsersCategoriesArea=Kullanıcı etiketleri/kategorileri alanı +UsersCategoriesArea=Kullanıcı Etiketleri/Kategorileri Alanı SubCats=Alt kategoriler CatList= Etiketler/kategoriler listesi NewCategory=Yeni etiket/kategori diff --git a/htdocs/langs/tr_TR/companies.lang b/htdocs/langs/tr_TR/companies.lang index 52b78fbb0c1..d86609361ce 100644 --- a/htdocs/langs/tr_TR/companies.lang +++ b/htdocs/langs/tr_TR/companies.lang @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Mutlak satıcı indirimleri (tüm kullanıcıla SupplierAbsoluteDiscountMy=Mutlak satıcı indirimleri (tarafınızdan girilen) DiscountNone=Hiçbiri Vendor=Tedarikçi +Supplier=Tedarikçi AddContact=Kişi oluştur AddContactAddress=Kişi/adres oluştur EditContact=Kişi düzenle diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang index 43d301f2742..b25063d0875 100644 --- a/htdocs/langs/tr_TR/compta.lang +++ b/htdocs/langs/tr_TR/compta.lang @@ -230,8 +230,8 @@ ACCOUNTING_ACCOUNT_CUSTOMER=Müşteri üçüncü partileri için kullanılan muh ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Tedarikçi üçüncü partileri için kullanılan muhasebe hesabı ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined. -ConfirmCloneTax=Confirm the clone of a social/fiscal tax -CloneTaxForNextMonth=Sonraki aya kopyala +ConfirmCloneTax=Sosyal/mali vergi kopyasının oluşturulmasını onayla +CloneTaxForNextMonth=Sonraki ay için kopyasını oluştur SimpleReport=Basit rapor AddExtraReport=Extra reports (add foreign and national customer report) OtherCountriesCustomersReport=Yabancı müşteri raporu diff --git a/htdocs/langs/tr_TR/contracts.lang b/htdocs/langs/tr_TR/contracts.lang index 7e77ee65d6d..89a94bed22c 100644 --- a/htdocs/langs/tr_TR/contracts.lang +++ b/htdocs/langs/tr_TR/contracts.lang @@ -85,8 +85,8 @@ ListOfServicesToExpire=Süresi dolacak Hizmetler Listesi NoteListOfYourExpiredServices=Bu listede yalnızca satış temsilcisi olarak atandığınız üçüncü partilere ait hizmet sözleşmeleri bulunur. StandardContractsTemplate=Standart sözleşme kalıbı ContactNameAndSignature=%s için, ad ve imza -OnlyLinesWithTypeServiceAreUsed=Yalnızca "Hizmet" türündeki satırlar klonlanacaktır. -ConfirmCloneContract=%s sözleşmesini kopyalamak istediğinizden emin misiniz? +OnlyLinesWithTypeServiceAreUsed=Yalnızca "Hizmet" türündeki satırların kopyası oluşturulacaktır. +ConfirmCloneContract=%s sözleşmesinin kopyasını oluşturmak istediğinizden emin misiniz? LowerDateEndPlannedShort=Aktif hizmetlerin planlı alt bitiş tarihi SendContractRef=Sözleşme bilgileri __REF__ OtherContracts=Diğer sözleşmeler diff --git a/htdocs/langs/tr_TR/cron.lang b/htdocs/langs/tr_TR/cron.lang index edb5df20f91..34939dd94f3 100644 --- a/htdocs/langs/tr_TR/cron.lang +++ b/htdocs/langs/tr_TR/cron.lang @@ -22,10 +22,10 @@ EnabledAndDisabled=Etkin ve engelli CronLastOutput=En son çalıştırma çıktısı CronLastResult=En son sonuç kodu CronCommand=Komut -CronList=Planlı işler +CronList=Planlı İşler CronDelete=Planlı işleri sil CronConfirmDelete=Bu zamanlanmış işleri silmek istediğinizden emin misiniz? -CronExecute=Planlı işleri yükle +CronExecute=Planlı işi başlat CronConfirmExecute=Bu zamanlanmış işleri şimdi yürütmek istediğinizden emin misiniz? CronInfo=Zamanlanmış iş modülü, işlerin otomatik olarak yürütülmesi için planlanmasına izin verir. İşler manuel olarak da başlatılabilir. CronTask=İş @@ -76,7 +76,7 @@ CronType_method=Call method of a PHP Class CronType_command=Kabuk komutu CronCannotLoadClass=Cannot load class file %s (to use class %s) CronCannotLoadObject=Class file %s was loaded, but object %s was not found into it -UseMenuModuleToolsToAddCronJobs=Planlı işleri görmek ve düzenlemek için "Giriş - Yönetici Ayarları - Planlı işler" menüsüne git. +UseMenuModuleToolsToAddCronJobs=Planlı işleri görmek ve düzenlemek için "Giriş - Yönetici Araçları - Planlı İşler" menüsüne git. JobDisabled=İş engellendi MakeLocalDatabaseDumpShort=Yerel veritabanı yedeklemesi MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang index 37125f78940..714b9d6c9ac 100644 --- a/htdocs/langs/tr_TR/errors.lang +++ b/htdocs/langs/tr_TR/errors.lang @@ -228,8 +228,8 @@ WarningPassIsEmpty=Uyarı, veritabanı parolası boş. Bu bir güvenlik açığ WarningConfFileMustBeReadOnly=Uyarı, web sunucusu tarafından yapılandırma dosyanızın (htdocs/conf/conf.php) üzerine üzerine yazılabilir.Bu ciddi bir güvenlik açığıdır. Web sunucusun kullandığı sistem kullanıcısının çalışması için dosyadaki izinleri sadece okumaya değiştirin. Windows ve disk için FAT biçimini kullanıyorsanız, bu dosya sisteminin dosya izinleri eklemek izin vermediğini bilmelisiniz, bu nedenle tamamen güvenli olamaz. WarningsOnXLines=%s kaynak satırlarındaki uyarılar WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup. -WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file install.lock into directory %s. Omitting the creation of this file is a grave security risk. -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup). +WarningLockFileDoesNotExists=Uyarı: Kurulum tamamlandıktan sonra install.lock dosyasını %s dizinine ekleyerek yükleme/taşıma araçlarını devre dışı bırakmanız gerekir. Bu dosyanın oluşturulmasını ihmal etmek büyük bir güvenlik riskidir. +WarningUntilDirRemoved=Güvenlik açığı bulunduğu sürece tüm güvenlik uyarıları (sadece yönetici olan kullanıcılar tarafından görülür) aktif olarak kalacaktır (Ayarlar->Diğer Ayarlar bölümüne MAIN_REMOVE_INSTALL_WARNING sabitini ekleyerek uyarıları engelleyebilirsiniz). WarningCloseAlways=Uyarı, kaynak ve hedef öğeleri arasında tutar farklı da olsa kapanış yapılır. Bu özelliği dikkatlice etkinleştirin. WarningUsingThisBoxSlowDown=Uyarı, bu kutuyu kullanmak kutuyu gösteren tüm sayfaları ciddi olarak yavaşlatır. WarningClickToDialUserSetupNotComplete=Kullanıcınızın ClickToDial bilgileri ayarı tamamlanmamış (kullanıcı kartınızdaki ClickToDial tabına bakın) diff --git a/htdocs/langs/tr_TR/install.lang b/htdocs/langs/tr_TR/install.lang index 72d3d7dce74..e8c02440978 100644 --- a/htdocs/langs/tr_TR/install.lang +++ b/htdocs/langs/tr_TR/install.lang @@ -11,7 +11,7 @@ ConfFileReload=Yapılandırma dosyasındaki parametreleri yeniden yükleme. PHPSupportSessions=Bu PHP oturumları destekliyor. PHPSupportPOSTGETOk=Bu PHP GÖNDER ve AL değişkenlerini destekliyor. PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. -PHPSupportGD=This PHP supports GD graphical functions. +PHPSupportGD=Bu PHP, GD grafiksel işlevleri destekliyor. PHPSupportCurl=Bu PHP, Curl'u destekliyor. PHPSupportUTF8=Bu PHP, UTF8 işlevlerini destekliyor. PHPSupportIntl=Bu PHP, Intl fonksiyonlarını destekliyor. diff --git a/htdocs/langs/tr_TR/interventions.lang b/htdocs/langs/tr_TR/interventions.lang index f725f6553f2..0a7ffb30836 100644 --- a/htdocs/langs/tr_TR/interventions.lang +++ b/htdocs/langs/tr_TR/interventions.lang @@ -19,7 +19,7 @@ ConfirmDeleteIntervention=Bu müdahaleyi silmek istediğinizden emin misiniz? ConfirmValidateIntervention=Bu müdahaleyi %s adıyla doğrulamak istediğinizden emin misiniz? ConfirmModifyIntervention=Bu müdahaleyi değiştirmek istediğinizden emin misiniz? ConfirmDeleteInterventionLine=Bu müdahale satırını silmek istediğinizden emin misiniz? -ConfirmCloneIntervention=Bu müdahaleyi kopyalamak istediğinizden emin misiniz? +ConfirmCloneIntervention=Bu müdahalenin kopyasını oluşturmak istediğinizden emin misiniz? NameAndSignatureOfInternalContact=Müdahalenin adı ve imzası: NameAndSignatureOfExternalContact=Müşterinin adı ve imzası: DocumentModelStandard=Müdahaleler için standart belge modeli diff --git a/htdocs/langs/tr_TR/mails.lang b/htdocs/langs/tr_TR/mails.lang index dbdba7c025d..4ae97915eae 100644 --- a/htdocs/langs/tr_TR/mails.lang +++ b/htdocs/langs/tr_TR/mails.lang @@ -60,9 +60,9 @@ EMailTestSubstitutionReplacedByGenericValues=Test modunu kullanırken, yedek de MailingAddFile=Bu dosyayı ekle NoAttachedFiles=Ekli dosya yok BadEMail=E-posta için hatalı değer -ConfirmCloneEMailing=Bu e-postayı kopyalamak istediğinizden emin misiniz? -CloneContent=Mesajı klonla -CloneReceivers=Alıcıları klonla +ConfirmCloneEMailing=Bu e-postanın kopyasını oluşturmak istediğinizden emin misiniz? +CloneContent=Mesajın kopyasını oluştur +CloneReceivers=Alıcıların kopyasını oluştur DateLastSend=Son gönderim tarihi DateSending=Gönderme tarihi SentTo=%s ye gönderilen @@ -105,10 +105,10 @@ MailNoChangePossible=Doğrulanmış e-postaların alıcıları değiştirilemez SearchAMailing=Eposta ara SendMailing=E-posta gönder SentBy=Gönderen -MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: +MailingNeedCommand=Bir e-posta gönderimi komut satırından gerçekleştirilebilir. E-postayı tüm alıcılara göndermek için sunucu yöneticinizden aşağıdaki komutu başlatmasını isteyin: MailingNeedCommand2=Bunula birlikte, oturum tarafından gönderilecek ençok e-posta sayılı MAILING_LIMIT_SENDBYWEB parametresini ekleyerek çevrim içi olarak gönderebilirsiniz. Bunu için Giriş-Kurulum-Diğer menüsüne gidin. ConfirmSendingEmailing=Direkt olarak bu ekrandan e-posta göndermek istiyorsanız, lütfen e-postayı tarayıcınızdan şimdi göndermek istediğinizden emin olduğunuzu onaylayın. -LimitSendingEmailing=Not: Web arayüzünden e-posta gönderimi güvenlik ve süre aşımı yüzünden birçok kez yapılmıştır, her gönderme oturumu başına %s alıcıya +LimitSendingEmailing=Not: Web arayüzünden e-posta gönderimi, güvenlik ve süre aşımı nedenlerinden dolayı birkaç defada gerçekleştirilir, her gönderim girişiminde tek seferde %s alıcıya gönderim yapılır. TargetsReset=Listeyi temizle ToClearAllRecipientsClickHere=Bu e-posta alıcı listesini temizlemek için burayı tıkla ToAddRecipientsChooseHere=Listeden seçerek alıcıları ekle diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index 115ca6ceeb0..4edc9cbc7a4 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -92,7 +92,7 @@ NotDefined=Tanımlanmamış DolibarrInHttpAuthenticationSoPasswordUseless=conf.php yapılandırma dosyasındaki Dolibarr kimlik doğrulama modu %s olarak ayarlanmış.
Bu demektir ki; veritabanı parolası Dolibarr dışıdır, yani bu alanı değiştirmek hiçbir etki yaratmaz. Administrator=Yönetici Undefined=Tanımlanmamış -PasswordForgotten=Parola mı unutuldu? +PasswordForgotten=Parolanızı mı unuttunuz? NoAccount=Hesap yok mu? SeeAbove=Yukarı bak HomeArea=Giriş @@ -169,9 +169,9 @@ NotValidated=Doğrulanmadı Save=Kaydet SaveAs=Farklı kaydet TestConnection=Deneme bağlantısı -ToClone=Klonla -ConfirmClone=Çoğaltmak istediğiniz verileri seçin: -NoCloneOptionsSpecified=Klonlanacak hiçbir veri tanımlanmamış. +ToClone=Kopyasını oluştur +ConfirmClone=Kopyasını oluşturmak istediğiniz verileri seçin: +NoCloneOptionsSpecified=Kopyası oluşturulacak hiçbir veri tanımlanmamış. Of=ile ilgili Go=Git Run=Yürüt @@ -333,7 +333,7 @@ Copy=Kopyala Paste=Yapıştır Default=Varsayılan DefaultValue=Varsayılan değer -DefaultValues=Varsayılan değerler/filtreler/sıralama +DefaultValues=Varsayılan Değerler/Filtreler/Sıralama Price=Fiyat PriceCurrency=Fiyat (para birimi) UnitPrice=Birim fiyat @@ -648,7 +648,7 @@ AlreadyRead=Zaten okundu NotRead=Okunmayan NoMobilePhone=Cep telefonu yok Owner=Sahibi -FollowingConstantsWillBeSubstituted=Aşağıdaki değişmezler uygun değerlerin yerine konacaktır. +FollowingConstantsWillBeSubstituted=Aşağıdaki değişmezler uygun değerlerin yerine konacaktır Refresh=Yenile BackToList=Listeye dön GoBack=Geri dön @@ -710,7 +710,7 @@ AddNewLine=Yeni satır ekle AddFile=Dosya ekle FreeZone=Önceden tanımlanmış bir ürün/hizmet değil FreeLineOfType=Serbest metin öğesi, tür: -CloneMainAttributes=Nesneyi ana öznitelikleri ile klonla +CloneMainAttributes=Ana öznitelikleri ile birlikte nesnenin kopyasını oluştur. ReGeneratePDF=PDF'yi yeniden oluştur PDFMerge=PDF Birleştir Merge=Birleştir @@ -875,7 +875,7 @@ TitleSetToDraft=Taslağa geri dön ConfirmSetToDraft=Taslak durumuna geri dönmek istediğinizden emin misiniz? ImportId=İçe aktarma ID'si Events=Etkinlikler -EMailTemplates=E-posta şablonları +EMailTemplates=E-posta Şablonları FileNotShared=File not shared to external public Project=Proje Projects=Projeler diff --git a/htdocs/langs/tr_TR/orders.lang b/htdocs/langs/tr_TR/orders.lang index dbe2d77cbf0..eb87dc59bf9 100644 --- a/htdocs/langs/tr_TR/orders.lang +++ b/htdocs/langs/tr_TR/orders.lang @@ -110,7 +110,7 @@ OrderMode=Sipariş yöntemi AuthorRequest=Siparişi yazan UserWithApproveOrderGrant=Kullanıcılara "sipariş onaylama" izin hakkı verilmiştir.. PaymentOrderRef=Sipariş %s ödemesi -ConfirmCloneOrder=Bu siparişi kopyalamak istediğinizden emin misiniz %s? +ConfirmCloneOrder=%s siparişinin kopyasını oluşturmak istediğinizden emin misiniz? DispatchSupplierOrder=Receiving purchase order %s FirstApprovalAlreadyDone=İlk onay zaten yapılmış SecondApprovalAlreadyDone=İkinci onaylama zaten yapılmış diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang index 89e49e2cdfe..913cef5ab06 100644 --- a/htdocs/langs/tr_TR/other.lang +++ b/htdocs/langs/tr_TR/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Müşteri faturalarının sayısı NumberOfSupplierProposals=Tedarikçi tekliflerinin sayısı NumberOfSupplierOrders=Tedarikçi siparişi sayısı NumberOfSupplierInvoices=Tedarikçi siparişlerinin sayısı +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Tekliflerdeki birim sayısı NumberOfUnitsCustomerOrders=Müşteri siparişlerindeki birim sayısı NumberOfUnitsCustomerInvoices=Müşteri faturalarındaki birim sayısı NumberOfUnitsSupplierProposals=Tedarikçi tekliflerinde yer alan birim sayısı NumberOfUnitsSupplierOrders=Tedarikçi siparişlerindeki birim sayısı NumberOfUnitsSupplierInvoices=Tedarikçi faturalarındaki birim sayısı +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=Yeni bir müdahale %s size atandı. EMailTextInterventionValidated=Müdahele %s doğrulanmıştır. EMailTextInvoiceValidated=Fatura %s doğrulandı. diff --git a/htdocs/langs/tr_TR/products.lang b/htdocs/langs/tr_TR/products.lang index 5266a52fe58..46b15d67da5 100644 --- a/htdocs/langs/tr_TR/products.lang +++ b/htdocs/langs/tr_TR/products.lang @@ -77,7 +77,7 @@ CantBeLessThanMinPrice=Satış fiyatı bu ürün için izin verilen en düşük ContractStatusClosed=Kapalı ErrorProductAlreadyExists=%s Referanslı bir ürün zaten var var. ErrorProductBadRefOrLabel=Referans veya etiket için yanlış değer. -ErrorProductClone=Ürün ya da hizmetin klonlanmasına çalışılırken bir sorun oluştu. +ErrorProductClone=Ürün ya da hizmetin kopyasını oluşturmaya çalışırken bir sorun oluştu. ErrorPriceCantBeLowerThanMinPrice=Hata, fiyat en düşük fiyattan daha düşük olamaz. Suppliers=Tedarikçiler SupplierRef=Tedarikçi Ürün Kodu @@ -145,11 +145,11 @@ ListProductByPopularity=Popülerliğine göre ürün listesi ListServiceByPopularity=Popülerliğine göre hizmetler listesi Finished=Bitmiş ürün RowMaterial=Ham madde -ConfirmCloneProduct=%s ürünü ve siparişi klonlamak istediğinizden emin misiniz? -CloneContentProduct=Ürün/hizmet ile ilgili tüm temel bilgileri kopyalayın -ClonePricesProduct=Fiyatları çoğalt -CloneCompositionProduct=Sanal ürünü/hizmeti çoğalt (kopyala) -CloneCombinationsProduct=Ürün varyantlarını kopyala +ConfirmCloneProduct=%s ürünü ve siparişinin kopyasını oluşturmak istediğinizden emin misiniz? +CloneContentProduct=Ürün/hizmet ile ilgili tüm temel bilgilerin kopyasını oluştur +ClonePricesProduct=Fiyatların kopyasını oluştur +CloneCompositionProduct=Sanal ürünü/hizmetin kopyasını oluştur +CloneCombinationsProduct=Ürün değişkenlerinin kopyasını oluştur ProductIsUsed=Bu ürün kullanılır. NewRefForClone=Yeni ürün/hizmet ref. SellingPrices=Satış fiyatları diff --git a/htdocs/langs/tr_TR/projects.lang b/htdocs/langs/tr_TR/projects.lang index d0aeae12e7d..76bf661efa6 100644 --- a/htdocs/langs/tr_TR/projects.lang +++ b/htdocs/langs/tr_TR/projects.lang @@ -134,13 +134,13 @@ TaskIsNotAssignedToUser=Görev kullanıcıya atanmadı. Görevi şimdi atamak i ErrorTimeSpentIsEmpty=Harcanan süre boş ThisWillAlsoRemoveTasks=Bu eylem aynı zamanda projenin tüm görevlerini (şu andaki %s görevleri) ve tüm harcanan süre girişlernii siler . IfNeedToUseOtherObjectKeepEmpty=Eğer bazı nesneler başka bir üçüncü partiye aitse (fatura, sipariş, ...), oluşturulması için bu projeye bağlanmalıdır, projenin birden çok üçüncü partiye bağlı olması için bunu boş bırakın. -CloneTasks=Görev klonla -CloneContacts=Kişi klonla -CloneNotes=Not klonla -CloneProjectFiles=Birleşik proje dosyalarını kopyala +CloneTasks=Görevlerin kopyasını oluştur +CloneContacts=Kişilerin kopyasını oluştur +CloneNotes=Notların kopyasını oluştur +CloneProjectFiles=Dosyalara eklenen projenin kopyasını oluştur CloneTaskFiles=Birleşik görev(ler) dosyalarını kopyala (görev(ler) kopyalanmışsa) CloneMoveDate=Proje/görev tarihleri şu andan itibaren güncellensin mi? -ConfirmCloneProject=Bu projeyi kopyalamak istediğinizden emin misiniz? +ConfirmCloneProject=Bu projenin kopyasını oluşturmak istediğinizden emin misiniz? ProjectReportDate=Change task dates according to new project start date ErrorShiftTaskDate=Görev tarihini yeni proje başlama tarihine göre kaydırmak olası değil ProjectsAndTasksLines=Projeler ve görevler diff --git a/htdocs/langs/tr_TR/propal.lang b/htdocs/langs/tr_TR/propal.lang index ea4962de9ab..360c19f714d 100644 --- a/htdocs/langs/tr_TR/propal.lang +++ b/htdocs/langs/tr_TR/propal.lang @@ -56,7 +56,7 @@ CopyPropalFrom=Varolan teklifi kopyalayarak teklif oluştur CreateEmptyPropal=Boş veya Ürünler/Hizmetler listesinden ticari teklif oluştur DefaultProposalDurationValidity=Varsayılan teklif geçerlilik süresi (gün olarak) UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address -ConfirmClonePropal=Ticari teklifi çoğaltmak istediğinizden emin misiniz? %s? +ConfirmClonePropal=%s teklifinin kopyasını oluşturmak istediğinizden emin misiniz? ConfirmReOpenProp=Ticari teklifi geri açmak istediğinizden emin misiniz %s? ProposalsAndProposalsLines=Teklif ve satırları ProposalLine=Teklif satırı diff --git a/htdocs/langs/tr_TR/resource.lang b/htdocs/langs/tr_TR/resource.lang index 25e8cbd1af6..16d96685df4 100644 --- a/htdocs/langs/tr_TR/resource.lang +++ b/htdocs/langs/tr_TR/resource.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - resource MenuResourceIndex=Kaynaklar -MenuResourceAdd=Yeni kaynaklar +MenuResourceAdd=Yeni Kaynaklar DeleteResource=Kaynak sil ConfirmDeleteResourceElement=Bu öğe için kaynağı silmeyi onayla NoResourceInDatabase=Veritabanında kaynak yok NoResourceLinked=Bağlantılı kaynak yok - +ActionsOnResource=Bu kaynakla ilgili etkinlikler ResourcePageIndex=Kaynak listesi ResourceSingular=Kaynak ResourceCard=Kaynak kartı diff --git a/htdocs/langs/tr_TR/supplier_proposal.lang b/htdocs/langs/tr_TR/supplier_proposal.lang index 9e120f15ccb..f623341419c 100644 --- a/htdocs/langs/tr_TR/supplier_proposal.lang +++ b/htdocs/langs/tr_TR/supplier_proposal.lang @@ -34,7 +34,7 @@ SupplierProposalStatusSignedShort=Kabul edildi SupplierProposalStatusNotSignedShort=Reddedildi CopyAskFrom=Varolan bir isteği kopyalayarak fiyat isteği oluştur CreateEmptyAsk=Boş istek oluştur -ConfirmCloneAsk=Fiyat talebini çoğaltmak istediğinizden emin misiniz %s? +ConfirmCloneAsk=%s fiyat talebinin kopyasını oluşturmak istediğinizden emin misiniz? ConfirmReOpenAsk=Fiyat talebini geri açmak istediğinizden emin misiniz %s? SendAskByMail=Fiyat isteğini e-posta ile gönder SendAskRef=Fiyat isteği %s gönderiliyor diff --git a/htdocs/langs/tr_TR/ticket.lang b/htdocs/langs/tr_TR/ticket.lang index 0f9c9ce4fde..5d03c756d59 100644 --- a/htdocs/langs/tr_TR/ticket.lang +++ b/htdocs/langs/tr_TR/ticket.lang @@ -268,7 +268,7 @@ SeeThisTicketIntomanagementInterface=Yönetim arayüzünde destek bildirimini g TicketPublicInterfaceForbidden=Destek bildirimi için genel arayüz etkin değil ErrorEmailOrTrackingInvalid=Takip numarası veya e-posta için hatalı değer OldUser=Eski kullanıcı -NewUser=Yeni kullanıcı +NewUser=Yeni Kullanıcı NumberOfTicketsByMonth=Aylık destek bildirim sayısı NbOfTickets=Destek bildirim sayısı # notifications diff --git a/htdocs/langs/tr_TR/trips.lang b/htdocs/langs/tr_TR/trips.lang index 03783401b6c..dfb2ee21b93 100644 --- a/htdocs/langs/tr_TR/trips.lang +++ b/htdocs/langs/tr_TR/trips.lang @@ -109,7 +109,7 @@ NoTripsToExportCSV=Bu dönem için dışaaktarılacak gider raporu yok. ExpenseReportPayment=Gider raporu ödemesi ExpenseReportsToApprove=Onaylanacak gider raporları ExpenseReportsToPay=Ödenecek gider raporları -ConfirmCloneExpenseReport=Bu gider raporunu kopyalamak istediğinizden emin misiniz? +ConfirmCloneExpenseReport=Bu gider raporunun kopyasını oluşturmak istediğinizden emin misiniz? ExpenseReportsIk=Expense report milles index ExpenseReportsRules=Gider raporu kuralları ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers diff --git a/htdocs/langs/tr_TR/users.lang b/htdocs/langs/tr_TR/users.lang index 21feef75fa1..50b800b2d52 100644 --- a/htdocs/langs/tr_TR/users.lang +++ b/htdocs/langs/tr_TR/users.lang @@ -26,11 +26,11 @@ ConfirmDeleteGroup=%s grubunu silmek istediğinizden emin misiniz? ConfirmEnableUser=%s kullanıcısını etkinleştirmek istediğinizden emin misiniz? ConfirmReinitPassword=%skullanıcısı için yeni bir şifre oluşturmak istediğinizden emin misiniz? ConfirmSendNewPassword=%s kullanıcısı için yeni şifre oluşturmak ve göndermek istediğinizden emin misiniz? -NewUser=Yeni kullanıcı +NewUser=Yeni Kullanıcı CreateUser=Kullanıcı oluştur LoginNotDefined=Kullanıcı adı tanımlı değil. NameNotDefined=Ad tanımlı değil. -ListOfUsers=Kullanıcı listesi +ListOfUsers=Kullanıcı Listesi SuperAdministrator=Süper Yönetici SuperAdministratorDesc=Yöneticinin tüm hakları AdministratorDesc=Yönetici @@ -39,8 +39,8 @@ DefaultRightsDesc=Burada, yeni bir kullanıcıya otomatik olarak verilen DolibarrUsers=Dolibarr kullanıcıları LastName=Soyadı FirstName=Adı -ListOfGroups=Grupların listesi -NewGroup=Yeni grup +ListOfGroups=Grupların Listesi +NewGroup=Yeni Grup CreateGroup=Grup oluştur RemoveFromGroup=Gruptan kaldır PasswordChangedAndSentTo=Parola değiştirildi ve %s e gönderildi. @@ -96,7 +96,7 @@ NbOfUsers=Kullanıcı sayısı NbOfPermissions=İzinlerin sayısı DontDowngradeSuperAdmin=Yalnızca bir SuperAdmin, bir SuperAdmin’inin derecesini düşürebilir HierarchicalResponsible=Yönetici -HierarchicView=Sıradüzeni görünümü +HierarchicView=Sıradüzeni Görünümü UseTypeFieldToChange=Değiştirmek için Alan türünü kullan OpenIDURL=OpenID URL LoginUsingOpenID=Oturum açmak için OpenID kullan diff --git a/htdocs/langs/tr_TR/website.lang b/htdocs/langs/tr_TR/website.lang index 85648d7cc51..9914ef2475d 100644 --- a/htdocs/langs/tr_TR/website.lang +++ b/htdocs/langs/tr_TR/website.lang @@ -53,8 +53,8 @@ YouCanCreatePageOrImportTemplate=Yeni bir sayfa oluşturabilir veya tam bir web SyntaxHelp=Belirli sözdizimi ipuçları hakkında yardım YouCanEditHtmlSourceckeditor=Düzenleyicideki "Kaynak" düğmesini kullanarak HTML kaynak kodunu düzenleyebilirsiniz YouCanEditHtmlSource=
You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.

You can also include content of another Page/Container with the following syntax:
<?php includeContainer('alias_of_container_to_include'); ?>

You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):
<?php redirectToContainer('alias_of_container_to_redirect_to'); ?>

To add a link to another page, use the syntax:
<a href="alias_of_page_to_link_to.php">mylink<a>

To include a link to download a file stored into the documents directory, use the document.php wrapper:
Example, for a file into documents/ecm (need to be logged), syntax is:
<a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext">
For a file into documents/medias (open directory for public access), syntax is:
<a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext">
For a file shared with a share link (open access using the sharing hash key of file), syntax is:
<a href="/document.php?hashp=publicsharekeyoffile">

To include an image stored into the documents directory, use the viewimage.php wrapper:
Example, for an image into documents/medias (open directory for public access), syntax is:
<img src="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
-ClonePage=Sayfa/kapsayıcı kopyala -CloneSite=Siteyi kopyala +ClonePage=Sayfa/kapsayıcı kopyasını oluştur +CloneSite=Sitenin kopyasını oluştur SiteAdded=Web sitesi eklendi ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page. PageIsANewTranslation=Yeni sayfa mevcut sayfanın çevirisi mi? @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=Henüz bir web sitesi oluşturulmadı. Önce bir tane ol GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Web sitesi içeriğini değiştir +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Bu web sitesine özgü tüm javascript dosyaları da silinsin mi? DeleteAlsoMedias=Bu web sitesine özgü tüm medya dosyaları da silinsin mi? # Export diff --git a/htdocs/langs/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang index 2f8b14ad135..2c0c96bb664 100644 --- a/htdocs/langs/uk_UA/accountancy.lang +++ b/htdocs/langs/uk_UA/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang index fe7d48b8ac7..2aa26a32a3b 100644 --- a/htdocs/langs/uk_UA/admin.lang +++ b/htdocs/langs/uk_UA/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/uk_UA/bills.lang b/htdocs/langs/uk_UA/bills.lang index 3c30ae87f85..667a89a60fe 100644 --- a/htdocs/langs/uk_UA/bills.lang +++ b/htdocs/langs/uk_UA/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Рахунок проформа InvoiceProFormaDesc=Рахунок проформа є образом оригінального рахунку, але не має бухгалтерського облікового запису. InvoiceReplacement=Заміна рахунка-фактури InvoiceReplacementAsk=Заміна рахунка-фактури на інший -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Кредитове авізо InvoiceAvoirAsk=Кредитове авізо для коригування рахунка-фактури InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/uk_UA/companies.lang b/htdocs/langs/uk_UA/companies.lang index 499828f5eac..96ef561910b 100644 --- a/htdocs/langs/uk_UA/companies.lang +++ b/htdocs/langs/uk_UA/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/uk_UA/other.lang b/htdocs/langs/uk_UA/other.lang index a6802140be3..8a5ccdbab5c 100644 --- a/htdocs/langs/uk_UA/other.lang +++ b/htdocs/langs/uk_UA/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/uk_UA/website.lang b/htdocs/langs/uk_UA/website.lang index 2f387580ebc..55d7800c55c 100644 --- a/htdocs/langs/uk_UA/website.lang +++ b/htdocs/langs/uk_UA/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang index bb141cb9eb0..758d9c340a5 100644 --- a/htdocs/langs/uz_UZ/accountancy.lang +++ b/htdocs/langs/uz_UZ/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang index 9eaa12ec9be..f30d6edd9f7 100644 --- a/htdocs/langs/uz_UZ/admin.lang +++ b/htdocs/langs/uz_UZ/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Create/modify services Permission534=Delete services Permission536=See/manage hidden services Permission538=Export services -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Read donations Permission702=Create/modify donations Permission703=Delete donations @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/uz_UZ/bills.lang b/htdocs/langs/uz_UZ/bills.lang index c9d46e4ffff..4f114d4df1c 100644 --- a/htdocs/langs/uz_UZ/bills.lang +++ b/htdocs/langs/uz_UZ/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. InvoiceReplacement=Replacement invoice InvoiceReplacementAsk=Replacement invoice for invoice -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Credit note InvoiceAvoirAsk=Credit note to correct invoice InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/uz_UZ/companies.lang b/htdocs/langs/uz_UZ/companies.lang index 77bd4f8a445..578f5cb8920 100644 --- a/htdocs/langs/uz_UZ/companies.lang +++ b/htdocs/langs/uz_UZ/companies.lang @@ -28,7 +28,7 @@ AliasNames=Alias name (commercial, trademark, ...) AliasNameShort=Alias Name Companies=Companies CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=None Vendor=Vendor +Supplier=Vendor AddContact=Create contact AddContactAddress=Create contact/address EditContact=Edit contact diff --git a/htdocs/langs/uz_UZ/other.lang b/htdocs/langs/uz_UZ/other.lang index a6802140be3..8a5ccdbab5c 100644 --- a/htdocs/langs/uz_UZ/other.lang +++ b/htdocs/langs/uz_UZ/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang index f5d169e2819..68b3358d211 100644 --- a/htdocs/langs/vi_VN/accountancy.lang +++ b/htdocs/langs/vi_VN/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang index 788eb246e10..634eb06628e 100644 --- a/htdocs/langs/vi_VN/admin.lang +++ b/htdocs/langs/vi_VN/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=Hộp đánh dấu từ bảng ExtrafieldLink=Liên kết với một đối tượng ComputedFormula=Computed field 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=Library used for PDF generation 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=SMS @@ -819,9 +822,9 @@ Permission532=Tạo/chỉnh sửa dịch vụ Permission534=Xóa dịch vụ Permission536=Xem/quản lý dịch vụ ẩn Permission538=Xuất dữ liệu Dịch vụ -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=Đọc thông tin Tài trợ Permission702=Tạo/sửa đổi Tài trợ Permission703=Xóa tài trợ @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1038,24 +1041,24 @@ Host=Máy chủ DriverType=Driver type SummarySystem=Tóm tắt thông tin hệ thống SummaryConst=Danh sách của tất cả các thông số cài đặt Dolibarr -MenuCompanySetup=Company/Organization +MenuCompanySetup=Thông Tin Công ty/Tổ chức DefaultMenuManager= Quản lý menu chuẩn DefaultMenuSmartphoneManager=Quản lý menu smartphone Skin=Chủ đề giao diện DefaultSkin=Chủ đề giao diện mặc định MaxSizeList=Chiều dài tối đa cho danh sách DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card) +DefaultMaxSizeShortList=Độ dài tối đa mặc định cho danh sách ngắn (ví dụ: trong thẻ khách hàng) MessageOfDay=Tin trong ngày MessageLogin=Tin trang đăng nhập -LoginPage=Login page -BackgroundImageLogin=Background image +LoginPage=Trang đăng nhập +BackgroundImageLogin=Hình nền PermanentLeftSearchForm=Forrm tìm kiếm cố định trên menu bên trái -DefaultLanguage=Default language +DefaultLanguage=Ngôn ngữ mặc định EnableMultilangInterface=Enable multilanguage support EnableShowLogo=Hiển thị logo trên menu bên trái -CompanyInfo=Company/Organization -CompanyIds=Company/Organization identities +CompanyInfo=Thông Tin Công ty/Tổ chức +CompanyIds=Danh tính công ty / tổ chức CompanyName=Tên CompanyAddress=Địa chỉ CompanyZip=Zip @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/vi_VN/bills.lang b/htdocs/langs/vi_VN/bills.lang index 81329694431..d04d4324fcd 100644 --- a/htdocs/langs/vi_VN/bills.lang +++ b/htdocs/langs/vi_VN/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=Hóa đơn hình thức InvoiceProFormaDesc=Hóa đơn hình thức là một hình ảnh của một hóa đơn thực, nhưng không có giá trị kế toán. InvoiceReplacement=Hóa đơn thay thế InvoiceReplacementAsk=Hóa đơn thay thế cho hóa đơn -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=Giấy báo có InvoiceAvoirAsk=Giấy báo có để chỉnh sửa hóa đơn InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/vi_VN/companies.lang b/htdocs/langs/vi_VN/companies.lang index 9b4d372c507..521bc7dd9a4 100644 --- a/htdocs/langs/vi_VN/companies.lang +++ b/htdocs/langs/vi_VN/companies.lang @@ -28,7 +28,7 @@ AliasNames=Tên viết tắt (tài chính, thương hiệu) AliasNameShort=Alias Name Companies=Các công ty CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Không Vendor=Vendor +Supplier=Vendor AddContact=Tạo liên lạc AddContactAddress=Tạo liên lạc/địa chỉ EditContact=Sửa liên lạc diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang index 773fafc037d..145e971080c 100644 --- a/htdocs/langs/vi_VN/main.lang +++ b/htdocs/langs/vi_VN/main.lang @@ -438,7 +438,7 @@ ActionRunningShort=In progress ActionDoneShort=Đã hoàn tất ActionUncomplete=Incomplete LatestLinkedEvents=Latest %s linked events -CompanyFoundation=Company/Organization +CompanyFoundation=Thông Tin Công ty/Tổ chức Accountant=Accountant ContactsForCompany=Liên lạc cho bên thứ ba này ContactsAddressesForCompany=Liên lạc/địa chỉ cho bên thứ ba này diff --git a/htdocs/langs/vi_VN/other.lang b/htdocs/langs/vi_VN/other.lang index 85181e6ae01..b972dccd38f 100644 --- a/htdocs/langs/vi_VN/other.lang +++ b/htdocs/langs/vi_VN/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=Sự can thiệp% s đã được xác nhận. EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/vi_VN/website.lang b/htdocs/langs/vi_VN/website.lang index 3bc8b32f9f0..becbd99d3ac 100644 --- a/htdocs/langs/vi_VN/website.lang +++ b/htdocs/langs/vi_VN/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang index 402922e3079..1d3e23e0f66 100644 --- a/htdocs/langs/zh_CN/accountancy.lang +++ b/htdocs/langs/zh_CN/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=会计科目-等待 DONATION_ACCOUNTINGACCOUNT=会计科目-登记捐款 diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index 6373129e03e..93299ace4fa 100644 --- a/htdocs/langs/zh_CN/admin.lang +++ b/htdocs/langs/zh_CN/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=表格中的复选框 ExtrafieldLink=连接到对象 ComputedFormula=计算字段 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=已使用资料库以支持生成PDF文件 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=短信 @@ -819,9 +822,9 @@ Permission532=创建/变更服务 Permission534=删除服务 Permission536=查看/隐藏服务管理 Permission538=导出服务 -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=读取捐款资料 Permission702=创建/变更捐款资料 Permission703=删除捐款资料 @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/zh_CN/bills.lang b/htdocs/langs/zh_CN/bills.lang index 050f8cca90a..f4dd4ef5c4e 100644 --- a/htdocs/langs/zh_CN/bills.lang +++ b/htdocs/langs/zh_CN/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=形式发票 InvoiceProFormaDesc=形式发票是发票的形式,但其没有真正的会计价值。 InvoiceReplacement=更换发票 InvoiceReplacementAsk=为发票更换发票 -InvoiceReplacementDesc=Replacement invoice is used to cancel and completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=信用记录 InvoiceAvoirAsk=更正发票的信用记录 InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/zh_CN/companies.lang b/htdocs/langs/zh_CN/companies.lang index eed56f75f47..75d57bf28d8 100644 --- a/htdocs/langs/zh_CN/companies.lang +++ b/htdocs/langs/zh_CN/companies.lang @@ -28,7 +28,7 @@ AliasNames=别名(商号,商标,...) AliasNameShort=别名 Companies=公司 CountryIsInEEC=Country is inside the European Economic Community -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=绝对供应商折扣(由所有用户输入 SupplierAbsoluteDiscountMy=绝对供应商折扣(由您自己输入) DiscountNone=无 Vendor=Vendor +Supplier=Vendor AddContact=创建联系人 AddContactAddress=创建联系人/地址 EditContact=编辑联系人/地址 diff --git a/htdocs/langs/zh_CN/other.lang b/htdocs/langs/zh_CN/other.lang index 81364a5ce11..b493c21cea8 100644 --- a/htdocs/langs/zh_CN/other.lang +++ b/htdocs/langs/zh_CN/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=客户发票数量 NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=提案上的单位数量 NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=客户发票上的单位数量 NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=干预%s已被验证。 EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/zh_CN/website.lang b/htdocs/langs/zh_CN/website.lang index a92bfcf66ad..377f56e059b 100644 --- a/htdocs/langs/zh_CN/website.lang +++ b/htdocs/langs/zh_CN/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export diff --git a/htdocs/langs/zh_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang index be9027cf959..97893293e5c 100644 --- a/htdocs/langs/zh_TW/accountancy.lang +++ b/htdocs/langs/zh_TW/accountancy.lang @@ -158,6 +158,7 @@ ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer +TransitionalAccount=Transitional bank transfer account ACCOUNTING_ACCOUNT_SUSPENSE=等待的會計項目 DONATION_ACCOUNTINGACCOUNT=註冊捐款的會計項目 diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index e139e03077d..107124b2198 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/admin.lang @@ -422,6 +422,8 @@ ExtrafieldCheckBoxFromList=從表格來的確認框 ExtrafieldLink=連線到物件 ComputedFormula=計算欄位 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->fetch($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->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($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) 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
... @@ -429,6 +431,7 @@ ExtrafieldParamHelpradio=List of values must be lines with format key,value (whe ExtrafieldParamHelpsellist=List of values comes from a table
Syntax: table_name:label_field:id_field::filter
Example: c_typent:libelle:id::filter

- idfilter 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 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 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
Examples:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelpSeparator=Keep empty for a simple separator
Set this to 1 for a collapsing separator (open by default)
Set this to 2 for a collapsing separator (collapsed by default) LibraryToBuildPDF=PDF產生器使用程式庫 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=簡訊 @@ -819,9 +822,9 @@ Permission532=建立/修改服務 Permission534=刪除服務 Permission536=查看/管理隱藏服務 Permission538=匯出服務 -Permission650=Read bom of Bom -Permission651=Create/Update bom of Bom -Permission652=Delete bom of Bom +Permission650=Read Bills of Materials +Permission651=Create/Update Bills of Materials +Permission652=Delete Bills of Materials Permission701=讀取捐款 Permission702=建立/修改捐款 Permission703=刪除捐款 @@ -911,7 +914,7 @@ Permission50414=Delete operations in ledger Permission50415=Delete all operations by year and journal in ledger Permission50418=Export operations of the ledger Permission50420=Report and export reports (turnover, balance, journals, ledger) -Permission50430=Define and close a fiscal year +Permission50430=Define and close a fiscal period Permission50440=Manage chart of accounts, setup of accountancy Permission51001=Read assets Permission51002=Create/Update assets @@ -1924,4 +1927,4 @@ UrlForIFTTT=URL endpoint for IFTTT YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector -ConfirmDeleteEmailCollector=Are you sure you want to delete this email collectore? +ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? diff --git a/htdocs/langs/zh_TW/bills.lang b/htdocs/langs/zh_TW/bills.lang index 9733329db6b..c4f511537f2 100644 --- a/htdocs/langs/zh_TW/bills.lang +++ b/htdocs/langs/zh_TW/bills.lang @@ -25,7 +25,7 @@ InvoiceProFormaAsk=形式發票 InvoiceProFormaDesc=形式發票是發票的形象,但沒有真實的會計價值。 InvoiceReplacement=更換發票 InvoiceReplacementAsk=更換發票的發票 -InvoiceReplacementDesc=更換發票僅用於取消或代替未付款項但已收貨的發票。

注意:僅有未付款發票才可被更換。若被更換發票尚未被關閉,系統將自動'放棄'此發票。 +InvoiceReplacementDesc=Replacement invoice is used to completely replace an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. InvoiceAvoir=貸方通知單 InvoiceAvoirAsk=貸方通知單到正確發票 InvoiceAvoirDesc=The credit note is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned). diff --git a/htdocs/langs/zh_TW/companies.lang b/htdocs/langs/zh_TW/companies.lang index f8750f08d2e..af9bea70e1e 100644 --- a/htdocs/langs/zh_TW/companies.lang +++ b/htdocs/langs/zh_TW/companies.lang @@ -28,7 +28,7 @@ AliasNames=別名(商業的,商標,...) AliasNameShort=別名 Companies=公司 CountryIsInEEC=在歐盟區的國家 -PriceFormatInCurrentLanguage=Price format in current language +PriceFormatInCurrentLanguage=Price display format in the current language and currency ThirdPartyName=Third-party name ThirdPartyEmail=Third-party email ThirdParty=Third-party @@ -287,6 +287,7 @@ SupplierAbsoluteDiscountAllUsers=完整的供應商折扣(由全體用戶授 SupplierAbsoluteDiscountMy=完整的供應商折扣(由您授權) DiscountNone=無 Vendor=供應商 +Supplier=供應商 AddContact=建立聯絡人資訊 AddContactAddress=建立聯絡資訊及地址 EditContact=編輯聯絡人/地址 diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang index 36361e8dcef..d894069ac8b 100644 --- a/htdocs/langs/zh_TW/other.lang +++ b/htdocs/langs/zh_TW/other.lang @@ -184,12 +184,14 @@ NumberOfCustomerInvoices=Number of customer invoices NumberOfSupplierProposals=Number of vendor proposals NumberOfSupplierOrders=Number of purchase orders NumberOfSupplierInvoices=Number of vendor invoices +NumberOfContracts=Number of contracts NumberOfUnitsProposals=提案/建議書的單位數量 NumberOfUnitsCustomerOrders=Number of units on sales orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices NumberOfUnitsSupplierProposals=Number of units on vendor proposals NumberOfUnitsSupplierOrders=Number of units on purchase orders NumberOfUnitsSupplierInvoices=Number of units on vendor invoices +NumberOfUnitsContracts=Number of units on contracts EMailTextInterventionAddedContact=A new intervention %s has been assigned to you. EMailTextInterventionValidated=幹預%s已被驗證。 EMailTextInvoiceValidated=Invoice %s has been validated. diff --git a/htdocs/langs/zh_TW/website.lang b/htdocs/langs/zh_TW/website.lang index 82a20e8535b..5b9f2881147 100644 --- a/htdocs/langs/zh_TW/website.lang +++ b/htdocs/langs/zh_TW/website.lang @@ -98,7 +98,7 @@ NoWebSiteCreateOneFirst=No website has been created yet. Create one first. GoTo=Go to DynamicPHPCodeContainsAForbiddenInstruction=You add dynamic PHP code that contains the PHP instruction '%s' that is forbidden by default as dynamic content (see hidden options WEBSITE_PHP_ALLOW_xxx to increase list of allowed commands). NotAllowedToAddDynamicContent=You don't have permission to add or edit PHP dynamic content in websites. Ask permission or just keep code into php tags unmodified. -ReplaceWebsiteContent=Replace website content +ReplaceWebsiteContent=Search or Replace website content DeleteAlsoJs=Delete also all javascript files specific to this website? DeleteAlsoMedias=Delete also all medias files specific to this website? # Export From 389976699c335420671ccd031593eca5be8844e9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 24 Jul 2019 16:29:50 +0200 Subject: [PATCH 368/944] Fix responsive --- htdocs/core/class/html.form.class.php | 2 +- htdocs/core/class/html.formprojet.class.php | 2 +- htdocs/projet/tasks/time.php | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 6c5ed3c23f0..713b18582eb 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -1679,7 +1679,7 @@ class Form $out .= ajax_combobox($htmlname); // do not use maxwidthonsmartphone by default. Set it by caller so auto size to 100% will work when not defined - $out.= ''; if ($show_empty && !$multiple) $out.= ''."\n"; if ($show_every) $out.= ''."\n"; diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php index 057f977fadb..8e01e93b66e 100644 --- a/htdocs/core/class/html.formprojet.class.php +++ b/htdocs/core/class/html.formprojet.class.php @@ -367,7 +367,7 @@ class FormProjets include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; $comboenhancement = ajax_combobox($htmlname, '', 0, $forcefocus); $out.=$comboenhancement; - $morecss='minwidth200 maxwidth500'; + $morecss='minwidth200imp maxwidth500'; } if (empty($option_only)) { diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index 766c2b38e2d..8501ae3c88c 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -959,6 +959,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) print ''."\n"; if (! empty($id)) print ''; + print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print ''; print ''; @@ -1002,7 +1003,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) else $userid = $contactsofproject[0]; if ($projectstatic->public) $contactsofproject = array(); - print $form->select_dolusers((GETPOST('userid')?GETPOST('userid'):$userid), 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 0, $langs->trans("ResourceNotAssignedToProject"), 'maxwidth200'); + print $form->select_dolusers((GETPOST('userid', 'int')?GETPOST('userid', 'int'):$userid), 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 0, $langs->trans("ResourceNotAssignedToProject"), 'maxwidth200'); } else { @@ -1044,6 +1045,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) print ''; print '
'; + print '
'; print '
'; } From 151075402fa62023570461e2e0423578e97acd38 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 24 Jul 2019 17:15:25 +0200 Subject: [PATCH 369/944] css --- htdocs/core/lib/project.lib.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index efcfeca61dd..a164c03a2d8 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -371,7 +371,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t $numlines=count($lines); // We declare counter as global because we want to edit them into recursive call - global $total_projectlinesa_spent,$total_projectlinesa_planned,$total_projectlinesa_spent_if_planned,$total_projectlinesa_tobill,$total_projectlinesa_billed; + global $total_projectlinesa_spent, $total_projectlinesa_planned, $total_projectlinesa_spent_if_planned, $total_projectlinesa_tobill, $total_projectlinesa_billed; if ($level == 0) { $total_projectlinesa_spent=0; @@ -491,9 +491,13 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t //else print ''; for ($k = 0 ; $k < $level ; $k++) { - print "     "; + print '
'; } print $lines[$i]->label; + for ($k = 0 ; $k < $level ; $k++) + { + print '
'; + } if ($showlineingray) print ''; //else print '
'; print "\n"; From 65e9d8f239048afcfea1d73a96917363090e245f Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Thu, 25 Jul 2019 11:14:59 +0200 Subject: [PATCH 370/944] FIX: tk9877 - PDF rouget requires product.lib.php (otherwise measuring_units_string() is not defined) --- htdocs/core/modules/expedition/doc/pdf_rouget.modules.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index fc242e47e52..087b4a373aa 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -29,6 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/expedition/modules_expedition.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; /** From e88ca8ae89c1fa2e6c39a9bd6c352e0f1d43198d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 25 Jul 2019 15:07:24 +0200 Subject: [PATCH 371/944] Fix migration --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index 6484fe572df..eb66c37bb4f 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -398,3 +398,6 @@ insert into llx_c_type_contact(rowid, element, source, code, libelle, active ) v insert into llx_c_type_contact(rowid, element, source, code, libelle, active ) values (113, 'supplier_proposal', 'external', 'SERVICE', 'Contact fournisseur prestation', 1); ALTER TABLE llx_ticket_extrafields ADD INDEX idx_ticket_extrafields (fk_object); + +UPDATE llx_website_page set fk_user_creat = fk_user_modif WHERE fk_user_creat IS NULL and fk_user_modif IS NOT NULL; + From 1d7885bc0cb0a142095f908137ea10429dbdbfc2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 25 Jul 2019 16:58:24 +0200 Subject: [PATCH 372/944] FIX We should remove property comments only for project and task api. --- htdocs/api/class/api.class.php | 1 - htdocs/projet/class/api_projects.class.php | 2 ++ htdocs/projet/class/api_tasks.class.php | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/api/class/api.class.php b/htdocs/api/class/api.class.php index de5a1e75d0a..0d9971b0929 100644 --- a/htdocs/api/class/api.class.php +++ b/htdocs/api/class/api.class.php @@ -145,7 +145,6 @@ class DolibarrApi unset($object->picto); unset($object->fieldsforcombobox); - unset($object->comments); unset($object->skip_update_total); unset($object->context); diff --git a/htdocs/projet/class/api_projects.class.php b/htdocs/projet/class/api_projects.class.php index 9680cd66591..93da94184a3 100644 --- a/htdocs/projet/class/api_projects.class.php +++ b/htdocs/projet/class/api_projects.class.php @@ -582,6 +582,8 @@ class Projects extends DolibarrApi unset($object->total_localtax2); unset($object->total_ttc); + unset($object->comments); + return $object; } diff --git a/htdocs/projet/class/api_tasks.class.php b/htdocs/projet/class/api_tasks.class.php index 9fafcb98343..337cef3ccb5 100644 --- a/htdocs/projet/class/api_tasks.class.php +++ b/htdocs/projet/class/api_tasks.class.php @@ -592,6 +592,8 @@ class Tasks extends DolibarrApi unset($object->total_localtax2); unset($object->total_ttc); + unset($object->comments); + return $object; } From 6e3fad8f8380e2c722b7c8e73d740f54f2ee7aba Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 25 Jul 2019 17:42:44 +0200 Subject: [PATCH 373/944] Fix phpcs --- .../accountancy/class/bookkeeping.class.php | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 0034723ec4c..faad238d7e4 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -324,8 +324,8 @@ class BookKeeping extends CommonObject $sql .= ", piece_num"; $sql .= ', entity'; $sql .= ") VALUES ("; - $sql .= "'" . $this->db->idate($this->doc_date) . "'"; - $sql .= ", ".(! isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'" . $this->db->idate($this->date_lim_reglement) . "'"); + $sql .= "'".$this->db->idate($this->doc_date)."'"; + $sql .= ", ".(! isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'".$this->db->idate($this->date_lim_reglement)."'"); $sql .= ",'" . $this->db->escape($this->doc_type) . "'"; $sql .= ",'" . $this->db->escape($this->doc_ref) . "'"; $sql .= "," . $this->fk_doc; @@ -341,7 +341,7 @@ class BookKeeping extends CommonObject $sql .= "," . $this->montant; $sql .= ",'" . $this->db->escape($this->sens) . "'"; $sql .= ",'" . $this->db->escape($this->fk_user_author) . "'"; - $sql .= ",'" . $this->db->idate($now). "'"; + $sql .= ",'".$this->db->idate($now)."'"; $sql .= ",'" . $this->db->escape($this->code_journal) . "'"; $sql .= ",'" . $this->db->escape($this->journal_label) . "'"; $sql .= "," . $this->db->escape($this->piece_num); @@ -573,7 +573,7 @@ class BookKeeping extends CommonObject $sql .= 'piece_num,'; $sql .= 'entity'; $sql .= ') VALUES ('; - $sql .= ' ' . (! isset($this->doc_date) || dol_strlen($this->doc_date) == 0 ? 'NULL' : "'" . $this->db->idate($this->doc_date) . "'") . ','; + $sql .= ' ' . (! isset($this->doc_date) || dol_strlen($this->doc_date) == 0 ? 'NULL' : "'".$this->db->idate($this->doc_date)."'") . ','; $sql .= ' ' . (! isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'" . $this->db->idate($this->date_lim_reglement) . "'") . ','; $sql .= ' ' . (! isset($this->doc_type) ? 'NULL' : "'" . $this->db->escape($this->doc_type) . "'") . ','; $sql .= ' ' . (! isset($this->doc_ref) ? 'NULL' : "'" . $this->db->escape($this->doc_ref) . "'") . ','; @@ -590,7 +590,7 @@ class BookKeeping extends CommonObject $sql .= ' ' . (! isset($this->montant) ? 'NULL' : $this->montant ). ','; $sql .= ' ' . (! isset($this->sens) ? 'NULL' : "'" . $this->db->escape($this->sens) . "'") . ','; $sql .= ' ' . $user->id . ','; - $sql .= ' ' . "'" . $this->db->idate($now) . "',"; + $sql .= ' ' . "'".$this->db->idate($now)."',"; $sql .= ' ' . (empty($this->code_journal) ? 'NULL' : "'" . $this->db->escape($this->code_journal) . "'") . ','; $sql .= ' ' . (empty($this->journal_label) ? 'NULL' : "'" . $this->db->escape($this->journal_label) . "'") . ','; $sql .= ' ' . (empty($this->piece_num) ? 'NULL' : $this->db->escape($this->piece_num)).','; @@ -1163,7 +1163,7 @@ class BookKeeping extends CommonObject // Update request $sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . $mode.' SET'; - $sql .= ' doc_date = ' . (! isset($this->doc_date) || dol_strlen($this->doc_date) != 0 ? "'" . $this->db->idate($this->doc_date) . "'" : 'null') . ','; + $sql .= ' doc_date = ' . (! isset($this->doc_date) || dol_strlen($this->doc_date) != 0 ? "'".$this->db->idate($this->doc_date)."'" : 'null') . ','; $sql .= ' doc_type = ' . (isset($this->doc_type) ? "'" . $this->db->escape($this->doc_type) . "'" : "null") . ','; $sql .= ' doc_ref = ' . (isset($this->doc_ref) ? "'" . $this->db->escape($this->doc_ref) . "'" : "null") . ','; $sql .= ' fk_doc = ' . (isset($this->fk_doc) ? $this->fk_doc : "null") . ','; @@ -1687,7 +1687,7 @@ class BookKeeping extends CommonObject * @param string $piece_num Piece num * @return int int <0 if KO, >0 if OK */ - public function transformTransaction($direction=0,$piece_num='') + public function transformTransaction($direction = 0, $piece_num = '') { $error = 0; @@ -1708,15 +1708,15 @@ class BookKeeping extends CommonObject $sql .= ' SELECT doc_date, doc_type,'; $sql .= ' doc_ref, fk_doc, fk_docdet, entity, thirdparty_code, subledger_account, subledger_label,'; $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; - $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, ' . $next_piecenum . ', "' . $this->db->idate($now) . '"'; - $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . '_tmp WHERE piece_num = ' . $piece_num; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, ' . $next_piecenum . ", '".$this->db->idate($now)."'"; + $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . '_tmp WHERE piece_num = ' . $this->db->escape($piece_num); $resql = $this->db->query($sql); if (! $resql) { $error ++; $this->errors[] = 'Error ' . $this->db->lasterror(); dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } - $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element . '_tmp WHERE piece_num = ' . $piece_num; + $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element . '_tmp WHERE piece_num = ' . $this->db->escape($piece_num); $resql = $this->db->query($sql); if (! $resql) { $error ++; From 111c0dcadd03fdfd9faa29e16d17cb8f26505501 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 25 Jul 2019 17:46:48 +0200 Subject: [PATCH 374/944] Comment --- htdocs/core/class/html.formcompany.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php index d1366cb8511..dfd0bd6a065 100644 --- a/htdocs/core/class/html.formcompany.class.php +++ b/htdocs/core/class/html.formcompany.class.php @@ -391,7 +391,7 @@ class FormCompany /** * Return combo list with people title * - * @param string $selected Title preselected + * @param string $selected Civility/Title code preselected * @param string $htmlname Name of HTML select combo field * @param string $morecss Add more css on SELECT element * @return string String with HTML select From 0b69bf995760d52e08606fe24edd213909e8cf2d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 25 Jul 2019 18:17:17 +0200 Subject: [PATCH 375/944] FIX #11553 --- .../core/modules/commande/doc/pdf_einstein.modules.php | 10 ++++++++-- .../modules/commande/doc/pdf_eratosthene.modules.php | 10 ++++++++-- .../core/modules/commande/doc/pdf_proforma.modules.php | 5 ++++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 5975da49fbe..1c1fa12c665 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -1217,6 +1217,8 @@ class pdf_einstein extends ModelePDFCommandes } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1227,8 +1229,9 @@ class pdf_einstein extends ModelePDFCommandes * @param string $titlekey Translation key to show as title of document * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "PdfOrderTitle") + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "PdfOrderTitle") { + // phpcs:enable global $conf,$langs,$hookmanager; // Load traductions files requiredby by page @@ -1429,6 +1432,8 @@ class pdf_einstein extends ModelePDFCommandes return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * @@ -1438,8 +1443,9 @@ class pdf_einstein extends ModelePDFCommandes * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { + // phpcs:enable global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; return pdf_pagefoot($pdf, $outputlangs, 'ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php index 1abc6c95e20..51e36b53476 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -1352,6 +1352,8 @@ class pdf_eratosthene extends ModelePDFCommandes } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1362,8 +1364,9 @@ class pdf_eratosthene extends ModelePDFCommandes * @param string $titlekey Translation key to show as title of document * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "PdfOrderTitle") + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "PdfOrderTitle") { + // phpcs:enable global $conf,$langs,$hookmanager; // Translations @@ -1564,6 +1567,8 @@ class pdf_eratosthene extends ModelePDFCommandes return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * @@ -1573,8 +1578,9 @@ class pdf_eratosthene extends ModelePDFCommandes * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { + // phpcs:enable global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; return pdf_pagefoot($pdf, $outputlangs, 'ORDER_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); diff --git a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php index f10f858544f..f1e591d73a8 100644 --- a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php @@ -57,6 +57,8 @@ class pdf_proforma extends pdf_einstein } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -67,8 +69,9 @@ class pdf_proforma extends pdf_einstein * @param string $titlekey Translation key to show as title of document * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "InvoiceProForma") + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "InvoiceProForma") { + // phpcs:enable global $conf,$langs,$hookmanager; parent::_pagehead($pdf, $object, $showaddress, $outputlangs, $titlekey); From 2c29f041a08fcead8bae178f4e82099bb5226751 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Thu, 25 Jul 2019 18:28:52 +0200 Subject: [PATCH 376/944] FIX move sql request in INNER JOIN --- htdocs/contact/consumption.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/htdocs/contact/consumption.php b/htdocs/contact/consumption.php index e2123e8307e..9cde6e2df4e 100644 --- a/htdocs/contact/consumption.php +++ b/htdocs/contact/consumption.php @@ -173,7 +173,7 @@ if ($type_element == 'fichinter') $sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, \'1\' as doc_type, f.datec as dateprint, f.fk_statut as status, tc.libelle, '; $tables_from = MAIN_DB_PREFIX.'fichinterdet d'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'fichinter as f ON d.fk_fichinter=f.rowid'; - $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=f.rowid'; + $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=f.rowid AND ec.fk_socpeople='.$object->id; $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX."c_type_contact tc ON (ec.fk_c_type_contact=tc.rowid and tc.element='fichinter' and tc.source='external' and tc.active=1)"; $where = ' WHERE f.entity IN ('.getEntity('ficheinter').')'; $dateprint = 'f.datec'; @@ -187,7 +187,7 @@ elseif ($type_element == 'invoice') $tables_from = MAIN_DB_PREFIX.'facturedet d'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facture as f ON d.fk_facture=f.rowid'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product p ON d.fk_product=p.rowid'; - $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=f.rowid'; + $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=f.rowid AND ec.fk_socpeople='.$object->id; $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX."c_type_contact tc ON (ec.fk_c_type_contact=tc.rowid and tc.element='facture' and tc.source='external' and tc.active=1)"; $where = " WHERE f.entity IN (".getEntity('invoice').")"; $dateprint = 'f.datef'; @@ -202,7 +202,7 @@ elseif ($type_element == 'propal') $tables_from = MAIN_DB_PREFIX.'propaldet d'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'propal as c ON d.fk_propal=c.rowid'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product p ON d.fk_product=p.rowid'; - $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid'; + $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid AND ec.fk_socpeople='.$object->id; $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX."c_type_contact tc ON (ec.fk_c_type_contact=tc.rowid and tc.element='propal' and tc.source='external' and tc.active=1)"; $where = ' WHERE c.entity IN ('.getEntity('propal').')'; $datePrint = 'c.datep'; @@ -217,7 +217,7 @@ elseif ($type_element == 'order') $tables_from = MAIN_DB_PREFIX.'commandedet d'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'commande as c ON d.fk_commande=c.rowid'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product p ON d.fk_product=p.rowid'; - $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid'; + $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid AND ec.fk_socpeople='.$object->id; $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX."c_type_contact tc ON (ec.fk_c_type_contact=tc.rowid and tc.element='commande' and tc.source='external' and tc.active=1)"; $where = ' WHERE c.entity IN ('.getEntity('order').')'; $dateprint = 'c.date_commande'; @@ -232,7 +232,7 @@ elseif ($type_element == 'supplier_invoice') $tables_from = MAIN_DB_PREFIX.'facture_fourn_det d'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn as f ON d.fk_facture_fourn=f.rowid'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product p ON d.fk_product=p.rowid'; - $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=f.rowid'; + $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=f.rowid AND ec.fk_socpeople='.$object->id; $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX."c_type_contact tc ON (ec.fk_c_type_contact=tc.rowid and tc.element='invoice_supplier' and tc.source='external' and tc.active=1)"; $where = ' WHERE f.entity IN ('.getEntity($documentstatic->element).')'; $dateprint = 'f.datef'; @@ -260,7 +260,7 @@ elseif ($type_element == 'supplier_order') $tables_from = MAIN_DB_PREFIX.'commande_fournisseurdet d'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'commande_fournisseur as c ON d.fk_commande=c.rowid'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product p ON d.fk_product=p.rowid'; - $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid'; + $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid AND ec.fk_socpeople='.$object->id; $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX."c_type_contact tc ON (ec.fk_c_type_contact=tc.rowid and tc.element='order_supplier' and tc.source='external' and tc.active=1)"; $where = ' WHERE c.entity IN ('.getEntity($documentstatic->element).')'; $dateprint = 'c.date_valid'; @@ -276,7 +276,7 @@ elseif ($type_element == 'contract') $tables_from = MAIN_DB_PREFIX.'contratdet d'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'contrat as c ON d.fk_contrat=c.rowid'; $tables_from.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product p ON d.fk_product=p.rowid'; - $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid'; + $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX.'element_contact ec ON ec.element_id=c.rowid AND ec.fk_socpeople='.$object->id; $tables_from.= ' INNER JOIN '.MAIN_DB_PREFIX."c_type_contact tc ON (ec.fk_c_type_contact=tc.rowid and tc.element='contrat' and tc.source='external' and tc.active=1)"; $where = ' WHERE c.entity IN ('.getEntity('contrat').')'; $dateprint = 'c.date_valid'; @@ -300,7 +300,6 @@ if (!empty($sql_select)) $sql.= " FROM "/*.MAIN_DB_PREFIX."societe as s, "*/.$tables_from; // if ($type_element != 'fichinter') $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON d.fk_product = p.rowid '; $sql.= $where; - $sql.= ' AND ec.fk_socpeople = '.$object->id; if ($month > 0) { if ($year > 0) { $start = dol_mktime(0, 0, 0, $month, 1, $year); From 1f7cd1a3f8043e0a804dc949168fec5aa25a2535 Mon Sep 17 00:00:00 2001 From: atm-quentin Date: Fri, 26 Jul 2019 11:05:16 +0200 Subject: [PATCH 377/944] FIX name was able to be in field but went back to new line --- htdocs/core/modules/cheque/doc/pdf_blochet.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php index 32d35edb70a..32d5100c0f7 100644 --- a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php +++ b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php @@ -247,7 +247,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts $pdf->MultiCell(22,2,$outputlangs->transnoentities("Owner"),0,'L'); $pdf->SetFont('','', $default_font_size); $pdf->SetXY(32,26); - $pdf->MultiCell(60,2,$outputlangs->convToOutputCharset($this->account->proprio),0,'L'); + $pdf->MultiCell(80,2,$outputlangs->convToOutputCharset($this->account->proprio),0,'L'); $pdf->SetFont('','', $default_font_size); $pdf->SetXY(10,32); From f7c739bba94e8d57524ec3fbc821e6a7b8efc4fe Mon Sep 17 00:00:00 2001 From: atm-quentin Date: Fri, 26 Jul 2019 12:12:08 +0200 Subject: [PATCH 378/944] FIX wrong path sociales/index.php doesnt exist anymore --- htdocs/compta/charges/index.php | 2 +- htdocs/compta/sociales/card.php | 2 +- htdocs/compta/sociales/list.php | 4 ++-- htdocs/compta/sociales/payments.php | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/compta/charges/index.php b/htdocs/compta/charges/index.php index f0188c5ed94..2f5802da185 100644 --- a/htdocs/compta/charges/index.php +++ b/htdocs/compta/charges/index.php @@ -183,7 +183,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) print $socialcontrib->getNomUrl(1,'20'); print ''; // Type - print ''.$obj->lib.''; + print ''.$obj->lib.''; // Expected to pay print ''.price($obj->total).''; // Ref payment diff --git a/htdocs/compta/sociales/card.php b/htdocs/compta/sociales/card.php index 6a0d53d6987..672b9003805 100644 --- a/htdocs/compta/sociales/card.php +++ b/htdocs/compta/sociales/card.php @@ -121,7 +121,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes') $result=$object->delete($user); if ($result > 0) { - header("Location: index.php"); + header("Location: list.php"); exit; } else diff --git a/htdocs/compta/sociales/list.php b/htdocs/compta/sociales/list.php index be3e7ea5791..9b7dcbbe120 100644 --- a/htdocs/compta/sociales/list.php +++ b/htdocs/compta/sociales/list.php @@ -168,7 +168,7 @@ if ($resql) if ($year) { - $center=($year?"".img_previous()." ".$langs->trans("Year")." $year ".img_next()."":""); + $center=($year?"".img_previous()." ".$langs->trans("Year")." $year ".img_next()."":""); print_barre_liste($langs->trans("SocialContributions"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $center, $num, $totalnboflines, 'title_accountancy.png', 0, $newcardbutton, '', $limit); } else @@ -258,7 +258,7 @@ if ($resql) print ''; if ($obj->periode) { - print 'jdate($obj->periode)).'">'.dol_print_date($db->jdate($obj->periode),'day').''; + print 'jdate($obj->periode)).'">'.dol_print_date($db->jdate($obj->periode),'day').''; } else { diff --git a/htdocs/compta/sociales/payments.php b/htdocs/compta/sociales/payments.php index 936c2c9c0f2..4025f86ff01 100644 --- a/htdocs/compta/sociales/payments.php +++ b/htdocs/compta/sociales/payments.php @@ -90,7 +90,7 @@ print ''; if ($mode != 'sconly') { - $center=($year?''.img_previous($langs->trans("Previous"), 'class="valignbottom"')." ".$langs->trans("Year").' '.$year.' '.img_next($langs->trans("Next"), 'class="valignbottom"')."":""); + $center=($year?''.img_previous($langs->trans("Previous"), 'class="valignbottom"')." ".$langs->trans("Year").' '.$year.' '.img_next($langs->trans("Next"), 'class="valignbottom"')."":""); print_barre_liste($title,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$center,$num,$totalnboflines, 'title_accountancy', 0, '', '', $limit, 1); } else @@ -181,7 +181,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) print $socialcontrib->getNomUrl(1,'20'); print ''; // Type - print ''.$obj->lib.''; + print ''.$obj->lib.''; // Date $date=$obj->periode; if (empty($date)) $date=$obj->date_ech; From e92c6c87a0f20fda7690480d465c968fc469abf0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Jul 2019 13:16:49 +0200 Subject: [PATCH 379/944] FIX API return 404 sometimes even if API exists --- htdocs/api/index.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/htdocs/api/index.php b/htdocs/api/index.php index e55a30304a4..6788b208a2e 100644 --- a/htdocs/api/index.php +++ b/htdocs/api/index.php @@ -88,17 +88,22 @@ if (preg_match('/api\/index\.php\/explorer/', $_SERVER["PHP_SELF"]) && ! empty($ // index.php/xxx called by any REST client to run API +$reg=array(); preg_match('/index\.php\/([^\/]+)(.*)$/', $_SERVER["PHP_SELF"], $reg); // .../index.php/categories?sortfield=t.rowid&sortorder=ASC // Set the flag to say to refresh (when we reload the explorer, production must be for API call only) -$refreshcache=false; +/*$refreshcache=false; if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/swagger.json' || $reg[2] == '/swagger.json/root' || $reg[2] == '/resources.json' || $reg[2] == '/resources.json/root')) { $refreshcache=true; -} - +}*/ +// When in production mode, a file api/temp/routes.php is created with the API available of current call. +// But, if we set $refreshcache to false, so it may have only one API in the routes.php file if we make a call for one API without +// using the explorer. And when we make another call for another API, the API is not into the api/temp/routes.php and a 404 is returned. +// So we force refresh to each call. +$refreshcache=true; $api = new DolibarrApi($db, '', $refreshcache); //var_dump($api->r->apiVersionMap); @@ -115,7 +120,7 @@ UploadFormat::$allowedMimeTypes = array('image/jpeg', 'image/png', 'text/plain', -// Call Explorer file for all APIs definitions +// Call Explorer file for all APIs definitions (this part is slow) if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/swagger.json' || $reg[2] == '/swagger.json/root' || $reg[2] == '/resources.json' || $reg[2] == '/resources.json/root')) { // Scan all API files to load them @@ -253,5 +258,6 @@ if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/swagger.json' && //var_dump($api->r->apiVersionMap); //exit; -// Call API (we suppose we found it) +// Call API (we suppose we found it). +// The handle will use the file api/temp/routes.php to get data to run the API. If the file exists and the entry for API is not found, it will return 404. $api->r->handle(); From 8b81702dd7805d31a46f3a55ac6942de41bc5161 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Jul 2019 13:23:42 +0200 Subject: [PATCH 380/944] Fix API 404 errors --- htdocs/api/index.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/htdocs/api/index.php b/htdocs/api/index.php index 6788b208a2e..38050592a37 100644 --- a/htdocs/api/index.php +++ b/htdocs/api/index.php @@ -93,17 +93,15 @@ preg_match('/index\.php\/([^\/]+)(.*)$/', $_SERVER["PHP_SELF"], $reg); // .../index.php/categories?sortfield=t.rowid&sortorder=ASC -// Set the flag to say to refresh (when we reload the explorer, production must be for API call only) -/*$refreshcache=false; +// When in production mode, a file api/temp/routes.php is created with the API available of current call. +// But, if we set $refreshcache to false, so it may have only one API in the routes.php file if we make a call for one API without +// using the explorer. And when we make another call for another API, the API is not into the api/temp/routes.php and a 404 is returned. +// So we force refresh to each call. +$refreshcache=(empty($conf->global->API_PRODUCTION_DO_NOT_ALWAYS_REFRESH_CACHE) ? true : false); if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/swagger.json' || $reg[2] == '/swagger.json/root' || $reg[2] == '/resources.json' || $reg[2] == '/resources.json/root')) { $refreshcache=true; -}*/ -// When in production mode, a file api/temp/routes.php is created with the API available of current call. -// But, if we set $refreshcache to false, so it may have only one API in the routes.php file if we make a call for one API without -// using the explorer. And when we make another call for another API, the API is not into the api/temp/routes.php and a 404 is returned. -// So we force refresh to each call. -$refreshcache=true; +} $api = new DolibarrApi($db, '', $refreshcache); //var_dump($api->r->apiVersionMap); From 97c950badb48efd7b7aaab1efc9815062268f444 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Jul 2019 16:30:16 +0200 Subject: [PATCH 381/944] FIX Attachment was lost when we validate an expense report --- .../class/expensereport.class.php | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 0041974d4e9..bffe8d146d5 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1132,17 +1132,51 @@ class ExpenseReport extends CommonObject $resql=$this->db->query($sql); if ($resql) { - if (!$notrigger) + if (! $error && ! $notrigger) { // Call trigger $result=$this->call_trigger('EXPENSE_REPORT_VALIDATE', $fuser); - if ($result < 0) { $error++; } // End call triggers } + if (! $error) + { + $this->oldref = $this->ref; + + // Rename directory if dir was a temporary ref + if (preg_match('/^[\(]?PROV/i', $this->ref)) + { + // On renomme repertoire ($this->ref = ancienne ref, $num = nouvelle ref) + // in order not to lose the attachments + $oldref = dol_sanitizeFileName($this->ref); + $newref = dol_sanitizeFileName($num); + $dirsource = $conf->expensereport->dir_output.'/'.$oldref; + $dirdest = $conf->expensereport->dir_output.'/'.$newref; + if (file_exists($dirsource)) + { + dol_syslog(get_class($this)."::setValidate() rename dir ".$dirsource." into ".$dirdest); + + if (@rename($dirsource, $dirdest)) + { + dol_syslog("Rename ok"); + // Rename docs starting with $oldref with $newref + $listoffiles=dol_dir_list($conf->expensereport->dir_output.'/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/')); + foreach($listoffiles as $fileentry) + { + $dirsource=$fileentry['name']; + $dirdest=preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource); + $dirsource=$fileentry['path'].'/'.$dirsource; + $dirdest=$fileentry['path'].'/'.$dirdest; + @rename($dirsource, $dirdest); + } + } + } + } + } + if (! $error) { $this->oldref = $this->ref; From 471a947e8abe8789fc49da2ed99c679cedd4349d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Jul 2019 16:30:16 +0200 Subject: [PATCH 382/944] FIX Attachment was lost when we validate an expense report Conflicts: htdocs/expensereport/class/expensereport.class.php --- htdocs/expensereport/class/expensereport.class.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index dd2818f28bf..aec06b7972b 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1120,11 +1120,10 @@ class ExpenseReport extends CommonObject $resql=$this->db->query($sql); if ($resql) { - if (!$notrigger) + if (! $error && ! $notrigger) { // Call trigger - $result=$this->call_trigger('EXPENSE_REPORT_VALIDATE',$fuser); - + $result=$this->call_trigger('EXPENSE_REPORT_VALIDATE', $fuser); if ($result < 0) { $error++; } @@ -1148,7 +1147,7 @@ class ExpenseReport extends CommonObject $dirdest = $conf->expensereport->dir_output.'/'.$newref; if (file_exists($dirsource)) { - dol_syslog(get_class($this)."::valid() rename dir ".$dirsource." into ".$dirdest); + dol_syslog(get_class($this)."::setValidate() rename dir ".$dirsource." into ".$dirdest); if (@rename($dirsource, $dirdest)) { From 4ed7571a3f5b0d3de7f62dd2ace23a367c3e2716 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Jul 2019 16:36:39 +0200 Subject: [PATCH 383/944] Merge --- .../class/expensereport.class.php | 35 ------------------- 1 file changed, 35 deletions(-) diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 684786f7e27..3bdd026e62f 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1142,41 +1142,6 @@ class ExpenseReport extends CommonObject // End call triggers } - if (! $error) - { - $this->oldref = $this->ref; - - // Rename directory if dir was a temporary ref - if (preg_match('/^[\(]?PROV/i', $this->ref)) - { - // On renomme repertoire ($this->ref = ancienne ref, $num = nouvelle ref) - // in order not to lose the attachments - $oldref = dol_sanitizeFileName($this->ref); - $newref = dol_sanitizeFileName($num); - $dirsource = $conf->expensereport->dir_output.'/'.$oldref; - $dirdest = $conf->expensereport->dir_output.'/'.$newref; - if (file_exists($dirsource)) - { - dol_syslog(get_class($this)."::setValidate() rename dir ".$dirsource." into ".$dirdest); - - if (@rename($dirsource, $dirdest)) - { - dol_syslog("Rename ok"); - // Rename docs starting with $oldref with $newref - $listoffiles=dol_dir_list($conf->expensereport->dir_output.'/'.$newref, 'files', 1, '^'.preg_quote($oldref, '/')); - foreach($listoffiles as $fileentry) - { - $dirsource=$fileentry['name']; - $dirdest=preg_replace('/^'.preg_quote($oldref, '/').'/', $newref, $dirsource); - $dirsource=$fileentry['path'].'/'.$dirsource; - $dirdest=$fileentry['path'].'/'.$dirdest; - @rename($dirsource, $dirdest); - } - } - } - } - } - if (! $error) { $this->oldref = $this->ref; From 2867e31a6379740723fa1021fc157392435bd4b1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 27 Jul 2019 01:13:39 +0200 Subject: [PATCH 384/944] Fix CSS --- htdocs/comm/card.php | 14 +++++++------- htdocs/fourn/card.php | 8 ++++---- htdocs/margin/tabs/thirdpartyMargins.php | 4 ++-- htdocs/theme/eldy/global.inc.php | 2 +- htdocs/ticket/list.php | 4 +++- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 721aba20de8..285ed03e7c3 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -694,7 +694,7 @@ if ($object->id > 0) if ($num > 0) { print '
'; - print ''; + print '
'; print ''; print '
'; @@ -779,7 +779,7 @@ if ($object->id > 0) $db->free($resql2); print '
'; - print '
'.$langs->trans("LastPropals", ($num<=$MAXLIST?"":$MAXLIST)).''.$langs->trans("AllPropals").' '.$num.'
'; + print '
'; print ''; print '
'; @@ -855,7 +855,7 @@ if ($object->id > 0) $num = $db->num_rows($resql); if ($num > 0) { print '
'; - print '
'.$langs->trans("LastCustomerOrders", ($num<=$MAXLIST?"":$MAXLIST)).''.$langs->trans("AllOrders").' '.$num.'
'; + print '
'; print ''; print '
'; @@ -919,7 +919,7 @@ if ($object->id > 0) if ($num >0) { print '
'; - print '
'.$langs->trans("LastSendings", ($num<=$MAXLIST?"":$MAXLIST)).''.$langs->trans("AllSendings").' '.$num.'
'; + print '
'; print ''; print '
'; @@ -989,7 +989,7 @@ if ($object->id > 0) if ($num > 0) { print '
'; - print '
'.$langs->trans("LastContracts", ($num<=$MAXLIST?"":$MAXLIST)).'
'; + print '
'; print ''; print '
'; @@ -1062,7 +1062,7 @@ if ($object->id > 0) if ($num > 0) { print '
'; - print '
'.$langs->trans("LastInterventions", ($num<=$MAXLIST?"":$MAXLIST)).''.$langs->trans("AllInterventions").' '.$num.'
'; + print '
'; print ''; print 'isProduct()) print ''; ?> - - + + '; } elseif ($key == 'category_code') { print ''; } elseif ($key == 'severity_code') { print ''; } elseif ($key == 'fk_user_assign') { print ''; + // Date invoice print ''; // Ref Product @@ -389,7 +390,13 @@ if ($result) { print ''; - print ''; + // Country + print ''; print ''; diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index c4aa1316876..659d428b93b 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -380,6 +380,7 @@ if ($result) { print $objp->invoice_label; print ''; + // Date invoice print ''; // Ref product @@ -400,7 +401,12 @@ if ($result) { print ''; - print ''; + print ''; print ''; From febf9ccd0473d415819c5ccfd7832de1ba471672 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 21 Oct 2019 03:50:57 +0200 Subject: [PATCH 867/944] FIX The Button "Automatic binding" did not use the account intracomm or export. --- htdocs/accountancy/customer/index.php | 84 ++++++++++++++++++++++++--- htdocs/accountancy/customer/list.php | 11 ++-- htdocs/accountancy/supplier/index.php | 83 ++++++++++++++++++++++++-- htdocs/accountancy/supplier/list.php | 10 ++-- 4 files changed, 165 insertions(+), 23 deletions(-) diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index f063f832f54..aa3a8d691dd 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -29,6 +29,7 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; // Load translation files required by the page @@ -65,6 +66,8 @@ $year_current = $year_start; // Validate History $action = GETPOST('action', 'aZ09'); +$chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version'); + /* * Actions @@ -102,7 +105,7 @@ if ($action == 'validatehistory') { $db->begin(); // Now make the binding. Bind automatically only for product with a dedicated account that exists into chart of account, others need a manual bind - if ($db->type == 'pgsql') { + /*if ($db->type == 'pgsql') { $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet"; $sql1 .= " SET fk_code_ventilation = accnt.rowid"; $sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; @@ -115,16 +118,83 @@ if ($action == 'validatehistory') { $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity; $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; $sql1 .= " AND fd.fk_code_ventilation = 0"; - } + }*/ + + // Customer Invoice lines (must be same request than into page list.php for manual binding) + $sql = "SELECT f.rowid as facid, f.ref as ref, f.datef, f.type as ftype,"; + $sql.= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,"; + $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.accountancy_code_sell as code_sell, p.tva_tx as tva_tx_prod,"; + $sql.= " p.accountancy_code_sell_intra as code_sell_intra, p.accountancy_code_sell_export as code_sell_export,"; + $sql.= " aa.rowid as aarowid, aa2.rowid as aarowid_intra, aa3.rowid as aarowid_export,"; + $sql.= " co.code as country_code, co.label as country_label,"; + $sql.= " s.tva_intra"; + $sql.= " FROM " . MAIN_DB_PREFIX . "facture as f"; + $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc"; + $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "c_country as co ON co.rowid = s.fk_pays "; + $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "facturedet as l ON f.rowid = l.fk_facture"; + $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product"; + $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_sell = aa.account_number AND aa.active = 1 AND aa.fk_pcg_version = '" . $chartaccountcode."' AND aa.entity = " . $conf->entity; + $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa2 ON p.accountancy_code_sell_intra = aa2.account_number AND aa2.active = 1 AND aa2.fk_pcg_version = '" . $chartaccountcode."' AND aa2.entity = " . $conf->entity; + $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa3 ON p.accountancy_code_sell_export = aa3.account_number AND aa3.active = 1 AND aa3.fk_pcg_version = '" . $chartaccountcode."' AND aa3.entity = " . $conf->entity; + $sql.= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0"; + $sql.= " AND l.product_type <= 2"; dol_syslog('htdocs/accountancy/customer/index.php'); - - $resql1 = $db->query($sql1); - if (! $resql1) { - $error ++; - $db->rollback(); + $result = $db->query($sql); + if (! $result) { + $error++; setEventMessages($db->lasterror(), null, 'errors'); } else { + $num_lines = $db->num_rows($result); + + $isSellerInEEC = isInEEC($mysoc); + + $i = 0; + while ($i < min($num_lines, 10000)) { // No more than 10000 at once + $objp = $db->fetch_object($result); + + // Search suggested account for product/service + $suggestedaccountingaccountfor = ''; + if (($objp->country_code == $mysoc->country_code) || empty($objp->country_code)) { // If buyer in same country than seller (if not defined, we assume it is same country) + $objp->code_sell_p = $objp->code_sell; + $objp->aarowid_suggest = $objp->aarowid; + $suggestedaccountingaccountfor = ''; + } else { + if ($isSellerInEEC && $isBuyerInEEC) { // European intravat sale + $objp->code_sell_p = $objp->code_sell_intra; + $objp->aarowid_suggest = $objp->aarowid_intra; + $suggestedaccountingaccountfor = 'eec'; + } else { // Foreign sale + $objp->code_sell_p = $objp->code_sell_export; + $objp->aarowid_suggest = $objp->aarowid_export; + $suggestedaccountingaccountfor = 'export'; + } + } + + if ($objp->aarowid_suggest > 0) + { + $sqlupdate = "UPDATE " . MAIN_DB_PREFIX . "facturedet"; + $sqlupdate.= " SET fk_code_ventilation = ".$objp->aarowid_suggest; + $sqlupdate.= " WHERE fk_code_ventilation <= 0 AND product_type <= 2 AND rowid = ".$objp->rowid; + + $resqlupdate = $db->query($sqlupdate); + if (! $resqlupdate) + { + $error++; + setEventMessages($db->lasterror(), null, 'errors'); + break; + } + } + + $i++; + } + } + + if ($error) + { + $db->rollback(); + } + else { $db->commit(); setEventMessages($langs->trans('AutomaticBindingDone'), null, 'mesgs'); } diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index 127f1795e19..7826d2b1faf 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -221,9 +221,9 @@ $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc"; $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "c_country as co ON co.rowid = s.fk_pays "; $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "facturedet as l ON f.rowid = l.fk_facture"; $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product"; -$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_sell = aa.account_number AND aa.fk_pcg_version = '" . $chartaccountcode."' AND aa.entity = " . $conf->entity; -$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa2 ON p.accountancy_code_sell_intra = aa2.account_number AND aa2.fk_pcg_version = '" . $chartaccountcode."' AND aa2.entity = " . $conf->entity; -$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa3 ON p.accountancy_code_sell_export = aa3.account_number AND aa3.fk_pcg_version = '" . $chartaccountcode."' AND aa3.entity = " . $conf->entity; +$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_sell = aa.account_number AND aa.active = 1 AND aa.fk_pcg_version = '" . $chartaccountcode."' AND aa.entity = " . $conf->entity; +$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa2 ON p.accountancy_code_sell_intra = aa2.account_number AND aa2.active = 1 AND aa2.fk_pcg_version = '" . $chartaccountcode."' AND aa2.entity = " . $conf->entity; +$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa3 ON p.accountancy_code_sell_export = aa3.account_number AND aa3.active = 1 AND aa3.fk_pcg_version = '" . $chartaccountcode."' AND aa3.entity = " . $conf->entity; $sql.= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0"; $sql.= " AND l.product_type <= 2"; // Add search filter like @@ -249,7 +249,7 @@ if (strlen(trim($search_account))) { $sql .= natural_search("aa.account_number", $search_account); } if (strlen(trim($search_vat))) { - $sql .= natural_search("l.tva_tx", $search_vat, 1); + $sql .= natural_search("l.tva_tx", price2num($search_vat), 1); } if ($search_month > 0) { @@ -420,7 +420,7 @@ if ($result) { $isSellerInEEC = isInEEC($mysoc); - while ( $i < min($num_lines, $limit) ) { + while ($i < min($num_lines, $limit)) { $objp = $db->fetch_object($result); $objp->code_sell_l = ''; @@ -532,6 +532,7 @@ if ($result) { print vatrate($objp->tva_tx_line.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')); print ''; + // Country print ''; - // Ref product + // Ref Product print ''; // Description - print ''; @@ -1866,7 +1863,7 @@ elseif ($id || $ref) // Width print ''; // Height @@ -1886,7 +1883,7 @@ elseif ($id || $ref) else { print $object->trueHeight; - print ($object->trueHeight && $object->height_units!='')?' '.measuring_units_string(0, "size", $object->height_units):''; + print ($object->trueHeight && $object->height_units!='')?' '.measuringUnitString(0, "size", $object->height_units):''; } print ''; @@ -1894,7 +1891,7 @@ elseif ($id || $ref) // Depth print ''; // Volume @@ -1914,15 +1911,13 @@ elseif ($id || $ref) { if ($volumeUnit < 50) { - //print $calculatedVolume.' '.measuring_units_string($volumeUnit, "volume"); print showDimensionInBestUnit($calculatedVolume, $volumeUnit, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND)?$conf->global->MAIN_VOLUME_DEFAULT_ROUND:-1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT)?$conf->global->MAIN_VOLUME_DEFAULT_UNIT:'no'); } - else print $calculatedVolume.' '.measuring_units_string($volumeUnit, "volume"); + else print $calculatedVolume.' '.measuringUnitString(0, "volume", $volumeUnit); } if ($totalVolume > 0) { if ($calculatedVolume) print ' ('.$langs->trans("SumOfProductVolumes").': '; - //print $totalVolume.' '.measuring_units_string(0, "volume"); print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND)?$conf->global->MAIN_VOLUME_DEFAULT_ROUND:-1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT)?$conf->global->MAIN_VOLUME_DEFAULT_UNIT:'no'); //if (empty($calculatedVolume)) print ' ('.$langs->trans("Calculated").')'; if ($calculatedVolume) print ')'; @@ -2405,18 +2400,18 @@ elseif ($id || $ref) // Weight print ''; // Volume print ''; // Size - //print ''; + //print ''; if ($action == 'editline' && $lines[$i]->id == $line_id) { diff --git a/htdocs/product/canvas/product/actions_card_product.class.php b/htdocs/product/canvas/product/actions_card_product.class.php index db7ad4d2b70..a457b1b99f8 100644 --- a/htdocs/product/canvas/product/actions_card_product.class.php +++ b/htdocs/product/canvas/product/actions_card_product.class.php @@ -211,25 +211,25 @@ class ActionsCardProduct // Weight if ($this->object->weight != '') { - $this->tpl['weight'] = $this->object->weight." ".measuring_units_string($this->object->weight_units, "weight"); + $this->tpl['weight'] = $this->object->weight." ".measuringUnitString(0, "weight", $this->object->weight_units); } // Length if ($this->object->length != '') { - $this->tpl['length'] = $this->object->length." ".measuring_units_string($this->object->length_units, "size"); + $this->tpl['length'] = $this->object->length." ".measuringUnitString(0, "size", $this->object->length_units); } // Surface if ($this->object->surface != '') { - $this->tpl['surface'] = $this->object->surface." ".measuring_units_string($this->object->surface_units, "surface"); + $this->tpl['surface'] = $this->object->surface." ".measuringUnitString(0, "surface", $this->object->surface_units); } // Volume if ($this->object->volume != '') { - $this->tpl['volume'] = $this->object->volume." ".measuring_units_string($this->object->volume_units, "volume"); + $this->tpl['volume'] = $this->object->volume." ".measuringUnitString(0, "volume", $this->object->volume_units); } $this->tpl['fiche_end']=dol_get_fiche_end(); diff --git a/htdocs/product/card.php b/htdocs/product/card.php index e8ce573737d..565cb6f7565 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -1825,7 +1825,7 @@ else print ''; @@ -1472,7 +1470,7 @@ elseif ($id || $ref) // Width print ''; // Height @@ -1492,7 +1490,7 @@ elseif ($id || $ref) else { print $object->trueHeight; - print ($object->trueHeight && $object->height_units!='')?' '.measuring_units_string($object->height_units, "size"):''; + print ($object->trueHeight && $object->height_units!='')?' '.measuringUnitString(0, "size", $object->height_units):''; } print ''; @@ -1500,7 +1498,7 @@ elseif ($id || $ref) // Depth print ''; // Volume @@ -1520,15 +1518,13 @@ elseif ($id || $ref) { if ($volumeUnit < 50) { - //print $calculatedVolume.' '.measuring_units_string($volumeUnit,"volume"); print showDimensionInBestUnit($calculatedVolume, $volumeUnit, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND)?$conf->global->MAIN_VOLUME_DEFAULT_ROUND:-1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT)?$conf->global->MAIN_VOLUME_DEFAULT_UNIT:'no'); } - else print $calculatedVolume.' '.measuring_units_string($volumeUnit, "volume"); + else print $calculatedVolume.' '.measuringUnitString(0, "volume", $volumeUnit); } if ($totalVolume > 0) { if ($calculatedVolume) print ' ('.$langs->trans("SumOfProductVolumes").': '; - //print $totalVolume.' '.measuring_units_string(0,"volume"); print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND)?$conf->global->MAIN_VOLUME_DEFAULT_ROUND:-1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT)?$conf->global->MAIN_VOLUME_DEFAULT_UNIT:'no'); //if (empty($calculatedVolume)) print ' ('.$langs->trans("Calculated").')'; if ($calculatedVolume) print ')'; @@ -1960,13 +1956,13 @@ elseif ($id || $ref) // Weight print ''; // Volume print ''; diff --git a/htdocs/variants/combinations.php b/htdocs/variants/combinations.php index 4a7774b1a08..6dc66a32a8e 100644 --- a/htdocs/variants/combinations.php +++ b/htdocs/variants/combinations.php @@ -359,7 +359,7 @@ if (! empty($id) || ! empty($ref)) print ' - isProduct()) print ''; ?> + isProduct()) print ''; ?> '; @@ -802,12 +802,12 @@ if ($action == 'create' || $action == 'adduserldap') print ''; @@ -816,17 +816,17 @@ if ($action == 'create' || $action == 'adduserldap') print ''; @@ -836,7 +836,7 @@ if ($action == 'create' || $action == 'adduserldap') require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; $generated_password=getRandomPassword(false); } - $password=$generated_password; + $password=(GETPOSTISSET('password')?GETPOST('password'):$generated_password); // Password print ''; @@ -1004,12 +1004,12 @@ if ($action == 'create' || $action == 'adduserldap') print ''; @@ -1018,12 +1018,12 @@ if ($action == 'create' || $action == 'adduserldap') print ''; @@ -1032,12 +1032,12 @@ if ($action == 'create' || $action == 'adduserldap') print ''; @@ -1114,12 +1114,12 @@ if ($action == 'create' || $action == 'adduserldap') print ''; @@ -1128,7 +1128,7 @@ if ($action == 'create' || $action == 'adduserldap') { print ''; print ''; } @@ -1137,7 +1137,7 @@ if ($action == 'create' || $action == 'adduserldap') { print ''; print ''; } @@ -1183,7 +1183,7 @@ if ($action == 'create' || $action == 'adduserldap') print $langs->trans("Note"); print '\n"; @@ -1204,7 +1204,7 @@ if ($action == 'create' || $action == 'adduserldap') // Position/Job print ''; print ''; // Default warehouse @@ -1226,7 +1226,7 @@ if ($action == 'create' || $action == 'adduserldap') print $form->textwithpicto($text, $langs->trans("THMDescription"), 1, 'help', 'classthm'); print ''; print ''; print "\n"; @@ -1236,14 +1236,14 @@ if ($action == 'create' || $action == 'adduserldap') print $form->textwithpicto($text, $langs->trans("TJMDescription"), 1, 'help', 'classtjm'); print ''; print ''; print "\n"; // Salary print ''; print ''; print "\n"; } @@ -1251,7 +1251,7 @@ if ($action == 'create' || $action == 'adduserldap') // Weeklyhours print ''; print ''; print "\n"; @@ -2446,7 +2446,7 @@ else print ''; print ''; From 74c85b742e4836406abffb9934f2e64ec48d7145 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 18 Nov 2019 18:09:12 +0100 Subject: [PATCH 923/944] Fix ref must be null until the generation of ref is ok --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index e9130c5d5c4..df796e54f49 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -328,6 +328,9 @@ UPDATE llx_c_shipment_mode SET label = 'https://www.laposte.fr/outils/suivre-vos UPDATE llx_c_shipment_mode SET label = 'https://www.laposte.fr/outils/suivre-vos-envois?code={TRACKID}' WHERE code IN ('LETTREMAX'); +-- VMYSQL4.3 ALTER TABLE llx_holiday MODIFY COLUMN ref varchar(30) NULL; +-- VPGSQL8.2 ALTER TABLE llx_holiday ALTER COLUMN ref DROP NOT NULL; + create table llx_reception ( From 918f476c2b802f6770fb5f127ffe5091c765e7f5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 18 Nov 2019 19:02:12 +0100 Subject: [PATCH 924/944] Fix backport fix not checking mandatory extrafields of type select --- htdocs/core/class/extrafields.class.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index b3c257bfaaa..5b171d70bfb 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1830,7 +1830,7 @@ class ExtraFields function setOptionalsFromPost($extralabels, &$object, $onlykey='') { global $_POST, $langs; - $nofillrequired='';// For error when required field left blank + $nofillrequired=0;// For error when required field left blank $error_field_required = array(); if (is_array($this->attributes[$object->table_element]['label'])) $extralabels=$this->attributes[$object->table_element]['label']; @@ -1861,8 +1861,9 @@ 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... - if ((! is_array($_POST["options_".$key]) && empty($_POST["options_".$key]) && $_POST["options_".$key] != '0') - || (is_array($_POST["options_".$key]) && empty($_POST["options_".$key]))) + 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]) && empty($_POST["options_".$key]))) { //print 'ccc'.$value.'-'.$this->attributes[$object->table_element]['required'][$key]; $nofillrequired++; From 010219bf097851bc40db06114efe5ef3f93b6a3f Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 18 Nov 2019 19:47:34 +0100 Subject: [PATCH 925/944] fix title pasge linked files user --- htdocs/user/document.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/user/document.php b/htdocs/user/document.php index 91d0e7219ce..3b0282179d2 100644 --- a/htdocs/user/document.php +++ b/htdocs/user/document.php @@ -115,8 +115,7 @@ if (empty($reshook)) { $form = new Form($db); -$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; -llxHeader('', $langs->trans("ThirdParty").' - '.$langs->trans("Files"), $help_url); +llxHeader('', $langs->trans("UserCard").' - '.$langs->trans("Files")); if ($object->id) { From 8f5c8c63dfb7fbce04356d7c73c688d5f66e585a Mon Sep 17 00:00:00 2001 From: John Botella Date: Tue, 19 Nov 2019 16:35:31 +0100 Subject: [PATCH 926/944] Fix dom and showOptionals call --- htdocs/expedition/card.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index be5ed4c757a..a33055d4b10 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -2443,10 +2443,10 @@ elseif ($id || $ref) // Display lines extrafields if (is_array($extralabelslines) && count($extralabelslines)>0) { $colspan= empty($conf->productbatch->enabled) ? 5 : 6; - $line = new ExpeditionLigne($db); - $line->fetch_optionals($lines[$i]->id); - print ''; - if ($action == 'editline' && $lines[$i]->id == $line_id) + $line = $lines[$i]; + $line->fetch_optionals($line->id); + + if ($action == 'editline' && $line->id == $line_id) { print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>$colspan), $indiceAsked); } @@ -2454,7 +2454,6 @@ elseif ($id || $ref) { print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>$colspan), $indiceAsked); } - print ''; } } } From f73bd0e0a6fba4087e50e1f1548870b0068805ea Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 20 Nov 2019 13:07:26 +0100 Subject: [PATCH 927/944] FIX display job of contact list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit can see différent contact with same name but different job --- htdocs/comm/action/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 4e5abac75d3..c057dc2dee3 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -1290,7 +1290,7 @@ if ($id > 0) // related contact print ''; print ''; From 3daeb24da1ff2adf2d0c312156c41bb46254441f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Nov 2019 13:05:13 +0100 Subject: [PATCH 928/944] Fix confusion with field name in sql --- htdocs/comm/remx.php | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/htdocs/comm/remx.php b/htdocs/comm/remx.php index eabb217fb99..7a8b03cde4e 100644 --- a/htdocs/comm/remx.php +++ b/htdocs/comm/remx.php @@ -739,8 +739,8 @@ if ($socid > 0) $sql.= " rc.datec as dc, rc.description, rc.fk_facture_line, rc.fk_facture,"; $sql.= " rc.fk_facture_source,"; $sql.= " u.login, u.rowid as user_id,"; - $sql.= " f.rowid, f.ref,"; - $sql.= " fa.ref as ref, fa.type as type"; + $sql.= " f.rowid as invoiceid, f.ref,"; + $sql.= " fa.ref as invoice_source_ref, fa.type as type"; $sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql.= " , ".MAIN_DB_PREFIX."user as u"; $sql.= " , ".MAIN_DB_PREFIX."facturedet as fc"; @@ -758,8 +758,8 @@ if ($socid > 0) $sql2.= " rc.datec as dc, rc.description, rc.fk_facture_line, rc.fk_facture,"; $sql2.= " rc.fk_facture_source,"; $sql2.= " u.login, u.rowid as user_id,"; - $sql2.= " f.rowid, f.ref,"; - $sql2.= " fa.ref as ref, fa.type as type"; + $sql2.= " f.rowid as invoiceid, f.ref,"; + $sql2.= " fa.ref as invoice_source_ref, fa.type as type"; $sql2.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql2.= " , ".MAIN_DB_PREFIX."user as u"; $sql2.= " , ".MAIN_DB_PREFIX."societe_remise_except as rc"; @@ -833,7 +833,7 @@ if ($socid > 0) { print ''; @@ -842,7 +842,7 @@ if ($socid > 0) { print ''; @@ -851,7 +851,7 @@ if ($socid > 0) { print ''; @@ -862,7 +862,12 @@ if ($socid > 0) print $obj->description; print ''; } - print ''; + print ''; print ''; if (! empty($conf->multicurrency->enabled)) { @@ -909,8 +914,8 @@ if ($socid > 0) $sql.= " rc.datec as dc, rc.description, rc.fk_invoice_supplier_line, rc.fk_invoice_supplier,"; $sql.= " rc.fk_invoice_supplier_source,"; $sql.= " u.login, u.rowid as user_id,"; - $sql.= " f.rowid, f.ref as ref,"; - $sql.= " fa.ref, fa.type as type"; + $sql.= " f.rowid as invoiceid, f.ref as ref,"; + $sql.= " fa.ref as invoice_source_ref, fa.type as type"; $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as f"; $sql.= " , ".MAIN_DB_PREFIX."user as u"; $sql.= " , ".MAIN_DB_PREFIX."facture_fourn_det as fc"; @@ -928,8 +933,8 @@ if ($socid > 0) $sql2.= " rc.datec as dc, rc.description, rc.fk_invoice_supplier_line, rc.fk_invoice_supplier,"; $sql2.= " rc.fk_invoice_supplier_source,"; $sql2.= " u.login, u.rowid as user_id,"; - $sql2.= " f.rowid, f.ref as ref,"; - $sql2.= " fa.ref, fa.type as type"; + $sql2.= " f.rowid as invoiceid, f.ref as ref,"; + $sql2.= " fa.ref as invoice_source_ref, fa.type as type"; $sql2.= " FROM ".MAIN_DB_PREFIX."facture_fourn as f"; $sql2.= " , ".MAIN_DB_PREFIX."user as u"; $sql2.= " , ".MAIN_DB_PREFIX."societe_remise_except as rc"; @@ -1003,7 +1008,7 @@ if ($socid > 0) { print ''; @@ -1012,7 +1017,7 @@ if ($socid > 0) { print ''; @@ -1021,7 +1026,7 @@ if ($socid > 0) { print ''; @@ -1032,7 +1037,11 @@ if ($socid > 0) print $obj->description; print ''; } - print ''; + print ''; print ''; if (! empty($conf->multicurrency->enabled)) { From a8d02615a843a5b9debf34d80a64a1245fe937ef Mon Sep 17 00:00:00 2001 From: gauthier Date: Thu, 21 Nov 2019 14:58:20 +0100 Subject: [PATCH 929/944] FIX : we need to be able to recalculate tva only if invoice not ventil --- htdocs/fourn/facture/card.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index a294cf3c6ad..f82a2aeac0b 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -2642,11 +2642,14 @@ else else $calculationrule=(empty($conf->global->MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND)?'totalofround':'roundoftotal'); if ($calculationrule == 'totalofround') $calculationrulenum=1; else $calculationrulenum=2; - $s=$langs->trans("ReCalculate").' '; - $s.=''.$langs->trans("Mode1").''; - $s.=' / '; - $s.=''.$langs->trans("Mode2").''; - print $form->textwithtooltip($s, $langs->trans("CalculationRuleDesc",$calculationrulenum).'
'.$langs->trans("CalculationRuleDescSupplier"), 2, 1, img_picto('','help')); + + if(empty($object->getVentilExportCompta())) { + $s=$langs->trans("ReCalculate").' '; + $s.=''.$langs->trans("Mode1").''; + $s.=' / '; + $s.=''.$langs->trans("Mode2").''; + print $form->textwithtooltip($s, $langs->trans("CalculationRuleDesc",$calculationrulenum).'
'.$langs->trans("CalculationRuleDescSupplier"), 2, 1, img_picto('','help')); + } print '
'; // Amount Local Taxes From 5fdd6f698d3b550c7537d37deab1e54b69a50033 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 21 Nov 2019 20:45:19 +0100 Subject: [PATCH 930/944] More complete error message Conflicts: htdocs/core/class/CMailFile.class.php --- htdocs/core/class/CMailFile.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/CMailFile.class.php b/htdocs/core/class/CMailFile.class.php index bf9b617693f..9b1a5a69525 100644 --- a/htdocs/core/class/CMailFile.class.php +++ b/htdocs/core/class/CMailFile.class.php @@ -752,9 +752,9 @@ class CMailFile } else { - if (empty($this->error)) $this->error=$result; - dol_syslog("CMailFile::sendfile: mail end error=".$this->error, LOG_ERR); - $res=false; + if (empty($this->error)) $this->error = $result; + dol_syslog("CMailFile::sendfile: mail end error with smtps lib to HOST=".$server.", PORT=".$conf->global->$keyforsmtpport."
".$this->error, LOG_ERR); + $res = false; } } } From 4043356f3a7ac51122d08d6bf23776a470cec010 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Nov 2019 14:25:32 +0100 Subject: [PATCH 931/944] Update card.php --- htdocs/fourn/facture/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index f82a2aeac0b..1fd48033047 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -2643,7 +2643,7 @@ else if ($calculationrule == 'totalofround') $calculationrulenum=1; else $calculationrulenum=2; - if(empty($object->getVentilExportCompta())) { + if (empty($object->getVentilExportCompta())) { $s=$langs->trans("ReCalculate").' '; $s.=''.$langs->trans("Mode1").''; $s.=' / '; From cf0311dd6ad1579cb7cdc6c65d38e55fb32041f2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Nov 2019 16:13:22 +0100 Subject: [PATCH 932/944] FIX Hook getAccessForbiddenMessage was missing parameters --- htdocs/core/lib/security.lib.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 051f3a5392a..71d52f1bd9d 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -413,7 +413,8 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f if (! empty($objectid) && $objectid > 0) { $ok = checkUserAccessToObject($user, $featuresarray, $objectid, $tableandshare, $feature2, $dbt_keyfield, $dbt_select); - return $ok ? 1 : accessforbidden(); + $params=array('objectid' => $objectid, 'features' => join(',', $featuresarray), 'features2' => $feature2); + return $ok ? 1 : accessforbidden('', 1, 1, 0, $params); } return 1; @@ -651,13 +652,14 @@ function checkUserAccessToObject($user, $featuresarray, $objectid = 0, $tableand * Show a message to say access is forbidden and stop program * Calling this function terminate execution of PHP. * - * @param string $message Force error message - * @param int $printheader Show header before - * @param int $printfooter Show footer after - * @param int $showonlymessage Show only message parameter. Otherwise add more information. + * @param string $message Force error message + * @param int $printheader Show header before + * @param int $printfooter Show footer after + * @param int $showonlymessage Show only message parameter. Otherwise add more information. + * @param array|null $params Send params * @return void */ -function accessforbidden($message = '', $printheader = 1, $printfooter = 1, $showonlymessage = 0) +function accessforbidden($message = '', $printheader = 1, $printfooter = 1, $showonlymessage = 0, $params = null) { global $conf, $db, $user, $langs, $hookmanager; if (! is_object($langs)) @@ -688,7 +690,7 @@ function accessforbidden($message = '', $printheader = 1, $printfooter = 1, $sho // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('main')); } - $parameters = array('message'=>$message); + $parameters = array('message'=>$message, 'params'=>$params); $reshook=$hookmanager->executeHooks('getAccessForbiddenMessage', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks print $hookmanager->resPrint; if (empty($reshook)) From 27e4c66dd5c91a926bf843d47c44d60402878e85 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Nov 2019 18:11:11 +0100 Subject: [PATCH 933/944] Fix empty --- htdocs/fourn/facture/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 1fd48033047..cba4a5f8b67 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -906,7 +906,7 @@ if (empty($reshook)) // FIXME Missing special_code into addline and updateline methods $object->special_code = $lines[$i]->special_code; - + // FIXME Missing $lines[$i]->ref_supplier and $lines[$i]->label into addline and updateline methods. They are filled when coming from order for example. $result = $object->addline( $desc, @@ -2643,7 +2643,7 @@ else if ($calculationrule == 'totalofround') $calculationrulenum=1; else $calculationrulenum=2; - if (empty($object->getVentilExportCompta())) { + if ($object->getVentilExportCompta() != 0) { $s=$langs->trans("ReCalculate").' '; $s.=''.$langs->trans("Mode1").''; $s.=' / '; From 98a7a5559fb0bd1a4777b3b5c5cbe8c439faf810 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 24 Nov 2019 18:12:40 +0100 Subject: [PATCH 934/944] Fix bad fix --- htdocs/fourn/facture/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index cba4a5f8b67..9933217a8bb 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -2643,7 +2643,7 @@ else if ($calculationrule == 'totalofround') $calculationrulenum=1; else $calculationrulenum=2; - if ($object->getVentilExportCompta() != 0) { + if ($object->getVentilExportCompta() == 0) { $s=$langs->trans("ReCalculate").' '; $s.=''.$langs->trans("Mode1").''; $s.=' / '; From 1a43b58f8ab3cfda3a7dd4d2c779e993c0fbd64d Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 25 Nov 2019 10:03:35 +0100 Subject: [PATCH 935/944] FIX compatibility with Multicompany --- htdocs/public/ticket/create_ticket.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/public/ticket/create_ticket.php b/htdocs/public/ticket/create_ticket.php index b2434e7d826..a6d18937da4 100644 --- a/htdocs/public/ticket/create_ticket.php +++ b/htdocs/public/ticket/create_ticket.php @@ -53,7 +53,6 @@ $object = new Ticket($db); $extrafields = new ExtraFields($db); $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); - /* * Actions */ @@ -359,7 +358,7 @@ if ($action != "infos_success") { $formticket->withfile = 2; $formticket->action = 'create_ticket'; - $formticket->param = array('returnurl' => $_SERVER['PHP_SELF']); + $formticket->param = array('returnurl' => $_SERVER['PHP_SELF'].($conf->entity > 1 ? '?entity='.$conf->entity : '')); if (empty($defaultref)) { $defaultref = ''; From 60f19d134c0794ae4a78d703e7d9bc2dd5fcc48c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 26 Nov 2019 03:58:01 +0100 Subject: [PATCH 936/944] Fix Ticket - Align language type with datas for translation --- htdocs/langs/en_US/ticket.lang | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang index 70bd8220af0..f0e0ff8b726 100644 --- a/htdocs/langs/en_US/ticket.lang +++ b/htdocs/langs/en_US/ticket.lang @@ -33,8 +33,9 @@ TicketDictSeverity=Ticket - Severities TicketTypeShortBUGSOFT=Dysfonctionnement logiciel TicketTypeShortBUGHARD=Dysfonctionnement matériel TicketTypeShortCOM=Commercial question -TicketTypeShortINCIDENT=Request for assistance -TicketTypeShortPROJET=Project +TicketTypeShortISSUE=Request for assistance +TicketTypeShortREQUEST=Change or enhancement request +TicketTypeShortPROJECT=Project TicketTypeShortOTHER=Other TicketSeverityShortLOW=Low From 6cc61fef9c3001da486b5bc6a03c243c7b5664f5 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 26 Nov 2019 04:32:38 +0100 Subject: [PATCH 937/944] Fix Ticket - Deprecated
--- htdocs/core/class/html.formticket.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php index 747b2dbdf8b..1e51d54f37e 100644 --- a/htdocs/core/class/html.formticket.class.php +++ b/htdocs/core/class/html.formticket.class.php @@ -419,14 +419,14 @@ class FormTicket if ($withdolfichehead) dol_fiche_end(); - print '
'; + print '
'; print ''; if ($this->withcancel) { - print "     "; + print "      "; print "trans("Cancel") . "\">"; } - print "
\n"; + print ''; print "\n"; print "\n"; From 6a210945b7d70256f3386bdeca41972cd0eed90d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 26 Nov 2019 20:38:06 +0100 Subject: [PATCH 938/944] Prepare 10.0.4 --- 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 274f1953d40..7c71221ba3c 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', '10.0.3'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c +if (! defined('DOL_VERSION')) define('DOL_VERSION', '10.0.4'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c if (! defined('EURO')) define('EURO', chr(128)); From 355d7545f62beb5658c948bb2b0f8743ae3e9813 Mon Sep 17 00:00:00 2001 From: altairis Date: Wed, 27 Nov 2019 10:23:01 +0100 Subject: [PATCH 939/944] filter language is an array --- htdocs/core/class/html.formfile.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 9411e8bc824..7b885d36a52 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -741,7 +741,7 @@ class FormFile $defaultlang=$codelang?$codelang:$langs->getDefaultLang(); $morecss='maxwidth150'; if ($conf->browser->layout == 'phone') $morecss='maxwidth100'; - $out.= $formadmin->select_language($defaultlang, 'lang_id', 0, 0, 0, 0, 0, $morecss); + $out.= $formadmin->select_language($defaultlang, 'lang_id', 0, null, 0, 0, 0, $morecss); } else { From 425f88082fbd26b1a45c2805add7b9a76c20f75b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 27 Nov 2019 11:53:37 +0100 Subject: [PATCH 940/944] Prepare 10.0.4 --- ChangeLog | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9cb2225cd08..99e70e960c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,31 @@ English Dolibarr ChangeLog -------------------------------------------------------------- + +***** ChangeLog for 10.0.4 compared to 10.0.3 ***** +FIX: The pdf templates were using the large logo making PDF too large (and edition of proposal, order, invoice VERY slow) +FIX: #12258 +FIX: #12319 Restore feature ACCOUNTANCY_AUTOFILL_ACCOUNT_WITH_GENERIC. +FIX: #12356 +FIX: #12372 +FIX: #12385 +FIX: Advisory ID: usd20190053 +FIX: Advisory ID: usd20190067 +FIX: Avoid fatal error when creating thumb from PDF +FIX: compatibility with Multicompany +FIX: display job of contact list +FIX: Extrafields missing in export of expense report +FIX: Hook getAccessForbiddenMessage was missing parameters +FIX: limit 20 prevent to see all products/services +FIX: Search on leave request ref +FIX: security check. A user can see holiday with link without permissions +FIX: Set unpaid of expense report +FIX: shipping extrafields line +FIX: the SELECT examine more than MAX_JOIN_SIZE rows #12305 +FIX: triggers: directories read with opendir() never closed +FIX: we need to be able to recalculate tva only if invoice not in accountancy +FIX: wrong invoice id for fetchObjetctLinked + ***** ChangeLog for 10.0.3 compared to 10.0.2 ***** IMPORTANT : This version fixes a serious bug in saving the units of weight, size, surface and volume on product card. The unit were not saved correctly in database making calculation on shipments wrong. From 3acd0bc2ff1231484f2518b0def3ca2dd8b4f85e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 29 Nov 2019 11:32:09 +0100 Subject: [PATCH 941/944] FIX Reduce number of request for list of products --- htdocs/core/lib/product.lib.php | 62 +++++++++++++++++++-------------- htdocs/product/list.php | 14 +++++--- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index 6701a82b31b..f54f39b20f3 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -509,36 +509,46 @@ function measuring_units_string($scale = '', $measuring_style = '', $unit = 0, $ function measuringUnitString($unit, $measuring_style = '', $scale = '', $use_short_label = 0) { global $langs, $db; - require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; - $measuringUnits= new CUnits($db); + global $measuring_unit_cache; - if ($scale !== '') + if (empty($measuring_unit_cache[$unit.'_'.$measuring_style.'_'.$scale.'_'.$use_short_label])) { - $arrayforfilter = array( - 't.scale' => $scale, - 't.unit_type' => $measuring_style, - 't.active' => 1 - ); - } - else - { - $arrayforfilter = array( - 't.rowid' => $unit, - 't.unit_type' => $measuring_style, - 't.active' => 1 - ); - } - $result = $measuringUnits->fetchAll('', '', 0, 0, $arrayforfilter); + require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; + $measuringUnits= new CUnits($db); - if ($result<0) { - return -1; - } else { - if (is_array($measuringUnits->records) && count($measuringUnits->records)>0) { - if ($use_short_label) return $measuringUnits->records[key($measuringUnits->records)]->short_label; - else return $langs->transnoentitiesnoconv($measuringUnits->records[key($measuringUnits->records)]->label); - } else { - return ''; + if ($scale !== '') + { + $arrayforfilter = array( + 't.scale' => $scale, + 't.unit_type' => $measuring_style, + 't.active' => 1 + ); } + else + { + $arrayforfilter = array( + 't.rowid' => $unit, + 't.unit_type' => $measuring_style, + 't.active' => 1 + ); + } + $result = $measuringUnits->fetchAll('', '', 0, 0, $arrayforfilter); + + if ($result < 0) { + return -1; + } else { + if (is_array($measuringUnits->records) && count($measuringUnits->records)>0) { + if ($use_short_label) $labeltoreturn = $measuringUnits->records[key($measuringUnits->records)]->short_label; + else $labeltoreturn = $langs->transnoentitiesnoconv($measuringUnits->records[key($measuringUnits->records)]->label); + } else { + $labeltoreturn = ''; + } + $measuring_unit_cache[$unit.'_'.$measuring_style.'_'.$scale.'_'.$use_short_label] = $labeltoreturn; + return $labeltoreturn; + } + } + else { + return $measuring_unit_cache[$unit.'_'.$measuring_style.'_'.$scale.'_'.$use_short_label]; } } diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 6e870c05740..cfa330196d9 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -783,7 +783,7 @@ if ($resql) $obj = $db->fetch_object($resql); // Multilangs - if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active + if (! empty($conf->global->MAIN_MULTILANGS)) // If multilang is enabled { $sql = "SELECT label"; $sql.= " FROM ".MAIN_DB_PREFIX."product_lang"; @@ -801,7 +801,8 @@ if ($resql) $product_static->id = $obj->rowid; $product_static->ref = $obj->ref; - $product_static->ref_fourn = $obj->ref_supplier; + $product_static->ref_fourn = $obj->ref_supplier; // deprecated + $product_static->ref_supplier = $obj->ref_supplier; $product_static->label = $obj->label; $product_static->type = $obj->fk_product_type; $product_static->status_buy = $obj->tobuy; @@ -826,15 +827,17 @@ if ($resql) $product_static->surface = $obj->surface; $product_static->surface_units = $obj->surface_units; + // STOCK_DISABLE_OPTIM_LOAD can be set to force load_stock whatever is permissions on stock. if ((! empty($conf->stock->enabled) && $user->rights->stock->lire && $search_type != 1) || ! empty($conf->global->STOCK_DISABLE_OPTIM_LOAD)) // To optimize call of load_stock { if ($obj->fk_product_type != 1 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) // Not a service { - $product_static->load_stock('nobatch'); // Load stock_reel + stock_warehouse. This also call load_virtual_stock() + $option = 'nobatch'; + if (empty($arrayfields['stock_virtual']['checked'])) $option .= ',novirtual'; + $product_static->load_stock($option); // Load stock_reel + stock_warehouse. This can also call load_virtual_stock() } } - print '
'; // Ref @@ -845,6 +848,7 @@ if ($resql) print "\n"; if (! $i) $totalarray['nbfield']++; } + // Ref supplier if (! empty($arrayfields['pfp.ref_fourn']['checked'])) { @@ -853,6 +857,7 @@ if ($resql) print "\n"; if (! $i) $totalarray['nbfield']++; } + // Label if (! empty($arrayfields['p.label']['checked'])) { @@ -1120,6 +1125,7 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } + // Action print ''; print ''; print ''; if (count($echeance->lines)>0) print ''; @@ -189,10 +230,10 @@ if ($object->nbterm > 0 && count($echeance->lines)==0) print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; print ''."\n"; $i++; $capital = $cap_rest; @@ -215,15 +256,15 @@ elseif(count($echeance->lines)>0) print ''; print ''; print ''; - print ''; - print ''; + print ''; + print ''; if($line->datep > dol_now() && empty($line->fk_bank)){ - print ''; + print ''; }else{ - print ''; + print ''; } - print ''; + print ''; print '
'; @@ -1167,7 +1167,7 @@ if ($object->id > 0) if ($num > 0) { print '
'; - print '
'.$langs->trans("LatestCustomerTemplateInvoices", ($num<=$MAXLIST?"":$MAXLIST)).''.$langs->trans("AllCustomerTemplateInvoices").' '.$num.'
'; + print '
'; print ''; print ''; print ''; print ''; + print ''; print ''; } else diff --git a/htdocs/variants/combinations.php b/htdocs/variants/combinations.php index 3239dbb5060..4a7774b1a08 100644 --- a/htdocs/variants/combinations.php +++ b/htdocs/variants/combinations.php @@ -377,6 +377,7 @@ if (! empty($id) || ! empty($ref)) dol_fiche_end(); + $listofvariantselected = ''; // Create or edit a varian if ($action == 'add' || ($action == 'edit')) { @@ -386,7 +387,7 @@ if (! empty($id) || ! empty($ref)) //print dol_fiche_head(); $features = $_SESSION['addvariant_'.$object->id]; //First, sanitize - print '
'; + $listofvariantselected = '
'; if (! empty($features)) { foreach ($features as $feature) { @@ -400,16 +401,14 @@ if (! empty($id) || ! empty($ref)) continue; } - print '' . $prodattr->label . ':'. $prodattr_val->value . ' '; + $listofvariantselected .= '' . $prodattr->label . ':'. $prodattr_val->value . ' '; } } - print '
'; - print '

'; + $listofvariantselected .= '
'; //print dol_fiche_end(); } else { $title = $langs->trans('EditProductCombination'); } - print load_fiche_titre($title); if ($action == 'add') { $prodattr_all = $prodattr->fetchAll(); @@ -499,6 +498,10 @@ if (! empty($id) || ! empty($ref)) '; + + print load_fiche_titre($title); + print ''."\n"; print ''; print ''."\n"; @@ -507,9 +510,9 @@ if (! empty($id) || ! empty($ref)) print ''."\n"; } - print dol_fiche_head(); + print dol_fiche_head(); - ?> + ?>
'; diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 2c6580be662..c65c1fde57f 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -469,7 +469,7 @@ if ($object->id > 0) $num = $db->num_rows($query); - print '
'.$langs->trans("LastCustomersBills", ($num<=$MAXLIST?"":$MAXLIST)).''.$langs->trans("AllBills").' '.$num.'
'; + print '
'; print ''; print ''; - // Type + // Member + $adh->ref=$adh->getFullName($langs); + print ''; + print ''; + print ''; + + // Type print ''; print ''; - // Member - $adh->ref=$adh->getFullName($langs); - print ''; - print ''; - print ''; - // Date start subscription print ''; + //Invert sender and recipient + + print ''; + // Place customer adress to the ISO location print ''; } From 0b831ccdf73f7bd6bc8a5d1a59c270d4f0270fb1 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Fri, 9 Aug 2019 09:33:14 +0200 Subject: [PATCH 473/944] FIX better help message with multicompany --- htdocs/product/admin/product.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/htdocs/product/admin/product.php b/htdocs/product/admin/product.php index 67bca85cfe0..fff393ffc2a 100644 --- a/htdocs/product/admin/product.php +++ b/htdocs/product/admin/product.php @@ -556,7 +556,14 @@ if (! empty($conf->fournisseur->enabled)) $rowspan++; print ''; -print ''; +if (empty($conf->multicompany->enabled)) +{ + print ''; +} +else +{ + print ''; +} print ''; From 8f2786cf7b9fa87820d385a693a7dfa7bf2ed0ab Mon Sep 17 00:00:00 2001 From: Abbes Bahfir Date: Fri, 9 Aug 2019 10:02:41 +0100 Subject: [PATCH 474/944] fix:this is not accessible in static context --- htdocs/debugbar/class/TraceableDB.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/debugbar/class/TraceableDB.php b/htdocs/debugbar/class/TraceableDB.php index 4edc39a74af..d4bfd291602 100644 --- a/htdocs/debugbar/class/TraceableDB.php +++ b/htdocs/debugbar/class/TraceableDB.php @@ -143,7 +143,7 @@ class TraceableDB extends DoliDB */ public static function convertSQLFromMysql($line, $type = 'ddl') { - return $this->db->convertSQLFromMysql($line); + return self::$db->convertSQLFromMysql($line); } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps From 2dee289fc6eda76e05cc185583f02b1578b4ed35 Mon Sep 17 00:00:00 2001 From: Je2fb <46494485+Je2fb@users.noreply.github.com> Date: Wed, 7 Aug 2019 17:16:34 +0200 Subject: [PATCH 475/944] Update price_parser.class.php Calculation with supplier_min_price work Conflicts: htdocs/product/dynamic_price/class/price_parser.class.php --- htdocs/product/dynamic_price/class/price_parser.class.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/product/dynamic_price/class/price_parser.class.php b/htdocs/product/dynamic_price/class/price_parser.class.php index ef968f5e960..9b929f84946 100644 --- a/htdocs/product/dynamic_price/class/price_parser.class.php +++ b/htdocs/product/dynamic_price/class/price_parser.class.php @@ -262,9 +262,11 @@ class PriceParser return -1; } - //Get the supplier min - $productFournisseur = new ProductFournisseur($this->db); - $supplier_min_price = $productFournisseur->find_min_price_product_fournisseur($product->id, 0, 0); + //Get the supplier min + $productFournisseur = new ProductFournisseur($this->db); + if ($productFournisseur->find_min_price_product_fournisseur($product->id, 0, 0) > 0) { + $supplier_min_price = $productFournisseur->fourn_unitprice; + } //Accessible values by expressions $extra_values = array_merge($extra_values, array( From 9c92acadaa4a1b9a285947ba03b0b53558a325b2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 10 Aug 2019 01:51:50 +0200 Subject: [PATCH 476/944] Fix lang --- htdocs/langs/en_US/admin.lang | 9 --------- 1 file changed, 9 deletions(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 855d1fc8886..367ff6672a5 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1909,22 +1909,13 @@ WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramatical DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export -<<<<<<< HEAD InstanceUniqueID=Unique ID of the instance SmallerThan=Smaller than LargerThan=Larger than IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID is found into incoming email, the event will be automatically linked to the related objects. WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/. -IFTTTSetup=IFTTT module setup -IFTTT_SERVICE_KEY=IFTTT Service key -IFTTT_DOLIBARR_ENDPOINT_SECUREKEY=Security key to secure the endpoint URL used by IFTTT to send messages to your Dolibarr. -IFTTTDesc=This module is designed to trigger events on IFTTT and/or to execute some action on external IFTTT triggers. -UrlForIFTTT=URL endpoint for IFTTT -YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined -======= ->>>>>>> branch '9.0' of git@github.com:Dolibarr/dolibarr.git From e21d6289eade059e5bcdb5a0e197b4d7a8c67815 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 10 Aug 2019 02:09:59 +0200 Subject: [PATCH 477/944] FIX Can't add a new chart of account --- htdocs/accountancy/admin/accountmodel.php | 53 +++-------------------- 1 file changed, 6 insertions(+), 47 deletions(-) diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index 102d268e218..d19d3d07dca 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -156,17 +156,8 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) $ok=1; foreach ($listfield as $f => $value) { - if ($value == 'country_id' && in_array($tablib[$id], array('DictionaryVAT','DictionaryRegion','DictionaryCompanyType','DictionaryHolidayTypes','DictionaryRevenueStamp','DictionaryAccountancyCategory','Pcg_version'))) continue; // For some pages, country is not mandatory - if ($value == 'country' && in_array($tablib[$id], array('DictionaryCanton','DictionaryCompanyType','DictionaryRevenueStamp'))) continue; // For some pages, country is not mandatory - if ($value == 'localtax1' && empty($_POST['localtax1_type'])) continue; - if ($value == 'localtax2' && empty($_POST['localtax2_type'])) continue; - if ($value == 'color' && empty($_POST['color'])) continue; - if ($value == 'formula' && empty($_POST['formula'])) continue; - if ((! isset($_POST[$value]) || $_POST[$value]=='') - && (! in_array($listfield[$f], array('decalage','module','accountancy_code','accountancy_code_sell','accountancy_code_buy')) // Fields that are not mandatory - && (! ($id == 10 && $listfield[$f] == 'code')) // Code is mandatory fir table 10 - ) - ) + if ($value == 'country_id' && in_array($tablib[$id], array('Pcg_version'))) continue; // For some pages, country is not mandatory + if ((! isset($_POST[$value]) || $_POST[$value]=='')) { $ok=0; $fieldnamekey=$listfield[$f]; @@ -174,19 +165,6 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) if ($fieldnamekey == 'pcg_version') $fieldnamekey='Pcg_version'; if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey='Label'; - if ($fieldnamekey == 'libelle_facture') $fieldnamekey = 'LabelOnDocuments'; - if ($fieldnamekey == 'nbjour') $fieldnamekey='NbOfDays'; - if ($fieldnamekey == 'decalage') $fieldnamekey='Offset'; - if ($fieldnamekey == 'module') $fieldnamekey='Module'; - if ($fieldnamekey == 'code') $fieldnamekey = 'Code'; - if ($fieldnamekey == 'note') $fieldnamekey = 'Note'; - if ($fieldnamekey == 'taux') $fieldnamekey = 'Rate'; - if ($fieldnamekey == 'type') $fieldnamekey = 'Type'; - if ($fieldnamekey == 'position') $fieldnamekey = 'Position'; - if ($fieldnamekey == 'unicode') $fieldnamekey = 'Unicode'; - if ($fieldnamekey == 'deductible') $fieldnamekey = 'Deductible'; - if ($fieldnamekey == 'sortorder') $fieldnamekey = 'SortOrder'; - if ($fieldnamekey == 'category_type') $fieldnamekey = 'Calculated'; setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors'); } @@ -196,9 +174,9 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) $ok=0; setEventMessages($langs->transnoentities('ErrorReservedTypeSystemSystemAuto'), null, 'errors'); } - if (isset($_POST["code"])) + if (isset($_POST["pcg_version"])) { - if ($_POST["code"]=='0') + if ($_POST["pcg_version"]=='0') { $ok=0; setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors'); @@ -211,28 +189,9 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) } if (isset($_POST["country"]) && ($_POST["country"]=='0') && ($id != 2)) { - if (in_array($tablib[$id], array('DictionaryCompanyType','DictionaryHolidayTypes'))) // Field country is no mandatory for such dictionaries - { - $_POST["country"]=''; - } - else - { - $ok=0; - setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities("Country")), null, 'errors'); - } + $ok=0; + setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities("Country")), null, 'errors'); } - if (! is_numeric($_POST["code"])) - { - $ok=0; - setEventMessages($langs->transnoentities("ErrorFieldMustBeANumeric", $langs->transnoentities("Code")), null, 'errors'); - } - - // Clean some parameters - if (isset($_POST["localtax1"]) && empty($_POST["localtax1"])) $_POST["localtax1"]='0'; // If empty, we force to 0 - if (isset($_POST["localtax2"]) && empty($_POST["localtax2"])) $_POST["localtax2"]='0'; // If empty, we force to 0 - if ($_POST["accountancy_code"] <= 0) $_POST["accountancy_code"]=''; // If empty, we force to null - if ($_POST["accountancy_code_sell"] <= 0) $_POST["accountancy_code_sell"]=''; // If empty, we force to null - if ($_POST["accountancy_code_buy"] <= 0) $_POST["accountancy_code_buy"]=''; // If empty, we force to null // Si verif ok et action add, on ajoute la ligne if ($ok && GETPOST('actionadd', 'alpha')) From 5ca988b3d2081b371785d4625482132e2df0d753 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Aug 2019 02:36:15 +0200 Subject: [PATCH 478/944] Fix position of requests --- htdocs/install/mysql/data/llx_c_tva.sql | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/install/mysql/data/llx_c_tva.sql b/htdocs/install/mysql/data/llx_c_tva.sql index 17c8b7489ee..26c2acdf308 100644 --- a/htdocs/install/mysql/data/llx_c_tva.sql +++ b/htdocs/install/mysql/data/llx_c_tva.sql @@ -128,12 +128,6 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (11 insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1162, 116, '7','0','VAT reduced rate',1); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1163, 116, '0','0','VAT rate 0',1); --- ITALY (id country=3) -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 31, 3, '22','0','VAT standard rate',1); -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 32, 3, '10','0','VAT reduced rate',1); -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 33, 3, '4','0','VAT super-reduced rate',1); -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 34, 3, '0','0','VAT Rate 0',1); - -- INDIA (id country=117) insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1171, 117, '0','0','VAT Rate 0', 0); @@ -153,6 +147,12 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 8 insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 84, 8, '9','0','VAT reduced rate',1); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 85, 8, '4.8','0','VAT reduced rate',1); +-- ITALY (id country=3) +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 31, 3, '22','0','VAT standard rate',1); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 32, 3, '10','0','VAT reduced rate',1); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 33, 3, '4','0','VAT super-reduced rate',1); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 34, 3, '0','0','VAT Rate 0',1); + -- IVORY COST (id country=21) insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,localtax1,localtax1_type,localtax2,localtax2_type,note,active) values (211, 21, '0','0',0,0,0,0,'IVA Rate 0',1); insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,localtax1,localtax1_type,localtax2,localtax2_type,note,active) values (212, 21, '18','0',7.5,2,0,0,'IVA standard rate',1); From 49e2f447a8ec43cec3deb5a0e2af69628bb97f46 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Aug 2019 02:41:27 +0200 Subject: [PATCH 479/944] Fix responsive --- htdocs/admin/dict.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 87e072b8d7e..c2b61fe378e 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -1058,7 +1058,7 @@ if ($id) $valuetoshow=$langs->trans($valuetoshow); // try to translate $class=''; - if ($fieldlist[$field]=='pos') { $valuetoshow=$langs->trans("Position"); $class='width100'; } + if ($fieldlist[$field]=='pos') { $valuetoshow=$langs->trans("Position"); $class='maxwidth100'; } if ($fieldlist[$field]=='source') { $valuetoshow=$langs->trans("Contact"); } if ($fieldlist[$field]=='price') { $valuetoshow=$langs->trans("PriceUHT"); } if ($fieldlist[$field]=='taux') { @@ -1076,7 +1076,7 @@ if ($id) if ($tabname[$id] == MAIN_DB_PREFIX."c_paiement") $valuetoshow=$form->textwithtooltip($langs->trans("Type"), $langs->trans("TypePaymentDesc"), 2, 1, img_help(1, '')); else $valuetoshow=$langs->trans("Type"); } - if ($fieldlist[$field]=='code') { $valuetoshow=$langs->trans("Code"); $class='width100'; } + if ($fieldlist[$field]=='code') { $valuetoshow=$langs->trans("Code"); $class='maxwidth100'; } if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label') { $valuetoshow=$form->textwithtooltip($langs->trans("Label"), $langs->trans("LabelUsedByDefault"), 2, 1, img_help(1, '')); @@ -1602,7 +1602,7 @@ if ($id) $class='tddict'; if ($fieldlist[$field] == 'note' && $id == 10) $class.=' tdoverflowmax200'; if ($fieldlist[$field] == 'tracking') $class.=' tdoverflowauto'; - if ($fieldlist[$field] == 'code') $class.=' width100'; + if ($fieldlist[$field] == 'code') $class.=' maxwidth100'; if ($fieldlist[$field] == 'position') $class.=' right'; if ($fieldlist[$field] == 'localtax1_type') $class.=' nowrap'; if ($fieldlist[$field] == 'localtax2_type') $class.=' nowrap'; @@ -1981,7 +1981,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') } $classtd=''; $class=''; - if ($fieldlist[$field]=='code') $classtd='width100'; + if ($fieldlist[$field]=='code') $classtd='maxwidth100'; if (in_array($fieldlist[$field], array('pos', 'use_default', 'affect', 'delay', 'position', 'sortorder', 'sens', 'category_type'))) $class='maxwidth50'; if (in_array($fieldlist[$field], array('libelle', 'label', 'tracking'))) $class='quatrevingtpercent'; print '"; // Modify link From 77c96a49e1a3754c79c32c3242fc15daf8d36dd6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Aug 2019 04:53:47 +0200 Subject: [PATCH 488/944] Update website template --- .../websites/website_template-corporate.zip | Bin 2296189 -> 2297082 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 f4b25d9a69e5b9e8ab22761c49c91d61112cd40c..6ee933a0c7bff29d44b2352e7e3d9ed557da39d5 100644 GIT binary patch delta 168284 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�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ŗ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


'.$weblangs->trans("SorryWebsiteIsCurrentlyOffLine").'
'; + exit; +} diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index 433e35e2d1b..e25e72ab791 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -76,6 +76,7 @@ BackToListOfThirdParty=Back to list for Third Party DisableSiteFirst=Disable website first MyContainerTitle=My web site title AnotherContainer=Another container +SorryWebsiteIsCurrentlyOffLine=Sorry, this website is currently off line. Please comme back later... WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / third party YouMustDefineTheHomePage=You must first define the default Home page From 52d34edb03a052a405612d315d31818a953b68ae Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Aug 2019 05:22:49 +0200 Subject: [PATCH 490/944] FIX USEDOLIBARREDITOR not always set --- htdocs/website/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 1a7a07ba18d..3362983de62 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -23,6 +23,7 @@ define('NOSCANPOSTFORINJECTION', 1); define('NOSTYLECHECK', 1); +define('USEDOLIBARREDITOR', 1); header('X-XSS-Protection:0'); @@ -3009,7 +3010,6 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa // If mode WEBSITE_SUBCONTAINERSINLINE is on if (! empty($conf->global->WEBSITE_SUBCONTAINERSINLINE)) { - define('USEDOLIBARREDITOR', 1); //var_dump($filetpl); $filephp = $filetpl; ob_start(); From 99473097a911227964667fb514067b86dfee3476 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Aug 2019 06:37:06 +0200 Subject: [PATCH 491/944] FIX Add log and type of content in dolWebsiteOutput and dolWebsiteReplacementOfLinks Conflicts: htdocs/website/index.php --- htdocs/core/lib/website.lib.php | 20 ++++++++++++++------ htdocs/core/website.inc.php | 1 + htdocs/website/index.php | 7 +++---- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index 29a2ab27d8f..510539f7421 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -36,6 +36,8 @@ function dolWebsiteReplacementOfLinks($website, $content, $removephppart = 0) { $nbrep = 0; + dol_syslog('dolWebsiteReplacementOfLinks start', LOG_DEBUG); + // Replace php code. Note $content may come from database and does not contains body tags. $replacewith='...php...'; if ($removephppart) $replacewith=''; @@ -90,6 +92,8 @@ function dolWebsiteReplacementOfLinks($website, $content, $removephppart = 0) $content=preg_replace('/(href=")(\/?document\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep); $content=preg_replace('/(src=")(\/?document\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep); + dol_syslog('dolWebsiteReplacementOfLinks end', LOG_DEBUG); + return $content; } @@ -176,16 +180,17 @@ function dolKeepOnlyPhpCode($str) * Render a string of an HTML content and output it. * Used to ouput the page when viewed from server (Dolibarr or Apache). * - * @param string $content Content string + * @param string $content Content string + * @param string $contenttype Content type * @return void * @see dolWebsiteReplacementOfLinks() for function used to replace content in the backoffice context when USEDOLIBARREDITOR is not on */ -function dolWebsiteOutput($content) +function dolWebsiteOutput($content, $contenttype='html') { global $db, $langs, $conf, $user; global $dolibarr_main_url_root, $dolibarr_main_data_root; - dol_syslog("dolWebsiteOutput start (USEDOLIBARRSERVER=".(defined('USEDOLIBARRSERVER')?'1':'')." USEDOLIBARREDITOR=".(defined('USEDOLIBARREDITOR')?'1':'').')'); + dol_syslog("dolWebsiteOutput start (contenttype=".$contenttype." USEDOLIBARRSERVER=".(defined('USEDOLIBARRSERVER')?'1':'')." USEDOLIBARREDITOR=".(defined('USEDOLIBARREDITOR')?'1':'').')'); // Define $urlwithroot $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); @@ -195,9 +200,12 @@ function dolWebsiteOutput($content) if (defined('USEDOLIBARREDITOR')) // REPLACEMENT OF LINKS When page called from Dolibarr editor { // We remove the part of content - $content = preg_replace('/.*<\/head>/ims', '', $content); - $content = preg_replace('/^.*]*)*>/ims', '', $content); - $content = preg_replace('/<\/body(\s[^>]*)*>.*$/ims', '', $content); + if ($contenttype == 'html') + { + $content = preg_replace('/.*<\/head>/ims', '', $content); + $content = preg_replace('/^.*]*)*>/ims', '', $content); + $content = preg_replace('/<\/body(\s[^>]*)*>.*$/ims', '', $content); + } } elseif (defined('USEDOLIBARRSERVER')) // REPLACEMENT OF LINKS When page called from Dolibarr server { diff --git a/htdocs/core/website.inc.php b/htdocs/core/website.inc.php index 44c5d89097a..cf9b76a7be1 100644 --- a/htdocs/core/website.inc.php +++ b/htdocs/core/website.inc.php @@ -98,6 +98,7 @@ if ($_SERVER['PHP_SELF'] != DOL_URL_ROOT.'/website/index.php') // If we browsing if (! defined('USEDOLIBARREDITOR') && empty($website->status)) { $weblangs->load("website"); + http_response_code(503); print '


'.$weblangs->trans("SorryWebsiteIsCurrentlyOffLine").'
'; exit; } diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 3362983de62..f58b2200daf 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -975,7 +975,7 @@ if ($action == 'updatecss') $csscontent.= GETPOST('WEBSITE_CSS_INLINE', 'none'); $csscontent.= "\n".'"."\n"; dol_syslog("Save css content into ".$filecss); @@ -1008,7 +1008,7 @@ if ($action == 'updatecss') $jscontent.= GETPOST('WEBSITE_JS_INLINE', 'none'); $jscontent.= "\n".'"."\n"; dol_syslog("Save js content into ".$filejs); @@ -1041,7 +1041,7 @@ if ($action == 'updatecss') $robotcontent.= GETPOST('WEBSITE_ROBOT', 'none'); /*$robotcontent.= "\n".'"."\n";*/ dol_syslog("Save file robot into ".$filerobot); @@ -1090,7 +1090,6 @@ if ($action == 'updatecss') setEventMessages('Failed to write file '.$filehtaccess, null, 'errors'); } - // Message if no error if (! $error) { From 056f51bfc559678c965082d56d616d38fa7271e4 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 13 Aug 2019 07:14:42 +0200 Subject: [PATCH 492/944] FIX duplicate css tag, decrease padding-bottom for boxes in eldy theme --- htdocs/theme/eldy/global.inc.php | 10 ++++------ htdocs/theme/md/style.css.php | 9 +++------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index a137b91236f..4df7a6ba014 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -3080,6 +3080,10 @@ ul.noborder li:nth-child(even):not(.liste_titre) { .box { overflow-x: auto; min-height: 40px; + padding-right: 0px; + padding-left: 0px; + /*padding-bottom: 25px;*/ + padding-bottom: 10px; } .ficheaddleft div.boxstats, .ficheaddright div.boxstats { border: none; @@ -3266,12 +3270,6 @@ a.valignmiddle.dashboardlineindicator { line-height: 30px; } -.box { - padding-right: 0px; - padding-left: 0px; - padding-bottom: 25px; -} - tr.box_titre { height: 26px; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 8999a73aaea..704610eca82 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -3344,6 +3344,9 @@ ul.noborder li:nth-child(even):not(.liste_titre) { .box { overflow-x: auto; min-height: 40px; + padding-right: 0px; + padding-left: 0px; + padding-bottom: 12px; } .ficheaddleft div.boxstats, .ficheaddright div.boxstats { border: none; @@ -3470,12 +3473,6 @@ a.valignmiddle.dashboardlineindicator { line-height: 30px; } -.box { - padding-right: 0px; - padding-left: 0px; - padding-bottom: 12px; -} - tr.box_titre { height: 26px !important; From 34579dd4dbdfb80fb1789b35163a04fa35a1df8e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 13 Aug 2019 07:46:03 +0200 Subject: [PATCH 493/944] FIX phpcs --- htdocs/core/lib/website.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index 510539f7421..b745956d3ca 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -185,7 +185,7 @@ function dolKeepOnlyPhpCode($str) * @return void * @see dolWebsiteReplacementOfLinks() for function used to replace content in the backoffice context when USEDOLIBARREDITOR is not on */ -function dolWebsiteOutput($content, $contenttype='html') +function dolWebsiteOutput($content, $contenttype = 'html') { global $db, $langs, $conf, $user; global $dolibarr_main_url_root, $dolibarr_main_data_root; From b443b1b37284812af0d7fb16ec5d3fb7ae659542 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Aug 2019 14:21:43 +0200 Subject: [PATCH 494/944] FIX permission check on API intervention --- htdocs/fichinter/class/api_interventions.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/fichinter/class/api_interventions.class.php b/htdocs/fichinter/class/api_interventions.class.php index 2702ad6c55e..9e1d717d36a 100644 --- a/htdocs/fichinter/class/api_interventions.class.php +++ b/htdocs/fichinter/class/api_interventions.class.php @@ -80,7 +80,7 @@ class Interventions extends DolibarrApi $result = $this->fichinter->fetch($id); if( ! $result ) { - throw new RestException(404, 'Intervention report not found'); + throw new RestException(404, 'Intervention not found'); } if( ! DolibarrApi::_checkAccessToResource('fichinter', $this->fichinter->id)) { @@ -174,10 +174,10 @@ class Interventions extends DolibarrApi } } else { - throw new RestException(503, 'Error when retrieve fichinter list : '.$db->lasterror()); + throw new RestException(503, 'Error when retrieve intervention list : '.$db->lasterror()); } if( ! count($obj_ret)) { - throw new RestException(404, 'No finchinter found'); + throw new RestException(404, 'No intervention found'); } return $obj_ret; } @@ -200,7 +200,7 @@ class Interventions extends DolibarrApi } if ($this->fichinter->create(DolibarrApiAccess::$user) < 0) { - throw new RestException(500, "Error creating fichinter", array_merge(array($this->fichinter->error), $this->fichinter->errors)); + throw new RestException(500, "Error creating intervention", array_merge(array($this->fichinter->error), $this->fichinter->errors)); } return $this->fichinter->id; @@ -301,7 +301,7 @@ class Interventions extends DolibarrApi throw new RestException(404, 'Intervention not found'); } - if( ! DolibarrApi::_checkAccessToResource('commande', $this->fichinter->id)) { + if( ! DolibarrApi::_checkAccessToResource('fichinter', $this->fichinter->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } From 8198276d64856cd7fe9cf27c9d6a9e39c63dce7f Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 13 Aug 2019 17:47:30 +0200 Subject: [PATCH 495/944] FIX for MAIN_MAXTABS_IN_CARD = $i card --- 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 e9f4301f8f2..a46bd661eb2 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1130,7 +1130,7 @@ function dol_get_fiche_head($links = array(), $active = '', $title = '', $notab if ((is_numeric($active) && $i == $active) || (! empty($links[$i][2]) && ! is_numeric($active) && $active == $links[$i][2])) { // If active tab is already present - if ($i >= $limittoshow) $limittoshow--; + if ($i > $limittoshow) $limittoshow--; } } @@ -1146,7 +1146,7 @@ function dol_get_fiche_head($links = array(), $active = '', $title = '', $notab $isactive=false; } - if ($i < $limittoshow || $isactive) + if ($i <= $limittoshow || $isactive) { $out.='
'; if (isset($links[$i][2]) && $links[$i][2] == 'image') From 93d64bb84e3278891a52332bae037a31df58329f Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 13 Aug 2019 17:59:19 +0200 Subject: [PATCH 496/944] Update functions.lib.php --- 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 a46bd661eb2..9d85ab85048 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1130,7 +1130,7 @@ function dol_get_fiche_head($links = array(), $active = '', $title = '', $notab if ((is_numeric($active) && $i == $active) || (! empty($links[$i][2]) && ! is_numeric($active) && $active == $links[$i][2])) { // If active tab is already present - if ($i > $limittoshow) $limittoshow--; + if ($i >= $limittoshow) $limittoshow--; } } From e1ab5089d7b8f27f7e28d4aa1937c897539fbcca Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Aug 2019 18:22:18 +0200 Subject: [PATCH 497/944] FIX Missing some replacements in website module Conflicts: htdocs/website/index.php --- htdocs/core/lib/website.lib.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index 510539f7421..976daae84c1 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -92,6 +92,9 @@ function dolWebsiteReplacementOfLinks($website, $content, $removephppart = 0) $content=preg_replace('/(href=")(\/?document\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep); $content=preg_replace('/(src=")(\/?document\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep); + // Fix relative link /viewimage.php with correct URL after the DOL_URL_ROOT: ...href="/viewimage.php?modulepart=" + $content=preg_replace('/(url\(")(\/?viewimage\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep); + dol_syslog('dolWebsiteReplacementOfLinks end', LOG_DEBUG); return $content; @@ -183,7 +186,7 @@ function dolKeepOnlyPhpCode($str) * @param string $content Content string * @param string $contenttype Content type * @return void - * @see dolWebsiteReplacementOfLinks() for function used to replace content in the backoffice context when USEDOLIBARREDITOR is not on + * @see dolWebsiteReplacementOfLinks() for function used to replace content in the backoffice context. */ function dolWebsiteOutput($content, $contenttype='html') { @@ -226,6 +229,7 @@ function dolWebsiteOutput($content, $contenttype='html') // Fix relative link /viewimage.php with correct URL after the DOL_URL_ROOT: href="/viewimage.php?modulepart=" => href="/dolibarr/viewimage.php?modulepart=" $content=preg_replace('/(href=")(\/?viewimage\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep); $content=preg_replace('/(src=")(\/?viewimage\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep); + $content=preg_replace('/(url\(")(\/?viewimage\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep); // Fix relative link into medias with correct URL after the DOL_URL_ROOT: ../url("medias/ $content=preg_replace('/url\((["\']?)medias\//', 'url(\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep); From 6de2118f11b8843a3aba20ed987ddf6be3c9a59b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Aug 2019 01:43:06 +0200 Subject: [PATCH 498/944] FIX Bad error management in zip compress and web site export Conflicts: htdocs/website/index.php --- htdocs/core/lib/files.lib.php | 24 +++++++++++++++++++--- htdocs/website/class/website.class.php | 15 +++++++++++--- htdocs/website/index.php | 28 +++++++++++++++++++++++++- 3 files changed, 60 insertions(+), 7 deletions(-) diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index a635160a22d..3ef82f9f3b6 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -1892,6 +1892,8 @@ function dol_compress_file($inputfile, $outputfile, $mode = "gz") try { + dol_syslog("dol_compress_file mode=".$mode." inputfile=".$inputfile." outputfile=".$outputfile); + $data = implode("", file(dol_osencode($inputfile))); if ($mode == 'gz') { $foundhandler=1; $compressdata = gzencode($data, 9); } elseif ($mode == 'bz') { $foundhandler=1; $compressdata = bzcompress($data, 9); } @@ -1903,9 +1905,25 @@ function dol_compress_file($inputfile, $outputfile, $mode = "gz") include_once ODTPHP_PATHTOPCLZIP.'/pclzip.lib.php'; $archive = new PclZip($outputfile); - $archive->add($inputfile, PCLZIP_OPT_REMOVE_PATH, dirname($inputfile)); - //$archive->add($inputfile); - return 1; + $result = $archive->add($inputfile, PCLZIP_OPT_REMOVE_PATH, dirname($inputfile)); + + if ($result === 0) + { + global $errormsg; + $errormsg=$archive->errorInfo(true); + dol_syslog("dol_compress_file failure - ".$errormsg, LOG_ERR); + if ($archive->errorCode() == PCLZIP_ERR_WRITE_OPEN_FAIL) + { + dol_syslog("dol_compress_file error PCLZIP_ERR_WRITE_OPEN_FAIL", LOG_ERR); + return -4; + } + return -3; + } + else + { + dol_syslog("dol_compress_file success - ".count($result)." files"); + return 1; + } } } diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php index 64e23642b60..fa4d9154dc8 100644 --- a/htdocs/website/class/website.class.php +++ b/htdocs/website/class/website.class.php @@ -790,7 +790,7 @@ class Website extends CommonObject /** * Generate a zip with all data of web site. * - * @return string Path to file with zip + * @return string Path to file with zip or '' if error */ public function exportWebSite() { @@ -957,9 +957,18 @@ class Website extends CommonObject $filename = $conf->website->dir_temp.'/'.$website->ref.'/website_'.$website->ref.'-'.dol_print_date(dol_now(), 'dayhourlog').'.zip'; dol_delete_file($fileglob, 0); - dol_compress_file($filedir, $filename, 'zip'); + $result = dol_compress_file($filedir, $filename, 'zip'); - return $filename; + if ($result > 0) + { + return $filename; + } + else + { + global $errormsg; + $this->error = $errormsg; + return ''; + } } diff --git a/htdocs/website/index.php b/htdocs/website/index.php index f58b2200daf..b240c376f9e 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -289,7 +289,7 @@ if ($action == 'addsite') { $db->begin(); - if (GETPOST('virtualhost', 'alpha') && ! preg_match('/^http/', GETPOST('virtualhost', 'alpha'))) + if (GETPOST('virtualhost', 'alpha') && ! preg_match('/^http/', GETPOST('virtualhost', 'alpha'))) { $error++; setEventMessages($langs->trans('ErrorURLMustStartWithHttp', $langs->transnoentitiesnoconv("VirtualHost")), null, 'errors'); @@ -365,6 +365,7 @@ if ($action == 'addcontainer') { include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php'; + //if (! preg_match('/^http/', $urltograb) && ! preg_match('/^file/', $urltograb)) if (! preg_match('/^http/', $urltograb)) { $error++; @@ -378,6 +379,7 @@ if ($action == 'addcontainer') // Clean url to grab, so url can be // http://www.example.com/ or http://www.example.com/dir1/ or http://www.example.com/dir1/aaa $urltograbwithoutdomainandparam = preg_replace('/^https?:\/\/[^\/]+\/?/i', '', $urltograb); + //$urltograbwithoutdomainandparam = preg_replace('/^file:\/\/[^\/]+\/?/i', '', $urltograb); $urltograbwithoutdomainandparam = preg_replace('/\?.*$/', '', $urltograbwithoutdomainandparam); if (empty($urltograbwithoutdomainandparam) && ! preg_match('/\/$/', $urltograb)) { @@ -1600,6 +1602,10 @@ if ($action == 'exportsite') readfile($fileofzip); exit; } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } } // Import site @@ -2949,6 +2955,7 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa // Ouput page under the Dolibarr top menu $objectpage->fetch($pageid); + $jscontent = @file_get_contents($filejs); $out = ''."\n"; @@ -2963,6 +2970,25 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa $out.="\n\n"; $out.="\n"; $out.=dolWebsiteReplacementOfLinks($object, $objectpage->htmlheader, 1); + + $out.="\n"; + // TODO Keep only the or the \n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:18:11',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(2,2,'blog-our-company-is-now-on-dolibarr','','Our company is now on Dolibarr ERP CRM','Our company has moved on Dolibarr ERP CRM. This is an important step in improving all of our services.','','\n\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
title; ?>\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n


\n Like several thousands of companies, our company (name ?>) has moved all its information system to
Dolibarr ERP CRM. More than 20 applications have been replaced by only one, easier to use and fully integrated.\n This is an important step in improving all of our services.\n \n


\n \n
\n \n

\n
Screenshot of our new Open Source solution
\n
\n \n \n \n





\n
\n\n\n\n\n\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:23:06',NULL,NULL,'blogpost','en_US',NULL,'','',NULL,'image/template/background_dolibarr.jpg'),(3,2,'blog-our-new-web-site-has-been-launched','','Our new web site has been launched','Our new website, based on Dolibarr CMS, has been launched. Modern and directly integrated with the internal management tools of the company, many new online services for our customers will be able to see the day...','','\n\n
\n
\n
\n
\n
\n
\n
\n
\n
title; ?>\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n





\n\n\n Our new website, based on Dolibarr CMS, has been launched.
\n Now it is modern and directly integrated with the internal management tools of the company. Many new online services will be available for our customers...\n\n \n\n





\n
\n\n\n\n\n\n\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:23:16',NULL,NULL,'blogpost','en_US',NULL,'','',NULL,'image/template/background_rough-horn.jpg'),(4,2,'careers','','Careers','Our job opportunities','career','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Job opportunities\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n
\nThere is no job opportunities for the moment...
\n
\n
\n
\n
\n
\n
\n\n\n

\n\n \n\n
\n \n\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:24:41',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(5,2,'carriere','','Carrière','Nos opportunités professionnelles','career','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Offres d\'emploi\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n
\nNous n\'avons pas d\'offres d\'emploi ouvertes en ce moment...
\n
\n
\n
\n
\n
\n
\n\n\n

\n\n \n\n
\n \n\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:24:57',NULL,NULL,'page','fr_FR',NULL,'','',NULL,''),(6,2,'clients-testimonials','','Clients Testimonials','Client Testimonials','testimonials, use cases, success story','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Testimonials\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n

\n

What they say about us

\n



\n Send us your testimonial (by email to email; ?>\">email; ?>)\n



\n

\n
\n\n

\n\n \n\n
\n \n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:25:18',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(7,2,'contact','','Contact','Privacy Policies','Contact','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Contact\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n

Contact us:



\n email ?>
\n getFullAddress() ?>
\n
\n
\n\n\n \n
\n
\n \n
\n\n


\n\n \n\n
\n \n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:25:38',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(8,2,'faq','','FAQ','Frequently Asked Questions','faq','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
FAQs\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n


Frequently Asked Questions

\n
\n
\n
\n

How can I contact you ?


\nYou can contact us by using this page.\n
\n
\n
\n

What is your privacy policy ?


\nYou may find information about our privacy policy on this page.\n\n\n



\n\n
\n
\n\n\n

\n\n \n\n
\n \n\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:25:51',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(9,2,'footer','','Footer','Footer','','\n
\n\n \n \n \n\n
\n\n\n\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:28:20',NULL,NULL,'other','en_US',NULL,'','',NULL,''),(10,2,'header','','Header and Top Menu','Header with menu','','\n\n\n\n\n
\n
\n
\n \n \n
\n
\n
\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:10:17',NULL,NULL,'other','en_US',NULL,'','',NULL,''),(11,2,'home','','Home','Welcome','','
\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
Boost your business\n
\n
\n

We provide powerful solutions for all businesses

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
 Best prices on the market \n
\n
\n

Our optimized processes allows us to provide you very competitive prices

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n

Our sales representative are also technicians.

\n
\n
\n
\n
\n
\n \n
\n

Take a look at our offers...

\n
\n
\n
\n
\n
\n \n
\n

Our customer-supplier relationship is very appreciated by our customers

\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n

We continue to follow and assist you after the sale. Contact us at any time.

\n
\n
\n
\n
\n
\n\n\n \n
\n
\n

Looking for

\n

a high quality service?

\n

With a lot of experience, hiring us is a security for your business!

\n
\n
\n
11
\n
Years of Experience
\n
\n
\n
\n query($sql); $obj = $db->fetch_object($resql); print $obj->nb; ?>\n
\n
Experts
\n
\n
\n
\n query($sql); $obj = $db->fetch_object($resql); print $obj->nb; ?>\n
\n
Trusted Clients
\n
\n
\n
\n \n
\n
\n
\n\n \n \n \n
\n
\n
\n \n
\n \n
\n \n
\n

our plans

\n\n \n
\n \n
\n
\n
\n
FREE
\n
The best choice for personal use
\n
The service 1 for free
\n
\n 0/ month\n
\n
\n Available features are : \n
    \n
  • \n \n Service 1 \n
  • \n
\n
\n
\n Subcribe\n
\n
\n
\n \n \n \n
\n
\n
\n
STARTER
\n
For small companiess
\n
The service 1 and product 1 at low price
\n
\n 29/ month\n
\n
\n Available features are : \n
    \n
  • \n \n Service 1\n
  • \n
  • \n \n Product 1\n
  • \n
\n
\n
\n Subscribe\n
\n
\n
\n \n \n \n
\n
\n
\n
PREMIUM
\n
For large companies
\n
The full option package for a one shot price\n
\n
\n 2499\n
\n
\n Available features are :\n
    \n
  • \n \n Service 1
  • \n
  • \n \n Service 2
  • \n
  • \n \n Product 1
  • \n
\n
\n
\n Buy\n
\n
\n
\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n
\n \n \n \n
\n
\n

our team

\n
\n
\n \n
\n
\n
\n
\n\n\n \n
\n
\n
\n
\n
\n

Request a callback

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n

successful cases

\n
\n
\n
\n
\n
\"\"\n
\n
\n
\n
\"\"\n
\n
\n
\n
\"\"\n
\n
\n
\n
\"\"\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Albert Einstein\n
\n
Scientist, www.emc2.org
\n
\n
\n
\n
\n
-20%
\n
Expenses
\n
\n
\n
\n
\n
\n
\n \n They did everything, with almost no time or effort for me. The best part was that I could trust their team to represent our company professionally with our clients.\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Pierre Curie\n
\n
CEO “Cyclonic”
\n
\n
\n
\n
\n
-30%
\n
Expenses
\n
\n
\n
\n
\n
\n
\n \n Their course gave me the confidence to implement new techniques in my work. I learn “how” to write – “what” and “why” also became much clearer.\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Marie Curie\n
\n
CTO \"Cyclonic\"
\n
\n
\n
\n
\n
+22%
\n
Turnover
\n
\n
\n
\n
\n
\n
\n \n We were skeptical to work with a consultant to optimize our sales emails, but they were highly recommended by many other startups we knew. They helped us to reach our objective of 20% turnover increase, in 4 monthes.\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n John Doe\n
\n
Sale representative
\n
\n
\n
\n
\n
+40%
\n
Quotes
\n
\n
\n
\n
\n
\n
\n \n Their work on our website and Internet marketing has made a significant different to our business. We’ve seen a +40% increase in quote requests from our website.\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n\n \n
\n
\n

Latest News

\n
\n fetchAll($website->id, \'DESC\', \'date_creation\', $MAXNEWS, 0, array(\'type_container\'=>\'blogpost\', \'lang\'=>\'en_US\'));\n foreach($arrayofblogs as $blog)\n {\n $fuser->fetch($blog->fk_user_creat);\n ?>\n \n \n \n
\n
\n
\n\n\n \n\n\n
\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:29:04',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(12,2,'our-team','','Our team','Our team','team','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Our team\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n

\n

The crew...




\n query($sql);\n if (! $resql) dol_print_error($db);\n while ($obj = $db->fetch_object($resql))\n {\n $arrayofusers[]=$obj->rowid;\n }\n \n print \'
\';\n foreach($arrayofusers as $id)\n {\n $fuser->fetch($id);\n\n print \'
\';\n print \'
\';\n print \'
\';\n if ($fuser->photo) print Form::showphoto(\'userphoto\', $fuser, 100, 0, 0, \'photowithmargin\', \'\', 0);\n //print \'photo.\'\" width=\"129\" height=\"129\" alt=\"\">\';\n else print \'\"\"\';\n print \'
\';\n print \'
\';\n print \'
\'.$fuser->firstname.\'
\';\n print \'
    \';\n //print \'
  • September 24, 2018
  • \';\n if ($fuser->job) print \'
  • \'.$fuser->job.\'
  • \';\n else print \'
  • \';\n print \'
\';\n print \'
\';\n print \'
\';\n print \'
\';\n }\n print \'
\';\n\n ?>\n
\n
\n\n

\n\n \n\n
\n \n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:29:25',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(13,2,'partners','','Partners','Partners','partners','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Partners\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n

Our partners...

\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n

\n\n \n\n
\n \n\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:29:51',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(14,2,'pricing','','Pricing','All the prices of our offers','pricing','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Our plans\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n \n
\n
\n
\n \n
\n \n
\n \n
\n\n \n
\n \n
\n
\n
\n
FREE
\n
The best choice for personal use
\n
The service 1 for free
\n
\n 0/ month\n
\n
\n Available features are : \n
    \n
  • \n \n Service 1 \n
  • \n
\n
\n
\n Subcribe\n
\n
\n
\n \n \n \n
\n
\n
\n
STARTER
\n
For small companiess
\n
The service 1 and product 1 at low price
\n
\n 29/ month\n
\n
\n Available features are : \n
    \n
  • \n \n Service 1\n
  • \n
  • \n \n Product 1\n
  • \n
\n
\n
\n Subscribe\n
\n
\n
\n \n \n \n
\n
\n
\n
PREMIUM
\n
For large companies
\n
The full option package for a one shot price\n
\n
\n 2499\n
\n
\n Available features are :\n
    \n
  • \n \n Service 1
  • \n
  • \n \n Service 2
  • \n
  • \n \n Product 1
  • \n
\n
\n
\n Buy\n
\n
\n
\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n
\n \n \n \n

\n\n \n\n
\n \n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:26:54',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(15,2,'privacy-policies','','Privacy Policies','Privacy Policies','Privacy policies, GDPR','
\n \n \n \n\n\n
\n
\n
\n
\n
\n
\n
\n
\n
Privacy Policy\n
\n
\n
\n
\n
\n
\n
\n
\n\n


\n\n
\n
\n

Information collected and used


\n

* Your customer information (email, phone, business name, first and last name of contact, address, postal code, country and VAT number) are stored when you become a customer. This information allows us to bill you. \n

* If you paid using our online service, we also store the last 4 digits of your card. The full details of your credit card is stored by our payment provider Stripe (the world leader in online payment).

\n

* You have the option to request the deletion of your data and the above information at any time (except data required y fiscal tracking rules, like your invoices).

\n

* The Privacy Policies and GDPR referral contact for our services is: global->MAIN_INFO_GDPR; ?>

\n


\n

Data Storage and Backups


\n

* The storage of collected data (see \'Information collected and used\') is done in a database.

\n

* We made one backup every week. Only 4 weeks are kept.

\n


\n

Subcontractor


\n

* Our services relies on the following subcontractors and service:
\n** The host of computer servers, which is ABC company. These servers are hosted in US. No customer information is communicated to this subcontractor who only provides the hardware and network layer, the installation and operation being carried out by us directly.
\n** The online payment service Stripe, which is used, to ensure regular payment of subscription or your invoices paid online.

\n


\n

Software Protection


\n

* Our services runs on Linux Ubuntu systems and software. They benefit from regular security updates when the operating system editor (Ubuntu Canonical) publishes them.

\n

* Our services are accessible in HTTPS (HTTP encrypted) only, encrypted with SHA256 certificates.

\n

* Our technical platform are protected by various solutions.

\n


\n

Data theft


\n

* In case of suspicion of a theft of the data we have collected (see first point \'Information collected and used\'), customers will be informed by email, at email corresponding to their customer account

\n

 

\n
\n
\n\n\n \n \n \n
\n \n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:27:09',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(16,2,'product-p','','Product P','Product P','','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Product P\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n
\nThis is a description page of our product P...
\n
\n
\n
\n
\n
\n
\n\n\n

\n\n \n\n
\n \n\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:27:20',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(17,2,'search','','Search Page','Search Page','','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Search\n
\n
\n
\n
\n
\n
\n
\n
\n\n


\n\n
\n \n
\n
\n
\n \">\n
\n
\n \n \n
\n
\n \n ref.\'.php\">\'.$websitepagefound->title.\' - \'.$websitepagefound->description.\'
\';\n }\n }\n else\n {\n print $listofpages[\'message\'];\n }\n }\n }\n else\n {\n print $weblang->trans(\"FeatureNotYetAvailable\");\n }\n ?>\n \n





\n\n\n \n\n
\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:27:33',NULL,NULL,'page','fr_FR',NULL,'','',NULL,''),(18,2,'service-s','','Service S','Service S','','
\n\n \n\n
\n
\n
\n
\n
\n
\n
\n
\n
Service S\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n
\nThis is a description page of our service S...
\n
\n
\n
\n
\n
\n
\n\n\n

\n\n \n\n
\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:27:45',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(19,2,'test','','test','Page test','test','Test\n',1,'2019-08-15 00:03:30',NULL,'2019-08-14 22:03:30',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(20,3,'credits','','Credits','Credits and legal notices','',' \n \n
\n\n \n
\n

Mentions légales

\n

Curriculum Vitae

\n
\n\n \n \n\n \n
\n\n \n
\n\n

\n \nThis site is edited by name; ?>\n\n \n

\n\n
\n\n
\n\n \n \n\n
\n\n',1,'2019-08-15 16:39:56',NULL,'2019-08-16 03:55:59',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(21,3,'footer','','Footer','','',' \n
\n
\n

Aliquam sed mauris

\n

Sed lorem ipsum dolor sit amet et nullam consequat feugiat consequat magna adipiscing tempus etiam dolore veroeros. eget dapibus mauris. Cras aliquet, nisl ut viverra sollicitudin, ligula erat egestas velit, vitae tincidunt odio.

\n \n
\n
\n

Etiam feugiat

\n
\n
Address
\n
getFullAddress(1, \'
\'); ?>
\n
Phone
\n
phone; ?>
\n
Email
\n
email; ?>\">email; ?>
\n
\n \n
\n
© Untitled. Design: HTML5 UP adapted for Dolibarr by NLTechno.
\n
\n\n\n\n',1,'2019-08-15 16:42:44',NULL,'2019-08-29 13:25:37',NULL,NULL,'page','fr_FR',NULL,'','',NULL,''),(22,3,'generic','','Generic page','Generic page or my personal Blog','My generic page',' \n\n
\n\n \n
\n

Generic

\n

Ipsum dolor sit amet nullam

\n
\n\n \n \n\n \n
\n\n \n
\n \"\"\n

Magna feugiat lorem

\n

Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis fames ac ante ipsum primis in faucibus.

\n

Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet.

\n

Tempus veroeros

\n

Cep risus aliquam gravida cep ut lacus amet. Adipiscing faucibus nunc placerat. Tempus adipiscing turpis non blandit accumsan eget lacinia nunc integer interdum amet aliquam ut orci non col ut ut praesent.

\n
\n\n \n
\n

Latest Blog posts

\n
\n loadLangs(array(\"main\",\"website\"));\n $websitepage = new WebsitePage($db);\n $fuser = new User($db);\n $arrayofblogs = $websitepage->fetchAll($website->id, \'DESC\', \'date_creation\', 5, 0, array(\'type_container\'=>\'blogpost\', \'keywords\'=>$keyword));\n if (is_numeric($arrayofblogs) && $arrayofblogs < 0)\n {\n print \'
\'.$weblangs->trans($websitepage->error).\'
\';\n }\n elseif (is_array($arrayofblogs) && ! empty($arrayofblogs))\n {\n foreach($arrayofblogs as $blog)\n {\n print \'\';\n }\n }\n else\n {\n print \'
\';\n print \'
\';\n print $weblangs->trans(\"NoArticlesFoundForTheKeyword\", $keyword);\n print \'
\';\n print \'
\';\n \n }\n ?>\n
\n
\n\n
\n\n\n\n \n \n \n \n
\n\n',1,'2019-08-15 00:03:43',NULL,'2019-08-17 16:19:49',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(23,3,'home','','My personal blog','Home page or my personal Blog','My personal blog','\n
\n\n \n
\n \"\"\n

David Doe

\n

Welcome on my website
\n

\n
\n\n \n \n\n \n
\n\n \n
\n
\n
\n
\n

Ipsum sed adipiscing

\n
\n

Sed lorem ipsum dolor sit amet nullam consequat feugiat consequat magna\n adipiscing magna etiam amet veroeros. Lorem ipsum dolor tempus sit cursus.\n Tempus nisl et nullam lorem ipsum dolor sit amet aliquam.

\n \n
\n \"\"\n
\n
\n\n \n
\n
\n

Magna veroeros

\n
\n
    \n
  • \n \n

    Ipsum consequat

    \n

    Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

    \n
  • \n
  • \n \n

    Amed sed feugiat

    \n

    Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

    \n
  • \n
  • \n \n

    Dolor nullam

    \n

    Sed lorem amet ipsum dolor et amet nullam consequat a feugiat consequat tempus veroeros sed consequat.

    \n
  • \n
\n \n
\n\n \n
\n
\n

Ipsum consequat

\n

Donec imperdiet consequat consequat. Suspendisse feugiat congue
\n posuere. Nulla massa urna, fermentum eget quam aliquet.

\n
\n
    \n
  • \n \n 5,120 Etiam\n
  • \n
  • \n \n 8,192 Magna\n
  • \n
  • \n \n 2,048 Tempus\n
  • \n
  • \n \n 4,096 Aliquam\n
  • \n
  • \n \n 1,024 Nullam\n
  • \n
\n

Nam elementum nisl et mi a commodo porttitor. Morbi sit amet nisl eu arcu faucibus hendrerit vel a risus. Nam a orci mi, elementum ac arcu sit amet, fermentum pellentesque et purus. Integer maximus varius lorem, sed convallis diam accumsan sed. Etiam porttitor placerat sapien, sed eleifend a enim pulvinar faucibus semper quis ut arcu. Ut non nisl a mollis est efficitur vestibulum. Integer eget purus nec nulla mattis et accumsan ut magna libero. Morbi auctor iaculis porttitor. Sed ut magna ac risus et hendrerit scelerisque. Praesent eleifend lacus in lectus aliquam porta. Cras eu ornare dui curabitur lacinia.

\n \n
\n\n \n
\n
\n

Congue imperdiet

\n

Donec imperdiet consequat consequat. Suspendisse feugiat congue
\n posuere. Nulla massa urna, fermentum eget quam aliquet.

\n
\n \n
\n\n
\n\n \n\n
\n\n',1,'2019-08-15 00:03:43',NULL,'2019-08-29 13:32:53',NULL,NULL,'page','en_US',NULL,'','',NULL,''),(24,3,'menu','','Menu','Menu common to all pages','','\n\n \n',1,'2019-08-15 00:03:43',NULL,'2019-08-29 13:33:08',NULL,NULL,'other','fr_FR',NULL,'','',NULL,''),(25,3,'this-is-a-blog-post','','This is a Blog post','This is a full meta description of the article','blog','\n
\n This is a blog post article...\n
\n',1,'2019-08-17 17:18:45',NULL,'2019-08-17 16:26:25',NULL,NULL,'blogpost','fr_FR',NULL,'','',NULL,''); /*!40000 ALTER TABLE `llx_website_page` ENABLE KEYS */; UNLOCK TABLES; @@ -12320,4 +12324,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-09-26 14:36:09 +-- Dump completed on 2019-10-08 21:05:17 From 9f4aadae18e05183e8f267acb006207de90927b9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 02:05:20 +0200 Subject: [PATCH 815/944] Missing Nature, Duration and Type fields in export of products --- htdocs/core/modules/modProduct.class.php | 18 ++++++++++++------ htdocs/core/modules/modService.class.php | 19 +++++++++++++------ 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index 001c7759c67..2b41a76ea45 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -176,9 +176,11 @@ class modProduct extends DolibarrModules 'p.accountancy_code_sell_export'=>"ProductAccountancySellExportCode", 'p.accountancy_code_buy'=>"ProductAccountancyBuyCode", 'p.note'=>"NotePrivate",'p.note_public'=>'NotePublic', 'p.weight'=>"Weight",'p.length'=>"Length",'p.width'=>"Width",'p.height'=>"Height",'p.surface'=>"Surface",'p.volume'=>"Volume", - //'p.duration'=>"Duration", + 'p.duration'=>"Duration", + 'p.finished' => 'Nature', 'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC", - 'p.tva_tx'=>'VATRate','p.datec'=>'DateCreation','p.tms'=>'DateModification' + 'p.tva_tx'=>'VATRate', + 'p.datec'=>'DateCreation','p.tms'=>'DateModification' ); if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR'; if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); @@ -191,13 +193,17 @@ class modProduct extends DolibarrModules if (! empty($conf->global->MAIN_MULTILANGS)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('l.lang'=>'Language', 'l.label'=>'TranslatedLabel','l.description'=>'TranslatedDescription','l.note'=>'TranslatedNote')); if (! empty($conf->global->PRODUCT_USE_UNITS)) $this->export_fields_array[$r]['p.fk_unit'] = 'Unit'; $this->export_TypeFields_array[$r]=array( - 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text", + 'p.ref'=>"Text",'p.label'=>"Text", + 'p.fk_product_type'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean", + 'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text", 'p.accountancy_code_sell_intra'=>"Text",'p.accountancy_code_sell_export'=>"Text",'p.accountancy_code_buy'=>"Text", 'p.note'=>"Text",'p.note_public'=>"Text", 'p.weight'=>"Numeric",'p.length'=>"Numeric",'p.width'=>"Numeric",'p.height'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric", - 'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean", - 'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date' - //'p.duration'=>"Duree", + 'p.customcode'=>'Text', + 'p.duration'=>"Text", + 'p.finished' => 'Numeric', + 'p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric', + 'p.datec'=>'Date','p.tms'=>'Date' ); if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric','p.seuil_stock_alerte'=>'Numeric','p.desiredstock'=>'Numeric','p.pmp'=>'Numeric','p.cost_price'=>'Numeric')); if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); diff --git a/htdocs/core/modules/modService.class.php b/htdocs/core/modules/modService.class.php index b21c954185a..2f3e62903a4 100644 --- a/htdocs/core/modules/modService.class.php +++ b/htdocs/core/modules/modService.class.php @@ -149,10 +149,12 @@ class modService extends DolibarrModules 'p.accountancy_code_sell'=>"ProductAccountancySellCode", 'p.accountancy_code_sell_intra'=>"ProductAccountancySellIntraCode", 'p.accountancy_code_sell_export'=>"ProductAccountancySellExportCode", 'p.accountancy_code_buy'=>"ProductAccountancyBuyCode", 'p.note'=>"NotePrivate",'p.note_public'=>'NotePublic', - //'p.weight'=>"Weight",'p.length'=>"Length",'p.width'=>"Width",'p.height'=>"Height",'p.surface'=>"Surface",'p.volume'=>"Volume", + 'p.weight'=>"Weight",'p.length'=>"Length",'p.width'=>"Width",'p.height'=>"Height",'p.surface'=>"Surface",'p.volume'=>"Volume", 'p.duration'=>"Duration", + 'p.finished' => 'Nature', 'p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC", - 'p.tva_tx'=>'VATRate','p.datec'=>'DateCreation','p.tms'=>'DateModification' + 'p.tva_tx'=>'VATRate', + 'p.datec'=>'DateCreation','p.tms'=>'DateModification' ); if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR'; if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('p.cost_price'=>'CostPrice')); @@ -165,13 +167,17 @@ class modService extends DolibarrModules if (! empty($conf->global->MAIN_MULTILANGS)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('l.lang'=>'Language', 'l.label'=>'TranslatedLabel','l.description'=>'TranslatedDescription','l.note'=>'TranslatedNote')); if (! empty($conf->global->PRODUCT_USE_UNITS)) $this->export_fields_array[$r]['p.fk_unit'] = 'Unit'; $this->export_TypeFields_array[$r]=array( - 'p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text", + 'p.ref'=>"Text",'p.label'=>"Text", + 'p.fk_product_type'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean", + 'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text", 'p.accountancy_code_sell_intra'=>"Text",'p.accountancy_code_sell_export'=>"Text",'p.accountancy_code_buy'=>"Text", 'p.note'=>"Text",'p.note_public'=>"Text", 'p.weight'=>"Numeric",'p.length'=>"Numeric",'p.width'=>"Numeric",'p.height'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric", - 'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean", - 'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date', - 'p.duration'=>"Duree", + 'p.customcode'=>'Text', + 'p.duration'=>"Text", + 'p.finished' => 'Numeric', + 'p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric', + 'p.datec'=>'Date','p.tms'=>'Date' ); if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.stock'=>'Numeric','p.seuil_stock_alerte'=>'Numeric','p.desiredstock'=>'Numeric','p.pmp'=>'Numeric','p.cost_price'=>'Numeric')); if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r], array('p.barcode'=>'Text')); @@ -527,6 +533,7 @@ class modService extends DolibarrModules ) ); + if (! is_array($this->import_convertvalue_array[$r])) $this->import_convertvalue_array[$r] = array(); $this->import_convertvalue_array[$r] = array_merge($this->import_convertvalue_array[$r], array( 'p.fk_unit' => array( 'rule' => 'fetchidfromcodeorlabel', From 9da1d5025bc5492de5c66604cd451711105c4ee2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 02:33:12 +0200 Subject: [PATCH 816/944] FIX If product account not suggested during bind, it is not preselected --- htdocs/accountancy/customer/list.php | 17 ++++++++++++----- htdocs/accountancy/supplier/list.php | 6 ++++-- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index b738933c89c..127f1795e19 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -425,7 +425,6 @@ if ($result) { $objp->code_sell_l = ''; $objp->code_sell_p = ''; - $objp->aarowid_suggest = ''; $product_static->ref = $objp->product_ref; $product_static->id = $objp->product_id; @@ -437,7 +436,7 @@ if ($result) { $facture_static->type = $objp->ftype; $code_sell_p_notset = ''; - $objp->aarowid_suggest = $objp->aarowid; + $objp->aarowid_suggest = ''; // Will be set later $isBuyerInEEC = isInEEC($objp); @@ -471,8 +470,9 @@ if ($result) { } if ($objp->code_sell_l == -1) $objp->code_sell_l=''; + // Search suggested account for product/service $suggestedaccountingaccountfor = ''; - if ($objp->country_code == $mysoc->country_code || empty($objp->country_code)) { // If buyer in same country than seller (if not defined, we assume it is same country) + if (($objp->country_code == $mysoc->country_code) || empty($objp->country_code)) { // If buyer in same country than seller (if not defined, we assume it is same country) $objp->code_sell_p = $objp->code_sell; $objp->aarowid_suggest = $objp->aarowid; $suggestedaccountingaccountfor = ''; @@ -561,12 +561,19 @@ if ($result) { // Suggested accounting account print '

g&Pc;_nO5Rg~To|=dT%3pr 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 TIOLxz$j=xN01&tTGnM}j${hA_ From 8e0a0232701fafab8ccd3866ac3b4b9f643cb3e9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Aug 2019 05:03:45 +0200 Subject: [PATCH 489/944] FIX Disabling a website does not put it offline --- htdocs/core/website.inc.php | 8 ++++++++ htdocs/langs/en_US/website.lang | 1 + 2 files changed, 9 insertions(+) diff --git a/htdocs/core/website.inc.php b/htdocs/core/website.inc.php index 4114fff00b7..44c5d89097a 100644 --- a/htdocs/core/website.inc.php +++ b/htdocs/core/website.inc.php @@ -93,3 +93,11 @@ if ($_SERVER['PHP_SELF'] != DOL_URL_ROOT.'/website/index.php') // If we browsing } } } + +// Show off line message +if (! defined('USEDOLIBARREDITOR') && empty($website->status)) +{ + $weblangs->load("website"); + print '

'; // Column with checkbox print ''; print ''; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 9ce49b23e6a..d7bfdcc5db3 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -533,12 +533,14 @@ if ($result) { // Suggested accounting account print ''; // Column with checkbox print ''; print ''; From f2d04fe55cce45fe5295f1dff4bb318d43cb2386 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 9 Oct 2019 11:51:10 +0200 Subject: [PATCH 817/944] Code comment --- htdocs/core/lib/product.lib.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index 0673ad2c3c7..404e33f1404 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -527,9 +527,9 @@ function measuring_units_string($unit, $measuring_style = '', $scale = '', $use_ } /** - * Transform a given unit into the square of that unit, if known + * Transform a given unit scale into the square of that unit, if known. * - * @param int $unit Unit key (-3,-2,-1,0,98,99...) + * @param int $unit Unit scale key (-3,-2,-1,0,98,99...) * @return int Squared unit key (-6,-4,-2,0,98,99...) * @see formproduct->selectMeasuringUnits */ @@ -547,9 +547,9 @@ function measuring_units_squared($unit) /** - * Transform a given unit into the cube of that unit, if known + * Transform a given unit scale into the cube of that unit, if known * - * @param int $unit Unit key (-3,-2,-1,0,98,99...) + * @param int $unit Unit scale key (-3,-2,-1,0,98,99...) * @return int Cubed unit key (-9,-6,-3,0,88,89...) * @see formproduct->selectMeasuringUnits */ From 0c8331b6d798eb83a1ad3c05059dcc0c79803102 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Wed, 9 Oct 2019 18:47:25 +0200 Subject: [PATCH 818/944] doxygen --- htdocs/compta/facture/class/facture.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index e4140357370..adf00d69d82 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -3506,7 +3506,7 @@ class Facture extends CommonInvoice * @param int $offset For pagination * @param string $sortfield Sort criteria * @param string $sortorder Sort order - * @return int -1 if KO, array with result if OK + * @return array|int -1 if KO, array with result if OK */ function liste_array($shortlist=0, $draft=0, $excluser='', $socid=0, $limit=0, $offset=0, $sortfield='f.datef,f.rowid', $sortorder='DESC') { @@ -3577,7 +3577,7 @@ class Facture extends CommonInvoice * (Status validated or abandonned for a reason 'other') + not payed + no payment at all + not already replaced * * @param int $socid Id thirdparty - * @return array Array of invoices ('id'=>id, 'ref'=>ref, 'status'=>status, 'paymentornot'=>0/1) + * @return array|int Array of invoices ('id'=>id, 'ref'=>ref, 'status'=>status, 'paymentornot'=>0/1) */ function list_replacable_invoices($socid=0) { From c3aba5f1a32b9609c4597bd51a529f28b49e8ed8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 14:53:30 +0200 Subject: [PATCH 819/944] FIX #12083 --- htdocs/debugbar/class/TraceableDB.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/debugbar/class/TraceableDB.php b/htdocs/debugbar/class/TraceableDB.php index d4bfd291602..20b5d47f0e8 100644 --- a/htdocs/debugbar/class/TraceableDB.php +++ b/htdocs/debugbar/class/TraceableDB.php @@ -333,9 +333,9 @@ class TraceableDB extends DoliDB 'sql' => $sql, 'duration' => $duration, 'memory_usage' => $memoryDelta, - 'is_success' => $resql, - 'error_code' => ! $resql ? $this->db->lasterrno() : null, - 'error_message' => ! $resql ? $this->db->lasterror() : null + 'is_success' => $resql ? true : false, + 'error_code' => $resql ? null : $this->db->lasterrno(), + 'error_message' => $resql ? null : $this->db->lasterror() ); } From 868bfb518b80c17b1253a8e485b5282bf3392290 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 15:08:10 +0200 Subject: [PATCH 820/944] FIX #11702 FIX #12088 --- htdocs/bom/tpl/objectline_create.tpl.php | 5 +++-- htdocs/core/tpl/objectline_create.tpl.php | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/bom/tpl/objectline_create.tpl.php b/htdocs/bom/tpl/objectline_create.tpl.php index e266c142480..b77d713268f 100644 --- a/htdocs/bom/tpl/objectline_create.tpl.php +++ b/htdocs/bom/tpl/objectline_create.tpl.php @@ -100,14 +100,15 @@ if ($nolinesbefore) { $filtertype=''; if (! empty($object->element) && $object->element == 'contrat' && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) $filtertype='1'; + $statustoshow = -1; if (! empty($conf->global->ENTREPOT_EXTRA_STATUS)) { // hide products in closed warehouse, but show products for internal transfer - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, 1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); } else { - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, 1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, '', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth500', 0, '', GETPOST('combinations', 'array')); } echo ''; diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 6bad5bb2ac5..ee34654f2f2 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -38,7 +38,6 @@ if (empty($object) || ! is_object($object)) { exit; } - $usemargins=0; if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element, array('facture','facturerec','propal','commande'))) { @@ -248,14 +247,15 @@ if ($nolinesbefore) { if (empty($senderissupplier)) { + $statustoshow = 1; if (! empty($conf->global->ENTREPOT_EXTRA_STATUS)) { // hide products in closed warehouse, but show products for internal transfer - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, -1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, 'warehouseopen,warehouseinternal', GETPOST('combinations', 'array')); } else { - $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, -1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, '', GETPOST('combinations', 'array')); + $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, $statustoshow, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, '', GETPOST('combinations', 'array')); } if (! empty($conf->global->MAIN_AUTO_OPEN_SELECT2_ON_FOCUS_FOR_CUSTOMER_PRODUCTS)) From 85a4bac9e078e3c8e18ca72c2f34752b1cff0109 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 15:22:12 +0200 Subject: [PATCH 821/944] Better translation --- htdocs/langs/en_US/admin.lang | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index bc9981faf3f..5996d643624 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -870,9 +870,9 @@ Permission1251=Run mass imports of external data into database (data load) Permission1321=Export customer invoices, attributes and payments Permission1322=Reopen a paid bill Permission1421=Export sales orders and attributes -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account +Permission2401=Read actions (events or tasks) linked to his user account (if owner of event) +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) Permission2411=Read actions (events or tasks) of others Permission2412=Create/modify actions (events or tasks) of others Permission2413=Delete actions (events or tasks) of others From 777c297353431b777f1d769ea29f735e2b16610a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 15:42:27 +0200 Subject: [PATCH 822/944] FIX #12054 --- .../compta/facture/invoicetemplate_list.php | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/facture/invoicetemplate_list.php b/htdocs/compta/facture/invoicetemplate_list.php index 5da37d46fd5..661f9604500 100644 --- a/htdocs/compta/facture/invoicetemplate_list.php +++ b/htdocs/compta/facture/invoicetemplate_list.php @@ -217,7 +217,17 @@ $sql = "SELECT s.nom as name, s.rowid as socid, f.rowid as facid, f.titre, f.tot $sql.= " f.nb_gen_done, f.nb_gen_max, f.date_last_gen, f.date_when, f.suspended,"; $sql.= " f.datec, f.tms,"; $sql.= " f.fk_cond_reglement, f.fk_mode_reglement"; -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture_rec as f"; +// 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 : ''); +// Add fields from hooks +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object); // Note that $action and $object may have been modified by hook +$sql.=preg_replace('/^,/', '', $hookmanager->resPrint); +$sql =preg_replace('/,\s*$/', '', $sql); + +$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_rec as f"; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture_rec_extrafields as ef ON ef.fk_object = f.rowid"; if (! $user->rights->societe->client->voir && ! $socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; } @@ -492,6 +502,8 @@ if ($resql) if (! empty($arrayfields['f.date_when']['checked'])) print_liste_field_titre($arrayfields['f.date_when']['label'], $_SERVER['PHP_SELF'], "f.date_when", "", $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['f.datec']['checked'])) print_liste_field_titre($arrayfields['f.datec']['label'], $_SERVER['PHP_SELF'], "f.datec", "", $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['f.tms']['checked'])) print_liste_field_titre($arrayfields['f.tms']['label'], $_SERVER['PHP_SELF'], "f.tms", "", $param, 'align="center"', $sortfield, $sortorder); + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; if (! empty($arrayfields['status']['checked'])) print_liste_field_titre($arrayfields['status']['label'], $_SERVER['PHP_SELF'], "f.suspended,f.frequency", "", $param, 'align="center"', $sortfield, $sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'nomaxwidthsearch ')."\n"; print "\n"; @@ -630,6 +642,15 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } + + $obj = $objp; + // Extra fields + include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php'; + // Fields from hook + $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$objp, 'i'=>$i, 'totalarray'=>&$totalarray); + $reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Status if (! empty($arrayfields['status']['checked'])) { print ''; + + print ''; print ''; print ''; $userstatic->id=$obj->uid; From 2fa3b23cf10c9e05afc81be1caec91c6b6990d74 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 19:36:36 +0200 Subject: [PATCH 825/944] Fix missing price level field --- htdocs/core/modules/modSociete.class.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index e41e96c5add..a0d190c65cd 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -270,6 +270,9 @@ class modSociete extends DolibarrModules 'st.code'=>'ProspectStatus','payterm.libelle'=>'PaymentConditions','paymode.libelle'=>'PaymentMode' ); if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; + + if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; + if (! empty($conf->global->PRODUIT_MULTIPRICES)) $this->export_fields_array[$r]['s.price_level']='PriceLevel'; // Add multicompany field if (! empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED)) { @@ -295,7 +298,8 @@ class modSociete extends DolibarrModules 's.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note_private'=>"Text",'s.note_public'=>"Text",'t.libelle'=>"Text", 'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code', 'st.code'=>'List:c_stcomm:libelle:code','d.nom'=>'Text','u.login'=>'Text','u.firstname'=>'Text','u.lastname'=>'Text','payterm.libelle'=>'Text', - 'paymode.libelle'=>'Text','s.entity'=>'Numeric' + 'paymode.libelle'=>'Text','s.entity'=>'Numeric', + 's.price_level'=>'Numeric' ); $this->export_entities_array[$r]=array('u.login'=>'user','u.firstname'=>'user','u.lastname'=>'user'); // We define here only fields that use another picto From c3e8aec07c6be4e0c315409c34ef65de83b8ee12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Fri, 11 Oct 2019 23:54:05 +0200 Subject: [PATCH 826/944] fix translation for showemailing in lang files, it's ShowEMailing not ShowEmailing --- htdocs/comm/mailing/class/mailing.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/mailing/class/mailing.class.php b/htdocs/comm/mailing/class/mailing.class.php index 9df3a04a786..dba1de41cfd 100644 --- a/htdocs/comm/mailing/class/mailing.class.php +++ b/htdocs/comm/mailing/class/mailing.class.php @@ -548,7 +548,7 @@ class Mailing extends CommonObject $result = ''; $companylink = ''; - $label = '' . $langs->trans("ShowEmailing") . ''; + $label = '' . $langs->trans("ShowEMailing") . ''; $label.= '
'; $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; @@ -567,7 +567,7 @@ class Mailing extends CommonObject { if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $label=$langs->trans("ShowEmailing"); + $label=$langs->trans("ShowEMailing"); $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; } $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; From 9871dd8770a4ffbe59f700a26191c260a5764d01 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 15:27:06 +0200 Subject: [PATCH 827/944] Debug variants --- htdocs/langs/en_US/products.lang | 4 ++-- htdocs/product/stock/product.php | 12 ++++++++---- htdocs/variants/combinations.php | 26 +++++++++++++++++--------- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 36ca0ede002..21f4d4947ce 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -208,8 +208,8 @@ UseMultipriceRules=Use price segment rules (defined into product module setup) t PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products -VariantRefExample=Example: COL -VariantLabelExample=Example: Color +VariantRefExample=Examples: COL, SIZE +VariantLabelExample=Examples: Color, Size ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 2c0515d309c..9ef671e9913 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -804,8 +804,8 @@ if (! $variants) { */ print '
'; + print '
'.$langs->trans("ProductsAndServices").''; print ''.$langs->trans("AllProductReferencesOfSupplier").' '.$object->nbOfProductRefs().''; @@ -541,7 +541,7 @@ if ($object->id > 0) if ($num > 0) { - print ''; + print '
'; print ''; print ''; } elseif ($key == "fk_soc") From dfc2bebbb6dd660eb8850755ad6e04f2ff55ac7d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 13:27:07 +0200 Subject: [PATCH 427/944] FIX #11400 --- htdocs/accountancy/bookkeeping/card.php | 14 ++++++++--- .../class/accountancyexport.class.php | 24 ++++++------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 1f38171f199..0328eba010c 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -38,6 +38,7 @@ require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php $langs->loadLangs(array("accountancy", "bills", "compta")); $action = GETPOST('action', 'aZ09'); +$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $id = GETPOST('id', 'int'); // id of record $mode = GETPOST('mode', 'aZ09'); // '' or 'tmp' @@ -346,6 +347,8 @@ if ($action == 'create') } print '
'; + if ($optioncss != '') print ''; + print ''; print '' . "\n"; print '' . "\n"; print '' . "\n"; @@ -441,7 +444,8 @@ if ($action == 'create') print '
'; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print ''; + print ''; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print ''; + print ''; print ''; } @@ -254,13 +252,13 @@ class FormMargin { print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print ''; + print ''; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print ''; + print ''; print ''; } @@ -268,13 +266,13 @@ class FormMargin { print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; if (! empty($conf->global->DISPLAY_MARGIN_RATES)) - print ''; + print ''; if (! empty($conf->global->DISPLAY_MARK_RATES)) - print ''; + print ''; print ''; } print '
'; @@ -644,7 +644,7 @@ if ($object->id > 0) if ($num > 0) { - print ''; + print '
'; print ''; print ''; - print ''; - print ''; - // Title - print ''; - print ''; + if (! empty($conf->global->THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION)) + { + // Firstname + print ''; + print ''; + print ''; + + // Title + print ''; + print ''; + } } // Alias names (commercial, trademark or alias names) From 5b1a89bf94e066570ea3ca7b6000d183468b5e2f Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 30 Jul 2019 11:55:46 +0200 Subject: [PATCH 410/944] Fix php error with const --- htdocs/compta/cashcontrol/cashcontrol_card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/cashcontrol/cashcontrol_card.php b/htdocs/compta/cashcontrol/cashcontrol_card.php index 61acf6e3a89..378d6087cc7 100644 --- a/htdocs/compta/cashcontrol/cashcontrol_card.php +++ b/htdocs/compta/cashcontrol/cashcontrol_card.php @@ -247,7 +247,7 @@ if ($action=="create" || $action=="start") } // Get the bank account dedicated to this point of sale module/terminal - $vartouse=CASHDESK_ID_BANKACCOUNT_CASH.$terminaltouse; + $vartouse='CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse; $bankid = $conf->global->$vartouse; // This value is ok for 'Terminal 0' for module 'CashDesk' and 'TakePos' (they manage only 1 terminal) // Hook to get the good bank id according to posmodule and posnumber. // @TODO add hook here From a871aa818b5d3e931bb2214ead646723735c771e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 30 Jul 2019 18:15:04 +0200 Subject: [PATCH 411/944] FIX #11460 FIX #11492 FIX #11576 FIX #11590 --- htdocs/core/tpl/objectline_create.tpl.php | 50 ++++++++++++++++------- 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index bf46ecb9890..ebb9e8a41ac 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -255,6 +255,25 @@ if ($nolinesbefore) { { $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, 1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, '', GETPOST('combinations', 'array')); } + + if (empty($conf->global->MAIN_AUTO_OPEN_SELECT2_ON_FOCUS_FOR_CUSTOMER_PRODUCTS)) + { + ?> + + select_produits_fournisseurs($object->socid, GETPOST('idprodfournprice'), 'idprodfournprice', '', '', $ajaxoptions, 1, $alsoproductwithnosupplierprice, 'maxwidth300'); - ?> - - global->MAIN_AUTO_OPEN_SELECT2_ON_FOCUS_FOR_SUPPLIER_PRODUCTS)) + { + ?> + + '; echo ''; From e54c6fb5e2e1af537925b2d74457e6ee7caf12f1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 30 Jul 2019 19:30:56 +0200 Subject: [PATCH 412/944] FIX #11460 FIX #11492 FIX #11576 FIX #11590 --- htdocs/core/tpl/objectline_create.tpl.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index ebb9e8a41ac..75c6f72e1df 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -256,7 +256,7 @@ if ($nolinesbefore) { $form->select_produits(GETPOST('idprod'), 'idprod', $filtertype, $conf->product->limit_size, $buyer->price_level, 1, 2, '', 1, array(), $buyer->id, '1', 0, 'maxwidth300', 0, '', GETPOST('combinations', 'array')); } - if (empty($conf->global->MAIN_AUTO_OPEN_SELECT2_ON_FOCUS_FOR_CUSTOMER_PRODUCTS)) + if (! empty($conf->global->MAIN_AUTO_OPEN_SELECT2_ON_FOCUS_FOR_CUSTOMER_PRODUCTS)) { ?> '; - } - } - } -} -else -{ - print '
'; - $langs->load("errors"); - print $langs->trans("ErrorModuleSetupNotComplete"); - print '
'; - $action=''; -} - - -print '
'; - -$head = array(); - -if ($action == 'editcontent') -{ - /* - * Editing global variables not related to a specific theme - */ - - $csscontent = @file_get_contents($filecss); - - $contentforedit = ''; - /*$contentforedit.=''."\n";*/ - $contentforedit .= $objectpage->content; - - require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor('PAGE_CONTENT', $contentforedit, '', 500, 'Full', '', true, true, true, ROWS_5, '90%'); - $doleditor->Create(0, '', false); -} print "
\n\n"; diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index a9746ca6f65..7a24fad83af 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -3506,7 +3506,7 @@ class Propal extends CommonObject else { $langs->load("errors"); - print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete"); + print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Proposal")); return ""; } } diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 6bb47f12a12..0fd061ac7ed 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -2591,7 +2591,7 @@ if ($action == 'create' && $user->rights->commande->creer) } } else { $langs->load("errors"); - print ''; + print ''; } } } diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index a8b75341ed3..13bc74bc6f1 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -3452,7 +3452,7 @@ class Facture extends CommonInvoice else { $langs->load("errors"); - print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete"); + print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Invoice")); return ""; } } diff --git a/htdocs/compta/paiement/cheque/class/remisecheque.class.php b/htdocs/compta/paiement/cheque/class/remisecheque.class.php index d9a912ea50b..26e3f2792d6 100644 --- a/htdocs/compta/paiement/cheque/class/remisecheque.class.php +++ b/htdocs/compta/paiement/cheque/class/remisecheque.class.php @@ -489,7 +489,7 @@ class RemiseCheque extends CommonObject else { $langs->load("errors"); - print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete"); + print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Bank")); return ""; } } diff --git a/htdocs/compta/paiement/class/paiement.class.php b/htdocs/compta/paiement/class/paiement.class.php index a3c79d23602..614782c519b 100644 --- a/htdocs/compta/paiement/class/paiement.class.php +++ b/htdocs/compta/paiement/class/paiement.class.php @@ -1141,7 +1141,7 @@ class Paiement extends CommonObject else { $langs->load("errors"); - print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete"); + print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Invoice")); return ""; } } diff --git a/htdocs/compta/prelevement/create.php b/htdocs/compta/prelevement/create.php index d0c69fbe61b..ddbec62e413 100644 --- a/htdocs/compta/prelevement/create.php +++ b/htdocs/compta/prelevement/create.php @@ -78,7 +78,7 @@ if (empty($reshook)) // $conf->global->PRELEVEMENT_CODE_BANQUE and $conf->global->PRELEVEMENT_CODE_GUICHET should be empty $bprev = new BonPrelevement($db); $executiondate = dol_mktime(0, 0, 0, GETPOST('remonth'), (GETPOST('reday')+$conf->global->PRELEVEMENT_ADDDAYS), GETPOST('reyear')); - + $result = $bprev->create($conf->global->PRELEVEMENT_CODE_BANQUE, $conf->global->PRELEVEMENT_CODE_GUICHET, $mode, $format, $executiondate); if ($result < 0) { @@ -116,7 +116,7 @@ llxHeader('', $langs->trans("NewStandingOrder")); if (prelevement_check_config() < 0) { $langs->load("errors"); - setEventMessages($langs->trans("ErrorModuleSetupNotComplete"), null, 'errors'); + setEventMessages($langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Withdraw")), null, 'errors'); } /*$h=0; diff --git a/htdocs/compta/prelevement/index.php b/htdocs/compta/prelevement/index.php index 4e2c4e2d3a5..1be716f8f61 100644 --- a/htdocs/compta/prelevement/index.php +++ b/htdocs/compta/prelevement/index.php @@ -58,7 +58,7 @@ llxHeader('', $langs->trans("CustomersStandingOrdersArea")); if (prelevement_check_config() < 0) { $langs->load("errors"); - setEventMessages($langs->trans("ErrorModuleSetupNotComplete"), null, 'errors'); + setEventMessages($langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Withdraw")), null, 'errors'); } print load_fiche_titre($langs->trans("CustomersStandingOrdersArea")); diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index 147d31311d3..e81febde6df 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -245,7 +245,7 @@ class Contrat extends CommonObject else { $langs->load("errors"); - print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete"); + print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Contract")); return ""; } } diff --git a/htdocs/fourn/class/paiementfourn.class.php b/htdocs/fourn/class/paiementfourn.class.php index 45ad69f6c64..b48fef9759a 100644 --- a/htdocs/fourn/class/paiementfourn.class.php +++ b/htdocs/fourn/class/paiementfourn.class.php @@ -701,7 +701,7 @@ class PaiementFourn extends Paiement else { $langs->load("errors"); - print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete"); + print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Supplier")); return ""; } } diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 8e4d42559a8..4c8e761da9a 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index 1cf435379cd..a223f936638 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis p ErrorNumRefModel=Une référence existe en base (%s) et est incompatible avec cette numérotation. Supprimez la ligne ou renommez la référence pour activer ce module. ErrorQtyTooLowForThisSupplier=Quantité insuffisante pour ce fournisseur ou aucun tarif défini sur ce produit pour ce fournisseur ErrorOrdersNotCreatedQtyTooLow=Certaines commandes n'ont pas été créées en raison de quantités trop faibles -ErrorModuleSetupNotComplete=La configuration des modules semble incomplète. Aller sur la page Accueil - Configuration - Modules pour corriger. +ErrorModuleSetupNotComplete=La configuration du module '%s' semble incomplète. Aller sur la page Accueil - Configuration - Modules pour corriger. ErrorBadMask=Erreur sur le masque ErrorBadMaskFailedToLocatePosOfSequence=Erreur, masque sans numéro de séquence ErrorBadMaskBadRazMonth=Erreur, mauvais valeur de remise à zéro diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index 0a967cb10a7..a9e712c92db 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -1928,7 +1928,8 @@ if (preg_match('/^dopayment/', $action)) // If we choosed/click on the payment // JS Code for Stripe if (empty($stripearrayofkeys['publishable_key'])) { - print info_admin($langs->trans("ErrorModuleSetupNotComplete", "stripe"), 0, 0, 'error'); + $langs->load("errors"); + print info_admin($langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("Stripe")), 0, 0, 'error'); } else { diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index c9275293bb2..964812a05a3 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -224,21 +224,25 @@ $object = new Societe($db); * Actions */ -if ($action=="change") +if ($action=="change") // Change customer for TakePOS { $idcustomer = GETPOST('idcustomer', 'int'); $place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place is id of table for Ba or Restaurant - $sql="UPDATE ".MAIN_DB_PREFIX."facture set fk_soc=".$idcustomer." where ref='(PROV-POS-".$place.")'"; + // @TODO Check if draft invoice already exists, if not create it or return a warning to ask to enter at least one line to have it created automatically + $sql="UPDATE ".MAIN_DB_PREFIX."facture set fk_soc=".$idcustomer." where ref='(PROV-POS".$_SESSION["takeposterminal"]."-".$place.")'"; $resql = $db->query($sql); - ?> - - + + load("errors"); - print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete"); + print $langs->trans("Error")." ".$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("SupplierProposal")); return ""; } } diff --git a/htdocs/takepos/admin/terminal.php b/htdocs/takepos/admin/terminal.php index b952285747b..0a91e303a53 100644 --- a/htdocs/takepos/admin/terminal.php +++ b/htdocs/takepos/admin/terminal.php @@ -125,8 +125,8 @@ print '
'; print ''; print "\n"; -print ''; -print ''; +print ''; @@ -134,23 +134,26 @@ $atleastonefound = 0; if (! empty($conf->banque->enabled)) { print ''; - print ''; print ''; - print ''; print ''; - print ''; foreach($paiements as $modep) { - if (in_array($modep->code, array('LIQ', 'CB', 'CHQ'))) continue; + if (in_array($modep->code, array('LIQ', 'CB', 'CHQ'))) continue; // Already managed before $name="CASHDESK_ID_BANKACCOUNT_".$modep->code.$terminaltouse; print ''; - print ''; // Force warehouse (this is not a default value) - print ''; // Force warehouse (this is not a default value) - print '
'; @@ -717,7 +717,7 @@ if ($object->id > 0) $num = $db->num_rows($resql); if ($num > 0) { - print ''; + print '
'; print ''; print ''; print ''; print ''; print ''; print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; + print ''; if (! $i) $totalarray['nbfield']++; if (! $i) $totalarray['totaldebitfield']=$totalarray['nbfield']; $totalarray['totaldebit'] += $line->debit; @@ -692,7 +692,7 @@ if ($num > 0) // Amount credit if (! empty($arrayfields['t.credit']['checked'])) { - print ''; + print ''; if (! $i) $totalarray['nbfield']++; if (! $i) $totalarray['totalcreditfield']=$totalarray['nbfield']; $totalarray['totalcredit'] += $line->credit; @@ -754,8 +754,8 @@ if ($num > 0) if ($num < $limit && empty($offset)) print ''; else print ''; } - elseif ($totalarray['totaldebitfield'] == $i) print ''; - elseif ($totalarray['totalcreditfield'] == $i) print ''; + elseif ($totalarray['totaldebitfield'] == $i) print ''; + elseif ($totalarray['totalcreditfield'] == $i) print ''; else print ''; } print ''; From a63a6a58537fda283d8c8fa76733737fa0b7ad4a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 28 Jul 2019 23:49:05 +0200 Subject: [PATCH 391/944] FIX Online payment --- htdocs/public/payment/newpayment.php | 44 ++++++++++++++++++++++++++-- htdocs/theme/eldy/global.inc.php | 3 ++ htdocs/theme/md/style.css.php | 3 ++ 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index 5d04b6335c7..8c9eb93004f 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -1687,26 +1687,51 @@ if ($action != 'dopayment') if ((empty($paymentmethod) || $paymentmethod == 'paybox') && ! empty($conf->paybox->enabled)) { // If STRIPE_PICTO_FOR_PAYMENT is 'cb' we show a picto of a crdit card instead of paybox - print '
'; + print '
'; print '
'; print ''.$langs->trans("CreditOrDebitCard").''; print '
'; + print ' + '; } if ((empty($paymentmethod) || $paymentmethod == 'stripe') && ! empty($conf->stripe->enabled)) { // If STRIPE_PICTO_FOR_PAYMENT is 'cb' we show a picto of a crdit card instead of stripe - print '
'; + print '
'; print '
'; print ''.$langs->trans("CreditOrDebitCard").''; print '
'; + print ' + '; } if ((empty($paymentmethod) || $paymentmethod == 'paypal') && ! empty($conf->paypal->enabled)) { if (empty($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY)) $conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY='integral'; - print '
'; + print '
'; if ($conf->global->PAYPAL_API_INTEGRAL_OR_PAYPALONLY == 'integral') { print '
'; @@ -1718,6 +1743,19 @@ if ($action != 'dopayment') //print '
'.$langs->trans("PaypalAccount").'">'; } print '
'; + print ' + '; } } } diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 58b076a953c..a137b91236f 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -147,6 +147,9 @@ input.buttonpayment, button.buttonpayment, div.buttonpayment { color: #fff; border-radius: 4px; } +div.buttonpayment input:focus { + color: #008; +} .buttonpaymentsmall { font-size: 0.65em; padding-left: 5px; diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 9fad375eade..8999a73aaea 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -376,6 +376,9 @@ div.buttonpayment input { color: #333; cursor: pointer; } +div.buttonpayment input:focus { + color: #008; +} input.buttonpaymentcb { background-image: url(); background-size: 26px; From 9ca4d65965050e02a4afd746f06f2f323c656705 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 29 Jul 2019 01:12:03 +0200 Subject: [PATCH 392/944] Fix stripe error management --- htdocs/public/payment/newpayment.php | 10 ++++++++-- htdocs/stripe/class/stripe.class.php | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index 8c9eb93004f..02dc94285f6 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -430,7 +430,7 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) 'dol_version' => DOL_VERSION, 'dol_entity' => $conf->entity, 'dol_company' => $mysoc->name, // Usefull when using multicompany - 'dol_tax_num' => $taxinfo, + 'dol_tax_num' => $vatnumber, 'ipaddress'=> getUserRemoteIP() ); @@ -455,7 +455,13 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) include_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php'; $stripe = new Stripe($db); $stripeacc = $stripe->getStripeAccount($service); - $customer = $stripe->customerStripe($thirdparty, $stripeacc, $servicestatus, 1); + $customer = $stripe->customerStripe($thirdparty, $stripeacc, $servicestatus, 1); + if (empty($customer)) + { + $error++; + dol_syslog('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, LOG_ERROR, 0, '_stripe'); + setEventMessages('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, null, 'errors'); + } // Create Stripe card from Token if ($savesource) { diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index 6b910236e96..c731637fce6 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -177,6 +177,7 @@ class Stripe extends CommonObject } catch(Exception $e) { + // For exemple, we may have error: 'No such customer: cus_XXXXX; a similar object exists in live mode, but a test mode key was used to make this request.' $this->error = $e->getMessage(); } } From 3112f2b1c564d549440cfbb63fb267237891b15f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 29 Jul 2019 01:13:49 +0200 Subject: [PATCH 393/944] Fix error level --- htdocs/public/payment/newpayment.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index 02dc94285f6..e43089f0a8d 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -459,7 +459,7 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) if (empty($customer)) { $error++; - dol_syslog('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, LOG_ERROR, 0, '_stripe'); + dol_syslog('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, LOG_ERR, 0, '_stripe'); setEventMessages('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, null, 'errors'); } From 406375bfc444829764b844477a73a810ffb9248a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 29 Jul 2019 01:17:53 +0200 Subject: [PATCH 394/944] Fix error management --- htdocs/public/payment/newpayment.php | 76 +++++++++++++++------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php index e43089f0a8d..0a967cb10a7 100644 --- a/htdocs/public/payment/newpayment.php +++ b/htdocs/public/payment/newpayment.php @@ -461,47 +461,51 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled)) $error++; dol_syslog('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, LOG_ERR, 0, '_stripe'); setEventMessages('Failed to get/create stripe customer for thirdparty id = '.$thirdparty_id.' and servicestatus = '.$servicestatus.': '.$stripe->error, null, 'errors'); + $action=''; } // Create Stripe card from Token - if ($savesource) { - $card = $customer->sources->create(array("source" => $stripeToken, "metadata" => $metadata)); - } else { - $card = $stripeToken; - } - - if (empty($card)) + if (! $error) { - $error++; - dol_syslog('Failed to create card record', LOG_WARNING, 0, '_stripe'); - setEventMessages('Failed to create card record', null, 'errors'); - $action=''; - } - else - { - if (! empty($FULLTAG)) $metadata["FULLTAG"] = $FULLTAG; - if (! empty($dol_id)) $metadata["dol_id"] = $dol_id; - if (! empty($dol_type)) $metadata["dol_type"] = $dol_type; + if ($savesource) { + $card = $customer->sources->create(array("source" => $stripeToken, "metadata" => $metadata)); + } else { + $card = $stripeToken; + } - dol_syslog("Create charge on card ".$card->id, LOG_DEBUG, 0, '_stripe'); - $charge = \Stripe\Charge::create(array( - 'amount' => price2num($amountstripe, 'MU'), - 'currency' => $currency, - 'capture' => true, // Charge immediatly - 'description' => 'Stripe payment: '.$FULLTAG.' ref='.$ref, - 'metadata' => $metadata, - 'customer' => $customer->id, - 'source' => $card, - 'statement_descriptor' => dol_trunc($FULLTAG, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) - ), array("idempotency_key" => "$FULLTAG", "stripe_account" => "$stripeacc")); - // Return $charge = array('id'=>'ch_XXXX', 'status'=>'succeeded|pending|failed', 'failure_code'=>, 'failure_message'=>...) - if (empty($charge)) - { - $error++; - dol_syslog('Failed to charge card', LOG_WARNING, 0, '_stripe'); - setEventMessages('Failed to charge card', null, 'errors'); - $action=''; - } + if (empty($card)) + { + $error++; + dol_syslog('Failed to create card record', LOG_WARNING, 0, '_stripe'); + setEventMessages('Failed to create card record', null, 'errors'); + $action=''; + } + else + { + if (! empty($FULLTAG)) $metadata["FULLTAG"] = $FULLTAG; + if (! empty($dol_id)) $metadata["dol_id"] = $dol_id; + if (! empty($dol_type)) $metadata["dol_type"] = $dol_type; + + dol_syslog("Create charge on card ".$card->id, LOG_DEBUG, 0, '_stripe'); + $charge = \Stripe\Charge::create(array( + 'amount' => price2num($amountstripe, 'MU'), + 'currency' => $currency, + 'capture' => true, // Charge immediatly + 'description' => 'Stripe payment: '.$FULLTAG.' ref='.$ref, + 'metadata' => $metadata, + 'customer' => $customer->id, + 'source' => $card, + 'statement_descriptor' => dol_trunc($FULLTAG, 10, 'right', 'UTF-8', 1), // 22 chars that appears on bank receipt (company + description) + ), array("idempotency_key" => "$FULLTAG", "stripe_account" => "$stripeacc")); + // Return $charge = array('id'=>'ch_XXXX', 'status'=>'succeeded|pending|failed', 'failure_code'=>, 'failure_message'=>...) + if (empty($charge)) + { + $error++; + dol_syslog('Failed to charge card', LOG_WARNING, 0, '_stripe'); + setEventMessages('Failed to charge card', null, 'errors'); + $action=''; + } + } } } else From 79bb9d951f5a47c786200006a89177ccfce9b950 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 29 Jul 2019 01:36:05 +0200 Subject: [PATCH 395/944] Fix phpcs --- htdocs/expensereport/class/expensereport.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 4cc935f95a2..2d9795e6f59 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1181,7 +1181,6 @@ class ExpenseReport extends CommonObject } } } - } } From cd22cc70c8a307f4feda0cde338b7a799712fdb3 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 29 Jul 2019 06:41:51 +0200 Subject: [PATCH 396/944] FIX FEC Format - Save translation of the journal --- htdocs/accountancy/class/bookkeeping.class.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 21e43b524d7..67633e828a5 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -472,14 +472,15 @@ class BookKeeping extends CommonObject */ public function createStd(User $user, $notrigger = false, $mode='') { - global $conf; + global $conf, $langs; + + $langs->loadLangs(array("accountancy", "bills", "compta")); dol_syslog(__METHOD__, LOG_DEBUG); $error = 0; // Clean parameters - if (isset($this->doc_type)) { $this->doc_type = trim($this->doc_type); } @@ -546,7 +547,7 @@ class BookKeeping extends CommonObject $now = dol_now(); // Check parameters - // Put here code to add control on parameters values + $this->journal_label = $langs->trans($this->journal_label); // Insert request $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . $mode.' ('; From 7a9f2b43c508958104281304c6215446c93cc4f6 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 29 Jul 2019 07:05:18 +0200 Subject: [PATCH 397/944] FIX Language key --- htdocs/adherents/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index f0d8df454cf..a86975b606f 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -1161,7 +1161,7 @@ else } // Morphy $morphys["phy"] = $langs->trans("Physical"); - $morphys["mor"] = $langs->trans("Morale"); + $morphys["mor"] = $langs->trans("Moral"); print '
"; From cededd97d28b2ab22d72a8ef2ae84512a8bb2e96 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 29 Jul 2019 08:52:08 +0200 Subject: [PATCH 398/944] FIX Language key --- htdocs/adherents/card.php | 2 +- htdocs/adherents/type.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 373e8b953f6..c6ec8569a09 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -1181,7 +1181,7 @@ else } // Morphy $morphys["phy"] = $langs->trans("Physical"); - $morphys["mor"] = $langs->trans("Morale"); + $morphys["mor"] = $langs->trans("Moral"); print '"; diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index 19790159c22..4251ba45ab9 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -342,7 +342,7 @@ if ($action == 'create') // Morphy $morphys[""] = $langs->trans("MorPhy"); $morphys["phy"] = $langs->trans("Physical"); - $morphys["mor"] = $langs->trans("Morale"); + $morphys["mor"] = $langs->trans("Moral"); print '"; @@ -775,7 +775,7 @@ if ($rowid > 0) // Morphy $morphys[""] = $langs->trans("MorPhy"); $morphys["phy"] = $langs->trans("Physical"); - $morphys["mor"] = $langs->trans("Morale"); + $morphys["mor"] = $langs->trans("Moral"); print '"; From 858e8a826f3a0a8ddab94061ffa574b029233148 Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Fri, 26 Jul 2019 14:42:59 +0200 Subject: [PATCH 399/944] FIX: use rounding to compare the amounts --- ...e_20_modWorkflow_WorkflowManager.class.php | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php index e478e265652..5c13e372640 100644 --- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php +++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php @@ -105,8 +105,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($element->statut == Propal::STATUS_SIGNED || $element->statut == Propal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht; } dol_syslog( "Amount of linked proposals = ".$totalonlinkedelements.", of order = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) ); - if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) ) - { + if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht)) + { foreach($object->linkedObjects['propal'] as $element) { $ret=$element->classifyBilled($user); @@ -134,7 +134,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($element->statut == Commande::STATUS_VALIDATED || $element->statut == Commande::STATUS_SHIPMENTONPROCESS || $element->statut == Commande::STATUS_CLOSED) $totalonlinkedelements += $element->total_ht; } dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) ); - if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) ) + if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht)) { foreach($object->linkedObjects['commande'] as $element) { @@ -157,8 +157,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($element->statut == Propal::STATUS_SIGNED || $element->statut == Propal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht; } dol_syslog( "Amount of linked proposals = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) ); - if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) ) - { + if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht)) + { foreach($object->linkedObjects['propal'] as $element) { $ret=$element->classifyBilled($user); @@ -186,8 +186,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($element->statut == CommandeFournisseur::STATUS_ACCEPTED || $element->statut == CommandeFournisseur::STATUS_ORDERSENT || $element->statut == CommandeFournisseur::STATUS_RECEIVED_PARTIALLY || $element->statut == CommandeFournisseur::STATUS_RECEIVED_COMPLETELY) $totalonlinkedelements += $element->total_ht; } dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) ); - if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) ) - { + if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht)) + { foreach($object->linkedObjects['order_supplier'] as $element) { $ret=$element->classifyBilled($user); @@ -209,8 +209,8 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($element->statut == SupplierProposal::STATUS_SIGNED || $element->statut == SupplierProposal::STATUS_BILLED) $totalonlinkedelements += $element->total_ht; } dol_syslog( "Amount of linked supplier proposals = ".$totalonlinkedelements.", of supplier invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) ); - if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) ) - { + if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht)) + { foreach($object->linkedObjects['supplier_proposal'] as $element) { $ret=$element->classifyBilled($user); @@ -237,7 +237,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($element->statut == Commande::STATUS_VALIDATED || $element->statut == Commande::STATUS_SHIPMENTONPROCESS || $element->statut == Commande::STATUS_CLOSED) $totalonlinkedelements += $element->total_ht; } dol_syslog( "Amount of linked orders = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht) ); - if ( ($totalonlinkedelements == $object->total_ht) || (! empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) ) + if ($this->shouldClassify($conf, $totalonlinkedelements, $object->total_ht)) { foreach($object->linkedObjects['commande'] as $element) { @@ -310,4 +310,26 @@ class InterfaceWorkflowManager extends DolibarrTriggers return 0; } + /** + * @param Object $conf Dolibarr settings object + * @param float $totalonlinkedelements Sum of total amounts (excl VAT) of + * invoices linked to $object + * @param float $object_total_ht The total amount (excl VAT) of the object + * (an order, a proposal, a bill, etc.) + * @return bool True if the amounts are equal (arithmetic errors within tolerance margin) + * True if the module is configured to skip the amount equality check + * False otherwise. + */ + private function shouldClassify($conf, $totalonlinkedelements, $object_total_ht) + { + // if the configuration allows unmatching amounts, allow classification anyway + if (!empty($conf->global->WORKFLOW_CLASSIFY_IF_AMOUNTS_ARE_DIFFERENTS)) { + return true; + } + // if the rounded amount difference is zero, allow classification, else deny + return 0 == round( + $totalonlinkedelements - $object_total_ht, + $conf->global->MAIN_MAX_DECIMALS_UNIT + ); + } } From a5e3adc6f1453a3719fa0aeda7a8e01fe2ffb5cc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 29 Jul 2019 10:51:17 +0200 Subject: [PATCH 400/944] Fix travis --- htdocs/bom/class/bom.class.php | 4 ++-- htdocs/comm/propal/class/propal.class.php | 4 ++-- htdocs/commande/class/commande.class.php | 4 ++-- htdocs/compta/facture/class/facture.class.php | 4 ++-- htdocs/contrat/class/contrat.class.php | 4 ++-- htdocs/expedition/class/expedition.class.php | 4 ++-- htdocs/expensereport/class/expensereport.class.php | 4 ++-- htdocs/fichinter/class/fichinter.class.php | 4 ++-- htdocs/fourn/class/fournisseur.commande.class.php | 4 ++-- htdocs/fourn/class/fournisseur.facture.class.php | 4 ++-- htdocs/livraison/class/livraison.class.php | 4 ++-- htdocs/reception/class/reception.class.php | 4 ++-- htdocs/supplier_proposal/class/supplier_proposal.class.php | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index dd861d5dc47..40b4e89dfc5 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -584,8 +584,8 @@ class BOM extends CommonObject if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'bom/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'bom/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'bom/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'bom/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 5de2c9b23f5..d957235d967 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1809,8 +1809,8 @@ class Propal extends CommonObject if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'propale/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'propale/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'propale/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'propale/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index d0e0addbc94..15156688603 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -425,8 +425,8 @@ class Commande extends CommonOrder if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'commande/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'commande/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'commande/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'commande/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 2a9a4f5686d..216282d369e 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2419,8 +2419,8 @@ class Facture extends CommonInvoice if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'facture/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'facture/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'facture/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'facture/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index 0b08d3723da..bfc18faf123 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -487,8 +487,8 @@ class Contrat extends CommonObject if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'contract/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'contract/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'contract/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'contract/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 37f191a0ab0..3205a245285 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -814,8 +814,8 @@ class Expedition extends CommonObject if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/sending/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'expedition/sending/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/sending/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'expedition/sending/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 2d9795e6f59..63b0b798a29 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1152,8 +1152,8 @@ class ExpenseReport extends CommonObject require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expensereport/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'expensereport/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expensereport/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'expensereport/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index ce066fc8c11..c987e6ffc58 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -577,8 +577,8 @@ class Fichinter extends CommonObject require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'ficheinter/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'ficheinter/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'ficheinter/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'ficheinter/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index b32e90c311d..c85bfaaf2d3 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -552,8 +552,8 @@ class CommandeFournisseur extends CommonOrder if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'fournisseur/commande/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'fournisseur/commande/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'fournisseur/commande/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'fournisseur/commande/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index b13925bf29d..31780d33ed5 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1420,8 +1420,8 @@ class FactureFournisseur extends CommonInvoice if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php index f24a2aee713..88cf4e1355a 100644 --- a/htdocs/livraison/class/livraison.class.php +++ b/htdocs/livraison/class/livraison.class.php @@ -442,8 +442,8 @@ class Livraison extends CommonObject if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/receipt/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'expedition/receipt/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/receipt/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'expedition/receipt/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/reception/class/reception.class.php b/htdocs/reception/class/reception.class.php index 84f95e40b9a..e89eb2c595b 100644 --- a/htdocs/reception/class/reception.class.php +++ b/htdocs/reception/class/reception.class.php @@ -644,8 +644,8 @@ class Reception extends CommonObject if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'reception/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'reception/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'reception/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'reception/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index 786485ad6dd..cb4f774a951 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -1485,8 +1485,8 @@ class SupplierProposal extends CommonObject if (preg_match('/^[\(]?PROV/i', $this->ref)) { // Now we rename also files into index - $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'supplier_proposal/".$this->newref."'"; - $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'supplier_proposal/".$this->ref."' and entity = ".$conf->entity; + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'supplier_proposal/".$this->db->escape($this->newref)."'"; + $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'supplier_proposal/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } From f82571120675a2b22606d13f9f0077e1fbb506dd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 29 Jul 2019 11:01:29 +0200 Subject: [PATCH 401/944] Code comment --- htdocs/core/modules/societe/modules_societe.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/societe/modules_societe.class.php b/htdocs/core/modules/societe/modules_societe.class.php index d185b4cfcf7..4a873847d8a 100644 --- a/htdocs/core/modules/societe/modules_societe.class.php +++ b/htdocs/core/modules/societe/modules_societe.class.php @@ -393,7 +393,7 @@ abstract class ModeleAccountancyCode * @param int $hidedesc Hide description * @param int $hideref Hide ref * @return int <0 if KO, >0 if OK - * @deprecated Use the new function generateDocument of Facture class + * @deprecated Use the new function generateDocument of Objects class * @see Societe::generateDocument() */ function thirdparty_doc_create(DoliDB $db, Societe $object, $message, $modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0) From 7931f0b422b6f193606079a6c3368d33ee18e916 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 29 Jul 2019 11:06:39 +0200 Subject: [PATCH 402/944] Fix sql error --- htdocs/bom/class/bom.class.php | 2 +- htdocs/comm/propal/class/propal.class.php | 2 +- htdocs/commande/class/commande.class.php | 2 +- htdocs/compta/facture/class/facture.class.php | 2 +- htdocs/contrat/class/contrat.class.php | 2 +- htdocs/expedition/class/expedition.class.php | 2 +- htdocs/expensereport/class/expensereport.class.php | 2 +- htdocs/fichinter/class/fichinter.class.php | 2 +- htdocs/fourn/class/fournisseur.commande.class.php | 2 +- htdocs/fourn/class/fournisseur.facture.class.php | 2 +- htdocs/livraison/class/livraison.class.php | 2 +- htdocs/reception/class/reception.class.php | 2 +- htdocs/supplier_proposal/class/supplier_proposal.class.php | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 40b4e89dfc5..7ad86b59ae8 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -585,7 +585,7 @@ class BOM extends CommonObject { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'bom/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'bom/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'bom/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index d957235d967..a9746ca6f65 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1810,7 +1810,7 @@ class Propal extends CommonObject { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'propale/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'propale/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'propale/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 15156688603..434d43e8ffa 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -426,7 +426,7 @@ class Commande extends CommonOrder { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'commande/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'commande/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'commande/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 216282d369e..a8b75341ed3 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2420,7 +2420,7 @@ class Facture extends CommonInvoice { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'facture/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'facture/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'facture/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index bfc18faf123..147d31311d3 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -488,7 +488,7 @@ class Contrat extends CommonObject { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'contract/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'contract/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'contract/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 3205a245285..7fc4def441b 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -815,7 +815,7 @@ class Expedition extends CommonObject { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/sending/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'expedition/sending/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'expedition/sending/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 63b0b798a29..1160a6dcb94 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1153,7 +1153,7 @@ class ExpenseReport extends CommonObject // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expensereport/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'expensereport/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'expensereport/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index c987e6ffc58..4ce2aa954b2 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -578,7 +578,7 @@ class Fichinter extends CommonObject // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'ficheinter/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'ficheinter/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'ficheinter/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index c85bfaaf2d3..d15545e4cda 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -553,7 +553,7 @@ class CommandeFournisseur extends CommonOrder { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'fournisseur/commande/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'fournisseur/commande/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'fournisseur/commande/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 31780d33ed5..9fe2f9bf6ed 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1421,7 +1421,7 @@ class FactureFournisseur extends CommonInvoice { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php index 88cf4e1355a..a8eee72df33 100644 --- a/htdocs/livraison/class/livraison.class.php +++ b/htdocs/livraison/class/livraison.class.php @@ -443,7 +443,7 @@ class Livraison extends CommonObject { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/receipt/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'expedition/receipt/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'expedition/receipt/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/reception/class/reception.class.php b/htdocs/reception/class/reception.class.php index e89eb2c595b..3e2776675a1 100644 --- a/htdocs/reception/class/reception.class.php +++ b/htdocs/reception/class/reception.class.php @@ -645,7 +645,7 @@ class Reception extends CommonObject { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'reception/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'reception/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'reception/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index cb4f774a951..481d80cab57 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -1486,7 +1486,7 @@ class SupplierProposal extends CommonObject { // Now we rename also files into index $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->db->escape($this->newref)."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'supplier_proposal/".$this->db->escape($this->newref)."'"; - $sql.= " WHERE filename LIKE '".$this->db->escape($this-ref)."%' AND filepath = 'supplier_proposal/".$this->db->escape($this-ref)."' and entity = ".$conf->entity; + $sql.= " WHERE filename LIKE '".$this->db->escape($this->ref)."%' AND filepath = 'supplier_proposal/".$this->db->escape($this->ref)."' and entity = ".$conf->entity; $resql = $this->db->query($sql); if (! $resql) { $error++; $this->error = $this->db->lasterror(); } From 87fc3c39689a35b872902e32aaba66850a81c663 Mon Sep 17 00:00:00 2001 From: Marc de Lima Lucio Date: Mon, 29 Jul 2019 13:54:48 +0200 Subject: [PATCH 403/944] FIX: expedition card: infinite loop for printObjectLine hook if return > 0 --- htdocs/expedition/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index ae9ef67f755..326d378a199 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -1586,9 +1586,9 @@ if ($action == 'create') print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked); print ''; } - - $indiceAsked++; } + + $indiceAsked++; } print "
'; diff --git a/htdocs/margin/tabs/thirdpartyMargins.php b/htdocs/margin/tabs/thirdpartyMargins.php index a69b98a9ac1..1d0897a72b0 100644 --- a/htdocs/margin/tabs/thirdpartyMargins.php +++ b/htdocs/margin/tabs/thirdpartyMargins.php @@ -18,7 +18,7 @@ /** * \file htdocs/margin/tabs/thirdpartyMargins.php * \ingroup product margins - * \brief Page des marges des factures clients pour un tiers + * \brief Page for invoice margins of a thirdparty */ require '../../main.inc.php'; @@ -170,7 +170,7 @@ if ($socid > 0) { $num = $db->num_rows($result); - print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "&socid=".$object->id, $sortfield, $sortorder, '', 0, 0, ''); + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "&socid=".$object->id, $sortfield, $sortorder, '', $num, $num, ''); $i = 0; print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 7c2bbba5c42..58b076a953c 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -2519,7 +2519,7 @@ table.liste tr:last-of-type td, table.noborder:not(#tablelines) tr:last-of-type border-bottom-color: rgb(); border-bottom-style: solid; } -div.tabBar div.fichehalfright table.noborder:not(.margintable):not(.paymenttable):last-of-type { +div.tabBar div.fichehalfright table.noborder:not(.margintable):not(.paymenttable):not(.lastrecordtable):last-of-type { border-bottom: 1px solid rgb(); } div.tabBar table.border>tbody>tr:last-of-type>td { diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php index 0f415ddbf33..f40d3afce33 100644 --- a/htdocs/ticket/list.php +++ b/htdocs/ticket/list.php @@ -450,8 +450,10 @@ if ($projectid) print '' . $langs->trans('TicketAssignedToMeInfos') . '

'; From 581ae226ffbfe914e0f68a64d277cb3fc61a21a6 Mon Sep 17 00:00:00 2001 From: ATM john Date: Sat, 27 Jul 2019 18:25:25 +0200 Subject: [PATCH 385/944] Fix sellist showOuputField --- htdocs/core/class/commonobject.class.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 5bb557cac2c..9e66d391e0f 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -5928,6 +5928,12 @@ abstract class CommonObject $type='link'; $param['options']=array($reg[1].':'.$reg[2]=>$reg[1].':'.$reg[2]); } + elseif(preg_match('/^sellist:(.*):(.*):(.*):(.*)/i', $val['type'], $reg)) { + $param['options'] = array($reg[1] . ':' . $reg[2] . ':' . $reg[3] . ':' . $reg[4] => 'N'); + $type = 'sellist'; + } + + $langfile=$val['langfile']; $list=$val['list']; $help=$val['help']; From 37ad5308e6f3483ec84898b0b888af284c3935ce Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 27 Jul 2019 19:19:13 +0200 Subject: [PATCH 386/944] Fix holiday counter auto update --- htdocs/holiday/class/holiday.class.php | 59 ++++++++++---------------- 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 03b2491ab59..b01d3d45984 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -1132,45 +1132,30 @@ class Holiday extends CommonObject $result = $this->db->query($sql); $typeleaves=$this->getTypes(1,1); - foreach($typeleaves as $key => $val) - { - // On ajoute x jours à chaque utilisateurs - $nb_holiday = $val['newByMonth']; - if (empty($nb_holiday)) $nb_holiday=0; - if ($nb_holiday > 0) + // Update each user counter + foreach ($users as $userCounter) { + $nbDaysToAdd = $typeleaves[$userCounter['type']]['newByMonth']; + if(empty($nbDaysToAdd)) continue; + + dol_syslog("We update leave type id ".$userCounter['type']." for user id ".$userCounter['rowid'], LOG_DEBUG); + + $nowHoliday = $userCounter['nb_holiday']; + $newSolde = $nowHoliday + $nbDaysToAdd; + + // We add a log for each user + $this->addLogCP($user->id, $userCounter['rowid'], $langs->trans('HolidaysMonthlyUpdate'), $newSolde, $userCounter['type']); + + $result = $this->updateSoldeCP($userCounter['rowid'], $newSolde, $userCounter['type'], $langs->trans('HolidaysMonthlyUpdate')); + + if ($result < 0) { - dol_syslog("We update leavefor everybody for type ".$key, LOG_DEBUG); - - $i = 0; - while ($i < $nbUser) - { - $now_holiday = $this->getCPforUser($users[$i]['rowid'], $val['rowid']); - $new_solde = $now_holiday + $nb_holiday; - - // We add a log for each user - $this->addLogCP($user->id, $users[$i]['rowid'], $langs->trans('HolidaysMonthlyUpdate'), $new_solde, $val['rowid']); - - $i++; - } - - // Now we update counter for all users at once - $sql2 = "UPDATE ".MAIN_DB_PREFIX."holiday_users SET"; - $sql2.= " nb_holiday = nb_holiday + ".$nb_holiday; - $sql2.= " WHERE fk_type = ".$val['rowid']; - - $result= $this->db->query($sql2); - - if (! $result) - { - dol_print_error($this->db); - break; - } + $error++; + break; } - else dol_syslog("No change for leave of type ".$key, LOG_DEBUG); } - if ($result) + if (! $error) { $this->db->commit(); return 1; @@ -1522,7 +1507,7 @@ class Holiday extends CommonObject else { // List of vacation balance users - $sql = "SELECT cpu.fk_user, cpu.fk_type, cpu.nb_holiday, u.lastname, u.firstname, u.gender, u.photo, u.employee, u.statut, u.fk_user"; + $sql = "SELECT cpu.fk_user, cpu.fk_type, cpu.nb_holiday, u.lastname, u.firstname, u.gender, u.photo, u.employee, u.statut, u.fk_user as manager"; $sql.= " FROM ".MAIN_DB_PREFIX."holiday_users as cpu, ".MAIN_DB_PREFIX."user as u"; $sql.= " WHERE cpu.fk_user = u.rowid"; if ($filters) $sql.=$filters; @@ -1549,9 +1534,9 @@ class Holiday extends CommonObject $tab_result[$i]['status'] = $obj->statut; $tab_result[$i]['employee'] = $obj->employee; $tab_result[$i]['photo'] = $obj->photo; - $tab_result[$i]['fk_user'] = $obj->fk_user; + $tab_result[$i]['fk_user'] = $obj->manager; - $tab_result[$i]['type'] = $obj->type; + $tab_result[$i]['type'] = $obj->fk_type; $tab_result[$i]['nb_holiday'] = $obj->nb_holiday; $i++; From 43adb51932ac24ac3badac257855d7e8d8ad8e38 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 27 Jul 2019 22:06:08 +0200 Subject: [PATCH 387/944] Fix var declaration #11429 --- htdocs/expensereport/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index cc553f1e5de..21e716d7ac1 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -1904,7 +1904,7 @@ else if ($resql) { $num = $db->num_rows($resql); - $i = 0; $total = 0; + $i = 0; $totalpaid = 0; while ($i < $num) { $objp = $db->fetch_object($resql); From 9a7113f4f5295b610e853beb3549257aad0413e3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 28 Jul 2019 22:26:55 +0200 Subject: [PATCH 388/944] FIX Update the file index table when we validate/rename a ref. --- htdocs/bom/class/bom.class.php | 14 ++++++++++---- htdocs/comm/propal/class/propal.class.php | 16 ++++++++++------ htdocs/commande/class/commande.class.php | 12 +++++++++--- htdocs/compta/facture/class/facture.class.php | 11 ++++++++--- htdocs/contrat/class/contrat.class.php | 11 ++++++++--- htdocs/expedition/class/expedition.class.php | 11 ++++++++--- .../expensereport/class/expensereport.class.php | 12 +++++++++--- htdocs/fichinter/class/fichinter.class.php | 13 ++++++++++--- .../fourn/class/fournisseur.commande.class.php | 11 ++++++++--- htdocs/fourn/class/fournisseur.facture.class.php | 13 +++++++++---- htdocs/livraison/class/livraison.class.php | 11 ++++++++--- htdocs/reception/class/reception.class.php | 11 ++++++++--- .../class/supplier_proposal.class.php | 16 ++++++++++------ 13 files changed, 115 insertions(+), 47 deletions(-) diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index 10601303a61..dd861d5dc47 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -515,6 +515,7 @@ class BOM extends CommonObject public function valid($user, $notrigger = 0) { global $conf, $langs; + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $error=0; @@ -582,13 +583,18 @@ class BOM extends CommonObject // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // On renomme repertoire ($this->ref = ancienne ref, $num = nouvelle ref) - // in order not to lose the attachments - $oldref = dol_sanitizeFileName($this->ref); + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'bom/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'bom/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments + $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->bom->dir_output.'/'.$oldref; $dirdest = $conf->bom->dir_output.'/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::valid() rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 0d3eacc56a4..5de2c9b23f5 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -1739,10 +1739,10 @@ class Propal extends CommonObject */ public function valid($user, $notrigger = 0) { - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - global $conf; + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $error=0; // Protection @@ -1808,14 +1808,18 @@ class Propal extends CommonObject // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // Rename of propal directory ($this->ref = old ref, $num = new ref) - // to not lose the linked files + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'propale/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'propale/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->propal->multidir_output[$this->entity].'/'.$oldref; $dirdest = $conf->propal->multidir_output[$this->entity].'/'.$newref; - - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest); if (@rename($dirsource, $dirdest)) diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index fd7832f868f..d0e0addbc94 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -321,6 +321,7 @@ class Commande extends CommonOrder public function valid($user, $idwarehouse = 0, $notrigger = 0) { global $conf,$langs; + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $error=0; @@ -423,13 +424,18 @@ class Commande extends CommonOrder // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // On renomme repertoire ($this->ref = ancienne ref, $num = nouvelle ref) - // in order not to lose the attachments + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'commande/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'commande/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->commande->dir_output.'/'.$oldref; $dirdest = $conf->commande->dir_output.'/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::valid() rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index e5041217cb3..2a9a4f5686d 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2418,13 +2418,18 @@ class Facture extends CommonInvoice // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // Rename of object directory ($this->ref = old ref, $num = new ref) - // to not lose the linked files + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'facture/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'facture/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->facture->dir_output.'/'.$oldref; $dirdest = $conf->facture->dir_output.'/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index 6396b5e5f88..0b08d3723da 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -486,13 +486,18 @@ class Contrat extends CommonObject // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // Rename of object directory ($this->ref = old ref, $num = new ref) - // to not lose the linked files + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'contract/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'contract/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->contract->dir_output.'/'.$oldref; $dirdest = $conf->contract->dir_output.'/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index d79b6976630..37f191a0ab0 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -813,13 +813,18 @@ class Expedition extends CommonObject // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // On renomme repertoire ($this->ref = ancienne ref, $numfa = nouvelle ref) - // in order not to lose the attached files + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/sending/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'expedition/sending/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($numref); $dirsource = $conf->expedition->dir_output.'/sending/'.$oldref; $dirdest = $conf->expedition->dir_output.'/sending/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 3bdd026e62f..4cc935f95a2 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1151,13 +1151,18 @@ class ExpenseReport extends CommonObject { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - // On renomme repertoire ($this->ref = ancienne ref, $num = nouvelle ref) - // in order not to lose the attachments + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expensereport/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'expensereport/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->expensereport->dir_output.'/'.$oldref; $dirdest = $conf->expensereport->dir_output.'/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::setValidate() rename dir ".$dirsource." into ".$dirdest); @@ -1176,6 +1181,7 @@ class ExpenseReport extends CommonObject } } } + } } diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index 807b547a4bc..ce066fc8c11 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -574,13 +574,20 @@ class Fichinter extends CommonObject // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // Rename of object directory ($this->ref = old ref, $num = new ref) - // to not lose the linked files + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'ficheinter/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'ficheinter/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->ficheinter->dir_output.'/'.$oldref; $dirdest = $conf->ficheinter->dir_output.'/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::setValid rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 1dddd3e7319..b32e90c311d 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -551,13 +551,18 @@ class CommandeFournisseur extends CommonOrder // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // We rename directory ($this->ref = ancienne ref, $num = nouvelle ref) - // in order not to lose the attached files + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'fournisseur/commande/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'fournisseur/commande/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->fournisseur->commande->dir_output.'/'.$oldref; $dirdest = $conf->fournisseur->commande->dir_output.'/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 15169e79f6d..b13925bf29d 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1322,6 +1322,7 @@ class FactureFournisseur extends CommonInvoice public function validate($user, $force_number = '', $idwarehouse = 0, $notrigger = 0) { global $conf,$langs; + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $now=dol_now(); @@ -1418,14 +1419,18 @@ class FactureFournisseur extends CommonInvoice // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // On renomme repertoire facture ($this->ref = ancienne ref, $num = nouvelle ref) - // in order not to lose the attached files + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'fournisseur/facture/".get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); - $dirsource = $conf->fournisseur->facture->dir_output.'/'.get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$oldref; $dirdest = $conf->fournisseur->facture->dir_output.'/'.get_exdir($this->id, 2, 0, 0, $this, 'invoice_supplier').$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php index 9a84274d0c5..f24a2aee713 100644 --- a/htdocs/livraison/class/livraison.class.php +++ b/htdocs/livraison/class/livraison.class.php @@ -441,13 +441,18 @@ class Livraison extends CommonObject // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // On renomme repertoire ($this->ref = ancienne ref, $numfa = nouvelle ref) - // afin de ne pas perdre les fichiers attaches + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'expedition/receipt/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'expedition/receipt/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($numref); $dirsource = $conf->expedition->dir_output.'/receipt/'.$oldref; $dirdest = $conf->expedition->dir_output.'/receipt/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/reception/class/reception.class.php b/htdocs/reception/class/reception.class.php index 811c2b8586f..84f95e40b9a 100644 --- a/htdocs/reception/class/reception.class.php +++ b/htdocs/reception/class/reception.class.php @@ -643,13 +643,18 @@ class Reception extends CommonObject // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // On renomme repertoire ($this->ref = ancienne ref, $numfa = nouvelle ref) - // in order not to lose the attached files + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'reception/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'reception/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($numref); $dirsource = $conf->reception->dir_output.'/'.$oldref; $dirdest = $conf->reception->dir_output.'/'.$newref; - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest); diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index ca16348dcd6..786485ad6dd 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -1484,16 +1484,20 @@ class SupplierProposal extends CommonObject // Rename directory if dir was a temporary ref if (preg_match('/^[\(]?PROV/i', $this->ref)) { - // Rename of propal directory ($this->ref = old ref, $num = new ref) - // to not lose the linked files - $oldref = dol_sanitizeFileName($this->ref); + // Now we rename also files into index + $sql = 'UPDATE '.MAIN_DB_PREFIX."ecm_files set filename = CONCAT('".$this->newref."', SUBSTR(filename, ".(strlen($this->ref)+1).")), filepath = 'supplier_proposal/".$this->newref."'"; + $sql.= " WHERE filename LIKE '".$this->ref."%' AND filepath = 'supplier_proposal/".$this->ref."' and entity = ".$conf->entity; + $resql = $this->db->query($sql); + if (! $resql) { $error++; $this->error = $this->db->lasterror(); } + + // We rename directory ($this->ref = old ref, $num = new ref) in order not to lose the attachments + $oldref = dol_sanitizeFileName($this->ref); $newref = dol_sanitizeFileName($num); $dirsource = $conf->supplier_proposal->dir_output.'/'.$oldref; $dirdest = $conf->supplier_proposal->dir_output.'/'.$newref; - - if (file_exists($dirsource)) + if (! $error && file_exists($dirsource)) { - dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest); + dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest); if (@rename($dirsource, $dirdest)) { dol_syslog("Rename ok"); From 4e26eefe6e2c909c3a00a7de8f779e2fb9f8399d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 28 Jul 2019 22:57:07 +0200 Subject: [PATCH 389/944] Fix field not mandatory --- htdocs/stripe/admin/stripe.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index 3966a3f439f..770678aae15 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -194,7 +194,7 @@ if (empty($conf->stripeconnect->enabled)) print '
'; - print ''.$langs->trans("STRIPE_TEST_WEBHOOK_KEY").''; + print ''.$langs->trans("STRIPE_TEST_WEBHOOK_KEY").''; if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { print ''; print '   '.$langs->trans("Example").': we_xxxxxxxxxxxxxxxxxxxxxxxx
'; @@ -267,7 +267,7 @@ if (empty($conf->stripeconnect->enabled)) print '
'; - print ''.$langs->trans("STRIPE_LIVE_WEBHOOK_KEY").''; + print ''.$langs->trans("STRIPE_LIVE_WEBHOOK_KEY").''; if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { print ''; print '   '.$langs->trans("Example").': we_xxxxxxxxxxxxxxxxxxxxxxxx
'; From a2fc3689dace61795fd3761bb0f444fb34f5e92c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 28 Jul 2019 22:59:43 +0200 Subject: [PATCH 390/944] Nowrap on amount --- htdocs/accountancy/bookkeeping/card.php | 6 +++--- htdocs/accountancy/bookkeeping/list.php | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index ad7a30603dc..6de7bbfe50e 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -641,8 +641,8 @@ if ($action == 'create') print '
' . $accountingaccount->getNomUrl(0,1,1,'',0) . '' . length_accounta($line->subledger_account) . '' . $line->label_operation. '' . price($line->debit) . '' . price($line->credit) . '' . price($line->debit) . '' . price($line->credit) . ''; print 'id . '&piece_num=' . $line->piece_num . '&mode='.$mode.'">'; @@ -675,7 +675,7 @@ if ($action == 'create') print $formaccounting->select_account($accountingaccount_number, 'accountingaccount_number', 1, array (), 1, 1, ''); print ''; - // TODO For the moment we keep a fre input text instead of a combo. The select_auxaccount has problem because it does not + // TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not // use setup of keypress to select thirdparty and this hang browser on large database. if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index c8df00f6cdc..9fb1746ceac 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -683,7 +683,7 @@ if ($num > 0) // Amount debit if (! empty($arrayfields['t.debit']['checked'])) { - print '' . ($line->debit ? price($line->debit) : ''). '' . ($line->debit ? price($line->debit) : ''). '' . ($line->credit ? price($line->credit) : '') . '' . ($line->credit ? price($line->credit) : '') . ''.$langs->trans("Total").''.$langs->trans("Totalforthispage").''.price($totalarray['totaldebit']).''.price($totalarray['totalcredit']).''.price($totalarray['totaldebit']).''.price($totalarray['totalcredit']).'
'.$langs->trans("Nature").''; print $form->selectarray("morphy", $morphys, (GETPOSTISSET("morphy")?GETPOST("morphy",'alpha'):$object->morphy)); print "
'.$langs->trans("MemberNature").''; print $form->selectarray("morphy", $morphys, (GETPOSTISSET("morphy")?GETPOST("morphy", 'alpha'):$object->morphy)); print "
'.$langs->trans("MemberNature").''; print $form->selectarray("morphy", $morphys, isset($_POST["morphy"])?$_POST["morphy"]:$object->morphy); print "
'.$langs->trans("MemberNature").''; print $form->selectarray("morphy", $morphys, isset($_POST["morphy"])?$_POST["morphy"]:$object->morphy); print "
"; From d2bc3ac1ef7f4cb97913e695e7f0ed33bcde2aa2 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Mon, 29 Jul 2019 18:34:21 +0200 Subject: [PATCH 404/944] FIX stripe webhook ID constant set --- htdocs/stripe/admin/stripe.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php index 770678aae15..c2b2143f277 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -55,6 +55,9 @@ if ($action == 'setvalue' && $user->admin) if (! $result > 0) $error ++; $result = dolibarr_set_const($db, "STRIPE_TEST_SECRET_KEY", GETPOST('STRIPE_TEST_SECRET_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); + if (! $result > 0) + $error ++; + $result = dolibarr_set_const($db, "STRIPE_TEST_WEBHOOK_ID", GETPOST('STRIPE_TEST_WEBHOOK_ID', 'alpha'), 'chaine', 0, '', $conf->entity); if (! $result > 0) $error ++; $result = dolibarr_set_const($db, "STRIPE_TEST_WEBHOOK_KEY", GETPOST('STRIPE_TEST_WEBHOOK_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); @@ -64,6 +67,9 @@ if ($action == 'setvalue' && $user->admin) if (! $result > 0) $error ++; $result = dolibarr_set_const($db, "STRIPE_LIVE_SECRET_KEY", GETPOST('STRIPE_LIVE_SECRET_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); + if (! $result > 0) + $error ++; + $result = dolibarr_set_const($db, "STRIPE_LIVE_WEBHOOK_ID", GETPOST('STRIPE_LIVE_WEBHOOK_ID', 'alpha'), 'chaine', 0, '', $conf->entity); if (! $result > 0) $error ++; $result = dolibarr_set_const($db, "STRIPE_LIVE_WEBHOOK_KEY", GETPOST('STRIPE_LIVE_WEBHOOK_KEY', 'alpha'), 'chaine', 0, '', $conf->entity); From 449ef9200752de8e3feea2eefd606de80c037ee0 Mon Sep 17 00:00:00 2001 From: Marc de Lima Lucio Date: Tue, 30 Jul 2019 12:31:03 +0200 Subject: [PATCH 405/944] FIX: categories import: prevent mismatch between category type and object type --- .../modules/import/import_csv.modules.php | 21 ++++++++++++++----- .../modules/import/import_xlsx.modules.php | 21 ++++++++++++++----- htdocs/core/modules/modCategorie.class.php | 14 +++++++++---- 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index a6473eaeb8e..776d8dfa04f 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -493,15 +493,24 @@ class ImportCsv extends ModeleImports if (! empty($objimport->array_import_regex[0][$val]) && ($newval != '')) { // If test is "Must exist in a field@table" - if (preg_match('/^(.*)@(.*)$/',$objimport->array_import_regex[0][$val],$reg)) + if (preg_match('/^(.+)@([^:]+)(:.+)?$/',$objimport->array_import_regex[0][$val],$reg)) { $field=$reg[1]; $table=$reg[2]; + $filter=substr($reg[3], 1); + + $cachekey = $field.'@'.$table; + if(! empty($filter)) $cachekey.= ':'.$filter; // Load content of field@table into cache array - if (! is_array($this->cachefieldtable[$field.'@'.$table])) // If content of field@table not already loaded into cache + if (! is_array($this->cachefieldtable[$cachekey])) // If content of field@table not already loaded into cache { $sql="SELECT ".$field." as aliasfield FROM ".$table; + if(! empty($filter)) + { + $sql.= ' WHERE ' . $filter; + } + $resql=$this->db->query($sql); if ($resql) { @@ -510,7 +519,7 @@ class ImportCsv extends ModeleImports while ($i < $num) { $obj=$this->db->fetch_object($resql); - if ($obj) $this->cachefieldtable[$field.'@'.$table][]=$obj->aliasfield; + if ($obj) $this->cachefieldtable[$cachekey][]=$obj->aliasfield; $i++; } } @@ -521,9 +530,11 @@ class ImportCsv extends ModeleImports } // Now we check cache is not empty (should not) and key is into cache - if (! is_array($this->cachefieldtable[$field.'@'.$table]) || ! in_array($newval,$this->cachefieldtable[$field.'@'.$table])) + if (! is_array($this->cachefieldtable[$cachekey]) || ! in_array($newval,$this->cachefieldtable[$cachekey])) { - $this->errors[$error]['lib']=$langs->transnoentitiesnoconv('ErrorFieldValueNotIn',$key,$newval,$field,$table); + $tableforerror = $table; + if(! empty($filter)) $tableforerror.= ':'.$filter; + $this->errors[$error]['lib']=$langs->transnoentitiesnoconv('ErrorFieldValueNotIn',$key,$newval,$field,$tableforerror); $this->errors[$error]['type']='FOREIGNKEY'; $errorforthistable++; $error++; diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index 7f222f523ca..d58fd16cf2f 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -519,15 +519,24 @@ class ImportXlsx extends ModeleImports if (! empty($objimport->array_import_regex[0][$val]) && ($newval != '')) { // If test is "Must exist in a field@table" - if (preg_match('/^(.*)@(.*)$/',$objimport->array_import_regex[0][$val],$reg)) + if (preg_match('/^(.+)@([^:]+)(:.+)?$/',$objimport->array_import_regex[0][$val],$reg)) { $field=$reg[1]; $table=$reg[2]; + $filter=substr($reg[3], 1); + + $cachekey = $field.'@'.$table; + if(! empty($filter)) $cachekey.= ':'.$filter; // Load content of field@table into cache array - if (! is_array($this->cachefieldtable[$field.'@'.$table])) // If content of field@table not already loaded into cache + if (! is_array($this->cachefieldtable[$cachekey])) // If content of field@table not already loaded into cache { $sql="SELECT ".$field." as aliasfield FROM ".$table; + if(! empty($filter)) + { + $sql.= ' WHERE ' . $filter; + } + $resql=$this->db->query($sql); if ($resql) { @@ -536,7 +545,7 @@ class ImportXlsx extends ModeleImports while ($i < $num) { $obj=$this->db->fetch_object($resql); - if ($obj) $this->cachefieldtable[$field.'@'.$table][]=$obj->aliasfield; + if ($obj) $this->cachefieldtable[$cachekey][]=$obj->aliasfield; $i++; } } @@ -547,9 +556,11 @@ class ImportXlsx extends ModeleImports } // Now we check cache is not empty (should not) and key is into cache - if (! is_array($this->cachefieldtable[$field.'@'.$table]) || ! in_array($newval,$this->cachefieldtable[$field.'@'.$table])) + if (! is_array($this->cachefieldtable[$cachekey]) || ! in_array($newval,$this->cachefieldtable[$cachekey])) { - $this->errors[$error]['lib']=$langs->transnoentitiesnoconv('ErrorFieldValueNotIn',$key,$newval,$field,$table); + $tableforerror = $table; + if(! empty($filter)) $tableforerror.= ':'.$filter; + $this->errors[$error]['lib']=$langs->transnoentitiesnoconv('ErrorFieldValueNotIn',$key,$newval,$field,$tableforerror); $this->errors[$error]['type']='FOREIGNKEY'; $errorforthistable++; $error++; diff --git a/htdocs/core/modules/modCategorie.class.php b/htdocs/core/modules/modCategorie.class.php index 50074779955..668b0ac9014 100644 --- a/htdocs/core/modules/modCategorie.class.php +++ b/htdocs/core/modules/modCategorie.class.php @@ -422,8 +422,8 @@ class modCategorie extends DolibarrModules $this->import_icon[$r]=$this->picto; $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('cp'=>MAIN_DB_PREFIX.'categorie_product'); - $this->import_fields_array[$r]=array('cp.fk_categorie'=>"Category*",'cp.fk_product'=>"Product*" - ); + $this->import_fields_array[$r]=array('cp.fk_categorie'=>"Category*",'cp.fk_product'=>"Product*"); + $this->import_regex_array[$r]=array('cp.fk_categorie'=>'rowid@'.MAIN_DB_PREFIX.'categorie:type=0'); $this->import_convertvalue_array[$r]=array( 'cp.fk_categorie'=>array('rule'=>'fetchidfromref','classfile'=>'/categories/class/categorie.class.php','class'=>'Categorie','method'=>'fetch','element'=>'category'), @@ -441,7 +441,10 @@ class modCategorie extends DolibarrModules $this->import_icon[$r]=$this->picto; $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_societe'); - $this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_soc'=>"ThirdParty*" + $this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_soc'=>"ThirdParty*"); + $this->import_regex_array[$r]=array( + 'cs.fk_categorie'=>'rowid@'.MAIN_DB_PREFIX.'categorie:type=2', + 'cs.fk_soc'=>'rowid@'.MAIN_DB_PREFIX.'societe:client>0' ); $this->import_convertvalue_array[$r]=array( @@ -460,7 +463,10 @@ class modCategorie extends DolibarrModules $this->import_icon[$r]=$this->picto; $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_fournisseur'); - $this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_soc'=>"Supplier*" + $this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_soc'=>"Supplier*"); + $this->import_regex_array[$r]=array( + 'cs.fk_categorie'=>'rowid@'.MAIN_DB_PREFIX.'categorie:type=1', + 'cs.fk_soc'=>'rowid@'.MAIN_DB_PREFIX.'societe:fournisseur>0' ); $this->import_convertvalue_array[$r]=array( From 6aefa648e71a4f336c2f336be4c87f3bc0c92b71 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 30 Jul 2019 14:00:43 +0200 Subject: [PATCH 406/944] FIX CVE-2019-11199 --- htdocs/viewimage.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/viewimage.php b/htdocs/viewimage.php index 073aaa9fb24..3db6e9fb803 100644 --- a/htdocs/viewimage.php +++ b/htdocs/viewimage.php @@ -170,7 +170,9 @@ if (GETPOST('type','alpha')) $type=GETPOST('type','alpha'); else $type=dol_mimetype($original_file); // Security: This wrapper is for images. We do not allow type/html -if (preg_match('/html/', $type)) accessforbidden('Error: Using the image wrapper to output a file with a mime type HTML is not possible.', 1, 1, 1); +if (preg_match('/html/i', $type)) accessforbidden('Error: Using the image wrapper to output a file with a mime type HTML is not possible.', 1, 1, 1); +// Security: This wrapper is for images. We do not allow files ending with .noexe +if (preg_match('/\.noexe$/i', $original_file)) accessforbidden('Error: Using the image wrapper to output a file ending with .noexe is not allowed.', 1, 1, 1); // Security: Delete string ../ into $original_file $original_file = str_replace("../","/", $original_file); From de293c4ef2ec2aa3a5c60eace86d448437facaf4 Mon Sep 17 00:00:00 2001 From: Florian Mortgat Date: Tue, 30 Jul 2019 14:09:03 +0200 Subject: [PATCH 407/944] FIX issue #9300: install error with PostgreSQL when using custom table prefix --- htdocs/install/step2.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/install/step2.php b/htdocs/install/step2.php index 30b3ff7d64f..a53e5f07ee7 100644 --- a/htdocs/install/step2.php +++ b/htdocs/install/step2.php @@ -451,6 +451,11 @@ if ($action == "set") $buffer=trim($buffer); if ($buffer) { + // Replace the prefix in table names + if ($dolibarr_main_db_prefix != 'llx_') + { + $buffer=preg_replace('/llx_/i',$dolibarr_main_db_prefix,$buffer); + } dolibarr_install_syslog("step2: request: " . $buffer); print "\n"; $resql=$db->query($buffer,0,'dml'); From 703506c0e2674795fdf0dd2f9f78ee7f3c98b5b0 Mon Sep 17 00:00:00 2001 From: Marc de Lima Lucio Date: Tue, 30 Jul 2019 14:11:21 +0200 Subject: [PATCH 408/944] FIX: import filter error --- htdocs/core/modules/import/import_csv.modules.php | 2 +- htdocs/core/modules/import/import_xlsx.modules.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php index 776d8dfa04f..e0ec89379af 100644 --- a/htdocs/core/modules/import/import_csv.modules.php +++ b/htdocs/core/modules/import/import_csv.modules.php @@ -497,7 +497,7 @@ class ImportCsv extends ModeleImports { $field=$reg[1]; $table=$reg[2]; - $filter=substr($reg[3], 1); + $filter=!empty($reg[3])?substr($reg[3], 1):''; $cachekey = $field.'@'.$table; if(! empty($filter)) $cachekey.= ':'.$filter; diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index d58fd16cf2f..7d850ccfb8b 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -523,7 +523,7 @@ class ImportXlsx extends ModeleImports { $field=$reg[1]; $table=$reg[2]; - $filter=substr($reg[3], 1); + $filter=!empty($reg[3])?substr($reg[3], 1):''; $cachekey = $field.'@'.$table; if(! empty($filter)) $cachekey.= ':'.$filter; From db69a07bc448948cd9e2bcb12c1c8705a7e9c1bf Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 30 Jul 2019 15:21:26 +0200 Subject: [PATCH 409/944] FIX Option THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION --- htdocs/societe/card.php | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 34784beefcb..3f7b97fee73 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -383,7 +383,7 @@ if (empty($reshook)) } else $object->canvas=$canvas; - if (GETPOST("private") == 1) // Ask to create a contact + if (GETPOST("private", 'int') == 1) // Ask to create a contact { $object->particulier = GETPOST("private"); @@ -1172,13 +1172,18 @@ else // If javascript on, we show option individual if ($conf->use_javascript_ajax) { - print '
'.$form->editfieldkey('FirstName', 'firstname', '', $object, 0).'
'.$form->editfieldkey('UserTitle', 'civility_id', '', $object, 0).''; - print $formcompany->select_civility($object->civility_id, 'civility_id', 'maxwidth100').'
'.$form->editfieldkey('FirstName', 'firstname', '', $object, 0).'
'.$form->editfieldkey('UserTitle', 'civility_id', '', $object, 0).''; + print $formcompany->select_civility($object->civility_id, 'civility_id', 'maxwidth100').'
'.$langs->trans("Parameters").''.$langs->trans("Value").'
'.$langs->trans("CashDeskThirdPartyForSell").''; +print '
'.$langs->trans("CashDeskThirdPartyForSell").''; print $form->select_company($conf->global->{'CASHDESK_ID_THIRDPARTY'.$terminaltouse}, 'socid', '(s.client IN (1, 3) AND s.status = 1)', 1, 0, 0, array(), 0); print '
'.$langs->trans("CashDeskBankAccountForSell").''; + print ''; $form->select_comptes($conf->global->{'CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse}, 'CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse, 0, "courant=2", 1); + if (! empty($conf->global->{'CASHDESK_ID_BANKACCOUNT_CASH'.$terminaltouse})) $atleastonefound++; print '
'.$langs->trans("CashDeskBankAccountForCheque").''; + print ''; $form->select_comptes($conf->global->{'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse}, 'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse, 0, "courant=1", 1); + if (! empty($conf->global->{'CASHDESK_ID_BANKACCOUNT_CHEQUE'.$terminaltouse})) $atleastonefound++; print '
'.$langs->trans("CashDeskBankAccountForCB").''; + print ''; $form->select_comptes($conf->global->{'CASHDESK_ID_BANKACCOUNT_CB'.$terminaltouse}, 'CASHDESK_ID_BANKACCOUNT_CB'.$terminaltouse, 0, "courant=1", 1); + if (! empty($conf->global->{'CASHDESK_ID_BANKACCOUNT_CB'.$terminaltouse})) $atleastonefound++; print '
'.$langs->trans("CashDeskBankAccountFor").' '.$langs->trans($modep->libelle).''; + print ''; if (! empty($conf->global->$name)) $atleastonefound++; $cour=preg_match('/^LIQ.*/', $modep->code)?2:1; $form->select_comptes($conf->global->$name, $name, 0, "courant=".$cour, 1); @@ -162,7 +165,7 @@ if (! empty($conf->stock->enabled)) { print '
'.$langs->trans("CashDeskDoNotDecreaseStock").''; + print ''; if (empty($conf->productbatch->enabled)) { print $form->selectyesno('CASHDESK_NO_DECREASE_STOCK'.$terminal, $conf->global->{'CASHDESK_NO_DECREASE_STOCK'.$terminal}, 1); } @@ -180,7 +183,7 @@ if (! empty($conf->stock->enabled)) print '
'.$langs->trans("CashDeskIdWareHouse").''; + print ''; if (! $disabled) { print $formproduct->selectWarehouses($conf->global->{'CASHDESK_ID_WAREHOUSE'.$terminal}, 'CASHDESK_ID_WAREHOUSE'.$terminal, '', 1, $disabled); @@ -195,7 +198,7 @@ if (! empty($conf->stock->enabled)) print '
'; -if (empty($atleastonefound) && ! empty($conf->banque->enabled)) +if ($atleastonefound == 0 && ! empty($conf->banque->enabled)) { print info_admin($langs->trans("AtLeastOneDefaultBankAccountMandatory"), 0, 0, 'error'); } diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php index 79c7eee3d56..e09c31664cd 100644 --- a/htdocs/takepos/invoice.php +++ b/htdocs/takepos/invoice.php @@ -42,7 +42,7 @@ $langs->loadLangs(array("bills", "cashdesk")); $id = GETPOST('id', 'int'); $action = GETPOST('action', 'alpha'); $idproduct = GETPOST('idproduct', 'int'); -$place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place is id of table for Ba or Restaurant +$place = (GETPOST('place', 'int') > 0 ? GETPOST('place', 'int') : 0); // $place is id of table for Bar or Restaurant /** * Abort invoice creationg with a given error message @@ -184,9 +184,21 @@ if (($action=="addline" || $action=="freezone") && $placeid == 0) $invoice->module_source = 'takepos'; $invoice->pos_source = $_SESSION["takeposterminal"]; - $placeid = $invoice->create($user); - $sql="UPDATE ".MAIN_DB_PREFIX."facture set ref='(PROV-POS".$_SESSION["takeposterminal"]."-".$place.")' where rowid=".$placeid; - $db->query($sql); + if ($invoice->socid <= 0) + { + $langs->load('errors'); + dol_htmloutput_errors($langs->trans("ErrorModuleSetupNotComplete", "TakePos"), null, 1); + } + else + { + $placeid = $invoice->create($user); + if ($placeid < 0) + { + dol_htmloutput_errors($invoice->error, $invoice->errors, 1); + } + $sql="UPDATE ".MAIN_DB_PREFIX."facture set ref='(PROV-POS".$_SESSION["takeposterminal"]."-".$place.")' where rowid=".$placeid; + $db->query($sql); + } } if ($action == "addline") diff --git a/htdocs/takepos/takepos.php b/htdocs/takepos/takepos.php index 702bb082714..dba42a105ae 100644 --- a/htdocs/takepos/takepos.php +++ b/htdocs/takepos/takepos.php @@ -352,7 +352,7 @@ function deleteline() { } function Customer() { - console.log("Open box to select the thirdparty"); + console.log("Open box to select the thirdparty place="+place); $.colorbox({href:"../societe/list.php?contextpage=poslist&nomassaction=1&place="+place, width:"90%", height:"80%", transition:"none", iframe:"true", title:"trans("Customer");?>"}); } @@ -619,7 +619,7 @@ $sql = "SELECT code, libelle FROM ".MAIN_DB_PREFIX."c_paiement"; $sql.= " WHERE entity IN (".getEntity('c_paiement').")"; $sql.= " AND active = 1"; $sql.= " ORDER BY libelle"; -print $sql; + $resql = $db->query($sql); $paiementsModes = array(); if ($resql){ @@ -634,7 +634,8 @@ if ($resql){ } } if (empty($paiementsModes)) { - setEventMessages($langs->trans("ErrorModuleSetupNotComplete"), null, 'errors'); + $langs->load('errors'); + setEventMessages($langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("TakePOS")), null, 'errors'); } if (count($maincategories)==0) { setEventMessages($langs->trans("TakeposNeedsCategories"), null, 'errors'); diff --git a/htdocs/user/clicktodial.php b/htdocs/user/clicktodial.php index 46e42c351c7..2ad328b5a88 100644 --- a/htdocs/user/clicktodial.php +++ b/htdocs/user/clicktodial.php @@ -120,7 +120,7 @@ if ($id > 0) if (empty($conf->global->CLICKTODIAL_URL) && empty($object->clicktodial_url)) { $langs->load("errors"); - print ''.$langs->trans("ErrorModuleSetupNotComplete").''; + print ''.$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("ClickToDial")).''; } else { @@ -161,7 +161,7 @@ if ($id > 0) if (empty($url)) { $langs->load("errors"); - print ''.$langs->trans("ErrorModuleSetupNotComplete").''; + print ''.$langs->trans("ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv("ClickToDial")).''; } else { From b8de18596a473bed196d3ce5ece0f4f60cadb139 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 12:40:51 +0200 Subject: [PATCH 423/944] FIX #11543 --- htdocs/ticket/class/api_tickets.class.php | 54 +++++++---------------- 1 file changed, 16 insertions(+), 38 deletions(-) diff --git a/htdocs/ticket/class/api_tickets.class.php b/htdocs/ticket/class/api_tickets.class.php index 818514868c2..060ddc36ff3 100644 --- a/htdocs/ticket/class/api_tickets.class.php +++ b/htdocs/ticket/class/api_tickets.class.php @@ -218,17 +218,16 @@ class Tickets extends DolibarrApi * Get a list of tickets * * @param int $socid Filter list with thirdparty ID - * @param string $mode Use this param to filter list * @param string $sortfield Sort field * @param string $sortorder Sort order * @param int $limit Limit for list * @param int $page Page number - * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')" + * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101') and (t.fk_statut:=:1)" * * @return array Array of ticket objects * */ - public function index($socid = 0, $mode = "", $sortfield = "s.rowid", $sortorder = "ASC", $limit = 0, $page = 0, $sqlfilters = '') + public function index($socid = 0, $sortfield = "t.rowid", $sortorder = "ASC", $limit = 100, $page = 0, $sqlfilters = '') { global $db, $conf; @@ -243,51 +242,25 @@ class Tickets extends DolibarrApi $search_sale = DolibarrApiAccess::$user->id; } - $sql = "SELECT s.rowid"; + $sql = "SELECT t.rowid"; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) { $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) } - $sql.= " FROM ".MAIN_DB_PREFIX."ticket as s"; + $sql.= " FROM ".MAIN_DB_PREFIX."ticket as t"; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale } - $sql.= ' WHERE s.entity IN ('.getEntity('ticket', 1).')'; + $sql.= ' WHERE t.entity IN ('.getEntity('ticket', 1).')'; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) { - $sql.= " AND s.fk_soc = sc.fk_soc"; + $sql.= " AND t.fk_soc = sc.fk_soc"; } if ($socid > 0) { - $sql.= " AND s.fk_soc = ".$socid; + $sql.= " AND t.fk_soc = ".$socid; } if ($search_sale > 0) { - $sql.= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale - } - - // Example of use $mode - if ($mode == 'new') { - $sql.= " AND s.fk_statut IN (0)"; - } - if ($mode == 'read') { - $sql.= " AND s.fk_statut IN (1)"; - } - if ($mode == 'answered') { - $sql.= " AND s.fk_statut IN (3)"; - } - if ($mode == 'assign') { - $sql.= " AND s.fk_statut IN (4)"; - } - if ($mode == 'inprogress') { - $sql.= " AND s.fk_statut IN (5)"; - } - if ($mode == 'waiting') { - $sql.= " AND s.fk_statut IN (6)"; - } - if ($mode == 'closed') { - $sql.= " AND s.fk_statut IN (8)"; - } - if ($mode == 'deleted') { - $sql.= " AND s.fk_statut IN (9)"; + $sql.= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale } // Insert sale filter @@ -344,7 +317,6 @@ class Tickets extends DolibarrApi * * @param array $request_data Request datas * @return int ID of ticket - * */ public function post($request_data = null) { @@ -364,9 +336,11 @@ class Tickets extends DolibarrApi if (empty($this->ticket->track_id)) { $this->ticket->track_id = generate_random_id(16); } - if (! $this->ticket->create(DolibarrApiAccess::$user)) { - throw new RestException(500); + + if ($this->ticket->create(DolibarrApiAccess::$user) < 0) { + throw new RestException(500, "Error creating ticket", array_merge(array($this->ticket->error), $this->ticket->errors)); } + return $this->ticket->id; } @@ -561,8 +535,12 @@ class Tickets extends DolibarrApi "lastname", "firstname", "civility_id", + "canvas", "cache_msgs_ticket", "cache_logs_ticket", + "cache_types_tickets", + "cache_category_tickets", + "regeximgext", "statuts_short", "statuts" ); From 8f2e781df6f67ba53e9b868a6f3350acd8a9eddf Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 12:42:12 +0200 Subject: [PATCH 424/944] FIX #11537 --- htdocs/admin/clicktodial.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/admin/clicktodial.php b/htdocs/admin/clicktodial.php index 7f4a167edd9..99c6cea7b39 100644 --- a/htdocs/admin/clicktodial.php +++ b/htdocs/admin/clicktodial.php @@ -37,12 +37,12 @@ $action = GETPOST('action', 'aZ09'); /* * Actions */ - + if ($action == 'setvalue' && $user->admin) { - $result=dolibarr_set_const($db, "CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS", GETPOST("CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS"), 'chaine', 0, '', $conf->entity); - $result=dolibarr_set_const($db, "CLICKTODIAL_URL", GETPOST("CLICKTODIAL_URL"), 'chaine', 0, '', $conf->entity); - + $result1=dolibarr_set_const($db, "CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS", GETPOST("CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS"), 'chaine', 0, '', $conf->entity); + $result2=dolibarr_set_const($db, "CLICKTODIAL_URL", GETPOST("CLICKTODIAL_URL"), 'chaine', 0, '', $conf->entity); + if ($result1 >= 0 && $result2 >= 0) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); From ac715b5147e0d263a65297060fd2758298f5bfd5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 12:53:17 +0200 Subject: [PATCH 425/944] Upgrade Stripe lib to 6.41 to support SetupIntent --- COPYRIGHT | 2 +- htdocs/includes/stripe/CHANGELOG.md | 40 +++++++++ htdocs/includes/stripe/README.md | 19 +++- htdocs/includes/stripe/VERSION | 2 +- htdocs/includes/stripe/init.php | 3 + htdocs/includes/stripe/lib/Account.php | 44 +++++----- .../stripe/lib/BalanceTransaction.php | 37 ++++++-- htdocs/includes/stripe/lib/BankAccount.php | 10 +++ htdocs/includes/stripe/lib/Charge.php | 5 ++ .../includes/stripe/lib/Checkout/Session.php | 10 +++ htdocs/includes/stripe/lib/CreditNote.php | 1 + htdocs/includes/stripe/lib/Customer.php | 55 +++++++++++- .../stripe/lib/CustomerBalanceTransaction.php | 88 +++++++++++++++++++ htdocs/includes/stripe/lib/Invoice.php | 38 +++++--- .../stripe/lib/Issuing/Transaction.php | 2 + htdocs/includes/stripe/lib/Order.php | 2 +- htdocs/includes/stripe/lib/PaymentIntent.php | 13 +++ htdocs/includes/stripe/lib/Person.php | 2 +- .../stripe/lib/Radar/EarlyFraudWarning.php | 36 ++++++++ htdocs/includes/stripe/lib/SetupIntent.php | 75 ++++++++++++++++ htdocs/includes/stripe/lib/Source.php | 1 + htdocs/includes/stripe/lib/Stripe.php | 4 +- htdocs/includes/stripe/lib/Subscription.php | 2 + htdocs/includes/stripe/lib/TaxId.php | 5 +- htdocs/includes/stripe/lib/Util/Util.php | 3 + htdocs/includes/stripe/lib/Webhook.php | 4 +- .../includes/stripe/lib/WebhookSignature.php | 2 +- 27 files changed, 449 insertions(+), 56 deletions(-) create mode 100644 htdocs/includes/stripe/lib/CustomerBalanceTransaction.php create mode 100644 htdocs/includes/stripe/lib/Radar/EarlyFraudWarning.php create mode 100644 htdocs/includes/stripe/lib/SetupIntent.php diff --git a/COPYRIGHT b/COPYRIGHT index ea0c6453486..f58095e1558 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -32,7 +32,7 @@ PSR/simple-cache ? Library for cache (used by PHPSp Restler 3.0.0RC6 LGPL-3+ Yes Library to develop REST Web services (+ swagger-ui js lib into dir explorer) Sabre 3.2.2 BSD Yes DAV support Swift Mailer 5.4.2-DEV MIT license Yes Comprehensive mailing tools for PHP -Stripe 6.35 MIT licence Yes Library for Stripe module +Stripe 6.41 MIT licence Yes Library for Stripe module TCPDF 6.2.25 LGPL-3+ Yes PDF generation TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement diff --git a/htdocs/includes/stripe/CHANGELOG.md b/htdocs/includes/stripe/CHANGELOG.md index 26b449ff039..bed9cff5722 100644 --- a/htdocs/includes/stripe/CHANGELOG.md +++ b/htdocs/includes/stripe/CHANGELOG.md @@ -1,5 +1,45 @@ # Changelog +## 6.41.0 - 2019-07-31 +* [#683](https://github.com/stripe/stripe-php/pull/683) Move the List Balance History API to `/v1/balance_transactions` + +## 6.40.0 - 2019-06-27 +* [#675](https://github.com/stripe/stripe-php/pull/675) Add support for `SetupIntent` resource and APIs + +## 6.39.2 - 2019-06-26 +* [#676](https://github.com/stripe/stripe-php/pull/676) Fix exception message in `CustomerBalanceTransaction::update()` + +## 6.39.1 - 2019-06-25 +* [#674](https://github.com/stripe/stripe-php/pull/674) Add new constants for `collection_method` on `Invoice` + +## 6.39.0 - 2019-06-24 +* [#673](https://github.com/stripe/stripe-php/pull/673) Enable request latency telemetry by default + +## 6.38.0 - 2019-06-17 +* [#649](https://github.com/stripe/stripe-php/pull/649) Add support for `CustomerBalanceTransaction` resource and APIs + +## 6.37.2 - 2019-06-17 +* [#671](https://github.com/stripe/stripe-php/pull/671) Add new PHPDoc +* [#672](https://github.com/stripe/stripe-php/pull/672) Add constants for `submit_type` on Checkout `Session` + +## 6.37.1 - 2019-06-14 +* [#670](https://github.com/stripe/stripe-php/pull/670) Add new PHPDoc + +## 6.37.0 - 2019-05-23 +* [#663](https://github.com/stripe/stripe-php/pull/663) Add support for `radar.early_fraud_warning` resource + +## 6.36.0 - 2019-05-22 +* [#661](https://github.com/stripe/stripe-php/pull/661) Add constants for new TaxId types +* [#662](https://github.com/stripe/stripe-php/pull/662) Add constants for BalanceTransaction types + +## 6.35.2 - 2019-05-20 +* [#655](https://github.com/stripe/stripe-php/pull/655) Add constants for payment intent statuses +* [#659](https://github.com/stripe/stripe-php/pull/659) Fix PHPDoc for various nested Account actions +* [#660](https://github.com/stripe/stripe-php/pull/660) Fix various PHPDoc + +## 6.35.1 - 2019-05-20 +* [#658](https://github.com/stripe/stripe-php/pull/658) Use absolute value when checking timestamp tolerance + ## 6.35.0 - 2019-05-14 * [#651](https://github.com/stripe/stripe-php/pull/651) Add support for the Capability resource and APIs diff --git a/htdocs/includes/stripe/README.md b/htdocs/includes/stripe/README.md index 8dca764d7d1..7d1b681c087 100644 --- a/htdocs/includes/stripe/README.md +++ b/htdocs/includes/stripe/README.md @@ -6,7 +6,11 @@ [![License](https://poser.pugx.org/stripe/stripe-php/license.svg)](https://packagist.org/packages/stripe/stripe-php) [![Code Coverage](https://coveralls.io/repos/stripe/stripe-php/badge.svg?branch=master)](https://coveralls.io/r/stripe/stripe-php?branch=master) -You can sign up for a Stripe account at https://stripe.com. +The Stripe PHP library provides convenient access to the Stripe API from +applications written in the PHP language. It includes a pre-defined set of +classes for API resources that initialize themselves dynamically from API +responses which makes it compatible with a wide range of versions of the Stripe +API. ## Requirements @@ -56,7 +60,7 @@ echo $charge; ## Documentation -Please see https://stripe.com/docs/api for up-to-date documentation. +See the [PHP API docs](https://stripe.com/docs/api/php#intro). ## Legacy Version Support @@ -179,6 +183,17 @@ an intermittent network problem: [Idempotency keys][idempotency-keys] are added to requests to guarantee that retries are safe. +### Request latency telemetry + +By default, the library sends request latency telemetry to Stripe. These +numbers help Stripe improve the overall latency of its API for all users. + +You can disable this behavior if you prefer: + +```php +\Stripe\Stripe::setEnableTelemetry(false); +``` + ## Development Get [Composer][composer]. For example, on Mac OS: diff --git a/htdocs/includes/stripe/VERSION b/htdocs/includes/stripe/VERSION index b22907d080c..08c99ad1b68 100644 --- a/htdocs/includes/stripe/VERSION +++ b/htdocs/includes/stripe/VERSION @@ -1 +1 @@ -6.35.0 +6.41.0 diff --git a/htdocs/includes/stripe/init.php b/htdocs/includes/stripe/init.php index 2f6ccfbf67b..e893cfcda90 100644 --- a/htdocs/includes/stripe/init.php +++ b/htdocs/includes/stripe/init.php @@ -76,6 +76,7 @@ require(dirname(__FILE__) . '/lib/CountrySpec.php'); require(dirname(__FILE__) . '/lib/Coupon.php'); require(dirname(__FILE__) . '/lib/CreditNote.php'); require(dirname(__FILE__) . '/lib/Customer.php'); +require(dirname(__FILE__) . '/lib/CustomerBalanceTransaction.php'); require(dirname(__FILE__) . '/lib/Discount.php'); require(dirname(__FILE__) . '/lib/Dispute.php'); require(dirname(__FILE__) . '/lib/EphemeralKey.php'); @@ -104,6 +105,7 @@ require(dirname(__FILE__) . '/lib/Payout.php'); require(dirname(__FILE__) . '/lib/Person.php'); require(dirname(__FILE__) . '/lib/Plan.php'); require(dirname(__FILE__) . '/lib/Product.php'); +require(dirname(__FILE__) . '/lib/Radar/EarlyFraudWarning.php'); require(dirname(__FILE__) . '/lib/Radar/ValueList.php'); require(dirname(__FILE__) . '/lib/Radar/ValueListItem.php'); require(dirname(__FILE__) . '/lib/Recipient.php'); @@ -112,6 +114,7 @@ require(dirname(__FILE__) . '/lib/Refund.php'); require(dirname(__FILE__) . '/lib/Reporting/ReportRun.php'); require(dirname(__FILE__) . '/lib/Reporting/ReportType.php'); require(dirname(__FILE__) . '/lib/Review.php'); +require(dirname(__FILE__) . '/lib/SetupIntent.php'); require(dirname(__FILE__) . '/lib/SKU.php'); require(dirname(__FILE__) . '/lib/Sigma/ScheduledQueryRun.php'); require(dirname(__FILE__) . '/lib/Source.php'); diff --git a/htdocs/includes/stripe/lib/Account.php b/htdocs/includes/stripe/lib/Account.php index 0e84951dcd0..1adc6b79d53 100644 --- a/htdocs/includes/stripe/lib/Account.php +++ b/htdocs/includes/stripe/lib/Account.php @@ -152,8 +152,8 @@ class Account extends ApiResource /** - * @param string|null $id The ID of the account to which the capability belongs. - * @param string|null $capabilityId The ID of the capability to retrieve. + * @param string $id The ID of the account to which the capability belongs. + * @param string $capabilityId The ID of the capability to retrieve. * @param array|null $params * @param array|string|null $opts * @@ -165,8 +165,8 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account to which the capability belongs. - * @param string|null $capabilityId The ID of the capability to update. + * @param string $id The ID of the account to which the capability belongs. + * @param string $capabilityId The ID of the capability to update. * @param array|null $params * @param array|string|null $opts * @@ -178,7 +178,7 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account on which to retrieve the capabilities. + * @param string $id The ID of the account on which to retrieve the capabilities. * @param array|null $params * @param array|string|null $opts * @@ -190,7 +190,7 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account on which to create the external account. + * @param string $id The ID of the account on which to create the external account. * @param array|null $params * @param array|string|null $opts * @@ -202,8 +202,8 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account to which the external account belongs. - * @param array|null $externalAccountId The ID of the external account to retrieve. + * @param string $id The ID of the account to which the external account belongs. + * @param string $externalAccountId The ID of the external account to retrieve. * @param array|null $params * @param array|string|null $opts * @@ -215,8 +215,8 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account to which the external account belongs. - * @param array|null $externalAccountId The ID of the external account to update. + * @param string $id The ID of the account to which the external account belongs. + * @param string $externalAccountId The ID of the external account to update. * @param array|null $params * @param array|string|null $opts * @@ -228,8 +228,8 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account to which the external account belongs. - * @param array|null $externalAccountId The ID of the external account to delete. + * @param string $id The ID of the account to which the external account belongs. + * @param string $externalAccountId The ID of the external account to delete. * @param array|null $params * @param array|string|null $opts * @@ -241,7 +241,7 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account on which to retrieve the external accounts. + * @param string $id The ID of the account on which to retrieve the external accounts. * @param array|null $params * @param array|string|null $opts * @@ -253,7 +253,7 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account on which to create the login link. + * @param string $id The ID of the account on which to create the login link. * @param array|null $params * @param array|string|null $opts * @@ -280,7 +280,7 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account on which to create the person. + * @param string $id The ID of the account on which to create the person. * @param array|null $params * @param array|string|null $opts * @@ -292,8 +292,8 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account to which the person belongs. - * @param string|null $personId The ID of the person to retrieve. + * @param string $id The ID of the account to which the person belongs. + * @param string $personId The ID of the person to retrieve. * @param array|null $params * @param array|string|null $opts * @@ -305,8 +305,8 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account to which the person belongs. - * @param string|null $personId The ID of the person to update. + * @param string $id The ID of the account to which the person belongs. + * @param string $personId The ID of the person to update. * @param array|null $params * @param array|string|null $opts * @@ -318,8 +318,8 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account to which the person belongs. - * @param string|null $personId The ID of the person to delete. + * @param string $id The ID of the account to which the person belongs. + * @param string $personId The ID of the person to delete. * @param array|null $params * @param array|string|null $opts * @@ -331,7 +331,7 @@ class Account extends ApiResource } /** - * @param string|null $id The ID of the account on which to retrieve the persons. + * @param string $id The ID of the account on which to retrieve the persons. * @param array|null $params * @param array|string|null $opts * diff --git a/htdocs/includes/stripe/lib/BalanceTransaction.php b/htdocs/includes/stripe/lib/BalanceTransaction.php index cd9b79ae675..403c4aa173e 100644 --- a/htdocs/includes/stripe/lib/BalanceTransaction.php +++ b/htdocs/includes/stripe/lib/BalanceTransaction.php @@ -31,11 +31,36 @@ class BalanceTransaction extends ApiResource use ApiOperations\Retrieve; /** - * @return string The class URL for this resource. It needs to be special - * cased because it doesn't fit into the standard resource pattern. + * Possible string representations of the type of balance transaction. + * @link https://stripe.com/docs/api/balance/balance_transaction#balance_transaction_object-type */ - public static function classUrl() - { - return "/v1/balance/history"; - } + const TYPE_ADJUSTMENT = 'adjustment'; + const TYPE_ADVANCE = 'advance'; + const TYPE_ADVANCE_FUNDING = 'advance_funding'; + const TYPE_APPLICATION_FEE = 'application_fee'; + const TYPE_APPLICATION_FEE_REFUND = 'application_fee_refund'; + const TYPE_CHARGE = 'charge'; + const TYPE_CONNECT_COLLECTION_TRANSFER = 'connect_collection_transfer'; + const TYPE_ISSUING_AUTHORIZATION_HOLD = 'issuing_authorization_hold'; + const TYPE_ISSUING_AUTHORIZATION_RELEASE = 'issuing_authorization_release'; + const TYPE_ISSUING_TRANSACTION = 'issuing_transaction'; + const TYPE_PAYMENT = 'payment'; + const TYPE_PAYMENT_FAILURE_REFUND = 'payment_failure_refund'; + const TYPE_PAYMENT_REFUND = 'payment_refund'; + const TYPE_PAYOUT = 'payout'; + const TYPE_PAYOUT_CANCEL = 'payout_cancel'; + const TYPE_PAYOUT_FAILURE = 'payout_failure'; + const TYPE_REFUND = 'refund'; + const TYPE_REFUND_FAILURE = 'refund_failure'; + const TYPE_RESERVE_TRANSACTION = 'reserve_transaction'; + const TYPE_RESERVED_FUNDS = 'reserved_funds'; + const TYPE_STRIPE_FEE = 'stripe_fee'; + const TYPE_STRIPE_FX_FEE = 'stripe_fx_fee'; + const TYPE_TAX_FEE = 'tax_fee'; + const TYPE_TOPUP = 'topup'; + const TYPE_TOPUP_REVERSAL = 'topup_reversal'; + const TYPE_TRANSFER = 'transfer'; + const TYPE_TRANSFER_CANCEL = 'transfer_cancel'; + const TYPE_TRANSFER_FAILURE = 'transfer_failure'; + const TYPE_TRANSFER_REFUND = 'transfer_refund'; } diff --git a/htdocs/includes/stripe/lib/BankAccount.php b/htdocs/includes/stripe/lib/BankAccount.php index 019a4d87cbd..3fdc9188c64 100644 --- a/htdocs/includes/stripe/lib/BankAccount.php +++ b/htdocs/includes/stripe/lib/BankAccount.php @@ -31,6 +31,16 @@ class BankAccount extends ApiResource use ApiOperations\Delete; use ApiOperations\Update; + /** + * Possible string representations of the bank verification status. + * @link https://stripe.com/docs/api/external_account_bank_accounts/object#account_bank_account_object-status + */ + const STATUS_NEW = 'new'; + const STATUS_VALIDATED = 'validated'; + const STATUS_VERIFIED = 'verified'; + const STATUS_VERIFICATION_FAILED = 'verification_failed'; + const STATUS_ERRORED = 'errored'; + /** * @return string The instance URL for this resource. It needs to be special * cased because it doesn't fit into the standard resource pattern. diff --git a/htdocs/includes/stripe/lib/Charge.php b/htdocs/includes/stripe/lib/Charge.php index 832a07c7c04..43274c5559c 100644 --- a/htdocs/includes/stripe/lib/Charge.php +++ b/htdocs/includes/stripe/lib/Charge.php @@ -11,7 +11,9 @@ namespace Stripe; * @property int $amount_refunded * @property string $application * @property string $application_fee + * @property int $application_fee_amount * @property string $balance_transaction + * @property mixed $billing_details * @property bool $captured * @property int $created * @property string $currency @@ -30,6 +32,8 @@ namespace Stripe; * @property mixed $outcome * @property bool $paid * @property string $payment_intent + * @property string $payment_method + * @property mixed $payment_method_details * @property string $receipt_email * @property string $receipt_number * @property string $receipt_url @@ -86,6 +90,7 @@ class Charge extends ApiResource const DECLINED_INVALID_PIN = 'invalid_pin'; const DECLINED_ISSUER_NOT_AVAILABLE = 'issuer_not_available'; const DECLINED_LOST_CARD = 'lost_card'; + const DECLINED_MERCHANT_BLACKLIST = 'merchant_blacklist'; const DECLINED_NEW_ACCOUNT_INFORMATION_AVAILABLE = 'new_account_information_available'; const DECLINED_NO_ACTION_TAKEN = 'no_action_taken'; const DECLINED_NOT_PERMITTED = 'not_permitted'; diff --git a/htdocs/includes/stripe/lib/Checkout/Session.php b/htdocs/includes/stripe/lib/Checkout/Session.php index 968d58cf632..33fc6a08ab2 100644 --- a/htdocs/includes/stripe/lib/Checkout/Session.php +++ b/htdocs/includes/stripe/lib/Checkout/Session.php @@ -15,6 +15,7 @@ namespace Stripe\Checkout; * @property bool $livemode * @property string $payment_intent * @property string[] $payment_method_types + * @property string $submit_type * @property string $subscription * @property string $success_url * @@ -27,4 +28,13 @@ class Session extends \Stripe\ApiResource use \Stripe\ApiOperations\Create; use \Stripe\ApiOperations\Retrieve; + + /** + * Possible string representations of submit type. + * @link https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-submit_type + */ + const SUBMIT_TYPE_AUTO = 'auto'; + const SUBMIT_TYPE_BOOK = 'book'; + const SUBMIT_TYPE_DONATE = 'donate'; + const SUBMIT_TYPE_PAY = 'pay'; } diff --git a/htdocs/includes/stripe/lib/CreditNote.php b/htdocs/includes/stripe/lib/CreditNote.php index 169ed0815c3..66351ffb828 100644 --- a/htdocs/includes/stripe/lib/CreditNote.php +++ b/htdocs/includes/stripe/lib/CreditNote.php @@ -8,6 +8,7 @@ namespace Stripe; * @property string $id * @property string $object * @property int $amount + * @property string $customer_balance_transaction * @property int $created * @property string $currency * @property string $customer diff --git a/htdocs/includes/stripe/lib/Customer.php b/htdocs/includes/stripe/lib/Customer.php index 44f5e6e2f09..6e78f981ee4 100644 --- a/htdocs/includes/stripe/lib/Customer.php +++ b/htdocs/includes/stripe/lib/Customer.php @@ -7,8 +7,8 @@ namespace Stripe; * * @property string $id * @property string $object - * @property int $account_balance * @property mixed $address + * @property int $balance * @property string $created * @property string $currency * @property string $default_source @@ -26,6 +26,7 @@ namespace Stripe; * @property mixed $shipping * @property Collection $sources * @property Collection $subscriptions + * @property string $tax_exempt * @property Collection $tax_ids * * @package Stripe @@ -61,6 +62,7 @@ class Customer extends ApiResource return $savedNestedResources; } + const PATH_BALANCE_TRANSACTIONS = '/balance_transactions'; const PATH_SOURCES = '/sources'; const PATH_TAX_IDS = '/tax_ids'; @@ -264,4 +266,55 @@ class Customer extends ApiResource { return self::_allNestedResources($id, static::PATH_TAX_IDS, $params, $opts); } + + /** + * @param string|null $id The ID of the customer on which to create the balance transaction. + * @param array|null $params + * @param array|string|null $opts + * + * @return ApiResource + */ + public static function createBalanceTransaction($id, $params = null, $opts = null) + { + return self::_createNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts); + } + + /** + * @param string|null $id The ID of the customer to which the balance transaction belongs. + * @param string|null $balanceTransactionId The ID of the balance transaction to retrieve. + * @param array|null $params + * @param array|string|null $opts + * + * @return ApiResource + */ + public static function retrieveBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null) + { + return self::_retrieveNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts); + } + + /** + * @param string|null $id The ID of the customer on which to update the balance transaction. + * @param string|null $balanceTransactionId The ID of the balance transaction to update. + * @param array|null $params + * @param array|string|null $opts + * + * + * @return ApiResource + */ + public static function updateBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null) + { + return self::_updateNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts); + } + + /** + * @param string|null $id The ID of the customer on which to retrieve the customer balance transactions. + * @param array|null $params + * @param array|string|null $opts + * + * @return Collection The list of customer balance transactions. + */ + public static function allBalanceTransactions($id, $params = null, $opts = null) + { + return self::_allNestedResources($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts); + } } diff --git a/htdocs/includes/stripe/lib/CustomerBalanceTransaction.php b/htdocs/includes/stripe/lib/CustomerBalanceTransaction.php new file mode 100644 index 00000000000..06cafcd45c6 --- /dev/null +++ b/htdocs/includes/stripe/lib/CustomerBalanceTransaction.php @@ -0,0 +1,88 @@ +instanceUrl() . '/cancel'; + list($response, $opts) = $this->_request('post', $url, $params, $options); + $this->refreshFrom($response, $opts); + return $this; + } + + /** + * @param array|null $params + * @param array|string|null $options + * + * @return SetupIntent The confirmed setup intent. + */ + public function confirm($params = null, $options = null) + { + $url = $this->instanceUrl() . '/confirm'; + list($response, $opts) = $this->_request('post', $url, $params, $options); + $this->refreshFrom($response, $opts); + return $this; + } +} diff --git a/htdocs/includes/stripe/lib/Source.php b/htdocs/includes/stripe/lib/Source.php index 31b7cf77bba..1e2c8c73565 100644 --- a/htdocs/includes/stripe/lib/Source.php +++ b/htdocs/includes/stripe/lib/Source.php @@ -18,6 +18,7 @@ namespace Stripe; * @property mixed $code_verification * @property int $created * @property string $currency + * @property string $customer * @property mixed $eps * @property string $flow * @property mixed $giropay diff --git a/htdocs/includes/stripe/lib/Stripe.php b/htdocs/includes/stripe/lib/Stripe.php index 027f22fd83c..2397ef9c418 100644 --- a/htdocs/includes/stripe/lib/Stripe.php +++ b/htdocs/includes/stripe/lib/Stripe.php @@ -47,7 +47,7 @@ class Stripe public static $maxNetworkRetries = 0; // @var boolean Whether client telemetry is enabled. Defaults to false. - public static $enableTelemetry = false; + public static $enableTelemetry = true; // @var float Maximum delay between retries, in seconds private static $maxNetworkRetryDelay = 2.0; @@ -55,7 +55,7 @@ class Stripe // @var float Initial delay between retries, in seconds private static $initialNetworkRetryDelay = 0.5; - const VERSION = '6.35.0'; + const VERSION = '6.41.0'; /** * @return string The API key used for requests. diff --git a/htdocs/includes/stripe/lib/Subscription.php b/htdocs/includes/stripe/lib/Subscription.php index 8b57d46b625..f5a46171d81 100644 --- a/htdocs/includes/stripe/lib/Subscription.php +++ b/htdocs/includes/stripe/lib/Subscription.php @@ -13,6 +13,7 @@ namespace Stripe; * @property mixed $billing_thresholds * @property bool $cancel_at_period_end * @property int $canceled_at + * @property string $collection_method * @property int $created * @property int $current_period_end * @property int $current_period_start @@ -31,6 +32,7 @@ namespace Stripe; * @property int $quantity * @property SubscriptionSchedule $schedule * @property int $start + * @property int $start_date * @property string $status * @property float $tax_percent * @property int $trial_end diff --git a/htdocs/includes/stripe/lib/TaxId.php b/htdocs/includes/stripe/lib/TaxId.php index 2993e2d1375..0f72a2ac95f 100644 --- a/htdocs/includes/stripe/lib/TaxId.php +++ b/htdocs/includes/stripe/lib/TaxId.php @@ -12,7 +12,6 @@ namespace Stripe; * @property string $country * @property int $created * @property string $customer - * @property bool $deleted * @property bool $livemode * @property string $type * @property string $value @@ -27,10 +26,12 @@ class TaxId extends ApiResource /** * Possible string representations of a tax id's type. - * @link https://stripe.com/docs/api/customers/tax_id_object#tax_id_object-type + * @link https://stripe.com/docs/api/customer_tax_ids/object#tax_id_object-type */ const TYPE_AU_ABN = 'au_abn'; const TYPE_EU_VAT = 'eu_vat'; + const TYPE_IN_GST = 'in_gst'; + const TYPE_NO_VAT = 'no_vat'; const TYPE_NZ_GST = 'nz_gst'; const TYPE_UNKNOWN = 'unknown'; diff --git a/htdocs/includes/stripe/lib/Util/Util.php b/htdocs/includes/stripe/lib/Util/Util.php index e21d45dac16..f9f15440023 100644 --- a/htdocs/includes/stripe/lib/Util/Util.php +++ b/htdocs/includes/stripe/lib/Util/Util.php @@ -88,6 +88,7 @@ abstract class Util \Stripe\Coupon::OBJECT_NAME => 'Stripe\\Coupon', \Stripe\CreditNote::OBJECT_NAME => 'Stripe\\CreditNote', \Stripe\Customer::OBJECT_NAME => 'Stripe\\Customer', + \Stripe\CustomerBalanceTransaction::OBJECT_NAME => 'Stripe\\CustomerBalanceTransaction', \Stripe\Discount::OBJECT_NAME => 'Stripe\\Discount', \Stripe\Dispute::OBJECT_NAME => 'Stripe\\Dispute', \Stripe\EphemeralKey::OBJECT_NAME => 'Stripe\\EphemeralKey', @@ -117,6 +118,7 @@ abstract class Util \Stripe\Person::OBJECT_NAME => 'Stripe\\Person', \Stripe\Plan::OBJECT_NAME => 'Stripe\\Plan', \Stripe\Product::OBJECT_NAME => 'Stripe\\Product', + \Stripe\Radar\EarlyFraudWarning::OBJECT_NAME => 'Stripe\\Radar\\EarlyFraudWarning', \Stripe\Radar\ValueList::OBJECT_NAME => 'Stripe\\Radar\\ValueList', \Stripe\Radar\ValueListItem::OBJECT_NAME => 'Stripe\\Radar\\ValueListItem', \Stripe\Recipient::OBJECT_NAME => 'Stripe\\Recipient', @@ -125,6 +127,7 @@ abstract class Util \Stripe\Reporting\ReportRun::OBJECT_NAME => 'Stripe\\Reporting\\ReportRun', \Stripe\Reporting\ReportType::OBJECT_NAME => 'Stripe\\Reporting\\ReportType', \Stripe\Review::OBJECT_NAME => 'Stripe\\Review', + \Stripe\SetupIntent::OBJECT_NAME => 'Stripe\\SetupIntent', \Stripe\SKU::OBJECT_NAME => 'Stripe\\SKU', \Stripe\Sigma\ScheduledQueryRun::OBJECT_NAME => 'Stripe\\Sigma\\ScheduledQueryRun', \Stripe\Source::OBJECT_NAME => 'Stripe\\Source', diff --git a/htdocs/includes/stripe/lib/Webhook.php b/htdocs/includes/stripe/lib/Webhook.php index e0ab3021a89..45c7dc0f30a 100644 --- a/htdocs/includes/stripe/lib/Webhook.php +++ b/htdocs/includes/stripe/lib/Webhook.php @@ -24,6 +24,8 @@ abstract class Webhook */ public static function constructEvent($payload, $sigHeader, $secret, $tolerance = self::DEFAULT_TOLERANCE) { + WebhookSignature::verifyHeader($payload, $sigHeader, $secret, $tolerance); + $data = json_decode($payload, true); $jsonError = json_last_error(); if ($data === null && $jsonError !== JSON_ERROR_NONE) { @@ -33,8 +35,6 @@ abstract class Webhook } $event = Event::constructFrom($data); - WebhookSignature::verifyHeader($payload, $sigHeader, $secret, $tolerance); - return $event; } } diff --git a/htdocs/includes/stripe/lib/WebhookSignature.php b/htdocs/includes/stripe/lib/WebhookSignature.php index 73e70dbd7de..9f8be8777b3 100644 --- a/htdocs/includes/stripe/lib/WebhookSignature.php +++ b/htdocs/includes/stripe/lib/WebhookSignature.php @@ -60,7 +60,7 @@ abstract class WebhookSignature } // Check if timestamp is within tolerance - if (($tolerance > 0) && ((time() - $timestamp) > $tolerance)) { + if (($tolerance > 0) && (abs(time() - $timestamp) > $tolerance)) { throw new Error\SignatureVerification( "Timestamp outside the tolerance zone", $header, From d495f7969faafe133545f15384ed6f15302ce1aa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 13:11:20 +0200 Subject: [PATCH 426/944] FIX #11412 --- htdocs/ticket/list.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php index f40d3afce33..2a4195cb07b 100644 --- a/htdocs/ticket/list.php +++ b/htdocs/ticket/list.php @@ -533,7 +533,9 @@ foreach($object->fields as $key => $val) } print '
'; //var_dump($arrayofstatus);var_dump($search['fk_statut']);var_dump(array_values($search[$key])); - print Form::multiselectarray('search_fk_statut', $arrayofstatus, array_values($search[$key]), 0, 0, 'minwidth150', 1, 0, '', '', ''); + $selectedarray = null; + if ($search[$key]) $selectedarray = array_values($search[$key]); + print Form::multiselectarray('search_fk_statut', $arrayofstatus, $selectedarray, 0, 0, 'minwidth150', 1, 0, '', '', ''); print ''; if ($action == 'editdate') { print ''; - print ''; + if ($optioncss != '') print ''; + print ''; print ''; print ''; print $form->selectDate($object->doc_date ? $object->doc_date : - 1, 'doc_date', '', '', '', "setdate"); @@ -464,7 +468,8 @@ if ($action == 'create') print ''; if ($action == 'editjournal') { print ''; - print ''; + if ($optioncss != '') print ''; + print ''; print ''; print ''; print $formaccounting->select_journal($object->code_journal, 'code_journal', 0, 0, array(), 1, 1); @@ -487,7 +492,8 @@ if ($action == 'create') print ''; if ($action == 'editdocref') { print ''; - print ''; + if ($optioncss != '') print ''; + print ''; print ''; print ''; print ''; @@ -583,6 +589,8 @@ if ($action == 'create') print load_fiche_titre($langs->trans("ListeMvts"), '', ''); print ''; + if ($optioncss != '') print ''; + print ''; print '' . "\n"; print '' . "\n"; print '' . "\n"; diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 3169d3737d9..b3f5c3acfda 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -274,7 +274,6 @@ class AccountancyExport * Export format : CEGID * * @param array $objectLines data - * * @return void */ public function exportCegid($objectLines) @@ -300,7 +299,6 @@ class AccountancyExport * Export format : COGILOG * * @param array $objectLines data - * * @return void */ public function exportCogilog($objectLines) @@ -334,7 +332,6 @@ class AccountancyExport * Export format : COALA * * @param array $objectLines data - * * @return void */ public function exportCoala($objectLines) @@ -362,7 +359,6 @@ class AccountancyExport * Export format : BOB50 * * @param array $objectLines data - * * @return void */ public function exportBob50($objectLines) @@ -401,7 +397,6 @@ class AccountancyExport * Export format : CIEL * * @param array $TData data - * * @return void */ public function exportCiel(&$TData) @@ -442,7 +437,6 @@ class AccountancyExport * Export format : Quadratus * * @param array $TData data - * * @return void */ public function exportQuadratus(&$TData) @@ -526,7 +520,6 @@ class AccountancyExport * Export format : EBP * * @param array $objectLines data - * * @return void */ public function exportEbp($objectLines) @@ -563,7 +556,6 @@ class AccountancyExport * Export format : Agiris Isacompta * * @param array $objectLines data - * * @return void */ public function exportAgiris($objectLines) @@ -604,7 +596,6 @@ class AccountancyExport * Export format : OpenConcerto * * @param array $objectLines data - * * @return void */ public function exportOpenConcerto($objectLines) @@ -634,16 +625,17 @@ class AccountancyExport } /** - * Export format : Configurable + * Export format : Configurable CSV * * @param array $objectLines data - * * @return void */ public function exportConfigurable($objectLines) { global $conf; + $separator = $this->separator; + foreach ($objectLines as $line) { $tab = array(); // export configurable @@ -651,15 +643,14 @@ class AccountancyExport $tab[] = $line->piece_num; $tab[] = $date; $tab[] = $line->doc_ref; - $tab[] = $line->label_operation; + $tab[] = preg_match('/'.$separator.'/', $line->label_operation) ? "'".$line->label_operation."'" : $line->label_operation; $tab[] = length_accountg($line->numero_compte); $tab[] = length_accounta($line->subledger_account); - $tab[] = price($line->debit); - $tab[] = price($line->credit); - $tab[] = price($line->montant); + $tab[] = price2num($line->debit); + $tab[] = price2num($line->credit); + $tab[] = price2num($line->montant); $tab[] = $line->code_journal; - $separator = $this->separator; print implode($separator, $tab) . $this->end_line; } } @@ -668,7 +659,6 @@ class AccountancyExport * Export format : FEC * * @param array $objectLines data - * * @return void */ public function exportFEC($objectLines) From a260e7391fb71c6f1396a97980dbbcf7d9e44512 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 14:22:45 +0200 Subject: [PATCH 428/944] FIX for #11232 --- htdocs/core/class/html.formmargin.class.php | 32 ++++++++++----------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/htdocs/core/class/html.formmargin.class.php b/htdocs/core/class/html.formmargin.class.php index f9b0a59280f..ea038fa8131 100644 --- a/htdocs/core/class/html.formmargin.class.php +++ b/htdocs/core/class/html.formmargin.class.php @@ -199,8 +199,6 @@ class FormMargin if (! $user->rights->margins->liretous) return; - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT, $conf->global->MAIN_MAX_DECIMALS_TOT); - $marginInfo = $this->getMarginInfosArray($object, $force_price); if (! empty($conf->global->MARGIN_ADD_SHOWHIDE_BUTTON)) // TODO Warning this feature rely on an external js file that may be removed. Using native js function document.cookie should be better @@ -240,13 +238,13 @@ class FormMargin //if ($marginInfo['margin_on_products'] != 0 && $marginInfo['margin_on_services'] != 0) { print '
'.$langs->trans('MarginOnProducts').''.price($marginInfo['pv_products'], null, null, null, null, $rounding).''.price($marginInfo['pa_products'], null, null, null, null, $rounding).''.price($marginInfo['margin_on_products'], null, null, null, null, $rounding).''.price($marginInfo['pv_products']).''.price($marginInfo['pa_products']).''.price($marginInfo['margin_on_products']).''.(($marginInfo['margin_rate_products'] == '')?'':price($marginInfo['margin_rate_products'], null, null, null, null, $rounding).'%').''.(($marginInfo['margin_rate_products'] == '')?'':price($marginInfo['margin_rate_products'], null, null, null, null, 2).'%').''.(($marginInfo['mark_rate_products'] == '')?'':price($marginInfo['mark_rate_products'], null, null, null, null, $rounding).'%').''.(($marginInfo['mark_rate_products'] == '')?'':price($marginInfo['mark_rate_products'], null, null, null, null, 2).'%').'
'.$langs->trans('MarginOnServices').''.price($marginInfo['pv_services'], null, null, null, null, $rounding).''.price($marginInfo['pa_services'], null, null, null, null, $rounding).''.price($marginInfo['margin_on_services'], null, null, null, null, $rounding).''.price($marginInfo['pv_services']).''.price($marginInfo['pa_services']).''.price($marginInfo['margin_on_services']).''.(($marginInfo['margin_rate_services'] == '')?'':price($marginInfo['margin_rate_services'], null, null, null, null, $rounding).'%').''.(($marginInfo['margin_rate_services'] == '')?'':price($marginInfo['margin_rate_services'], null, null, null, null, 2).'%').''.(($marginInfo['mark_rate_services'] == '')?'':price($marginInfo['mark_rate_services'], null, null, null, null, $rounding).'%').''.(($marginInfo['mark_rate_services'] == '')?'':price($marginInfo['mark_rate_services'], null, null, null, null, 2).'%').'
'.$langs->trans('TotalMargin').''.price($marginInfo['pv_total'], null, null, null, null, $rounding).''.price($marginInfo['pa_total'], null, null, null, null, $rounding).''.price($marginInfo['total_margin'], null, null, null, null, $rounding).''.price($marginInfo['pv_total']).''.price($marginInfo['pa_total']).''.price($marginInfo['total_margin']).''.(($marginInfo['total_margin_rate'] == '')?'':price($marginInfo['total_margin_rate'], null, null, null, null, $rounding).'%').''.(($marginInfo['total_margin_rate'] == '')?'':price($marginInfo['total_margin_rate'], null, null, null, null, 2).'%').''.(($marginInfo['total_mark_rate'] == '')?'':price($marginInfo['total_mark_rate'], null, null, null, null, $rounding).'%').''.(($marginInfo['total_mark_rate'] == '')?'':price($marginInfo['total_mark_rate'], null, null, null, null, 2).'%').'
'; From 90ddc0a214ade20d36a7478f6634e27928444b2a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 14:27:57 +0200 Subject: [PATCH 429/944] FIX #10930 --- htdocs/core/modules/project/doc/pdf_beluga.modules.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php index dfbe97c3fd5..8b6cd68f343 100644 --- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php +++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php @@ -260,7 +260,7 @@ class pdf_beluga extends ModelePDFProjects complete_substitutions_array($substitutionarray, $outputlangs, $object); $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs); $notetoshow = convertBackOfficeMediasLinksToPublicLinks($notetoshow); - + $tab_top -= 2; $pdf->SetFont('', '', $default_font_size - 1); @@ -438,7 +438,7 @@ class pdf_beluga extends ModelePDFProjects $pdf->MultiCell($this->posxstatut - $this->posxamountht, 3, "", 1, 'R'); } $pdf->SetXY($this->posxstatut, $curY); - $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxstatut, 3, $outputlangs->transnoentities("Statut"), 1, 'R'); + $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxstatut, 3, $outputlangs->transnoentities("Status"), 1, 'R'); if (is_array($elementarray) && count($elementarray) > 0) { From d6ae62478c8841fdfe58971494818b599f396d4f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 15:42:44 +0200 Subject: [PATCH 430/944] FIX #10984 FIX reposition on "Build backup" button FIX Fatal error on dol_htmloutput_mesg with corrupted array --- htdocs/admin/tools/dolibarr_export.php | 11 ++++----- htdocs/admin/tools/export.php | 33 +++++++++++++------------- htdocs/core/js/lib_foot.js.php | 3 ++- htdocs/core/lib/functions.lib.php | 15 ++++++++---- 4 files changed, 35 insertions(+), 27 deletions(-) diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php index e63aec50dca..c06314daa9a 100644 --- a/htdocs/admin/tools/dolibarr_export.php +++ b/htdocs/admin/tools/dolibarr_export.php @@ -446,8 +446,10 @@ print "\n";
-
" id="buttonGo" />
+
+ " id="buttonGo"> + +

'.$langs->trans("BackupResult").': '; print $_SESSION["commandbackupresult"]; @@ -598,9 +600,6 @@ print '
'; - - - admin) accessforbidden(); if ($file && ! $what) { //print DOL_URL_ROOT.'/dolibarr_export.php'; - header("Location: ".DOL_URL_ROOT.'/admin/tools/dolibarr_export.php?msg='.urlencode($langs->trans("ErrorFieldRequired", $langs->transnoentities("ExportMethod")))); + header("Location: ".DOL_URL_ROOT.'/admin/tools/dolibarr_export.php?msg='.urlencode($langs->trans("ErrorFieldRequired", $langs->transnoentities("ExportMethod"))).(GETPOST('page_y', 'int')?'&page_y='.GETPOST('page_y', 'int'):'')); exit; } @@ -122,25 +122,15 @@ $utils = new Utils($db); // MYSQL if ($what == 'mysql') { - $cmddump=GETPOST("mysqldump"); // Do not sanitize here with 'alpha', will be sanitize later by dol_sanitizePathName and escapeshellarg $cmddump=dol_sanitizePathName($cmddump); if (! empty($dolibarr_main_restrict_os_commands)) { $arrayofallowedcommand=explode(',', $dolibarr_main_restrict_os_commands); - $ok=0; dol_syslog("Command are restricted to ".$dolibarr_main_restrict_os_commands.". We check that one of this command is inside ".$cmddump); - foreach($arrayofallowedcommand as $allowedcommand) - { - $basenamecmddump=basename($cmddump); - if (preg_match('/^'.preg_quote($allowedcommand, '/').'$/', $basenamecmddump)) // the provided command $cmddump must be an allowed command - { - $ok=1; - break; - } - } - if (! $ok) + $basenamecmddump=basename($cmddump); + if (! in_array($basenamecmddump, $arrayofallowedcommand)) // the provided command $cmddump must be an allowed command { $errormsg=$langs->trans('CommandIsNotInsideAllowedCommands'); } @@ -176,6 +166,18 @@ if ($what == 'postgresql') $cmddump=GETPOST("postgresqldump"); // Do not sanitize here with 'alpha', will be sanitize later by dol_sanitizePathName and escapeshellarg $cmddump=dol_sanitizePathName($cmddump); + /* Not required, the command is output on screen but not ran for pgsql + if (! empty($dolibarr_main_restrict_os_commands)) + { + $arrayofallowedcommand=explode(',', $dolibarr_main_restrict_os_commands); + dol_syslog("Command are restricted to ".$dolibarr_main_restrict_os_commands.". We check that one of this command is inside ".$cmddump); + $basenamecmddump=basename($cmddump); + if (! in_array($basenamecmddump, $arrayofallowedcommand)) // the provided command $cmddump must be an allowed command + { + $errormsg=$langs->trans('CommandIsNotInsideAllowedCommands'); + } + } */ + if (! $errormsg && $cmddump) { dolibarr_set_const($db, 'SYSTEMTOOLS_POSTGRESQLDUMP', $cmddump, 'chaine', 0, '', $conf->entity); @@ -193,7 +195,6 @@ if ($what == 'postgresql') } - if ($errormsg) { setEventMessages($langs->trans("Error")." : ".$errormsg, null, 'errors'); @@ -230,8 +231,8 @@ $result=$formfile->list_of_documents($filearray,null,'systemtools','',1,'backup/ print '
'; */ -// Redirect t backup page -header("Location: dolibarr_export.php"); +// Redirect to backup page +header("Location: dolibarr_export.php".(GETPOST('page_y', 'int')?'?page_y='.GETPOST('page_y', 'int'):'')); $time_end = time(); diff --git a/htdocs/core/js/lib_foot.js.php b/htdocs/core/js/lib_foot.js.php index 14c69259b98..79ad6d19115 100644 --- a/htdocs/core/js/lib_foot.js.php +++ b/htdocs/core/js/lib_foot.js.php @@ -148,6 +148,7 @@ print ' /* Set handler to add page_y param on output (click on href links or submit button) */ jQuery(".reposition").click(function() { var page_y = $(document).scrollTop(); + if (page_y > 0) { if (this.href) @@ -157,7 +158,7 @@ print ' } else { - console.log("We click on tag with .reposition class but element is not an
html tag, so we try to update form field page_y with value "+page_y); + console.log("We click on tag with .reposition class but element is not an html tag, so we try to update input form field page_y with value "+page_y); jQuery("input[type=hidden][name=page_y]").val(page_y); } } diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 9aa6177adf4..20dd423dd4c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -6554,10 +6554,17 @@ function dol_htmloutput_mesg($mesgstring = '', $mesgarray = array(), $style = 'o $newmesgarray=array(); foreach($mesgarray as $val) { - $tmpmesgstring=preg_replace('/<\/div>
/', '
', $val); - $tmpmesgstring=preg_replace('/
/', '', $tmpmesgstring); - $tmpmesgstring=preg_replace('/<\/div>/', '', $tmpmesgstring); - $newmesgarray[]=$tmpmesgstring; + if (is_string($val)) + { + $tmpmesgstring=preg_replace('/<\/div>
/', '
', $val); + $tmpmesgstring=preg_replace('/
/', '', $tmpmesgstring); + $tmpmesgstring=preg_replace('/<\/div>/', '', $tmpmesgstring); + $newmesgarray[]=$tmpmesgstring; + } + else + { + dol_syslog("Error call of dol_htmloutput_mesg with an array with a value that is not a string", LOG_WARNING); + } } $mesgarray=$newmesgarray; } From bf14b4b3d5cda59654e2ebac693bfaba119feda7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 16:20:18 +0200 Subject: [PATCH 431/944] Add Canada Dollar in currency that need symbol before --- 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 20dd423dd4c..e9f4301f8f2 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4400,7 +4400,7 @@ function price($amount, $form = 0, $outlangs = '', $trunc = 1, $rounding = -1, $ { if ($currency_code == 'auto') $currency_code=$conf->currency; - $listofcurrenciesbefore=array('USD','GBP','AUD','HKD','MXN','PEN','CNY'); + $listofcurrenciesbefore=array('USD','GBP','AUD','HKD','MXN','PEN','CNY','CAD'); $listoflanguagesbefore=array('nl_NL'); if (in_array($currency_code, $listofcurrenciesbefore) || in_array($outlangs->defaultlang, $listoflanguagesbefore)) { From 6693f9fbcab68129d60879c54816bedf3d23430c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 16:24:19 +0200 Subject: [PATCH 432/944] Fix phpcs --- htdocs/compta/sociales/list.php | 2 +- htdocs/install/step2.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/sociales/list.php b/htdocs/compta/sociales/list.php index baa1f57a307..5f7f7d0fc0a 100644 --- a/htdocs/compta/sociales/list.php +++ b/htdocs/compta/sociales/list.php @@ -281,7 +281,7 @@ if ($resql) print '
'; if ($obj->periode) { - print 'jdate($obj->periode)).'">'.dol_print_date($db->jdate($obj->periode),'day').''; + print 'jdate($obj->periode)).'">'.dol_print_date($db->jdate($obj->periode), 'day').''; } else { diff --git a/htdocs/install/step2.php b/htdocs/install/step2.php index b553166e8bc..172d2510287 100644 --- a/htdocs/install/step2.php +++ b/htdocs/install/step2.php @@ -453,7 +453,7 @@ if ($action == "set") // Replace the prefix in table names if ($dolibarr_main_db_prefix != 'llx_') { - $buffer=preg_replace('/llx_/i',$dolibarr_main_db_prefix,$buffer); + $buffer=preg_replace('/llx_/i', $dolibarr_main_db_prefix,$buffer); } dolibarr_install_syslog("step2: request: " . $buffer); print "\n"; From 5a719769bc3cca79dfb6d2b0320b09d626cc5e90 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 16:29:18 +0200 Subject: [PATCH 433/944] Fix phpcs --- htdocs/core/modules/import/import_xlsx.modules.php | 2 +- test/phpunit/HolidayTest.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index 10b2a5662f3..af9c0e2c412 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -622,7 +622,7 @@ class ImportXlsx extends ModeleImports if (! empty($objimport->array_import_regex[0][$val]) && ($newval != '')) { // If test is "Must exist in a field@table or field@table:..." - if (preg_match('/^(.+)@([^:]+)(:.+)?$/',$objimport->array_import_regex[0][$val],$reg)) + if (preg_match('/^(.+)@([^:]+)(:.+)?$/', $objimport->array_import_regex[0][$val], $reg)) { $field=$reg[1]; $table=$reg[2]; diff --git a/test/phpunit/HolidayTest.php b/test/phpunit/HolidayTest.php index 3e7ddfb7f0f..ce3312ba441 100644 --- a/test/phpunit/HolidayTest.php +++ b/test/phpunit/HolidayTest.php @@ -365,5 +365,4 @@ class HolidayTest extends PHPUnit\Framework\TestCase $localobjecta->updateBalance(); } - } From cd0d5c41f5d02952ba556f9487d03f3281024636 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 16:37:40 +0200 Subject: [PATCH 434/944] Update interface_20_modWorkflow_WorkflowManager.class.php --- .../triggers/interface_20_modWorkflow_WorkflowManager.class.php | 2 +- 1 file changed, 1 insertion(+), 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 583701f7bc9..8c849f5fa40 100644 --- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php +++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php @@ -121,7 +121,7 @@ class InterfaceWorkflowManager extends DolibarrTriggers if ($action == 'BILL_VALIDATE') { dol_syslog( "Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id ); - $ret = null; + $ret = 0; // First classify billed the order to allow the proposal classify process if (! empty($conf->commande->enabled) && ! empty($conf->workflow->enabled) && ! empty($conf->global->WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER)) From 808d6ba389f4ca0d2beda5bb7a78b44c7780d919 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Aug 2019 18:30:39 +0200 Subject: [PATCH 435/944] Fix phpcs --- htdocs/install/step2.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/step2.php b/htdocs/install/step2.php index 172d2510287..cf235762b86 100644 --- a/htdocs/install/step2.php +++ b/htdocs/install/step2.php @@ -453,7 +453,7 @@ if ($action == "set") // Replace the prefix in table names if ($dolibarr_main_db_prefix != 'llx_') { - $buffer=preg_replace('/llx_/i', $dolibarr_main_db_prefix,$buffer); + $buffer=preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer); } dolibarr_install_syslog("step2: request: " . $buffer); print "\n"; From 7a2e08a6812bec0ecfde8355ea999558f8dbf92e Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 2 Aug 2019 11:41:40 +0200 Subject: [PATCH 436/944] Fix author in message / ticket API --- htdocs/ticket/class/api_tickets.class.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/ticket/class/api_tickets.class.php b/htdocs/ticket/class/api_tickets.class.php index 060ddc36ff3..c23ec3da151 100644 --- a/htdocs/ticket/class/api_tickets.class.php +++ b/htdocs/ticket/class/api_tickets.class.php @@ -160,15 +160,15 @@ class Tickets extends DolibarrApi $num = count($this->ticket->cache_msgs_ticket); $i = 0; while ($i < $num) { - if ($this->ticket->cache_msgs_ticket[$i]['fk_user_action'] > 0) { + if ($this->ticket->cache_msgs_ticket[$i]['fk_user_author'] > 0) { $user_action = new User($this->db); - $user_action->fetch($this->ticket->cache_msgs_ticket[$i]['fk_user_action']); + $user_action->fetch($this->ticket->cache_msgs_ticket[$i]['fk_user_author']); } // Now define messages $messages[] = array( 'id' => $this->ticket->cache_msgs_ticket[$i]['id'], - 'fk_user_action' => $this->ticket->cache_msgs_ticket[$i]['fk_user_action'], + 'fk_user_action' => $this->ticket->cache_msgs_ticket[$i]['fk_user_author'], 'fk_user_action_socid' => $user_action->socid, 'fk_user_action_string' => dolGetFirstLastname($user_action->firstname, $user_action->lastname), 'message' => $this->ticket->cache_msgs_ticket[$i]['message'], @@ -195,6 +195,7 @@ class Tickets extends DolibarrApi // Now define messages $history[] = array( 'id' => $this->ticket->cache_logs_ticket[$i]['id'], + 'fk_user_author' => $this->ticket->cache_msgs_ticket[$i]['fk_user_author'], 'fk_user_action' => $this->ticket->cache_logs_ticket[$i]['fk_user_create'], 'fk_user_action_string' => dolGetFirstLastname($user_action->firstname, $user_action->lastname), 'message' => $this->ticket->cache_logs_ticket[$i]['message'], From c01ac05aecabdbef49031116106bf853253bc4dc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 2 Aug 2019 12:04:06 +0200 Subject: [PATCH 437/944] FIX Content of email for subscription --- htdocs/adherents/class/subscription.class.php | 22 +++++----- htdocs/adherents/subscription/card.php | 33 +++++++-------- ...terface_50_modAgenda_ActionsAuto.class.php | 40 +++++++++++++------ 3 files changed, 55 insertions(+), 40 deletions(-) diff --git a/htdocs/adherents/class/subscription.class.php b/htdocs/adherents/class/subscription.class.php index 71660c0cd8c..571879788ee 100644 --- a/htdocs/adherents/class/subscription.class.php +++ b/htdocs/adherents/class/subscription.class.php @@ -53,21 +53,21 @@ class Subscription extends CommonObject * @var integer */ public $datec; - + /** * Date modification record (tms) * * @var integer */ public $datem; - + /** * Subscription start date (date subscription) * * @var integer */ public $dateh; - + /** * Subscription end date * @@ -128,10 +128,11 @@ class Subscription extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."subscription (fk_adherent, fk_type, datec, dateadh, datef, subscription, note)"; - if ($this->fk_type == null) { - require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php'; - $member=new Adherent($this->db); - $result=$member->fetch($this->fk_adherent); + require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; + $member=new Adherent($this->db); + $result=$member->fetch($this->fk_adherent); + + if ($this->fk_type == null) { // If type not defined, we use the type of member $type=$member->typeid; } else { $type=$this->fk_type; @@ -151,11 +152,13 @@ class Subscription extends CommonObject if (! $error) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element); + $this->fk_type = $type; } if (! $error && ! $notrigger) { - // Call triggers + $this->context = array('member'=>$member); + // Call triggers $result=$this->call_trigger('MEMBER_SUBSCRIPTION_CREATE', $user); if ($result < 0) { $error++; } // End call triggers @@ -257,7 +260,8 @@ class Subscription extends CommonObject $result=$member->update_end_date($user); if (! $error && ! $notrigger) { - // Call triggers + $this->context = array('member'=>$member); + // Call triggers $result=$this->call_trigger('MEMBER_SUBSCRIPTION_MODIFY', $user); if ($result < 0) { $error++; } //Do also here what you must do to rollback action if trigger fail // End call triggers diff --git a/htdocs/adherents/subscription/card.php b/htdocs/adherents/subscription/card.php index a8478f35e88..e44995b263f 100644 --- a/htdocs/adherents/subscription/card.php +++ b/htdocs/adherents/subscription/card.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2007-2019 Laurent Destailleur * Copyright (C) 2018 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -205,18 +205,18 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit') print $form->showrefnav($object, 'rowid', $linkback, 1); print '
'.$langs->trans("Member").''.$adh->getNomUrl(1, 0, 'subscription').'
'.$langs->trans("Type").''; print $form->selectarray("typeid", $adht->liste_array(), (isset($_POST["typeid"])?$_POST["typeid"]:$object->fk_type)); print'
'.$langs->trans("Member").''.$adh->getNomUrl(1, 0, 'subscription').'
'.$langs->trans("DateSubscription").''; print $form->selectDate($object->dateh, 'datesub', 1, 1, 0, 'update', 1); @@ -309,6 +309,12 @@ if ($rowid && $action != 'edit') print ''; + // Member + $adh->ref=$adh->getFullName($langs); + print ''; + print ''; + print ''; + // Type print ''; print ''; @@ -322,17 +328,6 @@ if ($rowid && $action != 'edit') } print ''; - // Member - $adh->ref=$adh->getFullName($langs); - print ''; - print ''; - print ''; - - // Date record - /*print ''; - print ''; - print '';*/ - // Date subscription print ''; print ''; diff --git a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php index bdd07c4e38d..07499ac8893 100644 --- a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php +++ b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php @@ -649,12 +649,20 @@ class InterfaceActionsAuto extends DolibarrTriggers // Load translation files required by the page $langs->loadLangs(array("agenda","other","members")); - if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberSubscriptionAddedInDolibarr", $object->ref, $object->getFullName($langs)); - $object->actionmsg=$langs->transnoentities("MemberSubscriptionAddedInDolibarr", $object->ref, $object->getFullName($langs)); - $object->actionmsg.="\n".$langs->transnoentities("Member").': '.$object->getFullName($langs); - $object->actionmsg.="\n".$langs->transnoentities("Type").': '.$object->type; - $object->actionmsg.="\n".$langs->transnoentities("Amount").': '.$object->last_subscription_amount; - $object->actionmsg.="\n".$langs->transnoentities("Period").': '.dol_print_date($object->last_subscription_date_start, 'day').' - '.dol_print_date($object->last_subscription_date_end, 'day'); + $member = $this->context['member']; + if (! is_object($member)) // This should not happen + { + include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; + $member = new Adherent($this->db); + $member->fetch($this->fk_adherent); + } + + if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberSubscriptionAddedInDolibarr", $object->id, $member->getFullName($langs)); + $object->actionmsg=$langs->transnoentities("MemberSubscriptionAddedInDolibarr", $object->id, $member->getFullName($langs)); + $object->actionmsg.="\n".$langs->transnoentities("Member").': '.$member->getFullName($langs); + $object->actionmsg.="\n".$langs->transnoentities("Type").': '.$object->fk_type; + $object->actionmsg.="\n".$langs->transnoentities("Amount").': '.$object->amount; + $object->actionmsg.="\n".$langs->transnoentities("Period").': '.dol_print_date($object->dateh, 'day').' - '.dol_print_date($object->datef, 'day'); $object->sendtoid=0; if ($object->fk_soc > 0) $object->socid=$object->fk_soc; @@ -664,12 +672,20 @@ class InterfaceActionsAuto extends DolibarrTriggers // Load translation files required by the page $langs->loadLangs(array("agenda","other","members")); - if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberSubscriptionModifiedInDolibarr", $object->ref, $object->getFullName($langs)); - $object->actionmsg=$langs->transnoentities("MemberSubscriptionModifiedInDolibarr", $object->ref, $object->getFullName($langs)); - $object->actionmsg.="\n".$langs->transnoentities("Member").': '.$object->getFullName($langs); - $object->actionmsg.="\n".$langs->transnoentities("Type").': '.$object->type; - $object->actionmsg.="\n".$langs->transnoentities("Amount").': '.$object->last_subscription_amount; - $object->actionmsg.="\n".$langs->transnoentities("Period").': '.dol_print_date($object->last_subscription_date_start, 'day').' - '.dol_print_date($object->last_subscription_date_end, 'day'); + $member = $this->context['member']; + if (! is_object($member)) // This should not happen + { + include_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; + $member = new Adherent($this->db); + $member->fetch($this->fk_adherent); + } + + if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberSubscriptionModifiedInDolibarr", $object->id, $member->getFullName($langs)); + $object->actionmsg=$langs->transnoentities("MemberSubscriptionModifiedInDolibarr", $object->id, $member->getFullName($langs)); + $object->actionmsg.="\n".$langs->transnoentities("Member").': '.$member->getFullName($langs); + $object->actionmsg.="\n".$langs->transnoentities("Type").': '.$object->fk_type; + $object->actionmsg.="\n".$langs->transnoentities("Amount").': '.$object->amount; + $object->actionmsg.="\n".$langs->transnoentities("Period").': '.dol_print_date($object->dateh, 'day').' - '.dol_print_date($object->datef, 'day'); $object->sendtoid=0; if ($object->fk_soc > 0) $object->socid=$object->fk_soc; From 03a2377abc7c1f0eab24452f98dcf02419edfba1 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 2 Aug 2019 12:31:24 +0200 Subject: [PATCH 438/944] Fix: allow access from any other class that inherits Form class. --- htdocs/core/class/html.form.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 713b18582eb..b9b84fb0e4a 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -307,7 +307,7 @@ class Form * @param mixed $custommsg String or Array of custom messages : eg array('success' => 'MyMessage', 'error' => 'MyMessage') * @return string HTML edit in place */ - private function editInPlace($object, $value, $htmlname, $condition, $inputType = 'textarea', $editvalue = null, $extObject = null, $custommsg = null) + protected function editInPlace($object, $value, $htmlname, $condition, $inputType = 'textarea', $editvalue = null, $extObject = null, $custommsg = null) { global $conf; @@ -2362,7 +2362,7 @@ class Form * @param string $filterkey Filter key to highlight * @return void */ - private function constructProductListOption(&$objp, &$opt, &$optJson, $price_level, $selected, $hidepriceinlabel = 0, $filterkey = '') + protected function constructProductListOption(&$objp, &$opt, &$optJson, $price_level, $selected, $hidepriceinlabel = 0, $filterkey = '') { global $langs, $conf, $user, $db; From 74e3a423fdea0c85d1e1e6ee9bc8bceff710df67 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 2 Aug 2019 12:35:00 +0200 Subject: [PATCH 439/944] Fix document list for products in API --- htdocs/api/class/api_documents.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/api/class/api_documents.class.php b/htdocs/api/class/api_documents.class.php index f4a7084b336..48d6bf5b903 100644 --- a/htdocs/api/class/api_documents.class.php +++ b/htdocs/api/class/api_documents.class.php @@ -368,7 +368,7 @@ class Documents extends DolibarrApi throw new RestException(404, 'Product not found'); } - $upload_dir = $conf->product->dir_output . "/" . get_exdir(0, 0, 0, 1, $object, 'product'); + $upload_dir = $conf->product->multidir_output[$object->entity].'/'.get_exdir(0, 0, 0, 0, $object, 'product').dol_sanitizeFileName($object->ref); } elseif ($modulepart == 'agenda' || $modulepart == 'action' || $modulepart == 'event') { From 3a0c1954d6358c5e1909871ba146b68559d01c51 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 2 Aug 2019 13:23:15 +0200 Subject: [PATCH 440/944] Fix application_fee_amount need fix in v10 too --- htdocs/stripe/class/stripe.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index c731637fce6..69c422c8c7c 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -403,7 +403,7 @@ class Stripe extends CommonObject if ($conf->entity!=$conf->global->STRIPECONNECT_PRINCIPAL && $stripefee > 0) { - $dataforintent["application_fee"] = $stripefee; + $dataforintent["application_fee_amount"] = $stripefee; } if ($usethirdpartyemailforreceiptemail && is_object($object) && $object->thirdparty->email) { @@ -730,7 +730,7 @@ class Stripe extends CommonObject ); if ($conf->entity!=$conf->global->STRIPECONNECT_PRINCIPAL && $stripefee > 0) { - $paymentarray["application_fee"] = $stripefee; + $paymentarray["application_fee_amount"] = $stripefee; } if ($societe->email && $usethirdpartyemailforreceiptemail) { From 2d34a0c4c164d3caa5c9f5c3a5355d064a051f8b Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 2 Aug 2019 14:48:45 +0200 Subject: [PATCH 441/944] Fix table in admin 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 c2b2143f277..02039f3edc2 100644 --- a/htdocs/stripe/admin/stripe.php +++ b/htdocs/stripe/admin/stripe.php @@ -254,7 +254,7 @@ if (empty($conf->stripeconnect->enabled)) print price($conf->global->STRIPE_APPLICATION_FEE_PERCENT); print '% + '; print price($conf->global->STRIPE_APPLICATION_FEE); - print ' '.$langs->getCurrencySymbol($conf->currency).' '.$langs->trans("minimum").' '.price($conf->global->STRIPE_APPLICATION_FEE_MINIMAL).' '.$langs->getCurrencySymbol($conf->currency).' '; + print ' '.$langs->getCurrencySymbol($conf->currency).' '.$langs->trans("minimum").' '.price($conf->global->STRIPE_APPLICATION_FEE_MINIMAL).' '.$langs->getCurrencySymbol($conf->currency); print ''; } From 55e8aca47ec955ab18ed57e2716e2053df23021e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 2 Aug 2019 19:06:40 +0200 Subject: [PATCH 442/944] Fix skeleton of module --- htdocs/modulebuilder/template/class/myobject.class.php | 2 +- htdocs/modulebuilder/template/myobject_list.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index f6020882502..3c68b0472e2 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -60,7 +60,7 @@ class MyObject extends CommonObject const STATUS_DRAFT = 0; const STATUS_VALIDATED = 1; - const STATUS_DISABLED = 9; + const STATUS_CANCELED = 9; /** diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 5e6388d55f9..25279be4f03 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -493,7 +493,7 @@ while ($i < min($num, $limit)) if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap'; elseif ($key == 'ref') $cssforfield.=($cssforfield?' ':'').'nowrap'; - if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price'))) $cssforfield.=($cssforfield?' ':'').'right'; + if (in_array($val['type'], array('double(24,8)', 'double(6,3)', 'integer', 'real', 'price')) && $key != 'status') $cssforfield.=($cssforfield?' ':'').'right'; if (! empty($arrayfields['t.'.$key]['checked'])) { From 76b7aa2e0fe954bd01bc7cdcbe711bc05cd72c84 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 2 Aug 2019 19:20:19 +0200 Subject: [PATCH 443/944] Fix fields with visible = 3 must not be visible into list --- 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 25279be4f03..11fafd59ab5 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -135,7 +135,7 @@ $arrayfields=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'], 'position'=>$val['position']); + 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']); } // Extra fields if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) From c34739ab3fb6c84b8f0d569f30e20e984e3b173c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 2 Aug 2019 17:12:03 +0200 Subject: [PATCH 444/944] Fix A file for a hidden feature provides a service without security checks. --- htdocs/core/ajax/objectonoff.php | 26 ++++++++++++++++++++++++-- htdocs/core/ajax/security.php | 2 +- htdocs/core/lib/ajax.lib.php | 5 +++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/htdocs/core/ajax/objectonoff.php b/htdocs/core/ajax/objectonoff.php index 6b06cccd50c..987a59ec3fb 100644 --- a/htdocs/core/ajax/objectonoff.php +++ b/htdocs/core/ajax/objectonoff.php @@ -15,8 +15,9 @@ */ /** - * \file htdocs/core/ajax/productonoff.php - * \brief File to set tosell and tobuy for product + * \file htdocs/core/ajax/objectonoff.php + * \brief File to set status for an object + * This Ajax service is called when option MAIN_DIRECT_STATUS_UPDATE is set. */ if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disables token renewal @@ -36,6 +37,13 @@ $field=GETPOST('field', 'alpha'); $element=GETPOST('element', 'alpha'); $object = new GenericObject($db); + +// Security check +if (! empty($user->societe_id)) + $socid = $user->societe_id; + + + /* * View */ @@ -44,6 +52,20 @@ top_httphead(); print ''."\n"; +if ($element == 'societe' && in_array($field, array('status'))) +{ + $result = restrictedArea($user, 'societe', $id); +} +elseif ($element == 'product' && in_array($field, array('tosell', 'tobuy', 'tobatch'))) +{ + $result = restrictedArea($user, 'produit|service', $id, 'product&product', '', '', 'rowid'); +} +else +{ + accessforbidden("Bad value for combination of parameters element/field.", 0, 0, 1); + exit; +} + // Registering new values if (($action == 'set') && ! empty($id)) $object->setValueFrom($field, $value, $element, $id); diff --git a/htdocs/core/ajax/security.php b/htdocs/core/ajax/security.php index 9e7dea2ef95..faaddd31b23 100644 --- a/htdocs/core/ajax/security.php +++ b/htdocs/core/ajax/security.php @@ -17,7 +17,7 @@ /** * \file htdocs/core/ajax/security.php - * \brief This ajax component is used to generated has keys for security purposes + * \brief This ajax component is used to generated hash keys for security purposes * like key to use into URL to protect them. */ diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php index a96e63a4f43..43f4723d695 100644 --- a/htdocs/core/lib/ajax.lib.php +++ b/htdocs/core/lib/ajax.lib.php @@ -538,11 +538,12 @@ function ajax_constantonoff($code, $input = array(), $entity = null, $revertonof } /** - * On/off button for object + * On/off button to change status of an object + * This is called when MAIN_DIRECT_STATUS_UPDATE is set and it use tha ajax service objectonoff.php * * @param Object $object Object to set * @param string $code Name of constant : status or status_buy for product by example - * @param string $field Name of database field : tosell or tobuy for product by example + * @param string $field Name of database field : 'tosell' or 'tobuy' for product by example * @param string $text_on Text if on * @param string $text_off Text if off * @param array $input Array of type->list of CSS element to switch. Example: array('disabled'=>array(0=>'cssid')) From 55e9335cd2a9814b8d5462fe8546252918ebde34 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 2 Aug 2019 17:16:13 +0200 Subject: [PATCH 445/944] Fix code comment --- htdocs/core/class/fileupload.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/fileupload.class.php b/htdocs/core/class/fileupload.class.php index bd36dba199b..40dd4783a60 100644 --- a/htdocs/core/class/fileupload.class.php +++ b/htdocs/core/class/fileupload.class.php @@ -17,7 +17,7 @@ */ /** - * \file htdocs/core/ajax/fileupload.php + * \file htdocs/core/ajax/fileupload.class.php * \brief File to return Ajax response on file upload */ From 13eef54392e8a5f415c4c2eef0bdb8e3b0350ca4 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sat, 3 Aug 2019 12:31:13 +0200 Subject: [PATCH 446/944] Fix round for application fee in stripe --- htdocs/stripe/class/stripe.class.php | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index c731637fce6..28ba74fa91b 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -319,14 +319,14 @@ class Stripe extends CommonObject if (! in_array($currency_code, $arrayzerounitcurrency)) $stripeamount = $amount * 100; else $stripeamount = $amount; - $fee = round($amount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE); + $fee = $amount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE; if ($fee >= $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL > $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { - $fee = round($conf->global->STRIPE_APPLICATION_FEE_MAXIMAL); + $fee = $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL; } elseif ($fee < $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { - $fee = round($conf->global->STRIPE_APPLICATION_FEE_MINIMAL); + $fee = $conf->global->STRIPE_APPLICATION_FEE_MINIMAL; } - if (! in_array($currency_code, $arrayzerounitcurrency)) $stripefee = $fee * 100; - else $stripefee = $fee; + if (! in_array($currency, $arrayzerounitcurrency)) $stripefee = round($fee * 100); + else $stripefee = round($fee); $paymentintent = null; @@ -708,15 +708,14 @@ class Stripe extends CommonObject $charge = \Stripe\Charge::create($paymentarray, array("idempotency_key" => "$description")); } } else { - $fee = round($amount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE); - if ($fee >= $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL > $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { - $fee = round($conf->global->STRIPE_APPLICATION_FEE_MAXIMAL); - } - elseif ($fee < $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { - $fee = round($conf->global->STRIPE_APPLICATION_FEE_MINIMAL); - } - if (! in_array($currency, $arrayzerounitcurrency)) $stripefee = $fee * 100; - else $stripefee = $fee; + $fee = $amount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE; + if ($fee >= $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL > $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { + $fee = $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL; + } elseif ($fee < $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { + $fee = $conf->global->STRIPE_APPLICATION_FEE_MINIMAL; + } + if (! in_array($currency, $arrayzerounitcurrency)) $stripefee = round($fee * 100); + else $stripefee = round($fee); $paymentarray = array( "amount" => "$stripeamount", From d30ce126e0838cb7f174cb88dd2be842f83e08f3 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sat, 3 Aug 2019 13:00:52 +0200 Subject: [PATCH 447/944] Fix update stripe api for more compliance to API --- htdocs/stripe/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/config.php b/htdocs/stripe/config.php index 5638a10d332..17ca74b7955 100644 --- a/htdocs/stripe/config.php +++ b/htdocs/stripe/config.php @@ -55,4 +55,4 @@ else \Stripe\Stripe::setApiKey($stripearrayofkeys['secret_key']); \Stripe\Stripe::setAppInfo("Dolibarr Stripe", DOL_VERSION, "https://www.dolibarr.org"); // add dolibarr version -\Stripe\Stripe::setApiVersion("2019-03-14"); // force version API +\Stripe\Stripe::setApiVersion("2019-05-16"); // force version API From 25ee539f920cab0ac1b7bcca1101485bf655f9d4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 3 Aug 2019 16:32:35 +0200 Subject: [PATCH 448/944] FIX Missing where on entity Conflicts: htdocs/core/class/commonobject.class.php --- htdocs/core/class/commonobject.class.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 1490e36c3ed..e607e8f214a 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2054,6 +2054,7 @@ abstract class CommonObject } } + /** * Define delivery address * @deprecated @@ -7319,6 +7320,7 @@ abstract class CommonObject if (!empty($id)) $sql.= ' WHERE rowid = '.$id; elseif (!empty($ref)) $sql.= " WHERE ref = ".$this->quote($ref, $this->fields['ref']); else $sql.=' WHERE 1 = 1'; // usage with empty id and empty ref is very rare + if (empty($id) && isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) $sql.=' AND entity IN ('.getEntity($this->table_element).')'; if ($morewhere) $sql.= $morewhere; $sql.=' LIMIT 1'; // This is a fetch, to be sure to get only one record From 83412e3c90692961c3f2ce5aaaad85147d2b5e12 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 3 Aug 2019 16:38:57 +0200 Subject: [PATCH 449/944] Fix warning --- htdocs/modulebuilder/template/class/myobject.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 3c68b0472e2..173fb975438 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -388,7 +388,7 @@ class MyObject extends CommonObject $sql = 'SELECT '; $sql .= $this->getFieldList(); $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element. ' as t'; - if ($this->ismultientitymanaged) $sql .= ' WHERE t.entity IN ('.getEntity($this->table_element).')'; + if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) $sql .= ' WHERE t.entity IN ('.getEntity($this->table_element).')'; else $sql .= ' WHERE 1 = 1'; // Manage filter $sqlwhere = array(); From b40f2cbcce1c633e646a2f1ce58afefcc890e656 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 3 Aug 2019 20:20:09 +0200 Subject: [PATCH 450/944] Fix responsive --- htdocs/expensereport/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index a764e2df47c..f76e96e78a1 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -1679,7 +1679,7 @@ else if ($action == 'cancel') { - $array_input = array('text'=>$langs->trans("ConfirmCancelTrip"), array('type'=>"text",'label'=>''.$langs->trans("Comment").'','name'=>"detail_cancel",'size'=>"50",'value'=>"")); + $array_input = array('text'=>$langs->trans("ConfirmCancelTrip"), array('type'=>"text",'label'=>''.$langs->trans("Comment").'','name'=>"detail_cancel",'value'=>"")); $formconfirm=$form->formconfirm($_SEVER["PHP_SELF"]."?id=".$id, $langs->trans("Cancel"), "", "confirm_cancel", $array_input, "", 1); } @@ -1690,7 +1690,7 @@ else if ($action == 'refuse') // Deny { - $array_input = array('text'=>$langs->trans("ConfirmRefuseTrip"), array('type'=>"text",'label'=>$langs->trans("Comment"),'name'=>"detail_refuse",'size'=>"50",'value'=>"")); + $array_input = array('text'=>$langs->trans("ConfirmRefuseTrip"), array('type'=>"text",'label'=>$langs->trans("Comment"),'name'=>"detail_refuse",'value'=>"")); $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id, $langs->trans("Deny"), '', "confirm_refuse", $array_input, "yes", 1); } From 07cc21a113187c85887bdfe9844be9d370697067 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sat, 3 Aug 2019 20:35:53 +0200 Subject: [PATCH 451/944] Fix display payment intent in stripe's charge list --- htdocs/stripe/charge.php | 47 +++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/htdocs/stripe/charge.php b/htdocs/stripe/charge.php index e8823119e30..80c633b0254 100644 --- a/htdocs/stripe/charge.php +++ b/htdocs/stripe/charge.php @@ -121,6 +121,31 @@ if (!$rowid) //print $list; foreach ($list->data as $charge) { + if ($charge->refunded=='1'){ + $status = img_picto($langs->trans("refunded"), 'statut6'); + } elseif ($charge->paid=='1'){ + $status = img_picto($langs->trans("".$charge->status.""), 'statut4'); + } else { + $label="Message: ".$charge->failure_message."
"; + $label.="Réseau: ".$charge->outcome->network_status."
"; + $label.="Statut: ".$langs->trans("".$charge->outcome->seller_message.""); + $status = $form->textwithpicto(img_picto($langs->trans("".$charge->status.""), 'statut8'), $label, 1); + } + + if ($charge->payment_method_details->type=='card') + { + $type = $langs->trans("card"); + } + elseif ($charge->source->type=='card'){ + $type = $langs->trans("card"); + } elseif ($charge->payment_method_details->type=='three_d_secure'){ + $type = $langs->trans("card3DS"); + } + + if (! empty($charge->payment_intent)) { + $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent); + } + // The metadata FULLTAG is defined by the online payment page $FULLTAG=$charge->metadata->FULLTAG; @@ -205,31 +230,13 @@ if (!$rowid) print '
\n"; // Type print ''; // Amount print '"; // Status print '\n"; print "\n"; From f3e38f4b09ebcd7e41372cd7f40da9de9010f7a1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 3 Aug 2019 20:53:18 +0200 Subject: [PATCH 452/944] FIX Fatal situation if payment removed on expense report. Action set_unpaid was not available. --- htdocs/expensereport/card.php | 40 +++++++++++++++++-- .../class/expensereport.class.php | 4 +- htdocs/langs/en_US/bills.lang | 1 + htdocs/langs/fr_FR/bills.lang | 1 + 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index f76e96e78a1..c7cb9776aeb 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -996,6 +996,34 @@ if (empty($reshook)) } } + if ($action == 'set_unpaid' && $id > 0 && $user->rights->expensereport->to_paid) + { + $object = new ExpenseReport($db); + $object->fetch($id); + + $result = $object->set_unpaid($user); + + if ($result > 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + } + if ($action == 'set_paid' && $id > 0 && $user->rights->expensereport->to_paid) { $object = new ExpenseReport($db); @@ -2662,8 +2690,8 @@ if ($action != 'create' && $action != 'edit') } - // If status is Appoved - // -------------------- + // If status is Approved + // --------------------- if ($user->rights->expensereport->approve && $object->fk_statut == ExpenseReport::STATUS_APPROVED) { @@ -2707,9 +2735,15 @@ if ($action != 'create' && $action != 'edit') print ''; } + if ($user->rights->expensereport->to_paid && $object->paid && $object->fk_statut == ExpenseReport::STATUS_CLOSED) + { + // Set unpaid + print ''; + } + // Clone if ($user->rights->expensereport->creer) { - print ''; + print ''; } /* If draft, validated, cancel, and user can create, he can always delete its card before it is approved */ diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 1160a6dcb94..dceb31c89fb 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1397,12 +1397,12 @@ class ExpenseReport extends CommonObject // phpcs:enable $error = 0; - if ($this->fk_c_deplacement_statuts != 5) + if ($this->paid) { $this->db->begin(); $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; - $sql.= " SET fk_statut = 5"; + $sql.= " SET paid = 0"; $sql.= ' WHERE rowid = '.$this->id; dol_syslog(get_class($this)."::set_unpaid sql=".$sql, LOG_DEBUG); diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 4b67ced59c9..ab4d9096df2 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 41f5aca717c..ca251ed0d93 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -96,6 +96,7 @@ HelpPaymentHigherThanReminderToPay=Attention, le montant de paiement pour une ou HelpPaymentHigherThanReminderToPaySupplier=Attention, le montant de paiement pour une ou plusieurs factures est supérieur au reste à payer.
Corrigez votre saisie, sinon, confirmez et pensez à créer un avoir pour l'excédent pour chaque facture surpayée. ClassifyPaid=Classer 'Payée' ClassifyPaidPartially=Classer 'Payée partiellement' +ClassifyUnPaid=Classer 'Non payée' ClassifyCanceled=Classer 'Abandonnée' ClassifyClosed=Classer 'Fermée' ClassifyUnBilled=Classer 'Non facturée' From f210e286bd6cc927fca6d2d5970113f78f0b2dcc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 3 Aug 2019 20:53:28 +0200 Subject: [PATCH 453/944] Fix balance of div --- htdocs/expensereport/payment/card.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/expensereport/payment/card.php b/htdocs/expensereport/payment/card.php index 73da11f4619..890884b2e37 100644 --- a/htdocs/expensereport/payment/card.php +++ b/htdocs/expensereport/payment/card.php @@ -286,7 +286,6 @@ else dol_print_error($db); } -print ''; /* From 7f42380f834b8b8dd69f80b3885a440b47a5b7df Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 3 Aug 2019 20:53:18 +0200 Subject: [PATCH 454/944] FIX Fatal situation if payment removed on expense report. Action set_unpaid was not available. --- htdocs/expensereport/card.php | 40 +++++++++++++++++-- .../class/expensereport.class.php | 4 +- htdocs/langs/en_US/bills.lang | 1 + htdocs/langs/fr_FR/bills.lang | 1 + 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index b57de324df6..14e86c49cb6 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -989,6 +989,34 @@ if (empty($reshook)) } } + if ($action == 'set_unpaid' && $id > 0 && $user->rights->expensereport->to_paid) + { + $object = new ExpenseReport($db); + $object->fetch($id); + + $result = $object->set_unpaid($user); + + if ($result > 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + } + if ($action == 'set_paid' && $id > 0 && $user->rights->expensereport->to_paid) { $object = new ExpenseReport($db); @@ -2373,8 +2401,8 @@ if ($action != 'create' && $action != 'edit') } - // If status is Appoved - // -------------------- + // If status is Approved + // --------------------- if ($user->rights->expensereport->approve && $object->fk_statut == 5) { @@ -2418,9 +2446,15 @@ if ($action != 'create' && $action != 'edit') print ''; } + if ($user->rights->expensereport->to_paid && $object->paid && $object->fk_statut == ExpenseReport::STATUS_CLOSED) + { + // Set unpaid + print ''; + } + // Clone if ($user->rights->expensereport->creer) { - print ''; + print ''; } /* If draft, validated, cancel, and user can create, he can always delete its card before it is approved */ diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index aec06b7972b..7dc986df07b 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1381,12 +1381,12 @@ class ExpenseReport extends CommonObject // phpcs:enable $error = 0; - if ($this->fk_c_deplacement_statuts != 5) + if ($this->paid) { $this->db->begin(); $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; - $sql.= " SET fk_statut = 5"; + $sql.= " SET paid = 0"; $sql.= ' WHERE rowid = '.$this->id; dol_syslog(get_class($this)."::set_unpaid sql=".$sql, LOG_DEBUG); diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 07370233e6c..393eebae4e4 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -94,6 +94,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 476298a9206..984617e1f09 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -95,6 +95,7 @@ HelpPaymentHigherThanReminderToPay=Attention, le montant de paiement pour une ou HelpPaymentHigherThanReminderToPaySupplier=Attention, le montant de paiement pour une ou plusieurs factures est supérieur au reste à payer.
Corrigez votre saisie, sinon, confirmez et pensez à créer un avoir pour l'excédent pour chaque facture surpayée. ClassifyPaid=Classer 'Payée' ClassifyPaidPartially=Classer 'Payée partiellement' +ClassifyUnPaid=Classer 'Non payée' ClassifyCanceled=Classer 'Abandonnée' ClassifyClosed=Classer 'Fermée' ClassifyUnBilled=Classer 'Non facturée' From 5339bb71ac2df1cfae61ab90acdce8c340179209 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 3 Aug 2019 20:53:18 +0200 Subject: [PATCH 455/944] FIX Fatal situation if payment removed on expense report. Action set_unpaid was not available. --- htdocs/expensereport/card.php | 40 +++++++++++++++++-- .../class/expensereport.class.php | 4 +- htdocs/langs/en_US/bills.lang | 1 + htdocs/langs/fr_FR/bills.lang | 1 + 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 21e716d7ac1..22410ee4085 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -967,6 +967,34 @@ if (empty($reshook)) } } + if ($action == 'set_unpaid' && $id > 0 && $user->rights->expensereport->to_paid) + { + $object = new ExpenseReport($db); + $object->fetch($id); + + $result = $object->set_unpaid($user); + + if ($result > 0) + { + // Define output language + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id', 'aZ09')) $newlang = GETPOST('lang_id', 'aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + } + } + } + if ($action == 'set_paid' && $id > 0 && $user->rights->expensereport->to_paid) { $object = new ExpenseReport($db); @@ -2349,8 +2377,8 @@ if ($action != 'create' && $action != 'edit') } - // If status is Appoved - // -------------------- + // If status is Approved + // --------------------- if ($user->rights->expensereport->approve && $object->fk_statut == 5) { @@ -2394,9 +2422,15 @@ if ($action != 'create' && $action != 'edit') print ''; } + if ($user->rights->expensereport->to_paid && $object->paid && $object->fk_statut == ExpenseReport::STATUS_CLOSED) + { + // Set unpaid + print ''; + } + // Clone if ($user->rights->expensereport->creer) { - print ''; + print ''; } /* If draft, validated, cancel, and user can create, he can always delete its card before it is approved */ diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 3f5029c4ef6..9bbf6617369 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -1366,12 +1366,12 @@ class ExpenseReport extends CommonObject { $error = 0; - if ($this->fk_c_deplacement_statuts != 5) + if ($this->paid) { $this->db->begin(); $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; - $sql.= " SET fk_statut = 5"; + $sql.= " SET paid = 0"; $sql.= ' WHERE rowid = '.$this->id; dol_syslog(get_class($this)."::set_unpaid sql=".$sql, LOG_DEBUG); diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index fae0f88fcc5..02bddd4b923 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -94,6 +94,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay.
Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay.
Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 4b088f8dea2..cbdcd3aefaf 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -95,6 +95,7 @@ HelpPaymentHigherThanReminderToPay=Attention, le montant de paiement pour une ou HelpPaymentHigherThanReminderToPaySupplier=Attention, le montant de paiement pour une ou plusieurs factures est supérieur au reste à payer.
Corrigez votre saisie, sinon, confirmez et pensez à créer un avoir pour l'excédent pour chaque facture surpayée. ClassifyPaid=Classer 'Payée' ClassifyPaidPartially=Classer 'Payée partiellement' +ClassifyUnPaid=Classer 'Non payée' ClassifyCanceled=Classer 'Abandonnée' ClassifyClosed=Classer 'Fermée' ClassifyUnBilled=Classer 'Non facturée' From 4ed1ff5b9bc9231ef2945494974da3ee3f8367df Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sat, 3 Aug 2019 21:17:12 +0200 Subject: [PATCH 456/944] Fix display only stripe sources for customer --- htdocs/societe/paymentmodes.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index fdd4f54b6c8..4a34a2b360f 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -822,7 +822,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print '
'; // List of Stripe payment modes - if (! (empty($conf->stripe->enabled))) + if (! (empty($conf->stripe->enabled)) && $object->client) { $morehtmlright=''; if (! empty($conf->global->STRIPE_ALLOW_LOCAL_CARD)) @@ -1184,11 +1184,10 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' } print "
'.$langs->trans("Member").''.$adh->getNomUrl(1, 0, 'subscription').'
'.$langs->trans("Type").'
'.$langs->trans("Member").''.$adh->getNomUrl(1, 0, 'subscription').'
'.$langs->trans("DateSubscription").''.dol_print_date($object->datec,'dayhour').'
'.$langs->trans("DateSubscription").''.dol_print_date($object->dateh, 'day').'
'.dol_print_date($charge->created, '%d/%m/%Y %H:%M')."'; - if ($charge->source->object=='card') - { - print $langs->trans("card"); - } - elseif ($charge->source->type=='card'){ - print $langs->trans("card"); - } elseif ($charge->source->type=='three_d_secure'){ - print $langs->trans("card3DS"); - } + print $type; print ''.price(($charge->amount-$charge->amount_refunded)/100, 0, '', 1, - 1, - 1, strtoupper($charge->currency))."'; - if ($charge->refunded=='1'){ - print img_picto($langs->trans("refunded"), 'statut6'); - } elseif ($charge->paid=='1'){ - - print img_picto($langs->trans("".$charge->status.""), 'statut4'); - } else { - $label="Message: ".$charge->failure_message."
"; - $label.="Réseau: ".$charge->outcome->network_status."
"; - $label.="Statut: ".$langs->trans("".$charge->outcome->seller_message.""); - print $form->textwithpicto(img_picto($langs->trans("".$charge->status.""), 'statut8'), $label, 1); - } + print $status; print "
"; print ""; + print '
'; } - // List of bank accounts - print '
'; $morehtmlright= dolGetButtonTitle($langs->trans('Add'), '', 'fa fa-plus-circle', $_SERVER["PHP_SELF"].'?socid='.$object->id.'&action=create'); From 4633af3f5d84f175dd528d8c452138631172971d Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sat, 3 Aug 2019 21:19:47 +0200 Subject: [PATCH 457/944] Update charge.php --- htdocs/stripe/charge.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/htdocs/stripe/charge.php b/htdocs/stripe/charge.php index 80c633b0254..a524a62f6a3 100644 --- a/htdocs/stripe/charge.php +++ b/htdocs/stripe/charge.php @@ -130,16 +130,15 @@ if (!$rowid) $label.="Réseau: ".$charge->outcome->network_status."
"; $label.="Statut: ".$langs->trans("".$charge->outcome->seller_message.""); $status = $form->textwithpicto(img_picto($langs->trans("".$charge->status.""), 'statut8'), $label, 1); - } + } if ($charge->payment_method_details->type=='card') { $type = $langs->trans("card"); - } - elseif ($charge->source->type=='card'){ - $type = $langs->trans("card"); + } elseif ($charge->source->type=='card'){ + $type = $langs->trans("card"); } elseif ($charge->payment_method_details->type=='three_d_secure'){ - $type = $langs->trans("card3DS"); + $type = $langs->trans("card3DS"); } if (! empty($charge->payment_intent)) { From d663657f15fc813523566af00c77493e41436734 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 4 Aug 2019 13:04:37 +0200 Subject: [PATCH 458/944] FIX format of field with type timestamp --- htdocs/core/class/commonobject.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index e607e8f214a..4e88348c6d0 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6056,7 +6056,7 @@ abstract class CommonObject { $morecss = 'minwidth100imp'; } - elseif ($type == 'datetime') + elseif ($type == 'datetime' || $type == 'timestamp') { $morecss = 'minwidth200imp'; } @@ -6100,7 +6100,7 @@ abstract class CommonObject $value=''; } } - elseif ($type == 'datetime') + elseif ($type == 'datetime' || $type == 'timestamp') { if(! empty($value)) { $value=dol_print_date($value, 'dayhour'); From 0ede65448232e0cc652745344fa6fb2c53c0c0c7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 4 Aug 2019 13:15:49 +0200 Subject: [PATCH 459/944] Prepare 10.0.1 --- ChangeLog | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/ChangeLog b/ChangeLog index babd1f4db32..c78ad8674eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,112 @@ English Dolibarr ChangeLog -------------------------------------------------------------- + +***** ChangeLog for 10.0.1 compared to 10.0.0 ***** +FIX: #10930 +FIX: #10984 FIX: reposition on "Build backup" button +FIX: #11400 +FIX: #11412 +FIX: #11460 FIX: #11492 FIX: #11576 FIX: #11590 +FIX: #11463 +FIX: #11466 +FIX: #11498 +FIX: #11505 +FIX: #11506 +FIX: #11507 +FIX: #11509 +FIX: #11537 +FIX: #11543 +FIX: #11553 +FIX: #11584 +FIX: accounting mode must be taken from global conf, because there's no way to choose a mode with interface +FIX: Add message from public interface +FIX: add missing hook calls +FIX: Add warning when setup is strange +FIX: ajax call for line positioning when CSRFCHECK_WITH_TOKEN is on +FIX: API return 404 sometimes even if API exists +FIX: Attachment was lost when we validate an expense report +FIX: avoid conflict with "$classname" in card.php +FIX: Bad sql request +FIX: better compatibility with multicompany transverse mode +FIX: Better PHP compatibility +FIX: Block to link with tickets +FIX: Can't submit a ticket from public interface +FIX: categories import: prevent mismatch between category type and object type +FIX: Closing ticket from public interface +FIX: Column 'paid' missing in expense report +FIX: compatibility mysql 8. rank is reserved +FIX: Computed field were not calculated into lists. +FIX: Content of email for subscription +FIX: correct error in files with multiple spaces +FIX: CVE-2019-11199 +FIX: delete of links between objects +FIX: div not balanced +FIX: do not return formatted prices in json string +FIX: duplicate on the check (TODO field $onetrtd not used ?) +FIX: element name in update_price +FIX: empty product_use_units in product configuration +FIX: expedition card: infinite loop for printObjectLine hook if return > 0 +FIX: extrafield loading bug due to assumption that an object is a third party while it may be a contact if MAIN_USE_COMPANY_NAME_OF_CONTACT is set. +FIX: Fatal error on dol_htmloutput_mesg with corrupted array +FIX: Fatal situation if payment removed on expense report. Action +FIX: FEC Format - Missing date_creation in general ledger when you add a new transaction +FIX: FEC Format - Save translation of the journal label in database & nowrap on amount +FIX: floating point precision errors in the triggers of the workflow module +FIX: for #11232 +FIX: format of field with type timestamp +FIX: fournrprice log for insert +FIX: help text +FIX: import filter error +FIX: __INFOS__ tag not exists +FIX: issue #9300: install error with PostgreSQL using custom table prefix +FIX: issue #9300: install error with PostgreSQL when using custom table prefix +FIX: Language key +FIX: Limit of uploaded files (max_post_size was not used) +FIX: list of balance of leaves +FIX: minor spelling issues +FIX: missing "dropdown-icon" replacement +FIX: Missing field "Conciliated" into bank transaction export +FIX: missing filter by current contact +FIX: missing token +FIX: Missing where on entity +FIX: move sql request in INNER JOIN +FIX: name was able to be in field but went back to new line +FIX: Nowrap on amount +FIX: Online payment +FIX: on shipment delete confirm dialog, a new checkbox allows the user to choose if they want their stock re-incremented after the deletion. +FIX: option EXPORT_LABEL_FOR_SELECT to restore compatibility in export +FIX: Option THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION +FIX: outdated phpdoc +FIX: Permission for BOM menu +FIX: permission to delete a draft purchase order +FIX: phpcs +FIX: Position was lost when we edit the line of template invoice +FIX: product_use_units was set to 0 each time a conf in block other was set +FIX: propal createFrom hook: undefined parameter attached +FIX: Responsive of public interface of ticket +FIX: search by phone pro +FIX: Setup of TakePos was not possible after a clean install +FIX: Show list of events on tickets +FIX: socpeople assigned list in action com list +FIX: SQL problem on donation & nowrap on amount +FIX: stock increase on shipment deletion if STOCK_CALCULATE_ON_SHIPMENT_NEW: is set +FIX: stripe webhook ID constant set +FIX: summary of time spent in preview tab of projects +FIX: the feature to bill time spent was not enabled. +FIX: The new feature to attach document on lines was not correclty +FIX: The proposed new supplier code does not work +FIX: this function can not be private +FIX: tk9877 - PDF rouget requires product.lib.php (otherwise measuring_units_string() is not defined) +FIX: Update the file index table when we validate/rename a ref. +FIX: use rounding to compare the amounts +FIX: We must save code instead of value in database for template invoice modelpdf +FIX: we need to be able to add freeline with qty between 0 & 1 in supplierorder line +FIX: We should remove property comments only for project and task api. +FIX: When saving an action it didn't save the label based on the type of event if the label is empty and the type is customized +FIX: when STOCK_CALCULATE_ON_SHIPMENT_NEW: is set, deleting a "closed" shipment now increases stock as expected +FIX: wrong path sociales/index.php doesnt exist anymore + ***** ChangeLog for 10.0.0 compared to 9.0.0 ***** For Users: NEW: Module "Ticket" is available as a stable module. From baa2e870d0e9b8f112e8298115cf6fdc7b9b631e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 5 Aug 2019 11:01:58 +0200 Subject: [PATCH 460/944] Update admin.lang found in admin/company.php --- htdocs/langs/en_US/admin.lang | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index a1d042a07a1..de1e5f52fcd 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -395,6 +395,7 @@ ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions OldVATRates=Old VAT rate NewVATRates=New VAT rate PriceBaseTypeToChange=Modify on prices with base reference value defined on +PriceFormatInCurrentLanguage=Price Format In Current Language MassConvert=Launch mass convert String=String TextLong=Long text @@ -1857,4 +1858,4 @@ MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or use application from a text browser like lynx or links. ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. EXPORTS_SHARE_MODELS=Export models are share with everybody -ExportSetup=Setup of module Export \ No newline at end of file +ExportSetup=Setup of module Export From 41c07b9b4364dc5c6a261dcbd65cb00a68ee1d45 Mon Sep 17 00:00:00 2001 From: atm-greg Date: Mon, 5 Aug 2019 13:10:26 +0200 Subject: [PATCH 461/944] fix bad test in delivery card --- htdocs/livraison/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php index 2e1c9cb47c1..028ce581358 100644 --- a/htdocs/livraison/card.php +++ b/htdocs/livraison/card.php @@ -570,7 +570,7 @@ else } // Other attributes - if ($action = 'create_delivery') { + if ($action == 'create_delivery') { // copy from expedition $expeditionExtrafields = new Extrafields($db); $expeditionExtrafieldLabels = $expeditionExtrafields->fetch_name_optionals_label($expedition->table_element); From 1d4fc32c20f0beb8d5eb21965ae413e9fc616674 Mon Sep 17 00:00:00 2001 From: atm-greg Date: Mon, 5 Aug 2019 13:13:56 +0200 Subject: [PATCH 462/944] fix second bad test --- htdocs/livraison/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php index 028ce581358..13a6196d3a3 100644 --- a/htdocs/livraison/card.php +++ b/htdocs/livraison/card.php @@ -675,7 +675,7 @@ else $mode = ($object->statut == 0) ? 'edit' : 'view'; $line = new LivraisonLigne($db); $line->fetch_optionals($object->lines[$i]->id); - if ($action = 'create_delivery') { + if ($action == 'create_delivery') { $srcLine = new ExpeditionLigne($db); $expeditionLineExtrafields = new Extrafields($db); $expeditionLineExtrafieldLabels = $expeditionLineExtrafields->fetch_name_optionals_label($srcLine->table_element); From fd1204bcd2e4d97615f71615b0f53e99c9c5d423 Mon Sep 17 00:00:00 2001 From: Ferran Marcet Date: Mon, 5 Aug 2019 13:41:25 +0200 Subject: [PATCH 463/944] FIX: Make protected all pfd models functions --- .../core/modules/cheque/doc/pdf_blochet.class.php | 2 +- .../modules/commande/doc/pdf_einstein.modules.php | 8 ++++---- .../commande/doc/pdf_eratosthene.modules.php | 8 ++++---- .../modules/contract/doc/pdf_strato.modules.php | 8 ++++---- .../modules/expedition/doc/pdf_espadon.modules.php | 8 ++++---- .../modules/expedition/doc/pdf_merou.modules.php | 6 +++--- .../modules/expedition/doc/pdf_rouget.modules.php | 8 ++++---- .../expensereport/doc/pdf_standard.modules.php | 10 +++++----- .../core/modules/facture/doc/pdf_crabe.modules.php | 14 +++++++------- .../modules/facture/doc/pdf_sponge.modules.php | 12 ++++++------ .../modules/fichinter/doc/pdf_soleil.modules.php | 8 ++++---- .../modules/livraison/doc/pdf_typhon.modules.php | 8 ++++---- htdocs/core/modules/modResource.class.php | 2 +- .../modules/product/doc/pdf_standard.modules.php | 6 +++--- .../modules/project/doc/pdf_baleine.modules.php | 8 ++++---- .../modules/project/doc/pdf_beluga.modules.php | 6 +++--- .../modules/project/doc/pdf_timespent.modules.php | 8 ++++---- .../core/modules/propale/doc/pdf_azur.modules.php | 14 +++++++------- .../core/modules/propale/doc/pdf_cyan.modules.php | 12 ++++++------ .../modules/reception/doc/pdf_squille.modules.php | 8 ++++---- .../modules/stock/doc/pdf_standard.modules.php | 8 ++++---- .../modules/stock/doc/pdf_stdmovement.modules.php | 8 ++++---- .../supplier_invoice/pdf/pdf_canelle.modules.php | 10 +++++----- .../supplier_order/pdf/pdf_cornas.modules.php | 12 ++++++------ .../supplier_order/pdf/pdf_muscadet.modules.php | 12 ++++++------ .../supplier_payment/doc/pdf_standard.modules.php | 8 ++++---- .../supplier_proposal/doc/pdf_aurore.modules.php | 12 ++++++------ 27 files changed, 117 insertions(+), 117 deletions(-) diff --git a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php index f2ef19ca19a..111c0a324ca 100644 --- a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php +++ b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php @@ -386,7 +386,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts * @param int $hidefreetext 1=Hide free text * @return void */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $default_font_size = pdf_getPDFFontSize($outputlangs); diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 1c1fa12c665..64d289f1982 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -658,7 +658,7 @@ class pdf_einstein extends ModelePDFCommandes * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function _tableau_versements(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable } @@ -674,7 +674,7 @@ class pdf_einstein extends ModelePDFCommandes * @param Translate $outputlangs Langs object * @return void */ - private function _tableau_info(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf; @@ -862,7 +862,7 @@ class pdf_einstein extends ModelePDFCommandes * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -1125,7 +1125,7 @@ class pdf_einstein extends ModelePDFCommandes * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php index 51e36b53476..012f3e9e998 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -855,7 +855,7 @@ class pdf_eratosthene extends ModelePDFCommandes * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs) + protected function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs) { } @@ -868,7 +868,7 @@ class pdf_eratosthene extends ModelePDFCommandes * @param Translate $outputlangs Langs object * @return void */ - private function drawInfoTable(&$pdf, $object, $posy, $outputlangs) + protected function drawInfoTable(&$pdf, $object, $posy, $outputlangs) { global $conf; $default_font_size = pdf_getPDFFontSize($outputlangs); @@ -1054,7 +1054,7 @@ class pdf_eratosthene extends ModelePDFCommandes * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs) { global $conf,$mysoc; @@ -1313,7 +1313,7 @@ class pdf_eratosthene extends ModelePDFCommandes * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index 97fedf45808..fda022a48c6 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -519,7 +519,7 @@ class pdf_strato extends ModelePDFContract * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf; @@ -566,7 +566,7 @@ class pdf_strato extends ModelePDFContract * @param Translate $outputlangs Object language for output * @return void */ - private function tabSignature(&$pdf, $tab_top, $tab_height, $outputlangs) + protected function tabSignature(&$pdf, $tab_top, $tab_height, $outputlangs) { $pdf->SetDrawColor(128, 128, 128); $posmiddle = $this->marge_gauche + round(($this->page_largeur - $this->marge_gauche - $this->marge_droite)/2); @@ -594,7 +594,7 @@ class pdf_strato extends ModelePDFContract * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf,$langs; @@ -773,7 +773,7 @@ class pdf_strato extends ModelePDFContract * @param int $hidefreetext 1=Hide free text * @return integer */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php index 87f04dca016..ebefeb9be92 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -659,7 +659,7 @@ class pdf_espadon extends ModelePdfExpedition * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -761,7 +761,7 @@ class pdf_espadon extends ModelePdfExpedition * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf; @@ -805,7 +805,7 @@ class pdf_espadon extends ModelePdfExpedition * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf,$langs,$mysoc; @@ -1053,7 +1053,7 @@ class pdf_espadon extends ModelePdfExpedition * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php index 8696bc21a02..048016c3ac6 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -460,7 +460,7 @@ class pdf_merou extends ModelePdfExpedition * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $langs; $default_font_size = pdf_getPDFFontSize($outputlangs); @@ -498,7 +498,7 @@ class pdf_merou extends ModelePdfExpedition * @param int $hidefreetext 1=Hide free text * @return void */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { $default_font_size = pdf_getPDFFontSize($outputlangs); $pdf->SetFont('', '', $default_font_size - 2); @@ -527,7 +527,7 @@ class pdf_merou extends ModelePdfExpedition * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf, $langs,$hookmanager; diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index 1b6ca3ceda9..3466ca0be3e 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -675,7 +675,7 @@ class pdf_rouget extends ModelePdfExpedition * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -783,7 +783,7 @@ class pdf_rouget extends ModelePdfExpedition * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf; @@ -868,7 +868,7 @@ class pdf_rouget extends ModelePdfExpedition * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf,$langs,$mysoc; @@ -1116,7 +1116,7 @@ class pdf_rouget extends ModelePdfExpedition * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php index e0bba62df3b..dd363d0f4fb 100644 --- a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php @@ -550,7 +550,7 @@ class pdf_standard extends ModeleExpenseReport * @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines) * @return void */ - private function printLine(&$pdf, $object, $linenumber, $curY, $default_font_size, $outputlangs, $hidedetails = 0) + protected function printLine(&$pdf, $object, $linenumber, $curY, $default_font_size, $outputlangs, $hidedetails = 0) { global $conf; $pdf->SetFont('', '', $default_font_size - 1); @@ -629,7 +629,7 @@ class pdf_standard extends ModeleExpenseReport * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { // global $conf, $langs, $hookmanager; global $user, $langs, $conf, $mysoc, $db, $hookmanager; @@ -861,7 +861,7 @@ class pdf_standard extends ModeleExpenseReport * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -971,7 +971,7 @@ class pdf_standard extends ModeleExpenseReport * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function tablePayments(&$pdf, $object, $posy, $outputlangs) + protected function tablePayments(&$pdf, $object, $posy, $outputlangs) { global $conf; @@ -1084,7 +1084,7 @@ class pdf_standard extends ModeleExpenseReport * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails = $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index de1ebc00a8b..74152b7706e 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -773,7 +773,7 @@ class pdf_crabe extends ModelePDFFactures * @param int $heightforfooter height for footer * @return int <0 if KO, >0 if OK */ - private function _tableau_versements(&$pdf, $object, $posy, $outputlangs, $heightforfooter = 0) + protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs, $heightforfooter = 0) { // phpcs:enable global $conf; @@ -922,7 +922,7 @@ class pdf_crabe extends ModelePDFFactures * @param int $tab3_height height * @return void */ - private function _tableau_versements_header($pdf, $object, $outputlangs, $default_font_size, $tab3_posx, $tab3_top, $tab3_width, $tab3_height) + protected function _tableau_versements_header($pdf, $object, $outputlangs, $default_font_size, $tab3_posx, $tab3_top, $tab3_width, $tab3_height) { // phpcs:enable $title=$outputlangs->transnoentities("PaymentsAlreadyDone"); @@ -957,7 +957,7 @@ class pdf_crabe extends ModelePDFFactures * @param Translate $outputlangs Langs object * @return void */ - private function _tableau_info(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf; @@ -1117,7 +1117,7 @@ class pdf_crabe extends ModelePDFFactures * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -1418,7 +1418,7 @@ class pdf_crabe extends ModelePDFFactures * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -1535,7 +1535,7 @@ class pdf_crabe extends ModelePDFFactures * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf, $langs; @@ -1810,7 +1810,7 @@ class pdf_crabe extends ModelePDFFactures * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php index 9c7c7797841..b7ea86d305e 100644 --- a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php @@ -449,7 +449,7 @@ class pdf_sponge extends ModelePDFFactures complete_substitutions_array($substitutionarray, $outputlangs, $object); $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs); $notetoshow = convertBackOfficeMediasLinksToPublicLinks($notetoshow); - + $pdf->startTransaction(); $pdf->SetFont('', '', $default_font_size - 1); @@ -1043,7 +1043,7 @@ class pdf_sponge extends ModelePDFFactures * @param Translate $outputlangs Langs object * @return void */ - private function drawInfoTable(&$pdf, $object, $posy, $outputlangs) + protected function drawInfoTable(&$pdf, $object, $posy, $outputlangs) { global $conf; @@ -1201,7 +1201,7 @@ class pdf_sponge extends ModelePDFFactures * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs) { global $conf,$mysoc; @@ -1522,7 +1522,7 @@ class pdf_sponge extends ModelePDFFactures * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -1570,7 +1570,7 @@ class pdf_sponge extends ModelePDFFactures * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf, $langs; @@ -1843,7 +1843,7 @@ class pdf_sponge extends ModelePDFFactures * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php index 41edc6c0a1d..8b6e7dd0d29 100644 --- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php +++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php @@ -274,7 +274,7 @@ class pdf_soleil extends ModelePDFFicheinter complete_substitutions_array($substitutionarray, $outputlangs, $object); $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs); $notetoshow = convertBackOfficeMediasLinksToPublicLinks($notetoshow); - + $tab_top = 88; $pdf->SetFont('', '', $default_font_size - 1); @@ -495,7 +495,7 @@ class pdf_soleil extends ModelePDFFicheinter * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf; @@ -555,7 +555,7 @@ class pdf_soleil extends ModelePDFFicheinter * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf,$langs; $default_font_size = pdf_getPDFFontSize($outputlangs); @@ -731,7 +731,7 @@ class pdf_soleil extends ModelePDFFicheinter * @param int $hidefreetext 1=Hide free text * @return integer */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php index a2124b801a6..35c87e75c55 100644 --- a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php +++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php @@ -647,7 +647,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder * @param Translate $outputlangs Langs object * @return void */ - private function _tableau_info(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -678,7 +678,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf,$mysoc; @@ -740,7 +740,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf,$langs,$hookmanager; @@ -918,7 +918,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/modResource.class.php b/htdocs/core/modules/modResource.class.php index cceacf3263c..44d97d2891d 100644 --- a/htdocs/core/modules/modResource.class.php +++ b/htdocs/core/modules/modResource.class.php @@ -313,7 +313,7 @@ class modResource extends DolibarrModules * * @return int <=0 if KO, >0 if OK */ - private function loadTables() + protected function loadTables() { return $this->_load_tables('/resource/sql/'); } diff --git a/htdocs/core/modules/product/doc/pdf_standard.modules.php b/htdocs/core/modules/product/doc/pdf_standard.modules.php index 04d566248b9..b5e7e05bb24 100644 --- a/htdocs/core/modules/product/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/product/doc/pdf_standard.modules.php @@ -601,7 +601,7 @@ class pdf_standard extends ModelePDFProduct * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -704,7 +704,7 @@ class pdf_standard extends ModelePDFProduct * @param string $titlekey Translation key to show as title of document * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "") + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "") { global $conf,$langs,$hookmanager; @@ -853,7 +853,7 @@ class pdf_standard extends ModelePDFProduct * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/project/doc/pdf_baleine.modules.php b/htdocs/core/modules/project/doc/pdf_baleine.modules.php index c7005206fcc..a24ef28fdec 100644 --- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php @@ -287,7 +287,7 @@ class pdf_baleine extends ModelePDFProjects complete_substitutions_array($substitutionarray, $outputlangs, $object); $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs); $notetoshow = convertBackOfficeMediasLinksToPublicLinks($notetoshow); - + $tab_top -= 2; $pdf->SetFont('', '', $default_font_size - 1); @@ -535,7 +535,7 @@ class pdf_baleine extends ModelePDFProjects * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf,$mysoc; @@ -582,7 +582,7 @@ class pdf_baleine extends ModelePDFProjects * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $langs,$conf,$mysoc; @@ -675,7 +675,7 @@ class pdf_baleine extends ModelePDFProjects * @param int $hidefreetext 1=Hide free text * @return integer */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php index 8b6cd68f343..81f7c70f460 100644 --- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php +++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php @@ -708,7 +708,7 @@ class pdf_beluga extends ModelePDFProjects * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf,$mysoc; @@ -755,7 +755,7 @@ class pdf_beluga extends ModelePDFProjects * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $langs,$conf,$mysoc; @@ -824,7 +824,7 @@ class pdf_beluga extends ModelePDFProjects * @param int $hidefreetext 1=Hide free text * @return integer */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/project/doc/pdf_timespent.modules.php b/htdocs/core/modules/project/doc/pdf_timespent.modules.php index 2c69fbd6bab..db0eed6f296 100644 --- a/htdocs/core/modules/project/doc/pdf_timespent.modules.php +++ b/htdocs/core/modules/project/doc/pdf_timespent.modules.php @@ -218,7 +218,7 @@ class pdf_timespent extends ModelePDFProjects complete_substitutions_array($substitutionarray, $outputlangs, $object); $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs); $notetoshow = convertBackOfficeMediasLinksToPublicLinks($notetoshow); - + $tab_top -= 2; $pdf->SetFont('', '', $default_font_size - 1); @@ -466,7 +466,7 @@ class pdf_timespent extends ModelePDFProjects * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf,$mysoc; @@ -513,7 +513,7 @@ class pdf_timespent extends ModelePDFProjects * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $langs,$conf,$mysoc; @@ -606,7 +606,7 @@ class pdf_timespent extends ModelePDFProjects * @param int $hidefreetext 1=Hide free text * @return integer */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 54fe56421ea..1e0b10522c3 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -843,7 +843,7 @@ class pdf_azur extends ModelePDFPropales * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function _tableau_versements(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable } @@ -859,7 +859,7 @@ class pdf_azur extends ModelePDFPropales * @param Translate $outputlangs Langs object * @return void */ - private function _tableau_info(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf; @@ -1041,7 +1041,7 @@ class pdf_azur extends ModelePDFPropales * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -1319,7 +1319,7 @@ class pdf_azur extends ModelePDFPropales * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -1431,7 +1431,7 @@ class pdf_azur extends ModelePDFPropales * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf,$langs; @@ -1654,7 +1654,7 @@ class pdf_azur extends ModelePDFPropales * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; @@ -1671,7 +1671,7 @@ class pdf_azur extends ModelePDFPropales * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _signature_area(&$pdf, $object, $posy, $outputlangs) + protected function _signature_area(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf; diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index 14a2456157a..0071a2fdc1b 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -957,7 +957,7 @@ class pdf_cyan extends ModelePDFPropales * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs) + protected function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs) { } @@ -1150,7 +1150,7 @@ class pdf_cyan extends ModelePDFPropales * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs) { global $conf,$mysoc; $default_font_size = pdf_getPDFFontSize($outputlangs); @@ -1427,7 +1427,7 @@ class pdf_cyan extends ModelePDFPropales * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -1475,7 +1475,7 @@ class pdf_cyan extends ModelePDFPropales * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf,$langs; @@ -1700,7 +1700,7 @@ class pdf_cyan extends ModelePDFPropales * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; @@ -1716,7 +1716,7 @@ class pdf_cyan extends ModelePDFPropales * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function drawSignatureArea(&$pdf, $object, $posy, $outputlangs) + protected function drawSignatureArea(&$pdf, $object, $posy, $outputlangs) { global $conf; $default_font_size = pdf_getPDFFontSize($outputlangs); diff --git a/htdocs/core/modules/reception/doc/pdf_squille.modules.php b/htdocs/core/modules/reception/doc/pdf_squille.modules.php index dec1f35e7b0..f4a0053d9f0 100644 --- a/htdocs/core/modules/reception/doc/pdf_squille.modules.php +++ b/htdocs/core/modules/reception/doc/pdf_squille.modules.php @@ -604,7 +604,7 @@ class pdf_squille extends ModelePdfReception * @param int $totalOrdered Total ordered * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs, $totalOrdered) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs, $totalOrdered) { // phpcs:enable global $conf,$mysoc; @@ -707,7 +707,7 @@ class pdf_squille extends ModelePdfReception * @param int $hidebottom Hide bottom bar of array * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0) { global $conf; @@ -786,7 +786,7 @@ class pdf_squille extends ModelePdfReception * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf,$langs,$mysoc; @@ -1037,7 +1037,7 @@ class pdf_squille extends ModelePdfReception * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/stock/doc/pdf_standard.modules.php b/htdocs/core/modules/stock/doc/pdf_standard.modules.php index e1181aa6fe2..3a9eb914c4b 100644 --- a/htdocs/core/modules/stock/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_standard.modules.php @@ -550,7 +550,7 @@ class pdf_standard extends ModelePDFStock complete_substitutions_array($substitutionarray, $outputlangs, $object); $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs); $notetoshow = convertBackOfficeMediasLinksToPublicLinks($notetoshow); - + $tab_top = 88; $pdf->SetFont('', '', $default_font_size - 1); @@ -767,7 +767,7 @@ class pdf_standard extends ModelePDFStock * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -870,7 +870,7 @@ class pdf_standard extends ModelePDFStock * @param string $titlekey Translation key to show as title of document * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "") + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "") { global $conf,$langs,$db,$hookmanager; @@ -1098,7 +1098,7 @@ class pdf_standard extends ModelePDFStock * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php index 2a1819a3aa0..31b5964afad 100644 --- a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php @@ -724,7 +724,7 @@ class pdf_stdmovement extends ModelePDFMovement complete_substitutions_array($substitutionarray, $outputlangs, $object); $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs); $notetoshow = convertBackOfficeMediasLinksToPublicLinks($notetoshow); - + $tab_top = 88; $pdf->SetFont('', '', $default_font_size - 1); @@ -823,7 +823,7 @@ class pdf_stdmovement extends ModelePDFMovement * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -949,7 +949,7 @@ class pdf_stdmovement extends ModelePDFMovement * @param string $titlekey Translation key to show as title of document * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "") + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey = "") { global $conf,$langs,$db,$hookmanager; @@ -1177,7 +1177,7 @@ class pdf_stdmovement extends ModelePDFMovement * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php index 5c0904baba8..d9d84a686bf 100644 --- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php @@ -616,7 +616,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -827,7 +827,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -930,7 +930,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function _tableau_versements(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf; @@ -1022,7 +1022,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $langs, $conf, $mysoc; @@ -1235,7 +1235,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php index 612595b8c44..8aa5a4fc619 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php @@ -811,7 +811,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function _tableau_versements(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable } @@ -827,7 +827,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders * @param Translate $outputlangs Langs object * @return integer */ - private function _tableau_info(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf; @@ -893,7 +893,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -1110,7 +1110,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -1176,7 +1176,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $langs,$conf,$mysoc; @@ -1421,7 +1421,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php index 0c9e8e0967a..8c228d0ccaf 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php @@ -713,7 +713,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function _tableau_versements(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable } @@ -729,7 +729,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders * @param Translate $outputlangs Langs object * @return integer */ - private function _tableau_info(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf; @@ -795,7 +795,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -1012,7 +1012,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -1113,7 +1113,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $langs, $conf, $mysoc; @@ -1357,7 +1357,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; 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 79ad993ef81..7bee236b8b7 100644 --- a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php @@ -527,7 +527,7 @@ class pdf_standard extends ModelePDFSuppliersPayments * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_cheque(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_cheque(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -590,7 +590,7 @@ class pdf_standard extends ModelePDFSuppliersPayments * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf,$mysoc; @@ -631,7 +631,7 @@ class pdf_standard extends ModelePDFSuppliersPayments * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $langs, $conf, $mysoc; @@ -810,7 +810,7 @@ class pdf_standard extends ModelePDFSuppliersPayments * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; diff --git a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php index d8d489c1bbf..4871e44713b 100644 --- a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php +++ b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php @@ -710,7 +710,7 @@ class pdf_aurore extends ModelePDFSupplierProposal * @param Translate $outputlangs Object langs for output * @return int <0 if KO, >0 if OK */ - private function _tableau_versements(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_versements(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable } @@ -726,7 +726,7 @@ class pdf_aurore extends ModelePDFSupplierProposal * @param Translate $outputlangs Langs object * @return void */ - private function _tableau_info(&$pdf, $object, $posy, $outputlangs) + protected function _tableau_info(&$pdf, $object, $posy, $outputlangs) { // phpcs:enable global $conf; @@ -895,7 +895,7 @@ class pdf_aurore extends ModelePDFSupplierProposal * @param Translate $outputlangs Objet langs * @return int Position pour suite */ - private function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) + protected function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs) { // phpcs:enable global $conf,$mysoc; @@ -1170,7 +1170,7 @@ class pdf_aurore extends ModelePDFSupplierProposal * @param string $currency Currency code * @return void */ - private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') + protected function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop = 0, $hidebottom = 0, $currency = '') { global $conf; @@ -1271,7 +1271,7 @@ class pdf_aurore extends ModelePDFSupplierProposal * @param Translate $outputlangs Object lang for output * @return void */ - private function _pagehead(&$pdf, $object, $showaddress, $outputlangs) + protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs) { global $conf, $langs; @@ -1488,7 +1488,7 @@ class pdf_aurore extends ModelePDFSupplierProposal * @param int $hidefreetext 1=Hide free text * @return int Return height of bottom margin including footer text */ - private function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) + protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0) { global $conf; $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS; From cda8b15c7f1433ad338046c556a823adafd17421 Mon Sep 17 00:00:00 2001 From: Ferran Marcet Date: Mon, 5 Aug 2019 14:00:15 +0200 Subject: [PATCH 464/944] FIX: Not showing MAIN_INVERT_SENDER_RECIPIENT when edit field --- htdocs/admin/pdf.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/htdocs/admin/pdf.php b/htdocs/admin/pdf.php index 70fa3dc38b7..8f6e82887dc 100644 --- a/htdocs/admin/pdf.php +++ b/htdocs/admin/pdf.php @@ -3,6 +3,7 @@ * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2012-2107 Juanjo Menent + * Copyright (C) 2019 Ferran Marcet * * 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 @@ -279,6 +280,12 @@ if ($action == 'edit') // Edit print $form->selectyesno('MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS',(! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS))?$conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS:0,1); print '
'.$langs->trans("SwapSenderAndRecipientOnPDF").''; + print $form->selectyesno('MAIN_INVERT_SENDER_RECIPIENT',(! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT))?$conf->global->MAIN_INVERT_SENDER_RECIPIENT:0,1); + print '
'.$langs->trans("PlaceCustomerAddressToIsoLocation").''; From 32220dde2e1ca544dbf4b36da6a6611e3d511088 Mon Sep 17 00:00:00 2001 From: Ferran Marcet Date: Mon, 5 Aug 2019 14:12:19 +0200 Subject: [PATCH 465/944] FIX: Wrong variable. Must be PROJECT_HIDE_UNSELECTABLES --- htdocs/core/class/html.formprojet.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php index 35b3e52d154..d96f5e66df5 100644 --- a/htdocs/core/class/html.formprojet.class.php +++ b/htdocs/core/class/html.formprojet.class.php @@ -153,7 +153,7 @@ class FormProjets $outarray=array(); $hideunselectables = false; - if (! empty($conf->global->CONTRACT_HIDE_UNSELECTABLES)) $hideunselectables = true; + if (! empty($conf->global->PROJECT_HIDE_UNSELECTABLES)) $hideunselectables = true; $projectsListId = false; if (empty($user->rights->projet->all->lire)) From fde526f59df4343c991b40800b8406ed656e7028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 5 Aug 2019 14:58:50 +0200 Subject: [PATCH 466/944] Update pdf_einstein.modules.php --- htdocs/core/modules/commande/doc/pdf_einstein.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index def09507b92..778b6525d21 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -1221,7 +1221,7 @@ class pdf_einstein extends ModelePDFCommandes * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output * @param string $titlekey Translation key to show as title of document - * @return void + * @return int Return topshift value */ function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey="PdfOrderTitle") { From 7f23b77cbec9639f263d2ff8ad8a3b68e6885817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 5 Aug 2019 15:00:06 +0200 Subject: [PATCH 467/944] Update pdf_proforma.modules.php --- htdocs/core/modules/commande/doc/pdf_proforma.modules.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php index ebbe72f94c9..7a2c1f724c0 100644 --- a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php @@ -65,12 +65,12 @@ class pdf_proforma extends pdf_einstein * @param int $showaddress 0=no, 1=yes * @param Translate $outputlangs Object lang for output * @param string $titlekey Translation key to show as title of document - * @return void + * @return int Return topshift value */ function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey="InvoiceProForma") { global $conf,$langs,$hookmanager; - parent::_pagehead($pdf, $object, $showaddress, $outputlangs, $titlekey); + return parent::_pagehead($pdf, $object, $showaddress, $outputlangs, $titlekey); } } From 05ac4eec52c8fe5c585dbc8171ee891e45742e9e Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 6 Aug 2019 00:16:18 +0200 Subject: [PATCH 468/944] Update charge.php --- htdocs/stripe/charge.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/stripe/charge.php b/htdocs/stripe/charge.php index a524a62f6a3..9d4bf71c040 100644 --- a/htdocs/stripe/charge.php +++ b/htdocs/stripe/charge.php @@ -133,13 +133,13 @@ if (!$rowid) } if ($charge->payment_method_details->type=='card') - { + { $type = $langs->trans("card"); - } elseif ($charge->source->type=='card'){ + } elseif ($charge->source->type=='card'){ $type = $langs->trans("card"); - } elseif ($charge->payment_method_details->type=='three_d_secure'){ + } elseif ($charge->payment_method_details->type=='three_d_secure'){ $type = $langs->trans("card3DS"); - } + } if (! empty($charge->payment_intent)) { $charge = \Stripe\PaymentIntent::retrieve($charge->payment_intent); From 69985339d86b1668704ce64c16f51699ca25717f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 6 Aug 2019 11:47:34 +0200 Subject: [PATCH 469/944] Update price_parser.class.php --- .../product/dynamic_price/class/price_parser.class.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/htdocs/product/dynamic_price/class/price_parser.class.php b/htdocs/product/dynamic_price/class/price_parser.class.php index 3249671d173..1dd98c6610e 100644 --- a/htdocs/product/dynamic_price/class/price_parser.class.php +++ b/htdocs/product/dynamic_price/class/price_parser.class.php @@ -259,9 +259,14 @@ class PriceParser return -1; } - //Get the supplier min + //Get the supplier min price $productFournisseur = new ProductFournisseur($this->db); - $supplier_min_price = $productFournisseur->find_min_price_product_fournisseur($product->id, 0, 0); + $res = $productFournisseur->find_min_price_product_fournisseur($product->id, 0, 0); + if ($res<1) { + $this->error_parser = array(25, null); + return -1; + } + $supplier_min_price = $productFournisseur->fourn_unitprice; //Accessible values by expressions $extra_values = array_merge($extra_values, array( From ee8d99351df76ef2e12a11a379b12c9ba69a64d3 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 6 Aug 2019 16:28:18 +0200 Subject: [PATCH 470/944] Update facture.php --- htdocs/product/stats/facture.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/product/stats/facture.php b/htdocs/product/stats/facture.php index d60c4d835a5..a11bfe14865 100644 --- a/htdocs/product/stats/facture.php +++ b/htdocs/product/stats/facture.php @@ -234,7 +234,9 @@ if ($id > 0 || ! empty($ref)) while ($i < min($num, $limit)) { $objp = $db->fetch_object($result); - + + if ($objp->type == Facture::TYPE_CREDIT_NOTE) $objp->qty=-($objp->qty); + $total_ht+=$objp->total_ht; $total_qty+=$objp->qty; From 0fc92b92a25da11770e8649805ae4b9226acbada Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Tue, 6 Aug 2019 16:47:54 +0200 Subject: [PATCH 471/944] Update facture.php --- htdocs/product/stats/facture.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/stats/facture.php b/htdocs/product/stats/facture.php index a11bfe14865..8eab980f1dc 100644 --- a/htdocs/product/stats/facture.php +++ b/htdocs/product/stats/facture.php @@ -235,7 +235,7 @@ if ($id > 0 || ! empty($ref)) { $objp = $db->fetch_object($result); - if ($objp->type == Facture::TYPE_CREDIT_NOTE) $objp->qty=-($objp->qty); + if ($objp->type == Facture::TYPE_CREDIT_NOTE) $objp->qty=-($objp->qty); $total_ht+=$objp->total_ht; $total_qty+=$objp->qty; From 322ec32ff53a442a82838ce521429df74f2a1fb2 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Wed, 7 Aug 2019 20:16:53 +0200 Subject: [PATCH 472/944] FIX duration when creating service --- htdocs/product/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/card.php b/htdocs/product/card.php index 847c6325b50..ca3cec982df 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -1028,7 +1028,7 @@ else if ($type == 1) { print '
'.$langs->trans("Duration").''; - print ''; + print ''; print $formproduct->selectMeasuringUnits("duration_unit", "time", GETPOST('duration_value', 'alpha'), 0, 1); print '
'.$langs->trans("PricingRule").''.$langs->trans("PricingRule").''.$form->textwithpicto($langs->trans("PricingRule"), $langs->trans("SamePriceAlsoForSharedCompanies"), 1).''; $current_rule = 'PRODUCT_PRICE_UNIQ'; if (!empty($conf->global->PRODUIT_MULTIPRICES)) $current_rule='PRODUIT_MULTIPRICES'; @@ -564,10 +571,6 @@ if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) $current_rule='PRODUI if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) $current_rule='PRODUIT_CUSTOMER_PRICES'; if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) $current_rule='PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES'; print $form->selectarray("princingrule", $select_pricing_rules, $current_rule); -if ( empty($conf->multicompany->enabled)) -{ - print $langs->trans("SamePriceAlsoForSharedCompanies"); -} print ''; print ''; print ''; From 00660d4885aad0808db499ad25fabc3e584e0461 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Aug 2019 02:52:36 +0200 Subject: [PATCH 480/944] Fix responsive --- htdocs/admin/dict.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index c2b61fe378e..f68864fcc3d 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -1602,7 +1602,6 @@ if ($id) $class='tddict'; if ($fieldlist[$field] == 'note' && $id == 10) $class.=' tdoverflowmax200'; if ($fieldlist[$field] == 'tracking') $class.=' tdoverflowauto'; - if ($fieldlist[$field] == 'code') $class.=' maxwidth100'; if ($fieldlist[$field] == 'position') $class.=' right'; if ($fieldlist[$field] == 'localtax1_type') $class.=' nowrap'; if ($fieldlist[$field] == 'localtax2_type') $class.=' nowrap'; @@ -1780,7 +1779,6 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') global $form; global $region_id; global $elementList,$sourceList,$localtax_typeList; - global $bc; $formadmin = new FormAdmin($db); $formcompany = new FormCompany($db); @@ -1981,7 +1979,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '') } $classtd=''; $class=''; - if ($fieldlist[$field]=='code') $classtd='maxwidth100'; + if ($fieldlist[$field]=='code') $class='maxwidth100'; if (in_array($fieldlist[$field], array('pos', 'use_default', 'affect', 'delay', 'position', 'sortorder', 'sens', 'category_type'))) $class='maxwidth50'; if (in_array($fieldlist[$field], array('libelle', 'label', 'tracking'))) $class='quatrevingtpercent'; print ''; From f1c0442a773bb81286fa8df6ef44b756ea021972 Mon Sep 17 00:00:00 2001 From: Ferran Marcet Date: Mon, 12 Aug 2019 10:16:04 +0200 Subject: [PATCH 481/944] FIX: Add comment before protected functions --- .../core/modules/cheque/doc/pdf_blochet.class.php | 2 +- .../modules/commande/doc/pdf_einstein.modules.php | 6 ++++-- .../commande/doc/pdf_eratosthene.modules.php | 1 + .../modules/contract/doc/pdf_strato.modules.php | 3 +++ .../modules/expedition/doc/pdf_espadon.modules.php | 4 ++++ .../modules/expedition/doc/pdf_merou.modules.php | 4 +++- .../modules/expedition/doc/pdf_rouget.modules.php | 4 ++++ .../expensereport/doc/pdf_standard.modules.php | 3 +++ .../core/modules/facture/doc/pdf_crabe.modules.php | 13 ++++++++++--- .../core/modules/facture/doc/pdf_sponge.modules.php | 3 +++ .../modules/fichinter/doc/pdf_soleil.modules.php | 3 +++ .../modules/livraison/doc/pdf_typhon.modules.php | 4 ++++ .../modules/product/doc/pdf_standard.modules.php | 4 +++- .../modules/project/doc/pdf_baleine.modules.php | 4 +++- .../core/modules/project/doc/pdf_beluga.modules.php | 4 +++- .../modules/project/doc/pdf_timespent.modules.php | 4 +++- .../core/modules/propale/doc/pdf_azur.modules.php | 9 +++++++-- .../core/modules/propale/doc/pdf_cyan.modules.php | 3 +++ .../modules/reception/doc/pdf_squille.modules.php | 4 ++++ .../core/modules/stock/doc/pdf_standard.modules.php | 4 +++- .../modules/stock/doc/pdf_stdmovement.modules.php | 4 +++- .../supplier_invoice/pdf/pdf_canelle.modules.php | 5 +++++ .../supplier_order/pdf/pdf_cornas.modules.php | 8 ++++++-- .../supplier_order/pdf/pdf_muscadet.modules.php | 8 ++++++-- .../supplier_payment/doc/pdf_standard.modules.php | 8 +++++--- .../supplier_proposal/doc/pdf_aurore.modules.php | 8 ++++++-- 26 files changed, 103 insertions(+), 24 deletions(-) diff --git a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php index 111c0a324ca..71866464084 100644 --- a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php +++ b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php @@ -376,7 +376,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 64d289f1982..16bd84abc5b 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -648,6 +648,7 @@ class pdf_einstein extends ModelePDFCommandes } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show payments table @@ -663,7 +664,7 @@ class pdf_einstein extends ModelePDFCommandes // phpcs:enable } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show miscellaneous information (payment mode, payment term, ...) @@ -850,7 +851,7 @@ class pdf_einstein extends ModelePDFCommandes return $posy; } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -1112,6 +1113,7 @@ class pdf_einstein extends ModelePDFCommandes return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php index 012f3e9e998..fe0a3cb0570 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -1300,6 +1300,7 @@ class pdf_eratosthene extends ModelePDFCommandes return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index fda022a48c6..c022e46dbce 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -507,6 +507,7 @@ class pdf_strato extends ModelePDFContract } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -585,6 +586,7 @@ class pdf_strato extends ModelePDFContract $pdf->MultiCell($this->page_largeur-$this->marge_droite - $posmiddle - 5, 20, '', 1); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -764,6 +766,7 @@ class pdf_strato extends ModelePDFContract } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php index ebefeb9be92..eef7f6bba3a 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -648,6 +648,7 @@ class pdf_espadon extends ModelePdfExpedition } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -749,6 +750,7 @@ class pdf_espadon extends ModelePdfExpedition return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -796,6 +798,7 @@ class pdf_espadon extends ModelePdfExpedition } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1044,6 +1047,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->SetTextColor(0, 0, 0); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php index 048016c3ac6..bca46406310 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -448,6 +448,7 @@ class pdf_merou extends ModelePdfExpedition } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -489,6 +490,7 @@ class pdf_merou extends ModelePdfExpedition $pdf->Rect(10, $tab_top, 190, $tab_height); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * @@ -517,7 +519,7 @@ class pdf_merou extends ModelePdfExpedition //} } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index 3466ca0be3e..89686ef2d27 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -664,6 +664,7 @@ class pdf_rouget extends ModelePdfExpedition } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -771,6 +772,7 @@ class pdf_rouget extends ModelePdfExpedition return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -859,6 +861,7 @@ class pdf_rouget extends ModelePdfExpedition } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1107,6 +1110,7 @@ class pdf_rouget extends ModelePdfExpedition $pdf->SetTextColor(0, 0, 0); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php index dd363d0f4fb..8aec0cc4105 100644 --- a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php @@ -620,6 +620,7 @@ class pdf_standard extends ModeleExpenseReport $pdf->writeHTMLCell($this->posxtva-$this->posxcomment-0.8, 4, $this->posxcomment-1, $curY, $comment, 0, 1); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -848,6 +849,7 @@ class pdf_standard extends ModeleExpenseReport } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -1075,6 +1077,7 @@ class pdf_standard extends ModeleExpenseReport } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 74152b7706e..2cd59d94ee7 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -762,7 +762,8 @@ class pdf_crabe extends ModelePDFFactures } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show payments table * @@ -909,6 +910,7 @@ class pdf_crabe extends ModelePDFFactures } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Function _tableau_versements_header * @@ -947,7 +949,8 @@ class pdf_crabe extends ModelePDFFactures $pdf->line($tab3_posx, $tab3_top-1+$tab3_height, $tab3_posx+$tab3_width, $tab3_top-1+$tab3_height); } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show miscellaneous information (payment mode, payment term, ...) * @@ -1106,7 +1109,8 @@ class pdf_crabe extends ModelePDFFactures } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show total to pay * @@ -1405,6 +1409,7 @@ class pdf_crabe extends ModelePDFFactures return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -1526,6 +1531,7 @@ class pdf_crabe extends ModelePDFFactures } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1801,6 +1807,7 @@ class pdf_crabe extends ModelePDFFactures return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php index b7ea86d305e..afdee523bbd 100644 --- a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php @@ -1509,6 +1509,7 @@ class pdf_sponge extends ModelePDFFactures return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -1561,6 +1562,7 @@ class pdf_sponge extends ModelePDFFactures } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1834,6 +1836,7 @@ class pdf_sponge extends ModelePDFFactures return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php index 8b6e7dd0d29..60ddda82efb 100644 --- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php +++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php @@ -483,6 +483,7 @@ class pdf_soleil extends ModelePDFFicheinter } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -546,6 +547,7 @@ class pdf_soleil extends ModelePDFFicheinter } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -722,6 +724,7 @@ class pdf_soleil extends ModelePDFFicheinter } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php index 35c87e75c55..51fd70c9fa1 100644 --- a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php +++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php @@ -637,6 +637,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder return 0; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show miscellaneous information (payment mode, payment term, ...) @@ -666,6 +667,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pdf->MultiCell($larg_sign, 2, $outputlangs->trans("ForCustomer").':', '', 'L'); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -731,6 +733,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -909,6 +912,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pdf->SetTextColor(0, 0, 60); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/product/doc/pdf_standard.modules.php b/htdocs/core/modules/product/doc/pdf_standard.modules.php index b5e7e05bb24..2c8a1441379 100644 --- a/htdocs/core/modules/product/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/product/doc/pdf_standard.modules.php @@ -587,7 +587,7 @@ class pdf_standard extends ModelePDFProduct } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -694,6 +694,7 @@ class pdf_standard extends ModelePDFProduct } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -844,6 +845,7 @@ class pdf_standard extends ModelePDFProduct $pdf->SetTextColor(0, 0, 0); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/project/doc/pdf_baleine.modules.php b/htdocs/core/modules/project/doc/pdf_baleine.modules.php index a24ef28fdec..abd1afc95fc 100644 --- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php @@ -522,7 +522,7 @@ class pdf_baleine extends ModelePDFProjects } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -573,6 +573,7 @@ class pdf_baleine extends ModelePDFProjects $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxdatestart, 3, '', 0, 'C'); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -666,6 +667,7 @@ class pdf_baleine extends ModelePDFProjects */ } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php index 81f7c70f460..25f90770984 100644 --- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php +++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php @@ -695,7 +695,7 @@ class pdf_beluga extends ModelePDFProjects } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -746,6 +746,7 @@ class pdf_beluga extends ModelePDFProjects $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxdatestart, 3, '', 0, 'C'); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -815,6 +816,7 @@ class pdf_beluga extends ModelePDFProjects $pdf->SetTextColor(0, 0, 60); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/project/doc/pdf_timespent.modules.php b/htdocs/core/modules/project/doc/pdf_timespent.modules.php index db0eed6f296..eb810e2fb15 100644 --- a/htdocs/core/modules/project/doc/pdf_timespent.modules.php +++ b/htdocs/core/modules/project/doc/pdf_timespent.modules.php @@ -453,7 +453,7 @@ class pdf_timespent extends ModelePDFProjects } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -504,6 +504,7 @@ class pdf_timespent extends ModelePDFProjects $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxdatestart, 3, '', 0, 'C'); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -597,6 +598,7 @@ class pdf_timespent extends ModelePDFProjects */ } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 1e0b10522c3..14f4dfe8f9f 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -833,6 +833,7 @@ class pdf_azur extends ModelePDFPropales } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show payments table @@ -848,7 +849,7 @@ class pdf_azur extends ModelePDFPropales // phpcs:enable } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show miscellaneous information (payment mode, payment term, ...) @@ -1029,7 +1030,7 @@ class pdf_azur extends ModelePDFPropales return $posy; } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -1306,6 +1307,7 @@ class pdf_azur extends ModelePDFPropales return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -1422,6 +1424,7 @@ class pdf_azur extends ModelePDFPropales } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1645,6 +1648,7 @@ class pdf_azur extends ModelePDFPropales return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * @@ -1661,6 +1665,7 @@ class pdf_azur extends ModelePDFPropales return pdf_pagefoot($pdf, $outputlangs, 'PROPOSAL_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show area for the customer to sign diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index 0071a2fdc1b..d8b20db9a40 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -1414,6 +1414,7 @@ class pdf_cyan extends ModelePDFPropales return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -1466,6 +1467,7 @@ class pdf_cyan extends ModelePDFPropales } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1691,6 +1693,7 @@ class pdf_cyan extends ModelePDFPropales return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/reception/doc/pdf_squille.modules.php b/htdocs/core/modules/reception/doc/pdf_squille.modules.php index f4a0053d9f0..9acd517370a 100644 --- a/htdocs/core/modules/reception/doc/pdf_squille.modules.php +++ b/htdocs/core/modules/reception/doc/pdf_squille.modules.php @@ -592,6 +592,7 @@ class pdf_squille extends ModelePdfReception } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -695,6 +696,7 @@ class pdf_squille extends ModelePdfReception return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -777,6 +779,7 @@ class pdf_squille extends ModelePdfReception } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1028,6 +1031,7 @@ class pdf_squille extends ModelePdfReception $pdf->SetTextColor(0, 0, 0); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/stock/doc/pdf_standard.modules.php b/htdocs/core/modules/stock/doc/pdf_standard.modules.php index 3a9eb914c4b..6fe21f15f9c 100644 --- a/htdocs/core/modules/stock/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_standard.modules.php @@ -753,7 +753,7 @@ class pdf_standard extends ModelePDFStock } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -860,6 +860,7 @@ class pdf_standard extends ModelePDFStock $pdf->SetLineStyle(array('dash'=>0)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1089,6 +1090,7 @@ class pdf_standard extends ModelePDFStock $pdf->SetTextColor(0, 0, 0); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php index 31b5964afad..0c7c38a7659 100644 --- a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php @@ -809,7 +809,7 @@ class pdf_stdmovement extends ModelePDFMovement } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -939,6 +939,7 @@ class pdf_stdmovement extends ModelePDFMovement $pdf->SetLineStyle(array('dash'=>0)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1168,6 +1169,7 @@ class pdf_stdmovement extends ModelePDFMovement $pdf->SetTextColor(0, 0, 0); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php index d9d84a686bf..2679f00d182 100644 --- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php @@ -605,6 +605,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -814,6 +815,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -920,6 +922,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show payments table @@ -1013,6 +1016,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1226,6 +1230,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php index 8aa5a4fc619..8c687a69001 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_cornas.modules.php @@ -800,7 +800,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show payments table @@ -816,7 +816,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders // phpcs:enable } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show miscellaneous information (payment mode, payment term, ...) @@ -882,6 +882,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders return $posy; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -1097,6 +1098,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -1167,6 +1169,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1412,6 +1415,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php index 8c228d0ccaf..7d20d6061eb 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php @@ -702,7 +702,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders } } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show payments table @@ -718,7 +718,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders // phpcs:enable } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show miscellaneous information (payment mode, payment term, ...) @@ -784,6 +784,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders return $posy; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -999,6 +1000,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -1104,6 +1106,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1348,6 +1351,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * 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 7bee236b8b7..2fe56602504 100644 --- a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php @@ -517,7 +517,8 @@ class pdf_standard extends ModelePDFSuppliersPayments } } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show total to pay * @@ -576,7 +577,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $pdf->MultiCell(150, 4, date("d").' '.$outputlangs->transnoentitiesnoconv(date("F")).' '.date("Y"), 0, 'L', 1); } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -621,7 +622,7 @@ class pdf_standard extends ModelePDFSuppliersPayments //$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom); // Rect prend une longueur en 3eme param et 4eme param } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -801,6 +802,7 @@ class pdf_standard extends ModelePDFSuppliersPayments } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * diff --git a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php index 4871e44713b..8b95819e8c1 100644 --- a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php +++ b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php @@ -700,6 +700,7 @@ class pdf_aurore extends ModelePDFSupplierProposal } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show payments table @@ -715,7 +716,7 @@ class pdf_aurore extends ModelePDFSupplierProposal // phpcs:enable } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show miscellaneous information (payment mode, payment term, ...) @@ -883,7 +884,7 @@ class pdf_aurore extends ModelePDFSupplierProposal return $posy; } - + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** * Show total to pay @@ -1157,6 +1158,7 @@ class pdf_aurore extends ModelePDFSupplierProposal return ($tab2_top + ($tab2_hl * $index)); } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show table for lines * @@ -1262,6 +1264,7 @@ class pdf_aurore extends ModelePDFSupplierProposal } } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show top header of page. * @@ -1479,6 +1482,7 @@ class pdf_aurore extends ModelePDFSupplierProposal return $top_shift; } + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Show footer of page. Need this->emetteur object * From 446f0590dc328b69a13ec3e588e92b083f0df49d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Aug 2019 13:45:04 +0200 Subject: [PATCH 482/944] FIX VAT number for Monaco (it uses FR) --- htdocs/core/lib/functions2.lib.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 2f01cf441db..b4c8f6bf011 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -576,6 +576,7 @@ function isValidVATID($company) { $vatprefix = $company->country_code; if ($vatprefix == 'GR') $vatprefix = '(EL|GR)'; + elseif ($vatprefix == 'MC') $vatprefix = 'FR'; // Monaco is using french VAT numbers else $vatprefix = preg_quote($vatprefix, '/'); if (! preg_match('/^'.$vatprefix.'[a-zA-Z0-9\-\.]{5,14}$/i', str_replace(' ', '', $company->tva_intra))) { From 5346135a0cf430335825e4a3e00a158ae5927d58 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Aug 2019 17:12:17 +0200 Subject: [PATCH 483/944] Fix removed duplicate load --- htdocs/core/website.inc.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/htdocs/core/website.inc.php b/htdocs/core/website.inc.php index 138f96fc7f3..4114fff00b7 100644 --- a/htdocs/core/website.inc.php +++ b/htdocs/core/website.inc.php @@ -93,6 +93,3 @@ if ($_SERVER['PHP_SELF'] != DOL_URL_ROOT.'/website/index.php') // If we browsing } } } - -// Load websitepage class -include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; From 7dab396d08e3958447b8bb63474c364d78db6efc Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Mon, 12 Aug 2019 17:29:25 +0200 Subject: [PATCH 484/944] Fix: error creating a budget from an intervention --- htdocs/comm/propal/class/propal.class.php | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 7a24fad83af..1bf1e5a6a69 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -6,7 +6,7 @@ * Copyright (C) 2005-2013 Regis Houssin * Copyright (C) 2006 Andre Cianfarani * Copyright (C) 2008 Raphael Bertrand - * Copyright (C) 2010-2014 Juanjo Menent + * Copyright (C) 2010-2019 Juanjo Menent * Copyright (C) 2010-2017 Philippe Grand * Copyright (C) 2012-2014 Christophe Battarel * Copyright (C) 2012 Cedric Salvador @@ -1056,14 +1056,6 @@ class Propal extends CommonObject } } - // Add linked object (deprecated, use ->linkedObjectsIds instead) - if (! $error && $this->origin && $this->origin_id) - { - dol_syslog('Deprecated use of linked object, use ->linkedObjectsIds instead', LOG_WARNING); - $ret = $this->add_object_linked(); - if (! $ret) dol_print_error($this->db); - } - /* * Insertion du detail des produits dans la base * Insert products detail in database From b3e9cf3be742ee4985d61a6c331b7542c9466455 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Aug 2019 17:37:23 +0200 Subject: [PATCH 485/944] Sync transifex --- htdocs/langs/ar_SA/accountancy.lang | 5 +- htdocs/langs/ar_SA/admin.lang | 27 +- htdocs/langs/ar_SA/bills.lang | 15 + htdocs/langs/ar_SA/errors.lang | 3 +- htdocs/langs/ar_SA/main.lang | 2 + htdocs/langs/ar_SA/products.lang | 1 + htdocs/langs/ar_SA/stripe.lang | 2 + htdocs/langs/ar_SA/withdrawals.lang | 3 +- htdocs/langs/bg_BG/accountancy.lang | 601 +++++++++++----------- htdocs/langs/bg_BG/admin.lang | 65 ++- htdocs/langs/bg_BG/agenda.lang | 14 +- htdocs/langs/bg_BG/assets.lang | 10 +- htdocs/langs/bg_BG/bills.lang | 127 +++-- htdocs/langs/bg_BG/blockedlog.lang | 2 +- htdocs/langs/bg_BG/boxes.lang | 50 +- htdocs/langs/bg_BG/cashdesk.lang | 4 +- htdocs/langs/bg_BG/companies.lang | 242 ++++----- htdocs/langs/bg_BG/contracts.lang | 2 +- htdocs/langs/bg_BG/donations.lang | 32 +- htdocs/langs/bg_BG/errors.lang | 9 +- htdocs/langs/bg_BG/exports.lang | 140 ++--- htdocs/langs/bg_BG/holiday.lang | 4 +- htdocs/langs/bg_BG/install.lang | 320 ++++++------ htdocs/langs/bg_BG/loan.lang | 50 +- htdocs/langs/bg_BG/mails.lang | 4 +- htdocs/langs/bg_BG/main.lang | 8 +- htdocs/langs/bg_BG/members.lang | 6 +- htdocs/langs/bg_BG/oauth.lang | 58 +-- htdocs/langs/bg_BG/opensurvey.lang | 68 +-- htdocs/langs/bg_BG/orders.lang | 32 +- htdocs/langs/bg_BG/other.lang | 132 ++--- htdocs/langs/bg_BG/products.lang | 121 ++--- htdocs/langs/bg_BG/projects.lang | 106 ++-- htdocs/langs/bg_BG/propal.lang | 28 +- htdocs/langs/bg_BG/sendings.lang | 84 +-- htdocs/langs/bg_BG/stocks.lang | 84 +-- htdocs/langs/bg_BG/stripe.lang | 2 + htdocs/langs/bg_BG/supplier_proposal.lang | 2 +- htdocs/langs/bg_BG/ticket.lang | 110 ++-- htdocs/langs/bg_BG/users.lang | 34 +- htdocs/langs/bg_BG/withdrawals.lang | 3 +- htdocs/langs/bg_BG/workflow.lang | 4 +- htdocs/langs/bn_BD/accountancy.lang | 5 +- htdocs/langs/bn_BD/admin.lang | 27 +- htdocs/langs/bn_BD/bills.lang | 15 + htdocs/langs/bn_BD/errors.lang | 3 +- htdocs/langs/bn_BD/main.lang | 2 + htdocs/langs/bn_BD/products.lang | 1 + htdocs/langs/bn_BD/stripe.lang | 2 + htdocs/langs/bn_BD/withdrawals.lang | 3 +- htdocs/langs/bs_BA/accountancy.lang | 5 +- htdocs/langs/bs_BA/admin.lang | 27 +- htdocs/langs/bs_BA/bills.lang | 15 + htdocs/langs/bs_BA/errors.lang | 3 +- htdocs/langs/bs_BA/main.lang | 2 + htdocs/langs/bs_BA/products.lang | 1 + htdocs/langs/bs_BA/stripe.lang | 2 + htdocs/langs/bs_BA/withdrawals.lang | 3 +- htdocs/langs/ca_ES/accountancy.lang | 5 +- htdocs/langs/ca_ES/admin.lang | 27 +- htdocs/langs/ca_ES/bills.lang | 15 + htdocs/langs/ca_ES/errors.lang | 3 +- htdocs/langs/ca_ES/main.lang | 2 + htdocs/langs/ca_ES/products.lang | 1 + htdocs/langs/ca_ES/stripe.lang | 2 + htdocs/langs/ca_ES/withdrawals.lang | 3 +- htdocs/langs/cs_CZ/accountancy.lang | 5 +- htdocs/langs/cs_CZ/admin.lang | 27 +- htdocs/langs/cs_CZ/bills.lang | 15 + htdocs/langs/cs_CZ/errors.lang | 3 +- htdocs/langs/cs_CZ/main.lang | 2 + htdocs/langs/cs_CZ/products.lang | 1 + htdocs/langs/cs_CZ/stripe.lang | 2 + htdocs/langs/cs_CZ/withdrawals.lang | 3 +- htdocs/langs/da_DK/accountancy.lang | 5 +- htdocs/langs/da_DK/admin.lang | 27 +- htdocs/langs/da_DK/bills.lang | 15 + htdocs/langs/da_DK/errors.lang | 3 +- htdocs/langs/da_DK/main.lang | 2 + htdocs/langs/da_DK/products.lang | 1 + htdocs/langs/da_DK/stripe.lang | 2 + htdocs/langs/da_DK/withdrawals.lang | 3 +- htdocs/langs/de_AT/admin.lang | 1 - htdocs/langs/de_AT/withdrawals.lang | 1 - htdocs/langs/de_CH/accountancy.lang | 11 +- htdocs/langs/de_CH/admin.lang | 5 +- htdocs/langs/de_CH/bills.lang | 4 +- htdocs/langs/de_CH/companies.lang | 10 +- htdocs/langs/de_CH/compta.lang | 2 +- htdocs/langs/de_CH/errors.lang | 1 - htdocs/langs/de_CH/main.lang | 3 +- htdocs/langs/de_CH/members.lang | 3 + htdocs/langs/de_CH/supplier_proposal.lang | 18 +- htdocs/langs/de_CH/ticket.lang | 1 + htdocs/langs/de_CH/users.lang | 4 +- htdocs/langs/de_CH/withdrawals.lang | 1 - htdocs/langs/de_DE/accountancy.lang | 5 +- htdocs/langs/de_DE/admin.lang | 37 +- htdocs/langs/de_DE/bills.lang | 15 + htdocs/langs/de_DE/boxes.lang | 8 +- htdocs/langs/de_DE/errors.lang | 3 +- htdocs/langs/de_DE/main.lang | 12 +- htdocs/langs/de_DE/products.lang | 1 + htdocs/langs/de_DE/stripe.lang | 2 + htdocs/langs/de_DE/withdrawals.lang | 3 +- htdocs/langs/el_GR/accountancy.lang | 5 +- htdocs/langs/el_GR/admin.lang | 27 +- htdocs/langs/el_GR/bills.lang | 15 + htdocs/langs/el_GR/errors.lang | 3 +- htdocs/langs/el_GR/main.lang | 2 + htdocs/langs/el_GR/products.lang | 1 + htdocs/langs/el_GR/stripe.lang | 2 + htdocs/langs/el_GR/withdrawals.lang | 3 +- htdocs/langs/en_AU/admin.lang | 6 +- htdocs/langs/en_AU/withdrawals.lang | 2 +- htdocs/langs/en_CA/admin.lang | 6 +- htdocs/langs/en_GB/accountancy.lang | 1 - htdocs/langs/en_GB/admin.lang | 6 +- htdocs/langs/en_GB/withdrawals.lang | 4 +- htdocs/langs/en_IN/admin.lang | 6 +- htdocs/langs/es_CL/admin.lang | 10 - htdocs/langs/es_CO/admin.lang | 6 - htdocs/langs/es_DO/admin.lang | 2 - htdocs/langs/es_EC/admin.lang | 6 - htdocs/langs/es_ES/accountancy.lang | 5 +- htdocs/langs/es_ES/admin.lang | 27 +- htdocs/langs/es_ES/bills.lang | 15 + htdocs/langs/es_ES/errors.lang | 3 +- htdocs/langs/es_ES/main.lang | 2 + htdocs/langs/es_ES/products.lang | 1 + htdocs/langs/es_ES/stripe.lang | 2 + htdocs/langs/es_ES/withdrawals.lang | 3 +- htdocs/langs/es_MX/accountancy.lang | 1 - htdocs/langs/es_MX/admin.lang | 47 +- htdocs/langs/es_PA/admin.lang | 2 - htdocs/langs/es_PE/accountancy.lang | 1 - htdocs/langs/es_PE/admin.lang | 2 - htdocs/langs/es_VE/admin.lang | 2 - htdocs/langs/et_EE/accountancy.lang | 5 +- htdocs/langs/et_EE/admin.lang | 27 +- htdocs/langs/et_EE/bills.lang | 15 + htdocs/langs/et_EE/errors.lang | 3 +- htdocs/langs/et_EE/main.lang | 2 + htdocs/langs/et_EE/products.lang | 1 + htdocs/langs/et_EE/stripe.lang | 2 + htdocs/langs/et_EE/withdrawals.lang | 3 +- htdocs/langs/eu_ES/accountancy.lang | 5 +- htdocs/langs/eu_ES/admin.lang | 27 +- htdocs/langs/eu_ES/bills.lang | 15 + htdocs/langs/eu_ES/errors.lang | 3 +- htdocs/langs/eu_ES/main.lang | 2 + htdocs/langs/eu_ES/products.lang | 1 + htdocs/langs/eu_ES/stripe.lang | 2 + htdocs/langs/eu_ES/withdrawals.lang | 3 +- htdocs/langs/fa_IR/accountancy.lang | 5 +- htdocs/langs/fa_IR/admin.lang | 27 +- htdocs/langs/fa_IR/bills.lang | 15 + htdocs/langs/fa_IR/errors.lang | 3 +- htdocs/langs/fa_IR/main.lang | 2 + htdocs/langs/fa_IR/products.lang | 1 + htdocs/langs/fa_IR/stripe.lang | 2 + htdocs/langs/fa_IR/withdrawals.lang | 3 +- htdocs/langs/fi_FI/accountancy.lang | 5 +- htdocs/langs/fi_FI/admin.lang | 27 +- htdocs/langs/fi_FI/bills.lang | 15 + htdocs/langs/fi_FI/errors.lang | 3 +- htdocs/langs/fi_FI/main.lang | 2 + htdocs/langs/fi_FI/products.lang | 1 + htdocs/langs/fi_FI/stripe.lang | 2 + htdocs/langs/fi_FI/withdrawals.lang | 3 +- htdocs/langs/fr_BE/accountancy.lang | 1 - htdocs/langs/fr_BE/admin.lang | 6 +- htdocs/langs/fr_BE/withdrawals.lang | 1 + htdocs/langs/fr_CA/accountancy.lang | 1 - htdocs/langs/fr_CA/admin.lang | 7 +- htdocs/langs/fr_CA/errors.lang | 1 - htdocs/langs/fr_CA/withdrawals.lang | 10 +- htdocs/langs/fr_FR/accountancy.lang | 7 +- htdocs/langs/fr_FR/admin.lang | 27 +- htdocs/langs/fr_FR/agenda.lang | 6 +- htdocs/langs/fr_FR/bills.lang | 16 +- htdocs/langs/fr_FR/errors.lang | 3 +- htdocs/langs/fr_FR/main.lang | 2 + htdocs/langs/fr_FR/members.lang | 8 +- htdocs/langs/fr_FR/products.lang | 1 + htdocs/langs/fr_FR/stripe.lang | 2 + htdocs/langs/fr_FR/website.lang | 4 +- htdocs/langs/fr_FR/withdrawals.lang | 3 +- htdocs/langs/he_IL/accountancy.lang | 5 +- htdocs/langs/he_IL/admin.lang | 27 +- htdocs/langs/he_IL/bills.lang | 15 + htdocs/langs/he_IL/errors.lang | 3 +- htdocs/langs/he_IL/main.lang | 2 + htdocs/langs/he_IL/products.lang | 1 + htdocs/langs/he_IL/stripe.lang | 2 + htdocs/langs/he_IL/withdrawals.lang | 3 +- htdocs/langs/hr_HR/accountancy.lang | 5 +- htdocs/langs/hr_HR/admin.lang | 129 ++--- htdocs/langs/hr_HR/agenda.lang | 4 +- htdocs/langs/hr_HR/banks.lang | 6 +- htdocs/langs/hr_HR/bills.lang | 61 ++- htdocs/langs/hr_HR/bookmarks.lang | 18 +- htdocs/langs/hr_HR/boxes.lang | 2 +- htdocs/langs/hr_HR/categories.lang | 6 +- htdocs/langs/hr_HR/commercial.lang | 16 +- htdocs/langs/hr_HR/companies.lang | 54 +- htdocs/langs/hr_HR/compta.lang | 10 +- htdocs/langs/hr_HR/cron.lang | 12 +- htdocs/langs/hr_HR/donations.lang | 6 +- htdocs/langs/hr_HR/errors.lang | 5 +- htdocs/langs/hr_HR/exports.lang | 100 ++-- htdocs/langs/hr_HR/help.lang | 6 +- htdocs/langs/hr_HR/holiday.lang | 2 +- htdocs/langs/hr_HR/install.lang | 2 +- htdocs/langs/hr_HR/interventions.lang | 4 +- htdocs/langs/hr_HR/main.lang | 28 +- htdocs/langs/hr_HR/margins.lang | 6 +- htdocs/langs/hr_HR/members.lang | 10 +- htdocs/langs/hr_HR/opensurvey.lang | 14 +- htdocs/langs/hr_HR/orders.lang | 12 +- htdocs/langs/hr_HR/printing.lang | 14 +- htdocs/langs/hr_HR/products.lang | 9 +- htdocs/langs/hr_HR/projects.lang | 4 +- htdocs/langs/hr_HR/propal.lang | 2 +- htdocs/langs/hr_HR/resource.lang | 6 +- htdocs/langs/hr_HR/sendings.lang | 32 +- htdocs/langs/hr_HR/stripe.lang | 2 + htdocs/langs/hr_HR/supplier_proposal.lang | 6 +- htdocs/langs/hr_HR/suppliers.lang | 20 +- htdocs/langs/hr_HR/ticket.lang | 4 +- htdocs/langs/hr_HR/trips.lang | 4 +- htdocs/langs/hr_HR/users.lang | 8 +- htdocs/langs/hr_HR/withdrawals.lang | 3 +- htdocs/langs/hu_HU/accountancy.lang | 5 +- htdocs/langs/hu_HU/admin.lang | 27 +- htdocs/langs/hu_HU/bills.lang | 15 + htdocs/langs/hu_HU/errors.lang | 3 +- htdocs/langs/hu_HU/main.lang | 2 + htdocs/langs/hu_HU/products.lang | 1 + htdocs/langs/hu_HU/stripe.lang | 2 + htdocs/langs/hu_HU/withdrawals.lang | 3 +- htdocs/langs/id_ID/accountancy.lang | 5 +- htdocs/langs/id_ID/admin.lang | 27 +- htdocs/langs/id_ID/bills.lang | 15 + htdocs/langs/id_ID/errors.lang | 3 +- htdocs/langs/id_ID/main.lang | 2 + htdocs/langs/id_ID/products.lang | 1 + htdocs/langs/id_ID/stripe.lang | 2 + htdocs/langs/id_ID/withdrawals.lang | 3 +- htdocs/langs/is_IS/accountancy.lang | 5 +- htdocs/langs/is_IS/admin.lang | 27 +- htdocs/langs/is_IS/bills.lang | 15 + htdocs/langs/is_IS/errors.lang | 3 +- htdocs/langs/is_IS/main.lang | 2 + htdocs/langs/is_IS/products.lang | 1 + htdocs/langs/is_IS/stripe.lang | 2 + htdocs/langs/is_IS/withdrawals.lang | 3 +- htdocs/langs/it_IT/accountancy.lang | 5 +- htdocs/langs/it_IT/admin.lang | 51 +- htdocs/langs/it_IT/bills.lang | 25 +- htdocs/langs/it_IT/boxes.lang | 14 +- htdocs/langs/it_IT/companies.lang | 10 +- htdocs/langs/it_IT/errors.lang | 9 +- htdocs/langs/it_IT/main.lang | 10 +- htdocs/langs/it_IT/members.lang | 2 +- htdocs/langs/it_IT/orders.lang | 10 +- htdocs/langs/it_IT/other.lang | 8 +- htdocs/langs/it_IT/products.lang | 1 + htdocs/langs/it_IT/stripe.lang | 2 + htdocs/langs/it_IT/users.lang | 2 +- htdocs/langs/it_IT/withdrawals.lang | 5 +- htdocs/langs/ja_JP/accountancy.lang | 5 +- htdocs/langs/ja_JP/admin.lang | 27 +- htdocs/langs/ja_JP/bills.lang | 15 + htdocs/langs/ja_JP/errors.lang | 3 +- htdocs/langs/ja_JP/main.lang | 2 + htdocs/langs/ja_JP/products.lang | 1 + htdocs/langs/ja_JP/stripe.lang | 2 + htdocs/langs/ja_JP/withdrawals.lang | 3 +- htdocs/langs/ka_GE/accountancy.lang | 5 +- htdocs/langs/ka_GE/admin.lang | 27 +- htdocs/langs/ka_GE/bills.lang | 15 + htdocs/langs/ka_GE/errors.lang | 3 +- htdocs/langs/ka_GE/main.lang | 2 + htdocs/langs/ka_GE/products.lang | 1 + htdocs/langs/ka_GE/stripe.lang | 2 + htdocs/langs/ka_GE/withdrawals.lang | 3 +- htdocs/langs/km_KH/main.lang | 2 + htdocs/langs/kn_IN/accountancy.lang | 5 +- htdocs/langs/kn_IN/admin.lang | 27 +- htdocs/langs/kn_IN/bills.lang | 15 + htdocs/langs/kn_IN/errors.lang | 3 +- htdocs/langs/kn_IN/main.lang | 2 + htdocs/langs/kn_IN/products.lang | 1 + htdocs/langs/kn_IN/stripe.lang | 2 + htdocs/langs/kn_IN/withdrawals.lang | 3 +- htdocs/langs/ko_KR/accountancy.lang | 5 +- htdocs/langs/ko_KR/admin.lang | 27 +- htdocs/langs/ko_KR/bills.lang | 15 + htdocs/langs/ko_KR/errors.lang | 3 +- htdocs/langs/ko_KR/main.lang | 2 + htdocs/langs/ko_KR/products.lang | 1 + htdocs/langs/ko_KR/stripe.lang | 2 + htdocs/langs/ko_KR/withdrawals.lang | 3 +- htdocs/langs/lo_LA/accountancy.lang | 5 +- htdocs/langs/lo_LA/admin.lang | 27 +- htdocs/langs/lo_LA/bills.lang | 15 + htdocs/langs/lo_LA/errors.lang | 3 +- htdocs/langs/lo_LA/main.lang | 2 + htdocs/langs/lo_LA/products.lang | 1 + htdocs/langs/lo_LA/stripe.lang | 2 + htdocs/langs/lo_LA/withdrawals.lang | 3 +- htdocs/langs/lt_LT/accountancy.lang | 5 +- htdocs/langs/lt_LT/admin.lang | 27 +- htdocs/langs/lt_LT/bills.lang | 15 + htdocs/langs/lt_LT/errors.lang | 3 +- htdocs/langs/lt_LT/main.lang | 2 + htdocs/langs/lt_LT/products.lang | 1 + htdocs/langs/lt_LT/stripe.lang | 2 + htdocs/langs/lt_LT/withdrawals.lang | 3 +- htdocs/langs/lv_LV/accountancy.lang | 5 +- htdocs/langs/lv_LV/admin.lang | 35 +- htdocs/langs/lv_LV/banks.lang | 10 +- htdocs/langs/lv_LV/bills.lang | 47 +- htdocs/langs/lv_LV/companies.lang | 4 +- htdocs/langs/lv_LV/compta.lang | 22 +- htdocs/langs/lv_LV/dict.lang | 2 +- htdocs/langs/lv_LV/ecm.lang | 2 +- htdocs/langs/lv_LV/errors.lang | 7 +- htdocs/langs/lv_LV/exports.lang | 28 +- htdocs/langs/lv_LV/help.lang | 2 +- htdocs/langs/lv_LV/holiday.lang | 6 +- htdocs/langs/lv_LV/install.lang | 4 +- htdocs/langs/lv_LV/main.lang | 2 + htdocs/langs/lv_LV/products.lang | 1 + htdocs/langs/lv_LV/stripe.lang | 2 + htdocs/langs/lv_LV/withdrawals.lang | 3 +- htdocs/langs/mk_MK/accountancy.lang | 5 +- htdocs/langs/mk_MK/admin.lang | 27 +- htdocs/langs/mk_MK/bills.lang | 15 + htdocs/langs/mk_MK/errors.lang | 3 +- htdocs/langs/mk_MK/main.lang | 2 + htdocs/langs/mk_MK/products.lang | 1 + htdocs/langs/mk_MK/stripe.lang | 2 + htdocs/langs/mk_MK/withdrawals.lang | 3 +- htdocs/langs/mn_MN/accountancy.lang | 5 +- htdocs/langs/mn_MN/admin.lang | 27 +- htdocs/langs/mn_MN/bills.lang | 15 + htdocs/langs/mn_MN/errors.lang | 3 +- htdocs/langs/mn_MN/main.lang | 2 + htdocs/langs/mn_MN/products.lang | 1 + htdocs/langs/mn_MN/stripe.lang | 2 + htdocs/langs/mn_MN/withdrawals.lang | 3 +- htdocs/langs/nb_NO/accountancy.lang | 5 +- htdocs/langs/nb_NO/admin.lang | 27 +- htdocs/langs/nb_NO/bills.lang | 15 + htdocs/langs/nb_NO/errors.lang | 3 +- htdocs/langs/nb_NO/main.lang | 2 + htdocs/langs/nb_NO/products.lang | 1 + htdocs/langs/nb_NO/stripe.lang | 2 + htdocs/langs/nb_NO/withdrawals.lang | 3 +- htdocs/langs/nl_NL/accountancy.lang | 5 +- htdocs/langs/nl_NL/admin.lang | 27 +- htdocs/langs/nl_NL/bills.lang | 15 + htdocs/langs/nl_NL/errors.lang | 3 +- htdocs/langs/nl_NL/main.lang | 2 + htdocs/langs/nl_NL/products.lang | 1 + htdocs/langs/nl_NL/stripe.lang | 2 + htdocs/langs/nl_NL/withdrawals.lang | 3 +- htdocs/langs/pl_PL/accountancy.lang | 5 +- htdocs/langs/pl_PL/admin.lang | 27 +- htdocs/langs/pl_PL/bills.lang | 17 +- htdocs/langs/pl_PL/errors.lang | 3 +- htdocs/langs/pl_PL/main.lang | 2 + htdocs/langs/pl_PL/products.lang | 1 + htdocs/langs/pl_PL/stripe.lang | 2 + htdocs/langs/pl_PL/withdrawals.lang | 3 +- htdocs/langs/pt_BR/accountancy.lang | 4 +- htdocs/langs/pt_BR/admin.lang | 30 +- htdocs/langs/pt_BR/agenda.lang | 1 - htdocs/langs/pt_BR/banks.lang | 7 +- htdocs/langs/pt_BR/deliveries.lang | 5 +- htdocs/langs/pt_BR/errors.lang | 1 - htdocs/langs/pt_BR/paypal.lang | 1 + htdocs/langs/pt_BR/products.lang | 3 + htdocs/langs/pt_BR/website.lang | 4 + htdocs/langs/pt_BR/withdrawals.lang | 7 +- htdocs/langs/pt_PT/accountancy.lang | 5 +- htdocs/langs/pt_PT/admin.lang | 27 +- htdocs/langs/pt_PT/bills.lang | 15 + htdocs/langs/pt_PT/errors.lang | 3 +- htdocs/langs/pt_PT/main.lang | 2 + htdocs/langs/pt_PT/products.lang | 1 + htdocs/langs/pt_PT/stripe.lang | 2 + htdocs/langs/pt_PT/withdrawals.lang | 3 +- htdocs/langs/ro_RO/accountancy.lang | 5 +- htdocs/langs/ro_RO/admin.lang | 27 +- htdocs/langs/ro_RO/bills.lang | 15 + htdocs/langs/ro_RO/errors.lang | 3 +- htdocs/langs/ro_RO/main.lang | 2 + htdocs/langs/ro_RO/products.lang | 1 + htdocs/langs/ro_RO/stripe.lang | 2 + htdocs/langs/ro_RO/withdrawals.lang | 3 +- htdocs/langs/ru_RU/accountancy.lang | 5 +- htdocs/langs/ru_RU/admin.lang | 27 +- htdocs/langs/ru_RU/bills.lang | 15 + htdocs/langs/ru_RU/errors.lang | 3 +- htdocs/langs/ru_RU/main.lang | 2 + htdocs/langs/ru_RU/products.lang | 1 + htdocs/langs/ru_RU/stripe.lang | 2 + htdocs/langs/ru_RU/withdrawals.lang | 3 +- htdocs/langs/sk_SK/accountancy.lang | 5 +- htdocs/langs/sk_SK/admin.lang | 27 +- htdocs/langs/sk_SK/bills.lang | 15 + htdocs/langs/sk_SK/errors.lang | 3 +- htdocs/langs/sk_SK/main.lang | 2 + htdocs/langs/sk_SK/products.lang | 1 + htdocs/langs/sk_SK/stripe.lang | 2 + htdocs/langs/sk_SK/withdrawals.lang | 3 +- htdocs/langs/sl_SI/accountancy.lang | 5 +- htdocs/langs/sl_SI/admin.lang | 27 +- htdocs/langs/sl_SI/bills.lang | 15 + htdocs/langs/sl_SI/errors.lang | 3 +- htdocs/langs/sl_SI/main.lang | 2 + htdocs/langs/sl_SI/products.lang | 1 + htdocs/langs/sl_SI/stripe.lang | 2 + htdocs/langs/sl_SI/withdrawals.lang | 3 +- htdocs/langs/sq_AL/accountancy.lang | 5 +- htdocs/langs/sq_AL/admin.lang | 27 +- htdocs/langs/sq_AL/bills.lang | 15 + htdocs/langs/sq_AL/errors.lang | 3 +- htdocs/langs/sq_AL/main.lang | 2 + htdocs/langs/sq_AL/products.lang | 1 + htdocs/langs/sq_AL/stripe.lang | 2 + htdocs/langs/sq_AL/withdrawals.lang | 3 +- htdocs/langs/sr_RS/accountancy.lang | 5 +- htdocs/langs/sr_RS/admin.lang | 27 +- htdocs/langs/sr_RS/bills.lang | 15 + htdocs/langs/sr_RS/errors.lang | 3 +- htdocs/langs/sr_RS/main.lang | 2 + htdocs/langs/sr_RS/products.lang | 1 + htdocs/langs/sr_RS/withdrawals.lang | 3 +- htdocs/langs/sv_SE/accountancy.lang | 5 +- htdocs/langs/sv_SE/admin.lang | 27 +- htdocs/langs/sv_SE/bills.lang | 15 + htdocs/langs/sv_SE/errors.lang | 3 +- htdocs/langs/sv_SE/main.lang | 2 + htdocs/langs/sv_SE/products.lang | 1 + htdocs/langs/sv_SE/stripe.lang | 2 + htdocs/langs/sv_SE/withdrawals.lang | 3 +- htdocs/langs/sw_SW/accountancy.lang | 5 +- htdocs/langs/sw_SW/admin.lang | 27 +- htdocs/langs/sw_SW/bills.lang | 15 + htdocs/langs/sw_SW/errors.lang | 3 +- htdocs/langs/sw_SW/main.lang | 2 + htdocs/langs/sw_SW/products.lang | 1 + htdocs/langs/sw_SW/withdrawals.lang | 3 +- htdocs/langs/th_TH/accountancy.lang | 5 +- htdocs/langs/th_TH/admin.lang | 27 +- htdocs/langs/th_TH/bills.lang | 15 + htdocs/langs/th_TH/errors.lang | 3 +- htdocs/langs/th_TH/main.lang | 2 + htdocs/langs/th_TH/products.lang | 1 + htdocs/langs/th_TH/stripe.lang | 2 + htdocs/langs/th_TH/withdrawals.lang | 3 +- htdocs/langs/tr_TR/accountancy.lang | 5 +- htdocs/langs/tr_TR/admin.lang | 27 +- htdocs/langs/tr_TR/bills.lang | 15 + htdocs/langs/tr_TR/errors.lang | 3 +- htdocs/langs/tr_TR/main.lang | 2 + htdocs/langs/tr_TR/products.lang | 1 + htdocs/langs/tr_TR/stripe.lang | 2 + htdocs/langs/tr_TR/withdrawals.lang | 3 +- htdocs/langs/uk_UA/accountancy.lang | 5 +- htdocs/langs/uk_UA/admin.lang | 27 +- htdocs/langs/uk_UA/bills.lang | 15 + htdocs/langs/uk_UA/errors.lang | 3 +- htdocs/langs/uk_UA/main.lang | 2 + htdocs/langs/uk_UA/products.lang | 1 + htdocs/langs/uk_UA/stripe.lang | 2 + htdocs/langs/uk_UA/withdrawals.lang | 3 +- htdocs/langs/uz_UZ/accountancy.lang | 5 +- htdocs/langs/uz_UZ/admin.lang | 27 +- htdocs/langs/uz_UZ/bills.lang | 15 + htdocs/langs/uz_UZ/errors.lang | 3 +- htdocs/langs/uz_UZ/main.lang | 2 + htdocs/langs/uz_UZ/products.lang | 1 + htdocs/langs/uz_UZ/withdrawals.lang | 3 +- htdocs/langs/vi_VN/accountancy.lang | 5 +- htdocs/langs/vi_VN/admin.lang | 27 +- htdocs/langs/vi_VN/bills.lang | 15 + htdocs/langs/vi_VN/errors.lang | 3 +- htdocs/langs/vi_VN/main.lang | 2 + htdocs/langs/vi_VN/products.lang | 1 + htdocs/langs/vi_VN/stripe.lang | 2 + htdocs/langs/vi_VN/withdrawals.lang | 3 +- htdocs/langs/zh_CN/accountancy.lang | 5 +- htdocs/langs/zh_CN/admin.lang | 27 +- htdocs/langs/zh_CN/bills.lang | 15 + htdocs/langs/zh_CN/errors.lang | 3 +- htdocs/langs/zh_CN/main.lang | 2 + htdocs/langs/zh_CN/products.lang | 1 + htdocs/langs/zh_CN/stripe.lang | 2 + htdocs/langs/zh_CN/withdrawals.lang | 3 +- htdocs/langs/zh_TW/accountancy.lang | 5 +- htdocs/langs/zh_TW/admin.lang | 27 +- htdocs/langs/zh_TW/bills.lang | 15 + htdocs/langs/zh_TW/errors.lang | 3 +- htdocs/langs/zh_TW/main.lang | 2 + htdocs/langs/zh_TW/products.lang | 1 + htdocs/langs/zh_TW/stripe.lang | 2 + htdocs/langs/zh_TW/withdrawals.lang | 3 +- 512 files changed, 4027 insertions(+), 2421 deletions(-) diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang index 1cdb76f1100..923d4ec20e9 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=طبيعة +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=مبيعات AccountingJournalType3=مشتريات @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=الخيارات OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index 1cbca5d3f51..3169b9acfad 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -574,7 +574,7 @@ Module510Name=الرواتب Module510Desc=Record and track employee payments Module520Name=القروض Module520Desc=إدارة القروض -Module600Name=الإخطارات +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=سمات التكميلية (أوامر) ExtraFieldsSupplierInvoices=سمات التكميلية (الفواتير) ExtraFieldsProject=سمات التكميلية (مشاريع) ExtraFieldsProjectTask=سمات التكميلية (المهام) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=السمة %s له قيمة خاطئة. AlphaNumOnlyLowerCharsAndNoSpace=alphanumericals فقط وشخصيات الحالة الأدنى دون الفضاء SendmailOptionNotComplete=تحذير، في بعض أنظمة لينكس، لإرسال البريد الإلكتروني من البريد الإلكتروني الخاص بك، يجب أن تنسخ الإعداد تنفيذ conatins الخيار، على درجة البكالوريوس (mail.force_extra_parameters المعلمة في ملف php.ini الخاص بك). إذا كان بعض المستفيدين لم تلقي رسائل البريد الإلكتروني، في محاولة لتعديل هذه المعلمة PHP مع mail.force_extra_parameters =-BA). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=تخزين جلسة المشفرة بواسطة Suhosin ConditionIsCurrently=الشرط هو حاليا %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=البحث الأمثل -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug غير محملة. -XCacheInstalled=XCache غير محملة. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=تم تفعيل أي وحدة قادرة على إدارة زيادة المخزون التلقائي. وسوف يتم زيادة الأسهم على الإدخال اليدوي فقط. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=عتبة @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang index 2984cd416a7..793a1e530a1 100644 --- a/htdocs/langs/ar_SA/bills.lang +++ b/htdocs/langs/ar_SA/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=دفع أعلى من دفع تذكرة HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=تصنيف 'مدفوع' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=تصنيف 'مدفوع جزئيا' ClassifyCanceled=تصنيف 'المهجورة' ClassifyClosed=تصنيف 'مغلقة' @@ -214,6 +215,20 @@ ShowInvoiceReplace=وتظهر استبدال الفاتورة ShowInvoiceAvoir=وتظهر المذكرة الائتمان ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=وتظهر الدفع AlreadyPaid=دفعت بالفعل AlreadyPaidBack=دفعت بالفعل العودة diff --git a/htdocs/langs/ar_SA/errors.lang b/htdocs/langs/ar_SA/errors.lang index 87689d4edd1..7837448f102 100644 --- a/htdocs/langs/ar_SA/errors.lang +++ b/htdocs/langs/ar_SA/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=غير مسموح الأحرف الخاصة ErrorNumRefModel=إشارة إلى وجود قاعدة بيانات (%s) ، وغير متوافق مع هذه القاعدة الترقيم. سجل إزالة أو إعادة تسميته اشارة الى تفعيل هذه الوحدة. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=خطأ في قناع ErrorBadMaskFailedToLocatePosOfSequence=خطأ، من دون قناع رقم التسلسل ErrorBadMaskBadRazMonth=خطأ، قيمة إعادة سيئة @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index ec726e1e0c3..7a2c477c7d0 100644 --- a/htdocs/langs/ar_SA/main.lang +++ b/htdocs/langs/ar_SA/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=اتصالات / عناوين لهذا الطرف ا AddressesForCompany=عناوين لهذا الطرف الثالث ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=الأحداث عن هذا العضو ActionsOnProduct=Events about this product NActionsLate=٪ في وقت متأخر الصورة @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=إنشاء مشروع SetToDraft=العودة إلى مشروع ClickToEdit=انقر للتحرير diff --git a/htdocs/langs/ar_SA/products.lang b/htdocs/langs/ar_SA/products.lang index c7830aa9639..9087ef24c7d 100644 --- a/htdocs/langs/ar_SA/products.lang +++ b/htdocs/langs/ar_SA/products.lang @@ -2,6 +2,7 @@ ProductRef=مرجع المنتج ProductLabel=وصف المنتج ProductLabelTranslated=تسمية المنتج مترجمة +ProductDescription=Product description ProductDescriptionTranslated=ترجمة وصف المنتج ProductNoteTranslated=ترجمة مذكرة المنتج ProductServiceCard=منتجات / بطاقة الخدمات diff --git a/htdocs/langs/ar_SA/stripe.lang b/htdocs/langs/ar_SA/stripe.lang index 594741ab0e8..ad1b053be34 100644 --- a/htdocs/langs/ar_SA/stripe.lang +++ b/htdocs/langs/ar_SA/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/ar_SA/withdrawals.lang b/htdocs/langs/ar_SA/withdrawals.lang index da24cce0722..c0bd2dd5d6f 100644 --- a/htdocs/langs/ar_SA/withdrawals.lang +++ b/htdocs/langs/ar_SA/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=ملف الانسحاب SetToStatusSent=تعيين إلى حالة "المرسلة ملف" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=إحصاءات عن طريق وضع خطوط -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang index 671bcc70f07..2f8ed951db1 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -1,347 +1,348 @@ # Dolibarr language file - en_US - Accounting Expert -Accounting=Accounting -ACCOUNTING_EXPORT_SEPARATORCSV=Разделител за колона за експорт на файл -ACCOUNTING_EXPORT_DATE=Формат на дата за експорт на файл -ACCOUNTING_EXPORT_PIECE=Експортирай номера от частта -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Експортирай глобалния акаунт -ACCOUNTING_EXPORT_LABEL=Export label -ACCOUNTING_EXPORT_AMOUNT=Сума за износ -ACCOUNTING_EXPORT_DEVISE=Експортна валута -Selectformat=Избери формата за файла -ACCOUNTING_EXPORT_FORMAT=Избери формата за файла -ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type -ACCOUNTING_EXPORT_PREFIX_SPEC=Уточнете префикса за името на файла +Accounting=Счетоводство +ACCOUNTING_EXPORT_SEPARATORCSV=Разделител на колони в експортен файл +ACCOUNTING_EXPORT_DATE=Формат на дата в експортен файл +ACCOUNTING_EXPORT_PIECE=Експортиране на пореден номер +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Експортиране с глобална сметка +ACCOUNTING_EXPORT_LABEL=Етикет на експортиране +ACCOUNTING_EXPORT_AMOUNT=Сума за експортиране +ACCOUNTING_EXPORT_DEVISE=Валута за експортиране +Selectformat=Изберете формата за файла +ACCOUNTING_EXPORT_FORMAT=Изберете формата за файла +ACCOUNTING_EXPORT_ENDLINE=Изберете типа пренасяне на нов ред +ACCOUNTING_EXPORT_PREFIX_SPEC=Посочете префикса в името на файла ThisService=Тази услуга ThisProduct=Този продукт -DefaultForService=Default for service +DefaultForService=По подразбиране за услуга DefaultForProduct=По подразбиране за продукт -CantSuggest=Не мога да предложа -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s -ConfigAccountingExpert=Configuration of the module accounting expert +CantSuggest=Не може да се предложи +AccountancySetupDoneFromAccountancyMenu=Повечето настройки на счетоводството се извършват от менюто %s +ConfigAccountingExpert=Конфигурация на модул за експертно счетоводство Journalization=Осчетоводяване Journaux=Журнали -JournalFinancial=Financial journals -BackToChartofaccounts=Return chart of accounts -Chartofaccounts=Chart of accounts -CurrentDedicatedAccountingAccount=Current dedicated account -AssignDedicatedAccountingAccount=New account to assign -InvoiceLabel=Invoice label -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account +JournalFinancial=Финансови журнали +BackToChartofaccounts=Връщане към сметкоплана +Chartofaccounts=Сметкоплан +CurrentDedicatedAccountingAccount=Текуща специална сметка +AssignDedicatedAccountingAccount=Нова сметка за присвояване +InvoiceLabel=Етикет за фактура +OverviewOfAmountOfLinesNotBound=Преглед на количеството редове, които не са обвързани със счетоводна сметка +OverviewOfAmountOfLinesBound=Преглед на количеството редове, които вече са свързани към счетоводна сметка OtherInfo=Друга информация -DeleteCptCategory=Remove accounting account from group -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group? -JournalizationInLedgerStatus=Status of journalization -AlreadyInGeneralLedger=Already journalized in ledgers -NotYetInGeneralLedger=Not yet journalized in ledgers -GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group -DetailByAccount=Show detail by account -AccountWithNonZeroValues=Accounts with non-zero values -ListOfAccounts=List of accounts -CountriesInEEC=Countries in EEC -CountriesNotInEEC=Countries not in EEC -CountriesInEECExceptMe=Countries in EEC except %s -CountriesExceptMe=All countries except %s -AccountantFiles=Export accounting documents +DeleteCptCategory=Премахване на счетоводна сметка от група +ConfirmDeleteCptCategory=Сигурни ли сте, че искате да премахнете тази счетоводна сметка от групата счетоводни сметки? +JournalizationInLedgerStatus=Статус на осчетоводяване +AlreadyInGeneralLedger=Вече осчетоводено в главната счетоводна книга +NotYetInGeneralLedger=Все още не е осчетоводено в главната счетоводна книга +GroupIsEmptyCheckSetup=Групата е празна, проверете настройката на персонализираната счетоводна група +DetailByAccount=Показване на детайли по сметка +AccountWithNonZeroValues=Сметки с различни от нула стойности +ListOfAccounts=Списък на сметки +CountriesInEEC=Държави в ЕИО +CountriesNotInEEC=Държави извън ЕИО +CountriesInEECExceptMe=Държави в ЕИО, с изключение на %s +CountriesExceptMe=Всички държави с изключение на %s +AccountantFiles=Експортиране на счетоводни документи -MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup -MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup -MainAccountForUsersNotDefined=Main accounting account for users not defined in setup -MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup -MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup +MainAccountForCustomersNotDefined=Основна счетоводна сметка за клиенти, която не е дефинирана в настройката +MainAccountForSuppliersNotDefined=Основна счетоводна сметка за доставчици, която не е дефинирана в настройката +MainAccountForUsersNotDefined=Основна счетоводна сметка за потребители, която не е дефинирана в настройката +MainAccountForVatPaymentNotDefined=Основна счетоводна сметка за плащане на ДДС, която не е дефинирана в настройката +MainAccountForSubscriptionPaymentNotDefined=Основна счетоводна сметка за плащане на абонамент, която не е дефинирана в настройката -AccountancyArea=Accounting area -AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: -AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) -AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... +AccountancyArea=Секция за счетоводство +AccountancyAreaDescIntro=Използването на счетоводния модул се извършва на няколко стъпки: +AccountancyAreaDescActionOnce=Следните действия се изпълняват обикновено само веднъж или веднъж годишно... +AccountancyAreaDescActionOnceBis=Следващите стъпки трябва да се направят, за да ви спестят време в бъдеще, като ви предлагат правилната счетоводна сметка по подразбиране при извършване на осчетоводяване (добавяне на записи в журнали и в главната счетоводна книга) +AccountancyAreaDescActionFreq=Следните действия се изпълняват обикновено всеки месец, седмица или ден при много големи компании... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s -AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s -AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s +AccountancyAreaDescJournalSetup=СТЪПКА %s: Създайте или проверете съдържанието на списъка с журнали от меню %s +AccountancyAreaDescChartModel=СТЪПКА %s: Създайте модел на сметкоплана от меню %s +AccountancyAreaDescChart=СТЪПКА %s: Създайте или проверете съдържанието на вашият сметкоплан от меню %s -AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. -AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. -AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. -AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescVat=СТЪПКА %s: Определете счетоводните сметки за всяка ставка на ДДС. За това използвайте менюто %s. +AccountancyAreaDescDefault=СТЪПКА %s: Определете счетоводните сметки по подразбиране. За това използвайте менюто %s. +AccountancyAreaDescExpenseReport=СТЪПКА %s: Определете счетоводните сметки по подразбиране за всеки вид разходен отчет. За това използвайте менюто %s. +AccountancyAreaDescSal=СТЪПКА %s: Определете счетоводните сметки по подразбиране за плащане на заплати. За това използвайте менюто %s. +AccountancyAreaDescContrib=СТЪПКА %s: Определете счетоводните сметки по подразбиране за специални разходи (различни данъци). За това използвайте менюто %s. +AccountancyAreaDescDonation=СТЪПКА %s: Определете счетоводните сметки по подразбиране за дарения. За това използвайте менюто %s. +AccountancyAreaDescSubscription=СТЪПКА %s: Определете счетоводните сметки по подразбиране за членски внос. За това използвайте менюто %s. +AccountancyAreaDescMisc=СТЪПКА %s: Определете задължителната сметка по подразбиране и счетоводните сметки по подразбиране за различни транзакции. За това използвайте менюто %s. +AccountancyAreaDescLoan=СТЪПКА %s: Определете счетоводните сметки по подразбиране за кредити. За това използвайте менюто %s. +AccountancyAreaDescBank=СТЪПКА %s: Определете счетоводните сметки и кодът на журнала за всяка банка и финансови сметки. За това използвайте менюто %s. +AccountancyAreaDescProd=СТЪПКА %s: Определете счетоводните сметки за вашите продукти / услуги. За това използвайте менюто %s. -AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. -AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. +AccountancyAreaDescBind=СТЪПКА %s: Проверете обвързването между съществуващите %s реда и готовия счетоводен акаунт, така че системата да е в състояние да осчетоводи транзакции в главната счетоводна книга с едно кликване. Осъществете липсващите връзки. За това използвайте менюто %s. +AccountancyAreaDescWriteRecords=СТЪПКА %s: Запишете транзакции в главната счетоводна книга. За това влезте в меню %s и кликнете върху бутон %s. +AccountancyAreaDescAnalyze=СТЪПКА %s: Добавете или променете съществуващите транзакции и генерирайте отчети и експортни данни. -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. +AccountancyAreaDescClosePeriod=СТЪПКА %s: Приключете периода, за да не може да се правят промени в бъдеще. -TheJournalCodeIsNotDefinedOnSomeBankAccount=A mandatory step in setup was not complete (accounting code journal not defined for all bank accounts) -Selectchartofaccounts=Select active chart of accounts -ChangeAndLoad=Change and load -Addanaccount=Add an accounting account -AccountAccounting=Accounting account +TheJournalCodeIsNotDefinedOnSomeBankAccount=Задължителна стъпка в настройката не е завършена (счетоводен код на журнал не е определен за всички банкови сметки) +Selectchartofaccounts=Изберете активен сметкоплан +ChangeAndLoad=Променяне и зареждане +Addanaccount=Добавяне на счетоводна сметка +AccountAccounting=Счетоводна сметка AccountAccountingShort=Сметка -SubledgerAccount=Subledger account -SubledgerAccountLabel=Subledger account label -ShowAccountingAccount=Show accounting account -ShowAccountingJournal=Show accounting journal -AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Default accounts +SubledgerAccount=Счетоводна сметка +SubledgerAccountLabel=Етикет на счетоводна сметка +ShowAccountingAccount=Показване на счетоводна сметка +ShowAccountingJournal=Показване на счетоводен журнал +AccountAccountingSuggest=Предложена счетоводна сметка +MenuDefaultAccounts=Сметки по подразбиране MenuBankAccounts=Банкови сметки -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts -MenuProductsAccounts=Product accounts -MenuClosureAccounts=Closure accounts -ProductsBinding=Products accounts -TransferInAccounting=Transfer in accounting -RegistrationInAccounting=Registration in accounting -Binding=Binding to accounts -CustomersVentilation=Customer invoice binding -SuppliersVentilation=Vendor invoice binding -ExpenseReportsVentilation=Expense report binding -CreateMvts=Create new transaction -UpdateMvts=Modification of a transaction -ValidTransaction=Validate transaction -WriteBookKeeping=Register transactions in Ledger -Bookkeeping=Ledger -AccountBalance=Account balance -ObjectsRef=Source object ref -CAHTF=Total purchase vendor before tax -TotalExpenseReport=Total expense report -InvoiceLines=Lines of invoices to bind -InvoiceLinesDone=Bound lines of invoices -ExpenseReportLines=Lines of expense reports to bind -ExpenseReportLinesDone=Bound lines of expense reports -IntoAccount=Bind line with the accounting account +MenuVatAccounts=Сметки за ДДС +MenuTaxAccounts=Сметки за данъци +MenuExpenseReportAccounts=Сметки за разходни отчети +MenuLoanAccounts=Сметки за кредити +MenuProductsAccounts=Сметки за продукти +MenuClosureAccounts=Сметки за приключване +ProductsBinding=Сметки за продукти +TransferInAccounting=Трансфер към счетоводство +RegistrationInAccounting=Регистрация в счетоводство +Binding=Обвързване към сметки +CustomersVentilation=Обвързване на фактура за продажба +SuppliersVentilation=Обвързване на фактура за доставка +ExpenseReportsVentilation=Обвързващ на разходен отчет +CreateMvts=Създаване на нова транзакция +UpdateMvts=Променяне на транзакция +ValidTransaction=Валидиране на транзакция +WriteBookKeeping=Регистриране на транзакции в главната счетоводна книга +Bookkeeping=Главна счетоводна книга +AccountBalance=Салдо по сметка +ObjectsRef=Реф. източник на обект +CAHTF=Обща покупка от доставчик преди ДДС +TotalExpenseReport=Общ разходен отчет +InvoiceLines=Редове на фактури за свързване +InvoiceLinesDone=Свързани редове на фактури +ExpenseReportLines=Редове на разходни отчети за свързване +ExpenseReportLinesDone=Свързани редове на разходни отчети +IntoAccount=Свързване на ред със счетоводна сметка -Ventilate=Bind -LineId=Id line -Processing=Processing -EndProcessing=Process terminated. -SelectedLines=Selected lines -Lineofinvoice=Line of invoice -LineOfExpenseReport=Line of expense report -NoAccountSelected=No accounting account selected -VentilatedinAccount=Binded successfully to the accounting account -NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account -XLineFailedToBeBinded=%s products/services were not bound to any accounting account +Ventilate=Свързване +LineId=Идентификатор на ред +Processing=Обработване +EndProcessing=Обработването е прекратено. +SelectedLines=Избрани редове +Lineofinvoice=Ред на фактура +LineOfExpenseReport=Ред на разходен отчет +NoAccountSelected=Не е избрана счетоводна сметка +VentilatedinAccount=Успешно свързване към счетоводната сметка +NotVentilatedinAccount=Не е свързан със счетоводната сметка +XLineSuccessfullyBinded=%s продукти / услуги успешно са свързани към счетоводна сметка +XLineFailedToBeBinded=%s продукти / услуги, които не са свързани с нито една счетоводна сметка -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended: 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Брой елементи за свързване, показани на страница (препоръчително: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Започнете сортирането на страницата „За свързване“, използвайки най-новите елементи +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Започнете сортирането на страницата „Извършено свързване“, използвайки най-новите елементи -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) -ACCOUNTING_LENGTH_AACCOUNT=Дължина на счетоводните сметки на контрагенти (ако тук зададете стойност 6, сметка '401' ще се появи на екрана като '401000') -ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zeros at the end of an accounting account. Needed by some countries (like Switzerland). If set to off (default), you can set the following two parameters to ask the application to add virtual zeros. -BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account -ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal -ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties) +ACCOUNTING_LENGTH_DESCRIPTION=Съкращаване на описанието на продукти и услуги в списъци след х символа (препоръчително: 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Съкращаване на описанието на сметката на продукти и услуги в списъци след x символа (препоръчително: 50) +ACCOUNTING_LENGTH_GACCOUNT=Дължина на главните счетоводни сметки (ако тук зададете стойност "6", сметката "706" ще се появи на екрана като "706000") +ACCOUNTING_LENGTH_AACCOUNT=Дължина на счетоводните сметки на контрагенти (ако тук зададете стойност "6", сметката "401" ще се появи на екрана като "401000") +ACCOUNTING_MANAGE_ZERO=Разрешава управление на различен брой нули в края на счетоводна сметка. Необходимо е в някои страни като Швейцария. Ако е изключено (по подразбиране) може да зададете следните два параметъра, за да поискате от системата да добави виртуални нули. +BANK_DISABLE_DIRECT_INPUT=Деактивиране на директно добавяне на транзакция в банкова сметка +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Активиране на експортиране на журнали в състояние на чернова +ACCOUNTANCY_COMBO_FOR_AUX=Активиране на комбиниран списък за дъщерна сметка (може да създаде забавяне, ако имате много контрагенти) -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal -ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal -ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal +ACCOUNTING_SELL_JOURNAL=Журнал за продажби +ACCOUNTING_PURCHASE_JOURNAL=Журнал за покупки +ACCOUNTING_MISCELLANEOUS_JOURNAL=Общ журнал +ACCOUNTING_EXPENSEREPORT_JOURNAL=Журнал за разходни отчети +ACCOUNTING_SOCIAL_JOURNAL=Журнал за данъци +ACCOUNTING_HAS_NEW_JOURNAL=Има нов журнал -ACCOUNTING_RESULT_PROFIT=Result accounting account (Profit) -ACCOUNTING_RESULT_LOSS=Result accounting account (Loss) -ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Journal of closure +ACCOUNTING_RESULT_PROFIT=Счетоводна сметка за резултат (печалба) +ACCOUNTING_RESULT_LOSS=Счетоводна сметка за резултат (загуба) +ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Журнал за приключване -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transitional bank transfer -TransitionalAccount=Transitional bank transfer account +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Счетоводна сметка на преходен банков превод +TransitionalAccount=Преходна сметка за банков превод -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions +ACCOUNTING_ACCOUNT_SUSPENSE=Счетоводна сметка за изчакване +DONATION_ACCOUNTINGACCOUNT=Счетоводна сметка за регистриране на дарения +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Счетоводен акаунт за регистриране на членски внос -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Accounting account by default for the sold products in EEC (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Accounting account by default for the sold products export out of EEC (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Счетоводна сметка по подразбиране за закупени продукти (използва се, ако не е дефинирана в продуктовата карта) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за продадени продукти (използва се, ако не е дефинирана в продуктовата карта) +ACCOUNTING_PRODUCT_SOLD_INTRA_ACCOUNT=Счетоводна сметка по подразбиране за продадени продукти в ЕИО (използва се, ако не е дефинирана в продуктовата карта) +ACCOUNTING_PRODUCT_SOLD_EXPORT_ACCOUNT=Счетоводна сметка по подразбиране за продадени продукти извън ЕИО (използва се, ако не е дефинирана в продуктовата карта) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Счетоводна сметка по подразбиране за закупени услуги (използва се, ако не е дефинирана в картата на услугата) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Счетоводна сметка по подразбиране за продадени услуги (използва се, ако не е дефинирана в картата на услугата) -Doctype=Тип на документа +Doctype=Вид документ Docdate=Дата -Docref=Справка +Docref=Референция LabelAccount=Етикет на сметка -LabelOperation=Label operation -Sens=Sens -LetteringCode=Lettering code -Lettering=Lettering -Codejournal=Дневник -JournalLabel=Journal label -NumPiece=Номер на част -TransactionNumShort=Num. transaction -AccountingCategory=Personalized groups -GroupByAccountAccounting=Group by accounting account -AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports. -ByAccounts=By accounts -ByPredefinedAccountGroups=By predefined groups -ByPersonalizedAccountGroups=By personalized groups -ByYear=С години -NotMatch=Not Set -DeleteMvt=Delete Ledger lines -DelYear=Year to delete -DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criterion is required. -ConfirmDeleteMvtPartial=This will delete the transaction from the Ledger (all lines related to same transaction will be deleted) -FinanceJournal=Finance journal -ExpenseReportsJournal=Expense reports journal -DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined -ProductAccountNotDefined=Account for product not defined -FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined -CustomerInvoicePayment=Payment of invoice customer -ThirdPartyAccount=Сметка на контрагент -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements -ErrorDebitCredit=Debit and Credit cannot have a value at the same time -AddCompteFromBK=Add accounting accounts to the group -ReportThirdParty=Списък със сметки на контрагенти -DescThirdPartyReport=Консултирайте се тук със списъка на контрагенти клиенти и доставчици и техните счетоводни сметки -ListAccounts=List of the accounting accounts -UnknownAccountForThirdparty=Неизвестен профил на контрагента. Ще използваме %s -UnknownAccountForThirdpartyBlocking=Неизвестен профил на контрагента. Блокираща грешка -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Third-party account not defined or third party unknown. We will use %s -ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Third-party account not defined or third party unknown. Blocking error. -UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Неизвестен профил на контрагента и чакаща сметка не са определени. Блокираща грешка -PaymentsNotLinkedToProduct=Payment not linked to any product / service +LabelOperation=Етикет на операция +Sens=Значение +LetteringCode=Буквен код +Lettering=Означение +Codejournal=Журнал +JournalLabel=Етикет на журнал +NumPiece=Пореден номер +TransactionNumShort=Транзакция № +AccountingCategory=Персонализирани групи +GroupByAccountAccounting=Групиране по счетоводна сметка +AccountingAccountGroupsDesc=Тук може да определите някои групи счетоводни сметки. Те ще бъдат използвани за персонализирани счетоводни отчети. +ByAccounts=По сметки +ByPredefinedAccountGroups=По предварително определени групи +ByPersonalizedAccountGroups=По персонализирани групи +ByYear=По година +NotMatch=Не е зададено +DeleteMvt=Изтриване на редове от книгата +DelYear=Година за изтриване +DelJournal=Журнал за изтриване +ConfirmDeleteMvt=Това ще изтрие всички редове в книгата за година и / или от конкретен журнал. Изисква се поне един критерий. +ConfirmDeleteMvtPartial=Това ще изтрие транзакцията от книгата (всички редове, свързани с една и съща транзакция ще бъдат изтрити) +FinanceJournal=Финансов журнал +ExpenseReportsJournal=Журнал за разходни отчети +DescFinanceJournal=Финансов журнал, включващ всички видове плащания по банкова сметка +DescJournalOnlyBindedVisible=Това е преглед на запис, който е свързан към счетоводна сметка и може да бъде добавен в книгата. +VATAccountNotDefined= Не е определена сметка за ДДС +ThirdpartyAccountNotDefined=Не е определена сметка за контрагент +ProductAccountNotDefined=Не е определена сметка за продукт +FeeAccountNotDefined=Не е определена сметка за такса +BankAccountNotDefined=Не е определена сметка за банка +CustomerInvoicePayment=Плащане на фактура за продажба +ThirdPartyAccount=Сметка на контрагент +NewAccountingMvt=Нова транзакция +NumMvts=Брой транзакции +ListeMvts=Списък на движения +ErrorDebitCredit=Дебитът и кредитът не могат да имат стойност по едно и също време +AddCompteFromBK=Добавяне на счетоводни сметки към групата +ReportThirdParty=Списък на сметки на контрагенти +DescThirdPartyReport=Преглед на списъка с клиенти и доставчици, и техните счетоводни сметки +ListAccounts=Списък на счетоводни сметки +UnknownAccountForThirdparty=Неизвестна сметна на контрагент. Ще използваме %s +UnknownAccountForThirdpartyBlocking=Неизвестна сметка на контрагент. Блокираща грешка. +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Сметката на контрагента не е определена или контрагента е неизвестен. Ще използваме %s +ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Сметката на контрагента не е определена или контрагента е неизвестен. Блокираща грешка. +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Неизвестна сметка на контрагент и сметка за изчакване не са определени. Блокираща грешка. +PaymentsNotLinkedToProduct=Плащането не е свързано с нито един продукт / услуга -Pcgtype=Group of account -Pcgsubtype=Subgroup of account -PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report. +Pcgtype=Група от сметки +Pcgsubtype=Подгрупа от сметки +PcgtypeDesc=Групата и подгрупата на акаунта се използват като предварително зададени критерии за „филтриране“ и „групиране“ за някои счетоводни справки. Например „Приход“ или „Разход“ се използват като групи за счетоводни сметки на продукти за съставяне на справка за разходите / приходите. -TotalVente=Total turnover before tax -TotalMarge=Total sales margin +TotalVente=Общ оборот преди ДДС +TotalMarge=Общ марж на продажби -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Преглед на списъка с редове на фактури за продажба, свързани (или не) със счетоводна сметка на продукт +DescVentilMore=В повечето случаи, ако използвате предварително дефинирани продукти или услуги и зададете номер на сметка в картата на продукта / услугата, то системата ще може да извърши всички свързвания между вашите редове на фактури и счетоводната сметка във вашия сметкоплан, просто с едно щракване с бутона "%s". Ако сметката не е зададена в картата на продукта / услугата или ако все още имате някои редове, които не са свързани към сметка, то ще трябва да направите ръчно свързване от менюто "%s". +DescVentilDoneCustomer=Преглед на списъка с редове на фактури за продажба и тяхната счетоводна сметка за продукти +DescVentilTodoCustomer=Свързване на редове на фактури, които все още не са свързани със счетоводна сметка за продукт +ChangeAccount=Променете счетоводната сметка на продукта / услугата за избрани редове със следната счетоводна сметка: Vide=- -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account -DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account +DescVentilSupplier=Преглед на списъка с редове на фактури за доставка, свързани (или все още не) със счетоводна сметка за продукт +DescVentilDoneSupplier=Преглед на списъка с редове на фактури за доставка и тяхната счетоводна сметка +DescVentilTodoExpenseReport=Свържете редове на разходни отчети, които все още не са свързани със счетоводна сметка за такса +DescVentilExpenseReport=Преглед на списъка с редове на разходни отчети, свързани (или не) със счетоводна сметка за такса +DescVentilExpenseReportMore=Ако настроите счетоводна сметка за видовете разходен отчет, то системата ще може да извърши всички свързвания между редовете на разходния отчет и счетоводната сметка във вашия сметкоплан, просто с едно щракване с бутона "%s". Ако сметката не е зададена в речника с таксите или ако все още имате някои редове, които не са свързани с нито една сметка ще трябва да направите ръчно свързване от менюто "%s". +DescVentilDoneExpenseReport=Преглед на списъка с редове на разходни отчети и тяхната счетоводна сметка за такса -ValidateHistory=Bind Automatically -AutomaticBindingDone=Automatic binding done +ValidateHistory=Автоматично свързване +AutomaticBindingDone=Автоматичното свързване завърши -ErrorAccountancyCodeIsAlreadyUse=Възникна грешка, вие не можете да изтриете тази счетоводна сметка, защото се използва. -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s -Balancing=Balancing -FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the Ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized. -NoNewRecordSaved=No more record to journalize -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account -ChangeBinding=Change the binding -Accounted=Accounted in ledger -NotYetAccounted=Not yet accounted in ledger +ErrorAccountancyCodeIsAlreadyUse=Грешка, не може да изтриете тази счетоводна сметка, защото се използва. +MvtNotCorrectlyBalanced=Движението не е правилно балансирано. Дебит = %s | Credit = %s +Balancing=Балансиране +FicheVentilation=Свързваща карта +GeneralLedgerIsWritten=Транзакциите са записани в главната счетоводна книга +GeneralLedgerSomeRecordWasNotRecorded=Някои от транзакциите не бяха осчетоводени. Ако няма друго съобщение за грешка, то това вероятно е, защото те вече са били осчетоводени. +NoNewRecordSaved=Няма повече записи за осчетоводяване +ListOfProductsWithoutAccountingAccount=Списък на продукти, които не са свързани с нито една счетоводна сметка +ChangeBinding=Промяна на свързване +Accounted=Осчетоводено в книгата +NotYetAccounted=Все още не е осчетоводено в книгата ## Admin -ApplyMassCategories=Apply mass categories -AddAccountFromBookKeepingWithNoCategories=Available account not yet in the personalized group -CategoryDeleted=Category for the accounting account has been removed -AccountingJournals=Счетоводни дневници -AccountingJournal=Accounting journal -NewAccountingJournal=New accounting journal -ShowAccoutingJournal=Show accounting journal -Nature=Същност -AccountingJournalType1=Miscellaneous operations -AccountingJournalType2=Sales -AccountingJournalType3=Purchases +ApplyMassCategories=Прилагане на масови категории +AddAccountFromBookKeepingWithNoCategories=Наличната сметка не е част от персонализирана група +CategoryDeleted=Категорията за счетоводната сметка е премахната +AccountingJournals=Счетоводни журнали +AccountingJournal=Счетоводен журнал +NewAccountingJournal=Нов счетоводен журнал +ShowAccoutingJournal=Показване на счетоводен журнал +NatureOfJournal=Nature of Journal +AccountingJournalType1=Разнородни операции +AccountingJournalType2=Продажби +AccountingJournalType3=Покупки AccountingJournalType4=Банка -AccountingJournalType5=Expenses report -AccountingJournalType8=Складова наличност -AccountingJournalType9=Has-new -ErrorAccountingJournalIsAlreadyUse=This journal is already use -AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu %s - %s -NumberOfAccountancyEntries=Number of entries -NumberOfAccountancyMovements=Number of movements +AccountingJournalType5=Разходни отчети +AccountingJournalType8=Инвентар +AccountingJournalType9=Има нови +ErrorAccountingJournalIsAlreadyUse=Този журнал вече се използва +AccountingAccountForSalesTaxAreDefinedInto=Бележка: Счетоводната сметка за данък върху продажбите е дефинирана в меню %s - %s +NumberOfAccountancyEntries=Брой записи +NumberOfAccountancyMovements=Брой движения ## Export -ExportDraftJournal=Export draft journal -Modelcsv=Model of export -Selectmodelcsv=Select a model of export -Modelcsv_normal=Classic export -Modelcsv_CEGID=Export for CEGID Expert Comptabilité -Modelcsv_COALA=Export for Sage Coala -Modelcsv_bob50=Export for Sage BOB 50 -Modelcsv_ciel=Export for Sage Ciel Compta or Compta Evolution -Modelcsv_quadratus=Export for Quadratus QuadraCompta -Modelcsv_ebp=Export for EBP -Modelcsv_cogilog=Export for Cogilog -Modelcsv_agiris=Export for Agiris -Modelcsv_openconcerto=Export for OpenConcerto (Test) -Modelcsv_configurable=Export CSV Configurable -Modelcsv_FEC=Export FEC -Modelcsv_Sage50_Swiss=Export for Sage 50 Switzerland -ChartofaccountsId=Chart of accounts Id +ExportDraftJournal=Експортиране на журнал в чернова +Modelcsv=Модел на експортиране +Selectmodelcsv=Изберете модел на експортиране +Modelcsv_normal=Класическо експортиране +Modelcsv_CEGID=Експортиране за CEGID Expert Comptabilité +Modelcsv_COALA=Експортиране за Sage Coala +Modelcsv_bob50=Експортиране за Sage BOB 50 +Modelcsv_ciel=Експортиране за Sage Ciel Compta или Compta Evolution +Modelcsv_quadratus=Експортиране за Quadratus QuadraCompta +Modelcsv_ebp=Експортиране за EBP +Modelcsv_cogilog=Експортиране за Cogilog +Modelcsv_agiris=Експортиране за Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) +Modelcsv_openconcerto=Експортиране за OpenConcerto (Тест) +Modelcsv_configurable=Експортиране в конфигурируем CSV +Modelcsv_FEC=Експортиране за FEC +Modelcsv_Sage50_Swiss=Експортиране за Sage 50 Швейцария +ChartofaccountsId=Идентификатор на сметкоплан ## Tools - Init accounting account on product / service -InitAccountancy=Init accountancy -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. -DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. -Options=Options -OptionModeProductSell=Mode sales -OptionModeProductSellIntra=Mode sales exported in EEC -OptionModeProductSellExport=Mode sales exported in other countries -OptionModeProductBuy=Mode purchases -OptionModeProductSellDesc=Show all products with accounting account for sales. -OptionModeProductSellIntraDesc=Show all products with accounting account for sales in EEC. -OptionModeProductSellExportDesc=Show all products with accounting account for other foreign sales. -OptionModeProductBuyDesc=Show all products with accounting account for purchases. -CleanFixHistory=Remove accounting code from lines that not exists into charts of account -CleanHistory=Reset all bindings for selected year -PredefinedGroups=Predefined groups -WithoutValidAccount=Without valid dedicated account -WithValidAccount=With valid dedicated account -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account -AccountRemovedFromGroup=Account removed from group -SaleLocal=Local sale -SaleExport=Export sale -SaleEEC=Sale in EEC +InitAccountancy=Инициализиране на счетоводство +InitAccountancyDesc=Тази страница може да се използва за инициализиране на счетоводна сметка за продукти и услуги, за които няма определена счетоводна сметка за продажби и покупки. +DefaultBindingDesc=Тази страница може да се използва за задаване на сметка по подразбиране, която да се използва за свързване на записи за транзакции на плащания на заплати, дарения, данъци и ДДС, когато все още не е зададена конкретна счетоводна сметка. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. +Options=Опции +OptionModeProductSell=Режим продажби +OptionModeProductSellIntra=Режим продажби, изнасяни в ЕИО +OptionModeProductSellExport=Режим продажби, изнасяни в други държави +OptionModeProductBuy=Режим покупки +OptionModeProductSellDesc=Показване на всички продукти със счетоводна сметка за продажби. +OptionModeProductSellIntraDesc=Показване на всички продукти със счетоводна сметка за продажби в ЕИО. +OptionModeProductSellExportDesc=Показване на всички продукти със счетоводна сметка за други чуждестранни продажби. +OptionModeProductBuyDesc=Показване на всички продукти със счетоводна сметка за покупки. +CleanFixHistory=Премахване на счетоводния код от редове, които не съществуват в сметкоплана +CleanHistory=Нулиране на всички връзки за избраната година +PredefinedGroups=Предварително определени групи +WithoutValidAccount=Без валидна специална сметка +WithValidAccount=С валидна специална сметка +ValueNotIntoChartOfAccount=Тази стойност на счетоводната сметка не съществува в сметкоплана +AccountRemovedFromGroup=Сметката е премахната от групата +SaleLocal=Локална продажба +SaleExport=Експортна продажба +SaleEEC=Вътреобщностна продажба ## Dictionary -Range=Range of accounting account -Calculated=Calculated -Formula=Formula +Range=Обхват на счетоводна сметка +Calculated=Изчислено +Formula=Формула ## Error -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them -ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) -ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice %s, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused. -ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account. -ExportNotSupported=The export format setuped is not supported into this page -BookeppingLineAlreayExists=Lines already existing into bookkeeping -NoJournalDefined=No journal defined -Binded=Lines bound -ToBind=Lines to bind -UseMenuToSetBindindManualy=Lines not yet bound, use menu %s to make the binding manually +SomeMandatoryStepsOfSetupWereNotDone=Някои задължителни стъпки за настройка не са направени, моля изпълнете ги. +ErrorNoAccountingCategoryForThisCountry=Няма налична група счетоводни сметки за държава %s (Вижте Начално -> Настройка -> Речници) +ErrorInvoiceContainsLinesNotYetBounded=Опитвате се да осчетоводите някои редове на фактура %s, но някои други редове все още не са свързани към счетоводна сметка. Осчетоводяването на всички редове във фактурата е отхвърлено. +ErrorInvoiceContainsLinesNotYetBoundedShort=Някои редове във фактурата не са свързани със счетоводна сметка. +ExportNotSupported=Настроеният формат за експортиране не се поддържа в тази страница +BookeppingLineAlreayExists=Вече съществуващи редове в счетоводството +NoJournalDefined=Няма определен журнал +Binded=Свързани редове +ToBind=Редове за свързване +UseMenuToSetBindindManualy=Редовете все още не са свързани, използвайте меню %s, за да направите връзката ръчно ## Import -ImportAccountingEntries=Accounting entries -DateExport=Date export -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate. -ExpenseReportJournal=Expense Report Journal -InventoryJournal=Inventory Journal +ImportAccountingEntries=Счетоводни записи +DateExport=Дата на експортиране +WarningReportNotReliable=Внимание, тази справка не се основава на главната счетоводна книга, така че не съдържа транзакция, ръчно променена в книгата. Ако осчетоводяването ви е актуално, то прегледът на счетоводството е по-точен. +ExpenseReportJournal=Журнал за разходни отчети +InventoryJournal=Журнал за инвентар diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index 3e25a421f3f..5d854aba2ac 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -574,7 +574,7 @@ Module510Name=Заплати Module510Desc=Записване и проследяване на плащанията към служители Module520Name=Кредити Module520Desc=Управление на кредити -Module600Name=Известия +Module600Name=Notifications on business event Module600Desc=Изпращане на известия по имейл, предизвикани от дадено събитие: за потребител (настройка, определена за всеки потребител), за контакти на контрагенти (настройка, определена за всеки контрагент) или за определени имейли Module600Long=Имайте предвид, че този модул изпраща имейли в реално време, когато настъпи дадено събитие. Ако търсите функция за изпращане на напомняния по имейл за събития от календара отидете в настройката на модула Календар. Module610Name=Продуктови варианти @@ -672,7 +672,7 @@ Permission34=Изтриване на продукти Permission36=Преглед / управление на скрити продукти Permission38=Експортиране на продукти Permission41=Преглед на проекти и задачи (споделени проекти и проекти, в които съм определен за контакт). Въвеждане на отделено време, за служителя или неговите подчинени, по възложени задачи (График) -Permission42=Създаване / редактиране на проекти (споделени проекти и проекти, в които съм определен за контакт). Създаване на задачи и възлагане на проекти и задачи на потребители +Permission42=Създаване / променяне на проекти (споделени проекти и проекти, в които съм определен за контакт). Създаване на задачи и възлагане на проекти и задачи на потребители Permission44=Изтриване на проекти (споделени проекти и проекти, в които съм определен за контакт) Permission45=Експортиране на проекти Permission61=Преглед на интервенции @@ -715,12 +715,12 @@ Permission122=Създаване / промяна на контрагенти, Permission125=Изтриване на контрагенти, свързани с потребителя Permission126=Експортиране на контрагенти Permission141=Преглед на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) -Permission142=Създаване / редактиране на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) +Permission142=Създаване / променяне на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) Permission144=Изтриване на всички проекти и задачи (включително частни проекти, в които служителя не е определен за контакт) Permission146=Преглед на доставчици Permission147=Преглед на статистически данни Permission151=Преглед на платежни нареждания за директен дебит -Permission152=Създаване / редактиране на платежни нареждания за директен дебит +Permission152=Създаване / променяне на платежни нареждания за директен дебит Permission153=Изпращане / предаване на платежни нареждания за директен дебит Permission154=Записване на кредити / отхвърляния на платежни нареждания за директен дебит Permission161=Преглед на договори / абонаменти @@ -736,12 +736,12 @@ Permission174=Преглед на всички пътувания и разхо Permission178=Експортиране на пътувания и разходи Permission180=Преглед на доставчици Permission181=Преглед на поръчки за покупка -Permission182=Създаване / редактиране на поръчки за покупка +Permission182=Създаване / променяне на поръчки за покупка Permission183=Валидиране на поръчки за покупка Permission184=Одобряване на поръчки за покупка Permission185=Потвърждаване или анулиране на поръчки за покупка Permission186=Получаване на поръчки за покупка -Permission187=Затваряне на поръчки за покупка +Permission187=Приключване на поръчки за покупка Permission188=Анулиране на поръчки за покупка Permission192=Създаване на линии Permission193=Анулиране на линии @@ -770,7 +770,7 @@ Permission244=Преглед на съдържание на скрити кат Permission251=Преглед на други потребители и групи PermissionAdvanced251=Преглед на други потребители Permission252=Преглед на права на други потребители -Permission253=Създаване / редактиране на други потребители, групи и разрешения +Permission253=Създаване / променяне на други потребители, групи и разрешения PermissionAdvanced253=Създаване / промяна на вътрешни / външни потребители и права Permission254=Създаване / променя само на външни потребители Permission255=Промяна на парола на други потребители @@ -787,7 +787,7 @@ Permission291=Преглед на тарифи Permission292=Задаване на права за тарифи Permission293=Промяна на тарифите на клиента Permission300=Преглед на баркодове -Permission301=Създаване / редактиране на баркодове +Permission301=Създаване / променяне на баркодове Permission302=Изтриване на баркодове Permission311=Преглед на услуги Permission312=Възлагане на услуга / абонамент към договор @@ -809,7 +809,7 @@ Permission403=Валидиране на отстъпки Permission404=Изтриване на отстъпки Permission430=Използване на инструменти за отстраняване на грешки Permission511=Преглед на плащания на заплати -Permission512=Създаване / редактиране на плащания на заплати +Permission512=Създаване / променяне на плащания на заплати Permission514=Изтриване на плащания на заплати Permission517=Експортиране на заплати Permission520=Преглед на кредити @@ -852,7 +852,7 @@ Permission1125=Изтриване на запитвания към достав Permission1126=Приключване на запитвания към доставчици Permission1181=Преглед на доставчици Permission1182=Преглед на поръчки за покупка -Permission1183=Създаване / редактиране на поръчки за покупка +Permission1183=Създаване / променяне на поръчки за покупка Permission1184=Валидиране на поръчки за покупка Permission1185=Одобряване на поръчки за покупка Permission1186=Поръчка на поръчки за покупка @@ -862,7 +862,7 @@ Permission1190=Одобряване (второ одобрение) на пор Permission1201=Получава на резултат от експортиране Permission1202=Създаване / промяна на експортиране Permission1231=Преглед на фактури за доставка -Permission1232=Създаване / редактиране на фактури за доставка +Permission1232=Създаване / променяне на фактури за доставка Permission1233=Валидиране на фактури за доставка Permission1234=Изтриване на фактури за доставка Permission1235=Изпращане на фактури за доставка по имейл @@ -895,10 +895,10 @@ Permission10002=Създаване / Промяна на съдържание в Permission10003=Създаване / Промяна на съдържание в уебсайт (динамичен php код). Опасно, трябва да бъде използвано само за ограничен кръг разработчици. Permission10005=Изтриване на съдържание в уебсайт Permission20001=Преглед на молби за отпуск (на служителя и неговите подчинени) -Permission20002=Създаване / редактиране на молби за отпуск (на служителя и неговите подчинени) +Permission20002=Създаване / променяне на молби за отпуск (на служителя и неговите подчинени) Permission20003=Изтриване на молби за отпуск Permission20004=Преглед на всички молби за отпуск (дори на служители които не са подчинени на служителя) -Permission20005=Създаване / редактиране на всички молби за отпуск (дори на служители, които не са подчинени на служителя) +Permission20005=Създаване / променяне на всички молби за отпуск (дори на служители, които не са подчинени на служителя) Permission20006=Администриране на молби за отпуск (настройка и актуализиране на баланса) Permission23001=Преглед на планирани задачи Permission23002=Създаване / промяна на планирани задачи @@ -927,13 +927,13 @@ Permission59001=Преглед на търговски маржове Permission59002=Дефиниране на търговски маржове Permission59003=Преглед на всички потребителски маржове Permission63001=Преглед на ресурси -Permission63002=Създаване / редактиране на ресурси +Permission63002=Създаване / променяне на ресурси Permission63003=Изтриване на ресурси Permission63004=Свързване на ресурси към събития от календара DictionaryCompanyType=Видове контрагенти DictionaryCompanyJuridicalType=Правна форма на контрагенти DictionaryProspectLevel=Потенциал за перспектива -DictionaryCanton=Области / региони +DictionaryCanton=Области / Региони DictionaryRegion=Региони DictionaryCountry=Държави DictionaryCurrency=Валути @@ -1175,7 +1175,7 @@ ExternalAccess=Външен / Интернет достъп MAIN_PROXY_USE=Използване на прокси сървър (в противен случай достъпът към интернет е директен) MAIN_PROXY_HOST=Прокси сървър: Име / Адрес MAIN_PROXY_PORT=Прокси сървър: Порт -MAIN_PROXY_USER=Прокси сървър: Потребител +MAIN_PROXY_USER=Прокси сървър: Потребителско име MAIN_PROXY_PASS=Прокси сървър: Парола DefineHereComplementaryAttributes=Определете тук всички допълнителни / персонализирани атрибути, които искате да бъдат включени за: %s ExtraFields=Допълнителни атрибути @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Допълнителни атрибути (поръч ExtraFieldsSupplierInvoices=Допълнителни атрибути (фактури за покупка) ExtraFieldsProject=Допълнителни атрибути (проекти) ExtraFieldsProjectTask=Допълнителни атрибути (задачи) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Атрибут %s има грешна стойност. AlphaNumOnlyLowerCharsAndNoSpace=само буквено-цифрови символи с малки букви без интервал SendmailOptionNotComplete=Внимание, в някои Linux системи, за да изпращате имейли от вашият имейл, в настройката на Sendmail трябва да имате опция -ba (параметър mail.force_extra_parameters във вашия php.ini файл). Ако някои получатели никога не получават имейли, опитайте да промените този PHP параметър на mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Съхраняването на сесии е кодира ConditionIsCurrently=Понастоящем състоянието е %s YouUseBestDriver=Използвате драйвер %s, който е най-добрият драйвер в момента. YouDoNotUseBestDriver=Използвате драйвер %s, но драйвер %s е препоръчителен. -NbOfProductIsLowerThanNoPb=Вие имате само %s продукти / услуги в базата данни. Това не изисква специално оптимизиране. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Оптимизация на търсене -YouHaveXProductUseSearchOptim=В базата данни имате %s продукти. Трябва да добавите константата PRODUCT_DONOTSEARCH_ANYWHERE със стойност "1" в страницата Начало - Настройки - Други настройки. Ограничете търсенето до началото на низове, което позволява базата данни да използва индекси, а вие да получите незабавен отговор. +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. +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. -XDebugInstalled=XDebug е зареден. -XCacheInstalled=XCache е зареден. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Показване на кода на клиента / доставчика в списъка (select list или combobox) и повечето от хипервръзките.
Контрагентите ще се появят с формат на името "CC12345 - SC45678 - Голяма фирма ЕООД", вместо "Голяма фирма ЕООД" AddAdressInList=Показване на списъка с информация за адреса на клиента / доставчика (изборен списък или комбиниран списък).
Контрагентите ще се появят с формат на името на "Голяма фирма ЕООД - ул. Първа № 2 П. код Град - България, вместо "Голяма фирма ЕООД" AskForPreferredShippingMethod=Запитване към контрагенти за предпочитан начин на доставка @@ -1570,10 +1572,10 @@ AdvancedEditor=Разширен редактор ActivateFCKeditor=Активиране на разширен редактор за: FCKeditorForCompany=WYSIWIG създаване / промяна на описание на елементите и бележки (с изключение на продукти / услуги) FCKeditorForProduct=WYSIWIG създаване / промяна на описание на продукти / услуги -FCKeditorForProductDetails=WYSIWIG създаване / редактиране на продуктови редове за всички обекти (предложения, поръчки, фактури и др.). Внимание: Използването на тази опция не се препоръчва, тъй като може да създаде проблеми с някои специални символи и при форматиране на страниците, по време на генериране на PDF файловете. +FCKeditorForProductDetails=WYSIWIG създаване / променяне на продуктови редове за всички обекти (предложения, поръчки, фактури и др.). Внимание: Използването на тази опция не се препоръчва, тъй като може да създаде проблеми с някои специални символи и при форматиране на страниците, по време на генериране на PDF файловете. FCKeditorForMailing= WYSIWIG създаване / промяна на масови имейли (Инструменти -> Масови имейли) FCKeditorForUserSignature=WYSIWIG създаване / промяна на подпис на потребители -FCKeditorForMail=WYSIWIG създаване / редактиране на цялата поща (с изключение на Настройки - Електронна поща) +FCKeditorForMail=WYSIWIG създаване / променяне на цялата поща (с изключение на Настройка -> Имейли) ##### Stock ##### StockSetup=Настройка на модул Наличности IfYouUsePointOfSaleCheckModule=Ако използвате модула Точка за продажби (POS), предоставен по подразбиране или чрез външен модул, тази настройка може да бъде игнорирана от вашия POS модул. Повечето POS модули по подразбиране са разработени да създават веднага фактура, след което да намаляват наличностите, независимо от опциите тук. В случай, че имате нужда или не от автоматично намаляване на наличностите при регистриране на продажба от POS проверете и настройката на вашия POS модул. @@ -1711,7 +1713,7 @@ AccountingPeriods=Счетоводни периоди AccountingPeriodCard=Счетоводен период NewFiscalYear=Нов счетоводен период OpenFiscalYear=Отваряне на счетоводен период -CloseFiscalYear=Затваряне на счетоводен период +CloseFiscalYear=Приключване на счетоводен период DeleteFiscalYear=Изтриване на счетоводен период ConfirmDeleteFiscalYear=Сигурни ли сте, че искате да изтриете този счетоводен период? ShowFiscalYear=Преглед на счетоводен период @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Настройка на модул Разходни о ExpenseReportNumberingModules=Модул за номериране на разходни отчети NoModueToManageStockIncrease=Не е активиран модул, способен да управлява автоматичното увеличаване на наличности. Увеличаването на наличности ще се извършва само при ръчно въвеждане. YouMayFindNotificationsFeaturesIntoModuleNotification=Може да откриете опции за известия по имейл като активирате и конфигурирате модула "Известия". -ListOfNotificationsPerUser=Списък с известия за потребител* -ListOfNotificationsPerUserOrContact=Списък с известия (събития), налични за потребител* или за контакт** -ListOfFixedNotifications=Списък с фиксирани известия +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Отидете в раздела „Известия“ на съответния потребител, за да добавите или премахнете известия за този потребител GoOntoContactCardToAddMore=Отидете в раздела „Известия“ на съответния контрагент, за да добавите или премахнете известия за съответните контакти / адреси Threshold=Граница @@ -1768,7 +1770,7 @@ ColorFormat=RGB цвета е в HEX формат, например: FF0000 PositionIntoComboList=Позиция на реда в комбинирани списъци SellTaxRate=Ставка на данъка върху продажби RecuperableOnly=Да за ДДС "Не възприеман, но възстановим", предназначен за някои области във Франция. Запазете стойността "Не" във всички останали случаи. -UrlTrackingDesc=Ако доставчикът или транспортната услуга предлага страница или уеб сайт за проверка на статуса на вашите пратки, то може да ги въведете тук. Може да използвате ключа {TRACKID} в URL параметрите, така че системата да го замени с проследяващия номер, който потребителят е въвел в картата на пратката. +UrlTrackingDesc=Ако доставчикът или транспортната услуга предлага страница или уеб сайт за проверка на статуса на вашите пратки, то може да ги въведете тук. Може да използвате ключа {TRACKID} в URL параметрите, така че системата да го замени с проследяващия номер, който потребителят е въвел в картата на доставката. OpportunityPercent=Когато създавате нова възможност определяте приблизително очакваната сума от проекта / възможността. Според статуса на възможността тази сума ще бъде умножена по определения му процент, за да се оцени общата сума, която всичките ви възможности могат да генерират. Стойността е в проценти (между 0 и 100). TemplateForElement=Този шаблон е специализиран за елемент TypeOfTemplate=Тип шаблон @@ -1898,6 +1900,11 @@ OnMobileOnly=Само при малък екран (смартфон) DisableProspectCustomerType=Деактивиране на типа контрагент "Перспектива + Клиент" (контрагента трябва да бъде Перспектива или Клиент, но не може да бъде и двете) MAIN_OPTIMIZEFORTEXTBROWSER=Опростяване на интерфейса за незрящ човек MAIN_OPTIMIZEFORTEXTBROWSERDesc=Активирайте тази опция за незрящ човек или ако използвате приложението от текстов браузър като Lynx или Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Тази стойност може да бъде променена от профила на всеки потребител в раздела '%s' DefaultCustomerType=Тип контрагент по подразбиране във формуляра за създаване на "Нов клиент" ABankAccountMustBeDefinedOnPaymentModeSetup=Забележка: Банковата сметка трябва да бъде дефинирана в модула за всеки режим на плащане (Paypal, Stripe, ...), за да работи тази функция. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Брой редове, които да се показват в UseDebugBar=Използване на инструменти за отстраняване на грешки DEBUGBAR_LOGS_LINES_NUMBER=Брой последни редове на журнал, които да се пазят в конзолата WarningValueHigherSlowsDramaticalyOutput=Внимание, по-високите стойности забавят драматично производителността -DebugBarModuleActivated=Модула "Инструменти за отстраняване на грешки" е активиран и забавя драматично интерфейса +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Моделите за експортиране се споделят с всички ExportSetup=Настройка на модула Експортиране на данни InstanceUniqueID=Уникален идентификатор на инстанцията @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=Ще го намерите във вашият I EndPointFor=Крайна точка за %s: %s DeleteEmailCollector=Изтриване на имейл колекционер ConfirmDeleteEmailCollector=Сигурни ли те, че искате да изтриете този колекционер на имейли? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/bg_BG/agenda.lang b/htdocs/langs/bg_BG/agenda.lang index 74975f5a6e7..caeb1f309a4 100644 --- a/htdocs/langs/bg_BG/agenda.lang +++ b/htdocs/langs/bg_BG/agenda.lang @@ -58,11 +58,11 @@ MemberDeletedInDolibarr=Член %s е изтрит MemberSubscriptionAddedInDolibarr=Членски внос %s за член %s е добавен MemberSubscriptionModifiedInDolibarr=Членски внос %s за член %s е променен MemberSubscriptionDeletedInDolibarr=Членски внос %s за член %s е изтрит -ShipmentValidatedInDolibarr=Пратка %s е валидирана -ShipmentClassifyClosedInDolibarr=Пратка %s е фактурирана -ShipmentUnClassifyCloseddInDolibarr=Пратка %s е повторно отворена -ShipmentBackToDraftInDolibarr=Пратка %s е върната в статус чернова -ShipmentDeletedInDolibarr=Пратка %s е изтрита +ShipmentValidatedInDolibarr=Доставка %s е валидирана +ShipmentClassifyClosedInDolibarr=Доставка %s е фактурирана +ShipmentUnClassifyCloseddInDolibarr=Доставка %s е повторно отворена +ShipmentBackToDraftInDolibarr=Доставка %s е върната в статус чернова +ShipmentDeletedInDolibarr=Доставка %s е изтрита OrderCreatedInDolibarr=Поръчка %s е създадена OrderValidatedInDolibarr=Поръчка %s е валидирана OrderDeliveredInDolibarr=Поръчка %s е класифицирана като доставена @@ -77,8 +77,8 @@ OrderSentByEMail=Клиентска поръчка %s е изпратена по InvoiceSentByEMail=Фактура за продажба %s е изпратена по имейл SupplierOrderSentByEMail=Поръчка за покупка %s е изпратена по имейл SupplierInvoiceSentByEMail=Фактура за покупка %s е изпратена по имейл -ShippingSentByEMail=Пратка %s е изпратена по имейл -ShippingValidated= Пратка %s е валидирана +ShippingSentByEMail=Доставка %s е изпратена по имейл +ShippingValidated= Доставка %s е валидирана InterventionSentByEMail=Интервенция %s е изпратена по имейл ProposalDeleted=Предложението е изтрито OrderDeleted=Поръчката е изтрита diff --git a/htdocs/langs/bg_BG/assets.lang b/htdocs/langs/bg_BG/assets.lang index f851bd810d3..aabd6c6e46c 100644 --- a/htdocs/langs/bg_BG/assets.lang +++ b/htdocs/langs/bg_BG/assets.lang @@ -22,7 +22,7 @@ AccountancyCodeAsset = Счетоводен код (актив) AccountancyCodeDepreciationAsset = Счетоводен код (сметка за амортизационни активи) AccountancyCodeDepreciationExpense = Счетоводен код (сметка за амортизационни разходи) NewAssetType=Нов вид актив -AssetsTypeSetup=Настройка на тип активи +AssetsTypeSetup=Настройка на вид активи AssetTypeModified=Видът на актива е променен AssetType=Вид актив AssetsLines=Активи @@ -42,17 +42,17 @@ ModuleAssetsDesc = Описание на активи AssetsSetup = Настройка на активи Settings = Настройки AssetsSetupPage = Страница за настройка на активите -ExtraFieldsAssetsType = Допълнителни атрибути (Вид на актива) +ExtraFieldsAssetsType = Допълнителни атрибути (вид актив) AssetsType=Вид актив -AssetsTypeId=№ на актива -AssetsTypeLabel=Вид актив етикет +AssetsTypeId=Идентификатор на вида актива +AssetsTypeLabel=Етикет на вида актив AssetsTypes=Видове активи # # Menu # MenuAssets = Активи -MenuNewAsset = Нов Актив +MenuNewAsset = Нов актив MenuTypeAssets = Вид активи MenuListAssets = Списък MenuNewTypeAssets = Нов diff --git a/htdocs/langs/bg_BG/bills.lang b/htdocs/langs/bg_BG/bills.lang index cd16caffcc6..67960e29678 100644 --- a/htdocs/langs/bg_BG/bills.lang +++ b/htdocs/langs/bg_BG/bills.lang @@ -9,8 +9,8 @@ BillsCustomersUnpaidForCompany=Неплатени фактури за прода BillsSuppliersUnpaid=Неплатени фактури за доставка BillsSuppliersUnpaidForCompany=Неплатени фактури за доставка за %s BillsLate=Забавени плащания -BillsStatistics=Статистика от фактури за продажба -BillsStatisticsSuppliers=Статистика за фактури на доставка +BillsStatistics=Статистика на фактури за продажба +BillsStatisticsSuppliers=Статистика на фактури за доставка DisabledBecauseDispatchedInBookkeeping=Деактивирано, защото фактурата е изпратена за осчетоводяване DisabledBecauseNotLastInvoice=Деактивирано, защото фактурата не може да се изтрие. Има регистрирани следващи фактури с поредни номера и това ще създаде дупки в брояча. DisabledBecauseNotErasable=Деактивирано, защото не може да бъде изтрито @@ -22,7 +22,7 @@ InvoiceDepositAsk=Фактура за авансово плащане InvoiceDepositDesc=Този вид фактура се използва, когато е получено авансово плащане. InvoiceProForma=Проформа фактура InvoiceProFormaAsk=Проформа фактура -InvoiceProFormaDesc=Проформа фактура е първообраз на една истинска фактура, но няма счетоводна стойност. +InvoiceProFormaDesc=Проформа фактурата е първообраз на истинска фактура, но няма счетоводна стойност. InvoiceReplacement=Заменяща фактура InvoiceReplacementAsk=Фактура заменяща друга фактура InvoiceReplacementDesc=Заменяща фактура се използва за анулиране и пълно заменяне на фактура без получено плащане.

Забележка: Само фактури без плащания по тях могат да бъдат заменяни. Ако фактурата, която заменяте, все още не е приключена, то тя ще бъде автоматично приключена като „Изоставена“. @@ -44,7 +44,7 @@ NotConsumed=Не е консумирана NoReplacableInvoice=Няма заменими фактури NoInvoiceToCorrect=Няма фактура за коригиране InvoiceHasAvoir=Източник на едно или няколко кредитни известия -CardBill=Карта на фактура +CardBill=Карта PredefinedInvoices=Предварително дефинирани фактури Invoice=Фактура PdfInvoiceTitle=Фактура @@ -75,8 +75,8 @@ ReceivedPayments=Получени плащания ReceivedCustomersPayments=Плащания получени от клиенти PayedSuppliersPayments=Направени плащания към доставчици ReceivedCustomersPaymentsToValid=Получени плащания от клиенти за валидиране -PaymentsReportsForYear=Отчети за плащания за %s -PaymentsReports=Отчети за плащания +PaymentsReportsForYear=Справки за плащания за %s +PaymentsReports=Справки за плащания PaymentsAlreadyDone=Вече направени плащания PaymentsBackAlreadyDone=Вече направени обратни плащания PaymentRule=Правило за плащане @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Плащането е с по-висока сто HelpPaymentHigherThanReminderToPay=Внимание, сумата за плащане на една или повече фактури е по-висока от дължимата сума за плащане.
Редактирайте записа си, в противен случай потвърдете и обмислете създаването на кредитно известие за получената сума за всяка надплатена фактура. HelpPaymentHigherThanReminderToPaySupplier=Внимание, сумата за плащане на една или повече фактури е по-висока от дължимата сума за плащане.
Редактирайте записа си, в противен случай потвърдете и обмислете създаването на кредитно известие за излишъка, платен за всяка надплатена фактура. ClassifyPaid=Класифициране като 'Платена' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Класифициране като 'Частично платена' ClassifyCanceled=Класифициране като 'Изоставена' ClassifyClosed=Класифициране като 'Приключена' @@ -150,21 +151,21 @@ ErrorBillNotFound=Фактура %s не съществува ErrorInvoiceAlreadyReplaced=Грешка, опитахте да валидирате фактура, за да замените фактура %s, но тя вече е заменена с фактура %s. ErrorDiscountAlreadyUsed=Грешка, вече се използва отстъпка ErrorInvoiceAvoirMustBeNegative=Грешка, коригиращата фактура трябва да има отрицателна сума -ErrorInvoiceOfThisTypeMustBePositive=Грешка, този тип фактура трябва да има положителна стойност +ErrorInvoiceOfThisTypeMustBePositive=Грешка, този тип фактура трябва да има положителна сума ErrorCantCancelIfReplacementInvoiceNotValidated=Грешка, не може да се анулира фактура, която е била заменена от друга фактура, която все още е в състояние на чернова ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Тази или друга част вече е използвана, така че сериите с отстъпки не могат да бъдат премахнати. BillFrom=От BillTo=За -ActionsOnBill=Действия по фактура +ActionsOnBill=Свързани събития RecurringInvoiceTemplate=Шаблонна / Повтаряща се фактура NoQualifiedRecurringInvoiceTemplateFound=Няма шаблонна повтаряща се фактура за генериране FoundXQualifiedRecurringInvoiceTemplate=Намерени са %s шаблонни повтарящи се фактури, отговарящи на изискванията за генериране. NotARecurringInvoiceTemplate=Не е шаблонна повтаряща се фактура NewBill=Нова фактура LastBills=Фактури: %s последни -LatestTemplateInvoices=Шаблонни повтарящи се фактури: %s последни -LatestCustomerTemplateInvoices=Шаблонни повтарящи се фактури за продажба: %s последни -LatestSupplierTemplateInvoices=Шаблонни повтарящи се фактури за доставка: %s последни +LatestTemplateInvoices=Шаблонни фактури: %s последни +LatestCustomerTemplateInvoices=Шаблонни фактури за продажба: %s последни +LatestSupplierTemplateInvoices=Шаблонни фактури за доставка: %s последни LastCustomersBills=Фактури за продажба: %s последни LastSuppliersBills=Фактури за доставка: %s последни AllBills=Всички фактури @@ -173,14 +174,14 @@ OtherBills=Други фактури DraftBills=Чернови фактури CustomersDraftInvoices=Чернови фактури за продажба SuppliersDraftInvoices=Чернови фактури за доставка -Unpaid=Неплатено +Unpaid=Неплатена ConfirmDeleteBill=Сигурни ли сте, че искате да изтриете тази фактура? ConfirmValidateBill=Сигурни ли сте че, искате да валидирате тази фактура %s ? ConfirmUnvalidateBill=Сигурен ли сте, че искате да върнете фактура %s в състояние на чернова? -ConfirmClassifyPaidBill=Сигурни ли сте че, искате да маркирате фактура %s със статус платена? +ConfirmClassifyPaidBill=Сигурни ли сте че, искате да класифицирате фактура %s като платена? ConfirmCancelBill=Сигурни ли сте, че искате да анулирате фактура %s ? ConfirmCancelBillQuestion=Защо искате да класифицирате тази фактура като „Изоставена“? -ConfirmClassifyPaidPartially=Сигурни ли сте че, искате да маркирате фактура %s със статус платена? +ConfirmClassifyPaidPartially=Сигурни ли сте че, искате да класифицирате фактура %s като платена частично? ConfirmClassifyPaidPartiallyQuestion=Тази фактура не е платена изцяло. Каква е причината за приключване на тази фактура? ConfirmClassifyPaidPartiallyReasonAvoir=Неплатения остатък (%s %s) е предоставена отстъпка, тъй като плащането е извършено преди срока за плащане. Уреждам ДДС с кредитно известие. ConfirmClassifyPaidPartiallyReasonDiscount=Неплатения остатък (%s %s) е предоставена отстъпка, тъй като плащането е извършено преди срока за плащане. @@ -192,7 +193,7 @@ ConfirmClassifyPaidPartiallyReasonOther=Сумата е изоставена п ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Този избор е възможен, ако фактурата е снабдена с подходящи коментари. (Например: "Само данък, съответстващ на действително платената цена, дава право на приспадане") ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=В някои държави този избор е възможен, само ако фактурата съдържа правилни бележки. ConfirmClassifyPaidPartiallyReasonAvoirDesc=Използвайте този избор, ако всички други не са подходящи -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc= Лош клиент е клиент, който отказва да плати дълга си. +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Лош клиент е клиент, който отказва да плати дълга си. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Този избор се използва, когато плащането не е пълно, тъй като някои от продуктите са били върнати ConfirmClassifyPaidPartiallyReasonOtherDesc=Използвайте този избор, ако всички останали не са подходящи, например в следната ситуация:\n- плащането не е завършено, защото някои продукти са изпратени обратно\n- предявената сума е задължителна, понеже отстъпката е забравена\nВъв всички случаи, надхвърлената сума трябва да бъде коригирана в счетоводната система, чрез създаване на кредитно известие. ConfirmClassifyAbandonReasonOther=Друго @@ -206,22 +207,36 @@ NumberOfBills=Брой фактури NumberOfBillsByMonth=Брой фактури на месец AmountOfBills=Сума на фактури AmountOfBillsHT=Сума на фактури (без ДДС) -AmountOfBillsByMonthHT=Сума на фактури по месец (без данък) +AmountOfBillsByMonthHT=Сума на фактури по месец (без ДДС) ShowSocialContribution=Показване на социален / фискален данък -ShowBill=Покажи фактура -ShowInvoice=Покажи фактура -ShowInvoiceReplace=Покажи заменяща фактура -ShowInvoiceAvoir=Покажи кредитно известие +ShowBill=Показване на фактура +ShowInvoice=Показване на фактура +ShowInvoiceReplace=Показване на заменяща фактура +ShowInvoiceAvoir=Показване на кредитно известие ShowInvoiceDeposit=Показване на авансова фактура ShowInvoiceSituation=Показване на ситуационна фактура -ShowPayment=Покажи плащане +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF +ShowPayment=Показване на плащане AlreadyPaid=Вече платено AlreadyPaidBack=Вече платено обратно AlreadyPaidNoCreditNotesNoDeposits=Вече платено (без кредитни известия и авансови плащания) Abandoned=Изоставена RemainderToPay=Неплатен остатък RemainderToTake=Остатъчна сума за получаване -RemainderToPayBack=Оставаща сума за възстановяване +RemainderToPayBack=Остатъчна сума за възстановяване Rest=Чакаща AmountExpected=Претендирана сума ExcessReceived=Получено превишение @@ -230,7 +245,7 @@ EscompteOffered=Предложена отстъпка (плащане преди EscompteOfferedShort=Отстъпка SendBillRef=Изпращане на фактура %s SendReminderBillRef=Изпращане на фактура %s (напомняне) -StandingOrders=Нареждания с директен дебит +StandingOrders=Нареждания за директен дебит StandingOrder=Нареждане за директен дебит NoDraftBills=Няма чернови фактури NoOtherDraftBills=Няма други чернови фактури @@ -263,11 +278,11 @@ Repeatables=Шаблони ChangeIntoRepeatableInvoice=Конвертиране в шаблонна фактура CreateRepeatableInvoice=Създаване на шаблонна фактура CreateFromRepeatableInvoice=Създаване от шаблонна фактура -CustomersInvoicesAndInvoiceLines=Фактури клиенти и техните детайли +CustomersInvoicesAndInvoiceLines=Фактури за продажба и техни детайли CustomersInvoicesAndPayments=Фактури за продажба и плащания -ExportDataset_invoice_1=Фактури за продажба и техните детайли +ExportDataset_invoice_1=Фактури за продажба и техни детайли ExportDataset_invoice_2=Фактури за продажба и плащания -ProformaBill=Проформа Фактура +ProformaBill=Проформа фактура Reduction=Отстъпка ReductionShort=Отст. Reductions=Отстъпки @@ -279,8 +294,8 @@ EditRelativeDiscount=Промяна на относителна отстъпка AddGlobalDiscount=Създаване на абсолютна отстъпка EditGlobalDiscounts=Промяна на абсолютна отстъпка AddCreditNote=Създаване на кредитно известие -ShowDiscount=Покажи отстъпка -ShowReduc=Покажи намалението +ShowDiscount=Показване на отстъпка +ShowReduc=Показване на отстъпка RelativeDiscount=Относителна отстъпка GlobalDiscount=Глобална отстъпка CreditNote=Кредитно известие @@ -292,8 +307,8 @@ DiscountFromCreditNote=Отстъпка от кредитно известие % DiscountFromDeposit=Авансови плащания от фактура %s DiscountFromExcessReceived=Плащания над стойността на фактура %s DiscountFromExcessPaid=Плащания над стойността на фактура %s -AbsoluteDiscountUse=Този вид кредит може да се използва по фактура преди нейното валидиране -CreditNoteDepositUse=Фактурата трябва да бъде валидирана, за да се използва този вид кредити +AbsoluteDiscountUse=Този вид кредит може да се използва във фактура преди нейното валидиране +CreditNoteDepositUse=Фактурата трябва да бъде валидирана, за да използвате този вид кредити NewGlobalDiscount=Нова абсолютна отстъпка NewRelativeDiscount=Нова относителна отстъпка DiscountType=Тип отстъпка @@ -303,15 +318,15 @@ DiscountOfferedBy=Предоставена от DiscountStillRemaining=Налични отстъпки или кредити DiscountAlreadyCounted=Изразходвани отстъпки или кредити CustomerDiscounts=Отстъпки за клиенти -SupplierDiscounts=Отстъпки на доставчици +SupplierDiscounts=Отстъпки от доставчици BillAddress=Адрес за фактуриране HelpEscompte=Тази отстъпка представлява отстъпка, предоставена на клиента, тъй като плащането е извършено преди срока на плащане. HelpAbandonBadCustomer=Тази сума е изоставена (поради некоректен (лош) клиент) и се счита за изключителна загуба. -HelpAbandonOther=Тази сума е изоставена, тъй като е била грешка (Например: неправилен клиент или фактура заменена от друга) +HelpAbandonOther=Тази сума е изоставена, тъй като се дължи на грешка (например: неправилен клиент или фактура заменена от друга) IdSocialContribution=Идентификатор за плащане на социален / фискален данък -PaymentId=Плащане ID +PaymentId=Идентификатор за плащане PaymentRef=Реф. плащане -InvoiceId=Фактура ID +InvoiceId=Идентификатор на фактура InvoiceRef=Реф. фактура InvoiceDateCreation=Дата на създаване на фактура InvoiceStatus=Статус на фактура @@ -327,7 +342,7 @@ ConfirmCloneInvoice=Сигурни ли сте, че искате да клон DisabledBecauseReplacedInvoice=Действието е деактивирано, тъй като фактурата е била заменена DescTaxAndDividendsArea=Тази секция показва обобщение на всички плащания, направени за специални разходи. Тук са включени само записи с плащания през определената година. NbOfPayments=Брой плащания -SplitDiscount=Раздели отстъпката на две +SplitDiscount=Разделяне на отстъпка ConfirmSplitDiscount=Сигурни ли сте, че искате да разделите тази отстъпка %s %s на две по-малки отстъпки? TypeAmountOfEachNewDiscount=Въведете сума за всяка от двете части: TotalOfTwoDiscountMustEqualsOriginal=Общата сума на двете нови отстъпки трябва да бъде равна на първоначалната сума за отстъпка. @@ -340,7 +355,7 @@ LatestRelatedBill=Последна свързана фактура WarningBillExist=Внимание, вече съществуват една или повече фактури MergingPDFTool=Инструмент за обединяване на PDF документи AmountPaymentDistributedOnInvoice=Сума на плащане, разпределена по фактура -PaymentOnDifferentThirdBills=Позволява плащания по различни фактури на контрагенти, но от едно и също дружество (фирма майка) +PaymentOnDifferentThirdBills=Позволяване на плащания по различни фактури на контрагенти, но от едно и също дружество (фирма майка) PaymentNote=Бележка за плащане ListOfPreviousSituationInvoices=Списък на предишни ситуационни фактури ListOfNextSituationInvoices=Списък на следващи ситуационни фактури @@ -373,7 +388,7 @@ WarningInvoiceDateTooFarInFuture=Внимание, датата на факту ViewAvailableGlobalDiscounts=Преглед на налични отстъпки # PaymentConditions Statut=Статус -PaymentConditionShortRECEP=При получаване +PaymentConditionShortRECEP=Получаване PaymentConditionRECEP=При получаване PaymentConditionShort30D=30 дни PaymentCondition30D=30 дни @@ -399,7 +414,7 @@ PaymentConditionShort14DENDMONTH=14 дни от края на месеца PaymentCondition14DENDMONTH=В рамките на 14 дни след края на месеца FixAmount=Фиксирана сума VarAmount=Променлива сума (%% общо) -VarAmountOneLine=Променлива сума (%% общ.) - 1 ред с етикет "%s" +VarAmountOneLine=Променлива сума (%% общо) - включва ред с етикет "%s" # PaymentType PaymentTypeVIR=Банков превод PaymentTypeShortVIR=Банков превод @@ -415,27 +430,27 @@ PaymentTypeTIP=TIP (Документи срещу плащане) PaymentTypeShortTIP=Плащане по TIP PaymentTypeVAD=Онлайн плащане PaymentTypeShortVAD=Онлайн плащане -PaymentTypeTRA=Банково извлечение -PaymentTypeShortTRA=Чернова +PaymentTypeTRA=Банкова гаранция +PaymentTypeShortTRA=Гаранция PaymentTypeFAC=Фактор PaymentTypeShortFAC=Фактор BankDetails=Банкови данни BankCode=Банков код DeskCode=Код на клон BankAccountNumber=Номер на сметка -BankAccountNumberKey=Контролната сума +BankAccountNumberKey=Контролна сума Residence=Адрес IBANNumber=IBAN номер на сметка IBAN=IBAN BIC=BIC / SWIFT -BICNumber=BIC/SWIFT код +BICNumber=BIC / SWIFT код ExtraInfos=Допълнителна информация RegulatedOn=Регулирано на ChequeNumber=Чек № ChequeOrTransferNumber=Чек / Трансфер № ChequeBordereau=Чек график -ChequeMaker=Чек/трансфер предавател -ChequeBank=Банка на чека +ChequeMaker=Подател на чек / трансфер +ChequeBank=Банка на чек CheckBank=Чек NetToBePaid=Нето за плащане PhoneNumber=Тел @@ -443,17 +458,17 @@ FullPhoneNumber=Телефон TeleFax=Факс PrettyLittleSentence=Приемене на размера на плащанията с чекове, издадени в мое име, като член на счетоводна асоциация, одобрена от данъчната администрация. IntracommunityVATNumber=ДДС № -PaymentByChequeOrderedTo=Чекови плащания (с ДДС) се извършват до %s, изпратени на адрес +PaymentByChequeOrderedTo=Чекови плащания (с ДДС) се извършват до %s, изпратени на PaymentByChequeOrderedToShort=Чекови плащания (с ДДС) се извършват до SendTo=изпратено до PaymentByTransferOnThisBankAccount=Плащане, чрез превод по следната банкова сметка VATIsNotUsedForInvoice=* Неприложим ДДС, art-293B от CGI -LawApplicationPart1=Чрез прилагането на закон 80.335 от 12/05/80 +LawApplicationPart1=Чрез прилагане на закон 80.335 от 12/05/80 LawApplicationPart2=стоките остават собственост на LawApplicationPart3=продавача до пълното плащане на LawApplicationPart4=тяхната цена. LimitedLiabilityCompanyCapital=SARL с капитал от -UseLine=Приложи +UseLine=Прилагане UseDiscount=Използване на отстъпка UseCredit=Използване на кредит UseCreditNoteInInvoicePayment=Намаляване на сумата за плащане с този кредит @@ -468,12 +483,12 @@ Cheques=Чекове DepositId=Идентификатор на депозит NbCheque=Брой чекове CreditNoteConvertedIntoDiscount=Това %s е преобразувано в %s -UsBillingContactAsIncoiveRecipientIfExist=Използване на контакт/адрес с тип "контакт за фактуриране" вместо адрес на контрагента като получател на фактури -ShowUnpaidAll=Покажи всички неплатени фактури -ShowUnpaidLateOnly=Покажи само забавените неплатени фактури +UsBillingContactAsIncoiveRecipientIfExist=Използване на контакт / адрес с тип "контакт за фактуриране" вместо адрес на контрагента като получател на фактури +ShowUnpaidAll=Показване на всички неплатени фактури +ShowUnpaidLateOnly=Показване на забавени неплатени фактури PaymentInvoiceRef=Плащане по фактура %s ValidateInvoice=Валидиране на фактура -ValidateInvoices=Потвърждаване на фактури +ValidateInvoices=Валидиране на фактури Cash=В брой Reported=Закъснели DisabledBecausePayments=Не е възможно, тъй като има някои плащания @@ -482,7 +497,7 @@ ExpectedToPay=Очаквано плащане CantRemoveConciliatedPayment=Съгласуваното плащане не може да се премахне PayedByThisPayment=Платено от това плащане ClosePaidInvoicesAutomatically=Класифицирайте "Платени" всички стандартни, авансови или заместващи фактури, които са платени напълно. -ClosePaidCreditNotesAutomatically=Класифицирай 'Платени' всички кредитни известия, които са изцяло платени обратно. +ClosePaidCreditNotesAutomatically=Класифицирайте "Платени" всички кредитни известия, които са изцяло платени обратно. ClosePaidContributionsAutomatically=Класифицирайте "Платени" всички социални или фискални вноски, които са платени напълно. AllCompletelyPayedInvoiceWillBeClosed=Всички фактури без остатък за плащане ще бъдат автоматично приключени със статус "Платени". ToMakePayment=Плати @@ -506,9 +521,9 @@ TypeContact_facture_external_BILLING=Контакт по фактура за п TypeContact_facture_external_SHIPPING=Контакт по доставка TypeContact_facture_external_SERVICE=Контакт по обслужване TypeContact_invoice_supplier_internal_SALESREPFOLL=Представител по фактура за покупка -TypeContact_invoice_supplier_external_BILLING=Контакт на доставчик по фактура -TypeContact_invoice_supplier_external_SHIPPING=Контакт на доставчик по доставка -TypeContact_invoice_supplier_external_SERVICE=Контакт на доставчик по услуга +TypeContact_invoice_supplier_external_BILLING=Контакт по фактура за доставка +TypeContact_invoice_supplier_external_SHIPPING=Контакт по доставка +TypeContact_invoice_supplier_external_SERVICE=Контакт по обслужване # Situation invoices InvoiceFirstSituationAsk=Първа ситуационна фактура InvoiceFirstSituationDesc=Ситуационните фактури са вързани към ситуации отнасящи се до прогрес, например процес на конструиране. Всяка ситуация е свързана с една фактура. @@ -542,7 +557,7 @@ ToCreateARecurringInvoiceGene=За да генерирате бъдещи фак ToCreateARecurringInvoiceGeneAuto=Ако трябва да генерирате такива фактури автоматично, помолете администратора да активира и настрои модула %s . Имайте предвид, че двата метода (ръчен и автоматичен) могат да се използват заедно, без риск от дублиране. DeleteRepeatableInvoice=Изтриване на шаблонна фактура ConfirmDeleteRepeatableInvoice=Сигурни ли сте, че искате да изтриете тази шаблонна фактура? -CreateOneBillByThird=Създайте по една фактура за контрагент (в противен случай по фактура за поръчка) +CreateOneBillByThird=Създаване на една фактура за контрагент (в противен случай по една фактура за поръчка) BillCreated=Създадени са %s фактури StatusOfGeneratedDocuments=Статус на генерираните документи DoNotGenerateDoc=Не генерирайте файл за документа diff --git a/htdocs/langs/bg_BG/blockedlog.lang b/htdocs/langs/bg_BG/blockedlog.lang index 1975a28d3ed..eaf5afb0924 100644 --- a/htdocs/langs/bg_BG/blockedlog.lang +++ b/htdocs/langs/bg_BG/blockedlog.lang @@ -1,5 +1,5 @@ BlockedLog=Unalterable Logs -Field=Област +Field=Поле BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF525). Fingerprints=Archived events and fingerprints FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask that you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non-valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed). diff --git a/htdocs/langs/bg_BG/boxes.lang b/htdocs/langs/bg_BG/boxes.lang index bff0882933e..0d8cccbc657 100644 --- a/htdocs/langs/bg_BG/boxes.lang +++ b/htdocs/langs/bg_BG/boxes.lang @@ -9,26 +9,26 @@ BoxLastCustomerBills=Последни фактури за продажба BoxOldestUnpaidCustomerBills=Най-стари неплатени фактури за продажба BoxOldestUnpaidSupplierBills=Най-стари неплатени фактури за доставка BoxLastProposals=Последни търговски предложения -BoxLastProspects=Последно променени перспективи +BoxLastProspects=Последно променени потенциални клиенти BoxLastCustomers=Последно променени клиенти BoxLastSuppliers=Последно променени доставчици -BoxLastCustomerOrders=Последни клиентски поръчки +BoxLastCustomerOrders=Последни поръчки за продажба BoxLastActions=Последни действия BoxLastContracts=Последни договори BoxLastContacts=Последни контакти / адреси BoxLastMembers=Последни членове BoxFicheInter=Последни интервенции BoxCurrentAccounts=Баланс по открити сметки -BoxTitleLastRssInfos=Новини: %s последни от %s +BoxTitleLastRssInfos=Новини: %s последни от %s BoxTitleLastProducts=Продукти / Услуги: %s последно променени BoxTitleProductsAlertStock=Продукти: сигнали за наличност -BoxTitleLastSuppliers=Доставчици: %s последно записани +BoxTitleLastSuppliers=Доставчици: %s последно добавени BoxTitleLastModifiedSuppliers=Доставчици: %sпоследно променени BoxTitleLastModifiedCustomers=Клиенти: %s последно променени -BoxTitleLastCustomersOrProspects=Клиенти или Перспективи: %s последно добавени +BoxTitleLastCustomersOrProspects=Клиенти или потенциални клиенти: %s последно добавени BoxTitleLastCustomerBills=Фактури за продажба: %s последно добавени BoxTitleLastSupplierBills=Фактури за доставка: %s последно добавени -BoxTitleLastModifiedProspects=Перспективи: %s последно променени +BoxTitleLastModifiedProspects=Потенциални клиенти: %s последно променени BoxTitleLastModifiedMembers=Членове: %s последно добавени BoxTitleLastFicheInter=Интервенции: %s последно променени BoxTitleOldestUnpaidCustomerBills=Фактури за продажба: %s най-стари неплатени @@ -36,50 +36,50 @@ BoxTitleOldestUnpaidSupplierBills=Фактури за доставка: %s на BoxTitleCurrentAccounts=Отворени сметки: баланси BoxTitleLastModifiedContacts=Контакти / Адреси: %s последно променени BoxMyLastBookmarks=Отметки: %s последни -BoxOldestExpiredServices=Най-старите действащи изтекли услуги -BoxLastExpiredServices=Договори: %s най-стари договори с активни изтичащи услуги +BoxOldestExpiredServices=Най-стари изтекли активни услуги +BoxLastExpiredServices=Договори: %s най-стари договори с активни изтекли услуги BoxTitleLastActionsToDo=Действия за извършване: %s последни BoxTitleLastContracts=Договори: %s последно променени BoxTitleLastModifiedDonations=Дарения: %s последно променени BoxTitleLastModifiedExpenses=Разходни отчети: %s последно променени -BoxGlobalActivity=Обща активност (фактури, предложения, поръчки) +BoxGlobalActivity=Глобална дейност (фактури, предложения, поръчки) BoxGoodCustomers=Добри клиенти BoxTitleGoodCustomers=%s Добри клиенти FailedToRefreshDataInfoNotUpToDate=Неуспешно опресняване на RSS поток. Последното успешно опресняване е на дата: %s LastRefreshDate=Последна дата на опресняване -NoRecordedBookmarks=Няма дефинирани отметки. -ClickToAdd=Щракнете тук, за да добавите. -NoRecordedCustomers=Няма записани клиенти -NoRecordedContacts=Няма записани контакти -NoActionsToDo=Няма дейности за вършене -NoRecordedOrders=Няма регистрирани клиентски поръчки -NoRecordedProposals=Няма записани предложения +NoRecordedBookmarks=Не са дефинирани отметки +ClickToAdd=Кликнете тук, за да добавите. +NoRecordedCustomers=Няма регистрирани клиенти +NoRecordedContacts=Няма регистрирани контакти +NoActionsToDo=Няма дейности за извършване +NoRecordedOrders=Няма регистрирани поръчки за продажба +NoRecordedProposals=Няма регистрирани предложения NoRecordedInvoices=Няма регистрирани фактури за продажба NoUnpaidCustomerBills=Няма регистрирани неплатени фактури за продажба NoUnpaidSupplierBills=Няма регистрирани неплатени фактури за доставка NoModifiedSupplierBills=Няма регистрирани фактури за доставка NoRecordedProducts=Няма регистрирани продукти / услуги -NoRecordedProspects=Няма регистрирани перспективи +NoRecordedProspects=Няма регистрирани потенциални клиенти NoContractedProducts=Няма договорени продукти / услуги NoRecordedContracts=Няма регистрирани договори -NoRecordedInterventions=Няма записани намеси +NoRecordedInterventions=Няма регистрирани интервенции BoxLatestSupplierOrders=Последни поръчки за покупка NoSupplierOrder=Няма регистрирани поръчка за покупка -BoxCustomersInvoicesPerMonth=Фактури клиенти по месец +BoxCustomersInvoicesPerMonth=Фактури за продажба на месец BoxSuppliersInvoicesPerMonth=Фактури за доставка на месец -BoxCustomersOrdersPerMonth=Клиентски поръчки на месец +BoxCustomersOrdersPerMonth=Поръчки за продажби на месец BoxSuppliersOrdersPerMonth=Поръчки за покупка на месец -BoxProposalsPerMonth=Предложения за месец -NoTooLowStockProducts=Няма продукт в наличност под желания минимум +BoxProposalsPerMonth=Търговски предложения за месец +NoTooLowStockProducts=Няма продукти в наличност, които да са под желания минимум. BoxProductDistribution=Дистрибуция на продукти / услуги ForObject=На %s BoxTitleLastModifiedSupplierBills=Фактури за доставка: %s последно променени BoxTitleLatestModifiedSupplierOrders=Поръчки за покупка: %s последно променени BoxTitleLastModifiedCustomerBills=Фактури за продажба: %s последно променени -BoxTitleLastModifiedCustomerOrders=Клиентски поръчки: %s последно променени +BoxTitleLastModifiedCustomerOrders=Поръчки за продажба: %s последно променени BoxTitleLastModifiedPropals=Търговски предложения: %s последно променени -ForCustomersInvoices=Клиента фактури -ForCustomersOrders=Клиентски поръчки +ForCustomersInvoices=Фактури за продажба +ForCustomersOrders=Поръчки на продажба ForProposals=Предложения LastXMonthRolling=Подвижни месеци: %s последно изтекли ChooseBoxToAdd=Добавяне на джаджа към таблото diff --git a/htdocs/langs/bg_BG/cashdesk.lang b/htdocs/langs/bg_BG/cashdesk.lang index cccc3f92130..1570f16cd8a 100644 --- a/htdocs/langs/bg_BG/cashdesk.lang +++ b/htdocs/langs/bg_BG/cashdesk.lang @@ -34,7 +34,7 @@ UserNeedPermissionToEditStockToUsePos=Искате да намалите нал DolibarrReceiptPrinter=Dolibarr принтер за квитанции PointOfSale=Точка на продажба PointOfSaleShort=POS -CloseBill=Затваряне на сметка +CloseBill=Приключване на сметка Floors=Floors Floor=Floor AddTable=Добавяне на таблица @@ -63,7 +63,7 @@ AutoPrintTickets=Автоматично отпечатване на билети EnableBarOrRestaurantFeatures=Включете функции за бар или ресторант ConfirmDeletionOfThisPOSSale=Потвърждавате ли изтриването на настоящата продажба? History=История -ValidateAndClose=Валидиране и затваряне +ValidateAndClose=Валидиране и приключване Terminal=Терминал NumberOfTerminals=Брой терминали TerminalSelect=Изберете терминал, който искате да използвате: diff --git a/htdocs/langs/bg_BG/companies.lang b/htdocs/langs/bg_BG/companies.lang index 9f839183654..ba2a4225d02 100644 --- a/htdocs/langs/bg_BG/companies.lang +++ b/htdocs/langs/bg_BG/companies.lang @@ -1,31 +1,31 @@ # Dolibarr language file - Source file is en_US - companies ErrorCompanyNameAlreadyExists=Името на фирмата %s вече съществува. Изберете друго. -ErrorSetACountryFirst=Първо задайте държава +ErrorSetACountryFirst=Първо изберете държава SelectThirdParty=Изберете контрагент ConfirmDeleteCompany=Сигурни ли сте че искате да изтриете тази компания и цялата наследена информация? -DeleteContact=Изтриване на контакт/адрес +DeleteContact=Изтриване на контакт / адрес ConfirmDeleteContact=Сигурни ли сте че искате да изтриете този контакт и цялата наследена информация? MenuNewThirdParty=Нов контрагент MenuNewCustomer=Нов клиент -MenuNewProspect=Нова перспектива +MenuNewProspect=Нов потенциален клиент MenuNewSupplier=Нов доставчик MenuNewPrivateIndividual=Ново физическо лице -NewCompany=Нова фирма (перспектива, клиент, доставчик) -NewThirdParty=Нов контрагент (перспектива, клиент, доставчик) +NewCompany=Нова фирма (потенциален клиент, клиент, доставчик) +NewThirdParty=Нов контрагент (потенциален клиент, клиент, доставчик) CreateDolibarrThirdPartySupplier=Създаване на контрагент (доставчик) -CreateThirdPartyOnly=Създаване контрагент +CreateThirdPartyOnly=Създаване на контрагент CreateThirdPartyAndContact=Създаване на контрагент + свързан контакт -ProspectionArea=Област потенциални -IdThirdParty=ID на контрагент -IdCompany=ID на фирма -IdContact=ID на контакт -Contacts=Контакти/Адреси +ProspectionArea=Секция за потенциални клиенти +IdThirdParty=Идентификатор на контрагент +IdCompany=Идентификатор на фирма +IdContact=Идентификатор на контакт +Contacts=Контакти / Адреси ThirdPartyContacts=Контакти на контрагента ThirdPartyContact=Контакт / Адрес на контрагента Company=Фирма -CompanyName=Име на фирмата +CompanyName=Име на фирма AliasNames=Друго име (търговско, марка, ...) -AliasNameShort=Псевдоним +AliasNameShort=Друго име Companies=Фирми CountryIsInEEC=Държавата е в рамките на Европейската икономическа общност PriceFormatInCurrentLanguage=Формат за показване на цената в текущия език и валута @@ -33,44 +33,44 @@ ThirdPartyName=Име на контрагент ThirdPartyEmail=Имейл на контрагент ThirdParty=Контрагент ThirdParties=Контрагенти -ThirdPartyProspects=Потенциални -ThirdPartyProspectsStats=Потенциални +ThirdPartyProspects=Потенциални клиенти +ThirdPartyProspectsStats=Потенциални клиенти ThirdPartyCustomers=Клиенти ThirdPartyCustomersStats=Клиенти -ThirdPartyCustomersWithIdProf12=Клиентите с %s или %s +ThirdPartyCustomersWithIdProf12=Клиенти с %s или %s ThirdPartySuppliers=Доставчици ThirdPartyType=Вид на контрагента -Individual=Частно лице +Individual=Физическо лице ToCreateContactWithSameName=Автоматично ще създаде контакт / адрес със същата информация като в контрагента. В повечето случаи, дори ако вашия контрагент е частно лице, е достатъчно да създадете само контрагент. ParentCompany=Фирма майка -Subsidiaries=Филиали -ReportByMonth=Отчет по месец -ReportByCustomers=Отчет по клиент -ReportByQuarter=Отчет по оценка -CivilityCode=Граждански код +Subsidiaries=Дъщерни дружества +ReportByMonth=Справка по месеци +ReportByCustomers=Справка по клиенти +ReportByQuarter=Справка по ставки +CivilityCode=Код на обръщение RegisteredOffice=Седалище Lastname=Фамилия Firstname=Собствено име PostOrFunction=Длъжност -UserTitle=Звание -NatureOfThirdParty=Същност контрагента +UserTitle=Обръщение +NatureOfThirdParty=Произход на контрагента Address=Адрес State=Област -StateShort=Състояние +StateShort=Област Region=Регион -Region-State=Регион - Щат +Region-State=Регион - Област Country=Държава -CountryCode=Код на държавата -CountryId=ID на държава +CountryCode=Код на държава +CountryId=Идентификатор на държава Phone=Телефон PhoneShort=Тел. Skype=Скайп -Call=Повикай -Chat=Чат +Call=Позвъни на +Chat=Чат с PhonePro=Сл. телефон PhonePerso=Дом. телефон PhoneMobile=Моб. телефон -No_Email=Отказване от масови имейли +No_Email=Отхвърляне на масови имейли Fax=Факс Zip=Пощенски код Town=Град @@ -80,9 +80,9 @@ DefaultLang=Език по подразбиране VATIsUsed=Използване на ДДС VATIsUsedWhenSelling=Това определя дали този контрагент включва ДДС или не, когато фактурира на своите собствени клиенти VATIsNotUsed=Не използва ДДС -CopyAddressFromSoc=Копирай адреса от детайлите на контрагента -ThirdpartyNotCustomerNotSupplierSoNoRef=Контрагента не е нито клиент, нито доставчик, няма налични свързани обекти -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Контрагента не е нито клиент, нито доставчик, няма възможност за отстъпки +CopyAddressFromSoc=Копиране на адрес на контрагент +ThirdpartyNotCustomerNotSupplierSoNoRef=Контрагента не е нито клиент, нито доставчик и няма налични свързани обекти +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Контрагента не е нито клиент, нито доставчик и няма възможност за отстъпки PaymentBankAccount=Разплащателна банкова сметка OverAllProposals=Предложения OverAllOrders=Поръчки @@ -99,7 +99,7 @@ LocalTax1ES=RE LocalTax2ES=IRPF WrongCustomerCode=Невалиден код на клиент WrongSupplierCode=Невалиден код на доставчик -CustomerCodeModel=Образец на код на клиент +CustomerCodeModel=Модел за код на клиент SupplierCodeModel=Модел за код на доставчик Gencod=Баркод ##### Professional ID ##### @@ -115,8 +115,8 @@ ProfId3=Професионален ID 3 ProfId4=Професионален ID 4 ProfId5=Професионален ID 5 ProfId6=Професионален ID 6 -ProfId1AR=Проф. Id 1 (CUIT/CUIL) -ProfId2AR=Проф. Id 2 (доход бруто) +ProfId1AR=Проф. номер 1 (CUIT/CUIL) +ProfId2AR=Проф. номер 2 (доход бруто) ProfId3AR=- ProfId4AR=- ProfId5AR=- @@ -200,7 +200,7 @@ ProfId4IN=Prof Id 4 ProfId5IN=Prof Id 5 ProfId6IN=- ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg) -ProfId2LU=Id. prof. 2 (Бизнес разрешение) +ProfId2LU=Id. prof. 2 (Business permit) ProfId3LU=- ProfId4LU=- ProfId5LU=- @@ -209,7 +209,7 @@ ProfId1MA=Id prof. 1 (R.C.) ProfId2MA=Id prof. 2 (Patente) ProfId3MA=Id prof. 3 (I.F.) ProfId4MA=Id prof. 4 (C.N.S.S.) -ProfId5MA=Ид. проф. 5 5 (Общ идентификационен номер на фирмата) +ProfId5MA=Id. prof. 5 (I.C.E.) ProfId6MA=- ProfId1MX=Prof Id 1 (R.F.C). ProfId2MX=Prof Id 2 (R..P. IMSS) @@ -261,25 +261,25 @@ VATIntra=Идент. номер по ДДС VATIntraShort=ДДС № VATIntraSyntaxIsValid=Синтаксиса е валиден VATReturn=ДДС декларация -ProspectCustomer=Потенциален / Клиент -Prospect=Потенциален +ProspectCustomer=Потенциален клиент / Клиент +Prospect=Потенциален клиент CustomerCard=Клиентска карта Customer=Клиент CustomerRelativeDiscount=Относителна клиентска отстъпка -SupplierRelativeDiscount=Относителна отстъпка от доставчика +SupplierRelativeDiscount=Относителна отстъпка от доставчик CustomerRelativeDiscountShort=Относителна отстъпка CustomerAbsoluteDiscountShort=Абсолютна отстъпка -CompanyHasRelativeDiscount=Този клиент има по подразбиране отстъпка %s%% +CompanyHasRelativeDiscount=Този клиент има отстъпка по подразбиране в размер на %s%% CompanyHasNoRelativeDiscount=Този клиент няма относителна отстъпка по подразбиране HasRelativeDiscountFromSupplier=Имате отстъпка по подразбиране от %s%% от този доставчик HasNoRelativeDiscountFromSupplier=Нямате относителна отстъпка по подразбиране от този доставчик CompanyHasAbsoluteDiscount=Този клиент има налични отстъпки (кредитни известия или авансови плащания) за %s %s CompanyHasDownPaymentOrCommercialDiscount=Този клиент има налични отстъпки (търговски предложения, авансови плащания) за %s %s -CompanyHasCreditNote=Този клиент все още има кредити за %s %s -HasNoAbsoluteDiscountFromSupplier=Нямате наличен отстъпка от този доставчик +CompanyHasCreditNote=Този клиент все още има кредитни известия в размер на %s %s +HasNoAbsoluteDiscountFromSupplier=Нямате налична отстъпка от този доставчик HasAbsoluteDiscountFromSupplier=Имате налични отстъпки (кредитно известие или авансови плащания) за %s %s от този доставчик HasDownPaymentOrCommercialDiscountFromSupplier=Имате налични отстъпки (търговски предложения, авансови плащания) за %s %s от този доставчик -HasCreditNoteFromSupplier=Имате кредитно известия за %s от %s този доставчик +HasCreditNoteFromSupplier=Имате кредитни известия за %s %s от този доставчик CompanyHasNoAbsoluteDiscount=Този клиент не разполага с наличен кредит за отстъпка CustomerAbsoluteDiscountAllUsers=Абсолютни клиентски отстъпки (предоставени от всички потребители) CustomerAbsoluteDiscountMy=Абсолютни клиентски отстъпки (предоставена от вас) @@ -288,18 +288,18 @@ SupplierAbsoluteDiscountMy=Абсолютни отстъпки от достав DiscountNone=Няма Vendor=Доставчик Supplier=Доставчик -AddContact=Създай контакт -AddContactAddress=Създй контакт/адрес -EditContact=Редактиране на контакт -EditContactAddress=Редактиране на контакт/адрес +AddContact=Създаване на контакт +AddContactAddress=Създаване на контакт / адрес +EditContact=Променяне на контакт +EditContactAddress=Променяне на контакт / адрес Contact=Контакт -ContactId=Контакт -ContactsAddresses=Контакти/Адреси +ContactId=Идентификатор на контакт +ContactsAddresses=Контакти / Адреси FromContactName=Име: -NoContactDefinedForThirdParty=Няма зададен контакт за тази контрагент -NoContactDefined=Няма зададен контакт -DefaultContact=Контакт/адрес по подразбиране -AddThirdParty=Създаване контрагент +NoContactDefinedForThirdParty=Няма дефиниран контакт за този контрагент +NoContactDefined=Няма дефиниран контакт +DefaultContact=Контакт / адрес по подразбиране +AddThirdParty=Създаване на контрагент DeleteACompany=Изтриване на фирма PersonalInformations=Лични данни AccountancyCode=Счетоводна сметка @@ -309,92 +309,92 @@ CustomerCodeShort=Код на клиента SupplierCodeShort=Код на доставчика CustomerCodeDesc=Код на клиента, уникален за всички клиенти SupplierCodeDesc=Код на доставчика, уникален за всички доставчици -RequiredIfCustomer=Изисква се, ако контрагентът е клиент или потенциален +RequiredIfCustomer=Изисква се, ако контрагентът е клиент или потенциален клиент RequiredIfSupplier=Изисква се, ако контрагента е доставчик ValidityControledByModule=Валидност, контролирана от модул ThisIsModuleRules=Правила за този модул -ProspectToContact=Потенциален за контакт +ProspectToContact=Потенциален клиент за контакт CompanyDeleted=Фирма "%s" е изтрита от базата данни. -ListOfContacts=Списък на контакти/адреси +ListOfContacts=Списък на контакти / адреси ListOfContactsAddresses=Списък на контакти / адреси ListOfThirdParties=Списък на контрагенти ShowCompany=Показване на контрагент -ShowContact=Покажи контакт +ShowContact=Показване на контакт ContactsAllShort=Всички (без филтър) -ContactType=Тип на контакт -ContactForOrders=Контакт за поръчката -ContactForOrdersOrShipments=Контакт за поръчки или пратки +ContactType=Тип контакт +ContactForOrders=Контакт за поръчка +ContactForOrdersOrShipments=Контакт за поръчка или доставка ContactForProposals=Контакт за предложение ContactForContracts=Контакт за договор ContactForInvoices=Контакт за фактура -NoContactForAnyOrder=Този контакт не е контакт за поръчка -NoContactForAnyOrderOrShipments=Този контакт не е контакт за поръчка или пратка -NoContactForAnyProposal=Този контакт не е контакт за търговско предложение -NoContactForAnyContract=Този контакт не е контакт за договор -NoContactForAnyInvoice=Този контакт не е контакт за фактура +NoContactForAnyOrder=Не е контакт за поръчка +NoContactForAnyOrderOrShipments=Не е контакт за поръчка или доставка +NoContactForAnyProposal=Не е контакт за търговско предложение +NoContactForAnyContract=Не е контакт за договор +NoContactForAnyInvoice=Не е контакт за фактура NewContact=Нов контакт NewContactAddress=Нов контакт / адрес -MyContacts=Моите контакти +MyContacts=Мои контакти Capital=Капитал -CapitalOf=Столица на %s -EditCompany=Редактиране на фирма -ThisUserIsNot=Този потребител не е перспектива, нито клиент, нито доставчик +CapitalOf=Капитал от %s +EditCompany=Променяне на фирма +ThisUserIsNot=Този потребител не е потенциален клиент, нито клиент, нито доставчик VATIntraCheck=Проверка -VATIntraCheckDesc=Идентификационния номер по ДДС трябва да включва префикса на държавата. Връзката %s използва услугата на Европейската Комисия за проверка на ДДС (VIES), която изисква достъп до интернет извън сървъра на Dolibarr. +VATIntraCheckDesc=Идентификационния номер по ДДС трябва да включва префикса на държавата. Връзката %s използва услугата на Европейската комисия за проверка на номер по ДДС (VIES), която изисква достъп до интернет извън сървъра на Dolibarr. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do -VATIntraCheckableOnEUSite=Проверяване на вътрешно-общностния идентификационен номер по ДДС на интернет страницата на Европейската Комисия -VATIntraManualCheck=Можете също така да проверите ръчно на интернет страницата на Европейската Комисия %s -ErrorVATCheckMS_UNAVAILABLE=Проверката не е възможнао. Услугата не се предоставя от държавата-членка (%s). -NorProspectNorCustomer=Нито перспектива, нито клиент +VATIntraCheckableOnEUSite=Проверяване на вътрешно-общностния идентификационен номер по ДДС в интернет страницата на Европейската Комисия +VATIntraManualCheck=Може да проверите също така ръчно в интернет страницата на Европейската Комисия: %s +ErrorVATCheckMS_UNAVAILABLE=Проверка не е възможна. Услугата за проверка не се предоставя от държавата-членка (%s). +NorProspectNorCustomer=Нито потенциален клиент, нито клиент JuridicalStatus=Правна форма Staff=Служители -ProspectLevelShort=Потенциален -ProspectLevel=Потенциален -ContactPrivate=Частен +ProspectLevelShort=Потенциал +ProspectLevel=Потенциал +ContactPrivate=Личен ContactPublic=Споделен ContactVisibility=Видимост ContactOthers=Друг -OthersNotLinkedToThirdParty=Други, не свързани с контрагент -ProspectStatus=Потенциален статус +OthersNotLinkedToThirdParty=Другите, не свързани с контрагент +ProspectStatus=Статус на клиента PL_NONE=Няма PL_UNKNOWN=Неизвестен -PL_LOW=Ниско -PL_MEDIUM=Средно -PL_HIGH=Високо +PL_LOW=Нисък +PL_MEDIUM=Среден +PL_HIGH=Висок TE_UNKNOWN=- -TE_STARTUP=Стартира +TE_STARTUP=Стартъп TE_GROUP=Голяма фирма -TE_MEDIUM=Средно голяма фирма +TE_MEDIUM=Средна фирма TE_ADMIN=Правителствена TE_SMALL=Малка фирма TE_RETAIL=Търговец на дребно TE_WHOLE=Търговец на едро -TE_PRIVATE=Частно лице +TE_PRIVATE=Физическо лице TE_OTHER=Друг -StatusProspect-1=Да не контактува -StatusProspect0=Никога не е контактувано +StatusProspect-1=Да не се контактува +StatusProspect0=Не е контактувано StatusProspect1=Да се контактува -StatusProspect2=Контакт в процес -StatusProspect3=Контактът е направен -ChangeDoNotContact=Промяна на статуса до 'Да не контактува'; -ChangeNeverContacted=Промяна на статуса до 'Никога не е контактувано'; -ChangeToContact=Промяна на статуса на „Да се контактува“ -ChangeContactInProcess=Промяна на статуса до 'Контакт в процес' -ChangeContactDone=Промяна на статуса до 'Да се контактува' -ProspectsByStatus=Потенциални по статус +StatusProspect2=В процес на контактуване +StatusProspect3=Осъществен контакт +ChangeDoNotContact=Променяне на статуса на "Да не се контактува" +ChangeNeverContacted=Променяне на статуса на "Не е контактувано" +ChangeToContact=Променяне на статуса на "Да се контактува" +ChangeContactInProcess=Променяне на статуса на "В процес на контактуване" +ChangeContactDone=Променяне на статуса на "Осъществен контакт" +ProspectsByStatus=Потенциални клиенти по статус NoParentCompany=Няма -ExportCardToFormat=Износна карта формат -ContactNotLinkedToCompany=Контактът не е свързан с никой контрагент -DolibarrLogin=Dolibarr вход -NoDolibarrAccess=Няма Dolibarr достъп -ExportDataset_company_1=Контрагенти (фирми / фондации / частни лица) и техните характеристики +ExportCardToFormat=Карта за експортиране във формат +ContactNotLinkedToCompany=Контактът не е свързан с нито един контрагент +DolibarrLogin=Dolibarr потребител +NoDolibarrAccess=Няма достъп до Dolibarr +ExportDataset_company_1=Контрагенти (фирми / фондации / физически лица) и техните характеристики ExportDataset_company_2=Контакти и техните характеристики ImportDataset_company_1=Контрагенти и техните характеристики ImportDataset_company_2=Допълнителни контакти / адреси и атрибути към контрагента -ImportDataset_company_3=Банкови сметки на контрагентите -ImportDataset_company_4=Търговски представители на контрагента (назначени търговски представители / потребители на към фирмите) +ImportDataset_company_3=Банкови сметки на контрагенти +ImportDataset_company_4=Търговски представители за контрагента (назначени търговски представители / потребители към фирмите) PriceLevel=Ценово ниво -PriceLevelLabels=Имена на ценовите нива +PriceLevelLabels=Етикети на ценови нива DeliveryAddress=Адрес за доставка AddAddress=Добавяне на адрес SupplierCategory=Категория на доставчика @@ -404,31 +404,31 @@ ConfirmDeleteFile=Сигурен ли сте, че искате да изтри AllocateCommercial=Назначен търговски представител Organization=Организация FiscalYearInformation=Фискална година -FiscalMonthStart=Начален месец на фискалната година -YouMustAssignUserMailFirst=Трябва да създадете имейл за този потребител, преди да можете да добавите известие по имейл. -YouMustCreateContactFirst=За да можете да добавяте известия по имейл, първо трябва да определите контакти с валидни имейли за контрагента -ListSuppliersShort=Списък на доставчиците -ListProspectsShort=Списък на перспективите -ListCustomersShort=Списък на клиентите +FiscalMonthStart=Начален месец на фискална година +YouMustAssignUserMailFirst=Трябва да създадете имейл за този потребител, преди да може да добавите известие по имейл. +YouMustCreateContactFirst=За да може да добавяте известия по имейл, първо трябва да определите контакти с валидни имейли за контрагента +ListSuppliersShort=Списък на доставчици +ListProspectsShort=Списък на потенциални клиенти +ListCustomersShort=Списък на клиенти ThirdPartiesArea=Контрагенти / контакти LastModifiedThirdParties=Контрагенти: %s последно променени UniqueThirdParties=Общ брой контрагенти InActivity=Отворен ActivityCeased=Затворен ThirdPartyIsClosed=Контрагента е затворен -ProductsIntoElements=Списък на продуктите/услугите в %s -CurrentOutstandingBill=Текуща висяща сметка -OutstandingBill=Макс. за висяща сметка -OutstandingBillReached=Максималния кредитен лимит е достигнат +ProductsIntoElements=Списък на продукти / услуги в %s +CurrentOutstandingBill=Текуща неизплатена сметка +OutstandingBill=Максимална неизплатена сметка +OutstandingBillReached=Достигнат е максимумът за неизплатена сметка OrderMinAmount=Минимално количество за поръчка -MonkeyNumRefModelDesc=Генерира номер с формат %sYYMM-NNNN за код на клиент и %sYYMM-NNNN за код на доставчик, където YY е година, MM е месецa, а NNNN е поредица без прекъсване и без връщане към 0. -LeopardNumRefModelDesc=Кодът е безплатен. Този код може да бъде променен по всяко време. -ManagingDirectors=Име на управител(и) (гл. изп. директор, директор, президент...) +MonkeyNumRefModelDesc=Генерира номер с формат %syymm-nnnn за код на клиент и %syymm-nnnn за код на доставчик, където yy е година, mm е месецa, а nnnn е поредица без прекъсване и без връщане към 0. +LeopardNumRefModelDesc=Кодът е свободен. Този код може да бъде променян по всяко време. +ManagingDirectors=Име на управител (изпълнителен директор, директор, президент...) MergeOriginThirdparty=Дублиращ контрагент (контрагентът, който искате да изтриете) -MergeThirdparties=Сливане на контрагенти +MergeThirdparties=Обединяване на контрагенти ConfirmMergeThirdparties=Сигурни ли сте, че искате да обедините този контрагент с текущия? Всички свързани обекти (фактури, поръчки, ...) ще бъдат преместени в текущия контрагент, след което контрагента ще бъде изтрит. ThirdpartiesMergeSuccess=Контрагентите са обединени -SaleRepresentativeLogin=Входна информация за търговския представител +SaleRepresentativeLogin=Входна информация за търговски представител SaleRepresentativeFirstname=Собствено име на търговския представител SaleRepresentativeLastname=Фамилия на търговския представител ErrorThirdpartiesMerge=При изтриването на контрагента възникна грешка. Моля, проверете историята. Промените са отменени. diff --git a/htdocs/langs/bg_BG/contracts.lang b/htdocs/langs/bg_BG/contracts.lang index 97a5594bab1..4009928c061 100644 --- a/htdocs/langs/bg_BG/contracts.lang +++ b/htdocs/langs/bg_BG/contracts.lang @@ -2,7 +2,7 @@ ContractsArea=Секция за договори ListOfContracts=Списък на договори AllContracts=Всички договори -ContractCard=Карта +ContractCard=Договор ContractStatusNotRunning=Не се изпълнява ContractStatusDraft=Чернова ContractStatusValidated=Валидиран diff --git a/htdocs/langs/bg_BG/donations.lang b/htdocs/langs/bg_BG/donations.lang index d4d23b26c78..e9d89f90726 100644 --- a/htdocs/langs/bg_BG/donations.lang +++ b/htdocs/langs/bg_BG/donations.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - donations Donation=Дарение Donations=Дарения -DonationRef=Дарение +DonationRef=Реф. дарение Donor=Дарител AddDonation=Създаване на дарение NewDonation=Ново дарение @@ -9,26 +9,26 @@ DeleteADonation=Изтриване на дарение ConfirmDeleteADonation=Сигурни ли сте, че искате да изтриете това дарение? ShowDonation=Показване на дарение PublicDonation=Публично дарение -DonationsArea=Дарения -DonationStatusPromiseNotValidated=Обещано дарение -DonationStatusPromiseValidated=Потвърдено дарение -DonationStatusPaid=Получено дарение -DonationStatusPromiseNotValidatedShort=Проект -DonationStatusPromiseValidatedShort=Потвърдено +DonationsArea=Секция за дарения +DonationStatusPromiseNotValidated=Чернова +DonationStatusPromiseValidated=Валидирано +DonationStatusPaid=Получено +DonationStatusPromiseNotValidatedShort=Чернова +DonationStatusPromiseValidatedShort=Валидирано DonationStatusPaidShort=Получено DonationTitle=Разписка за дарение DonationDatePayment=Дата на плащане -ValidPromess=Потвърждаване на дарението +ValidPromess=Валидиране на дарение DonationReceipt=Разписка за дарение -DonationsModels=Образци на документи за разписки за дарения +DonationsModels=Модели на документи за разписки за дарения LastModifiedDonations=Дарения: %s последно променени -DonationRecipient=Получател на дарението -IConfirmDonationReception=Получателят декларира, че е получил дарение на стойност -MinimumAmount=Минималното количество е %s -FreeTextOnDonations=Свободен текст, който да се показва в долния колонтитул +DonationRecipient=Получател на дарение +IConfirmDonationReception=Получателят декларира полученото като дарение на следната сума +MinimumAmount=Минималната сума е %s +FreeTextOnDonations=Свободен текст в дарения FrenchOptions=Опции за Франция -DONATION_ART200=Показване на артикул 200 от CGI ако сте загрижени -DONATION_ART238=Показване на артикул 238 от CGI ако сте загрижени -DONATION_ART885=Показване на артикул 885 от CGI ако сте загрижени +DONATION_ART200=Показване на артикул 200 от CGI, ако сте загрижени +DONATION_ART238=Показване на артикул 238 от CGI, ако сте загрижени +DONATION_ART885=Показване на артикул 885 от CGI, ако сте загрижени DonationPayment=Плащане на дарение DonationValidated=Дарение %s е валидирано diff --git a/htdocs/langs/bg_BG/errors.lang b/htdocs/langs/bg_BG/errors.lang index 5818039f365..a277ca94c52 100644 --- a/htdocs/langs/bg_BG/errors.lang +++ b/htdocs/langs/bg_BG/errors.lang @@ -7,7 +7,7 @@ ErrorButCommitIsDone=Бяха намерени грешки, но въпреки ErrorBadEMail=Имейлът %s е грешен ErrorBadUrl=Адреса %s не е ErrorBadValueForParamNotAString=Неправилна стойност за параметъра ви. Обикновено, когато липсва превод. -ErrorLoginAlreadyExists=Вход %s вече съществува. +ErrorLoginAlreadyExists=Потребителят %s вече съществува. ErrorGroupAlreadyExists=Група %s вече съществува. ErrorRecordNotFound=Запишете не е намерен. ErrorFailToCopyFile=Не успя да копира файла "%s" в "%s". @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Специални знаци не са ра ErrorNumRefModel=Позоваване съществува в база данни (%s) и не е съвместим с това правило за номериране. Премахване на запис или преименува препратка към активира този модул. ErrorQtyTooLowForThisSupplier=Прекалено ниско количество за този доставчик или не е определена цена на продукта за този доставчик ErrorOrdersNotCreatedQtyTooLow=Някои поръчки не са създадени поради твърде ниски количества -ErrorModuleSetupNotComplete=Настройката на модула изглежда непълна. Отидете на Начало - Настройка - Модули, за да я завършите. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Грешка на маска ErrorBadMaskFailedToLocatePosOfSequence=Грешка, маска без поредния номер ErrorBadMaskBadRazMonth=Грешка, неправилна стойност за нулиране @@ -102,7 +102,7 @@ ErrorProdIdAlreadyExist=%s се възлага на друга трета ErrorFailedToSendPassword=Не може да се изпрати парола ErrorFailedToLoadRSSFile=Не успее да получи RSS Feed. Опитайте се да добавите постоянно MAIN_SIMPLEXMLLOAD_DEBUG ако съобщения за грешки не предоставя достатъчно информация. ErrorForbidden=Достъпът отказан.
Опитвате се да отворите страница, зона или функция на деактивиран модул или сте в неудостоверена сесия или това не е позволено за Вашия потребител. -ErrorForbidden2=Разрешение за вход може да бъде определена от вашия администратор Dolibarr от менюто %s-> %s. +ErrorForbidden2=Права за този потребител могат да бъдат определени от вашият Dolibarr администратор в меню %s -> %s. ErrorForbidden3=Изглежда, че Dolibarr не се използва чрез заверено сесия. Обърнете внимание на документация за настройка Dolibarr за знаят как да управляват удостоверявания (Htaccess, mod_auth или други ...). ErrorNoImagickReadimage=Клас Imagick не се намира в тази PHP. Без визуализация могат да бъдат на разположение. Администраторите могат да деактивирате тази раздела от менюто Setup - Display. ErrorRecordAlreadyExists=Запис вече съществува @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL адресът %s трябва да започва ErrorNewRefIsAlreadyUsed=Грешка, новата референция вече е използвана ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Грешка, изтриването на плащане, свързано с приключена фактура, е невъзможно. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=За този член бе зададена парола. Въпреки това, не е създаден потребителски акаунт. Така че тази парола е съхранена, но не може да се използва за влизане в Dolibarr. Може да се използва от външен модул/интерфейс, но ако не е необходимо да дефинирате потребителско име или парола за член може да деактивирате опцията "Управление на вход за всеки член" от настройката на модула Членове. Ако трябва да управлявате вход, но не се нуждаете от парола, можете да запазите това поле празно, за да избегнете това предупреждение. Забележка: Имейлът може да се използва и като вход, ако членът е свързан с потребител. WarningMandatorySetupNotComplete=Кликнете тук, за да настроите задължителните параметри WarningEnableYourModulesApplications=Кликнете тук, за да активирате вашите модули и приложения @@ -230,7 +231,7 @@ WarningsOnXLines=Предупреждения върху %s линии и WarningNoDocumentModelActivated=Не е активиран модел за генериране на документи. Няма да бъде избран модел по подразбиране, докато не проверите настройката на модула. WarningLockFileDoesNotExists=Внимание, след като инсталацията приключи, трябва да деактивирате инструментите за инсталиране/миграция, като добавите файл install.lock в директорията %s. Липсата на този файл е сериозен риск за сигурността. WarningUntilDirRemoved=Всички предупреждения за сигурността (видими само от администраторите) ще останат активни, докато е налице уязвимостта (или се добави константа MAIN_REMOVE_INSTALL_WARNING в Настройка -> Други настройки). -WarningCloseAlways=Внимание, затваряне се прави, дори ако сумата се различава между източника и целеви елементи. Активирайте тази функция с повишено внимание. +WarningCloseAlways=Внимание, приключването се извършва, дори ако количеството се различава между източника и целевите елементи. Активирайте тази функция с повишено внимание. WarningUsingThisBoxSlowDown=Предупреждение, използвайки това поле сериозно забавя всички страници, които го показват. WarningClickToDialUserSetupNotComplete=Настройките на информацията за ClickToDial за вашия потребител са непълни (вижте таб ClickToDial във вашата потребителска карта). WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Фунцкията е неактива, когато конфигурацията на показването е оптимизирана за незрящ човек или текстови браузери. diff --git a/htdocs/langs/bg_BG/exports.lang b/htdocs/langs/bg_BG/exports.lang index 8ced9342b21..09ea3bdddf6 100644 --- a/htdocs/langs/bg_BG/exports.lang +++ b/htdocs/langs/bg_BG/exports.lang @@ -1,42 +1,42 @@ # Dolibarr language file - Source file is en_US - exports -ExportsArea=Износът площ -ImportArea=Внос област -NewExport=Нов износ -NewImport=Нов внос +ExportsArea=Секция за експортиране +ImportArea=Секция за импортиране +NewExport=Ново експортиране +NewImport=Ново импортиране ExportableDatas=Изнасяни набор от данни ImportableDatas=Се внасят набор от данни SelectExportDataSet=Изберете набор от данни, които искате да експортирате ... SelectImportDataSet=Изберете набор от данни, който искате да импортирате ... -SelectExportFields=Изберете полетата, които искате да експортирате, или да изберете предварително дефинирана Profil износ -SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: -NotImportedFields=Области на файла източник не са внесени -SaveExportModel=Запази този профил за износ, ако смятате да го използвате отново по-късно ... -SaveImportModel=Запази този профил за внос, ако смятате да го използвате отново по-късно ... +SelectExportFields=Изберете полетата, които искате да експортирате или изберете предварително дефиниран профил за експортиране +SelectImportFields=Изберете полетата на вашият файл, които искате да импортирате и техните целеви полета в базата данни като ги преместите нагоре или надолу с помощта на %s, или изберете предварително дефиниран профил за импортиране: +NotImportedFields=Полетата на входния файл не са импортирани +SaveExportModel=Запазване на вашият избор като профил / шаблон за експортиране (за повторно използване). +SaveImportModel=Запазване на този профил за импортиране (за повторно използване)... ExportModelName=Износ името на профила -ExportModelSaved=Export профила записват под името %s. +ExportModelSaved=Профилът за експортиране е запазен като %s. ExportableFields=Изнасяни полета ExportedFields=Износът на полета ImportModelName=Име Внос профил -ImportModelSaved=Внос профила спаси под името %s. +ImportModelSaved=Профилът за импортиране е запазен като %s. DatasetToExport=Dataset за износ DatasetToImport=Импортиране на файл в масив от данни ChooseFieldsOrdersAndTitle=Изберете полета за ... FieldsTitle=Полетата заглавие FieldTitle=Заглавие -NowClickToGenerateToBuildExportFile=Сега, изберете файловия формат, в комбо кутия и кликнете върху "Генериране" за изграждане на файл за износ ... +NowClickToGenerateToBuildExportFile=Сега, изберете формата на файла от полето на комбинирания списък и кликнете върху „Генериране“, за да създадете файла за експортиране... AvailableFormats=Налични формати LibraryShort=Библиотека Step=Стъпка -FormatedImport=Import assistant -FormatedImportDesc1=This area allows to import personalized data, using an assistant to help you in process without technical knowledge. -FormatedImportDesc2=First step is to choose a king of data you want to load, then file to load, then to choose which fields you want to load. -FormatedExport=Export assistant -FormatedExportDesc1=This area allows to export personalized data, using an assistant to help you in process without technical knowledge. -FormatedExportDesc2=First step is to choose a predefined dataset, then to choose which fields you want in your result files, and which order. -FormatedExportDesc3=When data to export are selected, you can define output file format you want to export your data to. +FormatedImport=Асистент за импортиране +FormatedImportDesc1=Този модул ви позволява да актуализирате съществуващи данни или да добавяте нови обекти в базата данни от файл без технически познания, използвайки асистент. +FormatedImportDesc2=Първата стъпка е да изберете вида данни, които искате да импортирате, след това формата на файла съдържащ информацията за импортиране и полетата, които искате да импортирате. +FormatedExport=Асистент за експортиране +FormatedExportDesc1=Тези инструменти позволяват експортирането на персонализирани данни с помощта на асистент, за да ви помогне в процеса, без да се изискват технически познания. +FormatedExportDesc2=Първата стъпка е да изберете предварително дефиниран набор от данни, а след това кои полета искате да експортирате и в какъв ред. +FormatedExportDesc3=Когато са избрани данните за експортиране може да изберете формата на изходния файл. Sheet=Лист NoImportableData=Не се внасят данни (без модул с определенията, за да се позволи на импортирането на данни) -FileSuccessfullyBuilt=File generated +FileSuccessfullyBuilt=Файлът е генериран SQLUsedForExport=SQL Заявка използвани за изграждане на износно досие LineId=Id на линия LineLabel=Етикет на ред @@ -44,90 +44,90 @@ LineDescription=Описание на линия LineUnitPrice=Единичната цена на линия LineVATRate=ДДС Цена на линия LineQty=Количество за линия -LineTotalHT=Сума нетно от данък за съответствие +LineTotalHT=Сума без данък за ред LineTotalTTC=Сума с данък линия LineTotalVAT=Размер на ДДС за линия TypeOfLineServiceOrProduct=Вид на линията (0 = продукт, 1 = услуга) FileWithDataToImport=Файл с данни за внос FileToImport=Източник файл, за да импортирате -FileMustHaveOneOfFollowingFormat=Файл за импортиране трябва да има следния формат -DownloadEmptyExample=Изтеглете пример за празна файла източник -ChooseFormatOfFileToImport=Изберете формат на файла, за да се използва като формат на файла за импортиране, като кликнете върху %s икони за да го изберете ... -ChooseFileToImport=Качване на файл и след това кликнете върху %s икони, за да изберете файл като източник на внос файл ... +FileMustHaveOneOfFollowingFormat=Файлът за импортиране трябва да бъде в един от следните формати +DownloadEmptyExample=Изтегляне на шаблонния файл с информация за съдържанието на полето (* са задължителни полета) +ChooseFormatOfFileToImport=Изберете формата на файла, който да използвате като формат за импортиране, като кликнете върху иконата на %s, за да го изберете... +ChooseFileToImport=Качете на файл, след което кликнете върху иконата %s, за да изберете файла като файл съдържащ данните за импортиране... SourceFileFormat=Изходния формат на файла FieldsInSourceFile=Полетата в файла източник -FieldsInTargetDatabase=Target fields in Dolibarr database (bold=mandatory) -Field=Област +FieldsInTargetDatabase=Целеви полета в базата данни на Dolibarr (удебелен шрифт = задължително) +Field=Поле NoFields=Не полета MoveField=Преместете поле %s броя на колоните ExampleOfImportFile=Example_of_import_file SaveImportProfile=Запиши този профил за внос ErrorImportDuplicateProfil=Грешка при запазване на този профил за внос с това име. Съществуващ профил с това име вече съществува. TablesTarget=Целеви маси -FieldsTarget=Целеви области -FieldTarget=Целева областта -FieldSource=Източник областта +FieldsTarget=Целеви полета +FieldTarget=Целево поле +FieldSource=Начално поле NbOfSourceLines=Брой на линиите във файла източник -NowClickToTestTheImport=Проверете внос параметрите, които сте задали. Ако те са правилни, кликнете върху бутона "%s", за да започне симулация на процеса на импортиране (няма данни ще се промени във вашата база данни, това е само симулация за момента) ... -RunSimulateImportFile=Стартиране на симулация внос -FieldNeedSource=This field requires data from the source file +NowClickToTestTheImport=Проверете дали файловият формат (разделители за поле и низ) на вашият файл съответства на показаните опции и че сте пропуснали заглавния ред или те ще бъдат маркирани като грешки в следващата симулация.
Кликнете върху бутона "%s", за да проверите структурата / съдържанието на файла и да симулирате процеса на импортиране.
Няма да бъдат променяни данни в базата данни . +RunSimulateImportFile=Стартиране на симулация за импортиране +FieldNeedSource=Това поле изисква данни от файла източник SomeMandatoryFieldHaveNoSource=Някои от задължителните полета не са източник от файл с данни InformationOnSourceFile=Информация за файла източник -InformationOnTargetTables=Информация за целевите области +InformationOnTargetTables=Информация за целевите полета SelectAtLeastOneField=Включете поне едно поле източник в колоната на полета за износ SelectFormat=Изберете този файлов формат за внос -RunImportFile=Стартиране на файл от вноса -NowClickToRunTheImport=Проверете резултат на внос симулация. Ако всичко е наред, стартиране на окончателен внос. -DataLoadedWithId=Цялата информация ще бъде заредена с следното id на импорт:\n%s -ErrorMissingMandatoryValue=Задължителни данни в файла източник за полеви %s е празна. -TooMuchErrors=Все още %s други линии код с грешки, но продукцията е ограничена. -TooMuchWarnings=Все още %s други линии източник с предупреждения, но продукцията е ограничена. +RunImportFile=Импортиране на данни +NowClickToRunTheImport=Проверете резултатите от симулацията за импортиране. Коригирайте всички грешки и повторете теста.
Когато симулацията не съобщава за грешки може да продължите с импортирането на данните в базата данни. +DataLoadedWithId=Импортираните данни ще имат допълнително поле във всяка таблица на базата данни с този идентификатор за импортиране: %s, за да могат да се търсят в случай на проучване за проблем, свързан с това импортиране. +ErrorMissingMandatoryValue=Липсват задължителните данни във файла източник за поле %s. +TooMuchErrors=Все още има %s други източници с грешки, но списъкът с грешки е редуциран. +TooMuchWarnings=Все още има %s други източници с предупреждения, но списъкът с грешки е редуциран. EmptyLine=Празен ред (ще бъдат отхвърлени) -CorrectErrorBeforeRunningImport=Трябва първо да поправи всички грешки, преди да пуснете окончателен внос. +CorrectErrorBeforeRunningImport=Трябва да коригирате всички грешки, преди да изпълните окончателното импортиране. FileWasImported=Файла е внесен с цифровите %s. -YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field import_key='%s'. +YouCanUseImportIdToFindRecord=Може да намерите всички импортирани записи във вашата база данни, чрез филтриране за поле import_key = '%s'. NbOfLinesOK=Брой на линии с грешки и без предупреждения: %s. NbOfLinesImported=Брой на линиите успешно внесени: %s. DataComeFromNoWhere=Стойност да вмъкнете идва от нищото в изходния файл. DataComeFromFileFieldNb=Стойност да вмъкнете идва от %s номер в полето файла източник. -DataComeFromIdFoundFromRef=Стойност, която идва от %s номер на полето на изходния файл ще бъдат използвани за намиране ID на родител обект да използвате (Така Objet %s, че има код от файла източник трябва да съществува в Dolibarr). -DataComeFromIdFoundFromCodeId=Code that comes from field number %s of source file will be used to find id of parent object to use (So the code from source file must exists into dictionary %s). Note that if you know id, you can also use it into source file instead of code. Import should work in both cases. -DataIsInsertedInto=Данни, идващи от файла източник, ще се добавя в следните области: -DataIDSourceIsInsertedInto=Идентификацията на родителския обект, намерен с помощта на данни във файла източник, ще се добавя в следните области: -DataCodeIDSourceIsInsertedInto=ID на родител ред от кода, ще се включат в следните области: +DataComeFromIdFoundFromRef=Стойността, която идва от поле с номер %s на файла източник ще бъде използвана за намиране на идентификатора на главния обект, който да се използва (така че обектът %s, който има реф. от файла източник трябва да съществува в базата данни) +DataComeFromIdFoundFromCodeId=Кодът, който идва от поле с номер %s на файла източник ще бъде използван за намиране на идентификатора на главния обект, който да се използва (така че кодът от файла източник трябва да съществува в речника %s). Обърнете внимание, че ако знаете id-то можете да го използвате и във файла източник вместо кода. Импортирането трябва да работи и в двата случая. +DataIsInsertedInto=Данните идващи от входния файл ще бъдат вмъкнати в следното поле: +DataIDSourceIsInsertedInto=Идентификационният номер (id) на главния обект е намерен с помощта на данните във файла източник и ще бъде вмъкнат в следното поле: +DataCodeIDSourceIsInsertedInto=Идентификатора на основния ред, открит от кода, ще бъде вмъкнат в следното поле: SourceRequired=Стойността на данните е задължително SourceExample=Пример за възможно стойността на данните ExampleAnyRefFoundIntoElement=Всеки код за елемент %s ExampleAnyCodeOrIdFoundIntoDictionary=Всеки код (или id) намерено в речник %s -CSVFormatDesc=Разделени със запетаи формат стойност файл (CSV).
Това е формат текстов файл, където полетата са разделени със сепаратор [%s]. Ако сепаратор се намира във вътрешността съдържанието поле, поле се закръглява кръг характер [%s]. Бягство характер, за да избягат кръг характер е %s]. -Excel95FormatDesc=Файлов формат на Excel (XLS)
Това е роден Excel 95 формат (BIFF5). -Excel2007FormatDesc=Excel файлов формат (XLSX)
Това е роден формат Excel 2007 (SpreadsheetML). +CSVFormatDesc= Стойност, разделена със запетая файлов формат (.csv).
Това е формат на текстов файл, в който полетата са разделени от разделител [%s]. Ако в съдържанието на полето бъде открит разделител, то полето се закръглява със закръгляващ символ [%s]. Escape символа определящ закръгляващия символ е [%s]. +Excel95FormatDesc=Excel файлов формат (.xls)
Това е оригинален формат на Excel 95 (BIFF5). +Excel2007FormatDesc=Excel файлов формат (.xlsx).
Това е оригинален формат на Excel 2007 (SpreadsheetML). TsvFormatDesc=Tab раздяла формат стойност файл (TSV)
Това е формат текстов файл, където полетата са разделени с табулатор [Tab]. -ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). -CsvOptions=Csv опции -Separator=Разделител -Enclosure=Enclosure +ExportFieldAutomaticallyAdded=Полето %s е автоматично добавено. Ще бъдат избегнати подобни редове, които да се третират като дублиращи се записи (с добавянето на това поле всички редове ще притежават свой собствен идентификатор (id) и ще се различават). +CsvOptions=Опции за формат CSV +Separator=Разделител за полета +Enclosure=Разделител на низове SpecialCode=Специален код ExportStringFilter=%% позволява заместването на един или повече знаци в текста -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values -ImportFromLine=Import starting from line number -EndAtLineNb=End at line number -ImportFromToLine=Import line numbers (from - to) -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines -KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt -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 +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: филтри по година/месец/ден
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: филтри с обхват година/месец/ден
> YYYY, > YYYYMM, > YYYYMMDD: филтри за следващи години/месеци/дни
< YYYY, < YYYYMM, < YYYYMMDD: филтри за предишни години/месеци/дни +ExportNumericFilter=NNNNN филтри по една стойност
NNNNN+NNNNN филтри с обхват от стойности
< NNNNN филтри с по-ниски стойности
> NNNNN филтри с по-високи стойности +ImportFromLine=Импортиране с начален ред +EndAtLineNb=Край с последен ред +ImportFromToLine=Обхват (от - до), например да пропуснете заглавните редове +SetThisValueTo2ToExcludeFirstLine=Например, задайте тази стойност на 3, за да изключите първите 2 реда.
Ако заглавните редове не са пропуснати, това ще доведе до множество грешки по време на симулацията за импортиране. +KeepEmptyToGoToEndOfFile=Запазете това поле празно, за да обработите всички редове до края на файла. +SelectPrimaryColumnsForUpdateAttempt=Изберете колона(и), които да използвате като първичен ключ за импортиране на актуализация +UpdateNotYetSupportedForThisImport=Актуализацията не се поддържа за този тип импортиране (само вмъкване) +NoUpdateAttempt=Не е извършен опит за актуализация, само вмъкване +ImportDataset_user_1=Потребители (служители или не) и реквизити +ComputedField=Изчислено поле ## filters SelectFilterFields=Ако желаете на филтрирате по някои стойности, просто въведете стойностите тук. FilteredFields=Филтрирани полета FilteredFieldsValues=Стойност за филтер FormatControlRule=Правило за контролиране на формата ## imports updates -KeysToUseForUpdates=Key to use for updating data -NbInsert=Number of inserted lines: %s -NbUpdate=Number of updated lines: %s -MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s +KeysToUseForUpdates=Ключ (колона), който да се използва за актуализиране на съществуващи данни +NbInsert=Брой вмъкнати редове: %s +NbUpdate=Брой актуализирани редове: %s +MultipleRecordFoundWithTheseFilters=Намерени са няколко записа с тези филтри: %s diff --git a/htdocs/langs/bg_BG/holiday.lang b/htdocs/langs/bg_BG/holiday.lang index 615a1b6e0ad..2f177c7595c 100644 --- a/htdocs/langs/bg_BG/holiday.lang +++ b/htdocs/langs/bg_BG/holiday.lang @@ -114,9 +114,9 @@ HolidaysToValidateBody=По-долу е молба за отпуск за вал HolidaysToValidateDelay=Тази молба за отпуск е за период по-малък от %s дни. HolidaysToValidateAlertSolde=Потребителят, който е създал молбата за отпуск, няма достатъчно налични дни. HolidaysValidated=Валидирани молби за отпуск -HolidaysValidatedBody=Вашата молба за отпуск от %s до %s е валидирана. +HolidaysValidatedBody=Вашата молба за отпуск от %s до %s е одобрена. HolidaysRefused=Молбата е отхвърлена -HolidaysRefusedBody=Вашата молба за отпуск от %s до %s е отхвърлена поради следната причина: +HolidaysRefusedBody=Вашата молба за отпуск от %s до %s е отхвърлена, поради следната причина: HolidaysCanceled=Анулирани молби за отпуск HolidaysCanceledBody=Вашата молба за отпуск от %s до %s е анулирана. FollowedByACounter=1: Този вид отпуск е необходимо да бъде проследяван от брояч. Броячът се увеличава ръчно или автоматично, а когато молбата за отпуск е валидирана, броячът се намалява.
0: Не се проследява от брояч. diff --git a/htdocs/langs/bg_BG/install.lang b/htdocs/langs/bg_BG/install.lang index 99593f84b86..b2410484448 100644 --- a/htdocs/langs/bg_BG/install.lang +++ b/htdocs/langs/bg_BG/install.lang @@ -1,214 +1,214 @@ # Dolibarr language file - Source file is en_US - install InstallEasy=Просто следвайте инструкциите стъпка по стъпка. -MiscellaneousChecks=Предпоставки проверка -ConfFileExists=Конфигурационния файл %s съществува. -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file %s does not exist and could not be created! -ConfFileCouldBeCreated=Конфигурационния файл %s може да бъде създаден. -ConfFileIsNotWritable=Configuration file %s is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS). -ConfFileIsWritable=Конфигурационния файл %s е с права за писане. -ConfFileMustBeAFileNotADir=Конфигурационният файл %s трябва да бъде файл, а не директория. -ConfFileReload=Reloading parameters from configuration file. +MiscellaneousChecks=Проверка за необходими условия +ConfFileExists=Конфигурационен файл %s съществува. +ConfFileDoesNotExistsAndCouldNotBeCreated=Конфигурационният файл %s не съществува и не може да бъде създаден! +ConfFileCouldBeCreated=Конфигурационният файл %s може да бъде създаден. +ConfFileIsNotWritable=Конфигурационният файл %s не може да се презаписва. Проверете разрешенията. За първото инсталиране, вашият уеб сървър трябва да може да записва в този файл по време на процеса на конфигуриране (например "chmod 666" в системи от типа Unix). +ConfFileIsWritable=Конфигурационният файл %s е презаписваем. +ConfFileMustBeAFileNotADir=Конфигурационният файл %s трябва да е файл, а не директория. +ConfFileReload=Презареждане на параметри от конфигурационен файл. PHPSupportSessions=PHP поддържа сесии. PHPSupportPOSTGETOk=PHP поддържа променливи POST и GET. -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter variables_order in php.ini. -PHPSupportGD=This PHP supports GD graphical functions. -PHPSupportCurl=This PHP supports Curl. -PHPSupportUTF8=This PHP supports UTF8 functions. -PHPSupportIntl=This PHP supports Intl functions. -PHPMemoryOK=PHP макс сесия памет е %s. Това трябва да бъде достатъчно. -PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This is too low. Change your php.ini to set memory_limit parameter to at least %s bytes. -Recheck=Click here for a more detailed test -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory. -ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr. -ErrorPHPDoesNotSupportIntl=Your PHP installation does not support Intl functions. +PHPSupportPOSTGETKo=Възможно е вашата настройка на PHP да не поддържа променливи POST и/или GET. Проверете параметъра variables_order в php.ini. +PHPSupportGD=PHP поддържа GD графични функции. +PHPSupportCurl=PHP поддържа Curl. +PHPSupportUTF8=PHP поддържа UTF8 функции. +PHPSupportIntl=PHP поддържа Intl функции. +PHPMemoryOK=Максималният размер на паметта за PHP сесия е настроен на %s. Това трябва да е достатъчно. +PHPMemoryTooLow=Вашият максимален размер на паметта за PHP сесия е настроен на %s байта. Това е твърде ниско. Променете php.ini като зададете стойност на параметър memory_limit поне %s байта. +Recheck=Кликнете тук за по-подробен тест +ErrorPHPDoesNotSupportSessions=Вашата PHP инсталация не поддържа сесии. Тази функция е необходима, за да позволи на Dolibarr да работи. Проверете настройките на PHP и разрешенията на директорията за сесиите. +ErrorPHPDoesNotSupportGD=Вашата PHP инсталация не поддържа GD графични функции. Няма да се показват графики. +ErrorPHPDoesNotSupportCurl=Вашата PHP инсталация не поддържа Curl. +ErrorPHPDoesNotSupportUTF8=Вашата PHP инсталация не поддържа UTF8 функции. Dolibarr не може да работи правилно. Решете това преди да инсталирате Dolibarr. +ErrorPHPDoesNotSupportIntl=Вашата PHP инсталация не поддържа Intl функции. ErrorDirDoesNotExists=Директорията %s не съществува. -ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters. +ErrorGoBackAndCorrectParameters=Върнете се назад и проверете / коригирайте параметрите. ErrorWrongValueForParameter=Може да сте въвели грешна стойност за параметър '%s'. -ErrorFailedToCreateDatabase=Неуспешно създаване на базата данни '%s'. -ErrorFailedToConnectToDatabase=Неуспешна връзка с база данни '%s'. +ErrorFailedToCreateDatabase=Неуспешно създаване на база данни '%s'. +ErrorFailedToConnectToDatabase=Неуспешно свързване към базата данни '%s' ErrorDatabaseVersionTooLow=Версията на базата данни (%s) е твърде стара. Изисква се версия %s или по-нова. ErrorPHPVersionTooLow=Версията на PHP е твърде стара. Изисква се версия %s. -ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found. -ErrorDatabaseAlreadyExists=Базата данни %s вече съществува. -IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database". +ErrorConnectedButDatabaseNotFound=Връзката със сървъра е успешна, но не е намерена база данни '%s'. +ErrorDatabaseAlreadyExists=База данни '%s' вече съществува. +IfDatabaseNotExistsGoBackAndUncheckCreate=Ако базата данни не съществува, върнете се и проверете опцията "Създаване на база данни". IfDatabaseExistsGoBackAndCheckCreate=Ако базата данни вече съществува, върнете се обратно и махнете отметката на "Създаване на база данни". -WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended. -PHPVersion=Версия на PHP -License=Лиценз за използване +WarningBrowserTooOld=Версията на браузъра е твърде стара. Препоръчва се надграждане на браузъра ви до текуща версия на Firefox, Chrome или Opera. +PHPVersion=PHP версия +License=Използване на лиценз ConfigurationFile=Конфигурационен файл -WebPagesDirectory=Директорията, в която се съхраняват уеб страници -DocumentsDirectory=Директория за съхраняване качени и генерирани документи -URLRoot=URL корен -ForceHttps=Принудително сигурни връзки (HTTPS) -CheckToForceHttps=Изберете тази опция, за принудително сигурни връзки (HTTPS).
Това означава, че уеб сървърът е конфигуриран с SSL сертификат. +WebPagesDirectory=Директория, където се съхраняват уеб страници +DocumentsDirectory=Директория за съхраняване на качени и генерирани документи +URLRoot=Основен URL адрес +ForceHttps=Принудителни защитени връзки (https) +CheckToForceHttps=Изберете тази опция, за да активирате защитени връзки (https).
Това изисква уеб сървърът да е конфигуриран за работа със SSL сертификат. DolibarrDatabase=База данни на Dolibarr -DatabaseType=Тип на базата данни +DatabaseType=Тип база данни DriverType=Тип драйвер Server=Сървър -ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server. -ServerPortDescription=Порт на сървъра на базата данни. Оставете празно ако е неизвестно. -DatabaseServer=Сървър на базата данни +ServerAddressDescription=Име или IP адрес на сървъра с базата данни. Обикновено "localhost", когато сървърът с базата данни е инсталиран на същия сървър като уеб сървъра. +ServerPortDescription=Порт на сървъра с базата данни. Оставете празно, ако е неизвестен. +DatabaseServer=Сървър за бази данни DatabaseName=Име на базата данни -DatabasePrefix=Database table prefix -DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_. -AdminLogin=User account for the Dolibarr database owner. -PasswordAgain=Retype password confirmation -AdminPassword=Парола на собственика на базата данни на Dolibarr. +DatabasePrefix=Префикс на таблицата с база данни +DatabasePrefixDescription=Префикс на таблицата с база данни. Ако е празно, по подразбиране ще бъде llx_. +AdminLogin=Потребителски акаунт за собственика на базата данни на Dolibarr. +PasswordAgain=Повторете паролата +AdminPassword=Парола за собственика на базата данни на Dolibarr. CreateDatabase=Създаване на база данни -CreateUser=Create user account or grant user account permission on the Dolibarr database -DatabaseSuperUserAccess=Сървър на базата данни - Достъп супер потребител -CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.
In this case, you must also fill in the user name and password for the superuser account at the bottom of this page. -CheckToCreateUser=Check the box if:
the database user account does not yet exist and so must be created, or
if the user account exists but the database does not exist and permissions must be granted.
In this case, you must enter the user account and password and also the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist. -DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist. -KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended) -SaveConfigurationFile=Saving parameters to +CreateUser=Създайте потребителски акаунт или предоставете разрешение за потребителски акаунт на базата данни на Dolibarr +DatabaseSuperUserAccess=Сървър за база данни - Достъп за супер потребител +CheckToCreateDatabase=Поставете отметка в квадратчето, ако базата данни все още не съществува и трябва да бъде създадена.
В този случай трябва да попълните потребителското име и паролата за акаунта на супер потребителя в долната част на тази страница. +CheckToCreateUser=Поставете отметка в квадратчето, ако:
потребителският акаунт за базата данни все още не съществува и трябва да бъде създаден или
ако съществува потребителски акаунт, но базата данни не съществува и трябва да бъдат предоставени разрешения.
В този случай трябва да въведете потребителския акаунт и паролата, а също , и името, и паролата на супер потребителя в долната част на тази страница. Ако това квадратче не е маркирано, собственикът на базата данни и паролата трябва вече да съществуват. +DatabaseRootLoginDescription=Потребителско име на супер потребител (за създаване на нови бази данни или нови потребители), което е задължително, ако базата данни или нейният собственик все още не съществуват. +KeepEmptyIfNoPassword=Оставете празно, ако супер потребителят няма парола (НЕ се препоръчва) +SaveConfigurationFile=Запазване на параметрите в ServerConnection=Свързване със сървъра DatabaseCreation=Създаване на база данни CreateDatabaseObjects=Създаване на обекти в базата данни ReferenceDataLoading=Зареждане на референтни данни TablesAndPrimaryKeysCreation=Създаване на таблици и първични ключове -CreateTableAndPrimaryKey=Създаване на таблицата %s -CreateOtherKeysForTable=Създаване на чужди ключове и индекси за таблицата %s +CreateTableAndPrimaryKey=Създаване на таблица %s +CreateOtherKeysForTable=Създаване на чужди ключове и индекси за таблица %s OtherKeysCreation=Създаване на чужди ключове и индекси FunctionsCreation=Създаване на функции AdminAccountCreation=Създаване на администраторски профил -PleaseTypePassword=Please type a password, empty passwords are not allowed! -PleaseTypeALogin=Please type a login! -PasswordsMismatch=Passwords differs, please try again! -SetupEnd=Край на настройкате -SystemIsInstalled=Инсталирането завърши. -SystemIsUpgraded=Dolibarr е обновен успешно. +PleaseTypePassword=Моля, въведете парола, празно поле не е разрешено! +PleaseTypeALogin=Моля, въведете данни за вход! +PasswordsMismatch=Паролите са различни, моля, опитайте отново! +SetupEnd=Край на настройката +SystemIsInstalled=Инсталация е завършена. +SystemIsUpgraded=Dolibarr е успешно актуализиран. YouNeedToPersonalizeSetup=Трябва да конфигурирате Dolibarr според вашите нужди (външен вид, функции, ...). За да направите това, моля последвайте връзката по-долу: -AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfully. -GoToDolibarr=Отиди на Dolibarr -GoToSetupArea=Отиди на Dolibarr (област за настройка) -MigrationNotFinished=The database version is not completely up to date: run the upgrade process again. -GoToUpgradePage=Отидете отново на страницата за надграждане +AdminLoginCreatedSuccessfuly=Администраторския профил ' %s ' за Dolibarr е успешно създаден. +GoToDolibarr=Отидете в Dolibarr +GoToSetupArea=Отидете в Dolibarr (секция за настройка) +MigrationNotFinished=Версията на базата данни не е напълно актуална, изпълнете отново процеса на актуализация. +GoToUpgradePage=Отидете отново в страницата за актуализация WithNoSlashAtTheEnd=Без наклонена черта "/" в края -DirectoryRecommendation=It is recommended to use a directory outside of the web pages. +DirectoryRecommendation=Препоръчително е да използвате директория извън уеб страниците. LoginAlreadyExists=Вече съществува -DolibarrAdminLogin=Администраторски вход в Dolibarr -AdminLoginAlreadyExists=Dolibarr administrator account '%s' already exists. Go back if you want to create another one. -FailedToCreateAdminLogin=Failed to create Dolibarr administrator account. -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called install.lock into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again. -FunctionNotAvailableInThisPHP=Not available in this PHP +DolibarrAdminLogin=Администратор на Dolibarr +AdminLoginAlreadyExists=Администраторският профил ' %s ' за Dolibarr вече съществува. Върнете се обратно, ако искате да създадете друг. +FailedToCreateAdminLogin=Неуспешно създаване на администраторски профил за Dolibarr. +WarningRemoveInstallDir=Внимание, от съображения за сигурност, след като инсталирането или приключи актуализацията, трябва да добавите файл с име install.lock в директорията /documents на Dolibarr, за да предотвратите повторното използване на инструментите за инсталиране. +FunctionNotAvailableInThisPHP=Не е налично за тази PHP инсталация ChoosedMigrateScript=Изберете скрипт за миграция -DataMigration=Database migration (data) -DatabaseMigration=Database migration (structure + some data) -ProcessMigrateScript=Скрипта обработва +DataMigration=Миграция на база данни (данни) +DatabaseMigration=Миграция на база данни (структура + някои данни) +ProcessMigrateScript=Скриптова обработка ChooseYourSetupMode=Изберете режим на настройка и кликнете върху "Начало"... FreshInstall=Нова инсталация -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode. -Upgrade=Надграждане -UpgradeDesc=Използвайте този режим, ако желаете да замените старите файлове на Dolibarr с файлове от по-нова версия. Това ще обнови вашата база данни и данни. +FreshInstallDesc=Използвайте този режим, ако това е първата ви инсталация. Ако не, този режим може да поправи непълна предишна инсталация. Ако искате да актуализирате версията си, изберете режим "Актуализация". +Upgrade=Актуализация +UpgradeDesc=Използвайте този режим, ако сте заменили старите Dolibarr файлове с файлове от по-нова версия. Това ще подобри вашата база данни. Start=Начало -InstallNotAllowed=Настройката не разрешена поради правата на файла conf.php -YouMustCreateWithPermission=Трябва да създадете файл %s и да настроите права за запис в него от уеб сървъра по време на процеса на инсталиране. -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page. -AlreadyDone=Вече мигрирахте +InstallNotAllowed=Настройката не е позволена от липса на разрешения в conf.php +YouMustCreateWithPermission=Трябва да създадете файл %s и да зададете разрешения за запис върху него за уеб сървъра по време на инсталационния процес. +CorrectProblemAndReloadPage=Моля, отстранете проблема и натиснете F5, за да презаредите страницата. +AlreadyDone=Вече са мигрирани DatabaseVersion=Версия на базата данни ServerVersion=Версия на сървъра на базата данни YouMustCreateItAndAllowServerToWrite=Трябва да създадете тази директория и да позволите на уеб сървъра да записва в нея. DBSortingCollation=Ред за сортиране на символи -YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database %s, but for this, Dolibarr needs to connect to server %s with super user %s permissions. -YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user %s, but for this, Dolibarr needs to connect to server %s with super user %s permissions. -BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong. +YouAskDatabaseCreationSoDolibarrNeedToConnect=Вие избрахте да създадете база данни %s , но за тази цел Dolibarr трябва да се свърже със сървъра %s със права на супер потребител %s +YouAskLoginCreationSoDolibarrNeedToConnect=Вие избрахте да създадете потребител за база данни %s , но за тази цел Dolibarr трябва да се свърже със сървъра %s с права на супер потребител %s . +BecauseConnectionFailedParametersMayBeWrong=Връзката с базата данни е неуспешна: параметрите на хоста или супер потребителя са грешни. OrphelinsPaymentsDetectedByMethod=Orphans плащане е открито по метода %s -RemoveItManuallyAndPressF5ToContinue=Премахнете го ръчно и натиснете F5, за да продължите. +RemoveItManuallyAndPressF5ToContinue=Махнете го ръчно и натиснете F5, за да продължите. FieldRenamed=Полето е преименувано -IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user" -ErrorConnection=Server "%s", database name "%s", login "%s", or database password may be wrong or the PHP client version may be too old compared to the database version. -InstallChoiceRecommanded=Препоръчителен избор е да инсталирате версия %s от вашата текуща версия %s +IfLoginDoesNotExistsCheckCreateUser=Ако потребителят все още не съществува, трябва да включите опцията "Създаване на потребител" +ErrorConnection=Сървърът " %s ", името на базата данни " %s ", потребителят " %s " или паролата на базата данни може да са грешни, или PHP версията на клиента може да е твърде стара в сравнение с версията на базата данни. +InstallChoiceRecommanded=Препоръчителен избор е да се инсталира версия %s от текущата ви версия %s InstallChoiceSuggested=Избор за инсталиране, предложен от инсталатора. -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete. -CheckThatDatabasenameIsCorrect=Check that the database name "%s" is correct. -IfAlreadyExistsCheckOption=Ако това име е вярно и тази база данни все още не съществува, трябва да проверите опцията "Създаване на база данни". +MigrateIsDoneStepByStep=Целевата версия (%s) има пропуск в няколко версии. Съветникът за инсталиране ще се върне, за да предложи по-нататъшна миграция, след като приключи тази. +CheckThatDatabasenameIsCorrect=Проверете дали името на базата данни " %s " е правилно. +IfAlreadyExistsCheckOption=Ако това име е вярно и тази база данни все още не съществува, трябва да изберете опцията "Създаване на база данни". OpenBaseDir=Параметър PHP openbasedir -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form). -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form). -NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing. -MigrationCustomerOrderShipping=Migrate shipping for sales orders storage +YouAskToCreateDatabaseSoRootRequired=Поставихте отметка в квадратчето „Създаване на база данни“. За тази цел трябва да предоставите потребителско име / парола на супер потребителя (в края на формуляра). +YouAskToCreateDatabaseUserSoRootRequired=Поставихте отметка в квадратчето „Създаване на собственик на база данни“. За тази цел трябва да предоставите потребителско име / парола на супер потребителя (в края на формуляра). +NextStepMightLastALongTime=Текущата стъпка може да отнеме няколко минути. Моля, изчакайте, докато следващият екран се покаже напълно, преди да продължите. +MigrationCustomerOrderShipping=Мигрирайте доставката за съхранение на поръчки за продажби MigrationShippingDelivery=Надграждане на хранилище на доставки MigrationShippingDelivery2=Надграждане на хранилище на доставки 2 MigrationFinished=Миграцията завърши -LastStepDesc=Last step: Define here the login and password you wish to use to connect to Dolibarr. Do not lose this as it is the master account to administer all other/additional user accounts. +LastStepDesc= Последна стъпка : Определете тук потребителското име и паролата, които искате да използвате, за да се свържете с Dolibarr. Не губете това, тъй като това е главният акаунт за администриране на всички други / допълнителни потребителски акаунти. ActivateModule=Активиране на модул %s -ShowEditTechnicalParameters=Натиснете тук за да покажете/редактирате параметрите за напреднали (експертен режим) -WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process... -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s) -KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing. -KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing. -KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing. -KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing. -UpgradeExternalModule=Run dedicated upgrade process of external module -SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example: '...repair.php?standard=confirmed' -NothingToDelete=Nothing to clean/delete -NothingToDo=Nothing to do +ShowEditTechnicalParameters=Кликнете тук, за да покажете / редактирате разширените параметри (експертен режим) +WarningUpgrade=Внимание:\nАрхивирахте ли преди това базата данни?\nТова е силно препоръчително. Загубата на данни (поради грешки в mysql версия 5.5.40/41/42/43) може да е възможна по време на този процес, така че е важно да се направи пълно архивиране на базата данни преди започване на миграция.\n\nКликнете върху „OK“, за да започнете процеса на мигриране... +ErrorDatabaseVersionForbiddenForMigration=Версията на вашата база данни е %s. Има критична грешка, което прави загубата на данни възможна, ако извършвате структурни промени в базата данни, каквито се изискват от процеса на миграция. Поради тази причина миграцията няма да бъде разрешена, докато не актуализирате базата данни до следваща (закърпена) версия (списък на известните версии с бъгове: %s) +KeepDefaultValuesWamp=Използвахте съветника за настройка на Dolibarr от DoliWamp, така че предложените тук стойности вече са оптимизирани. Променяйте ги, само ако знаете какво правите. +KeepDefaultValuesDeb=Използвахте съветника за настройка на Dolibarr от Linux пакет (Ubuntu, Debian, Fedora...), така че предложените тук стойности вече са оптимизирани. Трябва да се въведе само паролата на собственика на базата данни, който ще се създава. Променяйте другите параметри, само ако знаете какво правите. +KeepDefaultValuesMamp=Използвахте съветника за настройка на Dolibarr от DoliMamp, така че предложените тук стойности вече са оптимизирани. Променяйте ги само, ако знаете какво правите. +KeepDefaultValuesProxmox=Използвахте съветника за настройка на Dolibarr от виртуалното устройство на Proxmox, така че предложените тук стойности вече са оптимизирани. Променяйте ги, само ако знаете какво правите. +UpgradeExternalModule=Изпълнете препоръчителния процес за обновяване на външния модул +SetAtLeastOneOptionAsUrlParameter=Задайте поне един параметър като параметър в URL адреса. Например: "... repair.php?standard=confirmed" +NothingToDelete=Няма нищо за почистване / изтриване +NothingToDo=Няма нищо за правене ######### # upgrade -MigrationFixData=Корекция на denormalized данни -MigrationOrder=Миграция на данни за поръчки от клиенти -MigrationSupplierOrder=Data migration for vendor's orders -MigrationProposal=Миграция на данни за оферти -MigrationInvoice=Миграция на данни за фактури за клиенти +MigrationFixData=Поправка за денормализирани данни +MigrationOrder=Миграция на данни за поръчки за продажба +MigrationSupplierOrder=Миграция на данни за поръчки за покупка +MigrationProposal=Миграция на данни за търговски предложения +MigrationInvoice=Миграция на данни за фактури за продажба MigrationContract=Миграция на данни за договори -MigrationSuccessfullUpdate=Надграждането е успешно -MigrationUpdateFailed=Неуспешен процес на надграждане +MigrationSuccessfullUpdate=Актуализацията е успешна +MigrationUpdateFailed=Процесът на актуализация не бе успешен MigrationRelationshipTables=Миграция на данни за свързани таблици (%s) -MigrationPaymentsUpdate=Корекция на данни за плащане -MigrationPaymentsNumberToUpdate=%s плащания за актуализиране -MigrationProcessPaymentUpdate=Актуализиране на плащания %s -MigrationPaymentsNothingToUpdate=Няма повече задачи +MigrationPaymentsUpdate=Корекция на данни за плащания +MigrationPaymentsNumberToUpdate=%s плащане(ия) за актуализиране +MigrationProcessPaymentUpdate=Актуализиране на плащане(ия) %s +MigrationPaymentsNothingToUpdate=Няма повече неща за правене MigrationPaymentsNothingUpdatable=Няма повече плащания, които могат да бъдат коригирани -MigrationContractsUpdate=Корекция на данни в договор +MigrationContractsUpdate=Корекция на данни за договори MigrationContractsNumberToUpdate=%s договор(и) за актуализиране -MigrationContractsLineCreation=Създаване на ред в договор с реф. %s -MigrationContractsNothingToUpdate=Няма повече задачи -MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do. -MigrationContractsEmptyDatesUpdate=Корекция на празна дата в договор -MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully -MigrationContractsEmptyDatesNothingToUpdate=Няма празна дата на договор за коригиране -MigrationContractsEmptyCreationDatesNothingToUpdate=Няма дата за създаване на договор за коригиране -MigrationContractsInvalidDatesUpdate=Корекция на неправилни дати на договор -MigrationContractsInvalidDateFix=Корекция на договор %s (Дата на договора=%s, Начална дата на услуга мин.=%s) -MigrationContractsInvalidDatesNumber=%s променени договори -MigrationContractsInvalidDatesNothingToUpdate=Няма дата с лоша стойност за коригиране -MigrationContractsIncoherentCreationDateUpdate=Лоша стойност за дата на създаване на договор -MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully -MigrationContractsIncoherentCreationDateNothingToUpdate=Няма лоши стойности за дата на създаване на договор за коригиране -MigrationReopeningContracts=Отворен договор затворен по грешка -MigrationReopenThisContract=Ново отваряне на договор %s -MigrationReopenedContractsNumber=%s договори са променени -MigrationReopeningContractsNothingToUpdate=Няма затворен договор за отваряне -MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer +MigrationContractsLineCreation=Създаване на ред за реф. договор %s +MigrationContractsNothingToUpdate=Няма повече неща за правене +MigrationContractsFieldDontExist=Поле fk_facture вече не съществува. Няма нищо за правене. +MigrationContractsEmptyDatesUpdate=Корекция на празна дата в договори +MigrationContractsEmptyDatesUpdateSuccess=Корекцията на празната дата в договора е успешно извършена +MigrationContractsEmptyDatesNothingToUpdate=Няма празни дати в договори за коригиране +MigrationContractsEmptyCreationDatesNothingToUpdate=Няма дати на създаване в договори за коригиране +MigrationContractsInvalidDatesUpdate=Корекция на неправилни дати в договори +MigrationContractsInvalidDateFix=Корекция на договор %s (Дата на договора=%s, Начална дата на услуга=%s) +MigrationContractsInvalidDatesNumber=%s променен(и) договор(а) +MigrationContractsInvalidDatesNothingToUpdate=Няма неправилни дати в договори за коригиране +MigrationContractsIncoherentCreationDateUpdate=Корекция на неправилни дати на създаване в договори +MigrationContractsIncoherentCreationDateUpdateSuccess=Корекцията на неправилните дати на създаване в договори е успешно извършена +MigrationContractsIncoherentCreationDateNothingToUpdate=Няма неправилни дати на създаване в договори за коригиране +MigrationReopeningContracts=Отворен договор е затворен с грешка +MigrationReopenThisContract=Повторно отваряне на договор %s +MigrationReopenedContractsNumber=%s променен(и) договор(а) +MigrationReopeningContractsNothingToUpdate=Няма затворени договори за отваряне +MigrationBankTransfertsUpdate=Актуализиране на връзките между банков запис и банков превод MigrationBankTransfertsNothingToUpdate=Всички връзки са актуални MigrationShipmentOrderMatching=Актуализация на експедиционни бележки MigrationDeliveryOrderMatching=Актуализация на обратни разписки -MigrationDeliveryDetail=Актуализация на доставката -MigrationStockDetail=Актуализиране на наличната стойност на продукти +MigrationDeliveryDetail=Актуализация на доставки +MigrationStockDetail=Актуализиране на стоковата наличност на продукти MigrationMenusDetail=Актуализиране на таблици за динамични менюта -MigrationDeliveryAddress=Актуализиране на адрес за доставка на пратки, -MigrationProjectTaskActors=Data migration for table llx_projet_task_actors -MigrationProjectUserResp=Миграция на полето fk_user_resp на llx_projet llx_element_contact -MigrationProjectTaskTime=Актуализация на времето, прекарано в секунда +MigrationDeliveryAddress=Актуализиране на адреси за доставка в пратки +MigrationProjectTaskActors=Миграция на данни за таблица llx_projet_task_actors +MigrationProjectUserResp=Миграция на поле fk_user_resp от llx_projet към llx_element_contact +MigrationProjectTaskTime=Актуализиране на отделеното време в секунди MigrationActioncommElement=Актуализиране на данните за действия -MigrationPaymentMode=Data migration for payment type +MigrationPaymentMode=Миграция на данни за типът на плащане MigrationCategorieAssociation=Миграция на категории -MigrationEvents=Migration of events to add event owner into assignment table -MigrationEventsContact=Migration of events to add event contact into assignment table -MigrationRemiseEntity=Update entity field value of llx_societe_remise -MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except -MigrationUserRightsEntity=Update entity field value of llx_user_rights -MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights -MigrationUserPhotoPath=Migration of photo paths for users -MigrationReloadModule=Презареждане на модула %s -MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm -ShowNotAvailableOptions=Show unavailable options -HideNotAvailableOptions=Hide unavailable options -ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can click here, but the application or some features may not work correctly until the errors are resolved. -YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).
-YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file install.lock in the dolibarr documents directory).
-ClickHereToGoToApp=Click here to go to your application -ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory. +MigrationEvents=Миграция на данни за събития за добавяне на собственик на събитие в определената таблица +MigrationEventsContact=Миграция на данни за събития за добавяне на контакт за събитие в определената таблица +MigrationRemiseEntity=Актуализиране на стойността на полето в обекта llx_societe_remise +MigrationRemiseExceptEntity=Актуализиране на стойността на полето в обекта llx_societe_remise_except +MigrationUserRightsEntity=Актуализиране на стойността на полето в обекта llx_user_rights +MigrationUserGroupRightsEntity=Актуализиране на стойността на полето в обекта llx_usergroup_rights +MigrationUserPhotoPath=Миграция на пътя до снимки на потребители +MigrationReloadModule=Презареждане на модул %s +MigrationResetBlockedLog=Нулиране на модула BlockedLog за алгоритъм v7 +ShowNotAvailableOptions=Показване на недостъпни опции +HideNotAvailableOptions=Скриване на недостъпни опции +ErrorFoundDuringMigration=По време на процеса на миграция са докладвани грешки, така че следващата стъпка не е възможна. За да игнорирате грешките, може да кликнете тук , но приложението или някои функции може да не работят правилно, докато грешките не бъдат отстранени. +YouTryInstallDisabledByDirLock=Приложението се опита да се самоактуализира, но страниците за инсталация / актуализация са били изключени от гледна точка на сигурност (директорията е преименувана с .lock суфикс).
+YouTryInstallDisabledByFileLock=Приложението се опита да се самоактуализира, но страниците за инсталация / актуализация са били изключени от гледна точка на сигурност (от наличието на заключващ файл install.lock в директорията documents на Dolibarr).
+ClickHereToGoToApp=Кликнете тук, за да отидете в приложението си +ClickOnLinkOrRemoveManualy=Кликнете върху следната връзка. Ако винаги виждате същата страница, трябва да премахнете / преименувате файла install.lock в директорията documents на Dolibarr. diff --git a/htdocs/langs/bg_BG/loan.lang b/htdocs/langs/bg_BG/loan.lang index 81bbc28a904..ca4ad3722d9 100644 --- a/htdocs/langs/bg_BG/loan.lang +++ b/htdocs/langs/bg_BG/loan.lang @@ -1,31 +1,31 @@ # Dolibarr language file - Source file is en_US - loan -Loan=Заем -Loans=Заеми -NewLoan=Нов Заем -ShowLoan=Показване на Заем -PaymentLoan=Плащане на Заем -LoanPayment=Плащане на Заем -ShowLoanPayment=Показване на плащането на Заем +Loan=Кредит +Loans=Кредити +NewLoan=Нов кредит +ShowLoan=Показване на кредит +PaymentLoan=Плащане по кредит +LoanPayment=Плащане по кредит +ShowLoanPayment=Показване на плащане по кредит LoanCapital=Капитал Insurance=Застраховка Interest=Лихва -Nbterms=Number of terms -Term=Term -LoanAccountancyCapitalCode=Accounting account capital -LoanAccountancyInsuranceCode=Accounting account insurance -LoanAccountancyInterestCode=Accounting account interest -ConfirmDeleteLoan=Потвърдете изтриването на този заем -LoanDeleted=Заемът е изтрит успешно -ConfirmPayLoan=Confirm classify paid this loan -LoanPaid=Заем Платен -ListLoanAssociatedProject=List of loan associated with the project -AddLoan=Create loan -FinancialCommitment=Financial commitment +Nbterms=Брой условия +Term=Условие +LoanAccountancyCapitalCode=Счетоводна сметка на капитал +LoanAccountancyInsuranceCode=Счетоводна сметка на застраховка +LoanAccountancyInterestCode=Счетоводна сметка за лихва +ConfirmDeleteLoan=Потвърдете изтриването на този кредит +LoanDeleted=Кредитът е успешно изтрит +ConfirmPayLoan=Потвърдете класифицирането на този кредит като платен +LoanPaid=Платен кредит +ListLoanAssociatedProject=Списък на кредити, свързани с проекта +AddLoan=Създаване на кредит +FinancialCommitment=Финансово задължение InterestAmount=Лихва -CapitalRemain=Capital remain +CapitalRemain=Оставащ капитал # Admin -ConfigLoan=Конфигурация на модула заем -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default -CreateCalcSchedule=Edit financial commitment +ConfigLoan=Конфигуриране на модула Кредити +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Счетоводна сметка на капитал по подразбиране +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Счетоводна сметка на лихва по подразбиране +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Счетоводна сметка на застраховка по подразбиране +CreateCalcSchedule=Променяне на финансово задължение diff --git a/htdocs/langs/bg_BG/mails.lang b/htdocs/langs/bg_BG/mails.lang index 3e0699cfba3..4a4acf6b635 100644 --- a/htdocs/langs/bg_BG/mails.lang +++ b/htdocs/langs/bg_BG/mails.lang @@ -14,7 +14,7 @@ MailTo=Получател (и) MailToUsers=До потребител (и) MailCC=Копие до MailToCCUsers=Копие до потребител (и) -MailCCC=Явно копие до +MailCCC=Скрито копие до MailTopic=Тема на имейла MailText=Съобщение MailFile=Прикачени файлове @@ -24,7 +24,7 @@ BodyNotIn=Не е в съобщение ShowEMailing=Показване на масови имейли ListOfEMailings=Списък на масови имейли NewMailing=Нов масов имейл -EditMailing=Редактиране на масов имейл +EditMailing=Променяне на масов имейл ResetMailing=Повторно изпращане на масов имейл DeleteMailing=Изтриване на масов имейл DeleteAMailing=Изтриване на масов имейл diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang index 7481d5cd06c..a475e9445a9 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -152,7 +152,7 @@ AddLink=Добавяне на връзка RemoveLink=Премахване на връзка AddToDraft=Добавяне към чернова Update=Актуализиране -Close=Затваряне +Close=Приключване CloseBox=Премахнете джаджата от таблото си за управление Confirm=Потвърждаване ConfirmSendCardByMail=Наистина ли искате да изпратите съдържанието на тази карта по имейл до %s ? @@ -161,7 +161,7 @@ Remove=Премахване Resiliate=Прекратяване Cancel=Анулиране Modify=Променяне -Edit=Редактиране +Edit=Променяне Validate=Валидиране ValidateAndApprove=Валидиране и одобряване ToValidate=За валидиране @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Контакти / адреси за този кон AddressesForCompany=Адреси за този контрагент ActionsOnCompany=Събития за този контрагент ActionsOnContact=Събития за този контакт / адрес +ActionsOnContract=Events for this contract ActionsOnMember=Събития за този член ActionsOnProduct=Събития за този продукт NActionsLate=%s закъснели @@ -524,7 +525,7 @@ Photos=Снимки AddPhoto=Добавяне на снимка DeletePicture=Изтриване на снимка ConfirmDeletePicture=Потвърждавате ли изтриването на снимката? -Login=Потребител +Login=Потребителско име LoginEmail=Потребител (имейл) LoginOrEmail=Потребител или имейл CurrentLogin=Текущ потребител @@ -759,6 +760,7 @@ LinkToSupplierProposal=Връзка към запитване към доста LinkToSupplierInvoice=Връзка към фактура за доставка LinkToContract=Връзка към договор LinkToIntervention=Връзка към интервенция +LinkToTicket=Link to ticket CreateDraft=Създаване на чернова SetToDraft=Назад към черновата ClickToEdit=Кликнете, за да редактирате diff --git a/htdocs/langs/bg_BG/members.lang b/htdocs/langs/bg_BG/members.lang index b847148cb92..d19bdf8cddb 100644 --- a/htdocs/langs/bg_BG/members.lang +++ b/htdocs/langs/bg_BG/members.lang @@ -12,7 +12,7 @@ FundationMembers=Членове на организацията ListOfValidatedPublicMembers=Списък на настоящите публични членове ErrorThisMemberIsNotPublic=Този член не е публичен ErrorMemberIsAlreadyLinkedToThisThirdParty=Друг член (име: %s , вход: %s вече е свързан с контрагента %s . Премахнете тази връзка първо, защото контрагента не може да бъде свързана само с член (и обратно). -ErrorUserPermissionAllowsToLinksToItselfOnly=От съображения за сигурност, трябва да ви бъдат предоставени права за редактиране на всички потребители да могат свързват член към потребител, който не е ваш. +ErrorUserPermissionAllowsToLinksToItselfOnly=От съображения за сигурност трябва да имате права за променяне на всички потребители, за да може да свържете член с потребител, който не сте вие. SetLinkToUser=Връзка към Dolibarr потребител SetLinkToThirdParty=Линк към Dolibarr контрагент MembersCards=Визитни картички на членове @@ -159,13 +159,13 @@ SubscriptionPayment=Плащане на членски внос LastSubscriptionDate=Date of latest subscription payment LastSubscriptionAmount=Amount of latest subscription MembersStatisticsByCountries=Статистика за членовете по държава -MembersStatisticsByState=Статистика за членовете по област +MembersStatisticsByState=Статистика за членове по област MembersStatisticsByTown=Статистика за членовете по град MembersStatisticsByRegion=Статистики на членовете по регион NbOfMembers=Брой членове NoValidatedMemberYet=Няма намерени потвърдени членове MembersByCountryDesc=Този екран показва статистическите данни за членовете по държави. Графиката зависи от онлайн услугата Google графика и е достъпна само ако имате свързаност с интернет. -MembersByStateDesc=Този екран показва статистическите данни за членовете по област. +MembersByStateDesc=Този екран показва статистически данни за членове по област / регион. MembersByTownDesc=Този екран показва статистическите данни за членовете по град. MembersStatisticsDesc=Изберете статистически данни, които искате да прочетете ... MenuMembersStats=Статистика diff --git a/htdocs/langs/bg_BG/oauth.lang b/htdocs/langs/bg_BG/oauth.lang index cafca379f6f..5f055216138 100644 --- a/htdocs/langs/bg_BG/oauth.lang +++ b/htdocs/langs/bg_BG/oauth.lang @@ -1,30 +1,30 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=Oauth Configuration -OAuthServices=OAuth services -ManualTokenGeneration=Manual token generation -TokenManager=Token manager -IsTokenGenerated=Is token generated ? -NoAccessToken=No access token saved into local database -HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received and saved -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider -TokenDeleted=Token deleted -RequestAccess=Click here to request/renew access and receive a new token to save -DeleteAccess=Click here to delete token -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: -ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token -SeePreviousTab=See previous tab -OAuthIDSecret=OAuth ID and Secret -TOKEN_REFRESH=Token Refresh Present -TOKEN_EXPIRED=Token expired -TOKEN_EXPIRE_AT=Token expire at -TOKEN_DELETE=Delete saved token -OAUTH_GOOGLE_NAME=Oauth Google service -OAUTH_GOOGLE_ID=Oauth Google Id -OAUTH_GOOGLE_SECRET=Oauth Google Secret -OAUTH_GOOGLE_DESC=Go on this page then "Credentials" to create Oauth credentials -OAUTH_GITHUB_NAME=Oauth GitHub service -OAUTH_GITHUB_ID=Oauth GitHub Id -OAUTH_GITHUB_SECRET=Oauth GitHub Secret -OAUTH_GITHUB_DESC=Go on this page then "Register a new application" to create Oauth credentials +ConfigOAuth=OAuth конфигурация +OAuthServices=OAuth услуги +ManualTokenGeneration=Ръчно генериране на токен +TokenManager=Токен мениджър +IsTokenGenerated=Генериран ли е токен? +NoAccessToken=Няма запазен токен за достъп в локалната база данни +HasAccessToken=Беше генериран и съхранен токен в локалната база данни +NewTokenStored=Токенът е получен и съхранен +ToCheckDeleteTokenOnProvider=Кликнете тук, за да проверите / изтриете разрешение, съхранено от %s OAuth доставчик +TokenDeleted=Токенът е изтрит +RequestAccess=Кликнете тук, за да заявите / подновите достъпа и да получите нов токен, който да запазите +DeleteAccess=Кликнете тук, за да изтриете токенът +UseTheFollowingUrlAsRedirectURI=Използвайте следния URL адрес като URI за пренасочване, когато създавате идентификационни данни през вашият доставчик на OAuth: +ListOfSupportedOauthProviders=Въведете идентификационните данни, предоставени от вашият OAuth2 доставчик. Тук са изброени поддържаните OAuth2 доставчици. Тези услуги могат да бъдат използвани от други модули, които се нуждаят от OAuth2 удостоверяване. +OAuthSetupForLogin=Страница за генериране на OAuth токен +SeePreviousTab=Вижте предишния раздел +OAuthIDSecret=OAuth ID и Secret +TOKEN_REFRESH=Налично е опресняване на токен +TOKEN_EXPIRED=Токенът е изтекъл +TOKEN_EXPIRE_AT=Токенът изтича на +TOKEN_DELETE=Изтриване на съхранен токен +OAUTH_GOOGLE_NAME=OAuth услуга на Google +OAUTH_GOOGLE_ID=OAuth Google Id +OAUTH_GOOGLE_SECRET=OAuth Google Secret +OAUTH_GOOGLE_DESC=Отидете на тази страница след това „Удостоверения“, за да създадете OAuth идентификационни данни +OAUTH_GITHUB_NAME=OAuth услуга на GitHub +OAUTH_GITHUB_ID=OAuth GitHub Id +OAUTH_GITHUB_SECRET=OAuth GitHub Secret +OAUTH_GITHUB_DESC=Отидете на тази страница след това „Регистрирайте ново приложение“, за да създадете OAuth идентификационни данни diff --git a/htdocs/langs/bg_BG/opensurvey.lang b/htdocs/langs/bg_BG/opensurvey.lang index 9a08ed868ad..76e4292029d 100644 --- a/htdocs/langs/bg_BG/opensurvey.lang +++ b/htdocs/langs/bg_BG/opensurvey.lang @@ -1,17 +1,17 @@ # Dolibarr language file - Source file is en_US - opensurvey Survey=Анкета Surveys=Анкети -OrganizeYourMeetingEasily=Организиране на вашите срещи и анкети лесно. Първо изберете типа на гласуване ... -NewSurvey=Ново анкета -OpenSurveyArea=Зона Анкети -AddACommentForPoll=Можете да добавите коментар на анкетата ... +OrganizeYourMeetingEasily=Организирайте лесно срещите и анкетите си. Първо изберете тип анкета... +NewSurvey=Ново проучване +OpenSurveyArea=Зона за проучвания +AddACommentForPoll=Можете да добавите коментар към анкетата... AddComment=Добавяне на коментар CreatePoll=Създаване на анкета PollTitle=Тема на анкетата ToReceiveEMailForEachVote=Получаване на имейл за всеки глас -TypeDate=Дата -TypeClassic=Стандартно -OpenSurveyStep2=Изберете вашите дата между свободните дни (сиво). Избраните дни са зелени. Можете да махнете избрания преди това ден като отново кликнете върху него. +TypeDate=Срочна +TypeClassic=Стандартна +OpenSurveyStep2=Изберете вашите дати измежду свободните дни в сиво. Избраните дни ще бъдат оцветени в зелено. Може да отмените избора си за предварително избран ден като кликнете отново върху него. RemoveAllDays=Премахване на всички дни CopyHoursOfFirstDay=Копиране на часовете от първия ден RemoveAllHours=Премахване на всички часове @@ -19,43 +19,43 @@ SelectedDays=Избрани дни TheBestChoice=С най-много гласове в момента е TheBestChoices=С най-много гласове в момента са with=с -OpenSurveyHowTo=Ако сте съгласни да гласувате в тази анкета, трябва въведете името си, да изберете отговорите, които най-подходящи за вас и да потвърдите с бутон плюс в края на този ред. -CommentsOfVoters=Коментари на гласувалите -ConfirmRemovalOfPoll=Сигурни ли сте, че желаете да премахнете анкетата (и всички гласове) +OpenSurveyHowTo=Ако сте съгласни да гласувате в тази анкета, трябва да въведете името си, да изберете отговорите, които са най-подходящи за вас и да потвърдите с бутона плюс в края на реда. +CommentsOfVoters=Коментари на гласоподавателите +ConfirmRemovalOfPoll=Сигурни ли сте, че искате да премахнете тази анкета (и всички гласове)? RemovePoll=Премахване на анкета -UrlForSurvey=URL за директен достъп до акетата -PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll: -CreateSurveyDate=Създаване на анкета със срок -CreateSurveyStandard=Създаване на стандартно гласуване +UrlForSurvey=URL адрес за директен достъп до анкетата +PollOnChoice=Създавате анкета, за да направите проучване с предварително дефинирани отговори. Първо въведете всички възможни отговори за вашата анкета: +CreateSurveyDate=Създаване на срочна анкета +CreateSurveyStandard=Създаване на стандартна анкета CheckBox=Отметка YesNoList=Списък (празно/да/не) PourContreList=Списък (празно/за/против) AddNewColumn=Добавяне на нова колона TitleChoice=Избор на етикет -ExportSpreadsheet=Експорт на разултатна таблица -ExpireDate=Крайната дата -NbOfSurveys=Брой на анкетите -NbOfVoters=Брой гласове +ExportSpreadsheet=Експортиране на таблица с резултати +ExpireDate=Крайна дата +NbOfSurveys=Брой анкети +NbOfVoters=Брой гласоподаватели SurveyResults=Резултати -PollAdminDesc=Позволено ви е да променяте всички линии за гласуване от тази анкета с бутон "Редактиране". Можете, също така, изтривате колона или линия с %s. Можете също да добавяте нова колона с %s. +PollAdminDesc=Имате право да променяте всички редове за гласуване от тази анкета с бутон 'Променяне'. Можете също така, да изтривате колона или линия с %s. Можете също да добавяте нова колона с %s. 5MoreChoices=Още 5 Against=Против -YouAreInivitedToVote=Поканени сте да гласувате за тази анкета -VoteNameAlreadyExists=Името вече е било използвано за тази анкета +YouAreInivitedToVote=Поканени сте да гласувате в тази анкета +VoteNameAlreadyExists=Това име вече беше използвано в тази анкета AddADate=Добавяне на дата AddStartHour=Добавяне на начален час AddEndHour=Добавяне на краен час votes=глас(а) -NoCommentYet=Все още няма публикувани коментари за тази анкета -CanComment=Гласуващите могат да коментират в анкетата -CanSeeOthersVote=Анкетираните могат да виждат гласа на другите хора. -SelectDayDesc=За всеки избран ден можете да изберете или не часовете за среща в следния формат:
- празно,
- "8h", "8H" или 8:00", за да зададете начален час на среща,
- "8-11", "8h-11h", "8H-11H" или "8:00-11:00", за да зададете час на край на среща,
- "8h15-11h15", "8H15-11H15" или "8:15-11:15" за същото нещо, но с минути. -BackToCurrentMonth=Обратно в текущия месец -ErrorOpenSurveyFillFirstSection=Не сте попълнили първата секция при създаването на анкетата -ErrorOpenSurveyOneChoice=Въведете поне една възможност за избор -ErrorInsertingComment=Възникна грешка при въвеждането на вашия коментар -MoreChoices=Въведете повече възможности за избор за анкетираните -SurveyExpiredInfo=The poll has been closed or voting delay has expired. -EmailSomeoneVoted=%s е попълнил ред.\nМожете да намерите вашата анкета на линка:\n%s -ShowSurvey=Show survey -UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment +NoCommentYet=Все още няма публикувани коментари в тази анкета +CanComment=Гласоподавателите могат да коментират в анкетата +CanSeeOthersVote=Гласоподавателите могат да виждат гласа на другите хора +SelectDayDesc=За всеки избран ден, може да изберете или не часовете за срещи в следния формат:
- празно,
- "8h", "8H" или "8:00", за да зададете начален час на срещата,
- "8- 11", "8h-11h", "8H-11H" или "8: 00-11:00", за да зададете начален и краен час на срещата,
-"8h15-11h15", "8H15-11H15" или "8:15-11:15" за същото, но с минути. +BackToCurrentMonth=Обратно към текущия месец +ErrorOpenSurveyFillFirstSection=Не сте попълнили първата секция при създаване на анкетата +ErrorOpenSurveyOneChoice=Въведете поне един избор +ErrorInsertingComment=Възникна грешка при въвеждане на вашия коментар +MoreChoices=Въведете повече възможности за избор на гласоподавателите +SurveyExpiredInfo=Анкетата е затворена или срокът за гласуване е изтекъл. +EmailSomeoneVoted=%s е попълнил ред.\nМожете да намерите вашата анкета на адрес:\n%s +ShowSurvey=Показване на проучването +UserMustBeSameThanUserUsedToVote=Трябва да сте гласували и да използвате същото потребителско име, с което сте гласували, за да публикувате коментар diff --git a/htdocs/langs/bg_BG/orders.lang b/htdocs/langs/bg_BG/orders.lang index 3379a9d3ed2..e346f7356c3 100644 --- a/htdocs/langs/bg_BG/orders.lang +++ b/htdocs/langs/bg_BG/orders.lang @@ -1,18 +1,18 @@ # Dolibarr language file - Source file is en_US - orders -OrdersArea=Зона за поръчки от клиенти -SuppliersOrdersArea=Зона за поръчки към доставчици -OrderCard=Карта за поръчка -OrderId=Поръчка Id +OrdersArea=Секция за поръчки за продажба +SuppliersOrdersArea=Секция за поръчки за покупка +OrderCard=Карта +OrderId=Идентификатор на поръчка Order=Поръчка PdfOrderTitle=Поръчка Orders=Поръчки -OrderLine=Ред за поръчка +OrderLine=Ред № OrderDate=Дата на поръчка OrderDateShort=Дата на поръчка OrderToProcess=Поръчка за обработване NewOrder=Нова поръчка -ToOrder=Направи поръчка -MakeOrder=Направи поръчка +ToOrder=Възлагане на поръчка +MakeOrder=Възлагане на поръчка SupplierOrder=Поръчка за покупка SuppliersOrders=Поръчки за покупка SuppliersOrdersRunning=Текущи поръчки за покупка @@ -53,8 +53,8 @@ StatusOrderRefused=Отхвърлена StatusOrderBilled=Фактурирана StatusOrderReceivedPartially=Частично получена StatusOrderReceivedAll=Изцяло получена -ShippingExist=Съществува пратка -QtyOrdered=Поръчано к-во +ShippingExist=Съществува доставка +QtyOrdered=Поръчано кол. ProductQtyInDraft=Количество на продукт в чернови поръчки ProductQtyInDraftOrWaitingApproved=Количество на продукт в чернови или одобрени поръчки, все още не поръчано MenuOrdersToBill=Доставени поръчки @@ -65,7 +65,7 @@ RefuseOrder=Отхвърляне на поръчка ApproveOrder=Одобряване на поръчка Approve2Order=Одобряване на поръчка (второ ниво) ValidateOrder=Валидиране на поръчка -UnvalidateOrder=Редактиране на поръчка +UnvalidateOrder=Променяне на поръчка DeleteOrder=Изтриване на поръчка CancelOrder=Анулиране на поръчка OrderReopened= Поръчка %s е повторно отворена @@ -87,7 +87,7 @@ OrdersStatisticsSuppliers=Статистика на поръчките за по NumberOfOrdersByMonth=Брой поръчки на месец AmountOfOrdersByMonthHT=Стойност на поръчки на месец (без ДДС) ListOfOrders=Списък на поръчки -CloseOrder=Затваряне на поръчка +CloseOrder=Приключване на поръчка ConfirmCloseOrder=Сигурни ли сте, че искате да поставите статус 'Доставена' на тази поръчка? След като поръчката бъде доставена, тя може да бъде фактурирана. ConfirmDeleteOrder=Сигурни ли сте, че искате да изтриете тази поръчка? ConfirmValidateOrder=Сигурни ли сте, че искате да валидирате тази поръчка под името %s? @@ -100,9 +100,9 @@ DraftOrders=Чернови поръчки DraftSuppliersOrders=Чернови поръчки за покупка OnProcessOrders=Поръчки в изпълнение RefOrder=Реф. поръчка -RefCustomerOrder=Реф. поръчка за клиент -RefOrderSupplier=Реф. поръчка за доставчик -RefOrderSupplierShort=Реф. поръчка доставчик +RefCustomerOrder=Реф. поръчка на клиент +RefOrderSupplier=Реф. поръчка на доставчик +RefOrderSupplierShort=Реф. поръчка на доставчик SendOrderByMail=Изпращане на поръчка по имейл ActionsOnOrder=Свързани събития NoArticleOfTypeProduct=Няма артикул от тип 'продукт', така че няма артикули годни за доставка по тази поръчка @@ -123,7 +123,7 @@ TypeContact_commande_internal_SALESREPFOLL=Представител просле TypeContact_commande_internal_SHIPPING=Представител проследяващ изпращането TypeContact_commande_external_BILLING=Контакт на клиент за фактура TypeContact_commande_external_SHIPPING=Контакт на клиент за доставка -TypeContact_commande_external_CUSTOMER=Контакт на клиент за поръчка +TypeContact_commande_external_CUSTOMER=Контакт на клиент проследяващ поръчката TypeContact_order_supplier_internal_SALESREPFOLL=Представител проследяващ поръчката за покупка TypeContact_order_supplier_internal_SHIPPING=Представител проследяващ изпращането TypeContact_order_supplier_external_BILLING=Контакт на доставчик за фактура @@ -154,5 +154,5 @@ CreateOrders=Създаване на поръчки ToBillSeveralOrderSelectCustomer=За да създадете фактура по няколко поръчки, кликнете първо на клиент, след това изберете '%s'. OptionToSetOrderBilledNotEnabled=Опцията (от модул 'Работен процес') за автоматична смяна на статуса на поръчката на 'Фактурирана' при валидиране на фактурата е изключена, така че ще трябва ръчно да промените статута на поръчка на 'Фактурирана'. IfValidateInvoiceIsNoOrderStayUnbilled=Ако фактурата не е валидирана, поръчката ще остане със статус 'Не фактурирана', докато фактурата не бъде валидирана. -CloseReceivedSupplierOrdersAutomatically=Затваряне на поръчката на '%s' автоматично, ако всички продукти са получени. +CloseReceivedSupplierOrdersAutomatically=Приключване на поръчката на '%s' автоматично, ако всички продукти са получени. SetShippingMode=Задайте режим на доставка diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang index 0f11fd65898..aea81115f73 100644 --- a/htdocs/langs/bg_BG/other.lang +++ b/htdocs/langs/bg_BG/other.lang @@ -7,8 +7,8 @@ ToolsDesc=Всички инструменти, които не са включе Birthday=Рожден ден BirthdayDate=Рождена дата DateToBirth=Дата на раждане -BirthdayAlertOn=Известяването за рожден ден е активно -BirthdayAlertOff=Известяването за рожден ден е неактивно +BirthdayAlertOn=сигнал за рожден ден активен +BirthdayAlertOff=сигнал за рожден ден неактивен TransKey=Превод на ключа TransKey MonthOfInvoice=Месец (1÷12) от датата на фактурата TextMonthOfInvoice=Месец (текст) на датата на фактурата @@ -31,10 +31,10 @@ NextYearOfInvoice=Следваща година от датата на факт DateNextInvoiceBeforeGen=Дата на следващата фактура (преди генериране) DateNextInvoiceAfterGen=Дата на следващата фактура (след генериране) -Notify_ORDER_VALIDATE=Клиентската поръчка е валидирана -Notify_ORDER_SENTBYMAIL=Клиентската поръчка е изпратена на имейл +Notify_ORDER_VALIDATE=Поръчката за продажба е валидирана +Notify_ORDER_SENTBYMAIL=Поръчката за продажба е изпратена на имейл Notify_ORDER_SUPPLIER_SENTBYMAIL=Поръчката за покупка е изпратена на имейл -Notify_ORDER_SUPPLIER_VALIDATE=Поръчката за покупка е записана +Notify_ORDER_SUPPLIER_VALIDATE=Поръчката за покупка е валидирана Notify_ORDER_SUPPLIER_APPROVE=Поръчката за покупка е одобрена Notify_ORDER_SUPPLIER_REFUSE=Поръчката за покупка е отхвърлена Notify_PROPAL_VALIDATE=Търговското предложение е валидирано @@ -44,20 +44,20 @@ Notify_PROPAL_SENTBYMAIL=Търговското предложение е изп Notify_WITHDRAW_TRANSMIT=Оттегляне на трансмисия Notify_WITHDRAW_CREDIT=Оттегляне на кредит Notify_WITHDRAW_EMIT=Извършване на оттегляне -Notify_COMPANY_CREATE=Контрагента е създаден +Notify_COMPANY_CREATE=Контрагентът е създаден Notify_COMPANY_SENTBYMAIL=Имейли изпратени от картата на контрагента -Notify_BILL_VALIDATE=Клиентската фактура е валидирана -Notify_BILL_UNVALIDATE=Клиентската фактура е не валидирана -Notify_BILL_PAYED=Клиентската фактура е платена -Notify_BILL_CANCEL=Клиентската фактура е анулирана -Notify_BILL_SENTBYMAIL=Клиентската фактура е изпратена на имейл -Notify_BILL_SUPPLIER_VALIDATE=Доставната фактура е валидирана -Notify_BILL_SUPPLIER_PAYED=Доставната фактура е платена -Notify_BILL_SUPPLIER_SENTBYMAIL=Доставната фактура е изпратена на имейл -Notify_BILL_SUPPLIER_CANCELED=Доставната фактура е анулирана -Notify_CONTRACT_VALIDATE=Договора е валидиран +Notify_BILL_VALIDATE=Фактурата за продажба е валидирана +Notify_BILL_UNVALIDATE=Фактурата за продажба е отворена отново +Notify_BILL_PAYED=Фактурата за продажба е платена +Notify_BILL_CANCEL=Фактурата за продажба е анулирана +Notify_BILL_SENTBYMAIL=Фактурата за продажба е изпратена на имейл +Notify_BILL_SUPPLIER_VALIDATE=Фактурата за доставка е валидирана +Notify_BILL_SUPPLIER_PAYED=Фактурата за доставка е платена +Notify_BILL_SUPPLIER_SENTBYMAIL=Фактурата за доставка е изпратена на имейл +Notify_BILL_SUPPLIER_CANCELED=Фактурата за доставка е анулирана +Notify_CONTRACT_VALIDATE=Договорът е валидиран Notify_FICHEINTER_VALIDATE=Интервенцията е валидирана -Notify_FICHINTER_ADD_CONTACT=Добавен е контакт към интервенция +Notify_FICHINTER_ADD_CONTACT=Добавен е контакт към интервенцията Notify_FICHINTER_SENTBYMAIL=Интервенцията е изпратена на имейл Notify_SHIPPING_VALIDATE=Доставката е валидирана Notify_SHIPPING_SENTBYMAIL=Доставката е изпратена на имейл @@ -71,7 +71,7 @@ Notify_TASK_CREATE=Задачата е създадена Notify_TASK_MODIFY=Задачата е променена Notify_TASK_DELETE=Задачата е изтрита Notify_EXPENSE_REPORT_VALIDATE=Разходния отчет е валидиран (изисква се одобрение) -Notify_EXPENSE_REPORT_APPROVE=Разходния отчет е одобрен +Notify_EXPENSE_REPORT_APPROVE=Разходният отчет е одобрен Notify_HOLIDAY_VALIDATE=Молбата за отпуск е валидирана (изисква се одобрение) Notify_HOLIDAY_APPROVE=Молбата за отпуск е одобрена SeeModuleSetup=Вижте настройка на модул %s @@ -82,7 +82,7 @@ AttachANewFile=Прикачване на нов файл / документ LinkedObject=Свързан обект NbOfActiveNotifications=Брой известия (брой получени имейли) PredefinedMailTest=__(Здравейте)__,\nТова е тестово съобщение, изпратено до __EMAIL__.\nДвата реда са разделени, чрез въвеждане на нов ред.\n\n__USER_SIGNATURE__ -PredefinedMailTestHtml=__(Здравейте)__,\nТова е тестово съобщение (думата 'тестово' трябва да бъде с удебелен шрифт).
Двата реда са разделени, чрез въвеждане на нов ред.

__USER_SIGNATURE__ +PredefinedMailTestHtml=__(Здравейте)__,\nТова е тестово съобщение (думата 'тестово' трябва да бъде с удебелен шрифт).\nДвата реда са разделени, чрез въвеждане на нов ред.\n\n__USER_SIGNATURE__ PredefinedMailContentContract=__(Здравейте)__,\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ PredefinedMailContentSendInvoice=__(Здравейте)__,\n\nМоля, вижте приложената фактура __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__(Здравейте)__,\n\nБихме желали да Ви напомним, че фактура __REF__ все още не е платена. Копие на фактурата е прикачено към съобщението.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ @@ -91,35 +91,35 @@ PredefinedMailContentSendSupplierProposal=__(Здравейте)__,\n\nМоля, PredefinedMailContentSendOrder=__(Здравейте)__\n\nМоля, вижте приложената поръчка __REF__\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ PredefinedMailContentSendSupplierOrder=__(Здравейте)__,\n\nМоля, вижте приложена нашата поръчка __REF__\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__(Здравейте)__,\n\nМоля, вижте приложената фактура __REF__\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ -PredefinedMailContentSendShipping=__(Здравейте)__,\n\nМоля, вижте приложената пратка __REF__\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ +PredefinedMailContentSendShipping=__(Здравейте)__,\n\nМоля, вижте приложената доставка __REF__\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ PredefinedMailContentSendFichInter=__(Здравейте)__,\n\nМоля, вижте приложената интервенция __REF__\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ PredefinedMailContentThirdparty=__(Здравейте)__,\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ PredefinedMailContentContact=__(Здравейте)__,\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ PredefinedMailContentUser=__(Здравейте)__,\n\n\n__(Поздрави)__,\n\n__USER_SIGNATURE__ -PredefinedMailContentLink=Можете да кликнете върху връзката по-долу, за да направите плащане, в случай, че не сте го извършили.\n\n%s\n\n +PredefinedMailContentLink=Може да кликнете върху връзката по-долу, за да направите плащане, в случай, че не сте го извършили.\n\n%s\n\n DemoDesc=Dolibarr е компактна ERP / CRM система, която поддържа различни работни модули. Демонстрация, показваща всички модули, няма смисъл, тъй като такъв сценарий никога не се случва (стотици модули са на разположение). Така че, няколко демо профила са налични. -ChooseYourDemoProfil=Изберете демо профила, която най-добре отговаря на вашите нужди ... -ChooseYourDemoProfilMore=... или създайте свой собствен профил
(свободен избор на модули) -DemoFundation=Управление на членовете на организацията -DemoFundation2=Управление на членовете и банковата сметка на организацията +ChooseYourDemoProfil=Изберете демо профила, който най-добре отговаря на вашите нужди... +ChooseYourDemoProfilMore=...или създайте свой собствен профил
(свободен избор на модули) +DemoFundation=Управление на членове на организация +DemoFundation2=Управление на членове и банкова сметка на организация DemoCompanyServiceOnly=Фирма или фрийлансър продаващи само услуги DemoCompanyShopWithCashDesk=Управление на магазин с каса -DemoCompanyProductAndStocks=Фирма продаваща продукти в магазин +DemoCompanyProductAndStocks=Фирма продаваща продукти с магазин DemoCompanyAll=Фирма с множество дейности (всички основни модули) CreatedBy=Създадено от %s ModifiedBy=Променено от %s ValidatedBy=Валидирано от %s -ClosedBy=Затворено от %s +ClosedBy=Приключено от %s CreatedById=Потребител, който е създал -ModifiedById=Потребител, който е направил последната промяна +ModifiedById=Потребител, който е направил последна промяна ValidatedById=Потребител, който е валидирал CanceledById=Потребител, който е анулирал -ClosedById=Потребител, който е затворил +ClosedById=Потребител, който е приключил CreatedByLogin=Потребител, който е създал -ModifiedByLogin=Потребител, който е направил последната промяна +ModifiedByLogin=Потребител, който е направил последна промяна ValidatedByLogin=Потребител, който е валидирал CanceledByLogin=Потребител, който е анулирал -ClosedByLogin=Потребител, който е затворил +ClosedByLogin=Потребител, който е приключил FileWasRemoved=Файл %s е премахнат DirWasRemoved=Директория %s е премахната FeatureNotYetAvailable=Функцията все още не е налице в текущата версия @@ -170,28 +170,28 @@ SizeUnitinch=инч SizeUnitfoot=фут SizeUnitpoint=точка BugTracker=Регистър на бъгове -SendNewPasswordDesc=Този формуляр ви позволява да заявите нова парола. Тя ще бъде изпратена на вашия имейл адрес.
Промяната ще влезе в сила, след като кликнете върху връзката за потвърждение в имейла.
Проверете си пощата. +SendNewPasswordDesc=Този формуляр позволява да заявите нова парола. Тя ще бъде изпратена на вашият имейл адрес.
Промяната ще влезе в сила след като кликнете върху връзката за потвърждение в имейла.
Проверете си пощата. BackToLoginPage=Назад към страницата за вход -AuthenticationDoesNotAllowSendNewPassword=Режимът за удостоверяване е %s.
В този режим, системата не може да знае, нито да промени паролата ви.
Свържете се с вашия системен администратор, ако искате да промените паролата си. +AuthenticationDoesNotAllowSendNewPassword=Режимът за удостоверяване е %s.
В този режим, системата не може да знае, нито да промени паролата ви.
Свържете се с вашият системен администратор, ако искате да промените паролата си. EnableGDLibraryDesc=Инсталирайте или активирайте GD библиотеката на вашата PHP инсталация, за да използвате тази опция. ProfIdShortDesc=Проф. Id %s е информация, в зависимост от държавата на контрагента.
Например, за държавата %s, това е код %s. -DolibarrDemo=Dolibarr ERP/CRM демо +DolibarrDemo=Dolibarr ERP / CRM демо StatsByNumberOfUnits=Статистика за общото количество продукти / услуги -StatsByNumberOfEntities=Статистика за броя на свързаните документи (брой фактури, поръчка ...) +StatsByNumberOfEntities=Статистика за броя на свързаните документи (брой фактури, поръчки...) NumberOfProposals=Брой търговски предложения -NumberOfCustomerOrders=Брой клиентски поръчки -NumberOfCustomerInvoices=Брой клиентски фактури -NumberOfSupplierProposals=Брой доставни фактури +NumberOfCustomerOrders=Брой поръчки за продажба +NumberOfCustomerInvoices=Брой фактури за продажба +NumberOfSupplierProposals=Брой фактури за доставка NumberOfSupplierOrders=Брой поръчки за покупка -NumberOfSupplierInvoices=Брой доставни фактури +NumberOfSupplierInvoices=Брой фактури за доставка NumberOfContracts=Брой договори -NumberOfUnitsProposals=Брой единици по търговски предложения -NumberOfUnitsCustomerOrders=Брой единици по клиентски поръчки -NumberOfUnitsCustomerInvoices=Брой единици по клиентски фактури -NumberOfUnitsSupplierProposals=Брой единици по запитвания към доставчици -NumberOfUnitsSupplierOrders=Брой единици по поръчки за покупка -NumberOfUnitsSupplierInvoices=Брой единици по доставни фактури -NumberOfUnitsContracts=Брой единици по договори +NumberOfUnitsProposals=Брой по търговски предложения +NumberOfUnitsCustomerOrders=Брой по поръчки за продажба +NumberOfUnitsCustomerInvoices=Брой по фактури за продажба +NumberOfUnitsSupplierProposals=Брой по запитвания към доставчици +NumberOfUnitsSupplierOrders=Брой по поръчки за покупка +NumberOfUnitsSupplierInvoices=Брой по фактури за доставка +NumberOfUnitsContracts=Брой по договори EMailTextInterventionAddedContact=Възложена ви е нова интервенция %s. EMailTextInterventionValidated=Интервенция %s е валидирана. EMailTextInvoiceValidated=Фактура %s е валидирана. @@ -200,7 +200,7 @@ EMailTextProposalValidated=Търговско предложение %s е ва EMailTextProposalClosedSigned=Търговско предложение %s е подписано. EMailTextOrderValidated=Поръчка %s е валидирана. EMailTextOrderApproved=Поръчка %s е одобрена. -EMailTextOrderValidatedBy=Поръчка %s е записана от %s. +EMailTextOrderValidatedBy=Поръчка %s е валидирана от %s. EMailTextOrderApprovedBy=Поръчка %s е одобрена от %s. EMailTextOrderRefused=Поръчка %s е отхвърлена. EMailTextOrderRefusedBy=Поръчка %s е отхвърлена от %s. @@ -209,29 +209,29 @@ EMailTextExpenseReportValidated=Разходен отчет %s е валидир EMailTextExpenseReportApproved=Разходен отчет %s е одобрен. EMailTextHolidayValidated=Молба за отпуск %s е валидирана. EMailTextHolidayApproved=Молба за отпуск %s е одобрена. -ImportedWithSet=Набор от данни за импорт +ImportedWithSet=Набор от данни за импортиране DolibarrNotification=Автоматично уведомяване -ResizeDesc=Въведете нова ширина ИЛИ нова височина. Съотношението ще се запази по време преоразмеряването... +ResizeDesc=Въведете нова ширина или нова височина. Съотношението ще се запази по време преоразмеряването... NewLength=Нова ширина NewHeight=Нова височина NewSizeAfterCropping=Нов размер след изрязване DefineNewAreaToPick=Определете нова област на изображението, за да изберете (ляв клик върху изображението, след което плъзнете, докато стигнете до противоположния ъгъл) CurrentInformationOnImage=Този инструмент е предназначен да ви помогне да преоразмерите или изрежете изображение. Това е информацията за текущото редактирано изображение. ImageEditor=Редактор на изображения -YouReceiveMailBecauseOfNotification=Получавате това съобщение, защото вашият имейл е добавен към списъка с цел информиране за специални събития в %s софтуер на %s. +YouReceiveMailBecauseOfNotification=Здравейте,\nПолучавате това съобщение, тъй като вашият имейл адрес е добавен към списък целящ информиране за конкретни събития в %s софтуер на %s.\n YouReceiveMailBecauseOfNotification2=Това събитие е следното: -ThisIsListOfModules=Това е списък на модулите, предварително избрани за този демонстрационен профил (само най-основните модули са видими в тази демонстрация). Редактирайте, ако е необходимо, за да имате по-персонализирано демо и кликнете върху "Старт". -UseAdvancedPerms=Използване на разширени разрешения на някои модули +ThisIsListOfModules=Това е списък на модулите, предварително избрани за този демонстрационен профил (само най-основните модули са видими в тази демонстрация). Променете това, ако е необходимо, за да имате по-персонализирано демо и кликнете върху "Старт". +UseAdvancedPerms=Използване на разширени права на някои модули FileFormat=Файлов формат SelectAColor=Избиране на цвят AddFiles=Добавяне на файлове StartUpload=Стартиране на качване CancelUpload=Анулиране на качване -FileIsTooBig=Файлът е твърде голям +FileIsTooBig=Файловете са твърде големи PleaseBePatient=Моля, бъдете търпеливи... NewPassword=Нова парола ResetPassword=Възстановяване на парола -RequestToResetPasswordReceived=Получена е заявка за промяна на паролата ви. +RequestToResetPasswordReceived=Получена е заявка за промяна на вашата парола. NewKeyIs=Това са новите ви данни за вход NewKeyWillBe=Вашите нови данни за вход ще бъдат ClickHereToGoTo=Кликнете тук, за да отидете на %s @@ -239,29 +239,29 @@ YouMustClickToChange=Необходимо е първо да кликнете в ForgetIfNothing=Ако не сте заявили промяната, просто забравете за този имейл. Вашите идентификационни данни се съхраняват на сигурно място. IfAmountHigherThan=Ако сумата e по-висока от %s SourcesRepository=Хранилище за източници -Chart=Диаграма +Chart=Графика PassEncoding=Кодиране на пароли -PermissionsAdd=Разрешенията са добавени -PermissionsDelete=Разрешенията са премахнати -YourPasswordMustHaveAtLeastXChars=Вашата парола трябва да има поне %s символа +PermissionsAdd=Правата са добавени +PermissionsDelete=Правата са премахнати +YourPasswordMustHaveAtLeastXChars=Вашата парола трябва да съдържа поне %s символа YourPasswordHasBeenReset=Вашата парола е успешно възстановена. ApplicantIpAddress=IP адрес на заявителя SMSSentTo=Изпратен е SMS на %s MissingIds=Липсват идентификатори -ThirdPartyCreatedByEmailCollector=Контрагент, създаден чрез имейл колектор от имейл MSGID %s -ContactCreatedByEmailCollector=Контактът/адресът, създаден чрез имейл колектор от имейл MSGID %s -ProjectCreatedByEmailCollector=Проект, създаден чрез имейл колектор от имейл MSGID %s -TicketCreatedByEmailCollector=Тикет, създаден чрез имейл колектор от имейл MSGID %s +ThirdPartyCreatedByEmailCollector=Контрагентът е създаден, чрез имейл колектор от имейл MSGID %s +ContactCreatedByEmailCollector=Контактът / адресът е създаден, чрез имейл колектор от имейл MSGID %s +ProjectCreatedByEmailCollector=Проектът е създаден, чрез имейл колектор от имейл MSGID %s +TicketCreatedByEmailCollector=Тикетът е създаден, чрез имейл колектор от имейл MSGID %s ##### Export ##### -ExportsArea=Секция за експорт +ExportsArea=Секция за експортиране AvailableFormats=Налични формати LibraryUsed=Използвана библиотека LibraryVersion=Версия на библиотеката -ExportableDatas=Данни за експорт -NoExportableData=Няма данни за експорт (няма модули със заредени данни за експорт или липсват разрешения) +ExportableDatas=Експортни данни +NoExportableData=Няма експортни данни (няма модули със заредени данни за експортиране или липсват права) ##### External sites ##### -WebsiteSetup=Настройка на Уебсайт модула +WebsiteSetup=Настройка на модул уебсайт WEBSITE_PAGEURL=URL адрес на страницата WEBSITE_TITLE=Заглавие WEBSITE_DESCRIPTION=Описание diff --git a/htdocs/langs/bg_BG/products.lang b/htdocs/langs/bg_BG/products.lang index 751313cdc4d..e7fb38991c4 100644 --- a/htdocs/langs/bg_BG/products.lang +++ b/htdocs/langs/bg_BG/products.lang @@ -1,7 +1,8 @@ # Dolibarr language file - Source file is en_US - products -ProductRef=Реф. № на продукт -ProductLabel=Етикет на продукта +ProductRef=Реф. продукт +ProductLabel=Етикет на продукт ProductLabelTranslated=Преведен продуктов етикет +ProductDescription=Product description ProductDescriptionTranslated=Преведено продуктово описание ProductNoteTranslated=Преведена продуктова бележка ProductServiceCard=Карта @@ -11,7 +12,7 @@ Products=Продукти Services=Услуги Product=Продукт Service=Услуга -ProductId=Идентификатор на Продукт/Услуга +ProductId=Идентификатор на Продукт / Услуга Create=Създаване Reference=Референция NewProduct=Нов продукт @@ -31,19 +32,19 @@ ProductsPipeServices=Продукти | Услуги ProductsOnSaleOnly=Продукти само за продажба ProductsOnPurchaseOnly=Продукти само за покупка ProductsNotOnSell=Продукти, които не са за продажба, и не са за покупка -ProductsOnSellAndOnBuy=Продукти за продажба или покупка +ProductsOnSellAndOnBuy=Продукти за продажба и за покупка ServicesOnSaleOnly=Услуги само за продажба ServicesOnPurchaseOnly=Услуги само за покупка ServicesNotOnSell=Услуги, които не са за продажба, и не са за покупка -ServicesOnSellAndOnBuy=Услуги за продажба или покупка +ServicesOnSellAndOnBuy=Услуги за продажба и за покупка LastModifiedProductsAndServices=Продукти / Услуги: %s последно променени -LastRecordedProducts=Продукти: %s последно регистрирани -LastRecordedServices=Услуги: %s последно регистрирани +LastRecordedProducts=Продукти: %s последно добавени +LastRecordedServices=Услуги: %s последно добавени CardProduct0=Продукт CardProduct1=Услуга Stock=Наличност MenuStocks=Наличности -Stocks=Наличност и движения +Stocks=Наличности и местоположение (склад) на продуктите Movements=Движения Sell=Продажба Buy=Покупка @@ -61,7 +62,7 @@ ProductStatusNotOnBuyShort=Не се купува UpdateVAT=Актуализиране на ДДС UpdateDefaultPrice=Актуализиране на цената по подразбиране UpdateLevelPrices=Актуализиране на цени за всяко ниво -AppliedPricesFrom=Приложен от +AppliedPricesFrom=Приложена на SellingPrice=Продажна цена SellingPriceHT=Продажна цена (без ДДС) SellingPriceTTC=Продажна цена (с ДДС) @@ -72,21 +73,21 @@ SoldAmount=Стойност на продажбите PurchasedAmount=Стойност на покупките NewPrice=Нова цена MinPrice=Минимална продажна цена -EditSellingPriceLabel=Редактиране на етикета на продажната цена +EditSellingPriceLabel=Променяне на етикета на продажната цена CantBeLessThanMinPrice=Продажната цена не може да бъде по-ниска от минимално допустимата за този продукт/услуга (%s без ДДС). Това съобщение може да се появи, ако въведете твърде голяма отстъпка. ContractStatusClosed=Затворен -ErrorProductAlreadyExists=Вече съществува продукт/услуга с реф. № %s. +ErrorProductAlreadyExists=Вече съществува продукт / услуга с реф. %s. ErrorProductBadRefOrLabel=Грешна стойност за референция или етикет. ErrorProductClone=Възникна проблем при опит за клониране на продукта/услугата. ErrorPriceCantBeLowerThanMinPrice=Грешка, цената не може да бъде по-ниска от минималната цена. Suppliers=Доставчици -SupplierRef=Реф. № (SKU) +SupplierRef=Реф. (SKU) ShowProduct=Показване на продукт ShowService=Показване на услуга -ProductsAndServicesArea=Зона за Продукти | Услуги -ProductsArea=Зона за Продукти -ServicesArea=Зона за Услуги -ListOfStockMovements=Списък на движения на стокови наличности +ProductsAndServicesArea=Секция за продукти и услуги +ProductsArea=Секция за продукти +ServicesArea=Секция за услуги +ListOfStockMovements=Списък с движения на наличности BuyingPrice=Покупна цена PriceForEachProduct=Продукти със специфични цени SupplierCard=Карта @@ -96,7 +97,7 @@ BarcodeType=Тип баркод SetDefaultBarcodeType=Задаване на тип баркод BarcodeValue=Баркод стойност NoteNotVisibleOnBill=Бележка (не се вижда на фактури, предложения...) -ServiceLimitedDuration=Ако продуктът е услуга с ограничен срок на действие: +ServiceLimitedDuration=Ако продуктът е услуга с ограничена продължителност: MultiPricesAbility=Множество ценови сегменти за продукт / услуга (всеки клиент е в един ценови сегмент) MultiPricesNumPrices=Брой цени AssociatedProductsAbility=Активиране на виртуални продукти (комплекти) @@ -114,52 +115,52 @@ ListOfProductsServices=Списък на продукти / услуги ProductAssociationList=Списък на продукти / услуги, които са компонент(и) на този виртуален продукт (комплект) ProductParentList=Списък на продукти / услуги с този продукт като компонент ErrorAssociationIsFatherOfThis=Един от избраните продукти е основен за текущия продукт -DeleteProduct=Изтриване на продукт/услуга -ConfirmDeleteProduct=Сигурни ли сте, че желаете да изтриете този продукт/услуга? -ProductDeleted=Продукт/услуга %s е изтрит/а от базата данни. +DeleteProduct=Изтриване на продукт / услуга +ConfirmDeleteProduct=Сигурни ли сте, че желаете да изтриете този продукт / услуга? +ProductDeleted=Продукт / услуга %s е изтрит(а) от базата данни. ExportDataset_produit_1=Продукти ExportDataset_service_1=Услуги ImportDataset_produit_1=Продукти ImportDataset_service_1=Услуги -DeleteProductLine=Изтриване на продуктова линия -ConfirmDeleteProductLine=Сигурни ли сте, че искате да изтриете тази продуктова линия? +DeleteProductLine=Изтриване на продуктов ред +ConfirmDeleteProductLine=Сигурни ли сте, че искате да изтриете този продуктов ред? ProductSpecial=Специален QtyMin=Минимално количество за покупка PriceQtyMin=Минимална цена за количество PriceQtyMinCurrency=Цена (във валута) за това количество (без отстъпка) -VATRateForSupplierProduct=Ставка на ДДС (за този доставчик/продукт) +VATRateForSupplierProduct=Ставка на ДДС (за този доставчик / продукт) DiscountQtyMin=Отстъпка за това количество -NoPriceDefinedForThisSupplier=Няма дефинирана цена/количество за този доставчик/продукт -NoSupplierPriceDefinedForThisProduct=Няма дефинирана цена/количество за този продукт +NoPriceDefinedForThisSupplier=Няма дефинирана цена / количество за този доставчик / продукт +NoSupplierPriceDefinedForThisProduct=Няма дефинирана цена / количество за този продукт PredefinedProductsToSell=Предварително определен продукт PredefinedServicesToSell=Предварително определена услуга -PredefinedProductsAndServicesToSell=Предварително определени продукти/услуги за продажба +PredefinedProductsAndServicesToSell=Предварително определени продукти / услуги за продажба PredefinedProductsToPurchase=Предварително определен продукт за покупка PredefinedServicesToPurchase=Предварително определена услуга за покупка -PredefinedProductsAndServicesToPurchase=Предварително определени продукти/услуги за покупка -NotPredefinedProducts=Не предварително определени продукти/услуги -GenerateThumb=Генериране на палец +PredefinedProductsAndServicesToPurchase=Предварително определени продукти / услуги за покупка +NotPredefinedProducts=Не предварително определени продукти / услуги +GenerateThumb=Генериране на миниатюра ServiceNb=Услуга #%s -ListProductServiceByPopularity=Списък на продукти/услуги по популярност +ListProductServiceByPopularity=Списък на продукти / услуги по популярност ListProductByPopularity=Списък на продукти по популярност ListServiceByPopularity=Списък на услуги по популярност Finished=Произведен продукт -RowMaterial=Суров материал -ConfirmCloneProduct=Сигурни ли сте, че искате да клонирате този продукт/услуга %s? -CloneContentProduct=Клониране на цялата основна информация за продукт/услуга +RowMaterial=Суровина +ConfirmCloneProduct=Сигурни ли сте, че искате да клонирате този продукт / услуга %s? +CloneContentProduct=Клониране на цялата основна информация за продукт / услуга ClonePricesProduct=Клониране на цени -CloneCompositionProduct=Клониране на виртуален продукт/услуга +CloneCompositionProduct=Клониране на виртуален продукт / услуга CloneCombinationsProduct=Клониране на варианти на продукта ProductIsUsed=Този продукт се използва -NewRefForClone=Реф. № на нов продукт/услуга +NewRefForClone=Реф. на нов продукт / услуга SellingPrices=Продажни цени BuyingPrices=Покупни цени CustomerPrices=Клиентски цени SuppliersPrices=Доставни цени -SuppliersPricesOfProductsOrServices=Доставни цени (на продукти/услуги) +SuppliersPricesOfProductsOrServices=Доставни цени (на продукти / услуги) CustomCode=Митнически / Стоков / ХС код CountryOrigin=Държава на произход -Nature=Естество на продукта (материал / завършен) +Nature=Характер на продукта (материал / завършен) ShortLabel=Кратък етикет Unit=Мярка p=е. @@ -194,10 +195,10 @@ unitLM=Линеен метър unitM2=Квадратен метър unitM3=Кубичен метър unitL=Литър -ProductCodeModel=Реф. шаблон на продукт -ServiceCodeModel=Реф. шаблон на услуга +ProductCodeModel=Шаблон за генериране на реф. продукт +ServiceCodeModel=Шаблон за генериране на реф. услуга CurrentProductPrice=Текуща цена -AlwaysUseNewPrice=Винаги да се използва текуща цена на продукт/услуга +AlwaysUseNewPrice=Винаги да се използва текуща цена на продукт / услуга AlwaysUseFixedPrice=Използване на фиксирана цена PriceByQuantity=Различни цени за количество DisablePriceByQty=Деактивиране на цени за количество @@ -213,8 +214,8 @@ VariantLabelExample=Пример: Цвят Build=Произвеждане ProductsMultiPrice=Продукти и цени за всеки ценови сегмент ProductsOrServiceMultiPrice=Клиентски цени (за продукт или услуги, мулти цени) -ProductSellByQuarterHT=Оборот на продукти за тримесечие преди данъчно облагане -ServiceSellByQuarterHT=Оборот на услуги за тримесечие преди данъчно облагане +ProductSellByQuarterHT=Оборот на продукти за тримесечие без ДДС +ServiceSellByQuarterHT=Оборот на услуги за тримесечие без ДДС Quarter1=Първо тримесечие Quarter2=Второ тримесечие Quarter3=Трето тримесечие @@ -233,7 +234,7 @@ BarCodeDataForProduct=Информация за баркод на продукт BarCodeDataForThirdparty=Информация за баркод на контрагент %s: ResetBarcodeForAllRecords=Определяне на стойността на баркода за всеки запис (това също ще възстанови стойността на баркода, която е вече дефинирана с нови стойности) PriceByCustomer=Различни цени за всеки клиент -PriceCatalogue=Една продажна цена за продукт/услуга +PriceCatalogue=Една продажна цена за продукт / услуга PricingRule=Правила за продажни цени AddCustomerPrice=Добавяне на цена за клиент ForceUpdateChildPriceSoc=Определяне на една и съща цена за филиали на клиента @@ -250,8 +251,8 @@ PriceExpressionEditorHelp5=Налични глобални стойности: PriceMode=Ценови режим PriceNumeric=Номер DefaultPrice=Цена по подразбиране -ComposedProductIncDecStock=Увеличаване/Намаляване на наличност при промяна на основен продукт -ComposedProduct=Наследени продукти +ComposedProductIncDecStock=Увеличаване / намаляване на наличност при промяна на основен продукт +ComposedProduct=Съставни продукти MinSupplierPrice=Минимална покупната цена MinCustomerPrice=Минимална продажна цена DynamicPriceConfiguration=Динамична ценова конфигурация @@ -270,11 +271,11 @@ GlobalVariableUpdaterHelpFormat1=Формат на запитването {"URL" UpdateInterval=Интервал на актуализиране (минути) LastUpdated=Последна актуализация CorrectlyUpdated=Правилно актуализирано -PropalMergePdfProductActualFile=Файловете използвани за добавяне в PDF Azur +PropalMergePdfProductActualFile=Файловете използвани за добавяне в PDF Azur са PropalMergePdfProductChooseFile=Избиране на PDF файлове -IncludingProductWithTag=Включително продукт/услуга с таг/категория +IncludingProductWithTag=Включително продукт / услуга с таг / категория DefaultPriceRealPriceMayDependOnCustomer=Цена по подразбиране, реалната цена може да зависи от клиента -WarningSelectOneDocument=Моля изберете поне един документ +WarningSelectOneDocument=Моля, изберете поне един документ DefaultUnitToShow=Мярка NbOfQtyInProposals=Количество в предложенията ClinkOnALinkOfColumn=Кликнете върху връзката от колона %s, за да получите подробен изглед... @@ -290,41 +291,41 @@ SizeUnits=Мярка за размер DeleteProductBuyPrice=Изтриване на покупна цена ConfirmDeleteProductBuyPrice=Сигурни ли сте, че искате да изтриете тази покупна цена? SubProduct=Подпродукт -ProductSheet=Лист на продукт -ServiceSheet=Лист на услуга +ProductSheet=Спецификация на продукт +ServiceSheet=Спецификация на услуга PossibleValues=Възможни стойности GoOnMenuToCreateVairants=Отидете в менюто %s - %s, за да подготвите атрибутите на варианта (като цветове, размер, ...) UseProductFournDesc=Добавяне на функция за дефиниране на описания на продуктите, определени от доставчици като допълнение към описанията за клиенти ProductSupplierDescription=Описание на продукта от доставчик #Attributes -VariantAttributes=Атрибути на варианти -ProductAttributes=Атрибути на продуктови варианти -ProductAttributeName=Атрибут на варианта %s -ProductAttribute=Атрибут на варианта +VariantAttributes=Атрибути на вариант +ProductAttributes=Атрибути на вариант за продукти +ProductAttributeName=Атрибут на вариант %s +ProductAttribute=Атрибут на вариант ProductAttributeDeleteDialog=Сигурни ли сте, че искате да изтриете този атрибут? Всички стойности ще бъдат изтрити. ProductAttributeValueDeleteDialog=Сигурни ли сте, че искате да изтриете стойността '%s' с реф. № '%s' на този атрибут? ProductCombinationDeleteDialog=Сигурни ли сте, че искате да изтриете варианта на продукта '%s'? ProductCombinationAlreadyUsed=Възникна грешка при изтриването на варианта. Моля, проверете дали не се използва в някой обект ProductCombinations=Варианти PropagateVariant=Размножаване на варианти -HideProductCombinations=Скриване на продуктовите варианти в селектора за продукти +HideProductCombinations=Скриване на продуктови варианти в селектора за продукти ProductCombination=Вариант NewProductCombination=Нов вариант -EditProductCombination=Редактиране на вариант +EditProductCombination=Промяна на вариант NewProductCombinations=Нови варианти -EditProductCombinations=Редактиране на варианти +EditProductCombinations=Промяна на варианти SelectCombination=Избиране на комбинация ProductCombinationGenerator=Генератор на варианти Features=Характеристики -PriceImpact=Влияние върху цена -WeightImpact=Влияние върху тегло +PriceImpact=Въздействие върху цената +WeightImpact=Въздействие върху теглото NewProductAttribute=Нов атрибут NewProductAttributeValue=Нова стойност на атрибута ErrorCreatingProductAttributeValue=Възникна грешка при създаването на стойността на атрибута. Това може да се дължи на факта, че вече съществува стойност с тази референция ProductCombinationGeneratorWarning=Ако продължите, преди да генерирате нови варианти, всички предишни ще бъдат ИЗТРИТИ. Вече съществуващите ще бъдат актуализирани с новите стойности TooMuchCombinationsWarning=Генерирането на много варианти може да доведе до висок разход на процесорно време, използвана памет, поради което Dolibarr няма да може да ги създаде. Активирането на опцията '%s' може да помогне за намаляване на използването на паметта. DoNotRemovePreviousCombinations=Не премахва предишни варианти -UsePercentageVariations=Използване на процентни вариации +UsePercentageVariations=Използване на процентни изменения PercentageVariation=Процентно изменение ErrorDeletingGeneratedProducts=Възникна грешка при опит за изтриване на съществуващи продуктови варианти NbOfDifferentValues=Брой различни стойности diff --git a/htdocs/langs/bg_BG/projects.lang b/htdocs/langs/bg_BG/projects.lang index 1cc17d3e576..b69000cd9f2 100644 --- a/htdocs/langs/bg_BG/projects.lang +++ b/htdocs/langs/bg_BG/projects.lang @@ -1,30 +1,30 @@ # Dolibarr language file - Source file is en_US - projects RefProject=Реф. проект ProjectRef=Проект реф. -ProjectId=Проект № -ProjectLabel=Име на проект +ProjectId=Идентификатор на проект +ProjectLabel=Етикет на проект ProjectsArea=Секция за проекти ProjectStatus=Статус на проект SharedProject=Всички PrivateProject=Участници в проекта ProjectsImContactFor=Проекти, в които съм определен за контакт -AllAllowedProjects=Всеки проект, който мога да видя (мой и публичен) +AllAllowedProjects=Всеки проект, който мога да прочета (мой и публичен) AllProjects=Всички проекти -MyProjectsDesc=Този изглед е ограничен до проекти, в които сте контакт +MyProjectsDesc=Този изглед е ограничен до проекти, в които сте определен за контакт ProjectsPublicDesc=Този изглед представя всички проекти, които можете да прочетете. TasksOnProjectsPublicDesc=Този изглед представя всички задачи по проекти, които можете да прочетете. ProjectsPublicTaskDesc=Този изглед представя всички проекти и задачи, които можете да прочетете. ProjectsDesc=Този изглед представя всички проекти (вашите потребителски права ви дават разрешение да виждате всичко). TasksOnProjectsDesc=Този изглед представя всички задачи за всички проекти (вашите потребителски права ви дават разрешение да виждате всичко). -MyTasksDesc=Този изглед е ограничен до проекти или задачи, в които сте контакт -OnlyOpenedProject=Само отворените проекти са видими (чернови или затворени проекти не са видими). -ClosedProjectsAreHidden=Затворените проекти не са видими. +MyTasksDesc=Този изглед е ограничен до проекти или задачи, в които сте определен за контакт +OnlyOpenedProject=Само отворените проекти са видими (чернови или приключени проекти не са видими). +ClosedProjectsAreHidden=Приключените проекти не са видими. TasksPublicDesc=Този страница показва всички проекти и задачи, които може да прочетете. TasksDesc=Този страница показва всички проекти и задачи (вашите потребителски права ви дават разрешение да виждате всичко). AllTaskVisibleButEditIfYouAreAssigned=Всички задачи за определените проекти са видими, но можете да въведете време само за задача, възложена на избрания потребител. Задайте задача, ако е необходимо да въведете отделено време за нея. OnlyYourTaskAreVisible=Видими са само задачите, които са ви възложени. Възложете задача на себе си, ако не е видима, а трябва да въведете отделено време за нея. ImportDatasetTasks=Задачи по проекти -ProjectCategories=Етикети / Категории +ProjectCategories=Тагове / Категории на проекти NewProject=Нов проект AddProject=Създаване на проект DeleteAProject=Изтриване на проект @@ -35,8 +35,8 @@ OpenedProjects=Отворени проекти OpenedTasks=Отворени задачи OpportunitiesStatusForOpenedProjects=Размер на възможностите от отворени проекти по статус OpportunitiesStatusForProjects=Размер на възможностите от проекти по статус -ShowProject=Преглед на проект -ShowTask=Преглед на задача +ShowProject=Показване на проект +ShowTask=Показване на задача SetProject=Задайте проект NoProject=Няма дефиниран или притежаван проект NbOfProjects=Брой проекти @@ -45,9 +45,9 @@ TimeSpent=Отделено време TimeSpentByYou=Време, отделено от вас TimeSpentByUser=Време, отделено от потребител TimesSpent=Отделено време -TaskId=Задача № -RefTask=Задача реф. -LabelTask=Име на задача +TaskId=Идентификатор на задача +RefTask=Реф. задача +LabelTask=Етикет на задача TaskTimeSpent=Време, отделено на задачи TaskTimeUser=Потребител TaskTimeNote=Бележка @@ -68,7 +68,7 @@ TaskDescription=Описание на задача NewTask=Нова задача AddTask=Създаване на задача AddTimeSpent=Въвеждане на отделено време -AddHereTimeSpentForDay=Добавете тук отделеното време за този ден/задача +AddHereTimeSpentForDay=Добавете тук отделеното време за този ден / задача Activity=Дейност Activities=Задачи / Дейности MyActivities=Мои задачи / дейности @@ -79,14 +79,14 @@ ProgressDeclared=Деклариран напредък ProgressCalculated=Изчислен напредък Time=Време ListOfTasks=Списък със задачи -GoToListOfTimeConsumed=Отидете в списъка с изразходваното време -GoToListOfTasks=Отидете в списъка със задачи -GoToGanttView=Преглед на Gantt диаграма +GoToListOfTimeConsumed=Показване на списъка с изразходвано време +GoToListOfTasks=Показване на списъка със задачи +GoToGanttView=Показване на Gantt диаграма GanttView=Gantt диаграма ListProposalsAssociatedProject=Списък на търговски предложения, свързани с проекта ListOrdersAssociatedProject=Списък на поръчки за продажба, свързани с проекта ListInvoicesAssociatedProject=Списък на фактури за продажба, свързани с проекта -ListPredefinedInvoicesAssociatedProject=Списък на шаблони за фактури за продажба, свързани с проекта +ListPredefinedInvoicesAssociatedProject=Списък на шаблонни фактури за продажба, свързани с проекта ListSupplierOrdersAssociatedProject=Списък на поръчки за покупка, свързани с проекта ListSupplierInvoicesAssociatedProject=Списък на фактури за покупка, свързани с проекта ListContractAssociatedProject=Списък на договори, свързани с проекта @@ -94,34 +94,34 @@ ListShippingAssociatedProject=Списък на пратки, свързани ListFichinterAssociatedProject=Списък на интервенции, свързани с проекта ListExpenseReportsAssociatedProject=Списък на разходни отчети, свързани с проекта ListDonationsAssociatedProject=Списък на дарения, свързани с проекта -ListVariousPaymentsAssociatedProject=Списък на различни плащания, свързани с проекта +ListVariousPaymentsAssociatedProject=Списък на разнородни плащания, свързани с проекта ListSalariesAssociatedProject=Списък на плащания на заплати, свързани с проекта ListActionsAssociatedProject=Списък на събития, свързани с проекта ListTaskTimeUserProject=Списък на отделено време по задачи, свързани с проекта ListTaskTimeForTask=Списък на отделено време за задача -ActivityOnProjectToday=Дейност по проект (за деня) +ActivityOnProjectToday=Дейност по проект (за днес) ActivityOnProjectYesterday=Дейност по проект (за вчера) -ActivityOnProjectThisWeek=Дейност по проект (за седмица) -ActivityOnProjectThisMonth=Дейност по проект (за месеца) -ActivityOnProjectThisYear=Дейност по проект (за година) -ChildOfProjectTask=Наследник на проект/задача +ActivityOnProjectThisWeek=Дейност по проект (за тази седмица) +ActivityOnProjectThisMonth=Дейност по проект (за този месец) +ActivityOnProjectThisYear=Дейност по проект (за тази година) +ChildOfProjectTask=Наследник на проект / задача ChildOfTask=Наследник на задача TaskHasChild=Задачата има наследник -NotOwnerOfProject=Не сте собственик на този частен проект +NotOwnerOfProject=Не сте собственик на този личен проект AffectedTo=Разпределено на CantRemoveProject=Този проект не може да бъде премахнат, тъй като е свързан с някои други обекти (фактури, поръчки или други). Вижте раздела свързани файлове. ValidateProject=Валидиране на проект ConfirmValidateProject=Сигурни ли сте, че искате да валидирате този проект? -CloseAProject=Затваряне на проект -ConfirmCloseAProject=Сигурни ли сте, че искате да затворите този проект? -AlsoCloseAProject=Също така затворете проекта (задръжте го отворен, ако все още трябва да работите по задачите в него) +CloseAProject=Приключване на проект +ConfirmCloseAProject=Сигурни ли сте, че искате да приключите този проект? +AlsoCloseAProject=Приключване на проект (задръжте го отворен, ако все още трябва да работите по задачите в него) ReOpenAProject=Отваряне на проект ConfirmReOpenAProject=Сигурни ли сте, че искате да отворите повторно този проект? ProjectContact=Контакти / Участници TaskContact=Участници в задачата ActionsOnProject=Събития свързани с проекта -YouAreNotContactOfProject=Вие не сте контакт за този частен проект -UserIsNotContactOfProject=Потребителят не е контакт за този частен проект +YouAreNotContactOfProject=Вие не сте определен за контакт в този личен проект +UserIsNotContactOfProject=Потребителят не е определен за контакт в този личен проект DeleteATimeSpent=Изтриване на отделено време ConfirmDeleteATimeSpent=Сигурни ли сте, че искате да изтриете това отделено време? DoNotShowMyTasksOnly=Показване също на задачи, които не са възложени на мен @@ -130,25 +130,25 @@ TaskRessourceLinks=Контакти / Участници ProjectsDedicatedToThisThirdParty=Проекти, насочени към този контрагент NoTasks=Няма задачи за този проект LinkedToAnotherCompany=Свързано с друг контрагент -TaskIsNotAssignedToUser=Задачата не е възложена на потребителя. Използвайте бутона '%s', за да възложите задачата. +TaskIsNotAssignedToUser=Задачата не е възложена на потребителя. Използвайте бутона '%s', за да възложите задачата сега. ErrorTimeSpentIsEmpty=Отделеното време е празно ThisWillAlsoRemoveTasks=Това действие ще изтрие всички задачи по проекта (%s задачи в момента) и всички въвеждания на отделено време. -IfNeedToUseOtherObjectKeepEmpty=Ако някои обекти (фактура, поръчка, ...), принадлежащи на друг контрагент, трябва да бъдат свързани с проекта, за да се създаде, запази това празно, за да бъде проектът многостранен. +IfNeedToUseOtherObjectKeepEmpty=Ако някои обекти (фактура, поръчка, ...), принадлежащи на друг контрагент, трябва да бъдат свързани с проекта за създаване, запазете това празно, за да бъде проектът мулти-контрагентен. CloneTasks=Клониране на задачи CloneContacts=Клониране на контакти CloneNotes=Клониране на бележки CloneProjectFiles=Клониране на обединени файлове в проекта CloneTaskFiles=Клониране на обединени файлове в задачи (ако задача(ите) са клонирани) -CloneMoveDate=Актуализиране на датите на проекта/задачите от сега? +CloneMoveDate=Актуализиране на датите на проекта / задачите от сега? ConfirmCloneProject=Сигурни ли сте, че ще искате да клонирате този проект? ProjectReportDate=Променете датите на задачите, според новата начална дата на проекта ErrorShiftTaskDate=Невъзможно е да се смени датата на задача, за да съответства на новата начална дата на проекта ProjectsAndTasksLines=Проекти и задачи ProjectCreatedInDolibarr=Проект %s е създаден ProjectValidatedInDolibarr=Проект %s е валидиран -ProjectModifiedInDolibarr=Проект %s е редактиран +ProjectModifiedInDolibarr=Проект %s е променен TaskCreatedInDolibarr=Задача %s е създадена -TaskModifiedInDolibarr=Задача %s е редактирана +TaskModifiedInDolibarr=Задача %s е променена TaskDeletedInDolibarr=Задача %s е изтрита OpportunityStatus=Статус на възможността OpportunityStatusShort=Статус на възможността @@ -171,23 +171,23 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Сътрудник SelectElement=Избиране на елемент AddElement=Връзка към елемент # Documents models -DocumentModelBeluga=Шаблон за проектен документ за преглед на свързани обекти -DocumentModelBaleine=Шаблон за проектен документ за задачи +DocumentModelBeluga=Шаблон на проектен документ за преглед на свързани елементи +DocumentModelBaleine=Шаблон на проектен документ за задачи DocumentModelTimeSpent=Шаблон за отчет на отделеното време по проект -PlannedWorkload=Планирана работна натовареност -PlannedWorkloadShort=Работна натовареност +PlannedWorkload=Планирана натовареност +PlannedWorkloadShort=Натовареност ProjectReferers=Свързани елементи ProjectMustBeValidatedFirst=Проектът трябва първо да бъде валидиран FirstAddRessourceToAllocateTime=Определете потребителски ресурс на задачата за разпределяне на времето InputPerDay=За ден InputPerWeek=За седмица InputDetail=Детайли -TimeAlreadyRecorded=Това отделено време е вече записано за тази задача/ден и потребител %s +TimeAlreadyRecorded=Това отделено време е вече записано за тази задача / ден и потребител %s ProjectsWithThisUserAsContact=Проекти с потребител за контакт -TasksWithThisUserAsContact=Задачи възложени на този потребител +TasksWithThisUserAsContact=Задачи възложени на потребител ResourceNotAssignedToProject=Не е зададено към проект ResourceNotAssignedToTheTask=Не е зададено към задача -NoUserAssignedToTheProject=Няма потребители, назначени за този проект +NoUserAssignedToTheProject=Няма потребители, назначени за този проект. TimeSpentBy=Отделено време от TasksAssignedTo=Задачи, възложени на AssignTaskToMe=Възлагане на задача към мен @@ -195,22 +195,22 @@ AssignTaskToUser=Възлагане на задача към %s SelectTaskToAssign=Изберете задача за възлагане... AssignTask=Възлагане ProjectOverview=Общ преглед -ManageTasks=Използване на проекти, за да следите задачите и/или да докладвате за отделеното време за тях (часови листове) -ManageOpportunitiesStatus=Използване на проекти за проследяване на възможности/потенциални клиенти +ManageTasks=Използване на проекти, за да следите задачите и / или да докладвате за отделеното време за тях (графици) +ManageOpportunitiesStatus=Използване на проекти за проследяване на възможности / потенциални клиенти ProjectNbProjectByMonth=Брой създадени проекти на месец ProjectNbTaskByMonth=Брой създадени задачи на месец ProjectOppAmountOfProjectsByMonth=Сума на възможностите на месец ProjectWeightedOppAmountOfProjectsByMonth=Изчислена сума на възможностите на месец -ProjectOpenedProjectByOppStatus=Отворен проект/възможност по статус на възможността -ProjectsStatistics=Статистики за проекти/възможности -TasksStatistics=Статистика за задачи +ProjectOpenedProjectByOppStatus=Отворен проект / възможност по статус на възможността +ProjectsStatistics=Статистики на проекти / възможности +TasksStatistics=Статистика на задачи TaskAssignedToEnterTime=Задачата е възложена. Въвеждането на време по тази задача трябва да е възможно. -IdTaskTime=Id време на задача +IdTaskTime=Идентификатор на време на задача YouCanCompleteRef=Ако искате да завършите реф. с някакъв суфикс, препоръчително е да добавите символ "-", за да го разделите, така че автоматичното номериране да продължи да работи правилно за следващите проекти. Например %s-MYSUFFIX OpenedProjectsByThirdparties=Отворени проекти по контрагенти OnlyOpportunitiesShort=Само възможности OpenedOpportunitiesShort=Отворени възможности -NotOpenedOpportunitiesShort=Затворени възможности +NotOpenedOpportunitiesShort=Неотворени възможности NotAnOpportunityShort=Не е възможност OpportunityTotalAmount=Обща сума на възможностите OpportunityPonderatedAmount=Изчислена сума на възможностите @@ -227,14 +227,14 @@ AllowToLinkFromOtherCompany=Позволяване свързването на LatestProjects=Проекти: %s последни LatestModifiedProjects=Проекти: %s последно променени OtherFilteredTasks=Други филтрирани задачи -NoAssignedTasks=Не са намерени възложени задачи (възложете проект/задачи на текущия потребител от най-горното поле за избор, за да въведете времето в него) +NoAssignedTasks=Не са намерени възложени задачи (възложете проект / задачи на текущия потребител от най-горното поле за избор, за да въведете времето в него) ThirdPartyRequiredToGenerateInvoice=Контрагент трябва да бъде дефиниран в проекта, за да може да му издавате фактури. # Comments trans AllowCommentOnTask=Разрешаване на потребителски коментари в задачите AllowCommentOnProject=Разрешаване на потребителски коментари в проектите -DontHavePermissionForCloseProject=Нямате права да затворите проект %s -DontHaveTheValidateStatus=Проектът %s трябва да бъде отворен, за да го затворите -RecordsClosed=%s проект(а) е(са) затворен(и) +DontHavePermissionForCloseProject=Нямате права, за да приключите проект %s. +DontHaveTheValidateStatus=Проектът %s трябва да бъде отворен, за да го приключите. +RecordsClosed=%s проект(а) е(са) приключен(и) SendProjectRef=Информация за проект %s ModuleSalaryToDefineHourlyRateMustBeEnabled=Модулът 'Заплати' трябва да бъде активиран, за да дефинирате почасова ставка на служителите, за да оценените отделеното по проекта време NewTaskRefSuggested=Реф. № на задачата вече се използва, изисква се нов diff --git a/htdocs/langs/bg_BG/propal.lang b/htdocs/langs/bg_BG/propal.lang index 05ae69cff51..a7392ece08c 100644 --- a/htdocs/langs/bg_BG/propal.lang +++ b/htdocs/langs/bg_BG/propal.lang @@ -9,7 +9,7 @@ PdfCommercialProposalTitle=Търговско предложение ProposalCard=Карта NewProp=Ново търговско предложение NewPropal=Ново предложение -Prospect=Перспектива +Prospect=Потенциален клиент DeleteProp=Изтриване на търговско предложение ValidateProp=Валидиране на търговско предложение AddProp=Създаване на предложение @@ -26,19 +26,19 @@ AmountOfProposalsByMonthHT=Обща сума на месец (без ДДС) NbOfProposals=Брой търговски предложения ShowPropal=Показване на предложение PropalsDraft=Чернови -PropalsOpened=Отворено +PropalsOpened=Отворени PropalStatusDraft=Чернова (нужно е валидиране) PropalStatusValidated=Валидирано (отворено) PropalStatusSigned=Подписано (нужно е фактуриране) -PropalStatusNotSigned=Неподписано (затворено) +PropalStatusNotSigned=Отхвърлено (приключено) PropalStatusBilled=Фактурирано PropalStatusDraftShort=Чернова PropalStatusValidatedShort=Валидирано (отворено) -PropalStatusClosedShort=Затворено +PropalStatusClosedShort=Приключено PropalStatusSignedShort=Подписано -PropalStatusNotSignedShort=Неподписано +PropalStatusNotSignedShort=Отхвърлено PropalStatusBilledShort=Фактурирано -PropalsToClose=Търговски предложения за затваряне +PropalsToClose=Търговски предложения за приключване PropalsToBill=Подписани търговски предложения за фактуриране ListOfProposals=Списък на търговски предложения ActionsOnPropal=Свързани събития @@ -58,10 +58,10 @@ DefaultProposalDurationValidity=Срок на валидност по подра UseCustomerContactAsPropalRecipientIfExist=Използване тип на контакт / адрес 'Представител проследяващ предложението', ако е определен, вместо адрес на контрагента като адрес на получателя на предложението ConfirmClonePropal=Сигурни ли сте, че искате да клонирате търговско предложение %s? ConfirmReOpenProp=Сигурни ли сте, че искате да отворите отново търговско предложение %s? -ProposalsAndProposalsLines=Търговско предложение и линии -ProposalLine=Линия на предложението +ProposalsAndProposalsLines=Търговско предложение и редове +ProposalLine=Ред № AvailabilityPeriod=Забавяне на наличността -SetAvailability=Определяне на забавянето на наличността +SetAvailability=Задайте забавяне на наличността AfterOrder=след поръчка OtherProposals=Други предложения ##### Availability ##### @@ -76,10 +76,10 @@ TypeContact_propal_external_BILLING=Получател на фактурата TypeContact_propal_external_CUSTOMER=Получател на предложението TypeContact_propal_external_SHIPPING=Получател на доставката # Document models -DocModelAzurDescription=Завършен шаблон за предложение (logo...) -DocModelCyanDescription=Завършен шаблон за предложение (logo...) +DocModelAzurDescription=Завършен шаблон за предложение (лого...) +DocModelCyanDescription=Завършен шаблон за предложение (лого...) DefaultModelPropalCreate=Създаване на шаблон по подразбиране -DefaultModelPropalToBill=Шаблон по подразбиране, когато се затваря търговско предложение (за да бъде фактурирано) -DefaultModelPropalClosed=Шаблон по подразбиране, когато се затваря търговско предложение (нефактурирано) -ProposalCustomerSignature=Писмено приемане, фирмен печат, дата и подпис +DefaultModelPropalToBill=Шаблон по подразбиране, когато се приключва търговско предложение (за да бъде фактурирано) +DefaultModelPropalClosed=Шаблон по подразбиране, когато се приключва търговско предложение (не таксувано) +ProposalCustomerSignature=Име, фамилия, фирмен печат, дата и подпис ProposalsStatisticsSuppliers=Статистика на запитванията към доставчици diff --git a/htdocs/langs/bg_BG/sendings.lang b/htdocs/langs/bg_BG/sendings.lang index 2603bb9e759..8479a33646a 100644 --- a/htdocs/langs/bg_BG/sendings.lang +++ b/htdocs/langs/bg_BG/sendings.lang @@ -1,33 +1,33 @@ # Dolibarr language file - Source file is en_US - sendings -RefSending=Реф. експедиция -Sending=Експедиция -Sendings=Експедиции -AllSendings=Всички експедиции -Shipment=Пратка -Shipments=Пратки -ShowSending=Показване на експедиции +RefSending=Реф. доставка +Sending=Доставка +Sendings=Доставки +AllSendings=Всички доставки +Shipment=Доставка +Shipments=Доставки +ShowSending=Показване на доставка Receivings=Разписки за доставка -SendingsArea=Зона на Експедиции -ListOfSendings=Списък на експедиции +SendingsArea=Секция за доставки +ListOfSendings=Списък на доставки SendingMethod=Начин на доставка -LastSendings=Експедиции: %s последни -StatisticsOfSendings=Статистика за експедидиите -NbOfSendings=Брой експедиции -NumberOfShipmentsByMonth=Брой експедиции на месец -SendingCard=Карта за експедиция -NewSending=Нова експедиция -CreateShipment=Създаване на пратка -QtyShipped=Изпратено количество -QtyShippedShort=Изпр. кол. -QtyPreparedOrShipped=Приготвено или изпратено кол. -QtyToShip=Количество за изпращане -QtyReceived=Получено количество -QtyInOtherShipments=Количество в други пратки +LastSendings=Доставки: %s последни +StatisticsOfSendings=Статистика за доставки +NbOfSendings=Брой доставки +NumberOfShipmentsByMonth=Брой доставки на месец +SendingCard=Карта на доставка +NewSending=Нова доставка +CreateShipment=Създаване на доставка +QtyShipped=Изпратено кол. +QtyShippedShort=Изпратено +QtyPreparedOrShipped=Подготвено или изпратено кол. +QtyToShip=Кол. за изпращане +QtyReceived=Получено кол. +QtyInOtherShipments=Кол. в други доставки KeepToShip=Оставащо за изпращане KeepToShipShort=Оставащо -OtherSendingsForSameOrder=Други експедиции за тази поръчка -SendingsAndReceivingForSameOrder=Експедиции и разписки за тази поръчка -SendingsToValidate=Експедиции за валидиране +OtherSendingsForSameOrder=Други доставки за тази поръчка +SendingsAndReceivingForSameOrder=Доставки и разписки за тази поръчка +SendingsToValidate=Доставки за валидиране StatusSendingCanceled=Анулирана StatusSendingDraft=Чернова StatusSendingValidated=Валидирана (продукти за изпращане или вече изпратени) @@ -35,38 +35,38 @@ StatusSendingProcessed=Обработена StatusSendingDraftShort=Чернова StatusSendingValidatedShort=Валидирана StatusSendingProcessedShort=Обработена -SendingSheet=Лист за експедиция -ConfirmDeleteSending=Сигурни ли сте, че искате да изтриете тази експедиция? -ConfirmValidateSending=Сигурни ли сте, че искате да валидирате тази експедиция с реф. %s? -ConfirmCancelSending=Сигурни ли сте, че ли искате да анулирате тази експедиция? +SendingSheet=Формуляр за доставка +ConfirmDeleteSending=Сигурни ли сте, че искате да изтриете тази доставка? +ConfirmValidateSending=Сигурни ли сте, че искате да валидирате тази доставка с реф. %s? +ConfirmCancelSending=Сигурни ли сте, че ли искате да анулирате тази доставка? DocumentModelMerou=Шаблон А5 размер WarningNoQtyLeftToSend=Внимание, няма продукти чакащи да бъдат изпратени. -StatsOnShipmentsOnlyValidated=Статистики водени само от валидирани пратки. Използваната дата е дата на валидиране на пратката (планираната дата на доставка не винаги е известна) +StatsOnShipmentsOnlyValidated=Статистики водени само от валидирани доставки. Използваната дата е дата на валидиране на доставката (планираната дата на доставка не винаги е известна) DateDeliveryPlanned=Планирана дата за доставка RefDeliveryReceipt=Реф. разписка за доставка StatusReceipt=Статус на разписка за доставка DateReceived=Дата на получаване -SendShippingByEMail=Изпращане на пратка по имейл -SendShippingRef=Подаване на пратка %s -ActionsOnShipping=Събития за пратка +SendShippingByEMail=Изпращане на доставка по имейл +SendShippingRef=Изпращане на доставка %s +ActionsOnShipping=Свързани събития LinkToTrackYourPackage=Връзка за проследяване на вашата пратка -ShipmentCreationIsDoneFromOrder=За момента създаването на нова пратка се извършва от картата на поръчката. -ShipmentLine=Линия на пратка -ProductQtyInCustomersOrdersRunning=Количество продукт в отворени клиентски поръчки +ShipmentCreationIsDoneFromOrder=За момента създаването на нова доставка се извършва от картата на поръчка. +ShipmentLine=Ред на доставка +ProductQtyInCustomersOrdersRunning=Количество продукт в отворени поръчки за продажба ProductQtyInSuppliersOrdersRunning=Количество продукт в отворени поръчки за покупка -ProductQtyInShipmentAlreadySent=Вече изпратено количество продукт от отворена поръчка -ProductQtyInSuppliersShipmentAlreadyRecevied=Вече получено количество продукт от отворена поръчка за покупка +ProductQtyInShipmentAlreadySent=Количество продукт в отворени и вече изпратени поръчки за продажба +ProductQtyInSuppliersShipmentAlreadyRecevied=Количество продукт в отворени и вече получени поръчки за покупка NoProductToShipFoundIntoStock=Не е намерен продукт за изпращане в склад %s. Коригирайте наличността или се върнете, за да изберете друг склад. -WeightVolShort=Тегло/Обем -ValidateOrderFirstBeforeShipment=Първо трябва да валидирате поръчката, преди да можете да изпращате пратки. +WeightVolShort=Тегло / Обем +ValidateOrderFirstBeforeShipment=Първо трябва да валидирате поръчката, преди да може да извършвате доставки. # Sending methods # ModelDocument -DocumentModelTyphon=Завършен шаблон на разписка за доставка (лого...) +DocumentModelTyphon=Завършен шаблон на разписка за доставка (лого...) Error_EXPEDITION_ADDON_NUMBER_NotDefined=Константата EXPEDITION_ADDON_NUMBER не е дефинирана SumOfProductVolumes=Сума от обема на продуктите SumOfProductWeights=Сума от теглото на продуктите # warehouse details -DetailWarehouseNumber= Подробности за склада +DetailWarehouseNumber= Детайли за склада DetailWarehouseFormat= Тегло: %s (Кол.: %d) diff --git a/htdocs/langs/bg_BG/stocks.lang b/htdocs/langs/bg_BG/stocks.lang index 27a3b5aa48a..1e9bdd20f78 100644 --- a/htdocs/langs/bg_BG/stocks.lang +++ b/htdocs/langs/bg_BG/stocks.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - stocks -WarehouseCard=Карта на склад +WarehouseCard=Карта Warehouse=Склад Warehouses=Складове ParentWarehouse=Основен склад @@ -7,7 +7,7 @@ NewWarehouse=Нов склад / местоположение WarehouseEdit=Промяна на склад MenuNewWarehouse=Нов склад WarehouseSource=Изпращащ склад -WarehouseSourceNotDefined=Няма зададен склад, +WarehouseSourceNotDefined=Няма дефиниран склад AddWarehouse=Създаване на склад AddOne=Добавяне на един DefaultWarehouse=Склад по подразбиране @@ -17,20 +17,20 @@ CancelSending=Анулиране на изпращане DeleteSending=Изтриване на изпращане Stock=Наличност Stocks=Наличности -StocksByLotSerial=Наличности по Партида/Сериен № -LotSerial=Партиди/Серийни номера -LotSerialList=Списък на партиди/серийни номера +StocksByLotSerial=Наличности по партида / сериен № +LotSerial=Партиди / Серийни номера +LotSerialList=Списък на партиди / серийни номера Movements=Движения ErrorWarehouseRefRequired=Изисква се референтно име на склад ListOfWarehouses=Списък на складове -ListOfStockMovements=Списък на движението на стоковите наличности +ListOfStockMovements=Списък на движения на стокови наличности ListOfInventories=Списък на инвентари -MovementId=Идент. № за движение -StockMovementForId=Идент. № за движение %d -ListMouvementStockProject=Списък на складовите движения, свързани с проекта -StocksArea=Зона за складове +MovementId=Идентификатор на движение +StockMovementForId=Идентификатор на движение %d +ListMouvementStockProject=Списък на движения на стокови наличности, свързани с проекта +StocksArea=Секция за складове AllWarehouses=Всички складове -IncludeAlsoDraftOrders=Включва също чернови поръчки +IncludeAlsoDraftOrders=Включва чернови поръчки Location=Местоположение LocationSummary=Кратко име на местоположение NumberOfDifferentProducts=Брой различни продукти @@ -53,7 +53,7 @@ StockLowerThanLimit=Наличността е по-малка от лимита EnhancedValue=Стойност PMPValue=Средно измерена цена PMPValueShort=СИЦ -EnhancedValueOfWarehouses=Стойност на складовете +EnhancedValueOfWarehouses=Складова стойност UserWarehouseAutoCreate=Автоматично създаване на личен потребителски склад при създаване на потребител AllowAddLimitStockByWarehouse=Управляване също и на стойности за минимална и желана наличност за двойка (продукт-склад) в допълнение към стойност за продукт IndependantSubProductStock=Наличностите за продукти и подпродукти са независими @@ -81,15 +81,15 @@ StockLimit=Минимално количество за предупрежден StockLimitDesc=(празно) означава, че няма предупреждение.
0 може да се използва за предупреждение веднага след като наличността е изчерпана. PhysicalStock=Физическа наличност RealStock=Реална наличност -RealStockDesc=Физическа/реална наличност е наличността, която в момента се намира в складовете. +RealStockDesc=Физическа / реална наличност е наличността, която в момента се намира в складовете. RealStockWillAutomaticallyWhen=Реалната наличност ще бъде модифицирана според това правило (както е определено в модула на Наличности): VirtualStock=Виртуална наличност VirtualStockDesc=Виртуална наличност е изчислената наличност, която се образува след като всички отворени / предстоящи действия (които засягат наличности) се затворят (получени поръчки за покупка, изпратени клиентски поръчки и т.н.) -IdWarehouse=Идент. № на склад +IdWarehouse=Идентификатор на склад DescWareHouse=Описание на склад LieuWareHouse=Местоположение на склад WarehousesAndProducts=Складове и продукти -WarehousesAndProductsBatchDetail=Складове и продукти (с подробности за партида/ сериен №) +WarehousesAndProductsBatchDetail=Складове и продукти (с подробности за партида / сериен №) AverageUnitPricePMPShort=Средно измерена входна цена AverageUnitPricePMP=Средно измерена входна цена SellPriceMin=Единична продажна цена @@ -98,29 +98,29 @@ EstimatedStockValueSell=Стойност за продажба EstimatedStockValueShort=Входна стойност на наличност EstimatedStockValue=Входна стойност на наличност DeleteAWarehouse=Изтриване на склад -ConfirmDeleteWarehouse=Сигурни ли сте, че искате да изтриете склада %s? +ConfirmDeleteWarehouse=Сигурни ли сте, че искате да изтриете склад %s? PersonalStock=Наличност в %s ThisWarehouseIsPersonalStock=Този склад представлява фактическата наличност в %s %s SelectWarehouseForStockDecrease=Избиране на склад, който да се използва за намаляване на наличности SelectWarehouseForStockIncrease=Избиране на склад, който да се използва за увеличение на наличности NoStockAction=Няма действие с наличности DesiredStock=Желана наличност -DesiredStockDesc=Тази стойност ще бъде използвана за попълване на наличността, чрез функцията за попълване на наличности +DesiredStockDesc=Тази стойност ще бъде използвана за запълване на наличността, чрез функцията за попълване на наличности StockToBuy=За поръчка Replenishment=Попълване на наличности ReplenishmentOrders=Поръчки за попълване -VirtualDiffersFromPhysical=Според опциите за увеличаване/намаляване на наличности, физическите и виртуални наличности (физически + текущи поръчки) могат да се различават +VirtualDiffersFromPhysical=Според опциите за увеличаване / намаляване на наличности, физическите и виртуални наличности (физически + текущи поръчки) могат да се различават UseVirtualStockByDefault=Използване на виртуални наличности по подразбиране (вместо физически наличности) при използване на функцията за попълване на наличности UseVirtualStock=Използване на виртуални наличности UsePhysicalStock=Използване на физически наличности CurentSelectionMode=Текущ режим на избор CurentlyUsingVirtualStock=Виртуална наличност -CurentlyUsingPhysicalStock=Фактическа наличност +CurentlyUsingPhysicalStock=Физическа наличност RuleForStockReplenishment=Правило за попълване на наличности SelectProductWithNotNullQty=Избиране на най-малко един продукт с количество различно от 0 и доставчик AlertOnly= Само предупреждения -WarehouseForStockDecrease=Този склад %s ще се използва за намаляване на наличността -WarehouseForStockIncrease=Този склад %s ще се използва за увеличаване на наличността +WarehouseForStockDecrease=Складът %s ще бъде използван за намаляване на наличността +WarehouseForStockIncrease=Складът %s ще бъде използван за увеличаване на наличността ForThisWarehouse=За този склад ReplenishmentStatusDesc=Това е списък на всички продукти, чиято наличност е по-малка от желаната (или е по-малка от стойността на предупреждението, ако е поставена отметка в квадратчето 'Само предупреждения'). При използване на отметка в квадратчето може да създавате поръчки за покупка, за да запълните разликата. ReplenishmentOrdersDesc=Това е списък на всички отворени поръчки за покупка, включително предварително дефинирани продукти. Тук могат да се видят само отворени поръчки с предварително дефинирани продукти, които могат да повлияят на наличностите. @@ -142,16 +142,16 @@ DateMovement=Дата на движение InventoryCode=Код на движение / Инвентарен код IsInPackage=Съдържа се в опаковка WarehouseAllowNegativeTransfer=Наличността може да бъде отрицателна -qtyToTranferIsNotEnough=Нямате достатъчно запаси в изпращащия склад и настройката ви не позволява отрицателни наличности. +qtyToTranferIsNotEnough=Нямате достатъчно наличности в изпращащия склад и настройката ви не позволява отрицателни наличности. ShowWarehouse=Показване на склад MovementCorrectStock=Корекция на наличност за продукт %s MovementTransferStock=Прехвърляне на наличност за продукт %s в друг склад -InventoryCodeShort=Движ./Инв. код +InventoryCodeShort=Движ. / Инв. код NoPendingReceptionOnSupplierOrder=Не се очаква получаване, тъй като поръчката за покупка е отворена -ThisSerialAlreadyExistWithDifferentDate=Тази партида/сериен № (%s) вече съществува, но с различна дата на усвояване или дата на продажба (намерена е %s, но вие сте въвели %s). +ThisSerialAlreadyExistWithDifferentDate=Тази партида / сериен № (%s) вече съществува, но с различна дата на усвояване или дата на продажба (намерена е %s, но вие сте въвели %s). OpenAll=Отворено за всички действия OpenInternal=Отворен само за вътрешни действия -UseDispatchStatus=Използване на статус на изпращане (одобряване/отхвърляне) за продуктови линии при получаване на поръчка за покупка +UseDispatchStatus=Използване на статус на изпращане (одобряване / отхвърляне) за продуктови редове при получаване на поръчка за покупка OptionMULTIPRICESIsOn=Опцията 'Няколко цени за сегмент' е включена. Това означава, че продуктът има няколко продажни цени, така че стойността за продажба не може да бъде изчислена ProductStockWarehouseCreated=Минималното количество за предупреждение и желаните оптимални наличности са правилно създадени ProductStockWarehouseUpdated=Минималното количество за предупреждение и желаните оптимални наличности са правилно актуализирани @@ -159,19 +159,19 @@ ProductStockWarehouseDeleted=Минималното количество за п AddNewProductStockWarehouse=Определяне на ново минимално количество за предупреждение и желана оптимална наличност AddStockLocationLine=Намалете количеството, след което кликнете, за да добавите друг склад за този продукт InventoryDate=Дата на инвентаризация -NewInventory=Нов инвентар -inventorySetup = Настройка на инвентар +NewInventory=Нова инвентаризация +inventorySetup = Настройка на инвентаризация inventoryCreatePermission=Създаване на нова инвентаризация -inventoryReadPermission=Преглед на инвентари -inventoryWritePermission=Актуализиране на инвентари -inventoryValidatePermission=Валидиране на инвентар +inventoryReadPermission=Преглед на инвентаризации +inventoryWritePermission=Актуализиране на инвентаризации +inventoryValidatePermission=Валидиране на инвентаризация inventoryTitle=Инвентаризация inventoryListTitle=Инвентаризации inventoryListEmpty=Не се извършва инвентаризация -inventoryCreateDelete=Създаване/Изтриване на инвентаризация +inventoryCreateDelete=Създаване / Изтриване на инвентаризация inventoryCreate=Създаване на нова -inventoryEdit=Редактиране -inventoryValidate=Валидиране +inventoryEdit=Промяна +inventoryValidate=Валидирана inventoryDraft=В ход inventorySelectWarehouse=Избор на склад inventoryConfirmCreate=Създаване @@ -182,11 +182,11 @@ inventoryWarningProductAlreadyExists=Този продукт е вече в сп SelectCategory=Филтър по категория SelectFournisseur=Филтър по доставчик inventoryOnDate=Инвентаризация -INVENTORY_DISABLE_VIRTUAL=Виртуален продукт (комплект): не намалявайте наличността на подпродукт -INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Използване на покупна цена, ако не може да бъде намерена последна цена за покупка +INVENTORY_DISABLE_VIRTUAL=Виртуален продукт (комплект): не намалявайте наличността на съставен продукт +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Използване на покупната цена, ако не може да бъде намерена последна цена за покупка INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Движението на наличности има дата на инвентаризация inventoryChangePMPPermission=Променяне на стойността на СИЦ (средно изчислена цена) за даден продукт -ColumnNewPMP=Нова единица СИЦ +ColumnNewPMP=Нова СИЦ OnlyProdsInStock=Не добавяйте продукт без наличност TheoricalQty=Теоретично количество TheoricalValue=Теоретична стойност @@ -198,17 +198,17 @@ RegulatedQty=Регулирано количество AddInventoryProduct=Добавяне на продукт към инвентаризация AddProduct=Добавяне ApplyPMP=Прилагане на СИЦ -FlushInventory=Прочистване на инвентар +FlushInventory=Прочистване на инвентаризация ConfirmFlushInventory=Потвърждавате ли това действие? -InventoryFlushed=Инвентарът е прочистен +InventoryFlushed=Инвентаризацията е прочистена ExitEditMode=Изходно издание -inventoryDeleteLine=Изтриване на линия +inventoryDeleteLine=Изтриване на ред RegulateStock=Регулиране на наличност ListInventory=Списък StockSupportServices=Управлението на наличности включва и услуги StockSupportServicesDesc=По под разбиране можете да съхранявате само продукти от тип 'продукт'. Можете също така да запазите продукт от тип 'услуга', ако модула 'Услуги' и тази опция са активирани. ReceiveProducts=Получаване на артикули -StockIncreaseAfterCorrectTransfer=Увеличаване с корекция/прехвърляне -StockDecreaseAfterCorrectTransfer=Намаляване с корекция/прехвърляне -StockIncrease=Увеличаване на наличността +StockIncreaseAfterCorrectTransfer=Увеличаване с корекция / прехвърляне +StockDecreaseAfterCorrectTransfer=Намаляване с корекция / прехвърляне +StockIncrease=Увеличаване на наличност StockDecrease=Намаляване на наличност diff --git a/htdocs/langs/bg_BG/stripe.lang b/htdocs/langs/bg_BG/stripe.lang index 2b3107da00d..210bda38787 100644 --- a/htdocs/langs/bg_BG/stripe.lang +++ b/htdocs/langs/bg_BG/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/bg_BG/supplier_proposal.lang b/htdocs/langs/bg_BG/supplier_proposal.lang index bebe7d33843..c790cb922b5 100644 --- a/htdocs/langs/bg_BG/supplier_proposal.lang +++ b/htdocs/langs/bg_BG/supplier_proposal.lang @@ -48,7 +48,7 @@ DefaultModelSupplierProposalToBill=Шаблон по подразбиране, DefaultModelSupplierProposalClosed=Шаблон по подразбиране, когато се затваря запитване за цена (отхвърлено) ListOfSupplierProposals=Списък на запитвания към доставчици ListSupplierProposalsAssociatedProject=Списък на запитвания към доставчици свързани с проект -SupplierProposalsToClose=Запитвания към доставчици за затваряне +SupplierProposalsToClose=Запитвания към доставчици за приключване SupplierProposalsToProcess=Запитвания към доставчици за обработка LastSupplierProposals=Запитвания за цени: %s последни AllPriceRequests=Всички запитвания diff --git a/htdocs/langs/bg_BG/ticket.lang b/htdocs/langs/bg_BG/ticket.lang index 5226ab9e8fc..8a751a908cf 100644 --- a/htdocs/langs/bg_BG/ticket.lang +++ b/htdocs/langs/bg_BG/ticket.lang @@ -25,11 +25,11 @@ Permission56001=Преглед на тикети Permission56002=Промяна на тикети Permission56003=Изтриване на тикети Permission56004=Управление на тикети -Permission56005=Преглед на тикети от всички контрагенти (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента, от който зависят) +Permission56005=Преглед на тикети от всички контрагенти (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента от който зависят) TicketDictType=Тикет - Видове TicketDictCategory=Тикет - Групи -TicketDictSeverity=Тикет - Важност +TicketDictSeverity=Тикет - Приоритети TicketTypeShortBUGSOFT=Софтуерна неизправност TicketTypeShortBUGHARD=Хардуерна неизправност TicketTypeShortCOM=Търговски въпрос @@ -37,14 +37,14 @@ TicketTypeShortINCIDENT=Молба за съдействие TicketTypeShortPROJET=Проект TicketTypeShortOTHER=Друго -TicketSeverityShortLOW=Ниска -TicketSeverityShortNORMAL=Нормална -TicketSeverityShortHIGH=Висока -TicketSeverityShortBLOCKING=Критична/Блокираща +TicketSeverityShortLOW=Нисък +TicketSeverityShortNORMAL=Нормален +TicketSeverityShortHIGH=Висок +TicketSeverityShortBLOCKING=Критичен ErrorBadEmailAddress=Полето "%s" е неправилно -MenuTicketMyAssign=Моите тикети -MenuTicketMyAssignNonClosed=Моите отворени тикети +MenuTicketMyAssign=Мои тикети +MenuTicketMyAssignNonClosed=Мои отворени тикети MenuListNonClosed=Отворени тикети TypeContact_ticket_internal_CONTRIBUTOR=Сътрудник @@ -58,18 +58,18 @@ Notify_TICKET_SENTBYMAIL=Изпращане на тикет съобщениет # Status NotRead=Непрочетен Read=Прочетен -Assigned=Назначен +Assigned=Възложен InProgress=В процес NeedMoreInformation=Изчакване на информация Answered=Отговорен -Waiting=Изчакващ +Waiting=В изчакване Closed=Затворен Deleted=Изтрит # Dict Type=Вид -Category=Аналитичен код -Severity=Важност +Category=Категория +Severity=Приоритет # Email templates MailToSendTicketMessage=За да изпратите имейл с това съобщение @@ -81,9 +81,9 @@ TicketSetup=Настройка на тикет модула TicketSettings=Настройки TicketSetupPage= TicketPublicAccess=Публичен интерфейс, който не изисква идентификация, е достъпен на следния URL адрес -TicketSetupDictionaries=Видът на тикета, важността и аналитичните кодове се конфигурират от речници +TicketSetupDictionaries=Видът на тикета, приоритетът и категорията се конфигурират от речници TicketParamModule=Настройка на променливите в модула -TicketParamMail=Настройка на имейл известяването +TicketParamMail=Настройка за имейл известяване TicketEmailNotificationFrom=Известяващ имейл от TicketEmailNotificationFromHelp=Използван при отговор и изпращане на тикет съобщения TicketEmailNotificationTo=Известяващ имейл до @@ -92,23 +92,23 @@ TicketNewEmailBodyLabel=Текстово съобщение, изпратено TicketNewEmailBodyHelp=Текстът, посочен тук, ще бъде включен в имейла, потвърждаващ създаването на нов тикет от публичния интерфейс. Информацията с детайлите на тикета се добавя автоматично. TicketParamPublicInterface=Настройка на публичен интерфейс TicketsEmailMustExist=Изисква съществуващ имейл адрес, за да се създаде тикет -TicketsEmailMustExistHelp=В публичния интерфейс имейл адресът трябва да е вече въведен в базата данни, за да се създаде нов тикет. +TicketsEmailMustExistHelp=За да се създаде нов тикет през публичния интерфейс имейл адресът трябва да съществува в базата данни PublicInterface=Публичен интерфейс TicketUrlPublicInterfaceLabelAdmin=Алтернативен URL адрес за публичния интерфейс -TicketUrlPublicInterfaceHelpAdmin=Възможно е да се дефинира псевдоним на уеб сървъра и по този начин да се предостави достъп до публичния интерфейс от друг URL адрес (сървърът трябва да действа като прокси сървър в този нов URL адрес) +TicketUrlPublicInterfaceHelpAdmin=Възможно е да се дефинира псевдоним на уеб сървъра и по този начин да се предостави достъп до публичния интерфейс от друг URL адрес (сървърът трябва да действа като прокси сървър за този нов URL адрес) TicketPublicInterfaceTextHomeLabelAdmin=Приветстващ текст на публичния интерфейс -TicketPublicInterfaceTextHome=Може да създадете тикет в системата за управление и обслужване на запитвания или да прегледате съществуващ като използвате номера за проследяване и Вашият имейл адрес. -TicketPublicInterfaceTextHomeHelpAdmin=Текстът, определен тук, ще се появи на началната страница на публичния интерфейс. +TicketPublicInterfaceTextHome=Може да създадете тикет в системата за управление и обслужване на запитвания или да прегледате съществуващ като използвате номера за проследяване и вашият имейл адрес. +TicketPublicInterfaceTextHomeHelpAdmin=Текстът определен тук ще се появи на началната страница на публичния интерфейс. TicketPublicInterfaceTopicLabelAdmin=Заглавие на интерфейса TicketPublicInterfaceTopicHelp=Този текст ще се появи като заглавие на публичния интерфейс. TicketPublicInterfaceTextHelpMessageLabelAdmin=Помощен текст към съобщението TicketPublicInterfaceTextHelpMessageHelpAdmin=Този текст ще се появи над мястото с въведено съобщение от потребителя. ExtraFieldsTicket=Допълнителни атрибути TicketCkEditorEmailNotActivated=HTML редакторът не е активиран. Моля, задайте стойност 1 на константата FCKEDITOR_ENABLE_MAIL, за да го активирате. -TicketsDisableEmail=Не изпращай имейли при създаване или добавяне на съобщение -TicketsDisableEmailHelp=По подразбиране се изпращат имейли, когато са създадени нови тикети или съобщения. Активирайте тази опция, за да деактивирате *всички* известия по имейл +TicketsDisableEmail=Да не се изпращат имейли при създаване на тикет или добавяне на съобщение +TicketsDisableEmailHelp=По подразбиране се изпращат имейли, когато са създадени нови тикети или са добавени съобщения. Активирайте тази опция, за да деактивирате *всички* известия по имейл. TicketsLogEnableEmail=Активиране на вход с имейл -TicketsLogEnableEmailHelp=При всяка промяна ще бъде изпратен имейл **на всеки контакт**, свързан с тикета. +TicketsLogEnableEmailHelp=При всяка промяна ще бъде изпратен имейл *на всеки контакт*, свързан с тикета. TicketParams=Параметри TicketsShowModuleLogo=Показване на логото на модула в публичния интерфейс TicketsShowModuleLogoHelp=Активирайте тази опция, за да скриете логото на модула от страниците на публичния интерфейс @@ -116,7 +116,7 @@ TicketsShowCompanyLogo=Показване на логото на фирмата TicketsShowCompanyLogoHelp=Активирайте тази опция, за да скриете логото на основната фирма от страниците на публичния интерфейс TicketsEmailAlsoSendToMainAddress=Изпращане на известие до основния имейл адрес TicketsEmailAlsoSendToMainAddressHelp=Активирайте тази опция, за да изпратите имейл до "Известяващ имейл от" (вижте настройката по-долу) -TicketsLimitViewAssignedOnly=Ограничаване на показването на тикети до такива, които са назначени на текущия потребител (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента, от който зависят) +TicketsLimitViewAssignedOnly=Ограничаване на показването на тикети до такива, които са възложени на текущия потребител (не е приложимо за външни потребители, винаги ще бъдат ограничени до контрагента, от който зависят) TicketsLimitViewAssignedOnlyHelp=Само тикети, възложени на текущия потребител ще бъдат показвани. Не важи за потребител с права за управление на тикети. TicketsActivatePublicInterface=Активиране на публичния интерфейс TicketsActivatePublicInterfaceHelp=Публичният интерфейс позволява на всички посетители да създават тикети. @@ -129,13 +129,13 @@ TicketsDisableCustomerEmail=Деактивиране на имейлите, ко # # Index & list page # -TicketsIndex=Начална страница +TicketsIndex=Секция за тикети TicketList=Списък с тикети -TicketAssignedToMeInfos=Тази страница показва списъка с тикети, създадени от или възложени на текущия потребител -NoTicketsFound=Няма намерен тикет +TicketAssignedToMeInfos=Тази страница показва списък с тикети, които са създадени от вас или са ви били възложени +NoTicketsFound=Няма намерени тикети NoUnreadTicketsFound=Не са открити непрочетени тикети TicketViewAllTickets=Преглед на всички тикети -TicketViewNonClosedOnly=Преглед на отворените тикети +TicketViewNonClosedOnly=Преглед на отворени тикети TicketStatByStatus=Тикети по статус # @@ -144,24 +144,24 @@ TicketStatByStatus=Тикети по статус Ticket=Тикет TicketCard=Карта CreateTicket=Създаване на тикет -EditTicket=Редактиране на тикет +EditTicket=Променяне на тикет TicketsManagement=Управление на тикети CreatedBy=Създаден от NewTicket=Нов тикет SubjectAnswerToTicket=Отговор на тикет TicketTypeRequest=Вид на тикета -TicketCategory=Аналитичен код +TicketCategory=Категория SeeTicket=Преглед на тикет TicketMarkedAsRead=Тикетът е маркиран като прочетен TicketReadOn=Прочетен на TicketCloseOn=Дата на приключване MarkAsRead=Маркиране на тикета като прочетен TicketHistory=История -AssignUser=Възлагане на служител +AssignUser=Възлагане на потребител TicketAssigned=Тикетът е възложен -TicketChangeType=Промяна на вида -TicketChangeCategory=Промяна на аналитичния код -TicketChangeSeverity=Промяна на важността +TicketChangeType=Променяне на вида +TicketChangeCategory=Променяне на категория +TicketChangeSeverity=Променяне на приоритет TicketAddMessage=Добавяне на съобщение AddMessage=Добавяне на съобщение MessageSuccessfullyAdded=Тикетът е добавен @@ -169,36 +169,36 @@ TicketMessageSuccessfullyAdded=Съобщението е успешно доба TicketMessagesList=Списък със съобщения NoMsgForThisTicket=Няма съобщение за този тикет Properties=Реквизити -LatestNewTickets=Тикети: %s най-нови тикета (непрочетени) -TicketSeverity=Важност +LatestNewTickets=Тикети: %s последни (непрочетени) +TicketSeverity=Приоритет ShowTicket=Преглед на тикет RelatedTickets=Свързани тикети TicketAddIntervention=Създаване на интервенция -CloseTicket=Затваряне на тикет -CloseATicket=Затваряне на тикет -ConfirmCloseAticket=Потвърдете затварянето на тикета -ConfirmDeleteTicket=Моля, потвърдете изтриването на билета +CloseTicket=Приключване на тикет +CloseATicket=Приключване на тикет +ConfirmCloseAticket=Потвърдете приключването на тикета +ConfirmDeleteTicket=Потвърдете изтриването на тикета TicketDeletedSuccess=Тикетът е успешно изтрит -TicketMarkedAsClosed=Тикетът е маркиран като затворен +TicketMarkedAsClosed=Тикетът е маркиран като приключен TicketDurationAuto=Изчислена продължителност TicketDurationAutoInfos=Продължителност, изчислена автоматично според необходимите действия TicketUpdated=Тикетът е актуализиран SendMessageByEmail=Изпращане на съобщение по имейл TicketNewMessage=Ново съобщение ErrorMailRecipientIsEmptyForSendTicketMessage=Полето за получател е празно, не беше изпратен имейл. -TicketGoIntoContactTab=Моля отидете в раздел "Контакти", откъдето може да изберете. +TicketGoIntoContactTab=Моля отидете в раздел "Контакти" откъдето може да изберете TicketMessageMailIntro=Въведение TicketMessageMailIntroHelp=Този текст се добавя само в началото на имейла и няма да бъде запазен. TicketMessageMailIntroLabelAdmin=Въведение към съобщението при изпращане на имейл -TicketMessageMailIntroText=Здравейте,
Беше добавено ново съобщение към тикет, за който сте асоцииран като контакт. Ето и съобщението:
-TicketMessageMailIntroHelpAdmin=Този текст ще бъде вмъкнат преди текста за отговор към тикета. +TicketMessageMailIntroText=Здравейте,
Беше добавено ново съобщение към тикет, в който сте посочен като контакт. Ето и съобщението:
+TicketMessageMailIntroHelpAdmin=Този текст ще бъде вмъкнат преди текста на съобщението към тикета. TicketMessageMailSignature=Подпис TicketMessageMailSignatureHelp=Този текст се добавя само в края на имейла и няма да бъде запазен. TicketMessageMailSignatureText=

Поздрави,

--

TicketMessageMailSignatureLabelAdmin=Подпис в отговора към имейла TicketMessageMailSignatureHelpAdmin=Този текст ще бъде вмъкнат след съобщението за отговор. TicketMessageHelp=Само този текст ще бъде запазен в списъка със съобщения към тикета. -TicketMessageSubstitutionReplacedByGenericValues=Заместващите променливи се заменят от стандартни стойности. +TicketMessageSubstitutionReplacedByGenericValues=Заместващите променливи се заменят с общи стойности. TimeElapsedSince=Изминало време TicketTimeToRead=Изминало време преди прочитане TicketContacts=Контакти @@ -211,16 +211,16 @@ MarkMessageAsPrivate=Маркиране на съобщението като л TicketMessagePrivateHelp=Това съобщение няма да се показва на външни потребители TicketEmailOriginIssuer=Контакт на контрагента проследяващ тикета InitialMessage=Първоначално съобщение -LinkToAContract=Свързване към договор +LinkToAContract=Връзка към договор TicketPleaseSelectAContract=Изберете договор -UnableToCreateInterIfNoSocid=Не може да бъде създадена интервенция без да бъде дефиниран контрагента +UnableToCreateInterIfNoSocid=Не може да бъде създадена интервенция преди да се посочи контрагент TicketMailExchanges=История на съобщенията TicketInitialMessageModified=Първоначалното съобщение е променено TicketMessageSuccesfullyUpdated=Съобщението е успешно актуализирано TicketChangeStatus=Промяна на статус TicketConfirmChangeStatus=Потвърдете промяната на статуса на: %s? TicketLogStatusChanged=Статусът е променен: от %s на %s -TicketNotNotifyTiersAtCreate=Не уведомява фирмата при създаването на тикета +TicketNotNotifyTiersAtCreate=Да не се уведомява фирмата при създаване на тикета Unread=Непрочетен # @@ -229,9 +229,9 @@ Unread=Непрочетен TicketLogMesgReadBy=Тикет %s е прочетен от %s NoLogForThisTicket=Все още няма запис за този тикет TicketLogAssignedTo=Тикет %s е възложен на %s -TicketLogPropertyChanged=Тикет %s е редактиран: класификация от %s на %s -TicketLogClosedBy=Тикет %s е затворен от %s -TicketLogReopen=Тикет %s е отворен повторно +TicketLogPropertyChanged=Тикет %s е класифициран от %s на %s +TicketLogClosedBy=Тикет %s е приключен от %s +TicketLogReopen=Тикет %s е повторно отворен # # Public pages @@ -239,21 +239,21 @@ TicketLogReopen=Тикет %s е отворен повторно TicketSystem=Тикет система ShowListTicketWithTrackId=Проследяване на списък с тикети ShowTicketWithTrackId=Проследяване на тикет -TicketPublicDesc=Може да създадете тикет или да проследите съществуващи като използвате кода за проследяване и Вашият имейл адрес. +TicketPublicDesc=Може да създадете тикет или да проследите съществуващи като използвате кода за проследяване и вашият имейл адрес. YourTicketSuccessfullySaved=Тикетът е успешно съхранен! MesgInfosPublicTicketCreatedWithTrackId=Беше създаден нов тикет с проследяващ код %s PleaseRememberThisId=Моля, запазете проследяващия код, за който може да ви попитаме по-късно. TicketNewEmailSubject=Потвърждение за създаване на тикет TicketNewEmailSubjectCustomer=Нов тикет TicketNewEmailBody=Това е автоматичен имейл, който потвърждава, че сте регистрирали нов тикет. -TicketNewEmailBodyCustomer=Това е автоматичен имейл, който потвърждава, че е създаден нов тикет във вашия фирмен профил. +TicketNewEmailBodyCustomer=Това е автоматичен имейл, който потвърждава, че е създаден нов тикет във вашият фирмен профил. TicketNewEmailBodyInfosTicket=Информация за наблюдение на тикета TicketNewEmailBodyInfosTrackId=Проследяващ код на тикета: %s TicketNewEmailBodyInfosTrackUrl=Може да следите напредъка по тикета като кликнете на връзката по-горе. TicketNewEmailBodyInfosTrackUrlCustomer=Може да следите напредъка по тикета в специалния интерфейс като кликнете върху следната връзка TicketEmailPleaseDoNotReplyToThisEmail=Моля, не отговаряйте директно на този имейл! Използвайте връзката, за да отговорите, чрез интерфейса. TicketPublicInfoCreateTicket=Тази форма позволява да регистрирате тикет в системата за управление и обслужване на запитвания. -TicketPublicPleaseBeAccuratelyDescribe=Моля, опишете точно проблема. Посочете възможно най-много информация, за да ни позволите да идентифицираме правилно това запитване. +TicketPublicPleaseBeAccuratelyDescribe=Моля, опишете подробно проблема. Посочете възможно най-много информация, за да ни позволите да идентифицираме правилно това запитване. TicketPublicMsgViewLogIn=Моля, въведете проследяващ код и имейл адрес TicketTrackId=Код за проследяване OneOfTicketTrackId=Код за проследяване @@ -273,11 +273,11 @@ NumberOfTicketsByMonth=Брой тикети на месец NbOfTickets=Брой тикети # notifications TicketNotificationEmailSubject=Тикет с проследяващ код %s е актуализиран -TicketNotificationEmailBody=Здравейте,\nТова е автоматично съобщение, което има за цел да Ви уведоми, че тикет с проследяващ код %s е бил наскоро актуализиран. -TicketNotificationRecipient=Получател на уведомлението +TicketNotificationEmailBody=Здравейте,\nТова е автоматично съобщение, което има за цел да ви уведоми, че тикет с проследяващ код %s е актуализиран. +TicketNotificationRecipient=Получател на известието TicketNotificationLogMessage=Съобщение в историята TicketNotificationEmailBodyInfosTrackUrlinternal=Вижте тикета в системата -TicketNotificationNumberEmailSent=Изпратено уведомление по имейл: %s +TicketNotificationNumberEmailSent=Изпратени известия по имейл: %s ActionsOnTicket=Свързани събития diff --git a/htdocs/langs/bg_BG/users.lang b/htdocs/langs/bg_BG/users.lang index 149d5652857..9e29ab5b1f6 100644 --- a/htdocs/langs/bg_BG/users.lang +++ b/htdocs/langs/bg_BG/users.lang @@ -1,15 +1,15 @@ # Dolibarr language file - Source file is en_US - users -HRMArea=Секция човешки ресурси -UserCard=Карта на потребител -GroupCard=Карта на група +HRMArea=Секция за човешки ресурси +UserCard=Карта +GroupCard=Карта Permission=Разрешение Permissions=Права -EditPassword=Редактиране на парола +EditPassword=Променяне на парола SendNewPassword=Регенериране и изпращане на парола -SendNewPasswordLink=Връзка за възстановяване на парола +SendNewPasswordLink=Изпращане на връзка за парола ReinitPassword=Регенериране на парола PasswordChangedTo=Паролата е променена на: %s -SubjectNewPassword=Новата ви парола за %s +SubjectNewPassword=Вашата нова парола за %s GroupRights=Групови права UserRights=Потребителски права UserGUISetup=Настройка на потребителския интерфейс @@ -28,9 +28,9 @@ ConfirmReinitPassword=Сигурни ли сте, че искате да ген ConfirmSendNewPassword=Сигурни ли сте, че искате да генерирате и изпратите нова парола за потребител %s? NewUser=Нов потребител CreateUser=Създаване на потребител -LoginNotDefined=Входната информация не е дефинирана. +LoginNotDefined=Не е дефинирано потребителско име. NameNotDefined=Името не е дефинирано. -ListOfUsers=Списък потребители +ListOfUsers=Списък на потребители SuperAdministrator=Супер администратор SuperAdministratorDesc=Глобален администратор AdministratorDesc=Администратор @@ -39,7 +39,7 @@ DefaultRightsDesc=Определете тук правата по подра DolibarrUsers=Потребители на системата LastName=Фамилия FirstName=Собствено име -ListOfGroups=Списък на групите +ListOfGroups=Списък на групи NewGroup=Нова група CreateGroup=Създаване на група RemoveFromGroup=Премахване от групата @@ -50,14 +50,14 @@ ConfirmPasswordReset=Потвърдете възстановяване на па MenuUsersAndGroups=Потребители и групи LastGroupsCreated=Групи: %s последно създадени LastUsersCreated=Потребители: %s последно създадени -ShowGroup=Покажи групата -ShowUser=Покажи потребителя +ShowGroup=Показване на група +ShowUser=Показване на потребител NonAffectedUsers=Не присвоени потребители -UserModified=Потребителят е успешно редактиран +UserModified=Потребителят е успешно променен PhotoFile=Снимка ListOfUsersInGroup=Списък на потребителите в тази група ListOfGroupsForUser=Списък на групите за този потребител -LinkToCompanyContact=Свързване към контрагент/контакт +LinkToCompanyContact=Свързване към контрагент / контакт LinkedToDolibarrMember=Свързване към член LinkedToDolibarrUser=Свързване към потребител на системата LinkedToDolibarrThirdParty=Свързване към контрагент @@ -74,8 +74,8 @@ InternalExternalDesc=Вътрешния потребител е потр PermissionInheritedFromAGroup=Разрешението е предоставено, тъй като е наследено от една от групите на потребителя. Inherited=Наследено UserWillBeInternalUser=Създаденият потребителят ще бъде вътрешен потребител (тъй като не е свързан с определен контрагент) -UserWillBeExternalUser=Създаденият потребителят ще бъде външен потребител (защото е свързани с определен контрагент) -IdPhoneCaller=Идентификация на повикващия +UserWillBeExternalUser=Създаденият потребителят ще бъде външен потребител (защото е свързан с определен контрагент) +IdPhoneCaller=Идентификатор на повикващия NewUserCreated=Потребител %s е създаден NewUserPassword=Промяна на паролата за %s EventUserModified=Потребител %s е променен @@ -88,7 +88,7 @@ GroupDeleted=Група %s е премахната ConfirmCreateContact=Сигурни ли сте, че искате да създадете Dolibarr профил за този контакт? ConfirmCreateLogin=Сигурни ли сте, че искате да създадете Dolibarr профил за този член? ConfirmCreateThirdParty=Сигурни ли сте, че искате да създадете контрагент за този член? -LoginToCreate=Данни за вход за създаване +LoginToCreate=Потребителско име NameToCreate=Име на контрагент за създаване YourRole=Вашите роли YourQuotaOfUsersIsReached=Вашата квота за активни потребители е достигната! @@ -109,4 +109,4 @@ UserLogoff=Излизане от потребителя UserLogged=Потребителят е регистриран DateEmployment=Дата на назначаване DateEmploymentEnd=Дата на освобождаване -CantDisableYourself=You can't disable your own user record +CantDisableYourself=Не можете да забраните собствения си потребителски запис diff --git a/htdocs/langs/bg_BG/withdrawals.lang b/htdocs/langs/bg_BG/withdrawals.lang index 149fec6aa7c..efae12ef41d 100644 --- a/htdocs/langs/bg_BG/withdrawals.lang +++ b/htdocs/langs/bg_BG/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Зададен към статус "Файл Изпратен" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Статистики по статуса на линиите -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/bg_BG/workflow.lang b/htdocs/langs/bg_BG/workflow.lang index 71026fb3062..dec1f41bc78 100644 --- a/htdocs/langs/bg_BG/workflow.lang +++ b/htdocs/langs/bg_BG/workflow.lang @@ -6,13 +6,13 @@ ThereIsNoWorkflowToModify=Няма налични промени на работ descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Автоматично създаване на клиентска поръчка след подписване на търговско предложение (новата поръчка ще има същата стойност като на предложение) descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след подписване на търговско предложение (новата фактура ще има същата стойност като на предложението) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след валидиране на договор -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след затваряне на клиентска поръчка (новата фактура ще има същата стойност като на поръчката) +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Автоматично създаване на фактура за продажба след приключване на поръчка за продажба (новата фактура ще има същата стойност като на поръчката) # Autoclassify customer proposal or order descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Класифициране на свързано търговско предложение - първоизточник като фактурирано след класифициране на клиентска поръчка като фактурирана (и ако стойността на поръчката е същата като общата сума на подписаното свързано предложение) descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Класифициране на свързано търговско предложение - първоизточник като фактурирано след валидиране на клиентска фактура (и ако стойността на фактурата е същата като общата сума на подписаното свързано предложение) descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Класифициране на свързана клиентска поръчка - първоизточник като фактурирана след валидиране на клиентска фактура (и ако стойността на фактурата е същата като общата сума на свързаната поръчка) descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Класифициране на свързана клиентска поръчка - първоизточник като фактурирана след плащане на клиентска фактура (и ако стойността на фактурата е същата като общата сума на свързаната поръчка) -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Класифициране на свързана клиентска поръчка - първоизточник като изпратена след валидиране на пратка (и ако количеството, изпратено, чрез всички пратки е същото като в поръчката за актуализиране) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Класифициране на свързана клиентска поръчка - първоизточник като изпратена след валидиране на доставка (и ако количеството, изпратено, чрез всички пратки е същото като в поръчката за актуализиране) # Autoclassify purchase order descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Класифициране на свързаното за запитване към доставчик - първоизточник като фактурираното след валидиране на доставната фактура (и ако стойността на фактурата е същата като общата сума на свързаното запитване) descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Класифициране на свързаната поръчка за покупка - първоизточник като фактурирана след валидиране на доставна фактура (и ако стойността на фактурата е същата като общата сума на свързаната поръчка) diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/bn_BD/accountancy.lang +++ b/htdocs/langs/bn_BD/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/bn_BD/admin.lang b/htdocs/langs/bn_BD/admin.lang index f30d6edd9f7..2e27c6fe81f 100644 --- a/htdocs/langs/bn_BD/admin.lang +++ b/htdocs/langs/bn_BD/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/bn_BD/bills.lang b/htdocs/langs/bn_BD/bills.lang index 4467e38e1e7..d977c564e29 100644 --- a/htdocs/langs/bn_BD/bills.lang +++ b/htdocs/langs/bn_BD/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show deposit invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/bn_BD/errors.lang b/htdocs/langs/bn_BD/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/bn_BD/errors.lang +++ b/htdocs/langs/bn_BD/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang index b930ecc464e..bd4ae2153bf 100644 --- a/htdocs/langs/bn_BD/main.lang +++ b/htdocs/langs/bn_BD/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/bn_BD/products.lang b/htdocs/langs/bn_BD/products.lang index 7b68f5b3ebd..73e672284de 100644 --- a/htdocs/langs/bn_BD/products.lang +++ b/htdocs/langs/bn_BD/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/bn_BD/stripe.lang b/htdocs/langs/bn_BD/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/bn_BD/stripe.lang +++ b/htdocs/langs/bn_BD/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/bn_BD/withdrawals.lang b/htdocs/langs/bn_BD/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/bn_BD/withdrawals.lang +++ b/htdocs/langs/bn_BD/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang index bf7de1af534..ffe0857e269 100644 --- a/htdocs/langs/bs_BA/accountancy.lang +++ b/htdocs/langs/bs_BA/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang index a8fe248b017..3b1cbfdb1bc 100644 --- a/htdocs/langs/bs_BA/admin.lang +++ b/htdocs/langs/bs_BA/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifikacije +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Dopunske atributa (naloga) ExtraFieldsSupplierInvoices=Dopunski atributi (fakture) ExtraFieldsProject=Dopunski atributi (projekti) ExtraFieldsProjectTask=Dopunski atributi (zadaci) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimizacija pretraživanja -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache je učitan. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/bs_BA/bills.lang b/htdocs/langs/bs_BA/bills.lang index abe5086202e..54c351b94e9 100644 --- a/htdocs/langs/bs_BA/bills.lang +++ b/htdocs/langs/bs_BA/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Uplata viša od zaostalog duga HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Označi kao 'Plaćeno' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Označi kao 'Djelimično plaćeno' ClassifyCanceled=Označi kao 'Otkazano' ClassifyClosed=Označi kao 'Zaključeno' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Prikaži zamjensku fakturu ShowInvoiceAvoir=Prikaži dobropis ShowInvoiceDeposit=Pokaži avansne fakture ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Prikaži uplatu AlreadyPaid=Već plaćeno AlreadyPaidBack=Već izvršen povrat uplate diff --git a/htdocs/langs/bs_BA/errors.lang b/htdocs/langs/bs_BA/errors.lang index 2f1d689e63b..d4da3b43f7a 100644 --- a/htdocs/langs/bs_BA/errors.lang +++ b/htdocs/langs/bs_BA/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang index 668e4b3bc9f..33ca3105dea 100644 --- a/htdocs/langs/bs_BA/main.lang +++ b/htdocs/langs/bs_BA/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakti/adrese za ovaj subjekt AddressesForCompany=Adrese za ovaj subjekt ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Događaji o ovom članu ActionsOnProduct=Događaji o ovom proizvodu NActionsLate=%s kasne @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link ka kontaktima LinkToIntervention=Link ka intervencijama +LinkToTicket=Link to ticket CreateDraft=Kreiraj nacrt SetToDraft=Nazad na nacrt ClickToEdit=Klikni za uređivanje diff --git a/htdocs/langs/bs_BA/products.lang b/htdocs/langs/bs_BA/products.lang index 552db428cf4..69668f08904 100644 --- a/htdocs/langs/bs_BA/products.lang +++ b/htdocs/langs/bs_BA/products.lang @@ -2,6 +2,7 @@ ProductRef=Ref. proizvoda ProductLabel=Oznaka proizvoda ProductLabelTranslated=Prevedeni naslov proizvoda +ProductDescription=Product description ProductDescriptionTranslated=Prevedeni opis proizvoda ProductNoteTranslated=Prevedena napomena proizvoda ProductServiceCard=Kartica proizvoda/usluge diff --git a/htdocs/langs/bs_BA/stripe.lang b/htdocs/langs/bs_BA/stripe.lang index 1ce18d76333..4cf01154660 100644 --- a/htdocs/langs/bs_BA/stripe.lang +++ b/htdocs/langs/bs_BA/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/bs_BA/withdrawals.lang b/htdocs/langs/bs_BA/withdrawals.lang index 1d21628ded7..9ed0ddbf482 100644 --- a/htdocs/langs/bs_BA/withdrawals.lang +++ b/htdocs/langs/bs_BA/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index 951da450713..06ddc2b794d 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Diari de comptabilitat AccountingJournal=Diari comptable NewAccountingJournal=Nou diari comptable ShowAccoutingJournal=Mostrar diari comptable -Nature=Caràcter +NatureOfJournal=Nature of Journal AccountingJournalType1=Operacions diverses AccountingJournalType2=Vendes AccountingJournalType3=Compres @@ -291,6 +291,7 @@ Modelcsv_quadratus=Exporta a Quadratus QuadraCompta Modelcsv_ebp=Exporta a EBP Modelcsv_cogilog=Exporta a Cogilog Modelcsv_agiris=Exporta a Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Exporta per a OpenConcerto (Test) Modelcsv_configurable=Exporta CSV configurable Modelcsv_FEC=Exporta FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Id pla comptable InitAccountancy=Inicialitza la comptabilitat InitAccountancyDesc=Aquesta pàgina es pot utilitzar per inicialitzar un compte de comptabilitat en productes i serveis que no tenen compte comptable definit per a vendes i compres. DefaultBindingDesc=Aquesta pàgina pot ser utilitzat per establir un compte per defecte que s'utilitzarà per enllaçar registre de transaccions sobre els pagament de salaris, donació, impostos i IVA quan no hi ha encara compte comptable específic definit. -DefaultClosureDesc=Aquesta pàgina es pot utilitzar per configurar els paràmetres que s'utilitzaran per incloure un balanç. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opcions OptionModeProductSell=En mode vendes OptionModeProductSellIntra=Les vendes de mode exportades a la CEE diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index 3c580544f54..ebaaccb4947 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaris Module510Desc=Registre i seguiment del pagament dels salaris dels empleats Module520Name=Préstecs Module520Desc=Gestió de préstecs -Module600Name=Notificacions +Module600Name=Notifications on business event Module600Desc=Envieu notificacions per correu electrònic activades per un esdeveniment empresarial: per usuari (configuració definit a cada usuari), per a contactes de tercers (configuració definida en cada tercer) o per correus electrònics específics Module600Long=Tingueu en compte que aquest mòdul està dedicat a enviar correus electrònics en temps real quan es produeix un esdeveniment de negoci específic. Si cerqueu una característica per enviar recordatoris per correu electrònic dels esdeveniments de l'agenda, aneu a la configuració del mòdul Agenda. Module610Name=Variants de producte @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Atributs complementaris (comandes) ExtraFieldsSupplierInvoices=Atributs complementaris (factures) ExtraFieldsProject=Atributs complementaris (projectes) ExtraFieldsProjectTask=Atributs complementaris (tasques) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=L'atribut %s té un valor no valid AlphaNumOnlyLowerCharsAndNoSpace=només caràcters alfanumèrics i en minúscula sense espai SendmailOptionNotComplete=Atenció, en alguns sistemes Linux, amb aquest mètode d'enviament, per poder enviar mails en nom seu, la configuració de sendmail ha de contenir l'opció -ba (paràmetre mail.force_extra_parameters a l'arxiu php.ini). Si alguns dels seus destinataris no reben els seus missatges, proveu de modificar aquest paràmetre PHP amb mail.force_extra_parameters =-ba . @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Emmagatzematge de sessions xifrades per Suhosin ConditionIsCurrently=Actualment la condició és %s YouUseBestDriver=Utilitzeu el controlador %s, que és el millor controlador disponible actualment. YouDoNotUseBestDriver=S'utilitza el controlador %s, però es recomana utilitzar el controlador %s. -NbOfProductIsLowerThanNoPb=Només teniu %s productes / serveis a la base de dades. Això no requereix cap optimització en particular. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Cerca optimització -YouHaveXProductUseSearchOptim=Teniu productes %s a la base de dades. Heu d'afegir la constant PRODUCT_DONOTSEARCH_ANYHERE a 1 a la pàgina d'inici: Configuració-Un altre. Limiteu la cerca al començament de les cadenes que permeti que la base de dades utilitzi índexs i que obtingueu una resposta immediata. +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. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in 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. -XDebugInstalled=XDebug està carregat. -XCacheInstalled=XCache cau està carregat. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Mostrar client / proveïdor ref. llista d'informació (llista de selecció o combobox) i la majoria d'hipervincle.
Els tercers apareixeran amb un format de nom de "CC12345 - SC45678 - The Big Company corp". en lloc de "The Big Company corp". AddAdressInList=Mostra la llista d'informació de la direcció de client / proveïdor (llista de selecció o combobox)
Els tercers apareixeran amb un format de nom de "The Big Company corp. - 21 jump street 123456 Big town - USA" en lloc de "The Big Company corp". AskForPreferredShippingMethod=Demaneu un mètode d'enviament preferit per a tercers. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Configurar mòdul Informes de despeses - Regles ExpenseReportNumberingModules=Número del mòdul Informe de despeses NoModueToManageStockIncrease=No esta activat el mòdul per gestionar automàticament l'increment d'estoc. L'increment d'estoc es realitzara només amb l'entrada manual YouMayFindNotificationsFeaturesIntoModuleNotification=Podeu trobar opcions de notificacions per correu electrònic habilitant i configurant el mòdul "Notificació". -ListOfNotificationsPerUser=Llista de notificacions per usuari* -ListOfNotificationsPerUserOrContact=Llista de notificacions (esdeveniments) disponibles per usuari * o per contacte ** -ListOfFixedNotifications=Llista de notificacions fixes +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Ves a la pestanya "Notificacions" d'un usuari per afegir o eliminar notificacions per usuaris. GoOntoContactCardToAddMore=Vagi a la pestanya "Notificacions" d'un contacte de tercers per afegir o eliminar notificacions per contactes/direccions Threshold=Valor mínim/llindar @@ -1898,6 +1900,11 @@ OnMobileOnly=Només en pantalla petita (telèfon intel·ligent) DisableProspectCustomerType=Desactiveu el tipus de tercers "Prospect + Customer" (per tant, un tercer ha de ser Client o Client Potencial, però no pot ser ambdues) MAIN_OPTIMIZEFORTEXTBROWSER=Simplifica la interfície per a persones cegues MAIN_OPTIMIZEFORTEXTBROWSERDesc=Activa aquesta opció si ets cec o si fas servir l'aplicació des d'un navegador de text com ara Lynx o Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Aquest valor es pot sobreescriure per cada usuari des de la pestanya de la pàgina d'usuari '%s' DefaultCustomerType=Tipus de tercer predeterminat per al formulari de creació "Nou client" ABankAccountMustBeDefinedOnPaymentModeSetup=Nota: el compte bancari s'ha de definir al mòdul de cada mode de pagament (Paypal, Stripe, ...) per tal que funcioni aquesta funció. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Nombre de línies que es mostraran a la pestanya de registres UseDebugBar=Utilitzeu la barra de depuració DEBUGBAR_LOGS_LINES_NUMBER=Nombre d’últimes línies de registre que cal mantenir a la consola WarningValueHigherSlowsDramaticalyOutput=Advertència, els valors més alts frenen molt la producció -DebugBarModuleActivated=Quan la barra de depuració del mòdul està activada frena molt la interfície +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Els models d’exportació es comparteixen amb tothom ExportSetup=Configuració del mòdul Export InstanceUniqueID=ID únic de la instància @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=El trobareu al vostre compte IFTTT 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? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index 21384e91364..3f4cf8efab3 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Pagament superior a la resta a pagar HelpPaymentHigherThanReminderToPay=Atenció, l'import del pagament d'una o més factures és superior a la resta a pagar.
Corregiu la entrada, en cas contrari, confirmeu i pensi en crear un abonament d'allò percebut en excés per cada factura sobrepagada. HelpPaymentHigherThanReminderToPaySupplier=Atenció, l'import del pagament d'una o més factures és superior a la resta a pagar.
Corregiu la entrada, en cas contrari, confirmeu i pensi en crear un abonament d'allò percebut en excés per cada factura sobrepagada. ClassifyPaid=Classificar 'Pagat' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classificar 'Pagat parcialment' ClassifyCanceled=Classificar 'Abandonat' ClassifyClosed=Classificar 'Tancat' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Veure factura rectificativa ShowInvoiceAvoir=Veure abonament ShowInvoiceDeposit=Mostrar factura d'acompte ShowInvoiceSituation=Mostra la factura de situació +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Veure pagament AlreadyPaid=Ja pagat AlreadyPaidBack=Ja reemborsat diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index bbe1bd29076..51c3ff9926e 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Els caràcters especials no són admesos pel ErrorNumRefModel=Hi ha una referència a la base de dades (%s) i és incompatible amb aquesta numeració. Elimineu la línia o renomeneu la referència per activar aquest mòdul. ErrorQtyTooLowForThisSupplier=Quantitat massa baixa per aquest proveïdor o sense un preu definit en aquest producte per aquest proveïdor ErrorOrdersNotCreatedQtyTooLow=Algunes ordres no s'han creat a causa de quantitats massa baixes -ErrorModuleSetupNotComplete=La configuració de mòduls sembla incompleta. Ves a Inici - Configuració - Mòduls a completar. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error en la màscara ErrorBadMaskFailedToLocatePosOfSequence=Error, sense número de seqüència en la màscara ErrorBadMaskBadRazMonth=Error, valor de tornada a 0 incorrecte @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=L'URL %s ha de començar amb http: // o https: // ErrorNewRefIsAlreadyUsed=Error, la nova referència ja s’està utilitzant ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, l’eliminació del pagament vinculat a una factura tancada no és possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. 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 WarningEnableYourModulesApplications=Feu clic aquí per activar els vostres mòduls i aplicacions diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index 11b3567c2ae..d4c5c98696c 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contactes/adreces d'aquest tercer AddressesForCompany=Adreces d'aquest tercer ActionsOnCompany=Esdeveniments per a aquest tercer ActionsOnContact=Esdeveniments per a aquest contacte / adreça +ActionsOnContract=Events for this contract ActionsOnMember=Esdeveniments d'aquest soci ActionsOnProduct=Esdeveniments sobre aquest producte NActionsLate=%s en retard @@ -759,6 +760,7 @@ LinkToSupplierProposal=Enllaç al pressupost del venedor LinkToSupplierInvoice=Enllaç a la factura del venedor LinkToContract=Enllaça a contracte LinkToIntervention=Enllaça a intervenció +LinkToTicket=Link to ticket CreateDraft=Crea esborrany SetToDraft=Tornar a redactar ClickToEdit=Clic per a editar diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index 4605e1a6df9..cbdf58c6729 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -2,6 +2,7 @@ ProductRef=Ref. producte ProductLabel=Etiqueta producte ProductLabelTranslated=Etiqueta de producte traduïda +ProductDescription=Product description ProductDescriptionTranslated=Descripció de producte traduïda ProductNoteTranslated=Nota de producte traduïda ProductServiceCard=Fitxa producte/servei diff --git a/htdocs/langs/ca_ES/stripe.lang b/htdocs/langs/ca_ES/stripe.lang index 044768eb87c..1592435e8e5 100644 --- a/htdocs/langs/ca_ES/stripe.lang +++ b/htdocs/langs/ca_ES/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=Compte d'usuari per utilitzar en alguns e-mails de n 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) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang index ecf3b20eeff..42a67f6c4ab 100644 --- a/htdocs/langs/ca_ES/withdrawals.lang +++ b/htdocs/langs/ca_ES/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Arxiu de la domiciliació SetToStatusSent=Classificar com "Arxiu enviat" ThisWillAlsoAddPaymentOnInvoice=Això també registrarà els pagaments a les factures i les classificarà com a "Pagades" quan el que resti per pagar sigui nul StatisticsByLineStatus=Estadístiques per estats de línies -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Referència de mandat única (UMR) RUMWillBeGenerated=Si està buit, es generarà una UMR (Referència de mandat únic) una vegada que es guardi la informació del compte bancari. WithdrawMode=Modo de domiciliació bancària (FRST o RECUR) diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang index 2291178ee74..8df9d50c2c7 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=účetní deníky AccountingJournal=Účetní deník NewAccountingJournal=Nový účetní deník ShowAccoutingJournal=Zobrazit účetní deník -Nature=Příroda +NatureOfJournal=Nature of Journal AccountingJournalType1=Různé operace AccountingJournalType2=Odbyt AccountingJournalType3=Nákupy @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export pro Quadratus QuadraCompta Modelcsv_ebp=Export pro EBP Modelcsv_cogilog=Export pro Cogilog Modelcsv_agiris=Export pro Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV konfigurovatelný Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Schéma Id účtů InitAccountancy=Init účetnictví InitAccountancyDesc=Tato stránka může být použita k inicializaci účetnictví u produktů a služeb, které nemají účetní účet definovaný pro prodej a nákup. DefaultBindingDesc=Tato stránka může být použita k nastavení výchozího účtu, který bude použit pro propojení záznamů o platbách, darování, daních a DPH, pokud již nebyl stanoven žádný účet. -DefaultClosureDesc=Tato stránka může být použita pro nastavení parametrů, které se mají použít k uzavření rozvahy. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=možnosti OptionModeProductSell=prodejní režim OptionModeProductSellIntra=Režim prodeje vyváženého v EHS diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index 57c17f66bca..f9d993354d7 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -574,7 +574,7 @@ Module510Name=Platy Module510Desc=Zaznamenejte a sledujte platby zaměstnanců Module520Name=Úvěry Module520Desc=Správa úvěrů -Module600Name=Upozornění +Module600Name=Notifications on business event Module600Desc=Odeslání e-mailových upozornění vyvolaných podnikovou událostí: na uživatele (nastavení definované pro každého uživatele), na kontakty třetích stran (nastavení definováno na každé třetí straně) nebo na konkrétní e-maily Module600Long=Všimněte si, že tento modul pošle e-maily v reálném čase, když nastane konkrétní událost. Pokud hledáte funkci pro zasílání upozornění na události agend, přejděte do nastavení modulu Agenda. Module610Name=Varianty produktu @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Doplňkové atributy (objednávky) ExtraFieldsSupplierInvoices=Doplňkové atributy (faktury) ExtraFieldsProject=Doplňkové atributy (projekty) ExtraFieldsProjectTask=Doplňkové atributy (úkoly) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Atribut %s má nesprávnou hodnotu. AlphaNumOnlyLowerCharsAndNoSpace=pouze alfanumerické znaky s malými písmeny bez mezer SendmailOptionNotComplete=Upozornění, že v některých systémech Linux můžete odesílat e-maily z vašeho e-mailu, nastavení spuštění sendmail musí obsahovat volbu -ba (parametr mail.force_extra_parameters do souboru php.ini). Pokud někteří příjemci nikdy neobdrží e-maily, zkuste upravit tento parametr PHP mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage šifrované Suhosinem ConditionIsCurrently=Podmínkou je v současné době %s YouUseBestDriver=Používáte ovladač %s, který je v současné době nejlepší ovladač. YouDoNotUseBestDriver=Používáte ovladač %s, ale doporučuje se ovladač %s. -NbOfProductIsLowerThanNoPb=V databázi máte pouze produkty / služby %s. To nevyžaduje žádnou konkrétní optimalizaci. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimalizace pro vyhledávače -YouHaveXProductUseSearchOptim=V databázi máte produkty %s. Měli byste přidat konstantní PRODUCT_DONOTSEARCH_ANYWHERE na 1 v Home-Setup-Other. Omezit vyhledávání na začátek řetězce, což umožňuje, aby databáze používala indexy a měli byste okamžitě reagovat. +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. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in 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. -XDebugInstalled=Xdebug je načten. -XCacheInstalled=XCache načten. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Zobrazit číslo zákazníka / dodavatele seznam informací (vyberte seznam nebo kombinace) a většinu hypertextových odkazů.
Zobrazí se třetí strany s názvem formátu "CC12345 - SC45678 - The Big Company corp". místo "The Big Company corp". AddAdressInList=Zobrazte seznam informací o adresách zákazníků / prodejců (vyberte seznam nebo kombinace)
Subjekty se objeví ve formátu "Big Company Corp. - 21 skokové ulici 123456 Big City - USA" namísto "The Big Company corp". AskForPreferredShippingMethod=Požádejte o preferovanou způsob přepravy pro subjekty. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Nastavení výkazu výdajů modulu - pravidla ExpenseReportNumberingModules=Způsob číslování výkazů výdajů NoModueToManageStockIncrease=Nebyl aktivován žádný modul schopný zvládnout automatické zvýšení zásob. Zvýšení zásob bude provedeno pouze při ručním zadávání. YouMayFindNotificationsFeaturesIntoModuleNotification=Možnosti upozornění na e-mail můžete najít povolením a konfigurací modulu "Oznámení". -ListOfNotificationsPerUser=Seznam oznámení na uživatele * -ListOfNotificationsPerUserOrContact=Seznam oznámení (událostí) dostupných na uživatele * nebo na kontakt ** -ListOfFixedNotifications=Seznam pevných oznámení +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Přejděte na kartu "Oznámení" uživatele, chcete-li přidat nebo odstranit oznámení pro uživatele GoOntoContactCardToAddMore=Přejděte na kartu "Oznámení" subjektu, chcete-li přidat nebo odstranit oznámení kontaktů / adres Threshold=Práh @@ -1898,6 +1900,11 @@ OnMobileOnly=Pouze na malé obrazovce (smartphone) DisableProspectCustomerType=Zakázat typ subjektu "Prospekt + zákazník" (takže subjekt musí být prospekt nebo zákazník, ale nemůže být oběma) MAIN_OPTIMIZEFORTEXTBROWSER=Zjednodušte rozhraní pro nevidomé MAIN_OPTIMIZEFORTEXTBROWSERDesc=Povolte tuto možnost, pokud jste osoba slepá, nebo pokud používáte aplikaci z textového prohlížeče, jako je Lynx nebo Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Tuto hodnotu může každý uživatel přepsat z jeho uživatelské stránky - záložka '%s' DefaultCustomerType=Výchozí typ subjektu pro formulář pro vytvoření nového zákazníka ABankAccountMustBeDefinedOnPaymentModeSetup=Poznámka: Bankovní účet musí být definován v modulu každého platebního režimu (Paypal, Stripe, ...), aby tato funkce fungovala. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Počet řádků, které se mají zobrazit na kartě Protokoly UseDebugBar=Použijte ladicí lištu DEBUGBAR_LOGS_LINES_NUMBER=Počet posledních řádků protokolu, které se mají uchovávat v konzole WarningValueHigherSlowsDramaticalyOutput=Varování, vyšší hodnoty dramaticky zpomalují výstup -DebugBarModuleActivated=Modul debugbar je aktivován a dramaticky zpomaluje rozhraní +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Exportní modely jsou sdílené s každým ExportSetup=Nastavení modulu Export InstanceUniqueID=Jedinečné ID instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=Najdete ho na svém účtu IFTTT EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/cs_CZ/bills.lang b/htdocs/langs/cs_CZ/bills.lang index bea8b4b960a..a490990bb94 100644 --- a/htdocs/langs/cs_CZ/bills.lang +++ b/htdocs/langs/cs_CZ/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Platba vyšší než upomínka k zaplacení HelpPaymentHigherThanReminderToPay=Pozor, částka platby jedné nebo více účtů je vyšší než neuhrazená částka.
Upravte svůj záznam, jinak potvrďte a zvážíte vytvoření poznámky o přebytku, který jste dostali za každou přeplatku faktury. HelpPaymentHigherThanReminderToPaySupplier=Pozor, částka platby jedné nebo více účtů je vyšší než neuhrazená částka.
Upravte svůj záznam, jinak potvrďte a zvážíte vytvoření poznámky o přeplatku za každou přeplatkovou fakturu. ClassifyPaid=Klasifikace 'Zaplaceno' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Klasifikace 'Částečně uhrazeno' ClassifyCanceled=Klasifikace 'Opuštěné' ClassifyClosed=Klasifikace 'Uzavřeno' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Zobrazit opravenou fakturu ShowInvoiceAvoir=Zobrazit dobropis ShowInvoiceDeposit=Zobrazit zálohovou fakturu ShowInvoiceSituation=Zobrazit fakturu situace +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Zobrazit platbu AlreadyPaid=Již zaplacené AlreadyPaidBack=Již vrácené platby diff --git a/htdocs/langs/cs_CZ/errors.lang b/htdocs/langs/cs_CZ/errors.lang index 881d0385adf..bf4f3a14b1c 100644 --- a/htdocs/langs/cs_CZ/errors.lang +++ b/htdocs/langs/cs_CZ/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Speciální znaky nejsou povoleny pro pole "% ErrorNumRefModel=Odkaz obsahuje databázi (%s) a není kompatibilní s tímto pravidlem číslování. Chcete-li tento modul aktivovat, odstraňte záznam nebo přejmenujte odkaz. ErrorQtyTooLowForThisSupplier=Množství příliš nízké pro tohoto prodejce nebo není definovaná cena u tohoto produktu pro tohoto prodejce ErrorOrdersNotCreatedQtyTooLow=Některé objednávky nebyly vytvořeny z příliš malých množství -ErrorModuleSetupNotComplete=Nastavení modulu vypadá jako neúplné. Pokračujte domů - Nastavení - Dokončit moduly. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Chyba na masce ErrorBadMaskFailedToLocatePosOfSequence=Chyba, maska bez pořadového čísla ErrorBadMaskBadRazMonth=Chyba, špatná hodnota po resetu @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=Adresa URL %s musí začínat http: // nebo https: // ErrorNewRefIsAlreadyUsed=Chyba, nový odkaz je již použit ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Pro tohoto člena bylo nastaveno heslo. Nebyl však vytvořen žádný uživatelský účet. Toto heslo je uloženo, ale nemůže být použito pro přihlášení k Dolibarr. Může být použito externím modulem / rozhraním, ale pokud nemáte pro člena definováno žádné přihlašovací jméno ani heslo, můžete vypnout možnost "Správa přihlášení pro každého člena" z nastavení modulu člena. Pokud potřebujete spravovat přihlašovací údaje, ale nepotřebujete žádné heslo, můžete toto pole ponechat prázdné, abyste se tomuto varování vyhnuli. Poznámka: E-mail může být také použit jako přihlašovací jméno, pokud je člen připojen k uživateli. WarningMandatorySetupNotComplete=Klikněte zde pro nastavení povinných parametrů WarningEnableYourModulesApplications=Kliknutím zde povolíte moduly a aplikace diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang index a843f00cee0..680091e5929 100644 --- a/htdocs/langs/cs_CZ/main.lang +++ b/htdocs/langs/cs_CZ/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakty/adresy pro tento subjekt AddressesForCompany=Adresy pro tento subjekt ActionsOnCompany=Události pro tento subjekt ActionsOnContact=Události pro tento kontakt / adresu +ActionsOnContract=Events for this contract ActionsOnMember=Akce u tohoto uživatele ActionsOnProduct=Události týkající se tohoto produktu NActionsLate=%s pozdě @@ -759,6 +760,7 @@ LinkToSupplierProposal=Odkaz na návrh dodavatele LinkToSupplierInvoice=Odkaz na fakturu dodavatele LinkToContract=Odkaz na smlouvu LinkToIntervention=Odkaz na intervenci +LinkToTicket=Link to ticket CreateDraft=Vytvořte návrh SetToDraft=Zrušit návrh ClickToEdit=Klepnutím lze upravit diff --git a/htdocs/langs/cs_CZ/products.lang b/htdocs/langs/cs_CZ/products.lang index c5e9bdbb5ec..db9f2e44105 100644 --- a/htdocs/langs/cs_CZ/products.lang +++ b/htdocs/langs/cs_CZ/products.lang @@ -2,6 +2,7 @@ ProductRef=Produkt čj. ProductLabel=Štítek produktu ProductLabelTranslated=Přeložený štítek produktu +ProductDescription=Product description ProductDescriptionTranslated=Přeložený popis produktu ProductNoteTranslated=Přeložená poznámka k produktu ProductServiceCard=Karta produktů/služeb diff --git a/htdocs/langs/cs_CZ/stripe.lang b/htdocs/langs/cs_CZ/stripe.lang index a51be24d80a..845b77bb4ff 100644 --- a/htdocs/langs/cs_CZ/stripe.lang +++ b/htdocs/langs/cs_CZ/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=Uživatelský účet, který se má používat pro e StripePayoutList=Seznam páskových výplat ToOfferALinkForTestWebhook=Odkaz na nastavení Stripe WebHook pro volání IPN (testovací režim) ToOfferALinkForLiveWebhook=Odkaz na nastavení Stripe WebHook pro volání IPN (provozní režim) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/cs_CZ/withdrawals.lang b/htdocs/langs/cs_CZ/withdrawals.lang index ba1a151d65d..27a7297267c 100644 --- a/htdocs/langs/cs_CZ/withdrawals.lang +++ b/htdocs/langs/cs_CZ/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Soubor výběru SetToStatusSent=Nastavte na stav "Odeslaný soubor" ThisWillAlsoAddPaymentOnInvoice=Také budou zaznamenány platby na faktury a budou klasifikovány jako "Placené", pokud zůstane platit, je nulová StatisticsByLineStatus=Statistika podle stavu řádků -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unikátní Mandát Referenční RUMWillBeGenerated=Pokud je prázdná, po uložení informací o bankovním účtu se vytvoří UMR (jedinečný mandátový odkaz). WithdrawMode=Režim přímé inkaso (FRST nebo opakovat) diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index 3910fb365b7..119531589d3 100644 --- a/htdocs/langs/da_DK/accountancy.lang +++ b/htdocs/langs/da_DK/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Kontokladder AccountingJournal=Kontokladde NewAccountingJournal=Ny kontokladde ShowAccoutingJournal=Vis kontokladde -Nature=Natur +NatureOfJournal=Nature of Journal AccountingJournalType1=Diverse operationer AccountingJournalType2=Salg AccountingJournalType3=Køb @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Eksporter CSV Konfigurerbar Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=ID for kontoplan InitAccountancy=Start regnskab InitAccountancyDesc=Denne side kan bruges til at initialisere en regnskabskonto for varer og ydelser, der ikke har en regnskabskonto defineret til salg og indkøb. DefaultBindingDesc=Denne side kan bruges til at angive en standardkonto, der skal bruges til at forbinde transaktionsoversigt over betaling af lønninger, donationer, afgifter og moms, når der ikke allerede er tilknyttet regnskabskonto. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Indstillinger OptionModeProductSell=Salg OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index 198a40edff8..5b877d21222 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -574,7 +574,7 @@ Module510Name=Løn Module510Desc=Optag og spørg medarbejderbetalinger Module520Name=Loans Module520Desc=Forvaltning af lån -Module600Name=Adviséringer +Module600Name=Notifications on business event Module600Desc=Send e-mail-meddelelser udløst af en forretningsbegivenhed: pr. Bruger (opsætning defineret på hver bruger), pr. Tredjepartskontakter (opsætning defineret på hver tredjepart) eller ved specifikke e-mails Module600Long=Bemærk, at dette modul sender e-mails i realtid, når en bestemt forretningsbegivenhed opstår. Hvis du leder efter en funktion til at sende e-mail påmindelser til dagsordensbegivenheder, skal du gå ind i opsætningen af modulets dagsorden. Module610Name=Produkt Varianter @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Supplerende attributter (ordrer) ExtraFieldsSupplierInvoices=Supplerende attributter (fakturaer) ExtraFieldsProject=Supplerende attributter (projekter) ExtraFieldsProjectTask=Supplerende attributter (opgaver) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribut %s har en forkert værdi. AlphaNumOnlyLowerCharsAndNoSpace=kun alfanumeriske og små bogstaver uden plads SendmailOptionNotComplete=Advarsel til anvendere af sendmail i Linux-system: Hvis nogle modtagere aldrig modtager e-mails, skal du prøve at redigere denne PHP-parameter med mail.force_extra_parameters = -ba i din php.ini-fil. @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Sessionsopbevaring krypteret af Suhosin ConditionIsCurrently=Tilstanden er i øjeblikket %s YouUseBestDriver=Du bruger driver %s, som er den bedste driver, der for øjeblikket er tilgængelig. YouDoNotUseBestDriver=Du bruger driveren %s, men driveren %s anbefales. -NbOfProductIsLowerThanNoPb=Du har kun %s produkter / tjenester i databasen. Dette kræver ikke nogen særlig optimering. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Søg optimering -YouHaveXProductUseSearchOptim=Du har %s produkter i databasen. Du skal tilføje den konstante PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Home-Setup-Other. Begræns søgningen til begyndelsen af ​​strenge, der gør det muligt for databasen at bruge indekser, og du bør få et øjeblikkeligt svar. +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. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in 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. -XDebugInstalled=XDebug er indlæst. -XCacheInstalled=XCache er indlæst. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Vis kunde / sælger ref. info liste (vælg liste eller combobox) og det meste af hyperlink.
Tredjeparter vil blive vist med et navneformat af "CC12345 - SC45678 - The Big Company corp." i stedet for "The Big Company Corp". AddAdressInList=Vis kunde / leverandør adresse info liste (vælg liste eller combobox)
Tredjeparter vil blive vist med et navneformat af "The Big Company Corp. - 21 Jump Street 123456 Big Town - USA" i stedet for "The Big Company Corp". AskForPreferredShippingMethod=Anmod om en foretrukket forsendelsesmetode for tredjeparter. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Opsætning af modul Expense Reports - Regler ExpenseReportNumberingModules=Udgiftsrapporter nummereringsmodul NoModueToManageStockIncrease=Intet modul, der er i stand til at styre automatisk lagerforhøjelse, er blevet aktiveret. Lagerforøgelse vil kun ske ved manuel indlæsning. YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan finde muligheder for e-mail-meddelelser ved at aktivere og konfigurere modulet "Meddelelse". -ListOfNotificationsPerUser=Liste over meddelelser pr. Bruger * -ListOfNotificationsPerUserOrContact=Liste over anmeldelser (begivenheder) tilgængelige pr. Bruger * eller pr. Kontakt ** -ListOfFixedNotifications=Liste over faste meddelelser +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Gå til fanen "Notifikationer" for en bruger for at tilføje eller fjerne underretninger for brugere GoOntoContactCardToAddMore=Gå på fanen "Notifikationer" fra en tredjepart for at tilføje eller fjerne meddelelser for kontakter / adresser Threshold=Grænseværdi @@ -1898,6 +1900,11 @@ OnMobileOnly=Kun på lille skærm (smartphone) DisableProspectCustomerType=Deaktiver "Emner + Kunder" tredjeparts type (så tredjepart skal være Emner eller Kunder, men kan ikke begge) MAIN_OPTIMIZEFORTEXTBROWSER=Forenkle brugergrænsefladen til blindperson MAIN_OPTIMIZEFORTEXTBROWSERDesc=Aktivér denne indstilling, hvis du er blind person, eller hvis du bruger programmet fra en tekstbrowser som Lynx eller Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Denne værdi kan overskrives af hver bruger fra sin brugerside - fanebladet '%s' DefaultCustomerType=Standard tredjepartstype til "Ny kunde" oprettelsesformular ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang index 999c8ee1115..bc5af21cc67 100644 --- a/htdocs/langs/da_DK/bills.lang +++ b/htdocs/langs/da_DK/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Betaling højere end betalingspåmindelse HelpPaymentHigherThanReminderToPay=Vær opmærksom på, at betalingsbeløbet på en eller flere regninger er højere end det udestående beløb, der skal betales.
Rediger din post, ellers bekræft og overvej at oprette en kreditnote for det overskydende beløb, der er modtaget for hver overbetalt faktura. HelpPaymentHigherThanReminderToPaySupplier=Vær opmærksom på, at betalingsbeløbet på en eller flere regninger er højere end det udestående beløb, der skal betales.
Rediger din post, ellers bekræft og overvej at oprette en kreditnota for det overskydende beløb, der betales for hver overbetalt faktura. ClassifyPaid=Klassificer som "Betalt" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Klassificer som "Delvist betalt" ClassifyCanceled=Klassificer som "Tabt" ClassifyClosed=Klassificer som "Lukket" @@ -214,6 +215,20 @@ ShowInvoiceReplace=Vis erstatning faktura ShowInvoiceAvoir=Vis kreditnota ShowInvoiceDeposit=Vis udbetalt faktura ShowInvoiceSituation=Vis faktura status +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Vis betaling AlreadyPaid=Allerede betalt AlreadyPaidBack=Allerede tilbage betalt diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang index 7e5554c1f5b..957b70c5233 100644 --- a/htdocs/langs/da_DK/errors.lang +++ b/htdocs/langs/da_DK/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Specialtegn er ikke tilladt for feltet "%s" ErrorNumRefModel=En henvisning findes i databasen (%s) og er ikke kompatible med denne nummerering regel. Fjern optage eller omdøbt henvisning til aktivere dette modul. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Opsætning af modul ser ud til at være ufuldstændigt. Gå på Home - Setup - Moduler, der skal udfyldes. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Fejl på maske ErrorBadMaskFailedToLocatePosOfSequence=Fejl, maske uden loebenummeret ErrorBadMaskBadRazMonth=Fejl, dårlig reset værdi @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang index 7ab0a384cb0..b3eaeb11178 100644 --- a/htdocs/langs/da_DK/main.lang +++ b/htdocs/langs/da_DK/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakter/adresser for denne tredjepart AddressesForCompany=Adresse for denne tredjepart ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Begivenheder for denne medlem ActionsOnProduct=Begivenheder omkring dette produkt NActionsLate=%s sent @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link til kontrakt LinkToIntervention=Link til intervention +LinkToTicket=Link to ticket CreateDraft=Opret udkast SetToDraft=Tilbage til udkast ClickToEdit=Klik for at redigere diff --git a/htdocs/langs/da_DK/products.lang b/htdocs/langs/da_DK/products.lang index 1cf45888f60..6f9f8386b6e 100644 --- a/htdocs/langs/da_DK/products.lang +++ b/htdocs/langs/da_DK/products.lang @@ -2,6 +2,7 @@ ProductRef=Produkt ref. ProductLabel=Produktmærke ProductLabelTranslated=Oversat produktmærke +ProductDescription=Product description ProductDescriptionTranslated=Oversat produktbeskrivelse ProductNoteTranslated=Oversat produkt notat ProductServiceCard=Produkter / Tjenester kortet diff --git a/htdocs/langs/da_DK/stripe.lang b/htdocs/langs/da_DK/stripe.lang index 97a9225e981..28e1d39010e 100644 --- a/htdocs/langs/da_DK/stripe.lang +++ b/htdocs/langs/da_DK/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/da_DK/withdrawals.lang b/htdocs/langs/da_DK/withdrawals.lang index ca6c79297aa..70e22a72d5e 100644 --- a/htdocs/langs/da_DK/withdrawals.lang +++ b/htdocs/langs/da_DK/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Udtagelsesfil SetToStatusSent=Sæt til status "Fil sendt" ThisWillAlsoAddPaymentOnInvoice=Dette registrerer også betalinger til fakturaer og klassificerer dem som "Betalt", hvis der fortsat skal betales, er null StatisticsByLineStatus=Statistikker efter status af linjer -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unik Mandat Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direkte debiteringstilstand (FRST eller RECUR) diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang index 3b52ead1173..abe6c755eaf 100644 --- a/htdocs/langs/de_AT/admin.lang +++ b/htdocs/langs/de_AT/admin.lang @@ -93,6 +93,5 @@ FreeLegalTextOnInterventions=Freier Rechtstext für Eingriffe WatermarkOnDraftInterventionCards=Wasserzeichen auf Intervention Karte Dokumente (alle, wenn leer) ClickToDialSetup=Click-to-Dial-Moduleinstellungen PathToGeoIPMaxmindCountryDataFile=Pfad zur Datei mit Maxmind IP to Country Übersetzung.
Beispiel: / usr / local / share / GeoIP / GeoIP.dat -ListOfFixedNotifications=List of Fixed Notifications MailToSendShipment=Sendungen MailToSendIntervention=Eingriffe diff --git a/htdocs/langs/de_AT/withdrawals.lang b/htdocs/langs/de_AT/withdrawals.lang index 9f6b518c6e9..1e452c7a2bd 100644 --- a/htdocs/langs/de_AT/withdrawals.lang +++ b/htdocs/langs/de_AT/withdrawals.lang @@ -3,6 +3,5 @@ WithdrawalRefused=Abbuchungen abgelehnt InvoiceRefused=Ablehnung in Rechnung stellen StatusWaiting=Wartestellung StatusMotif2=Abbuchung angefochten -StatusMotif4=Ablehnung durch Kontoinhaber StatusMotif5=Fehlerhafte Kontodaten OrderWaiting=Wartestellung diff --git a/htdocs/langs/de_CH/accountancy.lang b/htdocs/langs/de_CH/accountancy.lang index 7594842ccf6..d5c777f58e2 100644 --- a/htdocs/langs/de_CH/accountancy.lang +++ b/htdocs/langs/de_CH/accountancy.lang @@ -155,7 +155,7 @@ ByAccounts=Nach Konto ByPredefinedAccountGroups=Nach Gruppe ByPersonalizedAccountGroups=Nach eigenen Gruppen NotMatch=Nicht hinterlegt -DeleteMvt=Lösche Darlehenspositionen +DeleteMvt=Hauptbucheinträge löschen DelYear=Zu löschendes Jahr DelJournal=Zu löschendes Journal ConfirmDeleteMvt=Hier kannst du alle Hauptbucheinträge des gewählten Jahres und/oder für einzelne Journale löschen. Gib mindestens eines von beidem an. @@ -169,17 +169,17 @@ ProductAccountNotDefined=Leider ist kein Konto für das Produkt definiert. FeeAccountNotDefined=Leider ist kein Konto für den Betrag definiert. BankAccountNotDefined=Leider ist kein Bankkonto definiert. CustomerInvoicePayment=Kundenzahlung -ThirdPartyAccount=Geschäftspartner +ThirdPartyAccount=Geschäftspartner-Konto NewAccountingMvt=Neue Transaktion NumMvts=Nummer der Transaktion ListeMvts=Liste der Kontobewegungen ErrorDebitCredit=Soll und Haben können nicht beide gleichzeitig einen Wert haben. -ReportThirdParty=Liste der Geschäftspartner -DescThirdPartyReport=Liste der Buchhaltungskonten von Geschäftspartnern und Lieferanten +ReportThirdParty=Liste der Geschäftspartner-Konten +DescThirdPartyReport=Liste der Geschäftpartner (Kunden und Lieferanten) mit deren Buchhaltungskonten ListAccounts=Liste der Buchhaltungskonten UnknownAccountForThirdparty=Den Partner kenne ich nicht - wir nehmen %s. UnknownAccountForThirdpartyBlocking=Den Partner kenne ich nicht. Zugriffsfehler. -ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Geschäftspartner nicht definiert oder unbekannt. Ich nehme deshalb %s. +ThirdpartyAccountNotDefinedOrThirdPartyUnknown=Geschäftspartner-Konto nicht definiert oder Geschäftspartner unbekannt. Wir werden %s verwenden ThirdpartyAccountNotDefinedOrThirdPartyUnknownBlocking=Der Partner ist nicht definiert oder unbekannt. Zugriffsfehler. UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Mir fehlt der Partner und das Wartestellungskonto. Zugriffsfehler. PaymentsNotLinkedToProduct=Die Zahlung ist mit keinem Produkt oder Service verknüpft. @@ -243,7 +243,6 @@ ChartofaccountsId=Kontenrahmen ID InitAccountancy=Init Buchhaltung InitAccountancyDesc=Auf dieser Seite weisest du Buchhaltungskonten Produkten und Leistungen zu, die keine Konten für Ein- und Verkäufe hinterlegt haben. DefaultBindingDesc=Auf dieser Seite kannst du ein Standard - Buchhaltungskonto an alle Arten Zahlungstransaktionen zuweisen, falls noch nicht geschehen. -DefaultClosureDesc=Lege hier die Parameter zum Anfügen der Bilanz fest. OptionModeProductSell=Modus Verkauf OptionModeProductSellIntra=Modus Export - Verkäufe in den EWR - Raum OptionModeProductSellExport=Modus Export - Verkäufe in andere Länder diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang index d38cb433d55..444a5c87da0 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -78,7 +78,7 @@ Purge=Säubern PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis %s). Diese Funktion ist richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete) PurgeDeleteTemporaryFiles=Lösche alle Temporären Dateien. Dabei gehen keine Arbeitsdaten verloren.\nHinweis: Das funktioniert nur, wenn das Verzeichnis 'Temp' seit 24h da ist. PurgeDeleteTemporaryFilesShort=Temporärdateien löschen -PurgeDeleteAllFilesInDocumentsDir=Alle Datein im Verzeichnis %s löschen. Dies beinhaltet temporäre Dateien ebenso wie Datenbanksicherungen, Dokumente (Geschäftspartner, Rechnungen, ...) und alle Inhalte des ECM-Moduls. +PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis %s löschen.
Dadurch werden alle generierten Dokumente gelöscht, die sich auf Elemente (Geschäftspartner, Rechnungen usw.), Dateien, die in das ECM-Modul hochgeladen wurden, Datenbank-Backup-Dumps und temporäre Dateien beziehen. PurgeNDirectoriesDeleted=%s Dateien oder Verzeichnisse gelöscht. PurgeNDirectoriesFailed=Löschen von %s Dateien oder Verzeichnisse fehlgeschlagen. PurgeAuditEvents=Bereinige alle Sicherheitsereignisse @@ -398,6 +398,7 @@ Permission1237=Lieferantenbestellungen mit Details exportieren Permission1421=Kundenaufträge mit Attributen exportieren Permission2414=Aktionen und Aufgaben anderer exportieren Permission59002=Gewinspanne definieren +DictionaryCompanyType=Geschäftspartner Typen DictionaryCompanyJuridicalType=Rechtsformen von Unternehmen DictionaryActions=Arten von Kalenderereignissen DictionaryVAT=MwSt.-Sätze @@ -413,6 +414,7 @@ DriverType=Treiber Typ MenuCompanySetup=Firma / Organisation MessageOfDay=Nachricht des Tages CompanyInfo=Firma / Organisation +CompanyZip=PLZ SetupDescription1=Der Setupbereich erlaubt das konfigurieren ihrer Dolibarr Installation vor der ersten Verwendung. SetupDescription4=Die Parameter im Menü %s-> %s sind notwenig, da Dolibarr ein modulares monolithisches ERP/CRM-System ist. Neue Funktionen werden für jedes aktivierte Modul zum Menü hinzugefügt. InfoDolibarr=Infos Dolibarr @@ -507,7 +509,6 @@ ExpenseReportsIkSetup=Modul Spesenabrechnungen (Milles Index) einrichten ExpenseReportsRulesSetup=Modul Spesenabrechnungen (Regeln) einrichten ExpenseReportNumberingModules=Modul Spesenabrechnung (Numerierung) YouMayFindNotificationsFeaturesIntoModuleNotification=Du kannst automatische Benachrichtigungen im Modul "Benachrichtigungen" festlegen und verwalten. -ListOfFixedNotifications=List of Fixed Notifications ConfFileMustContainCustom=Zur Installation eines externen Modules speichern Sie die Modul-Dateien in Verzeichnis %s. Damit Dolibarr dieses Verzeichniss verwendet, musst du in der Setupdatei conf.php die Optionen
$dolibarr_main_url_root_alt auf
$dolibarr_main_url_root_alt="/custom" oder
'%s/custom'; hinzufügen oder anpassen. LinkColor=Linkfarbe MinimumNoticePeriod=Kündigungsfrist (Ihre Kündigung muss vor dieser Zeit erfolgen) diff --git a/htdocs/langs/de_CH/bills.lang b/htdocs/langs/de_CH/bills.lang index f4deb2d45a1..d118ff710bf 100644 --- a/htdocs/langs/de_CH/bills.lang +++ b/htdocs/langs/de_CH/bills.lang @@ -44,7 +44,9 @@ SendReminderBillRef=Einreichung von Rechnung %s (Erinnerung) NoOtherDraftBills=Keine Rechnungsentwürfe Anderer RelatedRecurringCustomerInvoices=Verknüpfte wiederkehrende Kundenrechnung Reduction=Ermässigung +ReductionShort=% Reductions=Ermässigungen +ReductionsShort=% AddRelativeDiscount=Jeweiligen Rabatt erstellen EditRelativeDiscount=Relativen Rabatt bearbeiten AddGlobalDiscount=Rabattregel hinzufügen @@ -73,7 +75,7 @@ RegulatedOn=Gebucht am ChequeBank=Scheckbank PrettyLittleSentence=Nehmen Sie die Höhe der Zahlungen, die aufgrund von Schecks, die in meinem Namen als Mitglied eines Accounting Association, die von der Steuerverwaltung. VATIsNotUsedForInvoice=* Nicht für MwSt-art-CGI-293B -NoteListOfYourUnpaidInvoices=Bitte beachten: Diese Liste enthält nur Rechnungen an Geschäftspartner, bei denen Sie als Vertreter angegeben sind. +NoteListOfYourUnpaidInvoices=Bitte beachten: Diese Liste enthält nur Rechnungen für Geschäftspartner, bei denen Sie als Vertreter angegeben sind. YouMustCreateStandardInvoiceFirstDesc=Sie müssen zuerst eine Standardrechnung Erstellen und diese dann in eine Rechnungsvorlage umwandeln InvoiceFirstSituationAsk=Erste Situation Rechnung InvoiceSituation=Situation Rechnung diff --git a/htdocs/langs/de_CH/companies.lang b/htdocs/langs/de_CH/companies.lang index bbfe4ef8af3..e086658ba2c 100644 --- a/htdocs/langs/de_CH/companies.lang +++ b/htdocs/langs/de_CH/companies.lang @@ -5,10 +5,10 @@ ConfirmDeleteCompany=Willst du diesen Geschäftspartner und alle damit verbunden ConfirmDeleteContact=Willst du diesen Kontakt und alle damit verbundenen Informationen wirklich löschen? MenuNewThirdParty=Erzeuge Geschäftspartner MenuNewCustomer=Erzeuge Kunde -MenuNewSupplier=Erzeuge Lieferant -NewCompany=Erzeuge Unternehmen (Lead / Kunde / Lieferant) +MenuNewSupplier=Neuer Lieferant +NewCompany=Erzeuge Partner (Lead / Kunde / Lieferant) NewThirdParty=Erzeuge Geschäftspartner (Lead / Kunde / Lieferant) -CreateDolibarrThirdPartySupplier=Erzeuge Lieferant +CreateDolibarrThirdPartySupplier=Erstelle einen Lieferant CreateThirdPartyOnly=Geschäftspartner erstellen CreateThirdPartyAndContact=Erzeuge Geschäftspartner mit Kontakt IdThirdParty=Geschäftspartner ID @@ -122,7 +122,7 @@ SupplierCodeDesc=Lieferantennummer, eindeutig für jeden Lieferanten RequiredIfCustomer=Erforderlich falls Geschäftspartner Kunde oder Interessent ist RequiredIfSupplier=Erforderlich, wenn der Partner Lieferant ist ValidityControledByModule=Durch Modul validiert -ListOfThirdParties=Geschäftspartner +ListOfThirdParties=Liste der Geschäftspartner ShowCompany=Geschäftspartner anzeigen ShowContact=Zeige Kontaktangaben ContactsAllShort=Alle (Kein Filter) @@ -165,8 +165,6 @@ AllocateCommercial=Vertriebsmitarbeiter zuweisen FiscalMonthStart=Ab Monat des Geschäftsjahres YouMustAssignUserMailFirst=Für E-Mail - Benachrichtigung hinterlegst du bitte zuerst eine E-Mail Adresse im Benutzerprofil. YouMustCreateContactFirst=Sie müssen erst E-Mail-Kontakte beim Geschäftspartner anlegen, um E-Mail-Benachrichtigungen hinzufügen zu können. -ListSuppliersShort=Liste Lieferanten -ListProspectsShort=Liste Interessenten ListCustomersShort=Kundenliste LastModifiedThirdParties=Die letzten %s bearbeiteten Partner UniqueThirdParties=Anzahl Geschäftspartner diff --git a/htdocs/langs/de_CH/compta.lang b/htdocs/langs/de_CH/compta.lang index 2adacb7ff44..eecf64ff1d5 100644 --- a/htdocs/langs/de_CH/compta.lang +++ b/htdocs/langs/de_CH/compta.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - compta FeatureIsSupportedInInOutModeOnly=Dieses Feautre ist nur in der Soll-Haben-Option verfügbar (siehe Konfiguration des Rechnungswesen-Moduls) -PaymentsNotLinkedToInvoice=Zahlungen mit keiner Rechnung und damit auch keinem Geschäftspartner verbunden +PaymentsNotLinkedToInvoice=Zahlungen mit keiner Rechnung und damit auch mit keinem Geschäftspartner verbunden Balance=Bilanz LT2SummaryES=EKSt. Übersicht VATCollected=Erhobene MwSt. diff --git a/htdocs/langs/de_CH/errors.lang b/htdocs/langs/de_CH/errors.lang index a4be143308a..6faba9c6f97 100644 --- a/htdocs/langs/de_CH/errors.lang +++ b/htdocs/langs/de_CH/errors.lang @@ -24,7 +24,6 @@ ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld %s darf keine S ErrorFieldMustHaveXChar=Das Feld %s muss mindestens %s Zeichen haben. ErrorCantSaveADoneUserWithZeroPercentage=Ereignisse können nicht mit Status "Nicht begonnen" gespeichert werden, wenn das Feld "Erledigt durch" schon ausgefüllt ist. ErrorPleaseTypeBankTransactionReportName=Gib hier den Bankkontoauszug im Format YYYYMM oder YYYYMMDD an, in den du diesen Eintrag eintragen willst. -ErrorModuleSetupNotComplete=Das Setup des Moduls scheint unvollständig zu sein. Führen Sie nochmal das Setup aus um das Modul zu vervollständigen. ErrorProdIdAlreadyExist=%s wurde bereits einem Geschäftspartner zugewiesen ErrorForbidden3=Es scheint keine ordnungsgemässe Authentifizierung für das System vorzuliegen. Bitte werfen Sie einen Blick auf die Systemdokumentation um die entsprechenden Authentifizierungsoptionen zu verwalten (htaccess, mod_auth oder andere...) ErrorBadValueForCode=Unzulässiger Code-Wert. Versuchen Sie es mit einem anderen Wert erneut... diff --git a/htdocs/langs/de_CH/main.lang b/htdocs/langs/de_CH/main.lang index cbe2c53512c..56b47cf155c 100644 --- a/htdocs/langs/de_CH/main.lang +++ b/htdocs/langs/de_CH/main.lang @@ -52,6 +52,7 @@ ErrorCantLoadUserFromDolibarrDatabase=Kann Benutzer %s nicht aus der Syst ErrorNoSocialContributionForSellerCountry=Fehler, keine Definition für Sozialabgaben/Steuerwerte definiert für Land '%s'. ErrorCannotAddThisParentWarehouse=Du kannst dieses Lager nicht bei sich selbst einordnen... MaxNbOfRecordPerPage=Einträge pro Seite +SeeHere=Schau, hier: FileRenamed=Datei erfolgreich umbenannt FileGenerated=Datei erfolgreich erzeugt FileSaved=Datei erfolgreich gespeichert @@ -340,5 +341,3 @@ NoFilesUploadedYet=Bitte lade zuerst ein Dokument hoch. SeePrivateNote=Privatnotiz Einblenden PaymentInformation=Zahlungsinformationen ValidFrom=Gültig von -ValidUntil=Gültig bis -NoRecordedUsers=Keine Benutzer diff --git a/htdocs/langs/de_CH/members.lang b/htdocs/langs/de_CH/members.lang index 27d4cf7781a..f14c57540cc 100644 --- a/htdocs/langs/de_CH/members.lang +++ b/htdocs/langs/de_CH/members.lang @@ -23,6 +23,7 @@ NewSubscriptionDesc=Mit diesem Formular können Sie Ihr Abonnement als neues Mit Subscriptions=Abonnemente ListOfSubscriptions=Liste der Abonnemente NewMemberType=Neue Mitgliederart +WelcomeEMail=Begrüssungs-E-Mail SubscriptionRequired=Abonnement notwendig VoteAllowed=Abstimmen erlaubt ShowSubscription=Abonnement anzeigen @@ -44,4 +45,6 @@ MembersStatisticsByState=Mitgliederstatistik nach Kanton MembersStatisticsByTown=Mitgliederstatistik nach Ort NoValidatedMemberYet=Keine verifizierten Mitglieder gefunden LatestSubscriptionDate=Enddatum des Abonnementes +MemberNature=Art des Mitglieds Public=Informationen sind öffentlich +NewMemberbyWeb=Neues Mitglied hinzugefügt. Warten auf Genehmigung diff --git a/htdocs/langs/de_CH/supplier_proposal.lang b/htdocs/langs/de_CH/supplier_proposal.lang index 5a7c27d79e2..f1b50555dd7 100644 --- a/htdocs/langs/de_CH/supplier_proposal.lang +++ b/htdocs/langs/de_CH/supplier_proposal.lang @@ -1,24 +1,40 @@ # Dolibarr language file - Source file is en_US - supplier_proposal -supplier_proposalDESC=Preisanfragen Lieferant verwalten +SupplierProposal=Lieferantenofferten +supplier_proposalDESC=Preisanfragen an Lieferanten verwalten SupplierProposalNew=Neue Preisanfrage CommRequest=Generelle Preisanfrage CommRequests=Generelle Preisanfragen SearchRequest=Anfragen finden DraftRequests=Entwürfe Preisanfragen +SupplierProposalsDraft=Lieferanten - Richtofferten +LastModifiedRequests=Die letzten %s geänderten Offertanfragen RequestsOpened=Offene Preisanfragen +SupplierProposalArea=Lieferantenangebote +SupplierProposalShort=Lieferantenangebote NewAskPrice=Neue Preisanfrage ShowSupplierProposal=Preisanfrage zeigen +SupplierProposalRefFourn=Lieferantennummer SupplierProposalRefFournNotice=Bevor die Preisanfrage mit "Angenommen" abgeschlossen wird, sollten Referenzen zum Lieferant eingeholt werden. +ConfirmValidateAsk=Willst du diese Offertanfrage unter dem Namen %s bestätigen? ValidateAsk=Anfrage bestätigen SupplierProposalStatusDraft=Entwürfe (benötigen Bestätigung) SupplierProposalStatusSigned=Akzeptiert +SupplierProposalStatusValidatedShort=Bestätigt SupplierProposalStatusSignedShort=Akzeptiert CopyAskFrom=Neue Preisanfrage erstellen (Kopie einer bestehenden Anfrage) CreateEmptyAsk=Leere Anfrage erstellen +ConfirmCloneAsk=Willst du die Offertanfrage %s duplizieren? +ConfirmReOpenAsk=Willst du diese Preisanfrage %s wiedereröffnen? SendAskByMail=Preisanfrage mit E-Mail versenden SendAskRef=Preisanfrage %s versenden SupplierProposalCard=Anfragekarte +ConfirmDeleteAsk=Willst du diese Preisanfrage %s löschen? DocModelAuroreDescription=Eine vollständige Preisanfrage-Vorlage (Logo...) DefaultModelSupplierProposalCreate=Standardvorlage erstellen DefaultModelSupplierProposalToBill=Standardvorlage beim Abschluss einer Preisanfrage (angenommen) DefaultModelSupplierProposalClosed=Standardvorlage beim Abschluss einer Preisanfrage (zurückgewiesen) +ListOfSupplierProposals=Liste der Offertanfragen an Lieferanten +ListSupplierProposalsAssociatedProject=Liste der Lieferantenofferten, die mit diesem Projekt verknüpft sind +SupplierProposalsToClose=Zu schliessende Lieferantenangebote +SupplierProposalsToProcess=Zu verarbeitende Lieferantenofferten +LastSupplierProposals=Die letzten %s Offertanfragen diff --git a/htdocs/langs/de_CH/ticket.lang b/htdocs/langs/de_CH/ticket.lang index 93e412de5eb..9a55f674e15 100644 --- a/htdocs/langs/de_CH/ticket.lang +++ b/htdocs/langs/de_CH/ticket.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - ticket +TypeContact_ticket_external_SUPPORTCLI=Kundenkontakt / Störfallverfolgung NotRead=Ungelesen InProgress=In Bearbeitung Category=Analysecode diff --git a/htdocs/langs/de_CH/users.lang b/htdocs/langs/de_CH/users.lang index ab3eb40ac4c..22967220db0 100644 --- a/htdocs/langs/de_CH/users.lang +++ b/htdocs/langs/de_CH/users.lang @@ -23,8 +23,8 @@ ExportDataset_user_1=Benutzer und Eigenschaften CreateInternalUserDesc=Hier kannst du interne Benutzer erzeugen.\nExterne Benutzer erzeugst du in den Kontakten deiner Partner. InternalExternalDesc=Ein interner Benutzer gehört zu deiner Firma.\nExterne User sind Partner, die Zugriff auf das System erhalten.\nSo oder wird die Reichweite mit Benutzerberechtigungen gesteuert. Man kann internen und externen Benutzern auch verschiedene Ansichten und Menus zuweisen. PermissionInheritedFromAGroup=Berechtigung durch eine Gruppenzugehörigkeit gererbt. -UserWillBeInternalUser=Erstellter Benutzer ist intern (mit keinem bestimmten Geschäftspartner verknüpft) -UserWillBeExternalUser=Erstellter Benutzer ist extern (mit einem bestimmten Geschäftspartner verknüpft) +UserWillBeInternalUser=Erstellter Benutzer ist ein intern Benutzer (da mit keinem bestimmten Geschäftspartner verknüpft) +UserWillBeExternalUser=Erstellter Benutzer ist ein externer Benutzer (da mit einem bestimmten Geschäftspartner verknüpft) ConfirmCreateContact=Willst du wirklich ein Benutzerkonto für diesen Kontakt erstellen? ConfirmCreateLogin=Willst du wirklich ein Benutzerkonto für dieses Mitglied erstellen? ConfirmCreateThirdParty=Willst du wirklich für dieses Mitglied einen Partner erzeugen? diff --git a/htdocs/langs/de_CH/withdrawals.lang b/htdocs/langs/de_CH/withdrawals.lang index 707c89ca841..de458cca1cc 100644 --- a/htdocs/langs/de_CH/withdrawals.lang +++ b/htdocs/langs/de_CH/withdrawals.lang @@ -1,3 +1,2 @@ # Dolibarr language file - Source file is en_US - withdrawals -ThirdPartyBankCode=BLZ Geschäftspartner WithdrawalRefusedConfirm=Möchten Sie wirklich eine Abbuchungsablehnung zu diesem Geschäftspartner erstellen? diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index 36aaddcf541..0ca2eb50e9a 100644 --- a/htdocs/langs/de_DE/accountancy.lang +++ b/htdocs/langs/de_DE/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Buchhaltungsjournale AccountingJournal=Buchhaltungsjournal NewAccountingJournal=Neues Buchhaltungsjournal ShowAccoutingJournal=Buchhaltungsjournal anzeigen -Nature=Art +NatureOfJournal=Nature of Journal AccountingJournalType1=Verschiedene Aktionen AccountingJournalType2=Verkauf AccountingJournalType3=Einkauf @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Konfigurierbarer CSV Export Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Kontenplan ID InitAccountancy=Rechnungswesen initialisieren InitAccountancyDesc=Auf dieser Seite kann ein Sachkonto für Artikel und Dienstleistungen vorgegeben werden, wenn noch kein Buchhaltungs-Konto für Ein- und Verkäufe definiert ist. DefaultBindingDesc=Diese Seite kann verwendet werden, um ein Standardkonto festzulegen, das für die Verknüpfung von Transaktionsdatensätzen zu Lohnzahlungen, Spenden, Steuern und Mwst. verwendet werden soll, wenn kein bestimmtes Konto angegeben wurde. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Optionen OptionModeProductSell=Modus Verkäufe Inland OptionModeProductSellIntra=Modus Verkäufe in EU/EWG diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index c3449107abb..d6292945470 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -574,7 +574,7 @@ Module510Name=Löhne Module510Desc=Erfassen und Verfolgen von Mitarbeiterzahlungen Module520Name=Kredite / Darlehen Module520Desc=Verwaltung von Darlehen -Module600Name=Benachrichtigungen +Module600Name=Notifications on business event Module600Desc=E-Mail-Benachrichtigungen senden, die durch ein Geschäftsereignis ausgelöst werden: pro Benutzer (Einrichtung definiert für jeden Benutzer), pro Drittanbieter-Kontakte (Einrichtung definiert für jeden Drittanbieter) oder durch bestimmte E-Mails. Module600Long=Beachten Sie, dass dieses Modul E-Mails in Echtzeit sendet, wenn ein bestimmtes Geschäftsereignis stattfindet. Wenn Sie nach einer Funktion zum Senden von e-Mail-Erinnerungen für Agenda-Ereignisse suchen, gehen Sie in die Einrichtung den dem Modul Agenda. Module610Name=Produktvarianten @@ -807,7 +807,7 @@ Permission401=Rabatte anzeigen Permission402=Rabatte erstellen/bearbeiten Permission403=Rabatte freigeben Permission404=Rabatte löschen -Permission430=Use Debug Bar +Permission430=Debug Bar nutzen Permission511=Read payments of salaries Permission512=Lohnzahlungen anlegen / ändern Permission514=Delete payments of salaries @@ -886,10 +886,10 @@ Permission2515=Dokumentverzeichnisse verwalten Permission2801=FTP-Client im Lesemodus nutzen (nur ansehen und herunterladen) Permission2802=FTP-Client im Schreibmodus nutzen (Dateien löschen oder hochladen) Permission3200=Read archived events and fingerprints -Permission4001=See employees -Permission4002=Create employees -Permission4003=Delete employees -Permission4004=Export employees +Permission4001=Mitarbeiter anzeigen +Permission4002=Mitarbeiter erstellen +Permission4003=Mitarbeiter löschen +Permission4004=Mitarbeiter exportieren 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. @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Ergänzende Attribute (Bestellungen) ExtraFieldsSupplierInvoices=Ergänzende Attribute (Rechnungen) ExtraFieldsProject=Ergänzende Attribute (Projekte) ExtraFieldsProjectTask=Ergänzende Attribute (Aufgaben) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribut %s hat einen falschen Wert. AlphaNumOnlyLowerCharsAndNoSpace=nur Kleinbuchstaben und Zahlen, keine Leerzeichen SendmailOptionNotComplete=Achtung: Auf einigen Linux-Systemen muss die Einrichtung von sendmail die Option -ba ethalten, um E-Mail versenden zu können (Parameter mail.force_extra_parameters in der php.ini-Datei). Wenn einige Empfänger niemals E-Mails erhalten, verändern Sie den PHP Parameter folgendermaßen mail.force_extra_parameters =-ba. @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Sitzungsspeicher durch Suhosin verschlüsselt ConditionIsCurrently=Einstellung ist aktuell %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=Sie verwenden Treiber %s, aber es wird der Treiber %s empfohlen. -NbOfProductIsLowerThanNoPb=Sie haben nur %s Produkte/Leistungen in der Datenbank. Daher ist keine Optimierung erforderlich. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Such Optimierung -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. 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. -XDebugInstalled=XDebug installiert. -XCacheInstalled=XCache installiert. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Einrichtung vom Modul Spesenabrechnungen - Regeln ExpenseReportNumberingModules=Modul zur Nummerierung von Spesenabrechnungen NoModueToManageStockIncrease=Kein Modul zur automatische Bestandserhöhung ist aktiviert. Lager Bestandserhöhung kann nur durch manuelle Eingabe erfolgen. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Liste der Benachrichtigungen nach Benutzer* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=Liste von ausbesserten Benachrichtigungen +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Gehen Sie auf die Registerkarte "Hinweise" eines Benutzers, um Benachrichtigungen für Benutzer zu erstellen/entfernen GoOntoContactCardToAddMore=Gehen Sie auf die Registerkarte "Hinweise" des Partners, um Hinweise für Kontakte/Adressen zu erstellen oder zu entfernen Threshold=Schwellenwert @@ -1898,6 +1900,11 @@ OnMobileOnly=Nur auf kleinen Bildschirmen (Smartphones) DisableProspectCustomerType=Deaktivieren Sie den Drittanbietertyp "Interessent + Kunde" (d.h. ein Drittanbieter muss ein Interessent oder Kunde sein, kann aber nicht beides sein). MAIN_OPTIMIZEFORTEXTBROWSER=Vereinfachte Benutzeroberfläche für Blinde MAIN_OPTIMIZEFORTEXTBROWSERDesc=Aktivieren Sie diese Option, wenn Sie eine blinde Person sind, oder wenn Sie die Anwendung über einen Textbrowser wie Lynx oder Links verwenden. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Dieser Wert kann von jedem Benutzer auf seiner Benutzerseite überschrieben werden - Registerkarte '%s' DefaultCustomerType=Standardmäßiger Drittanbietertyp für die Maske "Neuer Kunde". ABankAccountMustBeDefinedOnPaymentModeSetup=Hinweis: Das Bankkonto muss im Modul jeder Zahlungsart (Paypal, Stripe,...) definiert sein, damit diese Funktion funktioniert. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Zahl der Zeilen, die auf der Registerkarte Logs angezeigt werden UseDebugBar=Verwenden Sie die Debug Leiste DEBUGBAR_LOGS_LINES_NUMBER=Zahl der letzten Protokollzeilen, die in der Konsole verbleiben sollen WarningValueHigherSlowsDramaticalyOutput=Warnung, höhere Werte verlangsamen die Ausgabe erheblich. -DebugBarModuleActivated=Modul Debugbar ist aktiviert und verlangsamt die Oberfläche erheblich. +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Exportmodelle sind für jeden zugänglich. ExportSetup=Einrichtung Modul Export InstanceUniqueID=Eindeutige ID dieser Instanz @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=Sie finden es auf Ihrem IFTTTT-Konto. EndPointFor=Endpunkt für %s:%s DeleteEmailCollector=Lösche eMail-Collector ConfirmDeleteEmailCollector=Sind Sie sicher, dass Sie diesen eMail-Collector löschen wollen? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index a5809f83189..98004cb5c15 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Zahlungsbetrag übersteigt Zahlungserinnerung HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Als 'bezahlt' markieren +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Als 'teilweise bezahlt' markieren ClassifyCanceled=Rechnung 'aufgegeben' ClassifyClosed=Als 'geschlossen' markieren @@ -214,6 +215,20 @@ ShowInvoiceReplace=Zeige Ersatzrechnung ShowInvoiceAvoir=Zeige Gutschrift ShowInvoiceDeposit=Anzahlungsrechnungen anzeigen ShowInvoiceSituation=Zeige Fortschritt-Rechnung +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Zeige Zahlung AlreadyPaid=Bereits bezahlt AlreadyPaidBack=Bereits zurückbezahlt diff --git a/htdocs/langs/de_DE/boxes.lang b/htdocs/langs/de_DE/boxes.lang index fe434f7a49c..95c806cc442 100644 --- a/htdocs/langs/de_DE/boxes.lang +++ b/htdocs/langs/de_DE/boxes.lang @@ -6,13 +6,13 @@ BoxProductsAlertStock=Bestandeswarnungen für Produkte BoxLastProductsInContract=Zuletzt in Verträgen aufgenomme Produkte/Leistungen (maximal %s) BoxLastSupplierBills=neueste Lieferantenrechnungen BoxLastCustomerBills=neueste Kundenrechnungen -BoxOldestUnpaidCustomerBills=Älteste unbezahlte Kundenrechnungen +BoxOldestUnpaidCustomerBills=älteste unbezahlte Kundenrechnungen BoxOldestUnpaidSupplierBills=älteste unbezahlte Lieferantenrechnungen BoxLastProposals=neueste Angebote BoxLastProspects=Zuletzt bearbeitete Interessenten BoxLastCustomers=zuletzt berarbeitete Kunden -BoxLastSuppliers=Zuletzt bearbeitete Lieferanten -BoxLastCustomerOrders=Neueste Lieferantenbestellungen +BoxLastSuppliers=zuletzt bearbeitete Lieferanten +BoxLastCustomerOrders=neueste Lieferantenbestellungen BoxLastActions=Neuste Aktionen BoxLastContracts=Neueste Verträge BoxLastContacts=Neueste Kontakte/Adressen @@ -32,7 +32,7 @@ BoxTitleLastModifiedProspects=neueste geänderte %s Interessenten BoxTitleLastModifiedMembers=%s neueste Mitglieder BoxTitleLastFicheInter=Zuletzt bearbeitete Serviceaufträge (maximal %s) BoxTitleOldestUnpaidCustomerBills=Älteste offene Kundenrechnungen (maximal %s) -BoxTitleOldestUnpaidSupplierBills=Älteste offene Kundenrechnungen (maximal %s) +BoxTitleOldestUnpaidSupplierBills=älteste offene Lieferantenrechnungen (maximal %s) BoxTitleCurrentAccounts=Salden offene Konten BoxTitleLastModifiedContacts=Zuletzt bearbeitete Kontakte/Adressen (maximal %s) BoxMyLastBookmarks=Meine %s neuesten Lesezeichen diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index fc26047b0bf..5e5328d3898 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Sonderzeichen sind im Feld '%s' nicht erlaubt ErrorNumRefModel=Es besteht ein Bezug zur Datenbank (%s) der mit dieser Numerierungsfolge nicht kompatibel ist. Entfernen Sie den Eintrag oder benennen Sie den Verweis um, um dieses Modul zu aktivieren. ErrorQtyTooLowForThisSupplier=Menge zu niedrig für diesen Lieferanten oder kein für dieses Produkt definierter Preis für diesen Lieferanten ErrorOrdersNotCreatedQtyTooLow=Einige Bestellungen wurden aufgrund zu geringer Mengen nicht erstellt -ErrorModuleSetupNotComplete=Das Setup des Moduls ist unvollständig. Gehen Sie zu Home - Einstellungen - Module um die Einstellungen zu vervollständigen. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Fehler auf der Maske ErrorBadMaskFailedToLocatePosOfSequence=Fehler, Maske ohne fortlaufende Nummer ErrorBadMaskBadRazMonth=Fehler, falscher Reset-Wert @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=Die URL %s muss mit http: // oder https: // beginnen. ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Es wurde ein Passwort für dieses Mitglied vergeben, aber kein Benutzer erstellt. Das Passwort wird gespeichert, aber kann nicht für die Anmeldung an Dolibarr verwendet werden. Es kann von einem externen Modul/einer Schnittstelle verwendet werden, aber wenn Sie kein Login oder Passwort für dieses Mitglied definiert müssen, können Sie die Option "Login für jedes Mitglied verwalten" in den Mitgliedseinstellungen deaktivieren. Wenn Sie ein Login aber kein Passwort benötige, lassen Sie dieses Feld leer, um diese Meldung zu deaktivieren. Anmerkung: Die E-Mail-Adresse kann auch zur Anmeldung verwendet werden, wenn das Mitglied mit einem Benutzer verbunden wird. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index 68d80ba1add..ae6ad4131a0 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Ansprechpartner / Adressen zu diesem Partner AddressesForCompany=Anschriften zu diesem Partner ActionsOnCompany=Aktionen für diesen Partner ActionsOnContact=Aktionen für diesen Kontakt +ActionsOnContract=Events for this contract ActionsOnMember=Aktionen zu diesem Mitglied ActionsOnProduct=Ereignisse zu diesem Produkt NActionsLate=%s verspätet @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link zum Lieferantenangebot LinkToSupplierInvoice=Link zur Lieferantenrechnung LinkToContract=Link zum Vertrag LinkToIntervention=Link zu Arbeitseinsatz +LinkToTicket=Link to ticket CreateDraft=Entwurf erstellen SetToDraft=Auf Entwurf zurücksetzen ClickToEdit=Klicken zum Bearbeiten @@ -973,9 +975,9 @@ Inventory=Inventur AnalyticCode=Analyse-Code TMenuMRP=Stücklisten ShowMoreInfos=Show More Infos -NoFilesUploadedYet=Please upload a document first +NoFilesUploadedYet=Bitte zuerst ein Dokument hochladen SeePrivateNote=See private note -PaymentInformation=Payment information -ValidFrom=Valid from -ValidUntil=Valid until -NoRecordedUsers=No users +PaymentInformation=Zahlungsdaten +ValidFrom=Gültig ab +ValidUntil=Gültig bis +NoRecordedUsers=Keine Benutzer diff --git a/htdocs/langs/de_DE/products.lang b/htdocs/langs/de_DE/products.lang index 8270e25fd2f..c21d97aeafe 100644 --- a/htdocs/langs/de_DE/products.lang +++ b/htdocs/langs/de_DE/products.lang @@ -2,6 +2,7 @@ ProductRef=Produkt-Nr. ProductLabel=Produktbezeichnung ProductLabelTranslated=Übersetzte Produktbezeichnung +ProductDescription=Product description ProductDescriptionTranslated=Übersetzte Produktbeschreibung ProductNoteTranslated=Übersetzte Produkt Notiz ProductServiceCard=Produkte/Leistungen Karte diff --git a/htdocs/langs/de_DE/stripe.lang b/htdocs/langs/de_DE/stripe.lang index ad2684355a3..ee8d6fc4167 100644 --- a/htdocs/langs/de_DE/stripe.lang +++ b/htdocs/langs/de_DE/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/de_DE/withdrawals.lang b/htdocs/langs/de_DE/withdrawals.lang index c93f95ed408..361f01de3e6 100644 --- a/htdocs/langs/de_DE/withdrawals.lang +++ b/htdocs/langs/de_DE/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Datei abbuchen SetToStatusSent=Setze in Status "Datei versandt" ThisWillAlsoAddPaymentOnInvoice=Hierdurch werden auch Zahlungen auf Rechnungen erfasst und als "Bezahlt" klassifiziert, wenn der Restbetrag null ist StatisticsByLineStatus=Statistiken nach Statuszeilen -RUM=Mandatsreferenz +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Eindeutige Mandatsreferenz RUMWillBeGenerated=Wenn leer, wird die Mandatsreferenz generiert, sobald die Bankkontodaten gespeichert sind WithdrawMode=Lastschriftmodus (FRST oder RECUR) diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index c14fa13dcc9..47e353b87a3 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Πωλήσεις AccountingJournalType3=Αγορές @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Επιλογές OptionModeProductSell=Κατάσταση πωλήσεων OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index 8a86a6f41c5..ba4fa37adc8 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -574,7 +574,7 @@ Module510Name=Μισθοί Module510Desc=Record and track employee payments Module520Name=Δάνεια Module520Desc=Διαχείριση δανείων -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Το χαρακτηριστικό %s έχει λάθος τιμή. AlphaNumOnlyLowerCharsAndNoSpace=μόνο αλφαριθμητικά και πεζά γράμματα χωρίς κενά SendmailOptionNotComplete=Προσοχή, σε μερικά συστήματα Linux, για να στείλετε e-mail από το e-mail σας, το sendmail εγκατάστασης εκτέλεση πρέπει conatins επιλογή-βα (mail.force_extra_parameters παράμετρος σε php.ini αρχείο σας). Αν δεν ορισμένοι παραλήπτες λαμβάνουν μηνύματα ηλεκτρονικού ταχυδρομείου, προσπαθήστε να επεξεργαστείτε αυτή την PHP με την παράμετρο-mail.force_extra_parameters = βα). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Βελτιστοποίηση αναζήτησης -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=Xdebug είναι φορτωμένο. -XCacheInstalled=XCache είναι φορτωμένο. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Λίστα ειδοποιήσεων ανά χρήστη* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang index 23c3e7a1d6b..7d0689ce67d 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Η πληρωμή είναι μεγαλύτερη HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Χαρακτηρισμός ως 'Πληρωμένο'' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Χαρακτηρισμός ως 'Μη Εξοφλημένο' ClassifyCanceled=Χαρακτηρισμός ως 'Εγκαταλελειμμένο' ClassifyClosed=Χαρακτηρισμός ως 'Κλειστό' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Εμφάνιση τιμολογίου αντικατάστα ShowInvoiceAvoir=Εμφάνιση πιστωτικού τιμολογίου ShowInvoiceDeposit=Εμφάνιση τιμολογίου κατάθεσης ShowInvoiceSituation=Εμφάνιση κατάστασης τιμολογίου +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Εμφάνιση πληρωμής AlreadyPaid=Ήδη πληρωμένο AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang index 4d36d0a8a43..9a3f85ac11a 100644 --- a/htdocs/langs/el_GR/errors.lang +++ b/htdocs/langs/el_GR/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Ειδικοί χαρακτήρες δεν ε ErrorNumRefModel=Μια αναφορά υπάρχει στη βάση δεδομένων (%s) και δεν είναι συμβατές με αυτόν τον κανόνα αρίθμηση. Αφαιρέστε το αρχείο ή μετονομαστεί αναφοράς για να ενεργοποιήσετε αυτή την ενότητα. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Σφάλμα στην μάσκα ErrorBadMaskFailedToLocatePosOfSequence=Σφάλμα, μάσκα χωρίς τον αύξοντα αριθμό ErrorBadMaskBadRazMonth=Σφάλμα, κακή αξία επαναφορά @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang index 9b49242e3b3..98b6c9bc764 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Επαφές/Διευθύνσεις για αυτό AddressesForCompany=Διευθύνσεις για αυτό τον Πελ./Προμ. ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Εκδηλώσεις σχετικά με αυτό το μέλος ActionsOnProduct=Events about this product NActionsLate=%s καθυστερ. @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Σύνδεση με συμβόλαιο LinkToIntervention=Σύνδεση σε παρέμβαση +LinkToTicket=Link to ticket CreateDraft=Δημιουργία σχεδίου SetToDraft=Επιστροφή στο προσχέδιο ClickToEdit=Κάντε κλικ για να επεξεργαστείτε diff --git a/htdocs/langs/el_GR/products.lang b/htdocs/langs/el_GR/products.lang index 4b73e391054..ce0f121f861 100644 --- a/htdocs/langs/el_GR/products.lang +++ b/htdocs/langs/el_GR/products.lang @@ -2,6 +2,7 @@ ProductRef=Κωδ. Προϊόντος. ProductLabel=Ετικέτα Προϊόντος ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Καρτέλα Προϊόντων/Υπηρεσιών diff --git a/htdocs/langs/el_GR/stripe.lang b/htdocs/langs/el_GR/stripe.lang index 246e61d8d00..3a711225139 100644 --- a/htdocs/langs/el_GR/stripe.lang +++ b/htdocs/langs/el_GR/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/el_GR/withdrawals.lang b/htdocs/langs/el_GR/withdrawals.lang index 3e61ea098c5..79dd2bff9b9 100644 --- a/htdocs/langs/el_GR/withdrawals.lang +++ b/htdocs/langs/el_GR/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Απόσυρση αρχείο SetToStatusSent=Ρυθμίστε την κατάσταση "αποστολή αρχείου" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Στατιστικά στοιχεία από την κατάσταση των γραμμών -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/en_AU/admin.lang b/htdocs/langs/en_AU/admin.lang index 7b0034e0ce8..447918b3b95 100644 --- a/htdocs/langs/en_AU/admin.lang +++ b/htdocs/langs/en_AU/admin.lang @@ -1,9 +1,11 @@ # Dolibarr language file - Source file is en_US - admin OldVATRates=Old GST rate NewVATRates=New GST rate +Module600Name=Notifications on business event DictionaryVAT=GST Rates or Sales Tax Rates OptionVatMode=GST due -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications LinkColor=Colour of links OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/en_AU/withdrawals.lang b/htdocs/langs/en_AU/withdrawals.lang index 503597bc8ec..967d1f20411 100644 --- a/htdocs/langs/en_AU/withdrawals.lang +++ b/htdocs/langs/en_AU/withdrawals.lang @@ -1,2 +1,2 @@ # Dolibarr language file - Source file is en_US - withdrawals -ThirdPartyBankCode=Third party bank code or BSB +RUM=Unique Mandate Reference (UMR) diff --git a/htdocs/langs/en_CA/admin.lang b/htdocs/langs/en_CA/admin.lang index 93fc98ac3e2..ae0ffe7f7c7 100644 --- a/htdocs/langs/en_CA/admin.lang +++ b/htdocs/langs/en_CA/admin.lang @@ -1,8 +1,10 @@ # Dolibarr language file - Source file is en_US - admin +Module600Name=Notifications on business event LocalTax1Management=PST Management CompanyZip=Postal code LDAPFieldZip=Postal code -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications FormatZip=Postal code OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang index ebc1a049f9c..83f77f8c47c 100644 --- a/htdocs/langs/en_GB/accountancy.lang +++ b/htdocs/langs/en_GB/accountancy.lang @@ -117,7 +117,6 @@ Selectmodelcsv=Select an example of export ChartofaccountsId=Chart of accounts ID InitAccountancyDesc=This page can be used to create a financial account for products and services that do not have a financial account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account for linking transaction records about payments, salaries, donations, taxes and vat when no specific finance account had already been set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. OptionModeProductSell=Type of sale OptionModeProductBuy=Type of purchase OptionModeProductSellDesc=Show all products with finance accounts for sales. diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index c5e3e488406..3f23aecf4be 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -41,12 +41,14 @@ UMaskExplanation=This parameter allows you to define permissions set by default 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: +Module600Name=Notifications on business event Module50200Name=PayPal DictionaryAccountancyJournal=Finance journals CompanyZip=Postcode LDAPFieldZip=Postcode 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 -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications FormatZip=Postcode OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/en_GB/withdrawals.lang b/htdocs/langs/en_GB/withdrawals.lang index 786cf4c2179..b34ed7e8f1f 100644 --- a/htdocs/langs/en_GB/withdrawals.lang +++ b/htdocs/langs/en_GB/withdrawals.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - withdrawals NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Payment status must be set to 'credited' before declaring reject on specific lines. -NbOfInvoiceToWithdrawWithInfo=No. of customer invoices with direct debit payment orders having defined bank account information AmountToWithdraw=Amount to pay NoInvoiceToWithdraw=No customer invoice with open 'Direct Debit requests' is waiting. Go on tab '%s' on invoice card to make a request. MakeWithdrawRequest=Make a Direct Debit payment request @@ -14,10 +13,9 @@ OrderWaiting=Waiting for action NotifyTransmision=Payment Transmission NotifyCredit=Payment Credit WithdrawalFileNotCapable=Unable to generate Payment receipt file for your country %s (Your country is not supported) -ShowWithdraw=Show Payment -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one payment not yet processed, it won't be set as paid to allow prior Payment management. DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When the payment order is closed, payment on the invoice will be automatically recorded, and the invoice closed if the outstanding balance is null. WithdrawalFile=Payment file +RUM=Unique Mandate Reference (UMR) WithdrawRequestAmount=The amount of Direct Debit request: WithdrawRequestErrorNilAmount=Unable to create a Direct Debit request for an empty amount. SEPALegalText=By signing this mandate form, you authorise (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. diff --git a/htdocs/langs/en_IN/admin.lang b/htdocs/langs/en_IN/admin.lang index 02a8712d64f..d19942507b6 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 +Module600Name=Notifications on business event Permission21=Read quotations Permission22=Create/modify quotations Permission24=Validate quotations @@ -13,7 +14,8 @@ ProposalsNumberingModules=Quotation numbering models ProposalsPDFModules=Quotation documents models FreeLegalTextOnProposal=Free text on quotations WatermarkOnDraftProposal=Watermark on draft quotations (none if empty) -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications MailToSendProposal=Customer quotations OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_CL/admin.lang b/htdocs/langs/es_CL/admin.lang index 7e164b901b1..691cbf3bd06 100644 --- a/htdocs/langs/es_CL/admin.lang +++ b/htdocs/langs/es_CL/admin.lang @@ -910,12 +910,9 @@ SuhosinSessionEncrypt=Almacenamiento de sesión cifrado por Suhosin 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. -NbOfProductIsLowerThanNoPb=Sólo tiene productos / servicios %s en la base de datos. Esto no requiere ninguna optimización particular. SearchOptim=Optimización de búsqueda -YouHaveXProductUseSearchOptim=Tiene productos %s en la base de datos. Debe agregar la constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 en Home-Setup-Other. Limite la búsqueda al comienzo de las cadenas, lo que hace posible que la base de datos utilice índices y debería obtener una respuesta inmediata. 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. -XCacheInstalled=XCache está cargado. AddRefInList=Mostrar cliente / vendedor ref. Lista de información (lista de selección o cuadro combinado) y la mayoría de los hipervínculos.
Aparecerán terceros con un formato de nombre de "CC12345 - SC45678 - The Big Company corp". en lugar de "The Big Company corp". AddAdressInList=Mostrar la lista de información de la dirección del cliente / proveedor (seleccionar lista o cuadro combinado)
Aparecerán terceros con el formato de nombre "The Big Company corp. - 21 jump street 123456 Big town - USA" en lugar de "The Big Company corp". AskForPreferredShippingMethod=Pregunte por el método de envío preferido para terceros. @@ -1300,9 +1297,6 @@ TemplatePDFExpenseReports=Plantillas de documentos para generar el documento de ExpenseReportsIkSetup=Configuración del módulo Informes de gastos: índice Milles NoModueToManageStockIncrease=No se ha activado ningún módulo capaz de gestionar el aumento automático de existencias. El aumento de existencias se realizará solo con la entrada manual. YouMayFindNotificationsFeaturesIntoModuleNotification=Puede encontrar opciones para notificaciones por correo electrónico habilitando y configurando el módulo "Notificación". -ListOfNotificationsPerUser=Lista de notificaciones por usuario * -ListOfNotificationsPerUserOrContact=Lista de notificaciones (eventos) disponibles por usuario * o por contacto ** -ListOfFixedNotifications=Lista de notificaciones fijas GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para agregar o eliminar notificaciones para usuarios GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un tercero para agregar o eliminar notificaciones de contactos/direcciones Threshold=Límite @@ -1440,10 +1434,6 @@ DebugBar=Barra de debug WarningValueHigherSlowsDramaticalyOutput=Advertencia, los valores más altos ralentizan dramáticamente la salida. EXPORTS_SHARE_MODELS=Los modelos de exportación se comparten con todos. IfTrackingIDFoundEventWillBeLinked=Tenga en cuenta que si se encuentra un ID de seguimiento en el correo electrónico entrante, el evento se vinculará automáticamente a los objetos relacionados. -IFTTT_SERVICE_KEY=IFTTT clave de servicio -IFTTTDesc=Este módulo está diseñado para desencadenar eventos en IFTTT y / o para ejecutar alguna acción en desencadenadores IFTTT externos. -UrlForIFTTT=Punto final de URL para IFTTT -YouWillFindItOnYourIFTTTAccount=Lo encontrarás en tu cuenta de IFTTT. EndPointFor=Punto final para %s: %s DeleteEmailCollector=Eliminar el colector de correo electrónico ConfirmDeleteEmailCollector=¿Estás seguro de que deseas eliminar este recopilador de correo electrónico? diff --git a/htdocs/langs/es_CO/admin.lang b/htdocs/langs/es_CO/admin.lang index c931369f00e..208461a50aa 100644 --- a/htdocs/langs/es_CO/admin.lang +++ b/htdocs/langs/es_CO/admin.lang @@ -729,12 +729,9 @@ YesInSummer=Si en verano 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. -NbOfProductIsLowerThanNoPb=Solo tiene %s productos / servicios en la base de datos. Esto no requiere ninguna optimización particular. SearchOptim=Optimización de búsqueda -YouHaveXProductUseSearchOptim=Tienes %s productos en la base de datos. Debe agregar la constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 en Home-Setup-Other. Limite la búsqueda al comienzo de las cadenas, lo que hace posible que la base de datos utilice índices y debería obtener una respuesta inmediata. 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. -XCacheInstalled=XCache está cargado. AskForPreferredShippingMethod=Pregunte por el método de envío preferido para terceros. FillThisOnlyIfRequired=Ejemplo: +2 (rellenar solo si se experimentan problemas de compensación de zona horaria) PasswordGenerationStandard=Devuelva una contraseña generada de acuerdo con el algoritmo interno de Dolibarr: 8 caracteres que contienen números compartidos y caracteres en minúscula. @@ -1069,9 +1066,6 @@ ExpenseReportsIkSetup=Configuración de los informes de gastos del módulo - Ín ExpenseReportsRulesSetup=Configuración de los informes de gastos del módulo - Reglas ExpenseReportNumberingModules=Módulo de numeración de informes de gastos. NoModueToManageStockIncrease=No se ha activado ningún módulo capaz de gestionar el aumento automático de stock. El aumento de stock se realizará solo con entrada manual. -ListOfNotificationsPerUser=Lista de notificaciones por usuario * -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para agregar o eliminar notificaciones para usuarios GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un tercero para agregar o eliminar notificaciones de contactos / direcciones Threshold=Límite diff --git a/htdocs/langs/es_DO/admin.lang b/htdocs/langs/es_DO/admin.lang index 9bc2c2bc07b..79fb1cc6155 100644 --- a/htdocs/langs/es_DO/admin.lang +++ b/htdocs/langs/es_DO/admin.lang @@ -7,6 +7,4 @@ Permission93=Eliminar impuestos e ITBIS DictionaryVAT=Tasa de ITBIS (Impuesto sobre ventas en EEUU) UnitPriceOfProduct=Precio unitario sin ITBIS de un producto OptionVatMode=Opción de carga de ITBIS -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_EC/admin.lang b/htdocs/langs/es_EC/admin.lang index e388f61c604..f2ffc48e3f7 100644 --- a/htdocs/langs/es_EC/admin.lang +++ b/htdocs/langs/es_EC/admin.lang @@ -901,12 +901,9 @@ SuhosinSessionEncrypt=Almacenamiento de sesión cifrado por Suhosin 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. -NbOfProductIsLowerThanNoPb=Solo tiene %s productos / servicios en la base de datos. Esto no requiere ninguna optimización particular. SearchOptim=Optimización de la búsqueda -YouHaveXProductUseSearchOptim=Tienes %s productos en la base de datos. Debe agregar la constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 en Home-Setup-Other. Limite la búsqueda al comienzo de las cadenas, lo que hace posible que la base de datos utilice índices y debería obtener una respuesta inmediata. 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. -XCacheInstalled=XCache está cargado. AddRefInList=Mostrar cliente / vendedor ref. Lista de información (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". AddAdressInList=Mostrar la lista de información de dirección del cliente / proveedor (seleccionar lista o cuadro combinado)
Aparecerán terceros con el formato de nombre "The Big Company corp. - 21 jump street 123456 Big town - USA" en lugar de "The Big Company corp". AskForPreferredShippingMethod=Pregunte por el método de envío preferido para terceros. @@ -1303,9 +1300,6 @@ ExpenseReportsSetup=Configuración del módulo Informes de gastos TemplatePDFExpenseReports=Plantillas para generar el documento de informe de gastos NoModueToManageStockIncrease=No se ha activado ningún módulo capaz de gestionar el aumento automático de existencias. El aumento de existencias se realiza sólo en la entrada manual. YouMayFindNotificationsFeaturesIntoModuleNotification=Puede encontrar opciones para notificaciones por correo electrónico habilitando y configurando el módulo "Notificación". -ListOfNotificationsPerUser=Lista de notificaciones por usuario * -ListOfNotificationsPerUserOrContact=Lista de notificaciones (eventos) disponibles por usuario * o por contacto ** -ListOfFixedNotifications=Lista de notificaciones fijas GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para agregar o eliminar notificaciones para usuarios GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un cliente / proveedor para eliminar o eliminar notificaciones de contactos / direcciones Threshold=Límite diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index c98d1b1ed99..cf6f11de763 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Diarios contables AccountingJournal=Diario contable NewAccountingJournal=Nuevo diario contable ShowAccoutingJournal=Mostrar diario contable -Nature=Naturaleza +NatureOfJournal=Nature of Journal AccountingJournalType1=Operaciones varias AccountingJournalType2=Ventas AccountingJournalType3=Compras @@ -291,6 +291,7 @@ Modelcsv_quadratus=Exportar a Quadratus QuadraCompta Modelcsv_ebp=Exportar a EBP Modelcsv_cogilog=Eportar a Cogilog Modelcsv_agiris=Exportar a Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Exportar a OpenConcerto (En pruebas) Modelcsv_configurable=Exportación CSV Configurable Modelcsv_FEC=Exportación FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Id plan contable InitAccountancy=Iniciar contabilidad InitAccountancyDesc=Puede usar esta página para inicializar el código contable en productos y servicios que no tienen código contable definido para ventas y compras DefaultBindingDesc=Esta página puede usarse para establecer una cuenta predeterminada que se utilizará para enlazar registros de salarios, donaciones, impuestos e IVA cuando no tengan establecida una cuenta contable. -DefaultClosureDesc=Esta página se puede usar para configurar los parámetros que se usarán para incluir un balance general. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opciones OptionModeProductSell=Modo ventas OptionModeProductSellIntra=Modo Ventas exportación CEE diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index edbac2e2781..e801f9609f6 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salarios Module510Desc=Registro y seguimiento del pago de los salarios de sus empleados Module520Name=Préstamos Module520Desc=Gestión de créditos -Module600Name=Notificaciones +Module600Name=Notifications on business event Module600Desc=Envía notificaciones por e-mail desencadenados por algunos eventos a los usuarios (configuración definida para cada usuario), los contactos de terceros (configuración definida en cada tercero) o e-mails definidos Module600Long=Tenga en cuenta que este módulo envía mensajes de e-mail en tiempo real cuando se produce un evento. Si está buscando una función para enviar recordatorios por e-mail de los eventos de su agenda, vaya a la configuración del módulo Agenda. Module610Name=Variantes de productos @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Campos adicionales (pedidos a proveedores) ExtraFieldsSupplierInvoices=Campos adicionales (facturas) ExtraFieldsProject=Campos adicionales (proyectos) ExtraFieldsProjectTask=Campos adicionales (tareas) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=El campo %s tiene un valor no válido AlphaNumOnlyLowerCharsAndNoSpace=sólo alfanuméricos y minúsculas sin espacio SendmailOptionNotComplete=Atención, en algunos sistemas Linux, con este método de envio, para poder enviar mails en su nombre, la configuración de sendmail debe contener la opción -ba (parámetro mail.force_extra_parameters en el archivo php.ini). Si algunos de sus destinatarios no reciben sus mensajes, pruebe a modificar este parámetro PHP con mail.force_extra_parameters=-ba. @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Almacenamiento de sesiones cifradas por Suhosin ConditionIsCurrently=Actualmente la condición es %s YouUseBestDriver=Está usando el driver %s, actualmente es el mejor driver disponible. YouDoNotUseBestDriver=Usa el driver %s aunque se recomienda usar el driver %s. -NbOfProductIsLowerThanNoPb=Tiene %s productos/servicios en su base de datos. No es necesaria ninguna optimización en particular. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Buscar optimización -YouHaveXProductUseSearchOptim=Tiene %s productos en su base de datos. Debería añadir la constante PRODUCT_DONOTSEARCH_ANYWHERE 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=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. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. 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. -XDebugInstalled=XDebug está cargado. -XCacheInstalled=XCache está cargado +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Mostrar código de cliente/proveedor en los listados (y selectores) y enlaces.
Los terceros aparecerán con el nombre "CC12345 - SC45678 - The big company coorp", en lugar de "The big company coorp". AddAdressInList=Mostrar la dirección del cliente/proveedor en los listados (y selectores)
Los terceros aparecerán con el nombre "The big company coorp - 21 jump street 123456 Big town - USA ", en lugar de "The big company coorp". AskForPreferredShippingMethod=Consultar por el método preferido de envío a terceros. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Configuración del módulo Informes de gastos - Reglas ExpenseReportNumberingModules=Módulo de numeración de informes de gastos NoModueToManageStockIncrease=No hay activado módulo para gestionar automáticamente el incremento de stock. El incremento de stock se realizará solamente con entrada manual YouMayFindNotificationsFeaturesIntoModuleNotification=Puede encontrar opciones para notificaciones de e-mail activando y configurando el módulo "Notificaciones". -ListOfNotificationsPerUser=Listado de notificaciones por usuario* -ListOfNotificationsPerUserOrContact=Listado de notificaciones (eventos) por usuario* o por contacto** -ListOfFixedNotifications=Listado de notificaciones fijas +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para añadir o elliminar notificaciones a usuarios GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un contacto de tercero para añadir o eliminar notificaciones para contactos/direcciones Threshold=Valor mínimo/umbral @@ -1898,6 +1900,11 @@ OnMobileOnly=Sólo en pantalla pequeña (smartphone) DisableProspectCustomerType=Deshabilitar el tipo de tercero "Cliente Potencial/Cliente" (por lo tanto, el tercero debe ser Cliente Potencial o Cliente pero no pueden ser ambos) MAIN_OPTIMIZEFORTEXTBROWSER=Simplificar interfaz para ciegos. MAIN_OPTIMIZEFORTEXTBROWSERDesc=Active esta opción sí es usted ciego, or sí usa la aplicación de un navegador de texto como Lynx o Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Este valor puede ser cambiado por cada usuario desde su página - tab ' 1%s ' DefaultCustomerType=Tipo de Tercero por defecto para el formulario de creación de "Nuevo cliente" ABankAccountMustBeDefinedOnPaymentModeSetup=Nota: Debe indicarse la cuenta bancaria en el módulo de cada modo de pago (Paypal, Stripe, ...) para que esta función funcione. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Número de líneas a mostrar en la pestaña de registros UseDebugBar=Usa la barra de debug DEBUGBAR_LOGS_LINES_NUMBER=Número de últimas líneas de registro para mantener en la consola. WarningValueHigherSlowsDramaticalyOutput=Advertencia, los valores altos ralentizan dramáticamente la salida. -DebugBarModuleActivated=El módulo debugbar está activado y ralentiza dramáticamente la interfaz +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Los modelos de exportación son compartidos con todos. ExportSetup=Configuración del módulo de exportación. InstanceUniqueID=ID única de la instancia @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=Lo encontrará en su cuenta de IFTTT. EndPointFor=End point for %s : %s DeleteEmailCollector=Eliminar el recolector de e-mail ConfirmDeleteEmailCollector=¿Está seguro de que querer eliminar este recolector de e-mail? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang index fe375fa91c3..0d5289285aa 100644 --- a/htdocs/langs/es_ES/bills.lang +++ b/htdocs/langs/es_ES/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Pago superior al resto a pagar HelpPaymentHigherThanReminderToPay=Atención, el importe del pago de una o más facturas es superior al resto a pagar.
Corrija su entrada, de lo contrario, confirme y piense en crear un abono de lo percibido en exceso para cada factura sobre-pagada. HelpPaymentHigherThanReminderToPaySupplier=Atención, el importe del pago de una o más facturas es superior al resto a pagar.
Corrija su entrada, de lo contrario, confirme y piense en crear un abono de lo percibido en exceso para cada factura sobre-pagada. ClassifyPaid=Clasificar 'Pagado' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Clasificar 'Pagado parcialmente' ClassifyCanceled=Clasificar 'Abandonado' ClassifyClosed=Clasificar 'Cerrado' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Ver factura rectificativa ShowInvoiceAvoir=Ver abono ShowInvoiceDeposit=Ver factura de anticipo ShowInvoiceSituation=Ver situación factura +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Ver pago AlreadyPaid=Ya pagado AlreadyPaidBack=Ya reembolsado diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index bc43d68b263..10f6d76c63d 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Los caracteres especiales no son admitidos po ErrorNumRefModel=Hay una referencia en la base de datos (%s) y es incompatible con esta numeración. Elimine la línea o renombre la referencia para activar este módulo. ErrorQtyTooLowForThisSupplier=Cantidad insuficiente para este proveedor o no hay precio definido en este producto para este proveedor ErrorOrdersNotCreatedQtyTooLow=Algunos pedidos no se han creado debido a una cantidad demasiado baja -ErrorModuleSetupNotComplete=La configuración del módulo parece incompleta. Vaya a Inicio - Configuración - Módulos para completarla. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error en la máscara ErrorBadMaskFailedToLocatePosOfSequence=Error, sin número de secuencia en la máscara ErrorBadMaskBadRazMonth=Error, valor de vuelta a 0 incorrecto @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=La URL %s debe comenzar con http:// o https:// ErrorNewRefIsAlreadyUsed=Error, la nueva referencia ya está en uso ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, no es posible eliminar un pago enlazado a una factura cerrada. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Se fijó una contraseña para este miembro. Sin embargo, no se ha creado ninguna cuenta de usuario. Así que esta contraseña no se puede utilizar para acceder a Dolibarr. Puede ser utilizada por un módulo/interfaz externo, pero si no necesitar definir accesos de un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" en la configuración del módulo miembros. Si necesita administrar un inicio de sesión, pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: También puede usarse el correo electrónico como inicio de sesión si el miembro está vinculada a un usuario. WarningMandatorySetupNotComplete=Haga clic aquí para configurar los parámetros obligatorios WarningEnableYourModulesApplications=Haga clic aquí para activar sus módulos y aplicaciones diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index 46a4e6b3eda..525c46746fb 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contactos/direcciones de este tercero AddressesForCompany=Direcciones de este tercero ActionsOnCompany=Eventos de este tercero ActionsOnContact=Eventos de este contacto/dirección +ActionsOnContract=Events for this contract ActionsOnMember=Eventos respecto a este miembro ActionsOnProduct=Eventos sobre este producto NActionsLate=%s en retraso @@ -759,6 +760,7 @@ LinkToSupplierProposal=Enlazar a presupuesto de proveedor LinkToSupplierInvoice=Enlazar a factura de proveedor LinkToContract=Enlazar a contrato LinkToIntervention=Enlazar a intervención +LinkToTicket=Link to ticket CreateDraft=Crear borrador SetToDraft=Volver a borrador ClickToEdit=Clic para editar diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang index 68d21c54e3c..e97d80073d5 100644 --- a/htdocs/langs/es_ES/products.lang +++ b/htdocs/langs/es_ES/products.lang @@ -2,6 +2,7 @@ ProductRef=Ref. producto ProductLabel=Etiqueta producto ProductLabelTranslated=Traducción etiqueta de producto +ProductDescription=Product description ProductDescriptionTranslated=Traducción descripción de producto ProductNoteTranslated=Traducción notas de producto ProductServiceCard=Ficha producto/servicio diff --git a/htdocs/langs/es_ES/stripe.lang b/htdocs/langs/es_ES/stripe.lang index de38ab59e7a..65ca60c3c51 100644 --- a/htdocs/langs/es_ES/stripe.lang +++ b/htdocs/langs/es_ES/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=Cuenta de usuario para usar en algunos e-mails de no StripePayoutList=Lista de pagos de Stripe ToOfferALinkForTestWebhook=Enlace para configurar Stripe WebHook para llamar a la IPN (modo de prueba) ToOfferALinkForLiveWebhook=Enlace para configurar Stripe WebHook para llamar a la IPN (modo real) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang index e31170475ac..c83868a0dc0 100644 --- a/htdocs/langs/es_ES/withdrawals.lang +++ b/htdocs/langs/es_ES/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Archivo de la domiciliación SetToStatusSent=Clasificar como "Archivo enviado" ThisWillAlsoAddPaymentOnInvoice=Se crearán los pagos de las facturas y las clasificarán como pagadas si el resto a pagar es 0 StatisticsByLineStatus=Estadísticas por estados de líneas -RUM=RUM +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Referencia Única de Mandato RUMWillBeGenerated=Si está vacío,se generará un número RUM (Referencia Unica de Mandato) una vez que se guarde la información de la cuenta bancaria WithdrawMode=Modo domiciliación (FRST o RECUR) diff --git a/htdocs/langs/es_MX/accountancy.lang b/htdocs/langs/es_MX/accountancy.lang index d712bd5c6c4..d7f786c2198 100644 --- a/htdocs/langs/es_MX/accountancy.lang +++ b/htdocs/langs/es_MX/accountancy.lang @@ -56,7 +56,6 @@ AccountingJournalType5=Informe de gastos AccountingJournalType9=Tiene nuevo ErrorAccountingJournalIsAlreadyUse=Este diario ya está en uso ExportDraftJournal=Exportar borrador de diario -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos obligatorios de la instalación no se realizaron, favor de completar ExportNotSupported=El formato de exportación configurado no se admite en esta página NoJournalDefined=Ningún diario definido diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index 6c0f8fd1ec9..f89282ac0f6 100644 --- a/htdocs/langs/es_MX/admin.lang +++ b/htdocs/langs/es_MX/admin.lang @@ -1,10 +1,12 @@ # Dolibarr language file - Source file is en_US - admin VersionProgram=Versión del programa +VersionLastInstall=Instalar la versión inicial +VersionLastUpgrade=Actualizar a la Versión mâs reciente FileCheck=Comprobación de integridad del conjunto de archivos FileCheckDesc=Esta herramienta te permite comprobar la integridad de los archivos y la configuración de tu aplicación, comparando cada archivo con el archivo oficial. El valor de algunas constantes de la configuración también podria ser comprobado. Tu puedes usar esta herramienta para determinar si cualquiera de los archivos a sido modificado (ejem. por un hacker). FileIntegrityIsStrictlyConformedWithReference=La integridad de los archivos está estrictamente conformada con la referencia. +FileIntegrityIsOkButFilesWereAdded=La comprobación de la integridad de archivos ha terminado, sin embargo algunos archivos nuevos han sido agregados. FileIntegritySomeFilesWereRemovedOrModified=La verificación de integridad de los archivos ha fallado. Algunos archivos fueron modificados, eliminados o agregados. -GlobalChecksum=Checksum global MakeIntegrityAnalysisFrom=Hacer análisis de integridad de los archivos de la aplicación de LocalSignature=Firma local integrada (menos confiable) RemoteSignature=Firma remota distante (mas confiable) @@ -29,7 +31,7 @@ ClientSortingCharset=Recopilación del cliente WarningModuleNotActive=El módulo %s debe estar habilitado WarningOnlyPermissionOfActivatedModules=Sólo los permisos relacionados a los módulos activados son mostrados aquí. Puedes activar otros módulos en la página Inicio->Configuración->Módulos DolibarrSetup=Instalación o actualización de Dolibarr -UploadNewTemplate=Subir nueva(s) plantilla(s) +UploadNewTemplate=Cargar plantilla(s) nuevas FormToTestFileUploadForm=Formulario para probar la carga de archivos (según la configuración) IfModuleEnabled=Nota: sí es efectivo sólo si el módulo %s está activado RemoveLock=Remover/renombrar archivo %s si existe, para permitir el uso de la herramienta Actualizar/Instalar. @@ -41,19 +43,28 @@ ErrorModuleRequireDolibarrVersion=Error, éste módulo requiere Dolibarr versió ErrorDecimalLargerThanAreForbidden=Error, una precisión superior a %s no es soportada. DictionarySetup=Configurar diccionario ErrorReservedTypeSystemSystemAuto=Los valores de tipo 'system' y 'systemauto' están reservados. Puedes usar 'user' como valor para añadir tu propio registro +DisableJavascript=Deshabilitar funciones JavaScript y Ajax +DisableJavascriptNote=Nota: Para propósito de prueba o depuración. Para optimización para una persona invidente o navegadores de texto, tu podrías preferir usar el ajuste en el perfil de usuario UseSearchToSelectCompanyTooltip=Asi mismo si tu tienes un gran número de terceras partes (> 100 000), puedes incrementar la velocidad al establecer la constante COMPANY_DONOTSEARCH_ANYWHERE to 1 en Configuración->Otro. La búsqueda entonces será limitada al inicio de la cadena. DelaiedFullListToSelectCompany=Esperar hasta que una tecla sea presionada antes de cargar contenido del listado desplegable de terceros.
Esto podria incrementar el desempeño si tu tienes un gran numero de terceros, pero no se recomienda. DelaiedFullListToSelectContact=Esperar hasta que una tecla sea presionada antes de cargar contenido del listado desplegable de contactos.
Esto podria incrementar el desempeño si tu tienes un gran numero de contactos, pero no se recomienda) +NumberOfKeyToSearch=Numero de caracteres para activar la búsqueda %s +NumberOfBytes=Numero de Octetos +SearchString=Cadena de búsqueda NotAvailableWhenAjaxDisabled=No disponible cuando Ajax está desactivado +AllowToSelectProjectFromOtherCompany=En documento de un tercero, puede seleccionar un proyecto ligado a otro tercero JavascriptDisabled=JavaScript desactivado UsePreviewTabs=Utilizar pestañas de vista previa ShowPreview=Mostrar previsualización -ThemeCurrentlyActive=Tema activo CurrentTimeZone=Zona horaria PHP (servidor) +TZHasNoEffect=Las fechas son guardadas y retornadas por el servidor de base de datos como si fueran guardadas como cadenas sometidas. La zona horaria tiene efecto solo cuando usamos la función UNIX_TIMESTAMP (que no debe ser usada por Dolibarr, ya que TZ no debe tener efecto, incluso si cambió despues de que datos fueron ingresados). Space=Espacio NextValue=Valor siguiente NextValueForInvoices=Valor siguiente (facturas) NextValueForCreditNotes=Valor siguiente (notas de crédito) +NextValueForDeposit=Valor siguiente (pago inicial) +NextValueForReplacements=Valor siguiente (sustituciones) +MustBeLowerThanPHPLimit=Nota: tu configuración PHP actualmente limita el máximo tamaño de fichero para subir a %s %s, independientemente de el valor de este parametro NoMaxSizeByPHPLimit=Nota: No hay límite establecido en la configuración de PHP MaxSizeForUploadedFiles=El tamaño máximo para los archivos subidos (0 para no permitir ninguna carga) UseCaptchaCode=Utilizar el código gráfico (CAPTCHA) en la página de inicio de sesión @@ -63,6 +74,7 @@ AntiVirusParam=Más parámetros de línea de comandos AntiVirusParamExample=Ejemplo para ClamWin: --database="C:\\Archivos de programa (x86)\\ClamWin\\lib" ComptaSetup=Establecer modulo de Contabilidad UserSetup=Establecer usuario Administrador +MultiCurrencySetup=Configurar multidivisas MenuLimits=Limites y exactitud MenuIdParent=ID del menu padre DetailMenuIdParent=ID de menú padre (vacante para un menú principal) @@ -70,16 +82,26 @@ DetailPosition=Clasificar cantidad para definir posición del menú AllMenus=Todo NotConfigured=Modulo/Aplicación no configurado SetupShort=Configuración +OtherSetup=Otra configuración CurrentValueSeparatorThousand=Separador millar +Destination=Destino +IdModule=ID del módulo +IdPermissions=ID de permisos LanguageBrowserParameter=Parámetro %s +LocalisationDolibarrParameters=Parametros de localización ClientTZ=Zona Horaria cliente (usuario) OSTZ=Servidor OS Zona Horaria PHPTZ=Servidor PHP Zona Horaria DaylingSavingTime=Hora de verano CurrentSessionTimeOut=Sesión actual pausada +YouCanEditPHPTZ=Para establecer un zona horaria PHP diferente (no necesario), puedes intentar agregar un archivo .htaccess con una linea como "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Advertencia, a diferencia de otros monitores, las horas en esta página no estan en tu zona horaria local, sino en la zona horaria del servidor. +MaxNbOfLinesForBoxes=Maximo. número de lineas para dispositivos +AllWidgetsWereEnabled=Todos los dispositivos disponibles estan habilitados PositionByDefault=Pedido por defecto Position=Puesto MenusDesc=Administradores de menú establecen contenido de las dos barras de menú (horizontal y vertical) +MenusEditorDesc=El editor de menú  permite definir ingresos de menú personalizado. Usarse con cuidado para evitar inestabilidad y permanente incapacidad de ingresar al menú.
Algunos módulos agregan ingresos  (in menu  All mostly). Si tu eliminas algunos de estos ingresos por error, puedes restaurarlos desabilitando y rehabilitando el módulo. MenuForUsers=Menú para usuarios LangFile=Archivo .lang Language_en_US_es_MX_etc=Lenguaje (en_US, es_MX, ...) @@ -87,9 +109,13 @@ SystemInfo=Información del sistema SystemToolsArea=Área de herramientas del sistema SystemToolsAreaDesc=Esta área provee funciones administrativas. Usar el menú para seleccionar la característica requerida. PurgeAreaDesc=Esta página te permite eliminar todos los archivos generados o guardados por Dolibarr (archivos temporales o todos los archivos en %s el directorio). Usar esta característica no es normalmente necesario. Esta es proporcionada como una solución alternativa para usuarios cuyo Dolibarr es hospedado por un proveedor que no ofrece permisos de borrado de archivos generados por el servidor web. +PurgeDeleteLogFile=Eliminar archivos log, incluyendo %s definido por módulo Syslog (sin riesgo de perdida de datos) +PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (sin riesgo de perdida de datos). Nota: La eliminación es hecha solo si el directorio temporal fue creado 24 horas antes. +PurgeDeleteAllFilesInDocumentsDir=Eliminar todos los archivos en el directorio: %s.
Esto borrara todos los documentos generados relacionados a elementos (terceras partes, facturas etc...), archivos subidos a el módulo ECM, volcados de respaldo de base de datos y archivos temporales. PurgeRunNow=Purgar ahora PurgeNothingToDelete=Ningún directorio o archivos que desee eliminar. PurgeNDirectoriesDeleted= %s archivos o directorios eliminados. +PurgeNDirectoriesFailed=Error al eliminar %s archivos o directorios. PurgeAuditEvents=Purgar todos los eventos de seguridad ConfirmPurgeAuditEvents=¿Está seguro de que desea eliminar todos los eventos de seguridad? Todos los registros de seguridad se eliminarán, no se eliminarán otros datos. Backup=Copia de Seguridad @@ -97,10 +123,14 @@ Restore=Restaurar RunCommandSummary=Se ha iniciado la copia de seguridad con el siguiente comando BackupResult=Resultado de copia de seguridad BackupFileSuccessfullyCreated=Archivo de copia de seguridad generado correctamente +YouCanDownloadBackupFile=Los archivos generados ahora pueden ser descargados NoBackupFileAvailable=No hay archivos de copia de seguridad disponibles. ToBuildBackupFileClickHere=Para crear un archivo de copia de seguridad, haga clic aquí . -ImportPostgreSqlDesc=Para importar un archivo de respaldo, debe usar el comando pg_restore en la linea de comandos: +ImportMySqlDesc=Para importar un archivo de respaldo de MySQL, tu podrias usar phpMyAdmin via tu proveedor de hosting o usar el comando mysql de la linea de Comandos.
Por ejemplo: +ImportPostgreSqlDesc=Para importar un archivo de respaldo, debes usar el comando pg_restore en la linea de comandos: ImportMySqlCommand=%s %s < miarchivoderespaldo.sql +ImportPostgreSqlCommand=%s %s miarchivoderespaldo.sql +FileNameToGenerate=Nombre de archivo para copia de respaldo: CommandsToDisableForeignKeysForImport=Comando para deshabilitar claves foráneas en la importación CommandsToDisableForeignKeysForImportWarning=Obligatorio si desea restaurar su copia de seguridad de SQL más tarde MySqlExportParameters=Parámetros de exportación de MySQL @@ -110,7 +140,12 @@ FullPathToPostgreSQLdumpCommand=Ruta completa del comando pg_dump AddDropDatabase=Agregar comando DROP DATABASE AddDropTable=Agregar comando DROP TABLE NameColumn=Nombre de columnas -EncodeBinariesInHexa=Convertir datos binarios en hexadecimal +EncodeBinariesInHexa=Codificar datos binarios en hexadecimal +IgnoreDuplicateRecords=Ignorar errores de registro duplicados (INSERT IGNORE) +AutoDetectLang=Autodetectar (lenguaje del navegador) +FeatureDisabledInDemo=Característica deshabilitada en versión demo +FeatureAvailableOnlyOnStable=Característica unicamente disponible en versiones oficiales estables +BoxesDesc=Widgets son componentes mostrando alguna información que tu puedes agregar para personalizar algunas páginas. Tu puedes elegir entre mostrar el widget o no al seleccionar la página objetivo y haciendo click en 'Activar', o haciendo click en la papelera de reciclaje para deshabilitarlos. OnlyActiveElementsAreShown=Solo elementos de \nmodulos habilitados son\n mostrados. ModulesDesc=Los módulos/aplicaciones determinan qué funciones están disponibles en el software. Algunos módulos requieren que se otorguen permisos a los usuarios después de activar el módulo. Haga clic en el botón de encendido/apagado (al final de la línea del módulo) para habilitar/deshabilitar un módulo/aplicación. ModulesMarketPlaceDesc=Tu puedes encontrar mas módulos para descargar en sitios web externos en el Internet @@ -131,8 +166,6 @@ DictionaryProspectStatus=Estatus del cliente potencial Upgrade=Actualizar LDAPFieldFirstName=Nombre(s) AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications ConfFileMustContainCustom=Instalar o construir un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio %s . Para que este directorio sea procesado por Dolibarr, debe configurar su conf/conf.php para agregar las 2 líneas de directiva: $dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; MailToSendProposal=Propuestas de clientes MailToSendInvoice=Facturas de clientes diff --git a/htdocs/langs/es_PA/admin.lang b/htdocs/langs/es_PA/admin.lang index a4a7a82aaa0..5f6898087d4 100644 --- a/htdocs/langs/es_PA/admin.lang +++ b/htdocs/langs/es_PA/admin.lang @@ -1,5 +1,3 @@ # Dolibarr language file - Source file is en_US - admin VersionUnknown=Desconocido -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_PE/accountancy.lang b/htdocs/langs/es_PE/accountancy.lang index 24d7b8e4f3b..50f3ac66aa1 100644 --- a/htdocs/langs/es_PE/accountancy.lang +++ b/htdocs/langs/es_PE/accountancy.lang @@ -44,4 +44,3 @@ Sens=Significado Codejournal=Periódico FinanceJournal=Periodo Financiero TotalMarge=Margen total de ventas -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. diff --git a/htdocs/langs/es_PE/admin.lang b/htdocs/langs/es_PE/admin.lang index 0f15310bb3a..cc415c6dda9 100644 --- a/htdocs/langs/es_PE/admin.lang +++ b/htdocs/langs/es_PE/admin.lang @@ -5,6 +5,4 @@ Permission93=Eliminar impuestos e IGV DictionaryVAT=Tasa de IGV (Impuesto sobre ventas en EEUU) UnitPriceOfProduct=Precio unitario sin IGV de un producto OptionVatMode=Opción de carga de IGV -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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_VE/admin.lang b/htdocs/langs/es_VE/admin.lang index 4daf55ade15..9d3c0f25368 100644 --- a/htdocs/langs/es_VE/admin.lang +++ b/htdocs/langs/es_VE/admin.lang @@ -32,6 +32,4 @@ WatermarkOnDraftSupplierProposal=Marca de agua en solicitudes de precios a prove LDAPMemberObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) LDAPUserObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) LDAPContactObjectClassListExample=Lista de objectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang index 69bb680becb..25f67e0e93d 100644 --- a/htdocs/langs/et_EE/accountancy.lang +++ b/htdocs/langs/et_EE/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Loomus +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Müügid AccountingJournalType3=Ostud @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index bb4631de3fe..b9def779562 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -574,7 +574,7 @@ Module510Name=Palgad Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Teated +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Täiendavad atribuudid (orders e tellimused) ExtraFieldsSupplierInvoices=Täiendavad atribuudid (invoices e arved) ExtraFieldsProject=Täiendavad atribuudid (projects e projektid) ExtraFieldsProjectTask=Täiendavad atribuudid (tasks e ülesanded) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Atribuudil %s on vale väärtus. AlphaNumOnlyLowerCharsAndNoSpace=ainult tühikuteta väikesed tähed ja numbrid SendmailOptionNotComplete=Hoiatus: mõnedel Linuxi süsteemidel peab e-kirja saatmiseks sendmaili käivitamise seadistus sisaldama võtit -ba (php.ini failis parameeter mail.force_extra_parameters). Kui mõned adressaadid ei saa kunagi kirju kätte, siis proovi parameetri väärtust mail.force_extra_parameters = -ba @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Sessiooni andmehoidla krüpteeritud Suhosini poolt ConditionIsCurrently=Olek on hetkel %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Otsingu optimeerimine -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug on laetud. -XCacheInstalled=XCache on laetud. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/et_EE/bills.lang b/htdocs/langs/et_EE/bills.lang index e7d4083a6a7..746bfe32149 100644 --- a/htdocs/langs/et_EE/bills.lang +++ b/htdocs/langs/et_EE/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Makse on suurem, kui makstava summa jääk HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Liigita 'Makstud' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Liigita 'Osaliselt makstud' ClassifyCanceled=Liigita 'Hüljatud' ClassifyClosed=Liigita 'Suletud' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Näita asendusarvet ShowInvoiceAvoir=Näita kreeditarvet ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Näita makset AlreadyPaid=Juba makstud AlreadyPaidBack=Juba tagasi makstud diff --git a/htdocs/langs/et_EE/errors.lang b/htdocs/langs/et_EE/errors.lang index 886c3e18f8a..f307abe2390 100644 --- a/htdocs/langs/et_EE/errors.lang +++ b/htdocs/langs/et_EE/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField="%s" väljal ei ole erisümbolid lubatud ErrorNumRefModel=Andmebaasi viide on juba olemas (%s) ja ei ole kooskõlas antud numeratsiooni reegliga. Kustuta kirje või nimeta viide ümber antud mooduli aktiveerimiseks. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Maski viga ErrorBadMaskFailedToLocatePosOfSequence=Viga: mask on järjekorranumbrita ErrorBadMaskBadRazMonth=Viga: halb lähteväärtus @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang index 045be9f36b2..426c182d98f 100644 --- a/htdocs/langs/et_EE/main.lang +++ b/htdocs/langs/et_EE/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Selle kolmanda isikuga seotud kontaktid/aadressid AddressesForCompany=Selle kolmanda isikuga seotud aadressid ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Selle liikmega seotud tegevused ActionsOnProduct=Events about this product NActionsLate=%s hiljaks jäänud @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Loo mustand SetToDraft=Tagasi mustandiks ClickToEdit=Klõpsa muutmiseks diff --git a/htdocs/langs/et_EE/products.lang b/htdocs/langs/et_EE/products.lang index d488dbb1fea..e886aa2d56e 100644 --- a/htdocs/langs/et_EE/products.lang +++ b/htdocs/langs/et_EE/products.lang @@ -2,6 +2,7 @@ ProductRef=Toote viide ProductLabel=Toote nimi ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Toodete/teenuste kaart diff --git a/htdocs/langs/et_EE/stripe.lang b/htdocs/langs/et_EE/stripe.lang index 0f080da0b2b..229e5a475d1 100644 --- a/htdocs/langs/et_EE/stripe.lang +++ b/htdocs/langs/et_EE/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/et_EE/withdrawals.lang b/htdocs/langs/et_EE/withdrawals.lang index 529e07d3ffe..66b4596dafd 100644 --- a/htdocs/langs/et_EE/withdrawals.lang +++ b/htdocs/langs/et_EE/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Väljamaksete fail SetToStatusSent=Märgi staatuseks 'Fail saadetud' ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/eu_ES/accountancy.lang b/htdocs/langs/eu_ES/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/eu_ES/accountancy.lang +++ b/htdocs/langs/eu_ES/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang index 0fdb64717fc..d6df49511a8 100644 --- a/htdocs/langs/eu_ES/admin.lang +++ b/htdocs/langs/eu_ES/admin.lang @@ -574,7 +574,7 @@ Module510Name=Soldatak Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Jakinarazpenak +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/eu_ES/bills.lang b/htdocs/langs/eu_ES/bills.lang index a90736a569d..a1f161e4119 100644 --- a/htdocs/langs/eu_ES/bills.lang +++ b/htdocs/langs/eu_ES/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Ordainketa erakutsi AlreadyPaid=Jada ordainduta AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/eu_ES/errors.lang b/htdocs/langs/eu_ES/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/eu_ES/errors.lang +++ b/htdocs/langs/eu_ES/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/eu_ES/main.lang b/htdocs/langs/eu_ES/main.lang index 3961eb46b5a..330e60e0320 100644 --- a/htdocs/langs/eu_ES/main.lang +++ b/htdocs/langs/eu_ES/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/eu_ES/products.lang b/htdocs/langs/eu_ES/products.lang index ed5d9ec76b6..1932b64a657 100644 --- a/htdocs/langs/eu_ES/products.lang +++ b/htdocs/langs/eu_ES/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/eu_ES/stripe.lang b/htdocs/langs/eu_ES/stripe.lang index 6186c14a9ec..746931ff967 100644 --- a/htdocs/langs/eu_ES/stripe.lang +++ b/htdocs/langs/eu_ES/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/eu_ES/withdrawals.lang b/htdocs/langs/eu_ES/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/eu_ES/withdrawals.lang +++ b/htdocs/langs/eu_ES/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang index 5b8e93fda67..67a705dbedd 100644 --- a/htdocs/langs/fa_IR/accountancy.lang +++ b/htdocs/langs/fa_IR/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=دفترهای حساب‌داری AccountingJournal=دفتر حساب‌داری NewAccountingJournal=دفتر حساب‌داری جدید ShowAccoutingJournal=نمایش دفتر حساب‌داری -Nature=طبیعت +NatureOfJournal=Nature of Journal AccountingJournalType1=فعالیت‌های متفرقه AccountingJournalType2=فروش AccountingJournalType3=خرید @@ -291,6 +291,7 @@ Modelcsv_quadratus=صدور برای Quadratus QuadraCompta Modelcsv_ebp=صدور برای EBP Modelcsv_cogilog=صدور برای Cogilog Modelcsv_agiris=صدور برای Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=صادرکردن برای OpenConcerto  (آزمایشی) Modelcsv_configurable= صدور قابل پیکربندی CSV Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=ساختار شناسۀ حساب‌‌ها InitAccountancy=حساب‌داری اولیه InitAccountancyDesc=این صفحه برای مقداردهی اولیۀ یک حساب حساب‌داری برای محصولات/خدماتی قابل استفاده است که حساب حساب‌داری تعریف‌شده‌ای برای خرید و فروش ندارند DefaultBindingDesc=این صفحه برای تنظیم یک حساب پیش‌فرض قابل استفاده از که برای وصل کردن ردیف تراکنش‌‌های مربوط به پرداخت حقوق، اعانه و کمک، مالیات و مالیت بر ارزش افزوده در حالتی که هیچ حساب حساب‌داری تنظیم نشده، قابل استفاده است . -DefaultClosureDesc=این صفحه برای تنظیم مؤلفه‌هائی برای پیوست کردن یک برگۀ تعدیل لازم است. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=گزینه‌ها OptionModeProductSell=حالت فروش OptionModeProductSellIntra=حالت فروش به شکل EEC صادر می‌گردد diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index a142ce5e7c8..2b995dda00f 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -574,7 +574,7 @@ Module510Name=حقوق Module510Desc=ثبت و پیگیری پرداخت‌های کارمندان Module520Name=وام‌ها Module520Desc=مدیریت وام‌ها -Module600Name=اطلاعیه‌ها +Module600Name=Notifications on business event Module600Desc=ارسال رایانامه‌های اطلاعیه مبتنی بر یک رخداد کاری: بر اساس کاربر (تنظیمات بر حسب هر کاربر)، بر اساس طرف‌سوم (تنظیمات بر اساس هر طرف سوم) یا بر اساس رایانامه‌های خاص Module600Long=به خاطر داشته باشید این واحد رایانامه‌را به صورت بلادرنگ در هنگام یک رخداد معین ارسال می‌نماید. در صورتی که به دنبال یک قابلیت برای ارسال یادآورنده‌های رخدادهائی مثل جلسات باشید، به واحد تنظیمات جلسات مراجعه کنید. Module610Name=انواع محصولات @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=ویژگی‌های تکمیلی (سفارش‌ها) ExtraFieldsSupplierInvoices=ویژگی‌های تکمیلی (صورت‌حساب‌ها) ExtraFieldsProject=ویژگی‌های تکمیلی (طرح‌ها) ExtraFieldsProjectTask=ویژگی‌های تکمیلی (وظایف) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=ویژگی %s مقدار نادرستی دارد. AlphaNumOnlyLowerCharsAndNoSpace=فقط حروف کوچک و اعداد انگلیسی بدون فاصله SendmailOptionNotComplete=هشدار، در برخی سامانه‌های لینوکس، برای ارسال رایانامه از شما، تنظیمات اجرای sendmail نیازمند گزینۀ -ba (در فایل php.ini ، مقدار mail.force_extra_parameters) است. در صورتی که برخی گیرندگان، هرگز رایانامه دریافت نکرده‌اند، این مؤلفۀ PHP را بدین شکل تغییر دهید: mail.force_extra_parameters = -ba ). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=ذخیره‌سازی نشست کدبندی‌شدۀ Suhos ConditionIsCurrently=در حال حاضر وضعیت %s است YouUseBestDriver=شما از راه‌انداز %s استفاده می‌کنید که بهترین راه‌انداز دردسترس نیست. YouDoNotUseBestDriver=شما از راه‌انداز %s استفاده می‌کنید اما پیشنهاد ما استفادهاز %s است. -NbOfProductIsLowerThanNoPb=در پایگاه داده شما فقط %s محصول/خدمات دارید. این دیگر نیاز به بهینه‌سازی خاصی ندارد. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=بهینه‌سازی جستجو -YouHaveXProductUseSearchOptim=شما %s محصول در پایگاه داده دارید و نیاز است مقدار ثابت PRODUCT_DONOTSEARCH_ANYWHERE را در خانه-برپاسازی-سایر به عدد 1 تغییر دهید. محدود کردن جستجو به ابتدای عبارت که به پایگاه داده امکان می‌دهد تا از شاخص‌ها استفاه نماید تا شما نتیجه‌را فوری دریافت نمائید. +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. +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 استفاده نمائید. -XDebugInstalled=XDebug بارگذاری شده است. -XCacheInstalled=XCache بارگذاری شده است. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=نمایش فهرست اطلاعات مرجع -ref. فروشنده/مشتری (فهرست انتخابی یا ترکیبی) و اکثر ابَرپیوند.
نام طرف‌های سوم به شکل " CC12345 - SC45678 - شرکت بزرگ سازمانی " به جای "شرکت بزرگ سازمانی" نمایش داده خواهد شد. AddAdressInList=نمایش فهرست اطلاعات نشانی‌های فروشنده/مشتری (فهرست انتخابی یا ترکیبی)
شخص سوم‌ها به شکل "شرکت بزرگ سازمانی - شمارۀ 21 خیابان 123456 شهر بزرگ ایران" به جای "شرکت بزرگ سازمانی" نمایش داده خواهند شد. AskForPreferredShippingMethod=پرسش برای روش ارسال ترجیحی برای اشخاص سوم @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=برپاسازی واحد گزارش هزینه‌ها ExpenseReportNumberingModules=واحد شماره‌گذاری گزارش هزینه‌ها NoModueToManageStockIncrease=هیچ واحدی که قادر به افزایش خودکار موجودی انبار باشد فعال نشده است. افزایش موجودی انبار تنها به صورت دستی انجام خواهد شد. YouMayFindNotificationsFeaturesIntoModuleNotification=شما می‌توانید برخی گزینه‌های مربوط به اطلاع‌رسانی از رایانامه را با فعال کردن و تنظیم واحد "آگاهی‌رسانی" تنظیم نمائید. -ListOfNotificationsPerUser=فهرست آگاهی‌رسانی‌ها برحسب کاربر* -ListOfNotificationsPerUserOrContact=فهرست آگاهی‌رسانی‌ها (رخدادها) ی موجود بر حسب کاربر * یا بر حسب طرف‌تماس** -ListOfFixedNotifications=فهرست آگاهی‌رسانی‌های ثابت +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=به زبانۀ "آگاهی‌رسانی" یک کاربر رفته تا آگاهی‌رسانی‌های مربوط به کاربران را اضافه یا حذف نمائید GoOntoContactCardToAddMore=به زبانۀ "آگاهی رسانی" یک طرف‌سوم رفته تا آگاهی‌رسانی‌های مربوط به یک طرف تماس/نشانی‌ها را اضافه یا حذف نمائید Threshold=آستانه @@ -1898,6 +1900,11 @@ OnMobileOnly=تنها روی صفحات کوچک (تلفن‌هوشمند) DisableProspectCustomerType=غیرفعال کردن نوع طرف سوم "مشتری احتمالی + مشتری" (بنابراین شخص‌سوم باید یک مشتری احتمالی یا یک مشتری باشد و نمی‌تواند هر دو با هم باشد) MAIN_OPTIMIZEFORTEXTBROWSER=ساده‌کردن رابط‌کاربری برای افراد نابینا MAIN_OPTIMIZEFORTEXTBROWSERDesc=این گزینه برای افراد نابینتا استفاده می‌شود یا این‌که از برنامه از یک مرورگر نوشتاری همانند Lynx یا Links استفاده می‌نمائید. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=این مقدار می‌تواند توسط هر کاربر از صفحۀ کاربری مربوطه و زبانۀ '%s' مورد بازنویسی قرار گیرد DefaultCustomerType=نوع پیش‌فرض شخص‌سوم در برگۀ ساخت "مشتری جدید" ABankAccountMustBeDefinedOnPaymentModeSetup=توجه: برای این‌که این قابلیت کار کند، حساب بانکی باید در تنظیمات هر واحد مربوط به پرداخت تعریف شود (Paypal، Stripe و غیره) @@ -1911,7 +1918,7 @@ LogsLinesNumber=تعداد سطور نمایش داده شده در زبانۀ UseDebugBar=استفاده از نوار اشکال‌یابی DEBUGBAR_LOGS_LINES_NUMBER=تعداد آخرین سطور گزارش‌کار برای حفظ در کنسول WarningValueHigherSlowsDramaticalyOutput=هشدار! مقادیر بزرگ خروجی را به‌شدت کند می‌کند -DebugBarModuleActivated=واحد نوار اشکال‌یابی فعال شده و رابط کاربری را به شدت کند می‌کند +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=اشکال صادارات با همگان به اشتراک گذاشته شدند ExportSetup=برپاسازی واحد صادرات InstanceUniqueID=شناسۀ منحصر به‌فرد نمونه @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=شما آن را بر حساب IFTTT خود پی EndPointFor=نقطۀ آخر برای %s : %s DeleteEmailCollector=حذف جمع‌آورندۀ رایانامه ConfirmDeleteEmailCollector=آیا مطمئن هستید می‌خواهید این جمع‌آورندۀ رایانامه را حذف کنید؟ +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/fa_IR/bills.lang b/htdocs/langs/fa_IR/bills.lang index 42ecb831c69..04c90025c64 100644 --- a/htdocs/langs/fa_IR/bills.lang +++ b/htdocs/langs/fa_IR/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=پرداخت بیشتر از یادآوری بر HelpPaymentHigherThanReminderToPay=توجه! مبلغ پرداخت یک یا چند صورت‌حساب پرداختی بیش از مبلغ قابل پرداخت است.
ورودی خود را ویرایش نمائید، در غیر این‌صورت ساخت یک یادداشت اعتباری را برای مبلغ اضافی دریافت شده برای هر صورت‌حساب را بررسی و تائید کنید. HelpPaymentHigherThanReminderToPaySupplier=توجه! مبلغ پرداخت یک یا چند صورت‌حساب پرداختی بیش از مبلغ قابل پرداخت است.
ورودی خود را ویرایش نمائید، در غیر این‌صورت ساخت یک یادداشت اعتباری را برای مبلغ اضافی پرداخت شده برای هر صورت‌حساب را بررسی و تائید کنید. ClassifyPaid=طبقه‌بندی "پرداخت شده" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=طبقه‌بندی "پرداخت ناقص " ClassifyCanceled=طبقه‌بندی "معلق" ClassifyClosed=طبقه‌بندی "بسته شده" @@ -214,6 +215,20 @@ ShowInvoiceReplace=نمایش صورت‌حساب جایگزین ShowInvoiceAvoir=نمایش یادداشت اعتباری ShowInvoiceDeposit=نمایش صورت‌حساب پیش‌پرداخت ShowInvoiceSituation=نمایش صورت‌حساب وضعیت +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=نمایش پرداخت AlreadyPaid=قبلا پرداخت‌شده است AlreadyPaidBack=مبلغ قبلا بازگردانده شده است diff --git a/htdocs/langs/fa_IR/errors.lang b/htdocs/langs/fa_IR/errors.lang index dd314e4657f..b93c42f3fd8 100644 --- a/htdocs/langs/fa_IR/errors.lang +++ b/htdocs/langs/fa_IR/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=نویسه‌های خاص در بخش "%s" ErrorNumRefModel=در پایگاه‌داده ( %s ) یک ارجاع وجود دارد و با این قواعد شماره‌دهی همخوان نیست. ردیف مربوطه را حذف کرده یا ارجاع را تغییرنام دهید تا این واحد فعال شود ErrorQtyTooLowForThisSupplier=تعداد برای این فروشنده بیش‌ازحد پائین است یا این‌که برای این محصول مبلغی در خصوص این فروشنده تعریف نشده است ErrorOrdersNotCreatedQtyTooLow=برخی از سفارش‌ها ساخته نشدند چون تعداد‌ها کم‌تر از حد مطلوب بود -ErrorModuleSetupNotComplete=برپاسازی این واحد ناقص به نظر می‌رسد. به بخش خانه - برپاسازی - واحدها رفته تا تکمیل کنید +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=خطا در ماسک ErrorBadMaskFailedToLocatePosOfSequence=خطا، ماسک بدون عدد متوالی ErrorBadMaskBadRazMonth=خطا، مقدار نادرست بازنشانی @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=نشانی اینترنتی %s باید با http://  ErrorNewRefIsAlreadyUsed=خطا، ارجاع جدید قبلا استفاده شده است ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=یک گذرواژه برای این عضو تنظیم شده است. با این‌حال هیچ حساب کاربری‌ای ساخته نشده است. بنابراین این گذرواژه برای ورود به Dolibarr قابل استفاده نیست. ممکن است برای یک رابط/واحد بیرونی قابل استفاده باشد، اما اگر شما نخواهید هیچ نام کاربری ورود و گذرواژه‌ای برای یک عضو استفاده کنید، شما می‌توانید گزینۀ "ایجاد یک نام‌ورد برای هر عضو" را از برپاسازی واحد اعضاء غیرفعال کنید. در صورتی که نیاز دارید که نام‌ورود داشته باشید اما گذرواژه نداشته باشید، می‌توانید این بخش را خالی گذاشته تا از این هشدار بر حذر باشید. نکته: همچنین نشانی رایانامه می‌تواند در صورتی که عضو به یک‌کاربر متصل باشد، می‌‌تواند مورد استفاده قرار گیرد WarningMandatorySetupNotComplete=این گزینه را برای برپاسازی مؤلفه‌های الزامی کلیک کنید WarningEnableYourModulesApplications=این گزینه را برای فعال کردن واحدها و برنامه‌های مختلف کلیک کنید diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang index e5d0d766ec5..e9c00db19c4 100644 --- a/htdocs/langs/fa_IR/main.lang +++ b/htdocs/langs/fa_IR/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=طرف‌های‌تماس/نشانی‌های ای AddressesForCompany=نشانی‌های این شخص‌سوم ActionsOnCompany=روی‌دادهای مربوط به این شخص سوم ActionsOnContact=روی‌دادهای مربوط به این طرف‌تماس/نشانی +ActionsOnContract=Events for this contract ActionsOnMember=روی‌دادهای مربوط به این عضو ActionsOnProduct=روی‌دادهای مربوط به این محصول NActionsLate=%s دیرتر @@ -759,6 +760,7 @@ LinkToSupplierProposal=پیوند به پیشنهاد فروشنده LinkToSupplierInvoice=پیوند به صورت‌حساب فروشنده LinkToContract=پیوند به قرارداد LinkToIntervention=پیوند به واسطه‌گری +LinkToTicket=Link to ticket CreateDraft=ساخت پیش‌نویس SetToDraft=بازگشت به پیش‌نویس ClickToEdit=کلیک برای ویرایش diff --git a/htdocs/langs/fa_IR/products.lang b/htdocs/langs/fa_IR/products.lang index 9dd30c1eec9..c6ef6261d7b 100644 --- a/htdocs/langs/fa_IR/products.lang +++ b/htdocs/langs/fa_IR/products.lang @@ -2,6 +2,7 @@ ProductRef=ارجاع محصول ProductLabel=برچسب محصول ProductLabelTranslated=برچسب ترجمه‌شدۀ محصول +ProductDescription=Product description ProductDescriptionTranslated=توضیحات ترجمه‌شدۀ محصول ProductNoteTranslated=یادداشت ترجمه‌شدۀ محصول ProductServiceCard=کارت محصولات/خدمات diff --git a/htdocs/langs/fa_IR/stripe.lang b/htdocs/langs/fa_IR/stripe.lang index 767799961bc..37f1d42fb57 100644 --- a/htdocs/langs/fa_IR/stripe.lang +++ b/htdocs/langs/fa_IR/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/fa_IR/withdrawals.lang b/htdocs/langs/fa_IR/withdrawals.lang index 097d8c7ddf7..c64b0dd3fba 100644 --- a/htdocs/langs/fa_IR/withdrawals.lang +++ b/htdocs/langs/fa_IR/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=فایل برداشت SetToStatusSent=تنظیم به وضعیت "فایل ارسال شد" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/fi_FI/accountancy.lang b/htdocs/langs/fi_FI/accountancy.lang index 96ae44884fd..3c32acbda77 100644 --- a/htdocs/langs/fi_FI/accountancy.lang +++ b/htdocs/langs/fi_FI/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Kirjanpitotilityypit AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Luonto +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Myynti AccountingJournalType3=Ostot @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index bcf1f3161f8..636b3f07ac7 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -574,7 +574,7 @@ Module510Name=Palkat Module510Desc=Record and track employee payments Module520Name=Lainat Module520Desc=Lainojen hallinnointi -Module600Name=Ilmoitukset +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Varoitus, joissakin Linux-järjestelmissä, lähettää sähköpostia sähköpostisi, sendmail toteuttaminen setup on conatins optio-ba (parametri mail.force_extra_parameters tulee php.ini tiedosto). Jos jotkut vastaanottajat eivät koskaan vastaanottaa sähköposteja, yrittää muokata tätä PHP parametrin mail.force_extra_parameters =-ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Hakuoptimointi -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug ladattu -XCacheInstalled=XCache ladattu +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/fi_FI/bills.lang b/htdocs/langs/fi_FI/bills.lang index 3528ca862ab..6a0a6bdbac9 100644 --- a/htdocs/langs/fi_FI/bills.lang +++ b/htdocs/langs/fi_FI/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Maksu korkeampi kuin muistutus maksaa HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Luokittele "Maksettu" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Luokittele "Osittain maksettu" ClassifyCanceled=Luokittele "Hylätty" ClassifyClosed=Luokittele "Suljettu" @@ -214,6 +215,20 @@ ShowInvoiceReplace=Näytä korvaa lasku ShowInvoiceAvoir=Näytä menoilmoitus ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Näytä tilannetilasku +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Näytä maksu AlreadyPaid=Jo maksanut AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/fi_FI/errors.lang b/htdocs/langs/fi_FI/errors.lang index 3806c084457..326aa5f7cc2 100644 --- a/htdocs/langs/fi_FI/errors.lang +++ b/htdocs/langs/fi_FI/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Erikoismerkkejä ei sallita kentän "%s" ErrorNumRefModel=Viittaus olemassa otetaan tietokantaan (%s) ja ei ole yhteensopiva tämän numeroinnin sääntöä. Poista levy tai nimen viittaus aktivoida tämän moduulin. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Virhe naamio ErrorBadMaskFailedToLocatePosOfSequence=Virhe, maski ilman järjestysnumeroa ErrorBadMaskBadRazMonth=Virhe, huono palautus arvo @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/fi_FI/main.lang b/htdocs/langs/fi_FI/main.lang index 48580ad7667..6667c78b2ab 100644 --- a/htdocs/langs/fi_FI/main.lang +++ b/htdocs/langs/fi_FI/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Sidosryhmien kontaktit/osoitteet AddressesForCompany=Sidosryhmien osoitteet ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Jäsenen tapahtumat ActionsOnProduct=Tapahtumat tästä tuotteesta NActionsLate=%s myöhässä @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Linkki Sopimuksiin LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Luo luonnos SetToDraft=Palaa luonnokseen ClickToEdit=Klikkaa muokataksesi diff --git a/htdocs/langs/fi_FI/products.lang b/htdocs/langs/fi_FI/products.lang index d8c06ce88b4..b7b9c98dde6 100644 --- a/htdocs/langs/fi_FI/products.lang +++ b/htdocs/langs/fi_FI/products.lang @@ -2,6 +2,7 @@ ProductRef=Tuote nro. ProductLabel=Tuotenimike ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Tuotteet / Palvelut kortti diff --git a/htdocs/langs/fi_FI/stripe.lang b/htdocs/langs/fi_FI/stripe.lang index 4418dc1f5e8..d3845bed9e3 100644 --- a/htdocs/langs/fi_FI/stripe.lang +++ b/htdocs/langs/fi_FI/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/fi_FI/withdrawals.lang b/htdocs/langs/fi_FI/withdrawals.lang index 1c301fffe55..1819f200b56 100644 --- a/htdocs/langs/fi_FI/withdrawals.lang +++ b/htdocs/langs/fi_FI/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/fr_BE/accountancy.lang b/htdocs/langs/fr_BE/accountancy.lang index 30535d01188..1071dd5c68b 100644 --- a/htdocs/langs/fr_BE/accountancy.lang +++ b/htdocs/langs/fr_BE/accountancy.lang @@ -7,4 +7,3 @@ ErrorDebitCredit=Débit et crédit ne peuvent pas être non-nuls en même temps TotalMarge=Marge de ventes totale Selectmodelcsv=Sélectionnez un modèle d'export Modelcsv_normal=Export classique -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. diff --git a/htdocs/langs/fr_BE/admin.lang b/htdocs/langs/fr_BE/admin.lang index 3090455190b..7d99260c310 100644 --- a/htdocs/langs/fr_BE/admin.lang +++ b/htdocs/langs/fr_BE/admin.lang @@ -16,7 +16,9 @@ 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 +Module600Name=Notifications on business event Target=Objectif -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications OperationParamDesc=Define values to use for action, or how to extract values. For example:
objproperty1=SET:abc
objproperty1=SET:a value with replacement of __objproperty1__
objproperty3=SETIFEMPTY:abc
objproperty4=EXTRACT:HEADER:X-Myheaderkey.*[^\\s]+(.*)
options_myextrafield=EXTRACT:SUBJECT:([^\\s]*)
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/withdrawals.lang b/htdocs/langs/fr_BE/withdrawals.lang index eb336cadcc0..305bdf13d8e 100644 --- a/htdocs/langs/fr_BE/withdrawals.lang +++ b/htdocs/langs/fr_BE/withdrawals.lang @@ -1,2 +1,3 @@ # Dolibarr language file - Source file is en_US - withdrawals StatusTrans=Envoyé +RUM=Unique Mandate Reference (UMR) diff --git a/htdocs/langs/fr_CA/accountancy.lang b/htdocs/langs/fr_CA/accountancy.lang index f7069e0d730..b509e180e22 100644 --- a/htdocs/langs/fr_CA/accountancy.lang +++ b/htdocs/langs/fr_CA/accountancy.lang @@ -102,7 +102,6 @@ ErrorAccountingJournalIsAlreadyUse=Ce journal est déjà utilisé ChartofaccountsId=Carte comptable Id InitAccountancy=Compabilité initiale DefaultBindingDesc=Cette page peut être utilisée pour définir un compte par défaut à utiliser pour lier l'historique des transactions sur les salaires de paiement, le don, les taxes et la TVA lorsque aucun compte comptable spécifique n'a été défini. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. OptionModeProductSell=Mode de ventes OptionModeProductBuy=Mode d'achats OptionModeProductSellDesc=Afficher tous les produits avec compte comptable pour les ventes. diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang index fa8441ff760..69ce614e588 100644 --- a/htdocs/langs/fr_CA/admin.lang +++ b/htdocs/langs/fr_CA/admin.lang @@ -89,6 +89,7 @@ WatermarkOnDraftExpenseReports=Filigrane sur les projets de rapports de dépense Module0Desc=Gestion des utilisateurs / employés et des groupes Module42Desc=Installations de journalisation (fichier, syslog, ...). Ces journaux sont à des fins techniques / de débogage. Module75Name=Notes de frais et déplacements +Module600Name=Notifications on business event Module2400Name=Evénements / Agenda Module2600Name=services API / Web ( serveur SOAP ) Module2600Desc=Active le serveur de Web Services de Dolibarr @@ -198,9 +199,9 @@ DeleteFiscalYear=Supprimer la période comptable ConfirmDeleteFiscalYear=Êtes-vous sûr de supprimer cette période comptable? ShowFiscalYear=Afficher la période comptable SalariesSetup=Configuration du module salariés -ListOfNotificationsPerUser=Liste des notifications par utilisateur * -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications ConfFileMustContainCustom=L'installation ou la construction d'un module externe à partir de l'application doit sauvegarder les fichiers du module dans le répertoire %s. Pour que ce répertoire soit traité par Dolibarr, vous devez configurer votre conf / conf.php pour ajouter les 2 lignes de directive:
$ dolibarr_main_url_root_alt = '/ custom';
$ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de table lorsque déplacement de la souris passe au-dessus PressF5AfterChangingThis=Appuyez sur CTRL + F5 sur le clavier ou effacez votre cache de navigateur après avoir changé cette valeur pour l'avoir efficace diff --git a/htdocs/langs/fr_CA/errors.lang b/htdocs/langs/fr_CA/errors.lang index 3f76316e170..967bf583d1c 100644 --- a/htdocs/langs/fr_CA/errors.lang +++ b/htdocs/langs/fr_CA/errors.lang @@ -57,7 +57,6 @@ ErrorPasswordsMustMatch=Les deux mots de passe dactylographiés doivent correspo ErrorFileIsInfectedWithAVirus=Le programme antivirus n'a pas pu valider le fichier (le fichier peut être infecté par un virus) ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas autorisés pour le champ "%s" ErrorNumRefModel=Une référence existe dans la base de données (%s) et n'est pas compatible avec cette règle de numérotation. Supprimez l'enregistrement ou la renommée référence pour activer ce module. -ErrorModuleSetupNotComplete=La configuration du module semble être inachevée. Allez sur Accueil - Configuration - Modules à compléter. ErrorBadMaskBadRazMonth=Erreur, mauvaise valeur de réinitialisation ErrorCounterMustHaveMoreThan3Digits=Le compteur doit avoir plus de 3 chiffres ErrorProdIdAlreadyExist=%s est affecté à un autre tiers diff --git a/htdocs/langs/fr_CA/withdrawals.lang b/htdocs/langs/fr_CA/withdrawals.lang index 722d0dc02df..d8dc0f4bd1a 100644 --- a/htdocs/langs/fr_CA/withdrawals.lang +++ b/htdocs/langs/fr_CA/withdrawals.lang @@ -11,17 +11,16 @@ WithdrawalsLines=Lignes de commande de débit direct RequestStandingOrderToTreat=Demande d'ordonnance de paiement de débit direct à traiter RequestStandingOrderTreated=Demande d'ordonnance de paiement par prélèvement automatique traitée NotPossibleForThisStatusOfWithdrawReceiptORLine=Pas encore possible. L'état de retrait doit être défini sur 'crédité' avant de déclarer le rejet sur des lignes spécifiques. -NbOfInvoiceToWithdrawWithInfo=Nb. De la facture du client avec des ordres de paiement de débit direct ayant des informations définies sur le compte bancaire InvoiceWaitingWithdraw=Facture en attente de débit direct AmountToWithdraw=Montant à retirer WithdrawsRefused=Débit direct refusé NoInvoiceToWithdraw=Aucune facture de client avec Open 'Demandes de débit direct' est en attente. Allez sur l'onglet '%s' sur la carte de facture pour faire une demande. +WithdrawalsSetup=Configuration du paiement par débit direct WithdrawStatistics=Statistiques de paiement par débit direct WithdrawRejectStatistics=Statistiques de rejet de paiement par débit direct LastWithdrawalReceipt=Derniers %s reçus de débit direct MakeWithdrawRequest=Faire une demande de paiement par prélèvement automatique WithdrawRequestsDone=%s demandes de paiement par prélèvement automatique enregistrées -ThirdPartyBankCode=Code bancaire tiers ClassCreditedConfirm=Êtes-vous sûr de vouloir classer ce reçu de retrait comme crédité sur votre compte bancaire? WithdrawalRefused=Retrait refusée WithdrawalRefusedConfirm=Êtes-vous sûr de vouloir introduire un rejet de retrait pour la société? @@ -38,7 +37,6 @@ StatusMotif0=Non spécifié StatusMotif1=Fonds insuffisants StatusMotif2=Demande contestée StatusMotif3=Aucune ordonnance de paiement par prélèvement automatique -StatusMotif4=Commande du client StatusMotif5=RIB inutilisable StatusMotif6=Compte sans solde StatusMotif8=Autre raison @@ -49,15 +47,13 @@ NotifyCredit=Crédit de retrait NumeroNationalEmetter=Numéro national de l'émetteur WithBankUsingRIB=Pour les comptes bancaires utilisant RIB WithBankUsingBANBIC=Pour les comptes bancaires utilisant IBAN / BIC / SWIFT -BankToReceiveWithdraw=Compte bancaire pour recevoir des débits directs CreditDate=Crédit sur WithdrawalFileNotCapable=Impossible de générer un fichier de retrait de retrait pour votre pays %s (Votre pays n'est pas pris en charge) -ShowWithdraw=Afficher le retrait -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Toutefois, si la facture a au moins un paiement de retrait non encore traité, elle ne sera pas définie comme payée pour permettre la gestion préalable du retrait. DoStandingOrdersBeforePayments=Cet onglet vous permet de demander une commande de paiement par prélèvement automatique. Une fois terminé, accédez au menu Banque-> Ordres de débit direct pour gérer l'ordre de paiement de débit direct. Lorsque la commande de paiement est fermée, le paiement sur facture sera automatiquement enregistré et la facture sera fermée si le solde à payer est nul. WithdrawalFile=Fichier de retrait SetToStatusSent=Définir le statut "Fichier envoyé" StatisticsByLineStatus=Statistiques par état des lignes +RUM=Unique Mandate Reference (UMR) RUMLong=Référence de mandat unique WithdrawMode=Mode de débit direct (FRST ou RECUR) WithdrawRequestAmount=Montant de la demande de débit direct: @@ -66,11 +62,9 @@ SepaMandate=Mandat de débit direct SEPA PleaseReturnMandate=Veuillez renvoyer ce formulaire de mandat par courrier électronique à %s ou par courrier à SEPALegalText=En signant ce formulaire de mandat, vous autorisez (A) %s à envoyer des instructions à votre banque pour débiter votre compte et (B) votre banque pour débiter votre compte conformément aux instructions de %s. Dans le cadre de vos droits, vous avez droit à un remboursement de votre banque selon les termes et conditions de votre contrat avec votre banque. Un remboursement doit être demandé dans les 8 semaines à partir de la date à laquelle votre compte a été débité. Vos droits concernant le mandat ci-dessus sont expliqués dans un état que vous pouvez obtenir auprès de votre banque. CreditorIdentifier=Identificateur du créancier -CreditorName=Nom du créancier SEPAFillForm=(B) Veuillez compléter tous les champs marqués * SEPAFormYourBAN=Votre nom de compte bancaire (IBAN) SEPAFormYourBIC=Votre code d'identification de banque (BIC) -ModeRECUR=Paiement récurrent ModeFRST=Paiement unique PleaseCheckOne=Veuillez cocher un seul InfoCreditSubject=Paiement de l'ordre de paiement de débit direct %s par la banque diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index de6f26337d7..0150ff7d017 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -246,7 +246,7 @@ ValidateHistory=Lier automatiquement AutomaticBindingDone=Liaison automatique faite ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas détruire de compte comptable car il est utilisé -MvtNotCorrectlyBalanced=Mouvement non équilibré. Débit = %s| Crébit = %s +MvtNotCorrectlyBalanced=Mouvement non équilibré. Débit = %s| Crédit = %s Balancing=Équilibrage FicheVentilation=Fiche lien GeneralLedgerIsWritten=Les transactions sont enregistrées dans le grand livre @@ -265,7 +265,7 @@ AccountingJournals=Journaux comptables AccountingJournal=Journal comptable NewAccountingJournal=Nouveau journal comptable ShowAccoutingJournal=Afficher le journal -Nature=Nature +NatureOfJournal=Nature du journal AccountingJournalType1=Opérations diverses AccountingJournalType2=Ventes AccountingJournalType3=Achats @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export vers Quadratus QuadraCompta Modelcsv_ebp=Export vers EBP Modelcsv_cogilog=Export vers Cogilog Modelcsv_agiris=Export vers Agiris +Modelcsv_LDCompta=Export pour LD Compta (v9 et supérieur) (Test) Modelcsv_openconcerto=Export pour OpenConcerto (Test) Modelcsv_configurable=Export configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Id plan comptable InitAccountancy=Initialisation comptabilité InitAccountancyDesc=Cette page peut être utilisée pour initialiser un compte comptable sur les produits et services qui ne disposent pas de compte comptable défini pour les ventes et les achats. DefaultBindingDesc=Cette page peut être utilisée pour définir un compte par défaut à utiliser pour la ventilation des transactions sur le paiement des salaires, les dons, les charges sociales et fiscales et la TVA lorsqu'aucun compte spécifique n'a été défini. -DefaultClosureDesc=Cette page peut être utilisée pour définir les paramètres pour clore un bilan. +DefaultClosureDesc=Cette page peut être utilisée pour définir les paramètres pour une cloture comptable. Options=Options OptionModeProductSell=Mode ventes OptionModeProductSellIntra=Mode ventes exportées dans la CEE diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 3276f9c1312..ea029762214 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaires Module510Desc=Enregistrer et suivre le paiement des salaires des employés Module520Name=Emprunts Module520Desc=Gestion des emprunts -Module600Name=Notifications +Module600Name=Notifications sur les évênements métiers Module600Desc=Envoi de notifications par e-mails déclenchées par des événements métiers: par utilisateur (configuration faite sur chaque fiche utilisateur), par contact de tiers (configuration faite sur chaque fiche tiers) ou vers des adresses e-mails spécifiques. Module600Long=Notez que ce module est dédié à l'envoi d'e-mails en temps réel lorsqu'un événement métier dédié se produit. Si vous cherchez une fonctionnalité pour envoyer des rappels par email de vos événements agenda, allez dans la configuration du module Agenda. Module610Name=Variantes de produits @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Attributs supplémentaires (commandes) ExtraFieldsSupplierInvoices=Attributs supplémentaires (factures) ExtraFieldsProject=Attributs supplémentaires (projets) ExtraFieldsProjectTask=Attributs supplémentaires (tâches) +ExtraFieldsSalaries=Attributs complémentaires (salaires) ExtraFieldHasWrongValue=L'attribut %s a une valeur incorrecte. AlphaNumOnlyLowerCharsAndNoSpace=uniquement des caractères alphanumériques et en minuscule sans espace SendmailOptionNotComplete=Attention, sur certains systèmes Linux, avec cette méthode d'envoi, pour pouvoir envoyer des emails en votre nom, la configuration d'exécution de sendmail doit contenir l'option -ba (paramètre mail.force_extra_parameters dans le fichier php.ini). Si certains de vos destinataires ne reçoivent pas de message, essayer de modifier ce paramètre PHP avec mail.force_extra_parameters = -ba. @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Stockage des sessions chiffrées par Suhosin ConditionIsCurrently=La condition est actuellement %s YouUseBestDriver=Vous utilisez le driver %s qui est le driver recommandé actuellement. YouDoNotUseBestDriver=Vous utilisez le pilote %s mais le pilote %s est recommandé. -NbOfProductIsLowerThanNoPb=Vous avez uniquement %s produits / services dans la base de données. Cela ne nécessite aucune optimisation particulière. +NbOfObjectIsLowerThanNoPb=Vous avez seulement %s %s dans la base de données. Cela ne nécessite aucune optimisation particulière. SearchOptim=Optimisation des recherches -YouHaveXProductUseSearchOptim=Vous avez des produits %s dans la base de données. Vous devez ajouter la constante PRODUCT_DONOTSEARCH_ANYWHERE à 1 dans Home-Setup-Other. Limitez la recherche au début des chaînes, ce qui permet à la base de données d'utiliser des index et vous devez obtenir une réponse immédiate. +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. +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. -XDebugInstalled=XDebug est chargé. -XCacheInstalled=XCache est chargé. +PHPModuleLoaded=Le composant PHP %s est chargé +PreloadOPCode=Le code OP préchargé est utilisé AddRefInList=Afficher les références client/fournisseur dans les listes (listes déroulantes ou à autocomplétion) et les libellés des liens clicables.
Les tiers apparaîtront alors sous la forme "CC12345 - SC45678 - La big company coorp", au lieu de "La big company coorp". AddAdressInList=Affiche les informations sur l’adresse du client/fournisseur (liste de sélection ou liste déroulante)
Les tiers apparaîtront avec le format de nom suivant: "The Big Company corp. - 21, rue du saut 123456 Big town - USA" au lieu de "The Big Company corp". AskForPreferredShippingMethod=Demander la méthode d'expédition préférée pour les Tiers @@ -1328,7 +1330,7 @@ AdherentLoginRequired= Gérer un identifiant pour chaque adhérent AdherentMailRequired=Email obligatoire pour créer un nouvel adhérent MemberSendInformationByMailByDefault=Case à cocher pour envoyer un email de confirmation (validation ou nouvelle cotisation) aux adhérents est à oui par défaut. VisitorCanChooseItsPaymentMode=Le visiteur peut choisir parmi les modes de paiement disponibles -MEMBER_REMINDER_EMAIL=Activer le rappel automatique par e-mail des abonnements expirés. Remarque: le module %s doit être activé et configuré correctement pour qu'un rappel soit envoyé. +MEMBER_REMINDER_EMAIL=Activer le rappel automatique par e-mail des adhésions expirées. Remarque: le module %s doit être activé et configuré correctement pour qu'un rappel soit envoyé. ##### LDAP setup ##### LDAPSetup=Configuration du module LDAP LDAPGlobalParameters=Paramètres globaux @@ -1734,8 +1736,8 @@ ExpenseReportsRulesSetup=Configuration du module Notes de frais - Règles ExpenseReportNumberingModules=Modèle de numérotation des notes de frais NoModueToManageStockIncrease=Aucun module capable d'assurer l'augmentation de stock en automatique a été activé. La réduction de stock se fera donc uniquement sur mise à jour manuelle. YouMayFindNotificationsFeaturesIntoModuleNotification=Vous pouvez trouver d'autres options pour la notification par Email en activant et configurant le module "Notification". -ListOfNotificationsPerUser=Liste des notifications par utilisateur* -ListOfNotificationsPerUserOrContact=Liste des notifications par utilisateur* ou par contact** +ListOfNotificationsPerUser=Liste des notifications automatiques par utilisateur* +ListOfNotificationsPerUserOrContact=Liste des notifications automatiques (sur les évênements métiers) par utilisateur* ou par contact** ListOfFixedNotifications=Liste des notifications emails fixes GoOntoUserCardToAddMore=Allez dans l'onglet "Notifications" d'un utilisateur pour ajouter ou supprimer des notifications pour les utilisateurs GoOntoContactCardToAddMore=Rendez-vous sur l'onglet "Notifications" d'un tiers pour ajouter ou enlever les notifications pour les contacts/adresses @@ -1898,6 +1900,11 @@ OnMobileOnly=Sur petit écran (smartphone) uniquement DisableProspectCustomerType=Désactiver le type de tiers "Prospect + Client" (le tiers doit donc être un client potentiel ou un client, mais ne peut pas être les deux) MAIN_OPTIMIZEFORTEXTBROWSER=Simplifier l'interface pour les malvoyants MAIN_OPTIMIZEFORTEXTBROWSERDesc=Activez cette option si vous êtes une personne malvoyante ou utilisez l'application à partir d'un navigateur de texte tel que Lynx ou Links. +MAIN_OPTIMIZEFORCOLORBLIND=Changer la couleur de l'interface pour daltoniens +MAIN_OPTIMIZEFORCOLORBLINDDesc=Activez cette option si vous êtes daltonien. Dans certains cas, l'interface changera la configuration des couleurs pour augmenter le contraste. +Protanopia=Protanopia +Deuteranopes=Deutéranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Cette valeur peut être écrasée par chaque utilisateur à partir de sa page utilisateur - onglet '%s' DefaultCustomerType=Type de tiers par défaut pour un "Nouveau client" dans le formulaire de création ABankAccountMustBeDefinedOnPaymentModeSetup=Remarque: Le compte bancaire doit être défini sur le module de chaque mode de paiement (Paypal, Stripe, ...) pour que cette fonctionnalité fonctionne. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Nombre de lignes à afficher dans l'onglet des logs UseDebugBar=Utilisez la barre de débogage DEBUGBAR_LOGS_LINES_NUMBER=Nombre de dernières lignes de logs à conserver dans la console WarningValueHigherSlowsDramaticalyOutput=Attention, les valeurs élevées ralentissent considérablement les affichages -DebugBarModuleActivated=Le module debugbar est activé et ralentit considérablement l'interface +ModuleActivated=Le module %s est activé et ralentit l'interface EXPORTS_SHARE_MODELS=Les modèles d'exportation sont partagés avec tout le monde ExportSetup=Configuration du module Export InstanceUniqueID=ID unique de l'instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=Vous le trouverez sur votre compte IFTTT EndPointFor=Endpoint pour %s: %s DeleteEmailCollector=Supprimer le collecteur d'email ConfirmDeleteEmailCollector=Êtes-vous sûr de vouloir supprimer ce collecteur d'email ? +RecipientEmailsWillBeReplacedWithThisValue=Les emails des destinataires seront toujours remplacés par cette valeur +AtLeastOneDefaultBankAccountMandatory=Au moins 1 compte bancaire par défaut doit être défini diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index e187aa037c3..84bd47e9d93 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -55,9 +55,9 @@ MemberValidatedInDolibarr=Adhérent %s validé MemberModifiedInDolibarr=Adhérent %s modifié MemberResiliatedInDolibarr=Adhérent %s résilié MemberDeletedInDolibarr=Adhérent %s supprimé -MemberSubscriptionAddedInDolibarr=Adhésion %s pour l'adhérent %s ajoutée -MemberSubscriptionModifiedInDolibarr=Abonnement %s pour l'adhérent %s modifié -MemberSubscriptionDeletedInDolibarr=Abonnement %s pour l'adhérent %s supprimé +MemberSubscriptionAddedInDolibarr=Cotisation %s pour l'adhérent %s ajoutée +MemberSubscriptionModifiedInDolibarr=Cotisation %s pour l'adhérent %s modifié +MemberSubscriptionDeletedInDolibarr=Cotisation %s pour l'adhérent %s supprimé ShipmentValidatedInDolibarr=Expédition %s validée ShipmentClassifyClosedInDolibarr=Expédition %s classée payée ShipmentUnClassifyCloseddInDolibarr=Expédition %s réouverte diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index ca251ed0d93..fefc478c146 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -95,8 +95,8 @@ PaymentHigherThanReminderToPay=Règlement supérieur au reste à payer HelpPaymentHigherThanReminderToPay=Attention, le montant de paiement pour une ou plusieurs factures est supérieur au reste à payer.
Corrigez votre saisie, sinon, confirmez et pensez à créer un avoir du trop perçu lors de la fermeture de chacune des factures surpayées. HelpPaymentHigherThanReminderToPaySupplier=Attention, le montant de paiement pour une ou plusieurs factures est supérieur au reste à payer.
Corrigez votre saisie, sinon, confirmez et pensez à créer un avoir pour l'excédent pour chaque facture surpayée. ClassifyPaid=Classer 'Payée' +ClassifyUnPaid=Classer 'impayé' ClassifyPaidPartially=Classer 'Payée partiellement' -ClassifyUnPaid=Classer 'Non payée' ClassifyCanceled=Classer 'Abandonnée' ClassifyClosed=Classer 'Fermée' ClassifyUnBilled=Classer 'Non facturée' @@ -215,6 +215,20 @@ ShowInvoiceReplace=Afficher facture de remplacement ShowInvoiceAvoir=Afficher facture d'avoir ShowInvoiceDeposit=Afficher facture d'acompte ShowInvoiceSituation=Afficher la facture de situation +UseSituationInvoices=Autoriser les factures de situation +UseSituationInvoicesCreditNote=Autoriser les avoirs de factures de situation +Retainedwarranty=Retenue de garantie +RetainedwarrantyDefaultPercent=Pourcentage par défaut de la retenue de garantie +ToPayOn=A payer sur %s +toPayOn=à payer sur %s +RetainedWarranty=Retenue de garantie +PaymentConditionsShortRetainedWarranty=Conditions de réglement de la retenue de garantie +DefaultPaymentConditionsRetainedWarranty=Conditions de paiement par défaut des retenues de garantie +setPaymentConditionsShortRetainedWarranty=Fixer les conditions de paiement de la retenue de garantie +setretainedwarranty=Définir la retenue de garantie +setretainedwarrantyDateLimit=Définir la date limite de retenue de garantie +RetainedWarrantyDateLimit=Date limite de retenue de garantie +RetainedWarrantyNeed100Percent=La facture de la situation doit être à 100%% progress pour être affichée sur le PDF ShowPayment=Afficher règlement AlreadyPaid=Déjà réglé AlreadyPaidBack=Déjà remboursé diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index a223f936638..b1180581b42 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis p ErrorNumRefModel=Une référence existe en base (%s) et est incompatible avec cette numérotation. Supprimez la ligne ou renommez la référence pour activer ce module. ErrorQtyTooLowForThisSupplier=Quantité insuffisante pour ce fournisseur ou aucun tarif défini sur ce produit pour ce fournisseur ErrorOrdersNotCreatedQtyTooLow=Certaines commandes n'ont pas été créées en raison de quantités trop faibles -ErrorModuleSetupNotComplete=La configuration du module '%s' semble incomplète. Aller sur la page Accueil - Configuration - Modules pour corriger. +ErrorModuleSetupNotComplete=La configuration du module %s semble incomplète. Aller sur la page Accueil - Configuration - Modules pour corriger. ErrorBadMask=Erreur sur le masque ErrorBadMaskFailedToLocatePosOfSequence=Erreur, masque sans numéro de séquence ErrorBadMaskBadRazMonth=Erreur, mauvais valeur de remise à zéro @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=L'URL %s doit commencer par http:// ou https:// ErrorNewRefIsAlreadyUsed=Erreur, la nouvelle référence est déjà utilisée ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Erreur, supprimer le paiement lié à une facture clôturée n'est pas possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Votre paramètre PHP upload_max_filesize (%s) est supérieur au paramètre PHP post_max_size (%s). Ceci n'est pas une configuration cohérente. WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur. WarningMandatorySetupNotComplete=Cliquez ici pour configurer les paramètres obligatoires WarningEnableYourModulesApplications=Cliquez ici pour activer vos modules et applications diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index 14185575b3f..822a924df1a 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/adresses de ce tiers AddressesForCompany=Adresses de ce tiers ActionsOnCompany=Événements sur ce tiers ActionsOnContact=Événements à propos de ce contact/adresse +ActionsOnContract=Événements pour ce contrat ActionsOnMember=Événements vis à vis de cet adhérent ActionsOnProduct=Événements liés au produit NActionsLate=%s en retard @@ -759,6 +760,7 @@ LinkToSupplierProposal=Lier à une proposition commerciale fournisseur LinkToSupplierInvoice=Lier à une facture fournisseur LinkToContract=Lier à un contrat LinkToIntervention=Lier à une intervention +LinkToTicket=Lien vers le ticket CreateDraft=Créer brouillon SetToDraft=Retour en brouillon ClickToEdit=Cliquer ici pour éditer diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 2d5b024df4f..dfc874bab79 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -110,8 +110,8 @@ ShowSubscription=Afficher adhésion SendingAnEMailToMember=Envoi d'informations par e-mail à un adhérent SendingEmailOnAutoSubscription=Envoi d'email lors de l'auto-inscription SendingEmailOnMemberValidation=Envoie d'email à la validation d'un nouvel adhérent -SendingEmailOnNewSubscription=Envoyer un email sur un nouvel abonnement -SendingReminderForExpiredSubscription=Envoi d'un rappel pour les abonnements expirés +SendingEmailOnNewSubscription=Envoyer un email sur une nouvelle adhésion +SendingReminderForExpiredSubscription=Envoi d'un rappel pour les adhésions expirées SendingEmailOnCancelation=Envoie d'email à l'annulation # Topic of email templates YourMembershipRequestWasReceived=Votre demande d'adhésion a été reçue. @@ -130,8 +130,8 @@ DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Sujet de l'email reçu en cas d'aut DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Email reçu en cas d'auto-inscription d'un invité DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Modèle Email à utiliser pour envoyer un email à un adhérent sur auto-adhésion de l'adhérent DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Modèle d'email à utiliser pour envoyer un email à un membre sur la validation d'un membre -DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Modèle d'email électronique à utiliser pour envoyer un courrier électronique à un membre lors de l'enregistrement d'un nouvel abonnement -DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Modèle d'email électronique à utiliser pour envoyer un rappel par courrier électronique lorsque l'abonnement est sur le point d'expirer +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Modèle d'email électronique à utiliser pour envoyer un courrier électronique à un membre lors de l'enregistrement d'une nouvelle cotisation +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Modèle d'email électronique à utiliser pour envoyer un rappel par courrier électronique lorsque l'adhésion est sur le point d'expirer DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Modèle d'email utilisé pour envoyer un email à un adhérent lors de l'annulation d'adhésion DescADHERENT_MAIL_FROM=Email émetteur pour les mails automatiques DescADHERENT_ETIQUETTE_TYPE=Format pages étiquettes diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index fe794e65446..097e2e3fc8d 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -2,6 +2,7 @@ ProductRef=Réf. produit ProductLabel=Libellé produit ProductLabelTranslated=Libellé produit traduit +ProductDescription=Description du produit ProductDescriptionTranslated=Description produit traduite ProductNoteTranslated=Traduire la note de produit ProductServiceCard=Fiche produit/service diff --git a/htdocs/langs/fr_FR/stripe.lang b/htdocs/langs/fr_FR/stripe.lang index a88a2f40c3b..1e69e280562 100644 --- a/htdocs/langs/fr_FR/stripe.lang +++ b/htdocs/langs/fr_FR/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=Compte d'utilisateur à utiliser pour certains e-mai StripePayoutList=Liste des versements par Stripe ToOfferALinkForTestWebhook=Lien pour la configuration de Stripe WebHook pour appeler l'IPN (mode test) ToOfferALinkForLiveWebhook=Lien pour la configuration de Stripe WebHook pour appeler l'IPN (mode actif) +PaymentWillBeRecordedForNextPeriod=Le paiement sera enregistré pour la prochaine période. +ClickHereToTryAgain=Cliquez ici pour essayer à nouveau... diff --git a/htdocs/langs/fr_FR/website.lang b/htdocs/langs/fr_FR/website.lang index e8a11ce5594..0bf16fbb663 100644 --- a/htdocs/langs/fr_FR/website.lang +++ b/htdocs/langs/fr_FR/website.lang @@ -39,8 +39,8 @@ ViewPageInNewTab=Pré-visualiser la page dans un nouvel onglet SetAsHomePage=Définir comme page d'accueil RealURL=URL réelle ViewWebsiteInProduction=Pré-visualiser le site web en utilisant l'URL de la page d'accueil -SetHereVirtualHost= Utilisation avec Apache/NGinx/...
Si vous pouvez créer sur votre serveur Web (Apache, Nginx, ...) un hôte virtuel dédié avec PHP activé et un répertoire racine sur
%s
alors entrez le nom de l'hôte virtuel que vous avez créé afin que l'aperçu puisse également être fait en utilisant cet accès via ce serveur Web dédié plutôt que le serveur interne Dolibarr. -YouCanAlsoTestWithPHPS= Utilisation avec un serveur PHP incorporé
Sous environnement de développement, vous pouvez préférer tester le site avec le serveur Web PHP intégré (PHP 5.5 requis) en exécutant
php -S 0.0. 0,0: 8080 -t %s +SetHereVirtualHost= Utilisation avec Apache/NGinx/...
Si vous pouvez créer sur votre serveur Web (Apache, Nginx, ...) un hôte virtuel dédié avec PHP activé et un répertoire racine sur
%s
alors entrez le nom de l'hôte virtuel que vous avez créé dans les propriétés du site, ainsi l'aperçu pourra être fait en utilisant cette URL pour un accès via le serveur Web dédié plutôt que via le serveur interne Dolibarr. +YouCanAlsoTestWithPHPS= Utilisation avec un serveur PHP incorporé
Sous environnement de développement, vous pouvez préférer tester le site avec le serveur Web PHP intégré (PHP 5.5 requis) en exécutant
php -S 0.0.0.0:8080 -t %s CheckVirtualHostPerms=Vérifiez également que le virtual host a la permission %s sur les fichiers dans %s ReadPerm=Lire WritePerm=Écrire diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang index 586da7253da..468cdd8b9f3 100644 --- a/htdocs/langs/fr_FR/withdrawals.lang +++ b/htdocs/langs/fr_FR/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Fichier de prélèvement SetToStatusSent=Mettre au statut "Fichier envoyé" ThisWillAlsoAddPaymentOnInvoice=Cette action enregistrera les règlements des factures et les classera au statut "Payé" si le solde est nul StatisticsByLineStatus=Statistiques par statut des lignes -RUM=RUM +RUM=Référence de Mandat Unique (RUM) +DateRUM=Date de signature du mandat RUMLong=Référence Unique de Mandat RUMWillBeGenerated=Si vide, le numéro de RUM sera généré une fois les informations de compte bancaire enregistrées WithdrawMode=Mode de prélévement (FRST ou RECUR) diff --git a/htdocs/langs/he_IL/accountancy.lang b/htdocs/langs/he_IL/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/he_IL/accountancy.lang +++ b/htdocs/langs/he_IL/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index 91d7f6f0c2c..8de440a7812 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=הודעות +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=אזהרה, על כמה מערכות לינוקס, לשלוח דוא"ל הדוא"ל שלך, הגדרת sendmail ביצוע חובה conatins אפשרות-BA (mail.force_extra_parameters פרמטר לקובץ php.ini שלך). אם מקבלי כמה לא לקבל הודעות דוא"ל, מנסה לערוך פרמטר זה PHP עם mail.force_extra_parameters =-BA). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/he_IL/bills.lang b/htdocs/langs/he_IL/bills.lang index 51e56257d26..2ee05e17cfe 100644 --- a/htdocs/langs/he_IL/bills.lang +++ b/htdocs/langs/he_IL/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/he_IL/errors.lang b/htdocs/langs/he_IL/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/he_IL/errors.lang +++ b/htdocs/langs/he_IL/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/he_IL/main.lang b/htdocs/langs/he_IL/main.lang index 8fe7834c2d0..c62afca2efb 100644 --- a/htdocs/langs/he_IL/main.lang +++ b/htdocs/langs/he_IL/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/he_IL/products.lang b/htdocs/langs/he_IL/products.lang index 304814e958e..b6228d61aea 100644 --- a/htdocs/langs/he_IL/products.lang +++ b/htdocs/langs/he_IL/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/he_IL/stripe.lang b/htdocs/langs/he_IL/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/he_IL/stripe.lang +++ b/htdocs/langs/he_IL/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/he_IL/withdrawals.lang b/htdocs/langs/he_IL/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/he_IL/withdrawals.lang +++ b/htdocs/langs/he_IL/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/hr_HR/accountancy.lang b/htdocs/langs/hr_HR/accountancy.lang index 81a9aa03a11..841716ba364 100644 --- a/htdocs/langs/hr_HR/accountancy.lang +++ b/htdocs/langs/hr_HR/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Vrsta +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Prodaja AccountingJournalType3=Nabava @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Inicijalizacija računovodstva InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opcije OptionModeProductSell=Načini prodaje OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang index 40f4dc40255..03b8897ad05 100644 --- a/htdocs/langs/hr_HR/admin.lang +++ b/htdocs/langs/hr_HR/admin.lang @@ -508,7 +508,7 @@ Module22Name=Mass Emailings Module22Desc=Manage bulk emailing Module23Name=Energija Module23Desc=Praćenje potrošnje energije -Module25Name=Sales Orders +Module25Name=Narudžbe kupaca Module25Desc=Sales order management Module30Name=Računi Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers @@ -574,7 +574,7 @@ Module510Name=Plaće Module510Desc=Record and track employee payments Module520Name=Krediti Module520Desc=Upravljanje kreditima -Module600Name=Obavijesti +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 @@ -590,7 +590,7 @@ Module1200Desc=Integracija Mantisa Module1520Name=Generiranje dokumenta Module1520Desc=Mass email document generation Module1780Name=Kategorije -Module1780Desc=Kreiraj kategoriju (proizvodi, kupci, dobavljači, kontakti ili članovi) +Module1780Desc=Izradi oznake/skupinu (proizvodi, kupci, dobavljači, kontakti ili članovi) Module2000Name=WYSIWYG editor Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html) Module2200Name=Dinamičke cijene @@ -653,21 +653,21 @@ Module62000Desc=Add features to manage Incoterms Module63000Name=Sredstva Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events Permission11=Čitaj račune kupca -Permission12=Kreiraj/promjeni račune kupca +Permission12=Izradi/promjeni račune kupca Permission13=Ne ovjeravaj račun kupca Permission14=Ovjeri račun kupca Permission15=Pošalji račun kupca e-poštom -Permission16=Kreiraj plaćanje za račune kupca +Permission16=Izradi plaćanje za račune kupca Permission19=Obriši račun kupca Permission21=Pročitaj ponude -Permission22=Kreiraj/izmjeni ponudu +Permission22=Izradi/izmjeni ponudu Permission24=Ovjeri ponudu Permission25=Pošalji ponudu Permission26=Zatvori ponudu Permission27=Obriši ponudu Permission28=Izvezi ponude Permission31=Čitaj proizvode -Permission32=Kreiraj/izmjeni proizvod +Permission32=Izradi/izmjeni proizvod Permission34=Obriši proizvod Permission36=Pregled/upravljanje skrivenim proizvodima Permission38=izvoz proizvoda @@ -676,16 +676,16 @@ Permission42=Create/modify projects (shared project and projects I'm contact for Permission44=Delete projects (shared project and projects I'm contact for) Permission45=Izvezi projekte Permission61=Čitaj intervencije -Permission62=Kreiraj/promjeni intervencije +Permission62=Izradi/promjeni intervencije Permission64=Obriši intervencije Permission67=Izvezi intervencije Permission71=Čitaj članove -Permission72=Kreiraj/izmjeni članove +Permission72=Izradi/izmjeni članove Permission74=Obriši članove -Permission75=Podešavanje tipova članarine +Permission75=Podešavanje vrsta članarine Permission76=Izvoz podataka Permission78=Čitaj pretplate -Permission79=Kreiraj/izmjeni pretplate +Permission79=Izradi/izmjeni pretplate Permission81=Čitaj narudžbe kupca Permission82=Izradi/izmjeni narudžbe kupaca Permission84=Ovjeri narudžbu kupca @@ -694,24 +694,24 @@ Permission87=Zatvori narudžbu kupca Permission88=Otkaži potvrdu Permission89=Obriši narudžbe kupaca Permission91=Čitaj društvene ili fiskalne poreze i PDV -Permission92=Kreiraj/izmjeni društvene ili fiskalne poreze i PDV +Permission92=Izradi/izmjeni društvene ili fiskalne poreze i PDV Permission93=Obriši društvene ili fiskalne poreze i PDV Permission94=Izvezi društvene ili fiskalne poreze Permission95=Čitaj izvještaje Permission101=Čitaj slanja -Permission102=Kreiraj/izmjeni slanja +Permission102=Izradi/izmjeni slanja Permission104=Ovjeri slanja Permission106=Izvezi slanja Permission109=Obriši slanja Permission111=Čitanje financijskih računa -Permission112=Kreiraj/izmjeni/obriši i usporedi transakcije +Permission112=Izradi/izmjeni/obriši i usporedi transakcije Permission113=Podešavanje financijskih računa (kreiranje, upravljanje kategorijama) Permission114=Reconcile transactions Permission115=Izvoz transakcija i izvodi Permission116=Prijenos između računa Permission117=Manage checks dispatching Permission121=Čitaj veze komitenata s korisnicima -Permission122=Kreiraj/izmjeni komitente povezane s korisnicima +Permission122=Izradi/izmjeni komitente povezane s korisnicima Permission125=Obriši komitente povezane s korisnicima Permission126=Izvezi komitente Permission141=Read all projects and tasks (also private projects for which I am not a contact) @@ -724,13 +724,13 @@ Permission152=Create/modify a direct debit payment orders Permission153=Send/Transmit direct debit payment orders Permission154=Record Credits/Rejections of direct debit payment orders Permission161=Čitaj ugovore/pretplate -Permission162=Kreiraj/izmjeni ugovore/pretplate +Permission162=Izradi/izmjeni ugovore/pretplate Permission163=Aktiviraj uslugu/pretplatu ugovora Permission164=Deaktiviraj uslugu/pretplatu ugovora Permission165=Obriši ugovore/pretplate Permission167=Izvezi ugovore Permission171=Čitaj putne naloge i troškove (vaši i vaših podređenih) -Permission172=Kreiraj/izmjeni putne naloge i troškove +Permission172=Izradi/izmjeni putne naloge i troškove Permission173=Obriši putne naloge i troškove Permission174=Čitaj sve putne naloge i troškove Permission178=Izvezi putne naloge i troškove @@ -743,10 +743,10 @@ Permission185=Order or cancel purchase orders Permission186=Receive purchase orders Permission187=Close purchase orders Permission188=Cancel purchase orders -Permission192=Kreiraj stavke +Permission192=Izradi stavke Permission193=Otkaži stavke Permission194=Read the bandwidth lines -Permission202=Kreiraj ADSL sapajanje +Permission202=Izradi ADSL sapajanje Permission203=Naruči narudžbe spajanja Permission204=Narudžba spajanja Permission205=Upravljanje spajanjima @@ -757,22 +757,22 @@ Permission213=Aktiviraj liniju Permission214=Postavke telefonije Permission215=Postavke pružatelja Permission221=Čitaj korespodenciju -Permission222=Kreiraj/izmjeni korespodenciju (teme, primatelji...) +Permission222=Izradi/izmjeni korespodenciju (teme, primatelji...) Permission223=Ovjeri korespodenciju (omogućuje slanje) Permission229=Obriši korespodenciju Permission237=Pregled primatelja i informacije Permission238=Ručno slanje korespodencije Permission239=Obriši korespodenciju nakon ovjere ili slanja Permission241=Čitaj kategorije -Permission242=Kreiraj/izmjeni kategorije +Permission242=Izradi/izmjeni kategorije Permission243=Obriši kategorije Permission244=Vidi sadržaj skrivenih kategorija Permission251=Čitaj ostale korisnike i grupe PermissionAdvanced251=Čitaj ostale korisnike Permission252=Čitaj dozvole ostalih korisnika Permission253=Create/modify other users, groups and permissions -PermissionAdvanced253=Kreiraj/izmjeni interne/vanjske korisnike i dozvole -Permission254=Kreiraj/izmjeni samo vanjske korisnike +PermissionAdvanced253=Izradi/izmjeni interne/vanjske korisnike i dozvole +Permission254=Izradi/izmjeni samo vanjske korisnike Permission255=Izmjeni lozinku ostalih korisnika Permission256=Obriši ili isključi ostale korisnike 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). @@ -780,7 +780,7 @@ Permission271=Čitaj CA Permission272=Čitaj račune Permission273=Izdaj račun Permission281=Čitaj kontakte -Permission282=Kreiraj/izmjeni kontakte +Permission282=Izradi/izmjeni kontakte Permission283=Obriši kontakte Permission286=Izvezi kontakte Permission291=Čitaj tarife @@ -792,19 +792,19 @@ Permission302=Delete barcodes Permission311=Čitaj usluge Permission312=Dodavanje usluge/pretplate ugovoru Permission331=Čitaj zabilješke -Permission332=Kreiraj/izmjeni zabilješke +Permission332=Izradi/izmjeni zabilješke Permission333=Obriši zabilješke Permission341=Čitaj svoje dozvole -Permission342=Kreiraj/izmjeni svoje korisničke informacije +Permission342=Izradi/izmjeni svoje korisničke informacije Permission343=Izmjeni svoju lozinku Permission344=Izmjeni svoje dozvole Permission351=Čitaj grupe Permission352=Čitaj dozvole grupa -Permission353=Kreiraj/izmjeni grupe +Permission353=Izradi/izmjeni grupe Permission354=Obriši ili iskljući grupe Permission358=Izvezi korisnike Permission401=Čitaj popuste -Permission402=Kreiraj/izmjeni popuste +Permission402=Izradi/izmjeni popuste Permission403=Ovjeri popuste Permission404=Obriši popuste Permission430=Use Debug Bar @@ -813,12 +813,12 @@ Permission512=Create/modify payments of salaries Permission514=Delete payments of salaries Permission517=Izvoz plaća Permission520=Čitaj kredite -Permission522=Kreiraj/izmjeni kredite +Permission522=Izradi/izmjeni kredite Permission524=Obriši kredite Permission525=Pristup kreditnom kalkulatoru Permission527=Izvoz kredita Permission531=Čitaj usluge -Permission532=Kreiraj/izmjeni usluge +Permission532=Izradi/izmjeni usluge Permission534=Obriši usluge Permission536=Vidi/upravljaj skrivenim uslugama Permission538=Izvezi usluge @@ -826,22 +826,22 @@ Permission650=Read Bills of Materials Permission651=Create/Update Bills of Materials Permission652=Delete Bills of Materials Permission701=Čitaj donacije -Permission702=Kreiraj/izmjeni donacije +Permission702=Izradi/izmjeni donacije Permission703=Obriši donacije Permission771=Čitaj izvještaje troška (vaši i vaših podređenih) -Permission772=Kreiraj/izmjeni izvještaje troška +Permission772=Izradi/izmjeni izvještaje troška Permission773=Obriši izvještaje troška Permission774=Čitaj sve izvještaje troška (čak i svoje i podređenih) Permission775=Odobri izvještaje trška Permission776=Isplati izvještaje troška Permission779=Izvezi izvještaje troška Permission1001=Čitaj zalihe -Permission1002=Kreiraj/izmjeni skladišta +Permission1002=Izradi/izmjeni skladišta Permission1003=Obriši skladišta Permission1004=Čitaj kretanja zaliha -Permission1005=Kreiraj/izmjeni kretanja zaliha +Permission1005=Izradi/izmjeni kretanja zaliha Permission1101=Čitaj naloge isporuka -Permission1102=Kreiraj/izmjeni naloge isporuka +Permission1102=Izradi/izmjeni naloge isporuka Permission1104=Ovjeri naloge isporuka Permission1109=Obriši naloge isporuka Permission1121=Read supplier proposals @@ -860,7 +860,7 @@ Permission1187=Acknowledge receipt of purchase orders Permission1188=Delete purchase orders Permission1190=Approve (second approval) purchase orders Permission1201=Primi rezultat izvoza -Permission1202=Kreiraj/izmjeni izvoz +Permission1202=Izradi/izmjeni izvoz Permission1231=Read vendor invoices Permission1232=Create/modify vendor invoices Permission1233=Validate vendor invoices @@ -873,10 +873,10 @@ Permission1321=Izvezi račune kupaca, atribute i plačanja Permission1322=Reopen a paid bill Permission1421=Export sales orders and attributes Permission2401=Čitaj akcije (događaje ili zadatke) povezanih s njegovim računom -Permission2402=Kreiraj/izmjeni akcije (događaje ili zadatke) povezanih s njegovim računom +Permission2402=Izradi/izmjeni akcije (događaje ili zadatke) povezanih s njegovim računom Permission2403=Obriši akcije (događaje ili zadatke) povezanih s njegovim računom Permission2411=Čitaj akcije (događaje ili zadatke) ostalih -Permission2412=Kreiraj/izmjeni akcije (događaje ili zadatke) ostalih +Permission2412=Izradi/izmjeni akcije (događaje ili zadatke) ostalih Permission2413=Obriši akcije (događaje ili zadatke) ostalih Permission2414=Izvezi ostale akcije/zadatke Permission2501=Čitaj/Skini dokumente @@ -901,7 +901,7 @@ Permission20004=Read all leave requests (even of user not subordinates) Permission20005=Create/modify leave requests for everybody (even of user not subordinates) Permission20006=Admin zahtjevi odsutnosti ( podešavanje i saldo ) Permission23001=Pročitaj planirani posao -Permission23002=Kreiraj/izmjeni Planirani posao +Permission23002=Izradi/izmjeni Planirani posao Permission23003=Obriši planirani posao Permission23004=Izvrši planirani posao Permission50101=Use Point of Sale @@ -922,15 +922,15 @@ Permission51003=Delete assets Permission51005=Setup types of asset Permission54001=Ispis Permission55001=Čitaj ankete -Permission55002=Kreiraj/izmjeni ankete +Permission55002=Izradi/izmjeni ankete Permission59001=Pročitaj komercijalne marže Permission59002=Postavi komercijalne marže Permission59003=Čitaj marže svakog korisnika Permission63001=Čitaj sredstva -Permission63002=Kreiraj/izmjeni sredstva +Permission63002=Izradi/izmjeni sredstva Permission63003=Obriši sredstva Permission63004=Poveži sredstava sa događajima agende -DictionaryCompanyType=Third-party types +DictionaryCompanyType=Vrste trećih osoba DictionaryCompanyJuridicalType=Third-party legal entities DictionaryProspectLevel=Potencijalni kupac DictionaryCanton=States/Provinces @@ -942,7 +942,7 @@ DictionaryActions=Tipovi događaja agende DictionarySocialContributions=Types of social or fiscal taxes DictionaryVAT=Stope PDV-a ili stope prodajnih poreza DictionaryRevenueStamp=Amount of tax stamps -DictionaryPaymentConditions=Payment Terms +DictionaryPaymentConditions=Rok plaćanja DictionaryPaymentModes=Payment Modes DictionaryTypeContact=Tipovi Kontakata/adresa DictionaryTypeOfContainer=Website - Type of website pages/containers @@ -981,13 +981,13 @@ LTRate=Stopa LocalTax1IsNotUsed=Nemoj koristit drugi porez LocalTax1IsUsedDesc=Use a second type of tax (other than first one) LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one) -LocalTax1Management=Tip drugog poreza +LocalTax1Management=Vrsta drugog poreza LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=Nemoj koristiti treći porez LocalTax2IsUsedDesc=Use a third type of tax (other than first one) LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one) -LocalTax2Management=Tip trećeg poreza +LocalTax2Management=Vrsta trećeg poreza LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES=Upravljenje RE @@ -1038,7 +1038,7 @@ Tables=Tabele TableName=Naziv tabele NbOfRecord=No. of records Host=Server -DriverType=Tip upr. programa +DriverType=Vrsta upr. programa SummarySystem=Sažetak informacija o sistemu SummaryConst=Popis svih Dolibarr parametara podešavanja MenuCompanySetup=Tvrtka/Organizacija @@ -1186,13 +1186,14 @@ ExtraFieldsSupplierInvoicesLines=Dodatni atributi (stavke računa) ExtraFieldsThirdParties=Complementary attributes (third party) ExtraFieldsContacts=Complementary attributes (contacts/address) ExtraFieldsMember=Dodatni atributi (član) -ExtraFieldsMemberType=Dodatni atributi (tip člana) +ExtraFieldsMemberType=Dodatni atributi (vrsta člana) ExtraFieldsCustomerInvoices=Dodatni atributi (računi) ExtraFieldsCustomerInvoicesRec=Complementary attributes (templates invoices) ExtraFieldsSupplierOrders=Dodatni atributi (narudžbe) ExtraFieldsSupplierInvoices=Dodatni atributi (računi) ExtraFieldsProject=Dodatni atributi (projekti) ExtraFieldsProjectTask=Dodatni atributi (zadaci) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Atribut %s ima krivu vrijednost. AlphaNumOnlyLowerCharsAndNoSpace=samo alfanumerički i mala slova bez razmaka SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Stanje je trenutno %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimizacija pretrage -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1498,8 +1500,8 @@ MergePropalProductCard=Activate in product/service Attached Files tab an option ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Zadani tip barkoda za korištenje kod proizvoda -SetDefaultBarcodeTypeThirdParties=Zadani tip barkoda za korištenje kod komitenta +SetDefaultBarcodeTypeProducts=Zadana vrsta barkoda za korištenje kod proizvoda +SetDefaultBarcodeTypeThirdParties=Zadana vrsta barkoda za korištenje kod komitenta 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= Konfiguracija Proizvoda / Usluga @@ -1522,7 +1524,7 @@ DonationsReceiptModel=Predložak za donacijsku primku ##### Barcode ##### BarcodeSetup=Podešavanje barkoda PaperFormatModule=Modul formata ispisa -BarcodeEncodeModule=Tip dekodiranja barkoda +BarcodeEncodeModule=Vrsta dekodiranja barkoda CodeBarGenerator=Generator barkoda ChooseABarCode=Generator nije definiran FormatNotSupportedByGenerator=Format nije podržan ovim generatora @@ -1590,7 +1592,7 @@ HideUnauthorizedMenu= Sakrij neautorizirane izbornike (sivo) DetailId=ID Izbornika DetailMenuHandler=Nosioc izbornika gdje da se prikaže novi izbornik DetailMenuModule=Naziv modula ako stavka izbornika dolazi iz modula -DetailType=Tip izbornika (gore ili lijevi) +DetailType=Vrsta izbornika (gore ili lijevi) DetailTitre=Oznaka izbornika ili oznaka koda za prijevod DetailUrl=URL where menu send you (Absolute URL link or external link with http://) DetailEnabled=Uvjet za prikaz stavke ili ne @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Popis obavijesti po korisniku * -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Najviše dopušteno @@ -1771,7 +1773,7 @@ RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some s UrlTrackingDesc=If the provider or transport service offers a page or web site to check the status of your shipments, you may enter it here. You can use the key {TRACKID} in the URL parameters so the system will replace it with the tracking number the user entered into the shipment card. OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of the lead, this amount may be multiplied by this rate to evaluate a total amount all your leads may generate. Value is a percentage (between 0 and 100). TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Tip predloška +TypeOfTemplate=Vrsta predloška TemplateIsVisibleByOwnerOnly=Template is visible to owner only VisibleEverywhere=Visible everywhere VisibleNowhere=Visible nowhere @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/hr_HR/agenda.lang b/htdocs/langs/hr_HR/agenda.lang index 6192a20c6aa..645ac6c0003 100644 --- a/htdocs/langs/hr_HR/agenda.lang +++ b/htdocs/langs/hr_HR/agenda.lang @@ -125,9 +125,9 @@ ExtSiteUrlAgenda=URL za pristup .ical datoteki ExtSiteNoLabel=Bez opisa VisibleTimeRange=Vidljivi vremenski raspon VisibleDaysRange=Vidljivi dnevni raspon -AddEvent=Kreiraj događaj +AddEvent=Izradi događaj MyAvailability=Moja dostupnost -ActionType=Tip događaja +ActionType=Vrsta događaja DateActionBegin=Datum početka događaja ConfirmCloneEvent=Are you sure you want to clone the event %s? RepeatEvent=Ponovi događaj diff --git a/htdocs/langs/hr_HR/banks.lang b/htdocs/langs/hr_HR/banks.lang index 8c6708b063c..25dc19fe6c8 100644 --- a/htdocs/langs/hr_HR/banks.lang +++ b/htdocs/langs/hr_HR/banks.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - banks Bank=Banka -MenuBankCash=Banks | Cash +MenuBankCash=Banke | Gotovina MenuVariousPayment=Miscellaneous payments MenuNewVariousPayment=New Miscellaneous payment BankName=Ime banke @@ -47,13 +47,13 @@ BankAccountCountry=Država računa BankAccountOwner=Naziv vlasnika računa BankAccountOwnerAddress=Adresa vlasinka računa RIBControlError=Integrity check of values failed. This means the information for this account number is not complete or is incorrect (check country, numbers and IBAN). -CreateAccount=Kreiraj račun +CreateAccount=Izradi račun NewBankAccount=Novi račun NewFinancialAccount=Novi financijski račun MenuNewFinancialAccount=Novi financijski račun EditFinancialAccount=Uredi račun LabelBankCashAccount=Oznaka za banku ili gotovinu -AccountType=Tip računa +AccountType=Vrsta računa BankType0=Štedni račun BankType1=Tekući račun ili kreditna kartica BankType2=Gotovinski račun diff --git a/htdocs/langs/hr_HR/bills.lang b/htdocs/langs/hr_HR/bills.lang index 6f68286f9ae..993ae31d4c3 100644 --- a/htdocs/langs/hr_HR/bills.lang +++ b/htdocs/langs/hr_HR/bills.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - bills -Bill=Račun R1 +Bill=Račun Bills=Računi BillsCustomers=Računi kupaca BillsCustomer=Račun kupca @@ -16,7 +16,7 @@ DisabledBecauseNotLastInvoice=Nije moguće provesti jer se račun ne može izbri DisabledBecauseNotErasable=Nije moguće provesti jer ne može biti obrisano InvoiceStandard=Običan račun InvoiceStandardAsk=Običan račun -InvoiceStandardDesc=Ovo je uobičajeni tip računa. +InvoiceStandardDesc=Ovo je uobičajena vrsta računa. InvoiceDeposit=Račun za predujam InvoiceDepositAsk=Račun za predujam InvoiceDepositDesc=Ovakav račun izdaje se kada je zaprimljen predujam @@ -46,8 +46,8 @@ NoInvoiceToCorrect=Nema računa za ispravak InvoiceHasAvoir=Bio je izvor od jednog ili više knjižnih odobrenja CardBill=Kartica računa PredefinedInvoices=Predlošci računa -Invoice=Račun R1 -PdfInvoiceTitle=Račun R1 +Invoice=Račun +PdfInvoiceTitle=Račun Invoices=Računi InvoiceLine=Redak računa InvoiceCustomer=Račun za kupca @@ -80,27 +80,28 @@ PaymentsReports=Izvještaji plaćanja PaymentsAlreadyDone=Izvršena plaćanja PaymentsBackAlreadyDone=Izvršeni povrati plaćanja PaymentRule=Način plaćanja -PaymentMode=Payment Type +PaymentMode=Način plaćanja PaymentTypeDC=Debitna/kreditna kartica PaymentTypePP=PayPal IdPaymentMode=Payment Type (id) CodePaymentMode=Payment Type (code) LabelPaymentMode=Payment Type (label) -PaymentModeShort=Payment Type +PaymentModeShort=Način plaćanja PaymentTerm=Payment Term -PaymentConditions=Payment Terms -PaymentConditionsShort=Payment Terms +PaymentConditions=Rok plaćanja +PaymentConditionsShort=Rok plaćanja PaymentAmount=Iznos plaćanja PaymentHigherThanReminderToPay=Iznos plaćanja veći je od iznosa po podsjetniku na plaćanje HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Označi kao plaćeno +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Označi kao djelomično plaćeno ClassifyCanceled=Označi kao napušteno ClassifyClosed=Označi kao zatvoreno ClassifyUnBilled=Označi kao "nezaračunato" CreateBill=Izradi račun -CreateCreditNote=Create credit note +CreateCreditNote=Izradi storno računa/knjižno odobrenje AddBill=Izradi račun ili storno računa/knjižno odobrenje AddToDraftInvoices=Dodati u predložak računa DeleteBill=Izbriši račun @@ -108,12 +109,12 @@ SearchACustomerInvoice=Traži račun za kupca SearchASupplierInvoice=Search for a vendor invoice CancelBill=Poništi račun SendRemindByMail=Pošalji podsjetnik e-poštom -DoPayment=Enter payment +DoPayment=Unesi uplatu DoPaymentBack=Enter refund ConvertToReduc=Mark as credit available ConvertExcessReceivedToReduc=Convert excess received into available credit ConvertExcessPaidToReduc=Convert excess paid into available discount -EnterPaymentReceivedFromCustomer=Upiši zaprimljeno plaćanje kupca +EnterPaymentReceivedFromCustomer=Unesi uplatu od kupca EnterPaymentDueToCustomer=Napravi DisabledBecauseRemainderToPayIsZero=Isključeno jer preostalo dugovanje je nula. PriceBase=Osnovica @@ -150,7 +151,7 @@ ErrorBillNotFound=Račun %s ne postoji ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s. ErrorDiscountAlreadyUsed=Greška! Popust je već iskorišten. ErrorInvoiceAvoirMustBeNegative=Greška! Ispravan račun treba imati negativan iznos. -ErrorInvoiceOfThisTypeMustBePositive=Greška! Ovaj tip računa mora imati pozitivan iznos +ErrorInvoiceOfThisTypeMustBePositive=Greška! Ova vrsta računa mora imati pozitivan iznos ErrorCantCancelIfReplacementInvoiceNotValidated=Greška! Ne može se poništiti račun koji je zamijenjen drugim računom koji je otvoren kao skica. ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed. BillFrom=Od @@ -211,9 +212,23 @@ ShowSocialContribution=Prikaži društveni/fiskalni porez ShowBill=Prikaži račun ShowInvoice=Prikaži račun ShowInvoiceReplace=Prikaži zamjenski računa -ShowInvoiceAvoir=Prikaži bonifikaciju +ShowInvoiceAvoir=Prikaži storno računa/knjižno odobrenje ShowInvoiceDeposit=Prikaži račun za predujam ShowInvoiceSituation=Prikaži račun etape +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Prikaži plaćanje AlreadyPaid=Plaćeno do sada AlreadyPaidBack=Povrati do sada @@ -251,8 +266,8 @@ ClassifyBill=Svrstavanje računa SupplierBillsToPay=Unpaid vendor invoices CustomerBillsUnpaid=Neplaćeni računi kupaca NonPercuRecuperable=Nepovratno -SetConditions=Set Payment Terms -SetMode=Set Payment Type +SetConditions=Odredi rok plaćanja +SetMode=Izaberi način plaćanja SetRevenuStamp=Postavi prihodovnu markicu Billed=Zaračunato RecurringInvoices=Pretplatnički računi @@ -269,26 +284,26 @@ ExportDataset_invoice_1=Customer invoices and invoice details ExportDataset_invoice_2=Računi i plaćanja kupca ProformaBill=Predračun: Reduction=Smanjivanje -ReductionShort=Disc. +ReductionShort=Popust Reductions=Smanjivanja -ReductionsShort=Disc. +ReductionsShort=Popust Discounts=Popusti AddDiscount=Izradi popust AddRelativeDiscount=Izradi relativan popust EditRelativeDiscount=Izmjeni relativan popust AddGlobalDiscount=Izradi apsolutni popust EditGlobalDiscounts=Izmjeni apsolutni popust -AddCreditNote=Izradi bonifikaciju +AddCreditNote=Izradi storno računa/knjižno odobrenje ShowDiscount=Prikaži popust ShowReduc=Prikaži odbitak RelativeDiscount=Relativni popust GlobalDiscount=Opći popust -CreditNote=Bonifikacija -CreditNotes=Bonifikacija +CreditNote=Storno računa/knjižno odobrenje +CreditNotes=Storno računa/knjižno odobrenje CreditNotesOrExcessReceived=Storno računa/knjižno odobrenje Deposit=Predujam Deposits=Predujam -DiscountFromCreditNote=Popust iz bonifikacije %s +DiscountFromCreditNote=Popust od storno računa/knjižnog odobrenja %s DiscountFromDeposit=Predujmovi iz računa %s DiscountFromExcessReceived=Payments in excess of invoice %s DiscountFromExcessPaid=Payments in excess of invoice %s @@ -446,7 +461,7 @@ IntracommunityVATNumber=Intra-Community VAT ID PaymentByChequeOrderedTo=Check payments (including tax) are payable to %s, send to PaymentByChequeOrderedToShort=Check payments (incl. tax) are payable to SendTo=Pošalji -PaymentByTransferOnThisBankAccount=Payment by transfer to the following bank account +PaymentByTransferOnThisBankAccount=Plaćanje na sljedeći bankovni račun VATIsNotUsedForInvoice=Ne primjenjivo VAT čl.-293B CGI-a LawApplicationPart1=Po primjeni zakona 80.335 od 12.05.80 LawApplicationPart2=Roba ostaje vlasništvo @@ -518,7 +533,7 @@ InvoiceSituationDesc=Kreiranje nove etapu koja prati postojeću SituationAmount=Iznos računa etape (net) SituationDeduction=Oduzimanje po etapama ModifyAllLines=Izmjeni sve stavke -CreateNextSituationInvoice=Kreiraj sljedeću etapu +CreateNextSituationInvoice=Izradi sljedeću etapu ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice. ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note. diff --git a/htdocs/langs/hr_HR/bookmarks.lang b/htdocs/langs/hr_HR/bookmarks.lang index b6ab8f9613d..fc2ceb8024c 100644 --- a/htdocs/langs/hr_HR/bookmarks.lang +++ b/htdocs/langs/hr_HR/bookmarks.lang @@ -6,15 +6,15 @@ ListOfBookmarks=Lista zabilješki EditBookmarks=Prikaži/izmjeni zabilješke NewBookmark=Nova zabilješka ShowBookmark=Prikaži zabilješku -OpenANewWindow=Otvori novi prozor -ReplaceWindow=Zamjeni trenutno prozor -BookmarkTargetNewWindowShort=Novi prozor -BookmarkTargetReplaceWindowShort=Trenutno prozor -BookmarkTitle=Naziv zabilješke +OpenANewWindow=Open a new tab +ReplaceWindow=Replace current tab +BookmarkTargetNewWindowShort=New tab +BookmarkTargetReplaceWindowShort=Current tab +BookmarkTitle=Bookmark name UrlOrLink=URL BehaviourOnClick=Behaviour when a bookmark URL is selected -CreateBookmark=Kreiraj zabilješku -SetHereATitleForLink=Postavi naslov za zabilješku -UseAnExternalHttpLinkOrRelativeDolibarrLink=Koristi eksterni http URL ili relativni Dolibarr URL -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Odaberite ako se povezana stranica mora/ne mora otvoriti u novom prozoru +CreateBookmark=Izradi zabilješku +SetHereATitleForLink=Set a name for the bookmark +UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://URL) or an internal/relative link (/DOLIBARR_ROOT/htdocs/...) +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should open in the current tab or a new tab BookmarksManagement=Upravljanje zabilješkama diff --git a/htdocs/langs/hr_HR/boxes.lang b/htdocs/langs/hr_HR/boxes.lang index 6d56bdbf22b..784440f4f7d 100644 --- a/htdocs/langs/hr_HR/boxes.lang +++ b/htdocs/langs/hr_HR/boxes.lang @@ -9,7 +9,7 @@ BoxLastCustomerBills=Latest Customer invoices BoxOldestUnpaidCustomerBills=Najstariji neplaćeni račun kupca BoxOldestUnpaidSupplierBills=Oldest unpaid vendor invoices BoxLastProposals=Zadnja ponuda -BoxLastProspects=Zadnji izmjenjeni potencijalni kupci +BoxLastProspects=Zadnji izmjenjeni mogući kupci BoxLastCustomers=Zadnji promjenjei kupci BoxLastSuppliers=Zadnji promjenjeni dobavljači BoxLastCustomerOrders=Latest sales orders diff --git a/htdocs/langs/hr_HR/categories.lang b/htdocs/langs/hr_HR/categories.lang index 8e19e62f594..f383628a932 100644 --- a/htdocs/langs/hr_HR/categories.lang +++ b/htdocs/langs/hr_HR/categories.lang @@ -3,7 +3,7 @@ Rubrique=Kategorija Rubriques=Kategorije RubriquesTransactions=Tags/Categories of transactions categories=kategorije -NoCategoryYet=Nije kreirana kategorija ovog tipa +NoCategoryYet=Skupina ove vrste nije izrađena In=U AddIn=Dodaj u modify=promjeni @@ -22,8 +22,8 @@ CatList=Popis kategorija NewCategory=Nova kategorija ModifCat=Promjeni kategoriju CatCreated=Kategorija kreirana -CreateCat=Kreiraj kategoriju -CreateThisCat=Kreiraj ovu kategoriju +CreateCat=Izradi kategoriju +CreateThisCat=Izradi ovu kategoriju NoSubCat=Nema podkategorije. SubCatOf=Podkategorija FoundCats=Pronađene kategorije diff --git a/htdocs/langs/hr_HR/commercial.lang b/htdocs/langs/hr_HR/commercial.lang index a6dffff41bb..7bf167c2068 100644 --- a/htdocs/langs/hr_HR/commercial.lang +++ b/htdocs/langs/hr_HR/commercial.lang @@ -1,14 +1,14 @@ # Dolibarr language file - Source file is en_US - commercial Commercial=Trgovina -CommercialArea=Sučelje trgovine +CommercialArea=Trgovina Customer=Kupac Customers=Kupci Prospect=Potencijalni kupac -Prospects=Potencijalni kupci +Prospects=Mogući kupci DeleteAction=Obriši događaj NewAction=Novi događaj -AddAction=Kreiraj događaj -AddAnAction=Kreiraj događaj +AddAction=Izradi događaj +AddAnAction=Izradi događaj AddActionRendezVous=Kreirajte sastanak ConfirmDeleteAction=Are you sure you want to delete this event? CardAction=Kartica događaja @@ -27,15 +27,15 @@ SalesRepresentativeSignature=Prodajni predstavnik (potpis) NoSalesRepresentativeAffected=Nije dodjeljen prodajni predstavnik ShowCustomer=Prikaži kupca ShowProspect=Prikaži potencijalnog kupca -ListOfProspects=Lista potencijalnih kupaca -ListOfCustomers=Lista kupaca +ListOfProspects=Popis mogućih kupaca +ListOfCustomers=Popis kupaca LastDoneTasks=Latest %s completed actions LastActionsToDo=Najstarijih %s nezavršenih akcija DoneAndToDoActions=Završeni i za odraditi DoneActions=Završeni događaji ToDoActions=Nedovršeni događaji SendPropalRef=Ponuda %s -SendOrderRef=Predaja narudžbe %s +SendOrderRef=Narudžba %s StatusNotApplicable=Nije primjenjivo StatusActionToDo=Napraviti StatusActionDone=Završeno @@ -59,7 +59,7 @@ ActionAC_FAC=Pošalji račun kupca poštom ActionAC_REL=Pošalji narudđbu kupca putem pošte (podsjetnik) ActionAC_CLO=Zatvoren ActionAC_EMAILING=Masovno slanje e-pošte -ActionAC_COM=Pošalji narudžbu kupca putem pošte +ActionAC_COM=Send sales order by mail ActionAC_SHIP=Pošalji dostavu putem pošte ActionAC_SUP_ORD=Pošalji narudžbenicu e-poštom ActionAC_SUP_INV=Send vendor invoice by mail diff --git a/htdocs/langs/hr_HR/companies.lang b/htdocs/langs/hr_HR/companies.lang index a8189128d76..f5e548f5e79 100644 --- a/htdocs/langs/hr_HR/companies.lang +++ b/htdocs/langs/hr_HR/companies.lang @@ -20,8 +20,8 @@ IdThirdParty=Oznaka treće osobe IdCompany=Oznaka tvrtke IdContact=Oznaka kontakta Contacts=Kontakti/Adrese -ThirdPartyContacts=Third-party contacts -ThirdPartyContact=Third-party contact/address +ThirdPartyContacts=Kontakti treće osobe +ThirdPartyContact=Kontakt/adresa treće osobe Company=Tvrtka CompanyName=Naziv tvrtke AliasNames=Alias (komercijala, zaštitni znak, ...) @@ -29,17 +29,17 @@ AliasNameShort=Alias Name Companies=Kompanije CountryIsInEEC=Country is inside the European Economic Community PriceFormatInCurrentLanguage=Price display format in the current language and currency -ThirdPartyName=Third-party name +ThirdPartyName=Naziv treće osobe ThirdPartyEmail=Third-party email -ThirdParty=Third-party -ThirdParties=Third-parties +ThirdParty=Treća osoba +ThirdParties=Treće osobe ThirdPartyProspects=Potencijalni kupac -ThirdPartyProspectsStats=Potencijalni kupci +ThirdPartyProspectsStats=Mogući kupci ThirdPartyCustomers=Kupci ThirdPartyCustomersStats=Kupci ThirdPartyCustomersWithIdProf12=Kupci sa %s ili %s ThirdPartySuppliers=Vendors -ThirdPartyType=Third-party type +ThirdPartyType=Vrsta treće osobe Individual=Privatna osoba ToCreateContactWithSameName=Will automatically create a contact/address with same information as the third party under the third party. In most cases, even if your third party is a physical person, creating a third party alone is enough. ParentCompany=Matična tvrtka @@ -111,7 +111,7 @@ ProfId5Short=Prof. id 5 ProfId6Short=Prof. id 6 ProfId1=Sjedište banke ProfId2=Tekući račun -ProfId3=VAT N° +ProfId3=PDV broj ProfId4=Upis ProfId5=MBS ProfId6=MB @@ -257,8 +257,8 @@ ProfId1DZ=RC ProfId2DZ=Art. ProfId3DZ=NIF ProfId4DZ=NIS -VATIntra=VAT ID -VATIntraShort=VAT ID +VATIntra=OIB +VATIntraShort=OIB VATIntraSyntaxIsValid=Sintaksa je u redu VATReturn=VAT return ProspectCustomer=Potencijalni / Kupac @@ -273,7 +273,7 @@ CompanyHasRelativeDiscount=Ovaj kupac ima predefiniran popust od %s%% CompanyHasNoRelativeDiscount=Ovaj kupac nema predefiniran relativni popust HasRelativeDiscountFromSupplier=You have a default discount of %s%% from this vendor HasNoRelativeDiscountFromSupplier=You have no default relative discount from this vendor -CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for %s %s +CompanyHasAbsoluteDiscount=Ovaj kupac ima raspoloživih popusta (knjižnih odobrenja ili predujmova) u iznosu od%s %s CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for %s %s CompanyHasCreditNote=Ovaj kupac još uvijek ima odobrenje za %s %s HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this vendor @@ -286,20 +286,20 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself) SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users) SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself) DiscountNone=Ništa -Vendor=Vendor -Supplier=Vendor -AddContact=Kreiraj kontakt +Vendor=Dobavljač +Supplier=Dobavljač +AddContact=Izradi kontakt AddContactAddress=Izradi kontakt/adresu EditContact=Uredi kontakt EditContactAddress=Uredi kontakt/adresu Contact=Kontakt ContactId=ID kontakta -ContactsAddresses=Kontakt/adrese +ContactsAddresses=Kontakti/adrese FromContactName=Ime: NoContactDefinedForThirdParty=Nema kontakta za ovog komitenta NoContactDefined=Nije definiran kontakt DefaultContact=Predefinirani kontakt/adresa -AddThirdParty=Kreiraj komitenta +AddThirdParty=Izradi komitenta DeleteACompany=Izbriši tvrtku PersonalInformations=Osobni podaci AccountancyCode=Obračunski račun @@ -321,7 +321,7 @@ ListOfThirdParties=Popis trećih osoba ShowCompany=Show Third Party ShowContact=Prikaži kontakt ContactsAllShort=Sve(bez filtera) -ContactType=Tip kontakta +ContactType=Vrsta kontakta ContactForOrders=Kontakt narudžbe ContactForOrdersOrShipments=Kontakt narudžbe ili pošiljke ContactForProposals=Kontakt ponude @@ -333,7 +333,7 @@ NoContactForAnyProposal=Ovaj kontakt nije kontakt za bilo koju ponudu NoContactForAnyContract=Ovaj kontakt nije kontakt za nikakav ugovor NoContactForAnyInvoice=Ovaj kontakt nije kontakt za nikakav račun NewContact=Novi kontakt -NewContactAddress=New Contact/Address +NewContactAddress=Novi kontakt/adresa MyContacts=Moji kontakti Capital=Kapital CapitalOf=Temeljna vrijednost %s @@ -381,18 +381,18 @@ ChangeNeverContacted=Promjeni status u 'nikad kontaktiran' ChangeToContact=Promjeni status u 'Za kontaktiranje' ChangeContactInProcess=Promjeni status u 'kontakt u tijeku' ChangeContactDone=Promjeni status u 'kontaktiran' -ProspectsByStatus=Potencijalni kupci po statusu +ProspectsByStatus=Mogući kupci po statusu NoParentCompany=Ništa ExportCardToFormat=Izvezi karticu u formatu ContactNotLinkedToCompany=Kontakt nije povezan ni sa jednim komitentom DolibarrLogin=Dolibarr korisničko ime NoDolibarrAccess=Nema pristup Dolibarr-u -ExportDataset_company_1=Third-parties (companies/foundations/physical people) and their properties +ExportDataset_company_1=Treće osobe\n(tvrtke/zaklade/fizičke osobe) i njihove osobine ExportDataset_company_2=Contacts and their properties -ImportDataset_company_1=Third-parties and their properties +ImportDataset_company_1=Treće osobe i njihove osobine ImportDataset_company_2=Third-parties additional contacts/addresses and attributes -ImportDataset_company_3=Third-parties Bank accounts -ImportDataset_company_4=Third-parties Sales representatives (assign sales representatives/users to companies) +ImportDataset_company_3=Bankovni računi trećih osoba +ImportDataset_company_4=Prodajni predstavnici za treće osobe (dodjela predstavnika/korisnika za tvrtke) PriceLevel=Price Level PriceLevelLabels=Price Level Labels DeliveryAddress=Adresa dostave @@ -407,9 +407,9 @@ FiscalYearInformation=Fiscal Year FiscalMonthStart=Početni mjesec fiskalne godine YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification. YouMustCreateContactFirst=Kako biste bili u mogućnosti dodavanja obavijesti e-poštom, prvo morate definirati kontakt s valjanom adresom e-pošte za komitenta -ListSuppliersShort=List of Vendors -ListProspectsShort=List of Prospects -ListCustomersShort=List of Customers +ListSuppliersShort=Popis dobavljača +ListProspectsShort=Popis mogućih kupaca +ListCustomersShort=Popis kupaca ThirdPartiesArea=Treće osobe/Kontakti LastModifiedThirdParties=Zadnjih %s izmijenjenih trećih osoba UniqueThirdParties=Ukupno trećih osoba @@ -435,7 +435,7 @@ ErrorThirdpartiesMerge=Došlo je do greške tijekom brisanja treće osobe. Molim NewCustomerSupplierCodeProposed=Customer or Vendor code already used, a new code is suggested #Imports PaymentTypeCustomer=Payment Type - Customer -PaymentTermsCustomer=Payment Terms - Customer +PaymentTermsCustomer=Rok plaćanja - kupac PaymentTypeSupplier=Payment Type - Vendor PaymentTermsSupplier=Payment Term - Vendor MulticurrencyUsed=Use Multicurrency diff --git a/htdocs/langs/hr_HR/compta.lang b/htdocs/langs/hr_HR/compta.lang index b3076decbe1..1b5b6ba12c9 100644 --- a/htdocs/langs/hr_HR/compta.lang +++ b/htdocs/langs/hr_HR/compta.lang @@ -70,7 +70,7 @@ SocialContributions=Društveni ili fiskanlni porezi SocialContributionsDeductibles=Odbitak društveni ili fiskalni porezi SocialContributionsNondeductibles=Neodbijajući društveni ili fiskalni porezi LabelContrib=Oznaka doprinosa -TypeContrib=Tip doprinosa +TypeContrib=Vrsta doprinosa MenuSpecialExpenses=Specijalni troškovi MenuTaxAndDividends=Porezi i dividende MenuSocialContributions=Društveni/fiskalni porezi @@ -166,7 +166,7 @@ RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accou RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME" RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts grouped by personalized groups SeePageForSetup=See menu %s for setup -DepositsAreNotIncluded=- Down payment invoices are not included +DepositsAreNotIncluded=- Računi za predujam nisu uključeni DepositsAreIncluded=- Down payment invoices are included LT1ReportByCustomers=Report tax 2 by third party LT2ReportByCustomers=Report tax 3 by third party @@ -215,9 +215,9 @@ ByProductsAndServices=By product and service RefExt=Vanjska ref. ToCreateAPredefinedInvoice=Za kreiranje predloška računa, kreirajte stadardni račun, onda, bez ovjeravanja, kliknite na gumb "%s" LinkedOrder=Poveži s narudžbom -Mode1=Metoda 1 -Mode2=Metoda 2 -CalculationRuleDesc=Za izračunavanje poreza, postoje dvije metode:
Metoda 1 je zaokruživanje PDV za svaku stavku te njihov zbroj.
Metoda 2 je zbrajanje PDV za svaku stavku te zaokruživanje rezultata.
Konačni rezultat se može razlikovati za par lipa. Zadani način je način %s. +Mode1=Način 1 +Mode2=Način 2 +CalculationRuleDesc=Za izračunavanje poreza, postoje dvije metode:
Način 1 je zaokruživanje PDV za svaku stavku te njihov zbroj.
Način 2 je zbrajanje PDV za svaku stavku te zaokruživanje rezultata.
Konačni rezultat se može razlikovati za par lipa. Zadani način je način %s. CalculationRuleDescSupplier=According to vendor, choose appropriate method to apply same calculation rule and get same result expected by your vendor. TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced. TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced. diff --git a/htdocs/langs/hr_HR/cron.lang b/htdocs/langs/hr_HR/cron.lang index 9e8813d0f36..c2e49dacddf 100644 --- a/htdocs/langs/hr_HR/cron.lang +++ b/htdocs/langs/hr_HR/cron.lang @@ -2,7 +2,7 @@ # About page # Right Permission23101 = Pročitaj planirani posao -Permission23102 = Kreiraj/promjeni planirani posao +Permission23102 = Izradi/promjeni planirani posao Permission23103 = Obriši planirani posao Permission23104 = Pokreni planirani posao # Admin @@ -37,13 +37,13 @@ CronDtLastLaunch=Početni datum zadnjeg pokretanja CronDtLastResult=Datum završetka zadnjeg pokretanja CronFrequency=Učestalost CronClass=Klasa -CronMethod=Metoda +CronMethod=Način CronModule=Modul CronNoJobs=Nema registriranih poslova CronPriority=Prioritet CronLabel=Naziv -CronNbRun=No. launches -CronMaxRun=Max number launch +CronNbRun=Number of launches +CronMaxRun=Maximum number of launches CronEach=Svakih JobFinished=Posao pokrenut i završen #Page card @@ -67,11 +67,11 @@ CronObjectHelp=The object name to load.
For example to call the fetch metho CronMethodHelp=The object method to launch.
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is
fetch CronArgsHelp=The method arguments.
For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
0, ProductRef CronCommandHelp=Sistemska komanda za pokretanje -CronCreateJob=Kreiraj novi planirani posao +CronCreateJob=Izradi novi planirani posao CronFrom=Od # Info # Common -CronType=Tip posla +CronType=Vrsta posla CronType_method=Call method of a PHP Class CronType_command=Shell command CronCannotLoadClass=Cannot load class file %s (to use class %s) diff --git a/htdocs/langs/hr_HR/donations.lang b/htdocs/langs/hr_HR/donations.lang index c2d8cd40d04..134409d1d52 100644 --- a/htdocs/langs/hr_HR/donations.lang +++ b/htdocs/langs/hr_HR/donations.lang @@ -1,15 +1,15 @@ # Dolibarr language file - Source file is en_US - donations Donation=Donacija Donations=Donacije -DonationRef=Ref. donacije +DonationRef=Broj donacije Donor=Donator -AddDonation=Kreiraj donaciju +AddDonation=Izradi donaciju NewDonation=Nova donacija DeleteADonation=Obriši donaciju ConfirmDeleteADonation=Are you sure you want to delete this donation? ShowDonation=Prikaži donaciju PublicDonation=Javna donacija -DonationsArea=Sučelje donacija +DonationsArea=Donacije DonationStatusPromiseNotValidated=Skica obečanja DonationStatusPromiseValidated=Ovjeri obečanje DonationStatusPaid=Primljene donacije diff --git a/htdocs/langs/hr_HR/errors.lang b/htdocs/langs/hr_HR/errors.lang index 6dddf9bb0ce..afe8c61f603 100644 --- a/htdocs/langs/hr_HR/errors.lang +++ b/htdocs/langs/hr_HR/errors.lang @@ -21,7 +21,7 @@ ErrorFailToDeleteDir=Failed to delete directory '%s'. ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. -ErrorCashAccountAcceptsOnlyCashMoney=Ovaj bankovni račun je gotovinski račun, te kao takav prihvača samo gotovinske uplate. +ErrorCashAccountAcceptsOnlyCashMoney=Ovaj bankovni račun je gotovinski te prihvaća samo gotovinske uplate. ErrorFromToAccountsMustDiffers=Izvorni i odredišni bankovni računi moraju biti različiti. ErrorBadThirdPartyName=Bad value for third-party name ErrorProdIdIsMandatory=The %s is mandatory @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/hr_HR/exports.lang b/htdocs/langs/hr_HR/exports.lang index abd5d73c9e6..b461078ecab 100644 --- a/htdocs/langs/hr_HR/exports.lang +++ b/htdocs/langs/hr_HR/exports.lang @@ -1,59 +1,59 @@ # Dolibarr language file - Source file is en_US - exports -ExportsArea=Exports area -ImportArea=Import area -NewExport=New export -NewImport=New import +ExportsArea=Exports +ImportArea=Import +NewExport=New Export +NewImport=New Import ExportableDatas=Exportable dataset ImportableDatas=Importable dataset SelectExportDataSet=Choose dataset you want to export... SelectImportDataSet=Choose dataset you want to import... -SelectExportFields=Choose fields you want to export, or select a predefined export profile -SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: +SelectExportFields=Choose the fields you want to export, or select a predefined export profile +SelectImportFields=Choose the source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile: NotImportedFields=Fields of source file not imported -SaveExportModel=Save this export profile if you plan to reuse it later... -SaveImportModel=Save this import profile if you plan to reuse it later... +SaveExportModel=Save your selections as an export profile/template (for reuse). +SaveImportModel=Save this import profile (for reuse) ... ExportModelName=Export profile name -ExportModelSaved=Export profile saved under name %s. +ExportModelSaved=Export profile saved as %s. ExportableFields=Exportable fields ExportedFields=Exported fields ImportModelName=Import profile name -ImportModelSaved=Import profile saved under name %s. +ImportModelSaved=Import profile saved as %s. DatasetToExport=Dataset to export DatasetToImport=Import file into dataset ChooseFieldsOrdersAndTitle=Choose fields order... FieldsTitle=Fields title FieldTitle=Field title -NowClickToGenerateToBuildExportFile=Now, select file format in combo box and click on "Generate" to build export file... -AvailableFormats=Available formats +NowClickToGenerateToBuildExportFile=Now, select the file format in the combo box and click on "Generate" to build the export file... +AvailableFormats=Available Formats LibraryShort=Biblioteka Step=Step -FormatedImport=Import assistant -FormatedImportDesc1=This area allows to import personalized data, using an assistant to help you in process without technical knowledge. -FormatedImportDesc2=First step is to choose a king of data you want to load, then file to load, then to choose which fields you want to load. -FormatedExport=Export assistant -FormatedExportDesc1=This area allows to export personalized data, using an assistant to help you in process without technical knowledge. -FormatedExportDesc2=First step is to choose a predefined dataset, then to choose which fields you want in your result files, and which order. -FormatedExportDesc3=When data to export are selected, you can define output file format you want to export your data to. +FormatedImport=Import Assistant +FormatedImportDesc1=This module allows you to update existing data or add new objects into the database from a file without technical knowledge, using an assistant. +FormatedImportDesc2=First step is to choose the kind of data you want to import, then the format of the source file, then the fields you want to import. +FormatedExport=Export Assistant +FormatedExportDesc1=These tools allow the export of personalized data using an assistant, to help you in the process without requiring technical knowledge. +FormatedExportDesc2=First step is to choose a predefined dataset, then which fields you want to export, and in which order. +FormatedExportDesc3=When data to export are selected, you can choose the format of the output file. Sheet=Sheet NoImportableData=No importable data (no module with definitions to allow data imports) FileSuccessfullyBuilt=File generated SQLUsedForExport=SQL Request used to build export file LineId=Id of line LineLabel=Label of line -LineDescription=Description of line +LineDescription=Opis redka LineUnitPrice=Unit price of line LineVATRate=VAT Rate of line LineQty=Quantity for line -LineTotalHT=Amount net of tax for line +LineTotalHT=Iznos bez PDV-a za redak LineTotalTTC=Amount with tax for line LineTotalVAT=Amount of VAT for line TypeOfLineServiceOrProduct=Type of line (0=product, 1=service) FileWithDataToImport=File with data to import FileToImport=Source file to import -FileMustHaveOneOfFollowingFormat=File to import must have one of following format -DownloadEmptyExample=Download example of empty source file -ChooseFormatOfFileToImport=Choose file format to use as import file format by clicking on picto %s to select it... -ChooseFileToImport=Upload file then click on picto %s to select file as source import file... +FileMustHaveOneOfFollowingFormat=File to import must have one of following formats +DownloadEmptyExample=Download template file with field content information (* are mandatory fields) +ChooseFormatOfFileToImport=Choose the file format to use as import file format by clicking on the %s icon to select it... +ChooseFileToImport=Upload file then click on the %s icon to select file as source import file... SourceFileFormat=Source file format FieldsInSourceFile=Fields in source file FieldsInTargetDatabase=Target fields in Dolibarr database (bold=mandatory) @@ -68,55 +68,55 @@ FieldsTarget=Targeted fields FieldTarget=Targeted field FieldSource=Source field NbOfSourceLines=Number of lines in source file -NowClickToTestTheImport=Check import parameters you have defined. If they are correct, click on button "%s" to launch a simulation of import process (no data will be changed in your database, it's only a simulation for the moment)... -RunSimulateImportFile=Launch the import simulation +NowClickToTestTheImport=Check that the file format (field and string delimiters) of your file matches the options shown and that you have omitted the header line, or these will be flagged as errors in the following simulation.
Click on the "%s" button to run a check of the file structure/contents and simulate the import process.
No data will be changed in your database. +RunSimulateImportFile=Run Import Simulation FieldNeedSource=This field requires data from the source file SomeMandatoryFieldHaveNoSource=Some mandatory fields have no source from data file InformationOnSourceFile=Information on source file InformationOnTargetTables=Information on target fields SelectAtLeastOneField=Switch at least one source field in the column of fields to export SelectFormat=Choose this import file format -RunImportFile=Launch import file -NowClickToRunTheImport=Check result of import simulation. If everything is ok, launch the definitive import. -DataLoadedWithId=All data will be loaded with the following import id: %s -ErrorMissingMandatoryValue=Mandatory data is empty in source file for field %s. -TooMuchErrors=There is still %s other source lines with errors but output has been limited. -TooMuchWarnings=There is still %s other source lines with warnings but output has been limited. +RunImportFile=Import Data +NowClickToRunTheImport=Check the results of the import simulation. Correct any errors and re-test.
When the simulation reports no errors you may proceed to import the data into the database. +DataLoadedWithId=The imported data will have an additional field in each database table with this import id: %s, to allow it to be searchable in the case of investigating a problem related to this import. +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field %s. +TooMuchErrors=There are still %s other source lines with errors but output has been limited. +TooMuchWarnings=There are still %s other source lines with warnings but output has been limited. EmptyLine=Empty line (will be discarded) -CorrectErrorBeforeRunningImport=You must first correct all errors before running definitive import. +CorrectErrorBeforeRunningImport=You must correct all errors before running the definitive import. FileWasImported=File was imported with number %s. -YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field import_key='%s'. +YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field import_key='%s'. NbOfLinesOK=Number of lines with no errors and no warnings: %s. NbOfLinesImported=Number of lines successfully imported: %s. DataComeFromNoWhere=Value to insert comes from nowhere in source file. DataComeFromFileFieldNb=Value to insert comes from field number %s in source file. -DataComeFromIdFoundFromRef=Value that comes from field number %s of source file will be used to find id of parent object to use (So the objet %s that has the ref. from source file must exists into Dolibarr). -DataComeFromIdFoundFromCodeId=Code that comes from field number %s of source file will be used to find id of parent object to use (So the code from source file must exists into dictionary %s). Note that if you know id, you can also use it into source file instead of code. Import should work in both cases. +DataComeFromIdFoundFromRef=Value that comes from field number %s of source file will be used to find the id of the parent object to use (so the object %s that has the ref. from source file must exist in the database). +DataComeFromIdFoundFromCodeId=Code that comes from field number %s of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary %s). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases. DataIsInsertedInto=Data coming from source file will be inserted into the following field: -DataIDSourceIsInsertedInto=The id of parent object found using the data in source file, will be inserted into the following field: +DataIDSourceIsInsertedInto=The id of parent object was found using the data in the source file, will be inserted into the following field: DataCodeIDSourceIsInsertedInto=The id of parent line found from code, will be inserted into following field: SourceRequired=Data value is mandatory SourceExample=Example of possible data value ExampleAnyRefFoundIntoElement=Any ref found for element %s ExampleAnyCodeOrIdFoundIntoDictionary=Any code (or id) found into dictionary %s -CSVFormatDesc=Comma Separated Value file format (.csv).
This is a text file format where fields are separated by separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ]. -Excel95FormatDesc=Excel file format (.xls)
This is native Excel 95 format (BIFF5). -Excel2007FormatDesc=Excel file format (.xlsx)
This is native Excel 2007 format (SpreadsheetML). +CSVFormatDesc=Comma Separated Value file format (.csv).
This is a text file format where fields are separated by a separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ]. +Excel95FormatDesc=Excel file format (.xls)
This is the native Excel 95 format (BIFF5). +Excel2007FormatDesc=Excel file format (.xlsx)
This is the native Excel 2007 format (SpreadsheetML). TsvFormatDesc=Tab Separated Value file format (.tsv)
This is a text file format where fields are separated by a tabulator [tab]. ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). -CsvOptions=Csv Options -Separator=Separator -Enclosure=Enclosure +CsvOptions=CSV format options +Separator=Field Separator +Enclosure=String Delimiter SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD: filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD: filters on all previous years/months/days ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number -ImportFromToLine=Import line numbers (from - to) -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines -KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +ImportFromToLine=Limit range (From - To) eg. to omit header line(s) +SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines.
If the header lines are NOT omitted, this will result in multiple errors in the Import Simulation. +KeepEmptyToGoToEndOfFile=Keep this field empty to process all lines to the end of the file. +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for an UPDATE import 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 @@ -127,7 +127,7 @@ FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule ## imports updates -KeysToUseForUpdates=Key to use for updating data +KeysToUseForUpdates=Key (column) to use for updating existing data NbInsert=Number of inserted lines: %s NbUpdate=Number of updated lines: %s MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/hr_HR/help.lang b/htdocs/langs/hr_HR/help.lang index 25e0f10a260..aba9b32e9b4 100644 --- a/htdocs/langs/hr_HR/help.lang +++ b/htdocs/langs/hr_HR/help.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - help CommunitySupport=Forum/Wiki podrška EMailSupport=Podrška e-poštom -RemoteControlSupport=Online real time / remote podrška +RemoteControlSupport=Online real-time / remote support OtherSupport=Ostala podrška ToSeeListOfAvailableRessources=Da biste kontaktirali/vidjeli raspoložive resurse: -HelpCenter=Help centar +HelpCenter=Help Center DolibarrHelpCenter=Dolibarr Help and Support Center ToGoBackToDolibarr=Otherwise, click here to continue to use Dolibarr. TypeOfSupport=Type of support TypeSupportCommunauty=Zajednica (besplatno) TypeSupportCommercial=Komercijalno -TypeOfHelp=Tip +TypeOfHelp=Vrsta NeedHelpCenter=Need help or support? Efficiency=Efikasnost TypeHelpOnly=Samo pomoć diff --git a/htdocs/langs/hr_HR/holiday.lang b/htdocs/langs/hr_HR/holiday.lang index b7b72669126..e47e5f49b5c 100644 --- a/htdocs/langs/hr_HR/holiday.lang +++ b/htdocs/langs/hr_HR/holiday.lang @@ -23,7 +23,7 @@ UserForApprovalFirstname=First name of approval user UserForApprovalLastname=Last name of approval user UserForApprovalLogin=Login of approval user DescCP=Opis -SendRequestCP=Kreiraj zahtjev odsustva +SendRequestCP=Izradi zahtjev odsustva DelayToRequestCP=Zahtjev odsustva mora biti kreiran najmanje %s dan(a) prije. MenuConfCP=Balance of leave SoldeCPUser=Leave balance is %s days. diff --git a/htdocs/langs/hr_HR/install.lang b/htdocs/langs/hr_HR/install.lang index d21db0da090..45c000ca09c 100644 --- a/htdocs/langs/hr_HR/install.lang +++ b/htdocs/langs/hr_HR/install.lang @@ -45,7 +45,7 @@ ForceHttps=Force secure connections (https) CheckToForceHttps=Check this option to force secure connections (https).
This requires that the web server is configured with an SSL certificate. DolibarrDatabase=Dolibarr Database DatabaseType=Database type -DriverType=Tip upr. programa +DriverType=Vrsta upr. programa Server=Server ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server. ServerPortDescription=Database server port. Keep empty if unknown. diff --git a/htdocs/langs/hr_HR/interventions.lang b/htdocs/langs/hr_HR/interventions.lang index 202e8e47ad7..b0ce784e85b 100644 --- a/htdocs/langs/hr_HR/interventions.lang +++ b/htdocs/langs/hr_HR/interventions.lang @@ -3,13 +3,13 @@ Intervention=Intervencija Interventions=Intervencije InterventionCard=Kartica intervencije NewIntervention=Nova intervencija -AddIntervention=Kreiraj intervenciju +AddIntervention=Izradi intervenciju ChangeIntoRepeatableIntervention=Change to repeatable intervention ListOfInterventions=Popis intervencija ActionsOnFicheInter=Akcije na intervencije LastInterventions=Zadnjih %s intervencija AllInterventions=Sve intervencije -CreateDraftIntervention=Kreiraj skicu +CreateDraftIntervention=Izradi skicu InterventionContact=Kontakt za intervenciju DeleteIntervention=Obriši intervenciju ValidateIntervention=Potvrdi intervenciju diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang index 8571f615495..fac8dcf0a66 100644 --- a/htdocs/langs/hr_HR/main.lang +++ b/htdocs/langs/hr_HR/main.lang @@ -58,7 +58,7 @@ ErrorNoRequestInError=Nema zahtjeva s greškom ErrorServiceUnavailableTryLater=Usluga trenutno nije dostupna. Pokušajte ponovo poslije. ErrorDuplicateField=Dvostruka vrijednost za jedno polje ErrorSomeErrorWereFoundRollbackIsDone=Pronađene su greške. Izmjene povućene. -ErrorConfigParameterNotDefined=Parameter %s is not defined in the Dolibarr config file conf.php. +ErrorConfigParameterNotDefined=Značajka %s nije određena u Dolibarr datoteci s postavkama conf.php. ErrorCantLoadUserFromDolibarrDatabase=Korisnik %s ne postoji u bazi Dolibarra ErrorNoVATRateDefinedForSellerCountry=Greška, za zemlju '%s' nisu upisane stope poreza ErrorNoSocialContributionForSellerCountry=Greška, za zemlju '%s' nisu upisani društveni/fiskalni porezi. @@ -170,7 +170,7 @@ Save=Spremi SaveAs=Spremi kao TestConnection=Provjera veze ToClone=Kloniraj -ConfirmClone=Choose data you want to clone: +ConfirmClone=Izaberite podatke koje želite klonirati: NoCloneOptionsSpecified=Podaci za kloniranje nisu izabrani. Of=od Go=Idi @@ -202,7 +202,7 @@ Password=Zaporka PasswordRetype=Ponovi zaporku NoteSomeFeaturesAreDisabled=Uzmite u obzir da je dosta mogućnosti i modula onemogućeno u ovom izlaganju. Name=Ime -NameSlashCompany=Name / Company +NameSlashCompany=Ime / Tvrtka Person=Osoba Parameter=Značajka Parameters=Značajke @@ -212,7 +212,7 @@ NewObject=Novi%s NewValue=Nova vrijednost CurrentValue=Trenutna vrijednost Code=Oznaka -Type=Tip +Type=Vrsta Language=Jezik MultiLanguage=Višejezični Note=Napomena @@ -223,8 +223,8 @@ Info=Dnevnik Family=Obitelj Description=Opis Designation=Opis -DescriptionOfLine=Description of line -DateOfLine=Date of line +DescriptionOfLine=Opis redka +DateOfLine=Datum redka DurationOfLine=Duration of line Model=Predložak dokumenta DefaultModel=Osnovni doc predložak @@ -350,13 +350,13 @@ AmountInvoiced=Zaračunati iznos AmountPayment=Iznos plaćanja AmountHTShort=Amount (excl.) AmountTTCShort=Iznos (s porezom) -AmountHT=Amount (excl. tax) +AmountHT=Iznos (bez PDV-a) AmountTTC=Iznos (s porezom) AmountVAT=Iznos poreza MulticurrencyAlreadyPaid=Već plaćeno, u izvornoj valuti MulticurrencyRemainderToPay=Preostalo za platiti, u izvornoj valuti MulticurrencyPaymentAmount=Iznos plaćanja, u izvornoj valuti -MulticurrencyAmountHT=Amount (excl. tax), original currency +MulticurrencyAmountHT=Iznos (bez PDV-a), prvotna valuta MulticurrencyAmountTTC=Iznos (s porezom), u izvornoj valuti MulticurrencyAmountVAT=Iznos poreza, u izvornoj valuti AmountLT1=Iznos poreza 2 @@ -374,8 +374,8 @@ TotalHTShort=Total (excl.) TotalHT100Short=Total 100%% (excl.) TotalHTShortCurrency=Total (excl. in currency) TotalTTCShort=Ukupno s PDV-om -TotalHT=Total (excl. tax) -TotalHTforthispage=Total (excl. tax) for this page +TotalHT=Ukupno bez PDV-a +TotalHTforthispage=Ukupno (bez PDV-a) na ovoj stranici Totalforthispage=Ukupno na ovoj stranici TotalTTC=Ukupno s PDV-om TotalTTCToYourCredit=Ukupno s porezom na vaš račun @@ -387,7 +387,7 @@ TotalLT1ES=Ukupno RE TotalLT2ES=Ukupno IRPF TotalLT1IN=Ukupno CGST TotalLT2IN=Ukupno SGST -HT=Excl. tax +HT=Bez PDV-a TTC=S porezom INCVATONLY=S PDV-om INCT=Zajedno sa svim porezima @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakti/adrese ove treće osobe AddressesForCompany=Adrese ove treće osobe ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Događaji vezani uz ovog člana ActionsOnProduct=Radnje vezane uz ovaj proizvod NActionsLate=%s kasni @@ -463,7 +464,7 @@ Duration=Trajanje TotalDuration=Ukupno trajanje Summary=Sažetak DolibarrStateBoard=Statistika baze podataka -DolibarrWorkBoard=Open Items +DolibarrWorkBoard=Otvorene stavke NoOpenedElementToProcess=Nema otvorenih radnji za provedbu Available=Dostupno NotYetAvailable=Nije još dostupno @@ -709,7 +710,7 @@ Notes=Bilješke AddNewLine=Dodaj novu stavku AddFile=Dodaj datoteku FreeZone=Ovaj proizvod/usluga nije predhodno upisan -FreeLineOfType=Free-text item, type: +FreeLineOfType=Slobodan upis, vrsta stavke: CloneMainAttributes=Kloniraj predmet sa svim glavnim svojstvima ReGeneratePDF=Re-generate PDF PDFMerge=Spoji PDF @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Poveži s ugovorom LinkToIntervention=Poveži s zahvatom +LinkToTicket=Link to ticket CreateDraft=Izradi skicu SetToDraft=Nazad na skice ClickToEdit=Klikni za uređivanje diff --git a/htdocs/langs/hr_HR/margins.lang b/htdocs/langs/hr_HR/margins.lang index 4f6f998b9e8..0ee046592c7 100644 --- a/htdocs/langs/hr_HR/margins.lang +++ b/htdocs/langs/hr_HR/margins.lang @@ -31,14 +31,14 @@ MARGIN_TYPE=Kupovno/troškovna cijena sugerirana za izračun marže MargeType1=Margin on Best vendor price MargeType2=Marža prema Procjenjenoj prosječnoj cijeni (PPC) MargeType3=Marža po cijeni troškova -MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card
* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best supplier price if WAP not yet defined
* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best supplier price if WAP not yet defined +MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card
* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best vendor price if WAP not yet defined
* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best vendor price if WAP not yet defined CostPrice=Cijena troška UnitCharges=Troškovi jedinice Charges=Troškovi -AgentContactType=Tip kontakta komercijalnog agenta +AgentContactType=Vrsta kontakta komercijalnog agenta AgentContactTypeDetails=Odredite koji tip kontakta (povezan na računu) će biti korišten za izvještaj marže po prodajnom predstavniku rateMustBeNumeric=Stopa mora biti brojčana vrijednost markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Prikaži infomacije o marži CheckMargins=Detalji marže -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any dedicated sale representative and some third parties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/hr_HR/members.lang b/htdocs/langs/hr_HR/members.lang index 49945d46b38..ce9538cc391 100644 --- a/htdocs/langs/hr_HR/members.lang +++ b/htdocs/langs/hr_HR/members.lang @@ -35,8 +35,8 @@ EndSubscription=Kraj pretplate SubscriptionId=Pretplata ID MemberId=Član ID NewMember=Novi član -MemberType=Tip člana -MemberTypeId=Tip ID člana +MemberType=Vrsta člana +MemberTypeId=Vrsta ID člana MemberTypeLabel=Oznaka tipa člana MembersTypes=Tipovi članova MemberStatusDraft=Skica (potrebna potvrditi) @@ -68,7 +68,7 @@ SubscriptionLate=Kasni SubscriptionNotReceived=Pretplata nikad zaprimljena ListOfSubscriptions=Popis pretplata SendCardByMail=Send card by email -AddMember=Kreiraj člana +AddMember=Izradi člana NoTypeDefinedGoToSetup=Nema definiranih tipova člana. Idite na izbornik "Tipovi članova" NewMemberType=Novi tip člana WelcomeEMail=Welcome email @@ -104,7 +104,7 @@ Int=Int DateAndTime=Datum i vrijeme PublicMemberCard=Javna članska kartica SubscriptionNotRecorded=Pretplata nije pohranjena -AddSubscription=Kreiraj pretplatu +AddSubscription=Izradi pretplatu ShowSubscription=Prikaži pretplatu # Label of email templates SendingAnEMailToMember=Sending information email to member @@ -149,7 +149,7 @@ MoreActions=Dodatna akcija za snimanje MoreActionsOnSubscription=Dodatne akcije, predloži kao zadano kod pohrane pretplate MoreActionBankDirect=Create a direct entry on bank account MoreActionBankViaInvoice=Create an invoice, and a payment on bank account -MoreActionInvoiceOnly=Kreiraj račun bez plačanja +MoreActionInvoiceOnly=Izradi račun bez plačanja LinkToGeneratedPages=Genereiraj vizit kartu LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with business cards for all your members or a particular member. DocForAllMembersCards=Generiraj vizit karte za sve članove diff --git a/htdocs/langs/hr_HR/opensurvey.lang b/htdocs/langs/hr_HR/opensurvey.lang index ba2ca276e1c..46358d63a49 100644 --- a/htdocs/langs/hr_HR/opensurvey.lang +++ b/htdocs/langs/hr_HR/opensurvey.lang @@ -3,15 +3,15 @@ Survey=Anketa Surveys=Ankete OrganizeYourMeetingEasily=Jednostavno organizirajte sastanke i ankete. Prvo odaberite tip ankete... NewSurvey=Nova anketa -OpenSurveyArea=Sučelje anketa +OpenSurveyArea=Ankete AddACommentForPoll=Možete dodati komentar u anketu... AddComment=Dodaj komentar -CreatePoll=Kreiraj anketu +CreatePoll=Izradi anketu PollTitle=Naziv ankete ToReceiveEMailForEachVote=Primi e-poštu za svaki glas TypeDate=Vremenski tip TypeClassic=Standardni tip -OpenSurveyStep2=Odaberite datume između slobodnih dana (sivo). Odabarni dani su zeleni. Odabir možete poništiti tako da kliknete ponovo na dan koji ste odabrali +OpenSurveyStep2=Select your dates among the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it RemoveAllDays=Makni sve dane CopyHoursOfFirstDay=Kopiraj sate prvog dana RemoveAllHours=Makni sve sate @@ -25,8 +25,8 @@ ConfirmRemovalOfPoll=Jeste li sigurni da želite maknuti ovo glasanje (i sve gla RemovePoll=Makni anketu UrlForSurvey=URL za direktni pristup anketi PollOnChoice=Kreirate anketu s više odabira u anketi. Prvo unesite sve moguće odabire za vašu anketu: -CreateSurveyDate=Kreiraj vremensku anketu -CreateSurveyStandard=Kreiraj standardnu anketu +CreateSurveyDate=Izradi vremensku anketu +CreateSurveyStandard=Izradi standardnu anketu CheckBox=Jednostavni checkbox YesNoList=Popis (prazno/da/ne) PourContreList=Popis (prazno/za/protiv) @@ -35,7 +35,7 @@ TitleChoice=Oznaka odabira ExportSpreadsheet=Izvezi rezultate u tabelu ExpireDate=Ograničen datum NbOfSurveys=Broj anketa -NbOfVoters=Br. glasača +NbOfVoters=No. of voters SurveyResults=Rezultati PollAdminDesc=Niste ovlašteni za promjenu svih linija u anketi. Možete maknuti kolonu ili liniju sa %s. Također možete dodati novu kolonu sa %s. 5MoreChoices=Još 5 odabira @@ -49,7 +49,7 @@ votes=glas(ova) NoCommentYet=Nema komentara za anketu CanComment=Glasači mogu komentirati anketu CanSeeOthersVote=Glasači mogu vidjeti glasove drugih glasača -SelectDayDesc=Za svaki odabrani dan, možete odabrati, ili ne morate, sat sastanka u sljedećem formatu:
- prazno,
- "8h", "8H" ili "8:00" za početak sastanka,
- "8-11", "8h-11h", "8H-11H" ili "8:00-11:00" za početak i kraj sastanka,
- "8h15-11h15", "8H15-11H15" ili "8:15-11:15" za isto samo sa minutama. +SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format:
- empty,
- "8h", "8H" or "8:00" to give a meeting's start hour,
- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,
- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. BackToCurrentMonth=Povratak na trenutni mjesec ErrorOpenSurveyFillFirstSection=Niste popunili prvi dio kreiranja ankete ErrorOpenSurveyOneChoice=Unesite barem jedan odabir diff --git a/htdocs/langs/hr_HR/orders.lang b/htdocs/langs/hr_HR/orders.lang index 0009a2edad2..484bcfa17ce 100644 --- a/htdocs/langs/hr_HR/orders.lang +++ b/htdocs/langs/hr_HR/orders.lang @@ -17,7 +17,7 @@ SupplierOrder=Narudžba dobavljaču SuppliersOrders=Narudžbe dobavljačima SuppliersOrdersRunning=Otvorene narudžbe dobavljačima CustomerOrder=Sales Order -CustomersOrders=Sales Orders +CustomersOrders=Narudžbe kupaca CustomersOrdersRunning=Current sales orders CustomersOrdersAndOrdersLines=Sales orders and order details OrdersDeliveredToBill=Sales orders delivered to bill @@ -60,7 +60,7 @@ ProductQtyInDraftOrWaitingApproved=Količina proizvoda u skicama ili odobrenim n MenuOrdersToBill=Isporučene narudžbe MenuOrdersToBill2=Naplative narudžbe ShipProduct=Pošalji proizvod -CreateOrder=Kreiraj narudžbu +CreateOrder=Izradi narudžbu RefuseOrder=Odbij narudžbu ApproveOrder=Odobri narudžbu Approve2Order=Odobri narudžbu (druga razina) @@ -69,7 +69,7 @@ UnvalidateOrder=Neovjeri narudžbu DeleteOrder=Obriši narudžbu CancelOrder=Poništi narudžbu OrderReopened= Narudžba %s ponovo otvorena -AddOrder=Kreiraj narudžbu +AddOrder=Izradi narudžbu AddToDraftOrders=Dodati u skice narudžbe ShowOrder=Prikaži narudžbu OrdersOpened=Narudžbe za obradu @@ -85,7 +85,7 @@ NbOfOrders=Broj narudžbe OrdersStatistics=Statistike narudžbe OrdersStatisticsSuppliers=Purchase order statistics NumberOfOrdersByMonth=Broj narudžba tijekom mjeseca -AmountOfOrdersByMonthHT=Amount of orders by month (excl. tax) +AmountOfOrdersByMonthHT=Ukupan iznos narudžbi po mjesecu (bez PDV-a) ListOfOrders=Lista narudžbi CloseOrder=Zatvori narudžbu ConfirmCloseOrder=Are you sure you want to set this order to delivered? Once an order is delivered, it can be set to billed. @@ -94,7 +94,7 @@ ConfirmValidateOrder=Are you sure you want to validate this order under name ConfirmUnvalidateOrder=Are you sure you want to restore order %s to draft status? ConfirmCancelOrder=Are you sure you want to cancel this order? ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? -GenerateBill=Kreiraj račun +GenerateBill=Izradi račun ClassifyShipped=Označi kao isporučeno DraftOrders=Skica narudžbi DraftSuppliersOrders=Draft purchase orders @@ -106,7 +106,7 @@ RefOrderSupplierShort=Ref. order vendor SendOrderByMail=Pošalji narudžbu e-poštom ActionsOnOrder=Događaji vezani uz narudžbu NoArticleOfTypeProduct=Ne postoji stavka tipa proizvod tako da nema isporučive stavke za ovu narudžbu -OrderMode=Metoda narudžbe +OrderMode=Način narudžbe AuthorRequest=Autor zahtjeva UserWithApproveOrderGrant=Korisniku je dozvoljeno "odobravanje narudžbi" PaymentOrderRef=Plaćanje po narudžbi %s diff --git a/htdocs/langs/hr_HR/printing.lang b/htdocs/langs/hr_HR/printing.lang index c699c5187cd..32f9944db38 100644 --- a/htdocs/langs/hr_HR/printing.lang +++ b/htdocs/langs/hr_HR/printing.lang @@ -2,7 +2,7 @@ Module64000Name=Direktni ispis Module64000Desc=Omogući sistem direktnog ispisa PrintingSetup=Podešavanje sistema direktnog ispisa -PrintingDesc=This module adds a Print button to send documents directly to a printer (without opening document into an application) with various module. +PrintingDesc=This module adds a Print button to various modules to allow documents to be printed directly to a printer without needing to open the document in another application. MenuDirectPrinting=Zadaci direktnog ispisa DirectPrint=Direktni ispis PrintingDriverDesc=Configuration variables for printing driver. @@ -19,15 +19,15 @@ UserConf=Podešavanje prema korisniku PRINTGCP_INFO=Podešavanje Google OAuth API PRINTGCP_AUTHLINK=Autentifikacija PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token -PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. +PrintGCPDesc=This driver allows sending documents directly to a printer using Google Cloud Print. GCP_Name=Naziv GCP_displayName=Prikazani naziv GCP_Id=ID pisača GCP_OwnerName=Vlasnik GCP_State=Stanje pisača GCP_connectionStatus=Online stanje -GCP_Type=Tip pisača -PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. +GCP_Type=Vrsta pisača +PrintIPPDesc=This driver allows sending of documents directly to a printer. It requires a Linux system with CUPS installed. PRINTIPP_HOST=Print server PRINTIPP_PORT=Port PRINTIPP_USER=Korisničko ime @@ -44,9 +44,11 @@ IPP_BW=CB IPP_Color=Kolor IPP_Device=Uređaj IPP_Media=Medij pisača -IPP_Supported=Tip medija +IPP_Supported=Vrsta medija DirectPrintingJobsDesc=This page lists printing jobs found for available printers. -GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. +GoogleAuthNotConfigured=Google OAuth has not been setup. Enable module OAuth and set a Google ID/Secret. GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. +PrintingDriverDescprintipp=Configuration variables for printing driver Cups. PrintTestDescprintgcp=List of Printers for Google Cloud Print. +PrintTestDescprintipp=List of Printers for Cups. diff --git a/htdocs/langs/hr_HR/products.lang b/htdocs/langs/hr_HR/products.lang index 4d43f08396a..48f1ecedb9f 100644 --- a/htdocs/langs/hr_HR/products.lang +++ b/htdocs/langs/hr_HR/products.lang @@ -2,6 +2,7 @@ ProductRef=Proizvod ref. ProductLabel=Oznaka proizvoda ProductLabelTranslated=Prevedena oznaka proizvoda +ProductDescription=Product description ProductDescriptionTranslated=Preveden opis proizvoda ProductNoteTranslated=Prevedena napomena proizvoda ProductServiceCard=Kartica proizvoda/usluga @@ -63,7 +64,7 @@ UpdateDefaultPrice=Promjeni predefiniranu cijenu UpdateLevelPrices=Promijeni cijene za svaki nivo AppliedPricesFrom=Applied from SellingPrice=Prodajna cijena -SellingPriceHT=Selling price (excl. tax) +SellingPriceHT=Prodajna cijena (bez PDV-a) SellingPriceTTC=Prodajna cijena (sa PDV-om) SellingMinPriceTTC=Minimum Selling price (inc. tax) CostPriceDescription=This price field (excl. tax) can be used to store the average amount this product costs to your company. It may be any price you calculate yourself, for example from the average buying price plus average production and distribution cost. @@ -92,8 +93,8 @@ PriceForEachProduct=Proizvodi s specifičnom cijenom SupplierCard=Vendor card PriceRemoved=Cijena uklonjena BarCode=Barkod -BarcodeType=Tip barkoda -SetDefaultBarcodeType=Odredi tip barkoda +BarcodeType=Vrsta barkoda +SetDefaultBarcodeType=Odredi vrstu barkoda BarcodeValue=Vrijednost barkoda NoteNotVisibleOnBill=Bilješka (ne vidi se na računima, ponudama...) ServiceLimitedDuration=Ako je proizvod usluga ograničenog trajanja: @@ -133,7 +134,7 @@ NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product NoSupplierPriceDefinedForThisProduct=No vendor price/qty defined for this product PredefinedProductsToSell=Predefined Product PredefinedServicesToSell=Predefined Service -PredefinedProductsAndServicesToSell=Predefinirani proizvodi/usluge za prodaju +PredefinedProductsAndServicesToSell=Upisani proizvodi i usluge na prodaju PredefinedProductsToPurchase=Predefinirani proizvod za kupovinu PredefinedServicesToPurchase=Predifinirana usluga za kupovinu PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase diff --git a/htdocs/langs/hr_HR/projects.lang b/htdocs/langs/hr_HR/projects.lang index c40b0ff3f7b..5a9ef2fdf4e 100644 --- a/htdocs/langs/hr_HR/projects.lang +++ b/htdocs/langs/hr_HR/projects.lang @@ -26,7 +26,7 @@ OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yo ImportDatasetTasks=Tasks of projects ProjectCategories=Project tags/categories NewProject=Novi projekt -AddProject=Kreiraj projekt +AddProject=Izradi projekt DeleteAProject=Izbriši projekt DeleteATask=Izbriši zadatak ConfirmDeleteAProject=Are you sure you want to delete this project? @@ -66,7 +66,7 @@ TaskDateStart=Početak zadatka TaskDateEnd=Završetak zadatka TaskDescription=Opis zadatka NewTask=Novi zadatak -AddTask=Kreiraj zadatak +AddTask=Izradi zadatak AddTimeSpent=Create time spent AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivnost diff --git a/htdocs/langs/hr_HR/propal.lang b/htdocs/langs/hr_HR/propal.lang index 676fdc0efe3..9a8c94fd209 100644 --- a/htdocs/langs/hr_HR/propal.lang +++ b/htdocs/langs/hr_HR/propal.lang @@ -22,7 +22,7 @@ SearchAProposal=Pronađi ponudu NoProposal=Bez ponude ProposalsStatistics=Statistika ponuda NumberOfProposalsByMonth=Broj u mjesecu -AmountOfProposalsByMonthHT=Amount by month (excl. tax) +AmountOfProposalsByMonthHT=Iznos po mjesecu (bez PDV-a) NbOfProposals=Broj ponuda ShowPropal=Prikaži ponudu PropalsDraft=Skice diff --git a/htdocs/langs/hr_HR/resource.lang b/htdocs/langs/hr_HR/resource.lang index 1b85c37daf1..c16e266ebe7 100644 --- a/htdocs/langs/hr_HR/resource.lang +++ b/htdocs/langs/hr_HR/resource.lang @@ -5,13 +5,13 @@ DeleteResource=Obriši sredstvo ConfirmDeleteResourceElement=Potvrdite brisanje sredstva za ovaj element NoResourceInDatabase=Nema sredstava u bazi NoResourceLinked=Nema povezanih sredstava - +ActionsOnResource=Events about this resource ResourcePageIndex=Popis sredstava ResourceSingular=Sredstvo ResourceCard=Kartica sredstva -AddResource=Kreiraj sredstvo +AddResource=Izradi sredstvo ResourceFormLabel_ref=Naziv sredstva -ResourceType=Tip sredstva +ResourceType=Vrsta sredstva ResourceFormLabel_description=Opis sredstva ResourcesLinkedToElement=Sredstva povezana s elementom diff --git a/htdocs/langs/hr_HR/sendings.lang b/htdocs/langs/hr_HR/sendings.lang index aff0410d44a..433fc80c152 100644 --- a/htdocs/langs/hr_HR/sendings.lang +++ b/htdocs/langs/hr_HR/sendings.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - sendings -RefSending=Ref. isporuke +RefSending=Broj Sending=Isporuka Sendings=Isporuke AllSendings=Sve otpremnice @@ -7,20 +7,20 @@ Shipment=Pošiljka Shipments=Pošiljke ShowSending=Prikaži otrpemnice Receivings=Dostavne primke -SendingsArea=Sučelje otprema +SendingsArea=Otprema ListOfSendings=Popis pošiljki -SendingMethod=Metoda dostave +SendingMethod=Način dostave LastSendings=Zadnjih %s isporuka StatisticsOfSendings=Statistike pošiljki NbOfSendings=Broj pošiljki NumberOfShipmentsByMonth=Broj pošiljki tijekom mjeseca SendingCard=Kartica otpreme NewSending=Nova pošiljka -CreateShipment=Kreiraj pošiljku +CreateShipment=Izradi pošiljku QtyShipped=Količina poslana QtyShippedShort=Qty ship. QtyPreparedOrShipped=Qty prepared or shipped -QtyToShip=Količina za poslat +QtyToShip=Količina za isporuku QtyReceived=Količina primljena QtyInOtherShipments=Qty in other shipments KeepToShip=Preostalo za isporuku @@ -35,29 +35,29 @@ StatusSendingProcessed=Obrađen StatusSendingDraftShort=Skica StatusSendingValidatedShort=Ovjereno StatusSendingProcessedShort=Obrađen -SendingSheet=Otpremni list +SendingSheet=Dostavnica ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Upozorenje, nema prozvoda za isporuku. StatsOnShipmentsOnlyValidated=Statistika se vodi po otpremnicama koje su ovjerene. Korišteni datum je datum ovjere otpremnice (planirani datum isporuke nije uvjek poznat). -DateDeliveryPlanned=Planirani dan isporuke +DateDeliveryPlanned=Planirani datum isporuke RefDeliveryReceipt=Ref delivery receipt StatusReceipt=Status delivery receipt DateReceived=Datum primitka pošiljke -SendShippingByEMail=Pošalji pošiljku putem e-pošte -SendShippingRef=Podnošenje otpeme %s +SendShippingByEMail=Send shipment by email +SendShippingRef=Dostavnica %s ActionsOnShipping=Događaji na otpremnici -LinkToTrackYourPackage=Poveznica za pračenje pošiljke +LinkToTrackYourPackage=Poveznica na praćenje pošiljke ShipmentCreationIsDoneFromOrder=Trenutno, kreiranje nove otpremnice se radi iz kartice narudžbe. ShipmentLine=Stavka otpremnice -ProductQtyInCustomersOrdersRunning=Product quantity into open customer orders +ProductQtyInCustomersOrdersRunning=Product quantity into open sales orders ProductQtyInSuppliersOrdersRunning=Product quantity into open purchase orders -ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received -NoProductToShipFoundIntoStock=Nije pronađen proizvod za isporuku u skladištu %s. Ispravite zalihe ili se vratite nazad i odaberite drugo skladište. -WeightVolShort=Težina/Volumen +ProductQtyInShipmentAlreadySent=Product quantity from open sales order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open purchase order already received +NoProductToShipFoundIntoStock=No product to ship found in warehouse %s. Correct stock or go back to choose another warehouse. +WeightVolShort=Masa/Volumen ValidateOrderFirstBeforeShipment=Prvo morate ovjeriti narudžbu prije izrade otpremnice. # Sending methods @@ -69,4 +69,4 @@ SumOfProductWeights=Ukupna težina proizvoda # warehouse details DetailWarehouseNumber= Skladišni detalji -DetailWarehouseFormat= W:%s (Qty : %d) +DetailWarehouseFormat= W:%s (Qty: %d) diff --git a/htdocs/langs/hr_HR/stripe.lang b/htdocs/langs/hr_HR/stripe.lang index b8d4e4275e8..b730288aa37 100644 --- a/htdocs/langs/hr_HR/stripe.lang +++ b/htdocs/langs/hr_HR/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/hr_HR/supplier_proposal.lang b/htdocs/langs/hr_HR/supplier_proposal.lang index 3f24fc4f0f1..524872ec4ab 100644 --- a/htdocs/langs/hr_HR/supplier_proposal.lang +++ b/htdocs/langs/hr_HR/supplier_proposal.lang @@ -15,7 +15,7 @@ SupplierProposals=Ponude dobavljača SupplierProposalsShort=Ponude dobavljača NewAskPrice=Novo traženje cijene ShowSupplierProposal=Prikaži zahtjev -AddSupplierProposal=Kreiraj zahtjev za cijenom +AddSupplierProposal=Izradi zahtjev za cijenom SupplierProposalRefFourn=Vendor ref SupplierProposalDate=Datum isporuke SupplierProposalRefFournNotice=Prije zatvaranja s "Prihvačeno", provjerite reference dobavljača. @@ -32,8 +32,8 @@ SupplierProposalStatusValidatedShort=Ovjereno SupplierProposalStatusClosedShort=Zatvoreno SupplierProposalStatusSignedShort=Prihvačeno SupplierProposalStatusNotSignedShort=Odbijeno -CopyAskFrom=Kreiraj zahtjev za cijenom kopirajući postojeći zahtjev -CreateEmptyAsk=Kreiraj prazan zahtjev +CopyAskFrom=Izradi zahtjev za cijenom kopirajući postojeći zahtjev +CreateEmptyAsk=Izradi prazan zahtjev 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? SendAskByMail=Pošalji zahtjev za cijenom poštom diff --git a/htdocs/langs/hr_HR/suppliers.lang b/htdocs/langs/hr_HR/suppliers.lang index 7572f5a92cb..f75d38c44c8 100644 --- a/htdocs/langs/hr_HR/suppliers.lang +++ b/htdocs/langs/hr_HR/suppliers.lang @@ -1,10 +1,10 @@ -# Dolibarr language file - Source file is en_US - suppliers +# Dolibarr language file - Source file is en_US - vendors Suppliers=Vendors SuppliersInvoice=Vendor invoice ShowSupplierInvoice=Show Vendor Invoice NewSupplier=New vendor History=Povijest -ListOfSuppliers=List of vendors +ListOfSuppliers=Popis dobavljača ShowSupplier=Show vendor OrderDate=Datum narudžbe BuyingPriceMin=Best buying price @@ -15,15 +15,15 @@ SomeSubProductHaveNoPrices=Neki od pod proizvoda nemaju definiranu cijenu AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price SupplierPrices=Vendor prices -ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ova ref. dobavljača već je povezana s ref.: %s +ReferenceSupplierIsAlreadyAssociatedWithAProduct=This vendor reference is already associated with a product: %s NoRecordedSuppliers=No vendor recorded SupplierPayment=Vendor payment SuppliersArea=Vendor area -RefSupplierShort=Ref. vendor +RefSupplierShort=Oznaka dobavljača Availability=Dostupnost -ExportDataset_fournisseur_1=Vendor invoices list and invoice lines +ExportDataset_fournisseur_1=Vendor invoices and invoice details ExportDataset_fournisseur_2=Vendor invoices and payments -ExportDataset_fournisseur_3=Purchase orders and order lines +ExportDataset_fournisseur_3=Purchase orders and order details ApproveThisOrder=Odobri narudžbu ConfirmApproveThisOrder=Are you sure you want to approve order %s? DenyingThisOrder=Zabrani narudžbu @@ -35,13 +35,13 @@ ListOfSupplierProductForSupplier=List of products and prices for vendor %s%s. PasswordChangeRequest=Request to change password for %s @@ -61,8 +61,8 @@ LinkToCompanyContact=Veza na komitenta/kontakt LinkedToDolibarrMember=Poveži s članom LinkedToDolibarrUser=Poveži s korisnikom LinkedToDolibarrThirdParty=Veza na Dolibarr komitenta -CreateDolibarrLogin=Kreiraj korisnika -CreateDolibarrThirdParty=Kreiraj komitenta +CreateDolibarrLogin=Izradi korisnika +CreateDolibarrThirdParty=Izradi komitenta LoginAccountDisableInDolibarr=Račun je onemogučen u Dolibarr-u. UsePersonalValue=Koristi osobnu vrijednost InternalUser=Interni korisnik @@ -97,7 +97,7 @@ NbOfPermissions=No. of permissions DontDowngradeSuperAdmin=Samo superadmin može unazaditi superadmina HierarchicalResponsible=Nadglednik HierarchicView=Hijerarhijski prikaz -UseTypeFieldToChange=Koristi polje Tip za promjenu +UseTypeFieldToChange=Koristi polje Vrsta za promjenu OpenIDURL=OpenID URL LoginUsingOpenID=Koristi OpenID za prijavu WeeklyHours=Hours worked (per week) diff --git a/htdocs/langs/hr_HR/withdrawals.lang b/htdocs/langs/hr_HR/withdrawals.lang index 784d9f2ba53..06c7880bb11 100644 --- a/htdocs/langs/hr_HR/withdrawals.lang +++ b/htdocs/langs/hr_HR/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Isplatna datoteka SetToStatusSent=Postavi status "Datoteka poslana" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistika statusa stavki -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang index d6b1e1ba041..b001cd9bf1a 100644 --- a/htdocs/langs/hu_HU/accountancy.lang +++ b/htdocs/langs/hu_HU/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Természet +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Eladások AccountingJournalType3=Beszerzések @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index 381bd02eadf..b7a4c9177cb 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Értesítések +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Figyelem, egyes Linux rendszereken, hogy küldjön e-mailt az e-mail, sendmail beállítás végrehajtása lehetőséget kell conatins-ba (paraméter mail.force_extra_parameters be a php.ini fájl). Ha néhány címzett nem fogadja az üzeneteket, próbáld meg szerkeszteni ezt a PHP paraméter = mail.force_extra_parameters-ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Keresés optimalizálása -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug betöltve. -XCacheInstalled=XCache betöltve. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang index 3b14581d116..f09b0754b02 100644 --- a/htdocs/langs/hu_HU/bills.lang +++ b/htdocs/langs/hu_HU/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Fizetés magasabb az emlékeztetőben leírtnál HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Osztályozva mint 'Fizetve' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Osztályozva mint 'Részben fizetve' ClassifyCanceled=Osztályozva mint 'Elhagyott' ClassifyClosed=Osztályozva mint 'Lezárt' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Helyetesítő számla megjelenítése ShowInvoiceAvoir=Jóváírás mutatása ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Fizetés mutatása AlreadyPaid=Már kifizetett AlreadyPaidBack=Visszafizetés megtörtént diff --git a/htdocs/langs/hu_HU/errors.lang b/htdocs/langs/hu_HU/errors.lang index 6819767dad9..53bc6470549 100644 --- a/htdocs/langs/hu_HU/errors.lang +++ b/htdocs/langs/hu_HU/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Speciális karakterek használata nem engedé ErrorNumRefModel=A referencia létezik az adatbázis (%s), és nem kompatibilis ezzel a számozással a szabály. Vegye rekord vagy átnevezték hivatkozással, hogy aktiválja ezt a modult. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Hiba a maszk ErrorBadMaskFailedToLocatePosOfSequence=Hiba, maszk sorozatszám nélkül ErrorBadMaskBadRazMonth=Hiba, rossz érték visszaállítása @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang index 0f997f74480..c94e91f20af 100644 --- a/htdocs/langs/hu_HU/main.lang +++ b/htdocs/langs/hu_HU/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kapcsolat/cím ehhez a harmadik félhez AddressesForCompany=Cím ehhez a harmadik félhez ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Események ezzel a taggal kapcsolatban ActionsOnProduct=Events about this product NActionsLate=%s késés @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Tervezet készítése SetToDraft=Vissza a vázlathoz ClickToEdit=Kattintson a szerkesztéshez diff --git a/htdocs/langs/hu_HU/products.lang b/htdocs/langs/hu_HU/products.lang index 4045450ea37..d60bbc8519c 100644 --- a/htdocs/langs/hu_HU/products.lang +++ b/htdocs/langs/hu_HU/products.lang @@ -2,6 +2,7 @@ ProductRef=Termék ref#. ProductLabel=Termék neve ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Termék/Szolgáltatás kártya diff --git a/htdocs/langs/hu_HU/stripe.lang b/htdocs/langs/hu_HU/stripe.lang index 224c4a49612..436eed8920c 100644 --- a/htdocs/langs/hu_HU/stripe.lang +++ b/htdocs/langs/hu_HU/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/hu_HU/withdrawals.lang b/htdocs/langs/hu_HU/withdrawals.lang index 1455787b6b5..0c3d5001cc4 100644 --- a/htdocs/langs/hu_HU/withdrawals.lang +++ b/htdocs/langs/hu_HU/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang index e54efc59469..59a863574ff 100644 --- a/htdocs/langs/id_ID/accountancy.lang +++ b/htdocs/langs/id_ID/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=init akuntansi InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Pilihan OptionModeProductSell=Mode penjualan OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang index 122aa5382fb..1ef3844c9e5 100644 --- a/htdocs/langs/id_ID/admin.lang +++ b/htdocs/langs/id_ID/admin.lang @@ -574,7 +574,7 @@ Module510Name=Gaji Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifikasi +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/id_ID/bills.lang b/htdocs/langs/id_ID/bills.lang index 81ec0d98abc..f59b569b7f2 100644 --- a/htdocs/langs/id_ID/bills.lang +++ b/htdocs/langs/id_ID/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Pengingat untuk pembayaran yang lebih tinggi HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Menggolongkan 'Telah dibayar' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Menggolongkan 'Telah dibayarkan sebagian' ClassifyCanceled=Menggolongkan 'Ditinggalkan' ClassifyClosed=Menggolongkan 'Ditutup' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/id_ID/errors.lang b/htdocs/langs/id_ID/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/id_ID/errors.lang +++ b/htdocs/langs/id_ID/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang index 9a83f1a851e..b294092f3c7 100644 --- a/htdocs/langs/id_ID/main.lang +++ b/htdocs/langs/id_ID/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/id_ID/products.lang b/htdocs/langs/id_ID/products.lang index e36e3d80ff7..35807138810 100644 --- a/htdocs/langs/id_ID/products.lang +++ b/htdocs/langs/id_ID/products.lang @@ -2,6 +2,7 @@ ProductRef=Item ref. ProductLabel=Item label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/id_ID/stripe.lang b/htdocs/langs/id_ID/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/id_ID/stripe.lang +++ b/htdocs/langs/id_ID/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/id_ID/withdrawals.lang b/htdocs/langs/id_ID/withdrawals.lang index a243902eaf8..eddea5d8abc 100644 --- a/htdocs/langs/id_ID/withdrawals.lang +++ b/htdocs/langs/id_ID/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/is_IS/accountancy.lang b/htdocs/langs/is_IS/accountancy.lang index 54ec9883ec9..c567b93094e 100644 --- a/htdocs/langs/is_IS/accountancy.lang +++ b/htdocs/langs/is_IS/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Náttúra +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Velta AccountingJournalType3=Innkaup @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index 7deb68bf5a0..fcda617c4b1 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Tilkynningar +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Aðvörun, á sumum Linux kerfi, að senda tölvupóst úr bréfinu, sendu mail framkvæmd skipulag verður conatins valkostur-BA (breytu mail.force_extra_parameters í skrá php.ini þinn). Ef viðtakendur eru margir aldrei fá tölvupóst, reyna að breyta þessari PHP breytu með mail.force_extra_parameters =-BA). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/is_IS/bills.lang b/htdocs/langs/is_IS/bills.lang index d4bcf37cc17..7c4b15c6d68 100644 --- a/htdocs/langs/is_IS/bills.lang +++ b/htdocs/langs/is_IS/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Greiðsla hærri en áminning að borga HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Flokka 'Greiddur' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Flokka 'Greiddur hluta' ClassifyCanceled=Flokka 'Yfirgefinn' ClassifyClosed=Lokað Flokka ' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Sýna skipta Reikningar ShowInvoiceAvoir=Sýna kredit athugið ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Sýna greiðslu AlreadyPaid=Þegar greitt AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/is_IS/errors.lang b/htdocs/langs/is_IS/errors.lang index 0f5966e525c..eef5defc668 100644 --- a/htdocs/langs/is_IS/errors.lang +++ b/htdocs/langs/is_IS/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Sérstafir eru ekki leyfðar í reitinn " %s ErrorNumRefModel=Vísun til staðar í gagnagrunninum ( %s ) og er ekki með þessari tala reglu. Fjarlægja færslu eða endurnefna þær tilvísun til að virkja þessa einingu. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Villa á grímu ErrorBadMaskFailedToLocatePosOfSequence=Villa, gríma án fjölda röð ErrorBadMaskBadRazMonth=Villa, slæmt endurstilla gildi @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/is_IS/main.lang b/htdocs/langs/is_IS/main.lang index 14b355fae1d..8e128f16e1f 100644 --- a/htdocs/langs/is_IS/main.lang +++ b/htdocs/langs/is_IS/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Viðburðir um þennan notanda ActionsOnProduct=Events about this product NActionsLate=%s seint @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Búa til drög SetToDraft=Back to draft ClickToEdit=Smelltu til að breyta diff --git a/htdocs/langs/is_IS/products.lang b/htdocs/langs/is_IS/products.lang index 563abacb975..84eddde13a9 100644 --- a/htdocs/langs/is_IS/products.lang +++ b/htdocs/langs/is_IS/products.lang @@ -2,6 +2,7 @@ ProductRef=Vara dómari. ProductLabel=Merkimiða vöru ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Vörur / Þjónusta kort diff --git a/htdocs/langs/is_IS/stripe.lang b/htdocs/langs/is_IS/stripe.lang index 434ccddb77c..5d320f9ed1a 100644 --- a/htdocs/langs/is_IS/stripe.lang +++ b/htdocs/langs/is_IS/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/is_IS/withdrawals.lang b/htdocs/langs/is_IS/withdrawals.lang index dafb7abf728..e934164fafa 100644 --- a/htdocs/langs/is_IS/withdrawals.lang +++ b/htdocs/langs/is_IS/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang index 49e09d6bed2..d94debdc2fd 100644 --- a/htdocs/langs/it_IT/accountancy.lang +++ b/htdocs/langs/it_IT/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Libri contabili AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Mostra diario contabile -Nature=Natura +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Vendite AccountingJournalType3=Acquisti @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Id Piano dei Conti InitAccountancy=Inizializza contabilità InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opzioni OptionModeProductSell=Modalità vendita OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index 61af6b824bb..690abd0b4c7 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -508,7 +508,7 @@ Module22Name=Mass Emailings Module22Desc=Manage bulk emailing Module23Name=Energia Module23Desc=Monitoraggio del consumo energetico -Module25Name=Sales Orders +Module25Name=Ordini Cliente Module25Desc=Sales order management Module30Name=Fatture Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers @@ -574,7 +574,7 @@ Module510Name=Stipendi Module510Desc=Record and track employee payments Module520Name=Prestiti Module520Desc=Gestione dei prestiti -Module600Name=Notifiche +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=Varianti prodotto @@ -871,7 +871,7 @@ Permission1237=Export purchase orders and their details Permission1251=Eseguire importazioni di massa di dati esterni nel database (data load) Permission1321=Esportare fatture attive, attributi e pagamenti Permission1322=Riaprire le fatture pagate -Permission1421=Export sales orders and attributes +Permission1421=Esporta Ordini Cliente e attributi Permission2401=Vedere azioni (eventi o compiti) personali Permission2402=Creare/modificare azioni (eventi o compiti) personali Permission2403=Cancellare azioni (eventi o compiti) personali @@ -958,7 +958,7 @@ DictionarySource=Origine delle proposte/ordini DictionaryAccountancyCategory=Personalized groups for reports DictionaryAccountancysystem=Modelli per piano dei conti DictionaryAccountancyJournal=Libri contabili -DictionaryEMailTemplates=Email Templates +DictionaryEMailTemplates=Modelli e-mail DictionaryUnits=Unità DictionaryMeasuringUnits=Unità di misura DictionaryProspectStatus=Stato cliente potenziale @@ -1090,10 +1090,10 @@ Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Pending bank reconciliation Delays_MAIN_DELAY_MEMBERS=Delayed membership fee Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check deposit not done Delays_MAIN_DELAY_EXPENSEREPORTS=Expense report to approve -SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured. -SetupDescription2=The following two sections are mandatory (the two first entries in the Setup menu): -SetupDescription3=%s -> %s
Basic parameters used to customize the default behavior of your application (e.g for country-related features). -SetupDescription4=%s -> %s
This software is a suite of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module. +SetupDescription1=Prima di iniziare ad utilizzare Dolibarr si devono definire alcuni parametri iniziali ed abilitare/configurare i moduli. +SetupDescription2=Le 2 seguenti sezioni sono obbligatorie (le prime 2 sezioni nel menu Impostazioni): +SetupDescription3=%s -> %s
Parametri di base utilizzati per personalizzare il comportamento predefinito della tua applicazione (es: caratteristiche relative alla nazione). +SetupDescription4=%s -> %s
Questo software è una suite composta da molteplici moduli/applicazioni, tutti più o meno indipendenti. I moduli rilevanti per le tue necessità devono essere abilitati e configurati. Nuovi oggetti/opzioni vengono aggiunti ai menu quando un modulo viene attivato. SetupDescription5=Other Setup menu entries manage optional parameters. LogEvents=Eventi di audit di sicurezza Audit=Audit @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Attributi Complementari (ordini) ExtraFieldsSupplierInvoices=Attributi Complementari (fatture) ExtraFieldsProject=Attributi Complementari (progetti) ExtraFieldsProjectTask=Attributi Complementari (attività) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=L'attributo %s ha un valore errato. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Attenzione: su alcuni sistemi Linux, per poter inviare email, la configurazione di sendmail deve contenere l'opzione -ba (il parametro mail.force_extra_parameters nel file php.ini). Se alcuni destinatari non ricevono messaggi di posta elettronica, provate a modificare questo parametro con mail.force_extra_parameters =-BA). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Sessioni salvate con criptazione tramite Suhosin ConditionIsCurrently=La condizione corrente è %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Ottimizzazione della ricerca -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug caricato -XCacheInstalled=XCache attivato +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1302,7 +1304,7 @@ WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order ##### Suppliers Orders ##### BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order ##### Orders ##### -OrdersSetup=Sales Orders management setup +OrdersSetup=Impostazione gestione Ordini Cliente OrdersNumberingModules=Modelli di numerazione ordini OrdersModelModule=Modelli per ordini in pdf FreeLegalTextOnOrders=Testo libero sugli ordini @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Lista notifiche per utente -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Soglia @@ -1781,13 +1783,13 @@ ExpectedChecksum=Checksum previsto CurrentChecksum=Checksum attuale ForcedConstants=E' richiesto un valore costante MailToSendProposal=Proposte del cliente -MailToSendOrder=Sales orders +MailToSendOrder=Ordini Cliente MailToSendInvoice=Fatture attive MailToSendShipment=Spedizioni MailToSendIntervention=Interventi MailToSendSupplierRequestForQuotation=Richiesta di preventivo MailToSendSupplierOrder=Ordini d'acquisto -MailToSendSupplierInvoice=Fatture fornitore +MailToSendSupplierInvoice=Fatture Fornitore MailToSendContract=Contratti MailToThirdparty=Soggetti terzi MailToMember=Membri @@ -1875,8 +1877,8 @@ NoNewEmailToProcess=No new email (matching filters) to process NothingProcessed=Nothing done 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 third party if necessary) +CreateLeadAndThirdParty=Crea Opportunità (e Soggetto terzo se necessario) +CreateTicketAndThirdParty=Crea Ticket (e Soggetto terzo se necessario) CodeLastResult=Ultimo codice risultato NbOfEmailsInInbox=Number of emails in source directory LoadThirdPartyFromName=Load third party searching on %s (load only) @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/it_IT/bills.lang b/htdocs/langs/it_IT/bills.lang index 4955a8a9598..6579fb17d2d 100644 --- a/htdocs/langs/it_IT/bills.lang +++ b/htdocs/langs/it_IT/bills.lang @@ -6,8 +6,8 @@ BillsCustomer=Fattura attive BillsSuppliers=Fatture fornitore BillsCustomersUnpaid=Fatture attive non pagate BillsCustomersUnpaidForCompany=Fatture attive non pagate per %s -BillsSuppliersUnpaid=Unpaid vendor invoices -BillsSuppliersUnpaidForCompany=Unpaid vendors invoices for %s +BillsSuppliersUnpaid=Fatture Fornitore non pagate +BillsSuppliersUnpaidForCompany=Fatture Fornitore non pagate per %s BillsLate=Ritardi nei pagamenti BillsStatistics=Statistiche fatture attive BillsStatisticsSuppliers=Vendors invoices statistics @@ -54,7 +54,7 @@ InvoiceCustomer=Fattura attiva CustomerInvoice=Fattura attive CustomersInvoices=Fatture attive SupplierInvoice=Fattura fornitore -SuppliersInvoices=Vendors invoices +SuppliersInvoices=Fatture Fornitore SupplierBill=Fattura fornitore SupplierBills=Fatture passive Payment=Pagamento @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Pagamento superiore alla rimanenza da pagare HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classifica come "pagata" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classifica come "parzialmente pagata" ClassifyCanceled=Classifica come "abbandonata" ClassifyClosed=Classifica come "chiusa" @@ -172,7 +173,7 @@ AllCustomerTemplateInvoices=Tutti i modelli delle fatture OtherBills=Altre fatture DraftBills=Fatture in bozza CustomersDraftInvoices=Bozze di fatture attive -SuppliersDraftInvoices=Vendor draft invoices +SuppliersDraftInvoices=Fatture Fornitore in bozza Unpaid=Non pagato ConfirmDeleteBill=Vuoi davvero cancellare questa fattura? ConfirmValidateBill=Vuoi davvero convalidare questa fattura con riferimento %s? @@ -214,6 +215,20 @@ ShowInvoiceReplace=Visualizza la fattura sostitutiva ShowInvoiceAvoir=Visualizza nota di credito ShowInvoiceDeposit=Mostra fattura d'acconto ShowInvoiceSituation=Mostra avanzamento lavori +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Visualizza pagamento AlreadyPaid=Già pagato AlreadyPaidBack=Già rimborsato @@ -248,7 +263,7 @@ DateInvoice=Data di fatturazione DatePointOfTax=Punto di imposta NoInvoice=Nessuna fattura ClassifyBill=Classificazione fattura -SupplierBillsToPay=Unpaid vendor invoices +SupplierBillsToPay=Fatture Fornitore non pagate CustomerBillsUnpaid=Fatture attive non pagate NonPercuRecuperable=Non recuperabile SetConditions=Imposta Termini di Pagamento diff --git a/htdocs/langs/it_IT/boxes.lang b/htdocs/langs/it_IT/boxes.lang index 1879e9f03c1..3ed6053cd40 100644 --- a/htdocs/langs/it_IT/boxes.lang +++ b/htdocs/langs/it_IT/boxes.lang @@ -7,12 +7,12 @@ BoxLastProductsInContract=Ultimi %s prodotti/servizi contrattualizzati BoxLastSupplierBills=Latest Vendor invoices BoxLastCustomerBills=Latest Customer invoices BoxOldestUnpaidCustomerBills=Ultime fatture attive non pagate -BoxOldestUnpaidSupplierBills=Oldest unpaid vendor invoices +BoxOldestUnpaidSupplierBills=Fatture Fornitore non pagate più vecchie BoxLastProposals=Ultime proposte commerciali BoxLastProspects=Ultimi clienti potenziali modificati BoxLastCustomers=Ultimi clienti modificati BoxLastSuppliers=Ultimi fornitori modificati -BoxLastCustomerOrders=Latest sales orders +BoxLastCustomerOrders=Ultimi Ordini Cliente BoxLastActions=Ultime azioni BoxLastContracts=Ultimi contratti BoxLastContacts=Ultimi contatti/indirizzi @@ -26,8 +26,8 @@ BoxTitleLastSuppliers=Ultimi %s ordini fornitore BoxTitleLastModifiedSuppliers=Fornitori: ultimi %s modificati BoxTitleLastModifiedCustomers=Clienti: ultimi %s modificati BoxTitleLastCustomersOrProspects=Ultimi %s clienti o potenziali clienti -BoxTitleLastCustomerBills=Latest %s Customer invoices -BoxTitleLastSupplierBills=Latest %s Vendor invoices +BoxTitleLastCustomerBills=Ultime %s Fatture Cliente +BoxTitleLastSupplierBills=Ultime %sFatture Fornitore BoxTitleLastModifiedProspects=Clienti potenziali: ultimi %s modificati BoxTitleLastModifiedMembers=Ultimi %s membri BoxTitleLastFicheInter=Ultimi %s interventi modificati @@ -52,11 +52,11 @@ ClickToAdd=Clicca qui per aggiungere NoRecordedCustomers=Nessun cliente registrato NoRecordedContacts=Nessun contatto registrato NoActionsToDo=Nessuna azione da fare -NoRecordedOrders=No recorded sales orders +NoRecordedOrders=Nessun Ordine Cliente registrato NoRecordedProposals=Nessuna proposta registrata NoRecordedInvoices=Nessuna fattura attiva registrata NoUnpaidCustomerBills=Nessuna fattura attiva non pagata -NoUnpaidSupplierBills=No unpaid vendor invoices +NoUnpaidSupplierBills=Nessuna Fattura Fornitore non pagata NoModifiedSupplierBills=No recorded vendor invoices NoRecordedProducts=Nessun prodotto/servizio registrato NoRecordedProspects=Nessun potenziale cliente registrato @@ -67,7 +67,7 @@ BoxLatestSupplierOrders=Latest purchase orders NoSupplierOrder=No recorded purchase order BoxCustomersInvoicesPerMonth=Fatture cliente al mese BoxSuppliersInvoicesPerMonth=Vendor Invoices per month -BoxCustomersOrdersPerMonth=Sales Orders per month +BoxCustomersOrdersPerMonth=Ordini Cliente per mese BoxSuppliersOrdersPerMonth=Vendor Orders per month BoxProposalsPerMonth=proposte al mese NoTooLowStockProducts=Nessun prodotto sotto la soglia minima di scorte diff --git a/htdocs/langs/it_IT/companies.lang b/htdocs/langs/it_IT/companies.lang index 556096c3565..e148e1d10ce 100644 --- a/htdocs/langs/it_IT/companies.lang +++ b/htdocs/langs/it_IT/companies.lang @@ -12,7 +12,7 @@ MenuNewSupplier=Nuovo fornitore MenuNewPrivateIndividual=Nuovo privato NewCompany=Nuova società (cliente, cliente potenziale, fornitore) NewThirdParty=Nuovo soggetto terzo (cliente potenziale , cliente, fornitore) -CreateDolibarrThirdPartySupplier=Crea una terza parte (fornitore) +CreateDolibarrThirdPartySupplier=Crea un Soggetto terzo (fornitore) CreateThirdPartyOnly=Crea soggetto terzo CreateThirdPartyAndContact=Crea un soggetto terzo + un contatto ProspectionArea=Area clienti potenziali @@ -29,9 +29,9 @@ AliasNameShort=Pseudonimo Companies=Società CountryIsInEEC=Paese appartenente alla Comunità Economica Europea PriceFormatInCurrentLanguage=Price display format in the current language and currency -ThirdPartyName=Third-party name -ThirdPartyEmail=Third-party email -ThirdParty=Third-party +ThirdPartyName=Nome Soggetto terzo +ThirdPartyEmail=e-mail Soggetto terzo +ThirdParty=Soggetto terzo ThirdParties=Soggetti Terzi ThirdPartyProspects=Clienti potenziali ThirdPartyProspectsStats=Clienti potenziali @@ -39,7 +39,7 @@ ThirdPartyCustomers=Clienti ThirdPartyCustomersStats=Clienti ThirdPartyCustomersWithIdProf12=Clienti con %s o %s ThirdPartySuppliers=Fornitori -ThirdPartyType=Third-party type +ThirdPartyType=Tipo di Soggetto terzo Individual=Privato ToCreateContactWithSameName=Will automatically create a contact/address with same information as the third party under the third party. In most cases, even if your third party is a physical person, creating a third party alone is enough. ParentCompany=Società madre diff --git a/htdocs/langs/it_IT/errors.lang b/htdocs/langs/it_IT/errors.lang index b27e9b572f4..4625655d891 100644 --- a/htdocs/langs/it_IT/errors.lang +++ b/htdocs/langs/it_IT/errors.lang @@ -23,7 +23,7 @@ ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Questo contatto è già tra i contatti di questo tipo ErrorCashAccountAcceptsOnlyCashMoney=Questo conto corrente è un conto di cassa e accetta solo pagamenti in contanti. ErrorFromToAccountsMustDiffers=I conti bancari di origine e destinazione devono essere diversi. -ErrorBadThirdPartyName=Bad value for third-party name +ErrorBadThirdPartyName=Valore non valido per Nome Soggetto terzo ErrorProdIdIsMandatory=%s obbligatorio ErrorBadCustomerCodeSyntax=Sintassi del codice cliente errata ErrorBadBarCodeSyntax=Bad syntax for barcode. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned. @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=I caratteri speciali non sono ammessi per il ErrorNumRefModel=Esiste un riferimento nel database (%s) e non è compatibile con questa regola di numerazione. Rimuovere o rinominare il record per attivare questo modulo. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Errore sulla maschera ErrorBadMaskFailedToLocatePosOfSequence=Errore, maschera senza numero di sequenza ErrorBadMaskBadRazMonth=Errore, valore di reset non valido @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications @@ -228,8 +229,8 @@ WarningPassIsEmpty=Attenzione, il database è accessibile senza password. Questa WarningConfFileMustBeReadOnly=Attenzione, il file di configurazione htdocs/conf/conf.php è scrivibile dal server web. Questa è una grave falla di sicurezza! Impostare il file in sola lettura per l'utente utilizzato dal server web. Se si utilizza Windows e il formato FAT per il disco, dovete sapere che tale filesystem non consente la gestione delle autorizzazioni sui file, quindi non può essere completamente sicuro. WarningsOnXLines=Warning su %s righe del sorgente WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup. -WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file install.lock into directory %s. Omitting the creation of this file is a grave security risk. -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup). +WarningLockFileDoesNotExists=Attenzione, una volta terminato il setup, devi disabilitare gli strumenti di installazione/migrazione aggiungendo il file install.lock nella directory %s. Omettendo la creazione di questo file è un grave riscuio per la sicurezza. +WarningUntilDirRemoved=Tutti gli avvisi di sicurezza (visibili solo dagli amministratori) rimarranno attivi fintanto che la vulnerabilità è presente (o la costante MAIN_REMOVE_INSTALL_WARNING viene aggiunta in Impostazioni->Altre impostazioni). WarningCloseAlways=Attenzione, la chiusura è effettiva anche se il numero degli elementi non coincide fra inizio e fine. Abilitare questa opzione con cautela. WarningUsingThisBoxSlowDown=Attenzione: l'uso di questo box rallenterà pesantemente tutte le pagine che lo visualizzano WarningClickToDialUserSetupNotComplete=Le impostazioni di informazione del ClickToDial per il tuo utente non sono complete (vedi la scheda ClickToDial sulla tua scheda utente) diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang index 1cdfe3e6746..de9aa73f69b 100644 --- a/htdocs/langs/it_IT/main.lang +++ b/htdocs/langs/it_IT/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contatti/indirizzi per questo soggetto terzo AddressesForCompany=Indirizzi per questo soggetto terzo ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Azioni su questo membro ActionsOnProduct=Eventi su questo prodotto NActionsLate=%s azioni in ritardo @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Collega a contratto LinkToIntervention=Collega a intervento +LinkToTicket=Link to ticket CreateDraft=Crea bozza SetToDraft=Ritorna a bozza ClickToEdit=Clicca per modificare @@ -875,7 +877,7 @@ TitleSetToDraft=Torna a Bozza ConfirmSetToDraft=Are you sure you want to go back to Draft status? ImportId=ID di importazione Events=Eventi -EMailTemplates=Email templates +EMailTemplates=Modelli e-mail FileNotShared=File non condiviso con pubblico esterno Project=Progetto Projects=Progetti @@ -937,8 +939,8 @@ SearchIntoProductsOrServices=Prodotti o servizi SearchIntoProjects=Progetti SearchIntoTasks=Compiti SearchIntoCustomerInvoices=Fatture attive -SearchIntoSupplierInvoices=Fatture fornitore -SearchIntoCustomerOrders=Sales orders +SearchIntoSupplierInvoices=Fatture Fornitore +SearchIntoCustomerOrders=Ordini Cliente SearchIntoSupplierOrders=Ordini d'acquisto SearchIntoCustomerProposals=Proposte del cliente SearchIntoSupplierProposals=Proposta venditore @@ -967,7 +969,7 @@ AssignedTo=Azione assegnata a Deletedraft=Elimina bozza ConfirmMassDraftDeletion=Draft mass delete confirmation FileSharedViaALink=File condiviso con un link -SelectAThirdPartyFirst=Select a third party first... +SelectAThirdPartyFirst=Seleziona prima un Soggetto terzo... YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode Inventory=Inventario AnalyticCode=Analytic code diff --git a/htdocs/langs/it_IT/members.lang b/htdocs/langs/it_IT/members.lang index 7e387e3ebd3..780c0003f30 100644 --- a/htdocs/langs/it_IT/members.lang +++ b/htdocs/langs/it_IT/members.lang @@ -6,7 +6,7 @@ Member=Membro Members=Membri ShowMember=Visualizza scheda membro UserNotLinkedToMember=L'utente non è collegato ad un membro -ThirdpartyNotLinkedToMember=Third party not linked to a member +ThirdpartyNotLinkedToMember=Soggetto terzo non collegato ad un membro MembersTickets=Biglietti membri FundationMembers=Membri della fondazione ListOfValidatedPublicMembers=Elenco membri pubblici convalidati diff --git a/htdocs/langs/it_IT/orders.lang b/htdocs/langs/it_IT/orders.lang index a9aa89d62f6..9f439db00ee 100644 --- a/htdocs/langs/it_IT/orders.lang +++ b/htdocs/langs/it_IT/orders.lang @@ -17,14 +17,14 @@ SupplierOrder=Ordine d'acquisto SuppliersOrders=Ordini d'acquisto SuppliersOrdersRunning=Current purchase orders CustomerOrder=Sales Order -CustomersOrders=Sales Orders -CustomersOrdersRunning=Current sales orders +CustomersOrders=Ordini Cliente +CustomersOrdersRunning=Ordini Cliente in corso CustomersOrdersAndOrdersLines=Sales orders and order details OrdersDeliveredToBill=Sales orders delivered to bill OrdersToBill=Sales orders delivered OrdersInProcess=Sales orders in process -OrdersToProcess=Sales orders to process -SuppliersOrdersToProcess=Purchase orders to process +OrdersToProcess=Ordini Cliente da trattare +SuppliersOrdersToProcess=Ordini Fornitore da trattare StatusOrderCanceledShort=Annullato StatusOrderDraftShort=Bozza StatusOrderValidatedShort=Convalidato @@ -97,7 +97,7 @@ ConfirmMakeOrder=Vuoi davvero confermare di aver creato questo ordine su %stest mail (the word test must be in bold).
The two lines are separated by a carriage return.

__USER_SIGNATURE__ -PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentContract=__(Buongiorno)__\n\n\n__(Cordialmente)__\n\n__USER_SIGNATURE__ PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find commercial proposal __REF__ attached \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ @@ -93,9 +93,9 @@ PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find our order __RE PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find shipping __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find intervention __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ -PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__ +PredefinedMailContentThirdparty=__(Buongiorno)__\n\n\n__(Cordialmente)__\n\n__USER_SIGNATURE__ +PredefinedMailContentContact=__(Buongiorno)__\n\n\n__(Cordialmente)__\n\n__USER_SIGNATURE__ +PredefinedMailContentUser=__(Buongiorno)__\n\n\n__(Cordialmente)__\n\n__USER_SIGNATURE__ PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n DemoDesc=Dolibarr è un ERP/CRM compatto composto di diversi moduli funzionali. Un demo comprendente tutti i moduli non ha alcun senso, perché un caso simile non esiste nella realtà. Sono dunque disponibili diversi profili demo. ChooseYourDemoProfil=Scegli il profilo demo che corrisponde alla tua attività ... diff --git a/htdocs/langs/it_IT/products.lang b/htdocs/langs/it_IT/products.lang index 55901af6281..e956b7e7730 100644 --- a/htdocs/langs/it_IT/products.lang +++ b/htdocs/langs/it_IT/products.lang @@ -2,6 +2,7 @@ ProductRef=Rif. prodotto ProductLabel=Etichetta prodotto ProductLabelTranslated=Etichetta del prodotto tradotto +ProductDescription=Product description ProductDescriptionTranslated=Descrizione del prodotto tradotto ProductNoteTranslated=Tradotto nota prodotto ProductServiceCard=Scheda Prodotti/servizi diff --git a/htdocs/langs/it_IT/stripe.lang b/htdocs/langs/it_IT/stripe.lang index 6cad9de00dd..4f231e769ee 100644 --- a/htdocs/langs/it_IT/stripe.lang +++ b/htdocs/langs/it_IT/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/it_IT/users.lang b/htdocs/langs/it_IT/users.lang index 25624aa1fe3..191fead905f 100644 --- a/htdocs/langs/it_IT/users.lang +++ b/htdocs/langs/it_IT/users.lang @@ -87,7 +87,7 @@ GroupModified=Gruppo %s modificato con successo GroupDeleted=Gruppo %s rimosso ConfirmCreateContact=Vuoi davvero creare un account Dolibarr per questo contatto? ConfirmCreateLogin=Vuoi davvero creare un account Dolibarr per questo utente? -ConfirmCreateThirdParty=Vuoi davvero creare un soggetto terzo per questo utente? +ConfirmCreateThirdParty=Vuoi davvero creare un soggetto terzo per questo membro? LoginToCreate=Accedi per creare NameToCreate=Nome del soggetto terzo da creare YourRole=Il tuo ruolo diff --git a/htdocs/langs/it_IT/withdrawals.lang b/htdocs/langs/it_IT/withdrawals.lang index 366383c6284..38e96eaf840 100644 --- a/htdocs/langs/it_IT/withdrawals.lang +++ b/htdocs/langs/it_IT/withdrawals.lang @@ -25,7 +25,7 @@ WithdrawRejectStatistics=Direct debit payment reject statistics LastWithdrawalReceipt=Latest %s direct debit receipts MakeWithdrawRequest=Make a direct debit payment request WithdrawRequestsDone=%s direct debit payment requests recorded -ThirdPartyBankCode=Third-party bank code +ThirdPartyBankCode=Codice bancario del Soggetto terzo NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode %s. ClassCredited=Classifica come accreditata ClassCreditedConfirm=Vuoi davvero classificare questa ricevuta di domiciliazione come accreditata sul vostro conto bancario? @@ -76,7 +76,8 @@ WithdrawalFile=Ricevuta bancaria SetToStatusSent=Imposta stato come "file inviato" ThisWillAlsoAddPaymentOnInvoice=Questo inserirà i pagamenti relativi alle fatture e le classificherà come "Pagate" se il restante da pagare sarà uguale a 0 StatisticsByLineStatus=Statistics by status of lines -RUM=RUM +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Riferimento Unico Mandato RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Tipologia sequenza d'incasso (FRST o RECUR) diff --git a/htdocs/langs/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang index 11b5f42eb07..12f6c5a9a8b 100644 --- a/htdocs/langs/ja_JP/accountancy.lang +++ b/htdocs/langs/ja_JP/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=自然 +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=販売 AccountingJournalType3=購入 @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index d3e4b8730ca..995a7de34f0 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=通知 +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=警告は、一部のLinuxシステムでは、電子メールから電子メールを送信するためには、sendmailの実行セットアップする必要があります含むオプション-BA(パラメータmail.force_extra_parameters php.iniファイルに)。一部の受信者がメールを受信しない場合は、mail.force_extra_parameters =-BA)と、このPHPパラメータを編集してみてください。 @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang index f821606de2e..43bf3b0f91d 100644 --- a/htdocs/langs/ja_JP/bills.lang +++ b/htdocs/langs/ja_JP/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=支払うために思い出させるよりも高 HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=分類 '有料' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially='は部分的に有料 "に分類 ClassifyCanceled="放棄"を分類する ClassifyClosed="クローズ"を分類する @@ -214,6 +215,20 @@ ShowInvoiceReplace=請求書を交換見せる ShowInvoiceAvoir=クレジットメモを表示する ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=支払を表示する AlreadyPaid=既に支払わ AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/ja_JP/errors.lang b/htdocs/langs/ja_JP/errors.lang index 2fde390abbd..35e5c4e343e 100644 --- a/htdocs/langs/ja_JP/errors.lang +++ b/htdocs/langs/ja_JP/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=特殊文字は、フィールド "%s&qu ErrorNumRefModel=参照は、データベース(%s)に存在し、この番号規則と互換性がありません。レコードを削除するか、このモジュールを有効にするために参照を変更しました。 ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=マスク上でのエラー ErrorBadMaskFailedToLocatePosOfSequence=シーケンス番号のないエラー、マスク ErrorBadMaskBadRazMonth=エラー、不正なリセット値 @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang index 370b99a62d2..a37b98039bd 100644 --- a/htdocs/langs/ja_JP/main.lang +++ b/htdocs/langs/ja_JP/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=このメンバーに関するイベント ActionsOnProduct=Events about this product NActionsLate=%s後半 @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=ドラフトを作成します。 SetToDraft=Back to draft ClickToEdit=クリックして編集 diff --git a/htdocs/langs/ja_JP/products.lang b/htdocs/langs/ja_JP/products.lang index fe9fa2eb27d..ccdf589b609 100644 --- a/htdocs/langs/ja_JP/products.lang +++ b/htdocs/langs/ja_JP/products.lang @@ -2,6 +2,7 @@ ProductRef=製品のref。 ProductLabel=製品のラベル ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=製品/サービスカード diff --git a/htdocs/langs/ja_JP/stripe.lang b/htdocs/langs/ja_JP/stripe.lang index 8884b28ea4b..845bf30215c 100644 --- a/htdocs/langs/ja_JP/stripe.lang +++ b/htdocs/langs/ja_JP/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/ja_JP/withdrawals.lang b/htdocs/langs/ja_JP/withdrawals.lang index 96559a7dfad..7734a63a35f 100644 --- a/htdocs/langs/ja_JP/withdrawals.lang +++ b/htdocs/langs/ja_JP/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/ka_GE/accountancy.lang b/htdocs/langs/ka_GE/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/ka_GE/accountancy.lang +++ b/htdocs/langs/ka_GE/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/ka_GE/admin.lang b/htdocs/langs/ka_GE/admin.lang index f30d6edd9f7..2e27c6fe81f 100644 --- a/htdocs/langs/ka_GE/admin.lang +++ b/htdocs/langs/ka_GE/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/ka_GE/bills.lang b/htdocs/langs/ka_GE/bills.lang index 4f114d4df1c..53535e58b46 100644 --- a/htdocs/langs/ka_GE/bills.lang +++ b/htdocs/langs/ka_GE/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/ka_GE/errors.lang b/htdocs/langs/ka_GE/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/ka_GE/errors.lang +++ b/htdocs/langs/ka_GE/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/ka_GE/main.lang b/htdocs/langs/ka_GE/main.lang index 6efbe942032..1cadc32f4ab 100644 --- a/htdocs/langs/ka_GE/main.lang +++ b/htdocs/langs/ka_GE/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/ka_GE/products.lang b/htdocs/langs/ka_GE/products.lang index 7b68f5b3ebd..73e672284de 100644 --- a/htdocs/langs/ka_GE/products.lang +++ b/htdocs/langs/ka_GE/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/ka_GE/stripe.lang b/htdocs/langs/ka_GE/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/ka_GE/stripe.lang +++ b/htdocs/langs/ka_GE/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/ka_GE/withdrawals.lang b/htdocs/langs/ka_GE/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/ka_GE/withdrawals.lang +++ b/htdocs/langs/ka_GE/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/km_KH/main.lang b/htdocs/langs/km_KH/main.lang index 545a6c660c9..57b062774ea 100644 --- a/htdocs/langs/km_KH/main.lang +++ b/htdocs/langs/km_KH/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/kn_IN/accountancy.lang b/htdocs/langs/kn_IN/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/kn_IN/accountancy.lang +++ b/htdocs/langs/kn_IN/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/kn_IN/admin.lang b/htdocs/langs/kn_IN/admin.lang index 4f98d74a676..c0997f3eb4b 100644 --- a/htdocs/langs/kn_IN/admin.lang +++ b/htdocs/langs/kn_IN/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/kn_IN/bills.lang b/htdocs/langs/kn_IN/bills.lang index e7b17c926d2..6d3cd311c75 100644 --- a/htdocs/langs/kn_IN/bills.lang +++ b/htdocs/langs/kn_IN/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/kn_IN/errors.lang b/htdocs/langs/kn_IN/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/kn_IN/errors.lang +++ b/htdocs/langs/kn_IN/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/kn_IN/main.lang b/htdocs/langs/kn_IN/main.lang index b9b20772410..aae0806ec95 100644 --- a/htdocs/langs/kn_IN/main.lang +++ b/htdocs/langs/kn_IN/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/kn_IN/products.lang b/htdocs/langs/kn_IN/products.lang index 0dc770ad9e5..478e1ac0d9f 100644 --- a/htdocs/langs/kn_IN/products.lang +++ b/htdocs/langs/kn_IN/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/kn_IN/stripe.lang b/htdocs/langs/kn_IN/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/kn_IN/stripe.lang +++ b/htdocs/langs/kn_IN/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/kn_IN/withdrawals.lang b/htdocs/langs/kn_IN/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/kn_IN/withdrawals.lang +++ b/htdocs/langs/kn_IN/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/ko_KR/accountancy.lang b/htdocs/langs/ko_KR/accountancy.lang index 3ce2ffde609..21ac14a025b 100644 --- a/htdocs/langs/ko_KR/accountancy.lang +++ b/htdocs/langs/ko_KR/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang index 00d354072b1..5a407bc2806 100644 --- a/htdocs/langs/ko_KR/admin.lang +++ b/htdocs/langs/ko_KR/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/ko_KR/bills.lang b/htdocs/langs/ko_KR/bills.lang index fc1a2e2058d..7793367f923 100644 --- a/htdocs/langs/ko_KR/bills.lang +++ b/htdocs/langs/ko_KR/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/ko_KR/errors.lang b/htdocs/langs/ko_KR/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/ko_KR/errors.lang +++ b/htdocs/langs/ko_KR/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/ko_KR/main.lang b/htdocs/langs/ko_KR/main.lang index 43241b1201b..e3bfba6b683 100644 --- a/htdocs/langs/ko_KR/main.lang +++ b/htdocs/langs/ko_KR/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=이 협력업체의 연락처 / 주소 AddressesForCompany=이 협력업체의 주소 ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=이 멤버에 대한 이벤트 ActionsOnProduct=Events about this product NActionsLate=%s 늦게 @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=계약서 링크 LinkToIntervention=중재에 연결 +LinkToTicket=Link to ticket CreateDraft=초안 작성 SetToDraft=초안으로 돌아 가기 ClickToEdit=편집하려면 클릭하십시오. diff --git a/htdocs/langs/ko_KR/products.lang b/htdocs/langs/ko_KR/products.lang index 5951c9bcae9..76a94d718c0 100644 --- a/htdocs/langs/ko_KR/products.lang +++ b/htdocs/langs/ko_KR/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/ko_KR/stripe.lang b/htdocs/langs/ko_KR/stripe.lang index 84c51758320..f6a259ca219 100644 --- a/htdocs/langs/ko_KR/stripe.lang +++ b/htdocs/langs/ko_KR/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/ko_KR/withdrawals.lang b/htdocs/langs/ko_KR/withdrawals.lang index 94d4de3b91d..a49e46a47a2 100644 --- a/htdocs/langs/ko_KR/withdrawals.lang +++ b/htdocs/langs/ko_KR/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang index d64c13327b4..256b24e349e 100644 --- a/htdocs/langs/lo_LA/accountancy.lang +++ b/htdocs/langs/lo_LA/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang index f3335cb7b23..4dad4d295f0 100644 --- a/htdocs/langs/lo_LA/admin.lang +++ b/htdocs/langs/lo_LA/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/lo_LA/bills.lang b/htdocs/langs/lo_LA/bills.lang index 4f114d4df1c..53535e58b46 100644 --- a/htdocs/langs/lo_LA/bills.lang +++ b/htdocs/langs/lo_LA/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/lo_LA/errors.lang b/htdocs/langs/lo_LA/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/lo_LA/errors.lang +++ b/htdocs/langs/lo_LA/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang index 33d9661f91a..ded9062fdce 100644 --- a/htdocs/langs/lo_LA/main.lang +++ b/htdocs/langs/lo_LA/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/lo_LA/products.lang b/htdocs/langs/lo_LA/products.lang index cba53debed1..2db91fc0e29 100644 --- a/htdocs/langs/lo_LA/products.lang +++ b/htdocs/langs/lo_LA/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/lo_LA/stripe.lang b/htdocs/langs/lo_LA/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/lo_LA/stripe.lang +++ b/htdocs/langs/lo_LA/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/lo_LA/withdrawals.lang b/htdocs/langs/lo_LA/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/lo_LA/withdrawals.lang +++ b/htdocs/langs/lo_LA/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/lt_LT/accountancy.lang b/htdocs/langs/lt_LT/accountancy.lang index d3befafadf9..01dda78192d 100644 --- a/htdocs/langs/lt_LT/accountancy.lang +++ b/htdocs/langs/lt_LT/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Apskaitos žurnalai AccountingJournal=Apskaitos žurnalas NewAccountingJournal=Naujas apskaitos žurnalas ShowAccoutingJournal=Rodyti apskaitos žurnalą -Nature=Prigimtis +NatureOfJournal=Nature of Journal AccountingJournalType1=Įvairiarūšės operacijos AccountingJournalType2=Pardavimai AccountingJournalType3=Pirkimai @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=Šis puslapis gali būti naudojamas inicijuoti apskaitos sąskaitą prekėms ir paslaugoms, kurių pardavimo ir pirkimo apibrėžtoje apskaitos sąskaitoje nėra. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Rėžimas pardavimas OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang index 40655912693..f8f1ab31a6c 100644 --- a/htdocs/langs/lt_LT/admin.lang +++ b/htdocs/langs/lt_LT/admin.lang @@ -574,7 +574,7 @@ Module510Name=Atlyginimai Module510Desc=Record and track employee payments Module520Name=Paskolos Module520Desc=Paskolų valdymas -Module600Name=Pranešimai +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Papildomi požymiai (užsakymai) ExtraFieldsSupplierInvoices=Papildomi požymiai (sąskaitos-faktūros) ExtraFieldsProject=Papildomi požymiai (projektai) ExtraFieldsProjectTask=Papildomi požymiai (užduotys) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Požymis %s turi klaidingą reikšmę. AlphaNumOnlyLowerCharsAndNoSpace=Tik raidiniai-skaitmeniniai simboliai, mažosiomis raidėmis, be tarpų SendmailOptionNotComplete=ĮSPĖJIMAS, kai kuriose Linux sistemose, norint siųsti el. laiškus iš savo pašto, vykdymo nuostatose turi būti opcija -ba (parametras mail.force_extra_parameters į savo php.ini failą). Jei kai kurie gavėjai niekada negauna el. laiškų, pabandykite redaguoti šį PHP parametrą su mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Sesijų saugykla užšifruota Suhosin ConditionIsCurrently=Dabartinė būklė yra %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Paieškos optimizavimas -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug yraužkrautas. -XCacheInstalled=Xcache yra įkelta. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Slenkstis @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/lt_LT/bills.lang b/htdocs/langs/lt_LT/bills.lang index a0f656f429a..fb86c79720d 100644 --- a/htdocs/langs/lt_LT/bills.lang +++ b/htdocs/langs/lt_LT/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Mokėjimas svarbesnis už priminimą sumokėti HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Priskirti 'Apmokėtos' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Priskirti 'Dalinai apmokėtos' ClassifyCanceled=Priskirti 'Neįvykusios' ClassifyClosed=Priskirti 'Uždarytos' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Rodyti pakeičiančią sąskaitą-faktūrą ShowInvoiceAvoir=Rodyti kreditinę sąskaitą ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Rodyti mokėjimą AlreadyPaid=Jau apmokėta AlreadyPaidBack=Mokėjimas jau grąžintas diff --git a/htdocs/langs/lt_LT/errors.lang b/htdocs/langs/lt_LT/errors.lang index d7758180fb6..d3fcc029198 100644 --- a/htdocs/langs/lt_LT/errors.lang +++ b/htdocs/langs/lt_LT/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Specialūs simboliai neleidžiami laukelyje " ErrorNumRefModel=Nuoroda yra į duomenų bazę (%s) ir yra nesuderinama su šiomis numeravimo tasyklėmis. Pašalinkite įrašą arba pervadinkite nuorodą, kad aktyvuoti šį modulį. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Maskavimo (mask) klaida ErrorBadMaskFailedToLocatePosOfSequence=Klaida, maskavimas be eilės numeris ErrorBadMaskBadRazMonth=Klaida, bloga perkrovimo reikšmė @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/lt_LT/main.lang b/htdocs/langs/lt_LT/main.lang index 77fad226e8f..78e8ba8df8f 100644 --- a/htdocs/langs/lt_LT/main.lang +++ b/htdocs/langs/lt_LT/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Adresatai/adresai šiai trečiajai šaliai AddressesForCompany=Adresai šiai trečiajai šaliai ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Įvykiai su šiuo nariu ActionsOnProduct=Events about this product NActionsLate=%s vėluoja @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Sukurti projektą SetToDraft=Atgal į projektą ClickToEdit=Spausk redaguoti diff --git a/htdocs/langs/lt_LT/products.lang b/htdocs/langs/lt_LT/products.lang index 110c1b650ec..db38cb8e31a 100644 --- a/htdocs/langs/lt_LT/products.lang +++ b/htdocs/langs/lt_LT/products.lang @@ -2,6 +2,7 @@ ProductRef=Produkto nuoroda ProductLabel=Produkto etiketė ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Produkto / Paslaugos kortelė diff --git a/htdocs/langs/lt_LT/stripe.lang b/htdocs/langs/lt_LT/stripe.lang index cbed09acbf1..327ed0661ed 100644 --- a/htdocs/langs/lt_LT/stripe.lang +++ b/htdocs/langs/lt_LT/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/lt_LT/withdrawals.lang b/htdocs/langs/lt_LT/withdrawals.lang index 92eb828c596..4b86443e69a 100644 --- a/htdocs/langs/lt_LT/withdrawals.lang +++ b/htdocs/langs/lt_LT/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Išėmimo failas SetToStatusSent=Nustatyti būklę "Failas išsiųstas" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Eilučių būklės statistika -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang index 7808991734b..cd7a3f66474 100644 --- a/htdocs/langs/lv_LV/accountancy.lang +++ b/htdocs/langs/lv_LV/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Grāmatvedības žurnāli AccountingJournal=Grāmatvedības žurnāls NewAccountingJournal=Jauns grāmatvedības žurnāls ShowAccoutingJournal=Rādīt grāmatvedības žurnālu -Nature=Daba +NatureOfJournal=Nature of Journal AccountingJournalType1=Dažādas darbības AccountingJournalType2=Pārdošanas AccountingJournalType3=Pirkumi @@ -291,6 +291,7 @@ Modelcsv_quadratus=Eksportēt Quadratus QuadraCompta Modelcsv_ebp=Eksportēt uz EBP Modelcsv_cogilog=Eksportēt uz Cogilog Modelcsv_agiris=Eksports uz Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Eksportēt OpenConcerto (tests) Modelcsv_configurable=Eksportēt CSV konfigurējamu Modelcsv_FEC=Eksporta FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Kontu konts. Id InitAccountancy=Init grāmatvedība InitAccountancyDesc=Šo lapu var izmantot, lai inicializētu grāmatvedības kontu par produktiem un pakalpojumiem, kuriem nav noteikts grāmatvedības konts pārdošanai un pirkumiem. DefaultBindingDesc=Šo lapu var izmantot, lai iestatītu noklusēto kontu, ko izmantot, lai saistītu darījumu protokolu par algas, ziedojumiem, nodokļiem un PVN, ja neviens konkrēts grāmatvedības konts jau nav iestatīts. -DefaultClosureDesc=Šo lapu var izmantot, lai iestatītu parametrus, kas jāizmanto bilances pievienošanai. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Iespējas OptionModeProductSell=Mode pārdošana OptionModeProductSellIntra=Pārdošanas veids, ko eksportē EEK diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index 226e333fcd1..7eddfe886cf 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -108,7 +108,7 @@ MultiCurrencySetup=Daudzvalūtu iestatījumi MenuLimits=Robežas un precizitāte MenuIdParent=Galvenās izvēlnes ID DetailMenuIdParent=ID vecāku izvēlnē (tukšs top izvēlnē) -DetailPosition=Šķirot skaits definēt izvēlnes novietojumu +DetailPosition=Secības numurs, lai definēt izvēlnes novietojumu AllMenus=Viss NotConfigured=Modulis / aplikācija nav konfigurēta Active=Aktīvs @@ -574,7 +574,7 @@ Module510Name=Algas Module510Desc=Ierakstiet un sekojiet darbinieku maksājumiem Module520Name=Aizdevumi Module520Desc=Aizdevumu vadība -Module600Name=Paziņojumi +Module600Name=Notifications on business event Module600Desc=Sūtiet e-pasta paziņojumus, ko izraisījis uzņēmuma notikums: katram lietotājam (iestatījums ir noteikts katram lietotājam), katram trešās puses kontaktpersonai (iestatīšana noteikta katrai trešajai pusei) vai konkrētiem e-pasta ziņojumiem Module600Long=Ņemiet vērā, ka šis modulis sūta e-pastus reālā laikā, kad notiek konkrēts biznesa notikums. Ja meklējat iespēju nosūtīt e-pasta atgādinājumus par dienas kārtības notikumiem, dodieties uz moduļa Agenda uzstādīšanu. Module610Name=Produkta varianti @@ -1185,7 +1185,7 @@ ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) ExtraFieldsThirdParties=Papildus atribūti (trešā persona) ExtraFieldsContacts=Papildus atribūti (kontakts/adrese) -ExtraFieldsMember=Papildinošas atribūti (biedrs) +ExtraFieldsMember=Papildinošie atribūti (dalībnieks) ExtraFieldsMemberType=Papildinošas atribūti (biedrs tipa) ExtraFieldsCustomerInvoices=Papildinošas atribūti (rēķini) ExtraFieldsCustomerInvoicesRec=Papildu atribūti (veidņu rēķini) @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Papildinošas atribūti (rīkojumi) ExtraFieldsSupplierInvoices=Papildinošas atribūti (rēķini) ExtraFieldsProject=Papildinošas atribūti (projekti) ExtraFieldsProjectTask=Papildinošas atribūti (uzdevumi) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Parametram %s ir nepareiza vērtība. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Brīdinājums, par dažiem Linux sistēmām, lai nosūtītu e-pastu no jūsu e-pastu, sendmail izpilde uzstādīšana ir iekļauti variants-ba (parametrs mail.force_extra_parameters savā php.ini failā). Ja daži saņēmēji nekad saņemt e-pastus, mēģina labot šo PHP parametru ar mail.force_extra_parameters =-BA). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Sesija uzglabāšana šifrēta ar Suhosin ConditionIsCurrently=Stāvoklis šobrīd ir %s YouUseBestDriver=Jūs izmantojat draiveri %s, kas ir labākais šobrīd pieejams draiveris. YouDoNotUseBestDriver=Jūs izmantojat draiveri %s, bet ieteicams ir %s. -NbOfProductIsLowerThanNoPb=Jums ir tikai %s produkti/pakalpojumi datu bāzē. Tai nav nepieciešama īpaša optimizācija. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Meklēšanas optimizācija -YouHaveXProductUseSearchOptim=Jūs esat %s produktu datu bāzē. Jums vajadzētu pievienot pastāvīgo PRODUCT_DONOTSEARCH_ANYWHERE uz 1 vietne Home-Setup-Other. Ierobežojiet meklēšanu ar virkņu sākumu, kas ļauj datubāzei izmantot indeksus, un jums vajadzētu saņemt tūlītēju atbildi. +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. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. 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. -XDebugInstalled=XDebug ir ielādēts -XCacheInstalled=XCache ir ielādēts. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Rādīt klientu / pārdevēju ref. info saraksts (atlasiet sarakstu vai kombinēto) un lielākā daļa hipersaites.
Trešās puses parādīsies ar nosaukumu "CC12345 - SC45678 - Lielais uzņēmums". "Lielā uzņēmuma korpuss" vietā. AddAdressInList=Rādīt klienta / pārdevēja adrešu sarakstu (izvēlieties sarakstu vai kombināciju)
Trešās puses parādīsies ar nosaukumu "Lielās kompānijas korpuss - 21 lēkt iela 123456", nevis "Lielā uzņēmuma korpuss". AskForPreferredShippingMethod=Pieprasiet vēlamo piegādes metodi trešajām pusēm. @@ -1286,7 +1288,7 @@ SupplierPaymentSetup=Pārdevēja maksājumu iestatīšana ##### Proposals ##### PropalSetup=Commercial priekšlikumi modulis uzstādīšana ProposalsNumberingModules=Komerciālie priekšlikumu numerācijas modeļi -ProposalsPDFModules=Komerciālie priekšlikumu dokumenti modeļi +ProposalsPDFModules=Komerciālie priekšlikumu dokumentu modeļi SuggestedPaymentModesIfNotDefinedInProposal=Ieteicamais maksājuma režīms pēc piedāvājuma pēc noklusējuma, ja tas nav definēts priekšlikumam FreeLegalTextOnProposal=Brīvais teksts komerciālajos priekšlikumos WatermarkOnDraftProposal=Ūdenszīme projektu komerciālo priekšlikumu (none ja tukšs) @@ -1545,7 +1547,7 @@ NewRSS=Jauna RSS barotne RSSUrl=RSS links RSSUrlExample=Interesants RSS ##### Mailing ##### -MailingSetup=Pasta vēstuļu sūtīšanas modulis iestatīšanu +MailingSetup=Pasta vēstuļu sūtīšanas moduļa iestatīšana MailingEMailFrom=Sūtītāja e-pasts (no) e-pasta moduļa sūtītajiem e-pastiem MailingEMailError=Atgriezties e-pastā (kļūdas) e-pastiem ar kļūdām MailingDelay=Seconds to wait after sending next message @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Moduļa Expense Reports iestatīšana - noteikumi ExpenseReportNumberingModules=Izdevumu pārskatu numerācijas modulis NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=Varat atrast e-pasta paziņojumu iespējas, iespējot un konfigurējot moduli "Paziņošana". -ListOfNotificationsPerUser=Paziņojumu saraksts katram lietotājam * -ListOfNotificationsPerUserOrContact=Paziņojumu (notikumu) saraksts, kas pieejami katram lietotājam * vai kontaktam ** -ListOfFixedNotifications=Fiksēto paziņojumu saraksts +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Atveriet lietotāja cilni "Paziņojumi", lai pievienotu vai noņemtu paziņojumus lietotājiem GoOntoContactCardToAddMore=Atveriet trešās personas cilni "Paziņojumi", lai pievienotu vai noņemtu paziņojumus par kontaktpersonām / adresēm Threshold=Slieksnis @@ -1898,6 +1900,11 @@ OnMobileOnly=Tikai mazam ekrānam (viedtālrunim) DisableProspectCustomerType=Atspējojiet "Prospect + Customer" trešās puses veidu (tādēļ trešai personai jābūt Prospect vai Klientam, bet nevar būt abas) MAIN_OPTIMIZEFORTEXTBROWSER=Vienkāršot saskarni neredzīgajiem MAIN_OPTIMIZEFORTEXTBROWSERDesc=Iespējojiet šo opciju, ja esat akls cilvēks, vai lietojat programmu no teksta pārlūkprogrammas, piemēram, Lynx vai Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Šo vērtību katrs lietotājs var pārrakstīt no lietotāja lapas - cilnes '%s' DefaultCustomerType="Jaunā klienta" izveides veidlapas noklusējuma trešās puses veids ABankAccountMustBeDefinedOnPaymentModeSetup=Piezīme. Lai veiktu šo funkciju, katra maksājuma režīma modulī (Paypal, Stripe, ...) ir jānosaka bankas konts. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Līniju skaits, kas jāparāda žurnāla cilnē UseDebugBar=Izmantojiet atkļūdošanas joslu DEBUGBAR_LOGS_LINES_NUMBER=Pēdējo žurnālu rindu skaits, kas jāsaglabā konsolē WarningValueHigherSlowsDramaticalyOutput=Brīdinājums, augstākas vērtības palēnina dramatisko izeju -DebugBarModuleActivated=Moduļa atkļūdošanas josla ir aktivizēta un palēnina saskarni +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Eksporta modeļi ir kopīgi ar visiem ExportSetup=Moduļa Eksportēšana iestatīšana InstanceUniqueID=Unikāls gadījuma ID @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=Jūs atradīsiet to savā IFTTT kontā EndPointFor=Beigu punkts %s: %s DeleteEmailCollector=Dzēst e-pasta kolekcionāru ConfirmDeleteEmailCollector=Vai tiešām vēlaties dzēst šo e-pasta kolekcionāru? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/lv_LV/banks.lang b/htdocs/langs/lv_LV/banks.lang index 4675ef3a14a..8c1b9e53a95 100644 --- a/htdocs/langs/lv_LV/banks.lang +++ b/htdocs/langs/lv_LV/banks.lang @@ -30,7 +30,7 @@ AllTime=No sākuma Reconciliation=Samierināšanās RIB=Bankas konta numurs IBAN=IBAN numurs -BIC=BIC / SWIFT kods +BIC=BIC/SWIFT kods SwiftValid=BIC / SWIFT derīgs SwiftVNotalid=BIC/SWIFT nav derīgs IbanValid=Derīgs BAN @@ -71,8 +71,8 @@ IdTransaction=Darījuma ID BankTransactions=Bankas ieraksti BankTransaction=Bankas ieraksts ListTransactions=Saraksta ieraksti -ListTransactionsByCategory=List entries/category -TransactionsToConciliate=Entries to reconcile +ListTransactionsByCategory=Ierakstu saraksti/ sadaļas +TransactionsToConciliate=Ieraksti, kas jāsaskaņo Conciliable=Var saskaņot Conciliate=Samierināt Conciliation=Samierināšanās @@ -100,8 +100,8 @@ NotReconciled=Nesaskaņot CustomerInvoicePayment=Klienta maksājums SupplierInvoicePayment=Piegādātāja maksājums SubscriptionPayment=Abonēšanas maksa -WithdrawalPayment=Debit payment order -SocialContributionPayment=Social/fiscal tax payment +WithdrawalPayment=Debeta maksājuma rīkojums +SocialContributionPayment=Sociālā/fiskālā nodokļa samaksa BankTransfer=Bankas pārskaitījums BankTransfers=Bankas pārskaitījumi MenuBankInternalTransfer=Iekšējā pārsūtīšana diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang index 44f7d7838b1..1e20c7216ae 100644 --- a/htdocs/langs/lv_LV/bills.lang +++ b/htdocs/langs/lv_LV/bills.lang @@ -95,8 +95,9 @@ PaymentHigherThanReminderToPay=Maksājumu augstāka nekā atgādinājums par sam HelpPaymentHigherThanReminderToPay=Uzmanību! Viena vai vairāku rēķinu maksājuma summa ir lielāka par nesamaksāto summu.
Rediģējiet savu ierakstu, citādi apstipriniet un apsveriet iespēju izveidot kredītzīmi par pārsniegto saņemto summu par katru pārmaksāto rēķinu. HelpPaymentHigherThanReminderToPaySupplier=Uzmanību! Viena vai vairāku rēķinu maksājuma summa ir lielāka par nesamaksāto summu.
Rediģējiet savu ierakstu, citādi apstipriniet un apsveriet iespēju izveidot kredītzīmi par pārsniegto samaksu par katru pārmaksāto rēķinu. ClassifyPaid=Klasificēt "Apmaksāts" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Klasificēt 'Apmaksāts daļēji' -ClassifyCanceled=Klasificēt "Abandoned" +ClassifyCanceled=Klasificēt “pamestu” ClassifyClosed=Klasificēt 'Slēgts' ClassifyUnBilled=Klasificēt "neapstiprinātas" CreateBill=Izveidot rēķinu @@ -207,13 +208,27 @@ NumberOfBillsByMonth=Rēķinu skaits mēnesī AmountOfBills=Rēķinu summa AmountOfBillsHT=Rēķinu summa (bez nodokļiem) AmountOfBillsByMonthHT=Summa rēķini mēnesī (neto pēc nodokļiem) -ShowSocialContribution=Show social/fiscal tax +ShowSocialContribution=Rādīt sociālo/fiskālo nodokli ShowBill=Rādīt rēķinu ShowInvoice=Rādīt rēķinu ShowInvoiceReplace=Rādīt aizstājošo rēķinu ShowInvoiceAvoir=Rādīt kredīta piezīmi -ShowInvoiceDeposit=Show down payment invoice +ShowInvoiceDeposit=Parādiet maksājuma rēķinu ShowInvoiceSituation=Rādīt situāciju rēķinu +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Rādīt maksājumu AlreadyPaid=Jau samaksāts AlreadyPaidBack=Jau atgriezta nauda @@ -221,14 +236,14 @@ AlreadyPaidNoCreditNotesNoDeposits=Jau samaksāts (bez kredīta piezīmes un nog Abandoned=Pamests RemainderToPay=Neapmaksāts RemainderToTake=Atlikusī summa, kas jāsaņem -RemainderToPayBack=Remaining amount to refund +RemainderToPayBack=Atlikušā summa atmaksai Rest=Gaida AmountExpected=Pieprasītā summa ExcessReceived=Saņemts pārpalikums ExcessPaid=Pārmaksātā summa EscompteOffered=Piedāvāta atlaide (maksājums pirms termiņa) EscompteOfferedShort=Atlaide -SendBillRef=Submission of invoice %s +SendBillRef=Rēķina iesniegšana %s SendReminderBillRef=Submission of invoice %s (reminder) StandingOrders=Tiešā debeta pasūtījumi StandingOrder=Tiešā debeta pasūtījums @@ -289,11 +304,11 @@ CreditNotesOrExcessReceived=Kredītkritumi vai saņemtie pārsniegumi Deposit=Sākuma maksājums Deposits=Sākuma maksājumi DiscountFromCreditNote=Atlaide no kredīta piezīmes %s -DiscountFromDeposit=Down payments from invoice %s +DiscountFromDeposit=Sākuma maksājumi no rēķina %s DiscountFromExcessReceived=Maksājumi, kas pārsniedz rēķinu %s DiscountFromExcessPaid=Maksājumi, kas pārsniedz rēķinu %s AbsoluteDiscountUse=Šis kredīta veids var izmantot rēķinā pirms tās apstiprināšanas -CreditNoteDepositUse=Invoice must be validated to use this kind of credits +CreditNoteDepositUse=Rēķins ir jāapstiprina, lai izmantotu šāda veida kredītus NewGlobalDiscount=Jauna absolūta atlaide NewRelativeDiscount=Jauna relatīva atlaide DiscountType=Atlaides veids @@ -377,12 +392,12 @@ PaymentConditionShortRECEP=Pienākas pēc saņemšanas PaymentConditionRECEP=Pienākas pēc saņemšanas PaymentConditionShort30D=30 dienas PaymentCondition30D=30 dienas -PaymentConditionShort30DENDMONTH=30 days of month-end -PaymentCondition30DENDMONTH=Within 30 days following the end of the month +PaymentConditionShort30DENDMONTH=30 dienas mēneša beigās +PaymentCondition30DENDMONTH=30 dienu laikā pēc mēneša beigām PaymentConditionShort60D=60 dienas PaymentCondition60D=60 dienas -PaymentConditionShort60DENDMONTH=60 days of month-end -PaymentCondition60DENDMONTH=Within 60 days following the end of the month +PaymentConditionShort60DENDMONTH=60 dienas mēneša beigās +PaymentCondition60DENDMONTH=60 dienu laikā pēc mēneša beigām PaymentConditionShortPT_DELIVERY=Piegāde PaymentConditionPT_DELIVERY=Pēc piegādes PaymentConditionShortPT_ORDER=Pasūtījums @@ -398,13 +413,13 @@ PaymentCondition14D=14 dienas PaymentConditionShort14DENDMONTH=Mēneša 14 dienas PaymentCondition14DENDMONTH=14 dienu laikā pēc mēneša beigām FixAmount=Fiksētā summa -VarAmount=Mainīgais apjoms (%% tot.) +VarAmount=Mainīgais apjoms (%% kop.) VarAmountOneLine=Mainīgā summa (%% kopā) - 1 rinda ar etiķeti '%s' # PaymentType PaymentTypeVIR=Bankas pārskaitījums PaymentTypeShortVIR=Bankas pārskaitījums -PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypePRE=Tiešā debeta maksājuma rīkojums +PaymentTypeShortPRE=Debeta maksājuma rīkojums PaymentTypeLIQ=Skaidra nauda PaymentTypeShortLIQ=Skaidra nauda PaymentTypeCB=Kredītkarte @@ -434,7 +449,7 @@ RegulatedOn=Regulēta uz ChequeNumber=Pārbaudiet N ° ChequeOrTransferNumber=Pārbaudiet / Transfer N ° ChequeBordereau=Pārbaudīt grafiku -ChequeMaker=Check/Transfer transmitter +ChequeMaker=Pārbaudiet / pārsūtiet raidītāju ChequeBank=Čeka izsniegšanas banka CheckBank=Čeks NetToBePaid=Neto jāmaksā @@ -489,7 +504,7 @@ ToMakePayment=Maksāt ToMakePaymentBack=Atmaksāt ListOfYourUnpaidInvoices=Saraksts ar neapmaksātiem rēķiniem NoteListOfYourUnpaidInvoices=Piezīme: Šis saraksts satur tikai rēķinus par trešo pušu Jums ir saistīti ar kā pārdošanas pārstāvis. -RevenueStamp=Ieņēmumi zīmogs +RevenueStamp=Ieņēmumu zīmogs YouMustCreateInvoiceFromThird=Šī opcija ir pieejama tikai tad, ja izveidojat rēķinu no trešās personas cilnes "Klients" YouMustCreateInvoiceFromSupplierThird=Šī opcija ir pieejama tikai tad, ja izveidojat rēķinu no trešās puses cilnes „Pārdevējs” YouMustCreateStandardInvoiceFirstDesc=Vispirms vispirms jāizveido standarta rēķins un jāpārveido tas par "veidni", lai izveidotu jaunu veidnes rēķinu diff --git a/htdocs/langs/lv_LV/companies.lang b/htdocs/langs/lv_LV/companies.lang index 349661c2a6f..aa373cac4f1 100644 --- a/htdocs/langs/lv_LV/companies.lang +++ b/htdocs/langs/lv_LV/companies.lang @@ -383,7 +383,7 @@ ChangeContactInProcess=Mainīt statusu uz 'Sazināšanās procesā' ChangeContactDone=Mainīt statusu uz 'Sazinājāmies' ProspectsByStatus=Perspektīvu statuss NoParentCompany=Nav -ExportCardToFormat=Eksporta karti formātā +ExportCardToFormat=Eksportēt karti uz formātu ContactNotLinkedToCompany=Kontakts nav saistīts ar trešajām personām DolibarrLogin=Dolibarr pieteikšanās NoDolibarrAccess=Nav Dolibarr piekļuve @@ -416,7 +416,7 @@ UniqueThirdParties=Trešo personu kopskaits InActivity=Atvērts ActivityCeased=Slēgts ThirdPartyIsClosed=Trešā persona ir slēgta -ProductsIntoElements=List of products/services into %s +ProductsIntoElements=Produktu/pakalpojumu saraksts %s CurrentOutstandingBill=Current outstanding bill OutstandingBill=Maks. par izcilu rēķinu OutstandingBillReached=Maks. par izcilu rēķinu diff --git a/htdocs/langs/lv_LV/compta.lang b/htdocs/langs/lv_LV/compta.lang index a5bfc0331a9..41f8c11125b 100644 --- a/htdocs/langs/lv_LV/compta.lang +++ b/htdocs/langs/lv_LV/compta.lang @@ -65,16 +65,16 @@ LT2SupplierIN=SGST pirkumi VATCollected=Iekasētais PVN ToPay=Jāsamaksā SpecialExpensesArea=Sadaļa visiem īpašajiem maksājumiem -SocialContribution=Social or fiscal tax -SocialContributions=Social or fiscal taxes +SocialContribution=Sociālais vai fiskālais nodoklis +SocialContributions=Sociālie vai fiskālie nodokļi SocialContributionsDeductibles=Atskaitāmi sociālie vai fiskālie nodokļi SocialContributionsNondeductibles=Nekonkurējoši sociālie vai fiskālie nodokļi LabelContrib=Marķējuma ieguldījums TypeContrib=Veida iemaksa MenuSpecialExpenses=Īpašie izdevumi MenuTaxAndDividends=Nodokļi un dividendes -MenuSocialContributions=Social/fiscal taxes -MenuNewSocialContribution=New social/fiscal tax +MenuSocialContributions=Sociālie/fiskālie nodokļi +MenuNewSocialContribution=Jauns sociālais/fiskālais nodoklis NewSocialContribution=New social/fiscal tax AddSocialContribution=Pievienot sociālo / fiskālo nodokli ContributionsToPay=Social/fiscal taxes to pay @@ -101,13 +101,13 @@ LT1PaymentES=RE Payment LT1PaymentsES=RE Payments LT2PaymentES=IRPF Maksājumu LT2PaymentsES=IRPF Maksājumi -VATPayment=Sales tax payment -VATPayments=Sales tax payments +VATPayment=Tirdzniecības nodokļa samaksa +VATPayments=Tirdzniecības nodokļa maksājumi VATRefund=PVN atmaksa NewVATPayment=Jauns apgrozījuma nodokļa maksājums NewLocalTaxPayment=Jauns nodokļa %s maksājums Refund=Atmaksa -SocialContributionsPayments=Social/fiscal taxes payments +SocialContributionsPayments=Sociālo/fiskālo nodokļu maksājumi ShowVatPayment=Rādīt PVN maksājumu TotalToPay=Summa BalanceVisibilityDependsOnSortAndFilters=Bilance ir redzama šajā sarakstā tikai tad, ja tabula ir sakārtota uz augšu %s un tiek filtrēta 1 bankas kontam. @@ -132,11 +132,11 @@ NewCheckDepositOn=Izveidot kvīti par depozīta kontā: %s NoWaitingChecks=No checks awaiting deposit. DateChequeReceived=Pārbaudiet uzņemšanas datumu NbOfCheques=Pārbaužu skaits -PaySocialContribution=Pay a social/fiscal tax +PaySocialContribution=Maksāt sociālo/fiskālo nodokli ConfirmPaySocialContribution=Vai tiešām vēlaties klasificēt šo sociālo vai fiskālo nodokli kā samaksātu? DeleteSocialContribution=Dzēst sociālo vai fiskālo nodokļu maksājumu ConfirmDeleteSocialContribution=Vai tiešām vēlaties dzēst šo sociālo / fiskālo nodokļu maksājumu? -ExportDataset_tax_1=Social and fiscal taxes and payments +ExportDataset_tax_1=Sociālie un fiskālie nodokļi un maksājumi CalcModeVATDebt=Mode %sVAT par saistību accounting%s. CalcModeVATEngagement=Mode %sVAT par ienākumu-expense%sS. CalcModeDebt=Zināma reģistrēto rēķinu analīze, pat ja tie vēl nav uzskaitīti virsgrāmatā. @@ -148,8 +148,8 @@ CalcModeLT1Rec= Mode %sRE on suppliers invoices%s CalcModeLT2= Mode %sIRPF on customer invoices - suppliers invoices%s CalcModeLT2Debt=Mode %sIRPF on customer invoices%s CalcModeLT2Rec= Mode %sIRPF on suppliers invoices%s -AnnualSummaryDueDebtMode=Līdzsvars ienākumiem un izdevumiem, gada kopsavilkums -AnnualSummaryInputOutputMode=Līdzsvars ienākumiem un izdevumiem, gada kopsavilkums +AnnualSummaryDueDebtMode=Ienākumu un izdevumu bilance, gada kopsavilkums +AnnualSummaryInputOutputMode=Ienākumu un izdevumu bilance, gada kopsavilkums AnnualByCompanies=Ieņēmumu un izdevumu līdzsvars pēc iepriekš definētām kontu grupām AnnualByCompaniesDueDebtMode=Ieņēmumu un izdevumu bilance, detalizēti pēc iepriekš definētām grupām, režīms %sClaims-Debts%s norādīja Saistību grāmatvedība . AnnualByCompaniesInputOutputMode=Ieņēmumu un izdevumu līdzsvars, detalizēti pēc iepriekš definētām grupām, režīms %sIncomes-Expenses%s norādīja naudas līdzekļu uzskaiti . diff --git a/htdocs/langs/lv_LV/dict.lang b/htdocs/langs/lv_LV/dict.lang index 21b821fa218..a56b6837c4a 100644 --- a/htdocs/langs/lv_LV/dict.lang +++ b/htdocs/langs/lv_LV/dict.lang @@ -197,7 +197,7 @@ CountryPM=Senpjēra un Mikelona CountryVC=Sentvinsenta un Grenadīnas CountryWS=Samoa CountrySM=San Marino -CountryST=Santome un Prinsipi +CountryST=Santome un Principe CountryRS=Serbija CountrySC=Seišelu salas CountrySL=Sierra Leone diff --git a/htdocs/langs/lv_LV/ecm.lang b/htdocs/langs/lv_LV/ecm.lang index b6db88ee895..c0290037ad5 100644 --- a/htdocs/langs/lv_LV/ecm.lang +++ b/htdocs/langs/lv_LV/ecm.lang @@ -35,7 +35,7 @@ ECMDocsByUsers=Ar lietotājiem saistītie dokumenti ECMDocsByInterventions=Documents linked to interventions ECMDocsByExpenseReports=Ar izdevumu ziņojumiem saistītie dokumenti ECMDocsByHolidays=Ar brīvdienām saistītie dokumenti -ECMDocsBySupplierProposals=Dokumenti, kas saistīti ar piegādātāju priekšlikumiem +ECMDocsBySupplierProposals=Dokumenti, kas saistīti ar pārdevēja priekšlikumiem ECMNoDirectoryYet=Nav izveidots katalogs ShowECMSection=Rādīt katalogu DeleteSection=Dzēst direktoriju diff --git a/htdocs/langs/lv_LV/errors.lang b/htdocs/langs/lv_LV/errors.lang index a86ec95eb85..27836af5be3 100644 --- a/htdocs/langs/lv_LV/errors.lang +++ b/htdocs/langs/lv_LV/errors.lang @@ -55,7 +55,7 @@ ErrorDirNotFound=Directory %s nav atrasts (Bad ceļš, aplamas tiesības ErrorFunctionNotAvailableInPHP=Funkcija %s ir nepieciešama šī funkcija, bet nav pieejams šajā versijā / uzstādīšanas PHP. ErrorDirAlreadyExists=Direrktorija ar šādu nosaukumu jau pastāv. ErrorFileAlreadyExists=Fails ar šādu nosaukumu jau eksistē. -ErrorPartialFile=Fails nav saņēmusi pilnīgi ar serveri. +ErrorPartialFile=Serveris failu nav saņemis pilnīgi. ErrorNoTmpDir=Pagaidu direktorija %s neeksistē. ErrorUploadBlockedByAddon=Augšupielāde bloķēja ar PHP/Apache spraudni. ErrorFileSizeTooLarge=Faila izmērs ir pārāk liels. @@ -64,7 +64,7 @@ ErrorSizeTooLongForVarcharType=Izmērs ir pārāk garš (%s simboli maksimums) ErrorNoValueForSelectType=Lūdzu izvēlieties vērtību no saraksta ErrorNoValueForCheckBoxType=Lūdzu, aizpildiet vērtību rūtiņu sarakstā ErrorNoValueForRadioType=Lūdzu, aizpildiet vērtību radio pogu sarakstā -ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value +ErrorBadFormatValueList=Saraksta vērtībā nedrīkst būt vairāk par vienu komatu: %s , bet tai ir nepieciešams vismaz viena: atslēga, vērtība ErrorFieldCanNotContainSpecialCharacters=Laukā %s nedrīkst būt īpašas rakstzīmes. ErrorFieldCanNotContainSpecialNorUpperCharacters=Laukā %s nedrīkst būt speciālās rakstzīmes vai lielformāta rakstzīmes, un tajos nedrīkst būt tikai cipari. ErrorFieldMustHaveXChar=Laukā %sjābūt vismaz %s rakstzīmēm. @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Speciālās rakstzīmes nav atļautas laukam ErrorNumRefModel=Norāde pastāv to datubāzē (%s), un tas nav saderīgs ar šo numerācijas noteikuma. Noņemt ierakstu vai pārdēvēts atsauci, lai aktivizētu šo moduli. ErrorQtyTooLowForThisSupplier=Šim pārdevējam pārāk zems daudzums vai cena, kas šai precei nav noteikta šim pārdevējam ErrorOrdersNotCreatedQtyTooLow=Daži pasūtījumi nav izveidoti jo pārāk mazs daudzums -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complet +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Kļūda masku ErrorBadMaskFailedToLocatePosOfSequence=Kļūda, maska ​​bez kārtas numuru ErrorBadMaskBadRazMonth=Kļūdas, slikta reset vērtība @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s jāsāk ar http: // vai https: // ErrorNewRefIsAlreadyUsed=Kļūda, jaunā atsauce jau ir izmantota ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Kļūda, dzēšot maksājumu, kas sasaistīts ar slēgtu rēķinu. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Noklikšķiniet šeit, lai iestatītu obligātos parametrus WarningEnableYourModulesApplications=Noklikšķiniet šeit, lai iespējotu moduļus un lietojumprogrammas diff --git a/htdocs/langs/lv_LV/exports.lang b/htdocs/langs/lv_LV/exports.lang index 043b2ee0583..4f7708caaea 100644 --- a/htdocs/langs/lv_LV/exports.lang +++ b/htdocs/langs/lv_LV/exports.lang @@ -13,11 +13,11 @@ NotImportedFields=Jomas avota failā nav importēti SaveExportModel=Saglabājiet atlases kā eksporta profilu / veidni (atkārtotai izmantošanai). SaveImportModel=Saglabājiet šo importa profilu (lai to atkārtoti izmantotu) ... ExportModelName=Eksportēšanas profila nosaukums -ExportModelSaved=Eksporta profils tiek saglabāts kā %s . +ExportModelSaved=Eksporta profils tiek saglabāts kā %s. ExportableFields=Eksportējami lauki ExportedFields=Eksportēti lauki ImportModelName=Importēšanas profila nosaukums -ImportModelSaved=Importa profils tiek saglabāts kā %s . +ImportModelSaved=Importa profils tiek saglabāts kā %s. DatasetToExport=Datu kopas eksports DatasetToImport=Importēt failu datu kopā ChooseFieldsOrdersAndTitle=Izvēlieties lauku secību ... @@ -44,7 +44,7 @@ LineDescription=Līnijas apraksts LineUnitPrice=Vienības cenas līnija LineVATRate=PVN likme līnijas LineQty=Daudzums līnijas -LineTotalHT=Summa bez nodokļiem līnijas +LineTotalHT=Summa, neskaitot nodoklis par līniju LineTotalTTC=Summa ar nodokļiem līniju LineTotalVAT=PVN summu, par līnijas TypeOfLineServiceOrProduct=Veids (0=produkts, 1=pakalpojums) @@ -68,7 +68,7 @@ FieldsTarget=Mērķtiecīga lauki FieldTarget=Mērķtiecīga lauks FieldSource=Avota lauks NbOfSourceLines=Līniju skaits avota failā -NowClickToTestTheImport=Pārbaudiet iestatīto importēšanas iestatījumu (pārbaudiet, vai jums ir jāizslēdz galvenes līnijas vai arī tās tiks atzīmētas kā kļūdas nākamajā simulācijā).
Noklikšķiniet uz pogas %s , lai veiktu čeku no faila struktūras / satura un imitē importa procesu.
Jūsu datubāzē dati netiks mainīti . +NowClickToTestTheImport=Pārbaudiet, vai faila formāts (lauka un virknes norobežotāji) atbilst redzamajām opcijām un ka esat izlaidis galvenes rindu, vai arī šie simboli tiks atzīmēti kā kļūdas.
Noklikšķiniet uz " %s "poga, lai veiktu faila struktūras / satura pārbaudi un imitētu importa procesu.
Jūsu datu bāzē dati netiks mainīti . RunSimulateImportFile=Palaist importa simulāciju FieldNeedSource=Šim laukam nepieciešami dati no avota faila SomeMandatoryFieldHaveNoSource=Daži obligātie lauki nav avotu, no datu faila @@ -78,14 +78,14 @@ SelectAtLeastOneField=Pārslēgt vismaz vienu avota lauku slejā jomās eksport SelectFormat=Izvēlieties šo importa failu formātu RunImportFile=Importēt datus NowClickToRunTheImport=Pārbaudiet importa simulācijas rezultātus. Labojiet kļūdas un atkārtojiet testu.
Kad simulācijā nav kļūdu, jūs varat turpināt importēt datus datu bāzē. -DataLoadedWithId=Visi dati tiks ielādēti ar šādu importa ID: %s , lai iespējotu meklēšanu šajā datu kopā, ja nākotnē atklāsiet problēmas. +DataLoadedWithId=Importētajiem datiem katrā datu bāzes tabulā būs papildu lauks ar šo ievešanas ID: %s , lai ļautu tai atrast meklēšanu, ja tiek izmeklēta ar šo importu saistīta problēma. ErrorMissingMandatoryValue=Obligātie dati avota failā ir tukši laukā %s . TooMuchErrors=Vēl ir %s citas avota līnijas ar kļūdām, taču izlaide ir ierobežota. TooMuchWarnings=Vēl ir %s citas avota līnijas ar brīdinājumiem, bet izlaide ir ierobežota. EmptyLine=Tukšas līnijas (tiks izmestas) CorrectErrorBeforeRunningImport=Jums ir jāizlabo visas kļūdas pirms varat veikt importu. FileWasImported=Fails tika importēts ar numuru %s. -YouCanUseImportIdToFindRecord=Jūs varat atrast visus importētos ierakstus savā datubāzē, filtrējot laukā import_key = '%s' . +YouCanUseImportIdToFindRecord=Visus importētos ierakstus varat atrast savā datu bāzē, filtrējot laukā import_key = '%s' . NbOfLinesOK=Skaits līniju bez kļūdām un bez brīdinājumiem: %s. NbOfLinesImported=Skaits līniju veiksmīgi importēto: %s. DataComeFromNoWhere=Vērtību, lai ievietotu nāk no nekur avota failā. @@ -100,8 +100,8 @@ SourceExample=Piemērs par iespējamo datu vērtības ExampleAnyRefFoundIntoElement=Jebkura atsauce atrasts elementu %s ExampleAnyCodeOrIdFoundIntoDictionary=Any code (or id) found into dictionary %s CSVFormatDesc= Kumijas atdalītas vērtības faila formāts (.csv).
Šis ir teksta faila formāts, kurā lauki atdala ar atdalītāju [%s]. Ja lauka saturā atrodas atdalītājs, lauku noapaļo apaļa formā [%s]. Escape raksturs, lai izvairītos no apaļa raksturs ir [%s]. -Excel95FormatDesc= Excel faila formāts (.xls)
Šis ir iekšējais Excel 95 formāts (BIFF5). -Excel2007FormatDesc= Excel faila formāts (.xlsx)
Šis ir vietējais Excel 2007 formāts (SpreadsheetML). +Excel95FormatDesc=Excel faila formāts (.xls)
Šis ir iekšējais Excel 95 formāts (BIFF5). +Excel2007FormatDesc=Excel faila formāts (.xlsx)
Šis ir Excel 2007 formāts (SpreadsheetML). TsvFormatDesc=Tab atdalītu vērtību failu formāts (. TSV)
Tas ir teksta faila formāts, kur lauki ir atdalīti ar tabulācijas [Tab]. ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). CsvOptions=CSV formāta opcijas @@ -109,14 +109,14 @@ Separator=Lauka atdalītājs Enclosure=Virknes atdalītājs SpecialCode=Speciāls kods ExportStringFilter=%% allows replacing one or more characters in the text -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filtri par vienu gadu / mēnesi / dienu, YYYY + YYYY, YYYYMM + YYYYMM, YYYYMMDD + YYYYMMDD: filtri ilgāk par gadiem / mēnešiem / dienām
> GGGG,> GGGGM,> GGGGMDD : filtri visos nākamajos gados / mēnešos / dienās, NNNNN + NNNNN filtrus vērtību diapazonā
> NNNNN filtri ar lielākām vērtībām ImportFromLine=Importēt, sākot ar līnijas numuru EndAtLineNb=End at line number -ImportFromToLine=Ierobežojuma diapazons (no - līdz), piem. izlaist galvenes līniju -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines -KeepEmptyToGoToEndOfFile=Saglabājiet šo lauku tukšu, lai pārietu uz faila beigām -SelectPrimaryColumnsForUpdateAttempt=Atlasiet kolonnu (-es), kuru izmantojat kā primāro atslēgu atjaunināšanas mēģinājumam +ImportFromToLine=Limit diapazons (no - līdz), piem. lai izlaistu virsraksta rindu (-as) +SetThisValueTo2ToExcludeFirstLine=Piemēram, iestatiet šo vērtību uz 3, lai izslēgtu 2 pirmās rindas.
Ja galvenes rindas NAV izlaistas, tas izraisīs vairākas kļūdas importa modelēšanā. +KeepEmptyToGoToEndOfFile=Saglabājiet šo lauku tukšu, lai apstrādātu visas rindas līdz faila beigām. +SelectPrimaryColumnsForUpdateAttempt=Atlasiet kolonnu (-as), ko izmantot kā primāro atslēgu UPDATE importēšanai UpdateNotYetSupportedForThisImport=Šī veida importa atjaunināšana nav atbalstīta (tikai ievietot). NoUpdateAttempt=Netika veikts atjaunināšanas mēģinājums, tikai ievietojiet ImportDataset_user_1=Lietotāji (darbinieki vai ne) un īpašumi @@ -124,7 +124,7 @@ ComputedField=Aprēķinātais lauks ## filters SelectFilterFields=Ja jūs vēlaties filtrēt dažas vērtības, vienkārši ievadi vērtības šeit. FilteredFields=Filtrētie lauki -FilteredFieldsValues=Cenas filtru +FilteredFieldsValues=Filtra vērtība FormatControlRule=Format control rule ## imports updates KeysToUseForUpdates=Atslēga (sleja), ko izmantot esošo datu atjaunināšanai diff --git a/htdocs/langs/lv_LV/help.lang b/htdocs/langs/lv_LV/help.lang index 48124086432..0482ffc903b 100644 --- a/htdocs/langs/lv_LV/help.lang +++ b/htdocs/langs/lv_LV/help.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - help CommunitySupport=Forums / Vikipēdijas atbalsts EMailSupport=E-pasta atbalsts -RemoteControlSupport=Tiešsaistes reālā laika / tālvadības atbalsts +RemoteControlSupport=Tiešsaistes reālā laika/tālvadības atbalsts OtherSupport=Cits atbalsts ToSeeListOfAvailableRessources=Lai sazinātos / skatītu pieejamos resursus: HelpCenter=Palīdzības centrs diff --git a/htdocs/langs/lv_LV/holiday.lang b/htdocs/langs/lv_LV/holiday.lang index 943bea2de07..c47d52c0704 100644 --- a/htdocs/langs/lv_LV/holiday.lang +++ b/htdocs/langs/lv_LV/holiday.lang @@ -77,12 +77,12 @@ UserCP=Lietotājs ErrorAddEventToUserCP=Pievienojot ārpuskārtas atvaļinājumu, radās kļūda. AddEventToUserOkCP=Par ārkārtas atvaļinājumu papildinājums ir pabeigta. MenuLogCP=Skatīt izmaiņu žurnālus -LogCP=Log of updates of available vacation days +LogCP=Pieejamo atvaļinājumu dienu atjauninājumu žurnāls ActionByCP=Veic UserUpdateCP=Lietotājam PrevSoldeCP=Iepriekšējā bilance NewSoldeCP=Jana Bilance -alreadyCPexist=A leave request has already been done on this period. +alreadyCPexist=Šajā periodā atvaļinājuma pieprasījums jau ir veikts. FirstDayOfHoliday=Pirmā atvaļinājuma diena LastDayOfHoliday=Pēdēja atvaļinājuma diena BoxTitleLastLeaveRequests=Jaunākie %s labotie atvaļinājumu pieprasījumi @@ -101,7 +101,7 @@ LEAVE_SICK=Slimības lapa LEAVE_OTHER=Cits atvaļinājums LEAVE_PAID_FR=Apmaksāts atvaļinājums ## Configuration du Module ## -LastUpdateCP=Jaunākais automātiska atvaļinājuma piešķiršanas atjaunināšana +LastUpdateCP=Jaunākais atvaļinājumu piešķiršanas atjauninājums MonthOfLastMonthlyUpdate=Pēdējā automātiskā atvaļinājuma piešķiršanas mēneša pēdējā mēneša laikā UpdateConfCPOK=Veiksmīgi atjaunināta. Module27130Name= Atvaļinājuma pieprasījumu pārvaldība diff --git a/htdocs/langs/lv_LV/install.lang b/htdocs/langs/lv_LV/install.lang index 615fb3cce42..28d768c312e 100644 --- a/htdocs/langs/lv_LV/install.lang +++ b/htdocs/langs/lv_LV/install.lang @@ -4,7 +4,7 @@ MiscellaneousChecks=Priekšnoteikumu pārbaude ConfFileExists=Konfigurācijas fails %s eksistē. ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurācijas fails %s nepastāv un to nevarēja izveidot! ConfFileCouldBeCreated=Konfigurācijas failu %s var izveidot. -ConfFileIsNotWritable=Konfigurācijas fails %s nav rakstāms. Pārbaudīt atļaujas. Pirmajai instalēšanai jūsu tīmekļa serverim jāspēj rakstīt šajā failā konfigurācijas procesa laikā ("chmod 666", piemēram, operētājsistēmā Unix, piemēram). +ConfFileIsNotWritable=Konfigurācijas failā %s nevar ierakstīt. Pārbaudīt atļaujas. Pirmajai instalēšanai jūsu tīmekļa serverim jāspēj rakstīt šajā failā konfigurācijas procesa laikā ("chmod 666", piemērs, operētājsistēmai Unix). ConfFileIsWritable=Konfigurācijas failā %s var ierakstīt. ConfFileMustBeAFileNotADir=Konfigurācijas failam %s jābūt failam, nevis direktorijai. ConfFileReload=Pārsūtot parametrus no konfigurācijas faila. @@ -40,7 +40,7 @@ License=Izmantojot licenci ConfigurationFile=Konfigurācijas fails WebPagesDirectory=Katalogs kur web lapas tiek uzglabātas DocumentsDirectory=Direktorija kurā uzglabāt augšupielādētos un ģenerētos dokumentus -URLRoot=URL Root +URLRoot=URL sakne ForceHttps=Piespiedu drošais savienojums (https) CheckToForceHttps=Pārbaudiet šo opciju, lai piespiestu drošus savienojumus (https).
Tas nozīmē, ka tīmekļa serveris ir konfigurēts ar SSL sertifikātu. DolibarrDatabase=Dolibarr datubāze diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang index 96717fe3a56..567160c1ec8 100644 --- a/htdocs/langs/lv_LV/main.lang +++ b/htdocs/langs/lv_LV/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakti / adreses par šīs trešās personas AddressesForCompany=Šīs trešās puses adreses ActionsOnCompany=Notikumi šai trešajai pusei ActionsOnContact=Notikumi šim kontaktam / adresei +ActionsOnContract=Events for this contract ActionsOnMember=Pasākumi par šo locekli ActionsOnProduct=Notikumi ar šo produktu NActionsLate=%s vēlu @@ -759,6 +760,7 @@ LinkToSupplierProposal=Saite uz pārdevēja priekšlikumu LinkToSupplierInvoice=Saite uz piegādātāja rēķinu LinkToContract=Saite uz līgumu LinkToIntervention=Saikne ar intervenci +LinkToTicket=Link to ticket CreateDraft=Izveidot melnrakstu SetToDraft=Atpakaļ uz melnrakstu ClickToEdit=Klikšķiniet, lai rediģētu diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang index 7db31a84a8e..afa35a4b839 100644 --- a/htdocs/langs/lv_LV/products.lang +++ b/htdocs/langs/lv_LV/products.lang @@ -2,6 +2,7 @@ ProductRef=Produkta ref. ProductLabel=Produkta marķējums ProductLabelTranslated=Tulkots produkta nosaukums +ProductDescription=Product description ProductDescriptionTranslated=Tulkotā produkta apraksts ProductNoteTranslated=Tulkota produkta piezīme ProductServiceCard=Produktu / Pakalpojumu kartiņa diff --git a/htdocs/langs/lv_LV/stripe.lang b/htdocs/langs/lv_LV/stripe.lang index 32c2bb4722f..ae403d0fee8 100644 --- a/htdocs/langs/lv_LV/stripe.lang +++ b/htdocs/langs/lv_LV/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=Lietotāja konts, lai izmantotu e-pasta paziņojumu StripePayoutList=Svītru izmaksu saraksts ToOfferALinkForTestWebhook=Saite uz iestatījumu Stripe WebHook, lai izsauktu IPN (testa režīms) ToOfferALinkForLiveWebhook=Saite uz iestatījumu Stripe WebHook, lai izsauktu IPN (tiešraides režīms) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/lv_LV/withdrawals.lang b/htdocs/langs/lv_LV/withdrawals.lang index 841f1627174..f91254633f6 100644 --- a/htdocs/langs/lv_LV/withdrawals.lang +++ b/htdocs/langs/lv_LV/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Izstāšanās fails SetToStatusSent=Nomainīt uz statusu "Fails nosūtīts" ThisWillAlsoAddPaymentOnInvoice=Tas arī ierakstīs maksājumus rēķiniem un klasificēs tos kā "Apmaksātais", ja atlikušais maksājums ir nulle StatisticsByLineStatus=Statistics by status of lines -RUM=RUM +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unikāla pilnvaru atsauce RUMWillBeGenerated=Ja tukša, UMR (Unique Mandate Reference) tiks ģenerēta, tiklīdz tiks saglabāta bankas konta informācija. WithdrawMode=Tiešā debeta režīms (FRST vai RECUR) diff --git a/htdocs/langs/mk_MK/accountancy.lang b/htdocs/langs/mk_MK/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/mk_MK/accountancy.lang +++ b/htdocs/langs/mk_MK/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/mk_MK/admin.lang b/htdocs/langs/mk_MK/admin.lang index c021eeb4cff..fc4715fc86d 100644 --- a/htdocs/langs/mk_MK/admin.lang +++ b/htdocs/langs/mk_MK/admin.lang @@ -574,7 +574,7 @@ Module510Name=Плати Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/mk_MK/bills.lang b/htdocs/langs/mk_MK/bills.lang index aef2b5fce2f..10e23576099 100644 --- a/htdocs/langs/mk_MK/bills.lang +++ b/htdocs/langs/mk_MK/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/mk_MK/errors.lang b/htdocs/langs/mk_MK/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/mk_MK/errors.lang +++ b/htdocs/langs/mk_MK/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/mk_MK/main.lang b/htdocs/langs/mk_MK/main.lang index 7fee58b853b..0982c8b0195 100644 --- a/htdocs/langs/mk_MK/main.lang +++ b/htdocs/langs/mk_MK/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/mk_MK/products.lang b/htdocs/langs/mk_MK/products.lang index 7b68f5b3ebd..73e672284de 100644 --- a/htdocs/langs/mk_MK/products.lang +++ b/htdocs/langs/mk_MK/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/mk_MK/stripe.lang b/htdocs/langs/mk_MK/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/mk_MK/stripe.lang +++ b/htdocs/langs/mk_MK/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/mk_MK/withdrawals.lang b/htdocs/langs/mk_MK/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/mk_MK/withdrawals.lang +++ b/htdocs/langs/mk_MK/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/mn_MN/accountancy.lang b/htdocs/langs/mn_MN/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/mn_MN/accountancy.lang +++ b/htdocs/langs/mn_MN/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/mn_MN/admin.lang b/htdocs/langs/mn_MN/admin.lang index f30d6edd9f7..2e27c6fe81f 100644 --- a/htdocs/langs/mn_MN/admin.lang +++ b/htdocs/langs/mn_MN/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/mn_MN/bills.lang b/htdocs/langs/mn_MN/bills.lang index 4f114d4df1c..53535e58b46 100644 --- a/htdocs/langs/mn_MN/bills.lang +++ b/htdocs/langs/mn_MN/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/mn_MN/errors.lang b/htdocs/langs/mn_MN/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/mn_MN/errors.lang +++ b/htdocs/langs/mn_MN/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/mn_MN/main.lang b/htdocs/langs/mn_MN/main.lang index cd5066560a2..5f83892413d 100644 --- a/htdocs/langs/mn_MN/main.lang +++ b/htdocs/langs/mn_MN/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/mn_MN/products.lang b/htdocs/langs/mn_MN/products.lang index 7b68f5b3ebd..73e672284de 100644 --- a/htdocs/langs/mn_MN/products.lang +++ b/htdocs/langs/mn_MN/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/mn_MN/stripe.lang b/htdocs/langs/mn_MN/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/mn_MN/stripe.lang +++ b/htdocs/langs/mn_MN/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/mn_MN/withdrawals.lang b/htdocs/langs/mn_MN/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/mn_MN/withdrawals.lang +++ b/htdocs/langs/mn_MN/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang index 1357c7572c0..600e7ed6a76 100644 --- a/htdocs/langs/nb_NO/accountancy.lang +++ b/htdocs/langs/nb_NO/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Regnskapsjournaler AccountingJournal=Regnskapsjournal NewAccountingJournal=Ny regnskapsjourna ShowAccoutingJournal=Vis regnskapsjournal -Nature=Natur +NatureOfJournal=Nature of Journal AccountingJournalType1=Diverse operasjoner AccountingJournalType2=Salg AccountingJournalType3=Innkjøp @@ -291,6 +291,7 @@ Modelcsv_quadratus=Eksport til Quadratus QuadraCompta Modelcsv_ebp=Eksport tilEBP Modelcsv_cogilog=Eksport til Cogilog Modelcsv_agiris=Eksport til Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Eksport for OpenConcerto (Test) Modelcsv_configurable=Eksport CSV Konfigurerbar Modelcsv_FEC=Eksporter FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Kontoplan ID InitAccountancy=Initier regnskap InitAccountancyDesc=Denne siden kan brukes til å initialisere en regnskapskonto for produkter og tjenester som ikke har en regnskapskonto definert for salg og kjøp. DefaultBindingDesc=Denne siden kan brukes til å sette en standardkonto til bruk for å for å koble transaksjonsposter om lønnsutbetaling, donasjon, skatter og MVA når ingen bestemt regnskapskonto er satt. -DefaultClosureDesc=Denne siden kan brukes til å angi parametere som skal brukes til å legge inn en balanse. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Innstillinger OptionModeProductSell=Salgsmodus OptionModeProductSellIntra=Modussalg eksportert i EU diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index 104b197123c..850c648f279 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -574,7 +574,7 @@ Module510Name=Lønn Module510Desc=Registrer og følg opp ansattebetalinger Module520Name=Lån Module520Desc=Administrering av lån -Module600Name=Varsler +Module600Name=Notifications on business event Module600Desc=Send epostvarsler utløst av en forretningshendelse): pr. bruker (oppsett definert for hver bruker), tredjeparts kontakt (oppsett definert for hver tredjepart) eller spesifikke eposter Module600Long=Vær oppmerksom på at denne modulen sender e-post i sanntid når en bestemt forretningshendelse oppstår. Hvis du leter etter en funksjon for å sende e-postpåminnelser for agendahendelser, går du inn i oppsettet av agendamodulen . Module610Name=Varevarianter @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Komplementære attributter (ordre) ExtraFieldsSupplierInvoices=Komplementære attributter (fakturaer) ExtraFieldsProject=Komplementære attributter (prosjekter) ExtraFieldsProjectTask=Komplementære attributter (oppgaver) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attributten %s har en feil verdi AlphaNumOnlyLowerCharsAndNoSpace=kun alfanumeriske tegn og små bokstaver uten mellomrom SendmailOptionNotComplete=Advarsel, på noen Linux-systemer, for å sende fra din e-post, må oppsettet av sendmail-kjøring inneholde opsjon -ba (parameter mail.force_extra_parameters i din php.ini fil). Hvis noen mottakere aldri mottar e-post, kan du prøve å redigere PHP parameter med mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session lagring kryptert av Suhosin ConditionIsCurrently=Tilstand er for øyeblikket %s YouUseBestDriver=Du bruker driver %s som er den beste driveren som er tilgjengelig for øyeblikket. YouDoNotUseBestDriver=Du bruker driveren %s. Driver %s anbefales. -NbOfProductIsLowerThanNoPb=Du har bare %s varer/tjenester i databasen. Ingen optimalisering er påkrevet +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Forbedre søket -YouHaveXProductUseSearchOptim=Du har %s varer i databasen. Du bør legge til konstanten PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Hjem-Oppsett-Annet for å begrense søket til begynnelsen av strenger. Dette gjør det mulig for databasen å bruke indeksen og du bør få en raskere respons. +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. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. 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. -XDebugInstalled=XDebug er lastet -XCacheInstalled=XCache er lastet +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Vis kunde/leverandør-ref i liste (velg liste eller kombinasjonsboks), og det meste av hyperkobling. Tredjepart vil vises med navnet "CC12345 - SC45678 - Stort selskap", i stedet for "Stort selskap". AddAdressInList=Vis liste over kunde-/leverandøradresseinfo (velg liste eller kombinasjonsboks)
Tredjeparter vil vises med et navnformat av "The Big Company Corp." - 21 Jump Street 123456 Big Town - USA "i stedet for" The Big Company Corp ". AskForPreferredShippingMethod=Spør etter foretrukket sendingsmetode for tredjeparter @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Oppsett av modul Utgiftsrapporter - Regler ExpenseReportNumberingModules=Utgiftsrapport nummereringsmodul NoModueToManageStockIncrease=Ingen modul i stand til å håndtere automatisk lagerøkning er blitt aktivert. Lagerøkning kan bare gjøres manuelt. YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan finne alternativer for e-postmeldinger ved å aktivere og konfigurere modulen "Varslingen". -ListOfNotificationsPerUser=Liste over varslinger pr. bruker* -ListOfNotificationsPerUserOrContact=Liste over varsler (hendelser) tilgjengelig pr. bruker * eller pr. kontakt ** -ListOfFixedNotifications=Liste over faste varsler +ListOfNotificationsPerUser=Liste over automatiske varsler per bruker * +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=Liste over faste automatiske varslinger GoOntoUserCardToAddMore=Gå til fanen "Varslinger" hos en bruker for å legge til eller fjerne en varsling GoOntoContactCardToAddMore=Gå til fanen "Notefikasjoner" hos en tredjepart for å legge til notifikasjoner for kontakter/adresser Threshold=Terskel @@ -1898,6 +1900,11 @@ OnMobileOnly=Kun på små skjermer (smarttelefon) DisableProspectCustomerType=Deaktiver "Prospect + Customer" tredjeparts type (tredjepart må være prospekt eller kunde, men kan ikke være begge) MAIN_OPTIMIZEFORTEXTBROWSER=Forenkle grensesnitt for blinde personer MAIN_OPTIMIZEFORTEXTBROWSERDesc=Aktiver dette alternativet hvis du er blind, eller hvis du bruker programmet fra en tekstbrowser som Lynx eller Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Denne verdien kan overskrives av hver bruker fra brukersiden - fanen '%s' DefaultCustomerType=Standard tredjepartstype for "Ny kunde"-opprettingsskjema ABankAccountMustBeDefinedOnPaymentModeSetup=Merk: Bankkontoen må defineres i modulen for hver betalingsmodus (Paypal, Stripe, ...) for å få denne funksjonen til å fungere. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Antall linjer som skal vises under loggfanene UseDebugBar=Bruk feilsøkingsfeltet DEBUGBAR_LOGS_LINES_NUMBER=Nummer på siste logglinjer å beholde i konsollen WarningValueHigherSlowsDramaticalyOutput=Advarsel, høyere verdier reduserer resultatet dramatisk -DebugBarModuleActivated=Modul feilsøkingsfelt er aktivert og bremser grensesnittet dramatisk +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Eksportmodellene er delt med alle ExportSetup=Oppsett av modul Eksport InstanceUniqueID=Unik ID for forekomsten @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=Du finner den på din IFTTT-konto EndPointFor=Sluttpunkt for %s: %s DeleteEmailCollector=Slett e-postsamler ConfirmDeleteEmailCollector=Er du sikker på at du vil slette denne e-postsamleren? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/nb_NO/bills.lang b/htdocs/langs/nb_NO/bills.lang index 5cfdfb3c6e0..972bbbf4a5d 100644 --- a/htdocs/langs/nb_NO/bills.lang +++ b/htdocs/langs/nb_NO/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Betalingen er høyere enn restbeløp HelpPaymentHigherThanReminderToPay=NB! Innbetalingen av en eller flere fakturaer er høyere enn restbeløpet.
Endre oppføringen eller bekreft for å lage kreditnota av det overskytende for overbetalte fakturaer. HelpPaymentHigherThanReminderToPaySupplier=Vær oppmerksom på at betalingsbeløpet på en eller flere regninger er høyere enn gjenstående å betale.
Rediger oppføringen din, ellers bekreft og opprett en kredittnota av overskuddet betalt for hver overbetalt faktura. ClassifyPaid=Merk 'Betalt' +ClassifyUnPaid=Klassifiser 'Ubetalt' ClassifyPaidPartially=Merk 'Delbetalt' ClassifyCanceled=Merk 'Tapsført' ClassifyClosed=Merk 'Lukket' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Vis erstatningsfaktura ShowInvoiceAvoir=Vis kreditnota ShowInvoiceDeposit=Vis nedbetalingsfaktura ShowInvoiceSituation=Vis delfaktura +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=å betale på %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Vis betaling AlreadyPaid=Allerede betalt AlreadyPaidBack=Allerede tilbakebetalt diff --git a/htdocs/langs/nb_NO/errors.lang b/htdocs/langs/nb_NO/errors.lang index 3b286905bdd..0e078b11525 100644 --- a/htdocs/langs/nb_NO/errors.lang +++ b/htdocs/langs/nb_NO/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Spesialtegn er ikke tillatt for feltet "%s" ErrorNumRefModel=En referanse finnes i databasen (%s), og er ikke kompatibel med denne nummereringsregelen. Fjern posten eller omdøp referansen for å aktivere denne modulen. ErrorQtyTooLowForThisSupplier=Mengde for lav for denne leverandøren eller ingen pris angitt på dette produktet for denne leverandøren ErrorOrdersNotCreatedQtyTooLow=Noen ordrer er ikke opprettet på grunn av for lave mengder -ErrorModuleSetupNotComplete=Oppsett av modulen ser ikke ut til å være komplett. Gå til Hjem - Oppsett - Moduler for å fullføre. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Feil på maske ErrorBadMaskFailedToLocatePosOfSequence=Feil! Maske uten sekvensnummer ErrorBadMaskBadRazMonth=Feil, ikke korrekt tilbakestillingsverdi @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s må starte med http:// eller https:// ErrorNewRefIsAlreadyUsed=Feil, den nye referansen er allerede brukt ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Feil, å slette betaling knyttet til en lukket faktura er ikke mulig. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Et passord ble satt for dette medlemmet, men ingen brukerkonto ble opprettet. Det fører til at passordet ikke kan benyttes for å logge inn på Dolibarr. Det kan brukes av en ekstern modul/grensesnitt, men hvis du ikke trenger å definere noen innlogging eller passord for et medlem, kan du deaktivere alternativet "opprett en pålogging for hvert medlem" fra medlemsmodul-oppsettet. Hvis du trenger å administrere en pålogging, men ikke trenger noe passord, kan du holde dette feltet tomt for å unngå denne advarselen. Merk: E-post kan også brukes som en pålogging dersom medlemmet er knyttet til en bruker. WarningMandatorySetupNotComplete=Klikk her for å sette opp obligatoriske parametere WarningEnableYourModulesApplications=Klikk her for å aktivere modulene og applikasjonene dine diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang index 2eb11b9a9d1..12ce6966c2f 100644 --- a/htdocs/langs/nb_NO/main.lang +++ b/htdocs/langs/nb_NO/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakter/adresser for denne tredjepart AddressesForCompany=Adresser for tredjepart ActionsOnCompany=Hendelser for denne tredjeparten ActionsOnContact=Hendelser for denne kontakten/adressen +ActionsOnContract=Events for this contract ActionsOnMember=Hendelser om dette medlemmet ActionsOnProduct=Hendelser om denne varen NActionsLate=%s forsinket @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link til leverandørtilbud LinkToSupplierInvoice=Link til leverandørfaktura LinkToContract=Lenke til kontakt LinkToIntervention=Lenke til intervensjon +LinkToTicket=Link to ticket CreateDraft=Lag utkast SetToDraft=Tilbake til kladd ClickToEdit=Klikk for å redigere diff --git a/htdocs/langs/nb_NO/products.lang b/htdocs/langs/nb_NO/products.lang index e8cabae97da..f3ec0dcdb08 100644 --- a/htdocs/langs/nb_NO/products.lang +++ b/htdocs/langs/nb_NO/products.lang @@ -2,6 +2,7 @@ ProductRef=Vare ref. ProductLabel=Vareetikett ProductLabelTranslated=Oversatt produktetikett +ProductDescription=Product description ProductDescriptionTranslated=Oversatt produktbeskrivelse ProductNoteTranslated=Oversatt produktnotat ProductServiceCard=Kort for Varer/Tjenester diff --git a/htdocs/langs/nb_NO/stripe.lang b/htdocs/langs/nb_NO/stripe.lang index 431c64269fc..ff83e5b392b 100644 --- a/htdocs/langs/nb_NO/stripe.lang +++ b/htdocs/langs/nb_NO/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=Brukerkonto til bruk for e-postvarsling av noen Stri StripePayoutList=Liste over Stripe utbetalinger ToOfferALinkForTestWebhook=Link til oppsett av Stripe WebHook for oppkall av IPN (test-modus) ToOfferALinkForLiveWebhook=Link til oppsett av Stripe WebHook for oppkall av IPN (live-modus) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/nb_NO/withdrawals.lang b/htdocs/langs/nb_NO/withdrawals.lang index 12a9ddada5f..77931dbf507 100644 --- a/htdocs/langs/nb_NO/withdrawals.lang +++ b/htdocs/langs/nb_NO/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Tilbaketrekkingsfil SetToStatusSent=Sett status til "Fil Sendt" ThisWillAlsoAddPaymentOnInvoice=Dette vil også registrere innbetalinger til fakturaer og klassifisere dem som "Betalt" hvis restbeløp å betale er null StatisticsByLineStatus=Statistikk etter linjestatus -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unik Mandat Referanse RUMWillBeGenerated=Hvis tomt, vil UMR (Unique Mandate Reference) bli generert når bankkontoinformasjon er lagret WithdrawMode=Direktedebetsmodus (FRST eller RECUR) diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index c815dc9d158..f905175c2ed 100644 --- a/htdocs/langs/nl_NL/accountancy.lang +++ b/htdocs/langs/nl_NL/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Dagboeken AccountingJournal=Dagboek NewAccountingJournal=Nieuw dagboek ShowAccoutingJournal=Toon dagboek -Nature=Natuur +NatureOfJournal=Nature of Journal AccountingJournalType1=Overige bewerkingen AccountingJournalType2=Verkopen AccountingJournalType3=Aankopen @@ -291,6 +291,7 @@ Modelcsv_quadratus=Exporteren naar Quadratus QuadraCompta Modelcsv_ebp=Exporteren naar EBP Modelcsv_cogilog=Exporteren naar Cogilog Modelcsv_agiris=Exporteren naar Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Configureerbare CSV export Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Rekeningschema Id InitAccountancy=Instellen boekhouding InitAccountancyDesc=Deze pagina kan worden gebruikt om een ​​grootboekrekening toe te wijzen aan producten en services waarvoor geen grootboekrekening is gedefinieerd voor verkopen en aankopen. DefaultBindingDesc=Hier kunt u een standaard grootboekrekening koppelen aan salaris betalingen, donaties, belastingen en BTW, wanneer deze nog niet apart zijn ingesteld. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opties OptionModeProductSell=Instellingen verkopen OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index fd7b4ac1aae..b31c1579740 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salarissen Module510Desc=Record and track employee payments Module520Name=Leningen Module520Desc=Het beheer van de leningen -Module600Name=Kennisgevingen +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=Productvarianten @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Aanvullende kenmerken (orders) ExtraFieldsSupplierInvoices=Aanvullende kenmerken (facturen) ExtraFieldsProject=Aanvullende kenmerken (projecten) ExtraFieldsProjectTask=Aanvullende kenmerken (taken) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribuut %s heeft een verkeerde waarde. AlphaNumOnlyLowerCharsAndNoSpace=alleen alfanumerieke tekens en kleine letters zonder spatie SendmailOptionNotComplete=Waarschuwing, op sommige Linux-systemen, e-mail verzenden vanaf uw e-mail, sendmail uitvoering setup moet conatins optie-ba (parameter mail.force_extra_parameters in uw php.ini-bestand). Als sommige ontvangers nooit e-mails ontvangen, probeer dit PHP parameter bewerken met mail.force_extra_parameters =-ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Sessie opslag geencrypteerd door Suhosin ConditionIsCurrently=Voorwaarde is momenteel %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Zoekmachine optimalisatie -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=Xdebug is geladen. -XCacheInstalled=Xcache is geladen. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Opzetten van module onkostendeclaraties - regels ExpenseReportNumberingModules=Onkostenrapportage nummeringsmodule NoModueToManageStockIncrease=Geen module in staat om automatische voorraad toename beheren is geactiveerd. Stock verhoging zal worden gedaan via handmatige invoer. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Lijst van meldingen per gebruiker* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Ga naar het tabblad "Meldingen" bij een relatie om meldingen voor contacten/adressen toe te voegen of te verwijderen Threshold=Drempel @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/nl_NL/bills.lang b/htdocs/langs/nl_NL/bills.lang index 00421a77b3b..cdaa069db64 100644 --- a/htdocs/langs/nl_NL/bills.lang +++ b/htdocs/langs/nl_NL/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Betaling hoger dan herinnering te betalen HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Let op, het betalingsbedrag van een of meer rekeningen is hoger dan het openstaande bedrag dat moet worden betaald.
Bewerk uw invoer, bevestig anders en overweeg een creditnota te maken voor het teveel betaalde. ClassifyPaid=Klassificeer 'betaald' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classificeer 'gedeeltelijk betaald' ClassifyCanceled=Classificeer 'verlaten' ClassifyClosed=Classificeer 'Gesloten' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Toon vervangingsfactuur ShowInvoiceAvoir=Toon creditnota ShowInvoiceDeposit=Bekijk factuurbetalingen ShowInvoiceSituation=Situatie factuur weergeven +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Toon betaling AlreadyPaid=Reeds betaald AlreadyPaidBack=Reeds terugbetaald diff --git a/htdocs/langs/nl_NL/errors.lang b/htdocs/langs/nl_NL/errors.lang index 661c92660c9..5417ae6daf2 100644 --- a/htdocs/langs/nl_NL/errors.lang +++ b/htdocs/langs/nl_NL/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Speciale tekens zijn niet toegestaan in het v ErrorNumRefModel=Er bestaat een verwijzing in de database (%s) en deze is niet compatibel met deze nummeringsregel. Verwijder de tabelregel of hernoem de verwijzing om deze module te activeren. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Het instellen van de module lijkt onvolledig. Ga naar Home - Setup - Modules om te voltooien. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Fout bij het masker ErrorBadMaskFailedToLocatePosOfSequence=Fout, masker zonder het volgnummer ErrorBadMaskBadRazMonth=Fout, slechte resetwaarde @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Er is een wachtwoord ingesteld voor dit lid. Er is echter geen gebruikersaccount gemaakt. Dus dit wachtwoord is opgeslagen maar kan niet worden gebruikt om in te loggen bij Dolibarr. Het kan worden gebruikt door een externe module / interface, maar als u geen gebruikersnaam of wachtwoord voor een lid hoeft aan te maken, kunt u de optie "Beheer een login voor elk lid" in de module-setup van Member uitschakelen. Als u een login moet beheren maar geen wachtwoord nodig heeft, kunt u dit veld leeg houden om deze waarschuwing te voorkomen. Opmerking: e-mail kan ook worden gebruikt als login als het lid aan een gebruiker is gekoppeld. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang index 82620f9ab84..a4195e82691 100644 --- a/htdocs/langs/nl_NL/main.lang +++ b/htdocs/langs/nl_NL/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacten / adressen voor deze relatie AddressesForCompany=Adressen voor deze relatie ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events over dit lid ActionsOnProduct=Evenementen in dit product NActionsLate=%s is laat @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link naar contract LinkToIntervention=Link naar interventie +LinkToTicket=Link to ticket CreateDraft=Maak een ontwerp SetToDraft=Terug naar ontwerp ClickToEdit=Klik om te bewerken diff --git a/htdocs/langs/nl_NL/products.lang b/htdocs/langs/nl_NL/products.lang index a743fb9211c..1a7d0537a9c 100644 --- a/htdocs/langs/nl_NL/products.lang +++ b/htdocs/langs/nl_NL/products.lang @@ -2,6 +2,7 @@ ProductRef=Productreferentie ProductLabel=Naam ProductLabelTranslated=Vertaald product label +ProductDescription=Product description ProductDescriptionTranslated=Vertaalde product beschrijving ProductNoteTranslated=Vertaalde product aantekening ProductServiceCard=Producten / Dienstendetailkaart diff --git a/htdocs/langs/nl_NL/stripe.lang b/htdocs/langs/nl_NL/stripe.lang index b3f50b98772..770bd51df11 100644 --- a/htdocs/langs/nl_NL/stripe.lang +++ b/htdocs/langs/nl_NL/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/nl_NL/withdrawals.lang b/htdocs/langs/nl_NL/withdrawals.lang index 2fd0c894135..2e4a9746bee 100644 --- a/htdocs/langs/nl_NL/withdrawals.lang +++ b/htdocs/langs/nl_NL/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang index fae0558c485..81b47382431 100644 --- a/htdocs/langs/pl_PL/accountancy.lang +++ b/htdocs/langs/pl_PL/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Dzienniki kont księgowych AccountingJournal=Dziennik księgowy NewAccountingJournal=Nowy dziennik księgowy ShowAccoutingJournal=Wyświetl dziennik konta księgowego -Nature=Natura +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sprzedaż AccountingJournalType3=Zakupy @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opcje OptionModeProductSell=Tryb sprzedaży OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index 7cf5c8b6e13..e3e453b3b20 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -574,7 +574,7 @@ Module510Name=Wynagrodzenia Module510Desc=Record and track employee payments Module520Name=Kredyty Module520Desc=Zarządzanie kredytów -Module600Name=Powiadomienia +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Zamówienia uzupełniające (atrybuty) ExtraFieldsSupplierInvoices=Atrybuty uzupełniające (faktury) ExtraFieldsProject=Atrybuty uzupełniające (projektów) ExtraFieldsProjectTask=Atrybuty uzupełniające (zadania) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Atrybut% s ma nieprawidłową wartość. AlphaNumOnlyLowerCharsAndNoSpace=tylko alphanumericals i małe litery bez przestrzeni SendmailOptionNotComplete=Uwaga, w niektórych systemach Linux, aby wysłać e-mail z poczty elektronicznej, konfiguracja wykonanie sendmail musi conatins opcja-ba (mail.force_extra_parameters parametr w pliku php.ini). Jeśli nigdy niektórzy odbiorcy otrzymywać e-maile, spróbuj edytować ten parametr PHP z mail.force_extra_parameters =-ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Przechowywania sesji szyfrowane Suhosin ConditionIsCurrently=Stan jest obecnie% s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Pozycjonowanie -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug jest załadowany. -XCacheInstalled=XCache jest załadowany. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=Nie Moduł stanie zarządzać automatyczny wzrost akcji zostało aktywowane. Wzrost Zdjęcie zostanie zrobione tylko na ręczne wprowadzanie. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Lista powiadomień na użytkownika* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Próg @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/pl_PL/bills.lang b/htdocs/langs/pl_PL/bills.lang index 55121d67d6c..5ec7c6593ca 100644 --- a/htdocs/langs/pl_PL/bills.lang +++ b/htdocs/langs/pl_PL/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Płatności wyższe niż upomnienie do zapłaty HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Klasyfikacja "wpłacono" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Klasyfikacja "wpłacono częściowo" ClassifyCanceled=Klasyfikacja "Porzucono" ClassifyClosed=Klasyfikacja "zamknięte" @@ -214,6 +215,20 @@ ShowInvoiceReplace=Pokaż faktury zastępcze ShowInvoiceAvoir=Pokaż notę kredytową ShowInvoiceDeposit=Pokaż fakturę zaliczkową ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Pokaż płatności AlreadyPaid=Zapłacono AlreadyPaidBack=Zwrócono @@ -316,7 +331,7 @@ InvoiceRef=Nr referencyjny faktury InvoiceDateCreation=Data utworzenia faktury InvoiceStatus=Status faktury InvoiceNote=Notatka do faktury -InvoicePaid=Faktura paid +InvoicePaid=Faktura zapłacona OrderBilled=Order billed DonationPaid=Donation paid PaymentNumber=Numer płatności diff --git a/htdocs/langs/pl_PL/errors.lang b/htdocs/langs/pl_PL/errors.lang index 520c90cde06..5ba2ccf5418 100644 --- a/htdocs/langs/pl_PL/errors.lang +++ b/htdocs/langs/pl_PL/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Znaki specjalne nie są dozwolone dla pola "% ErrorNumRefModel=Odniesienia nie istnieje w bazie danych (%s) i nie jest zgodna z tą zasadą numeracji. Zmiana nazwy lub usuwanie zapisu w odniesieniu do aktywacji tego modułu. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Ustawienia modułu wyglądają na niekompletne. Idź do Strona główna - Konfiguracja - Moduły aby ukończyć. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Błąd w masce wprowadzania ErrorBadMaskFailedToLocatePosOfSequence=Błąd, maska ​​bez kolejnego numeru ErrorBadMaskBadRazMonth=Błąd, zła wartość zresetowane @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Hasło zostało ustawione dla tego użytkownika. Jednakże nie Konto użytkownika zostało utworzone. Więc to hasło jest przechowywane, ale nie mogą być używane do logowania do Dolibarr. Może być stosowany przez zewnętrzny moduł / interfejsu, ale jeśli nie trzeba definiować dowolną logowania ani hasła do członka, można wyłączyć opcję "Zarządzaj login dla każdego członka" od konfiguracji modułu użytkownika. Jeśli potrzebujesz zarządzać logowanie, ale nie wymagają hasła, możesz zachować to pole puste, aby uniknąć tego ostrzeżenia. Uwaga: E może być również stosowany jako login, jeśli element jest połączony do użytkownika. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang index 09a0383d899..80fa7e37072 100644 --- a/htdocs/langs/pl_PL/main.lang +++ b/htdocs/langs/pl_PL/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakt/adres dla tej części/zamówienia/ AddressesForCompany=Adressy dla części trzeciej ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Informacje o wydarzeniach dla tego uzytkownika ActionsOnProduct=Wydarzenia dotyczące tego produktu NActionsLate=%s późno @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link do umowy LinkToIntervention=Link do interwencji +LinkToTicket=Link to ticket CreateDraft=Utwórz Szic SetToDraft=Wróć do szkicu ClickToEdit=Kliknij by edytować diff --git a/htdocs/langs/pl_PL/products.lang b/htdocs/langs/pl_PL/products.lang index 10b9789e003..cd286f20b57 100644 --- a/htdocs/langs/pl_PL/products.lang +++ b/htdocs/langs/pl_PL/products.lang @@ -2,6 +2,7 @@ ProductRef=Nr ref. produktu ProductLabel=Etykieta produktu ProductLabelTranslated=Przetłumaczone na etykiecie produktu +ProductDescription=Product description ProductDescriptionTranslated=Przetłumczony opis produktu ProductNoteTranslated=Przetłumaczona nota produktu ProductServiceCard=Karta Produktu / Usługi diff --git a/htdocs/langs/pl_PL/stripe.lang b/htdocs/langs/pl_PL/stripe.lang index 2a6f68fef72..ecce980c764 100644 --- a/htdocs/langs/pl_PL/stripe.lang +++ b/htdocs/langs/pl_PL/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/pl_PL/withdrawals.lang b/htdocs/langs/pl_PL/withdrawals.lang index 0c20ba09a77..fa420bcd025 100644 --- a/htdocs/langs/pl_PL/withdrawals.lang +++ b/htdocs/langs/pl_PL/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Plik Wycofanie SetToStatusSent=Ustaw status "Plik Wysłane" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statystyki według stanu linii -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang index a72182b0755..4005c164e54 100644 --- a/htdocs/langs/pt_BR/accountancy.lang +++ b/htdocs/langs/pt_BR/accountancy.lang @@ -107,6 +107,7 @@ ACCOUNTING_RESULT_PROFIT=Conta de contabilidade de resultado (Lucro) ACCOUNTING_RESULT_LOSS=Conta contábil do resultado (perda) ACCOUNTING_CLOSURE_DEFAULT_JOURNAL=Jornal de encerramento ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conta contábil da transferência bancária transitória +TransitionalAccount=Conta de transferência bancária transitória ACCOUNTING_ACCOUNT_SUSPENSE=Conta contábil de espera DONATION_ACCOUNTINGACCOUNT=Conta contábil para registro de doações. ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Conta contábil para registrar assinaturas @@ -191,7 +192,6 @@ ChartofaccountsId=ID do gráfico de contas InitAccountancy=Contabilidade Inicial InitAccountancyDesc=Esta página pode ser usado para inicializar um código de barras em objetos que não têm código de barras definidas. Verifique que o módulo de código de barras tenha sido instalado antes. DefaultBindingDesc=Esta página pode ser usada para definir a conta padrão a ser usada para conectar o registro das transações sobre o pagamento de salários, doações, taxas e o ICMS quando nenhuma conta da Contabilidade específica tiver sido definida. -DefaultClosureDesc=Esta página pode ser usada para definir parâmetros a serem usados para incluir um balanço. OptionModeProductSell=Modo vendas OptionModeProductSellIntra=Vendas de modo exportadas na CEE OptionModeProductSellExport=Vendas de modo exportadas em outros países @@ -206,7 +206,9 @@ PredefinedGroups=Grupos predefinidos WithoutValidAccount=Sem conta dedicada válida ValueNotIntoChartOfAccount=Este valor da conta contábil não existe no gráfico de conta AccountRemovedFromGroup=Conta removida do grupo +SaleExport=Venda de exportação Range=Faixa da conta da Contabilidade SomeMandatoryStepsOfSetupWereNotDone=Algumas etapas obrigatórias de configuração não foram feitas, preencha-as ErrorNoAccountingCategoryForThisCountry=Nenhum Plano de Contas Contábil disponível para este país %s (Veja Home - Configurações- Dicionário) ExportNotSupported=O formato de exportação definido não é suportado nesta página +DateExport=Data de exportação diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 147b7dbabcc..15c007915cd 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -120,6 +120,7 @@ SystemToolsAreaDesc=Essa área dispõem de funções administrativas. Use esse m Purge=Purgar (apagar tudo) PurgeAreaDesc=Esta página permite deletar todos os arquivos gerados ou armazenados pelo Dolibarr (arquivos temporários ou todos os arquivos no diretório %s). Este recurso é fornecido como uma solução alternativa aos usuários cujo a instalação esteja hospedado num servidor que impeça o acesso as pastas onde os arquivos gerados pelo Dolibarr são armazenados, para excluí-los. PurgeDeleteLogFile=Excluir os arquivos de registro, incluindo o %s definido pelo módulo Syslog (não há risco de perda de dados) +PurgeDeleteTemporaryFiles=Exclua todos os arquivos temporários (sem risco de perder dados). Nota: A exclusão é feita apenas se o diretório temporário foi criado 24 horas atrás. PurgeDeleteTemporaryFilesShort=Excluir arquivos temporários PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os arquivos do diretório %s. Isto irá excluir todos documentos (Terceiros, faturas, ...), arquivos carregados no módulo ECM, Backups e arquivos temporários PurgeRunNow=Purgar(Apagar) Agora @@ -356,6 +357,7 @@ RequiredBy=Este módulo é exigido por módulo(s) PageUrlForDefaultValues=Você deve inserir o caminho relativo do URL da página. Se você incluir parâmetros na URL, os valores padrão serão efetivos se todos os parâmetros estiverem definidos com o mesmo valor. PageUrlForDefaultValuesCreate=
Exemplo:
Para o formulário para criar um novo terceiro, é %s .
Para a URL dos módulos externos instalados no diretório personalizado, não inclua o "custom /", portanto, use o caminho como mymodule / mypage.php e não o custom / mymodule / mypage.php.
Se você quer o valor padrão somente se o url tiver algum parâmetro, você pode usar %s PageUrlForDefaultValuesList=
Exemplo:
Para a página que lista terceiros, é %s .
Para URL de módulos externos instalados no diretório customizado, não inclua o "custom", então use um caminho como mymodule / mypagelist.php e não custom / mymodule / mypagelist.php.
Se você quer o valor padrão somente se o url tiver algum parâmetro, você pode usar %s +AlsoDefaultValuesAreEffectiveForActionCreate=Observe que a sobrescrita de valores padrão para a criação de formulários funciona apenas para páginas que foram projetadas corretamente (portanto, com a ação do parâmetro = create or presend ...) EnableDefaultValues=Ativar personalização de valores padrão WarningSettingSortOrder=Atenção, a configuração de um ordenamento padrão par os pedidos pode resultar em um erro técnico quando indo para a página da lista, se o campo é um campo desconhecido. Se você se depara com tal erro, volte para esta página para remover o ordenamento padrão dos pedidos e restaure o comportamento padrão. ProductDocumentTemplates=Temas de documentos para a geração do documento do produto @@ -422,6 +424,7 @@ Module330Desc=Crie atalhos, sempre acessíveis, para as páginas internas ou ext Module410Desc=Integração do Webcalendar Module500Name=Impostos e Despesas Especiais Module520Desc=Gestão dos empréstimos +Module600Name=Notificações em evento de negócios Module600Desc=Enviar notificações de e-mail acionadas por um evento de negócios: por usuário (configuração definida para cada usuário), por contatos de terceiros (configuração definida em cada terceiro) ou por e-mails específicos Module600Long=Observe que este módulo envia e-mails em tempo real quando ocorre um evento de negócios específico. Se você estiver procurando por um recurso para enviar lembretes por e-mail para eventos da agenda, entre na configuração do módulo Agenda. Module610Name=Variáveis de produtos @@ -619,6 +622,7 @@ Permission401=Ler Descontos Permission402=Criar/Modificar Descontos Permission403=Validar Descontos Permission404=Excluir Descontos +Permission430=Use a barra de depuração Permission517=Salários de exportação Permission520=Leia Empréstimos Permission522=Criar / modificar empréstimos @@ -630,6 +634,9 @@ Permission532=Criar/Modificar Serviços Permission534=Excluir Serviços Permission536=Ver/gerenciar Serviços Ocultos Permission538=Exportar Serviços +Permission650=Leia as listas de materiais +Permission651=Criar / atualizar listas de materiais +Permission652=Excluir listas de materiais Permission701=Ler Doações Permission702=Criar/Modificar Doações Permission703=Excluir Doações @@ -649,6 +656,12 @@ Permission1101=Ler Pedidos de Entrega Permission1102=Criar/Modificar Pedidos de Entrega Permission1104=Validar Pedidos de Entrega Permission1109=Excluir Pedidos de Entrega +Permission1121=Leia propostas de fornecedores +Permission1122=Criar / modificar propostas de fornecedores +Permission1123=Validar propostas de fornecedores +Permission1124=Enviar propostas de fornecedores +Permission1125=Excluir propostas de fornecedores +Permission1126=Fechar solicitações de preços de fornecedores Permission1181=Ler Fornecedores Permission1182=Leia pedidos de compra Permission1183=Criar/modificar pedidos @@ -684,6 +697,11 @@ Permission2503=Submeter ou Deletar Documentos Permission2515=Configurar Diretórios dos Documentos Permission2801=Usar cliente FTP no modo leitura (somente navegador e baixar) Permission2802=Usar cliente FTP no modo escrita (deletar ou upload de arquivos) +Permission3200=Leia eventos arquivados e impressões digitais +Permission4001=Visualizar funcionários +Permission4002=Criar funcionários +Permission4003=Excluir funcionários +Permission4004=Exportar funcionários Permission20001=Leia pedidos de licença (sua licença e os de seus subordinados) Permission20002=Criar/modificar seus pedidos de licença (sua licença e os de seus subordinados) Permission20003=Excluir pedidos de licença @@ -916,8 +934,6 @@ SuhosinSessionEncrypt=Sessão armazenada criptografada pelo Suhosin ConditionIsCurrently=Condição é atualmente %s YouUseBestDriver=Você usa o driver %s, que é o melhor driver atualmente disponível. SearchOptim=Procurar Otimização -XDebugInstalled=XDebug é carregado. -XCacheInstalled=XCache é carregado. AddRefInList=Mostrar ref. Cliente / fornecedor lista de informações (lista de seleção ou caixa de combinação) e a maior parte do hiperlink.
Terceiros aparecerão com um formato de nome "CC12345 - SC45678 - Empresa X." em vez de "Empresa X.". AddAdressInList=Exibir lista de informações de endereço do cliente / fornecedor (lista de seleção ou caixa de combinação)
Terceiros aparecerão com um formato de nome de "Empresa X. - Rua tal, n°:21, sala: 123456, Cidade/Estado - Brasil" em vez de "Empresa X". FillThisOnlyIfRequired=Exemplo: +2 (Preencha somente se compensar o problema do timezone é experiente) @@ -1280,9 +1296,6 @@ ExpenseReportsRulesSetup=Configuração do módulo Relatórios de Despesas - Reg ExpenseReportNumberingModules=Módulo de numeração dos relatórios de despesas NoModueToManageStockIncrease=Nenhum módulo disponível foi ativado para gerenciar o aumento automático do estoque. O aumento do estoque será feito apenas de forma manual. YouMayFindNotificationsFeaturesIntoModuleNotification=Você pode encontrar opções para notificações por e-mail ativando e configurando o módulo "Notificação" -ListOfNotificationsPerUser=Lista de notificações por usuário* -ListOfNotificationsPerUserOrContact=Lista de notificações (eventos) disponíveis por usuário * ou por contato ** -ListOfFixedNotifications=Lista de Notificações Fixas GoOntoContactCardToAddMore=Ir para a aba "Notificações" de um terceiro para adicionar ou remover as notificações para contatos/endereços BackupDumpWizard=Assistente para criar o arquivo de backup SomethingMakeInstallFromWebNotPossible=A instalação do módulo externo não é possível a partir da interface web pelo seguinte motivo: @@ -1404,7 +1417,6 @@ LogsLinesNumber=Número de linhas para mostrar na guia logs UseDebugBar=Use a barra de depuração DEBUGBAR_LOGS_LINES_NUMBER=Número de últimas linhas de log para manter no console WarningValueHigherSlowsDramaticalyOutput=Atenção, valores mais altos reduzem drasticamente a saída -DebugBarModuleActivated=A barra de depuração do módulo é ativada e retarda dramaticamente a interface EXPORTS_SHARE_MODELS=Modelos de exportação são compartilhar com todos ExportSetup=Configuração do módulo Export InstanceUniqueID=ID exclusivo da instância @@ -1412,9 +1424,3 @@ SmallerThan=Menor que LargerThan=Maior que IfTrackingIDFoundEventWillBeLinked=Observe que, se um ID de rastreamento for encontrado no e-mail recebido, o evento será automaticamente vinculado aos objetos relacionados. WithGMailYouCanCreateADedicatedPassword=Com uma conta do GMail, se você ativou a validação de 2 etapas, é recomendável criar uma segunda senha dedicada para o aplicativo, em vez de usar sua própria senha da conta em https://myaccount.google.com/. -IFTTTSetup=Configuração do módulo IFTTT -IFTTT_SERVICE_KEY=Chave do serviço IFTTT -IFTTT_DOLIBARR_ENDPOINT_SECUREKEY=Chave de segurança para proteger o URL do terminal usado pelo IFTTT para enviar mensagens para o Dolibarr. -IFTTTDesc=Este módulo é projetado para acionar eventos no IFTTT e / ou executar alguma ação em gatilhos externos do IFTTT. -UrlForIFTTT=endpoint do URL para o IFTTT -YouWillFindItOnYourIFTTTAccount=Você vai encontrá-lo em sua conta IFTTT diff --git a/htdocs/langs/pt_BR/agenda.lang b/htdocs/langs/pt_BR/agenda.lang index cf795e7633e..0a4c932e1c9 100644 --- a/htdocs/langs/pt_BR/agenda.lang +++ b/htdocs/langs/pt_BR/agenda.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - agenda IdAgenda=ID do evento -TMenuAgenda=Agenda Eletrônica LocalAgenda=Calendário local ActionsOwnedBy=Evento de propriedade do ListOfActions=Lista de eventos diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index 5be7583130b..565c01edf16 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - banks -MenuBankCash=Banco | Dinheiro +MenuBankCash=Banco | Dinheiro - Financeiro BankAccounts=Contas bancárias BankAccountsAndGateways=Contas Bancárias | Gateways ShowAccount=Mostrar conta @@ -79,6 +79,7 @@ BankLineConciliated=Transação reconciliada Reconciled=Conciliada NotReconciled=Não conciliada SupplierInvoicePayment=Pagamento do fornecedores +WithdrawalPayment=Pedido com pagamento por débito SocialContributionPayment=Pagamento de contribuição social BankTransfers=Transferências bancárias TransferDesc=Transferência de uma conta para outra, o Dolibarr vai escrever dois registros (um débito na conta de origem e um crédito na conta de destino). A mesma quantia (exceto sinal), rótulo e data serão usados para esta transação) @@ -121,6 +122,10 @@ RejectCheckDate=Data que o cheque foi devolvido BankAccountModelModule=Temas de documentos para as contas bancárias. DocumentModelSepaMandate=Modelo de mandato SEPA. Uso somente em países da União Européia DocumentModelBan=Tema para imprimir a página com a informação BAN. +NewVariousPayment=Novo pagamento diverso +VariousPayment=Pagamento diverso +ShowVariousPayment=Mostrar pagamento diverso +AddVariousPayment=Adicionar pagamento diverso YourSEPAMandate=Seu mandato Área Única de Pagamentos em Euros AutoReportLastAccountStatement=Preencha automaticamente o campo 'número de extrato bancário' com o último número de extrato ao fazer a reconciliação CashControl=Caixa de dinheiro POS diff --git a/htdocs/langs/pt_BR/deliveries.lang b/htdocs/langs/pt_BR/deliveries.lang index 8a56722c9f9..3c8cb0c2cd8 100644 --- a/htdocs/langs/pt_BR/deliveries.lang +++ b/htdocs/langs/pt_BR/deliveries.lang @@ -1,6 +1,8 @@ # Dolibarr language file - Source file is en_US - deliveries +Delivery=Entrega DeliveryRef=Ref. entrega -DeliveryCard=Recibo de recebimento +DeliveryCard=Cartão de recibo +CreateDeliveryOrder=Gerar recebimento de entrega DeliveryStateSaved=Estado de entrega salvo SetDeliveryDate=Indicar a Data de Envio ValidateDeliveryReceipt=Confirmar a Nota de Entrega @@ -11,6 +13,7 @@ DeliveryMethod=Método de entrega TrackingNumber=Número de rastreamento StatusDeliveryValidated=Recebida GoodStatusDeclaration=Recebi a mercadorias acima em bom estado, +Deliverer=Entregador : Sender=Remetente ErrorStockIsNotEnough=Não existe estoque suficiente Shippable=Disponivel para envio diff --git a/htdocs/langs/pt_BR/errors.lang b/htdocs/langs/pt_BR/errors.lang index 8951fdcbded..55dde5f8a7c 100644 --- a/htdocs/langs/pt_BR/errors.lang +++ b/htdocs/langs/pt_BR/errors.lang @@ -72,7 +72,6 @@ ErrorSpecialCharNotAllowedForField=O campo "%s" não aceita caracteres especiais ErrorNumRefModel=Uma referência existe no banco de dados (% s) e não é compatível com esta regra de numeração. Remover registro ou referência renomeado para ativar este módulo. ErrorQtyTooLowForThisSupplier=Quantidade muito baixa para este fornecedor ou nenhum preço definido neste produto para este fornecedor ErrorOrdersNotCreatedQtyTooLow=Algumas encomendas não foram criadas por causa de quantidades muito baixas -ErrorModuleSetupNotComplete=A configuração do módulo parece estar incompleta. Vá para Início >> Configuração >> Módulos para completá-la. ErrorBadMaskFailedToLocatePosOfSequence=Erro, máscara sem número de sequência ErrorBadMaskBadRazMonth=Erro, valor de redefinição ruim ErrorMaxNumberReachForThisMask=Número máximo atingido para esta máscara diff --git a/htdocs/langs/pt_BR/paypal.lang b/htdocs/langs/pt_BR/paypal.lang index f9f857755a3..8f57a572bdb 100644 --- a/htdocs/langs/pt_BR/paypal.lang +++ b/htdocs/langs/pt_BR/paypal.lang @@ -26,3 +26,4 @@ ErrorSeverityCode=Erro grave de código PaypalLiveEnabled=Modo "ao vivo" do PayPal ativado (caso contrário, modo teste/sandbox) PostActionAfterPayment=Poste as ações após os pagamentos CardOwner=Titular do cartão +PayPalBalance=Crédito Paypal diff --git a/htdocs/langs/pt_BR/products.lang b/htdocs/langs/pt_BR/products.lang index 0ebc2916b18..b802c37f398 100644 --- a/htdocs/langs/pt_BR/products.lang +++ b/htdocs/langs/pt_BR/products.lang @@ -2,6 +2,7 @@ ProductRef=Ref. produto ProductLabel=Rótulo do produto ProductLabelTranslated=Etiqueta do produto traduzido +ProductDescription=Descrição do produto ProductDescriptionTranslated=Descrição do produto traduzido ProductNoteTranslated=Nota produto traduzido ProductServiceCard=Ficha do produto/serviço @@ -97,6 +98,7 @@ CustomerPrices=Preços de cliente SuppliersPrices=Preços de fornecedores SuppliersPricesOfProductsOrServices=Preços do fornecedor (produtos ou serviços) CountryOrigin=Pais de origem +Nature=Natureza do produto (matéria-prima/manufaturado) ShortLabel=Etiqueta curta set=conjunto se=conjunto @@ -152,6 +154,7 @@ MinSupplierPrice=Preco de compra minimo DynamicPriceConfiguration=Configuração de preço dinâmico DynamicPriceDesc=Voce pode definir uma fórmula matemática para calcular preços de clientes e fornecedores. Nessas fórmulas podem ser usadas todos as operações, contantes e variáveis. Voce pode definir aqui as variáveis que voce quer usar. Se a variável, deve ser automaticamente ajustada, voce pode definir uma URLl externa, que irá permitir o Dolibarr atualizar este valor automaticamente GlobalVariables=As variáveis ​​globais +GlobalVariableUpdaters=Atualizadores externos para variáveis GlobalVariableUpdaterHelp0=Analisa os dados JSON de URL especificada, valor especifica a localização de valor relevante, GlobalVariableUpdaterType1=Dados WebService GlobalVariableUpdaterHelp1=Analisa os dados WebService de URL especificada, NS especifica o namespace, valor especifica a localização de valor relevante, os dados devem conter os dados para enviar e método é o método chamando WS diff --git a/htdocs/langs/pt_BR/website.lang b/htdocs/langs/pt_BR/website.lang index 91b0123fe9f..d18fb52ff0b 100644 --- a/htdocs/langs/pt_BR/website.lang +++ b/htdocs/langs/pt_BR/website.lang @@ -62,3 +62,7 @@ NoWebSiteCreateOneFirst=Nenhum site foi criado ainda. Comece a criar o primeiro. GoTo=Ir para DynamicPHPCodeContainsAForbiddenInstruction=Você adiciona código PHP dinâmico que contém a instrução PHP %s que é proibida por padrão como conteúdo dinâmico (consulte as opções ocultas WEBSITE_PHP_ALLOW_xxx para aumentar a lista de comandos permitidos). NotAllowedToAddDynamicContent=Você não tem permissão para adicionar ou editar conteúdo em PHP dinâmico dos sites. Solicite a permissão ou apenas mantenha o código em tags do php não modificadas. +ReplaceWebsiteContent=Pesquisar ou substituir conteúdo do site +DeleteAlsoJs=Excluir todos os arquivos javascript específicos deste site?\n +DeleteAlsoMedias=Excluir todos os arquivos de mídia específicos deste site? +MyWebsitePages=Paginas do meu site diff --git a/htdocs/langs/pt_BR/withdrawals.lang b/htdocs/langs/pt_BR/withdrawals.lang index b7e6e587e31..9143c35872d 100644 --- a/htdocs/langs/pt_BR/withdrawals.lang +++ b/htdocs/langs/pt_BR/withdrawals.lang @@ -49,8 +49,6 @@ NumeroNationalEmetter=Nacional Número Transmissor BankToReceiveWithdraw=Conta bancária de recebimento CreditDate=A crédito WithdrawalFileNotCapable=Não foi possível gerar arquivos recibo retirada para o seu país %s (O seu país não é suportado) -ShowWithdraw=Mostrar Retire -IfInvoiceNeedOnWithdrawPaymentWontBeClosed=No entanto, se fatura não tem pelo menos um pagamento retirada ainda processado, não vai ser definido como pago para permitir a gestão de remoção prévia. DoStandingOrdersBeforePayments=Esta aba lhe permite solicitar um pagamento de pedido por Débito direto. Uma vez feito, vá ao menu Banco->Pedidos com Débito Direto para gerenciar o pagamento dos pedidos com Débito direto. Quando o pagamento do pedido estiver fechado, o pagamento da fatura será automaticamente registrado, e a fatura fechada se o alerta para pagamento é nulo. WithdrawalFile=Arquivo Retirada SetToStatusSent=Defina o status "arquivo enviado" @@ -63,6 +61,7 @@ WithdrawRequestAmount=Quantidade de pedido de débito direto: WithdrawRequestErrorNilAmount=Não foi possível criar solicitação de débito direto para quantidade vazia. PleaseReturnMandate=Favor devolver este formulário de mandato por e-mail para %s ou por correio para SEPALegalText=Pela assinatura deste formulário de mandato, você autoriza (A) %s a enviar instruções para o seu banco efetuar débito em sua conta e (B) que o seu banco efetue débito em sua conta de acordo com as instruções de %s. Como parte dos seus direitos, você tem direito ao reembolso do seu banco sob os termos e condições do acordo com ele firmado. O reembolso deve ser solicitado dentro de 8 semanas a partir da data em que a sua conta foi debitada. Os seus direitos relativos ao mandato acima são explicados em uma declaração que você pode obter junto a seu banco. +CreditorName=Nome do Credor SEPAFillForm=(B) Favor preencher todos os campos marcados com * SEPAFormYourName=Seu nome SEPAFormYourBAN=Nome da Conta do Seu Banco (IBAN) @@ -71,6 +70,10 @@ ModeRECUR=Pagamento recorrente PleaseCheckOne=Favor marcar apenas um DirectDebitOrderCreated=Pedido de débito direto %s criado CreateForSepa=Crie um arquivo de débito direto +ICS=Identificador do credor +END_TO_END=Tag SEPA XML "EndToEndId" - ID exclusivo atribuído por transação +USTRD=Tag SEPA XML "não estruturada" +ADDDAYS=Adicionar dias à data de execução InfoCreditSubject=Pagamento do pedido com pagamento por Débito direto %s pelo banco InfoCreditMessage=O pagamento do pedido por Débito direto %s foi feito pelo banco.
Dados do pagamento: %s InfoTransSubject=Transmissão do pedido com pagamento por Débito direto %s para o banco diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang index 7e3445ffca9..cb399e5565a 100644 --- a/htdocs/langs/pt_PT/accountancy.lang +++ b/htdocs/langs/pt_PT/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Diários contabilisticos AccountingJournal=Diário contabilistico NewAccountingJournal=Novo diário contabilistico ShowAccoutingJournal=Mostrar diário contabilistico -Nature=Natureza +NatureOfJournal=Nature of Journal AccountingJournalType1=Operações diversas AccountingJournalType2=Vendas AccountingJournalType3=Compras @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Exportar CSV configurável Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=ID de plano de contas InitAccountancy=Iniciar contabilidade InitAccountancyDesc=Essa página pode ser usada para inicializar uma conta contábil em produtos e serviços que não tenham uma conta contábil definida para vendas e compras. DefaultBindingDesc=Esta página pode ser usada para definir uma conta padrão a ser usada para vincular registo de transações sobre salários, doações, impostos e IVA quando nenhuma conta contabilística específica estiver definida. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opções OptionModeProductSell=Modo de vendas OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index dec7048306a..9fb236effd4 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salários Module510Desc=Registrar e acompanhar pagamentos de funcionários Module520Name=Empréstimos Module520Desc=Gestão de empréstimos -Module600Name=Notificações +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=Variantes de produtos @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Atributos complementares (encomendas) ExtraFieldsSupplierInvoices=Atributos complementares (faturas) ExtraFieldsProject=Atributos complementares (projetos) ExtraFieldsProjectTask=Atributos complementares (tarefas) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=O atributo %s tem um valor errado. AlphaNumOnlyLowerCharsAndNoSpace=somente caracteres alfanuméricos e minúsculas, sem espaço SendmailOptionNotComplete=Aviso, em alguns sistemas Linux, para enviar emails, a configuração sendmail deve conter a opção -ba (o parâmetro mail.force_extra_parameters no seu ficheiro php.ini). Se alguns destinatários não receberem e-mails, tente editar este parâmetro PHP com mail.force_extra_parameters = -ba @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Sessão de armazenamento encriptada por Suhosin ConditionIsCurrently=A condição está atualmente %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=Você usa o driver %s, mas o driver %s é recomendado. -NbOfProductIsLowerThanNoPb=Você tem apenas produtos / serviços %s no banco de dados. Isso não requer nenhuma otimização específica. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimização da pesquisa -YouHaveXProductUseSearchOptim=Você tem produtos %s no banco de dados. Você deve adicionar a constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 em Home-Setup-Other. Limite a pesquisa ao início de strings, o que possibilita que o banco de dados use índices e você deve obter uma resposta imediata. +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. +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. -XDebugInstalled=XDebug está carregado. -XCacheInstalled=XCache está carregada. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Peça o método de envio preferido para terceiros. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Configuração do módulo Relatórios de despesas - Reg ExpenseReportNumberingModules=Módulo de numeração de relatórios de despesas NoModueToManageStockIncrease=Não foi ativado nenhum módulo capaz de efetuar a gestão automática do acréscimo de stock. O acrescimo de stock será efetuado manualmente. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Lista de notificações por utilizador* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Vá até a guia "Notificações" de um usuário para adicionar ou remover notificações para usuários GoOntoContactCardToAddMore=Vá ao separador "Notificações" de um terceiro para adicionar ou remover as notificações de contactos/endereços Threshold=Limite @@ -1898,6 +1900,11 @@ OnMobileOnly=Apenas na tela pequena (smartphone) DisableProspectCustomerType=Desativar o tipo de terceiro "cliente + cliente" (assim, o terceiro deve ser cliente ou cliente, mas não pode ser ambos) 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang index cc737fc2d1d..695ec103e84 100644 --- a/htdocs/langs/pt_PT/bills.lang +++ b/htdocs/langs/pt_PT/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Pagamento superior ao valor a pagar HelpPaymentHigherThanReminderToPay=Atenção, o valor do pagamento de uma ou mais contas é maior do que o valor pendente a pagar.
Edite sua entrada, caso contrário, confirme e considere a criação de uma nota de crédito para o excesso recebido para cada fatura paga em excesso. HelpPaymentHigherThanReminderToPaySupplier=Atenção, o valor do pagamento de uma ou mais contas é maior do que o valor pendente a pagar.
Edite sua entrada, caso contrário, confirme e considere a criação de uma nota de crédito para o excesso pago por cada fatura paga em excesso. ClassifyPaid=Classificar como 'Pago' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classificar como 'Pago Parcialmente' ClassifyCanceled=Classificar como 'Abandonado' ClassifyClosed=Classificar como 'Fechado' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Ver fatura retificativa ShowInvoiceAvoir=Ver deposito ShowInvoiceDeposit=Mostrar fatura de adiantamento ShowInvoiceSituation=Mostrar fatura da situação +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Mostrar pagamento AlreadyPaid=Já e AlreadyPaidBack=Já reembolsado diff --git a/htdocs/langs/pt_PT/errors.lang b/htdocs/langs/pt_PT/errors.lang index 16ff4e1572f..886d1ba6642 100644 --- a/htdocs/langs/pt_PT/errors.lang +++ b/htdocs/langs/pt_PT/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Os caracteres especiais não são permitidos ErrorNumRefModel=Existe uma referência em banco de dados (%s) e não é compatível com esta regra de numeração. Remover registro ou renomeado de referência para ativar este módulo. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=A configuração do módulo parece incompleta. Vá em Home - Setup - Módulos para completar. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Erro na máscara ErrorBadMaskFailedToLocatePosOfSequence=Máscara de erro, sem número de seqüência ErrorBadMaskBadRazMonth=Erro, o valor de reset ruim @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Uma senha foi definida para este membro. No entanto, nenhuma conta de usuário foi criada. Portanto, essa senha é armazenada, mas não pode ser usada para fazer login no Dolibarr. Pode ser usado por um módulo externo / interface, mas se você não precisa definir nenhum login nem senha para um membro, você pode desativar a opção "Gerenciar um login para cada membro" da configuração do módulo de membro. Se você precisar gerenciar um login, mas não precisar de nenhuma senha, poderá manter esse campo vazio para evitar esse aviso. Nota: O email também pode ser usado como um login se o membro estiver vinculado a um usuário. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang index 1c175a3c7b2..2ff9c3ef136 100644 --- a/htdocs/langs/pt_PT/main.lang +++ b/htdocs/langs/pt_PT/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contactos/moradas para este terceiro AddressesForCompany=Moradas para este terceiro ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Eventos sobre este membro ActionsOnProduct=Eventos sobre este produto NActionsLate=%s em atraso @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Associar a contrato LinkToIntervention=Associar a intervenção +LinkToTicket=Link to ticket CreateDraft=Criar Rascunho SetToDraft=Voltar para o rascunho ClickToEdit=Clique para editar diff --git a/htdocs/langs/pt_PT/products.lang b/htdocs/langs/pt_PT/products.lang index 14b1b68ad0a..947a4f4d624 100644 --- a/htdocs/langs/pt_PT/products.lang +++ b/htdocs/langs/pt_PT/products.lang @@ -2,6 +2,7 @@ ProductRef=Ref. do produto ProductLabel=Etiqueta do produto ProductLabelTranslated=Etiqueta do produto traduzida +ProductDescription=Product description ProductDescriptionTranslated=Categoria do produto traduzida ProductNoteTranslated=Nota do produto traduzida ProductServiceCard=Ficha de produto/serviço diff --git a/htdocs/langs/pt_PT/stripe.lang b/htdocs/langs/pt_PT/stripe.lang index 4b3edb96134..66bf8590edb 100644 --- a/htdocs/langs/pt_PT/stripe.lang +++ b/htdocs/langs/pt_PT/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/pt_PT/withdrawals.lang b/htdocs/langs/pt_PT/withdrawals.lang index 36049ddec43..7a63c003b00 100644 --- a/htdocs/langs/pt_PT/withdrawals.lang +++ b/htdocs/langs/pt_PT/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=arquivo retirado SetToStatusSent=Definir o estado como "Ficheiro Enviado" ThisWillAlsoAddPaymentOnInvoice=Isso também registrará os pagamentos para as faturas e os classificará como "Pago" se o restante a pagar for nulo StatisticsByLineStatus=Estatísticas por status de linhas -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Referência de mandato exclusivo RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Modo de débito direto (FRST ou RECUR) diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang index 472c02c9452..966e5a7a9e8 100644 --- a/htdocs/langs/ro_RO/accountancy.lang +++ b/htdocs/langs/ro_RO/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Jurnalele contabile AccountingJournal=Jurnalul contabil NewAccountingJournal=Jurnal contabil nou ShowAccoutingJournal=Arătați jurnalul contabil -Nature=Personalitate juridică +NatureOfJournal=Nature of Journal AccountingJournalType1=Operațiuni diverse AccountingJournalType2=Vânzări AccountingJournalType3=Achiziţii @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export pentru Quadratus QuadraCompta Modelcsv_ebp=Export pentru EBP Modelcsv_cogilog=Export pentru Cogilog Modelcsv_agiris=Export pentru Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Exportați CSV configurabil Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Id-ul listei de conturi InitAccountancy=Init contabilitate InitAccountancyDesc=Această pagină poate fi utilizată pentru a inițializa un cont contabil pentru produse și servicii care nu au cont contabil definit pentru vânzări și achiziții. DefaultBindingDesc=Această pagină poate fi utilizată pentru a seta un cont implicit care să fie folosit pentru a lega înregistrarea tranzacțiilor cu privire la salariile de plată, donațiile, impozitele și taxe atunci când nu a fost deja stabilit niciun cont contabil. -DefaultClosureDesc=Această pagină poate fi utilizată pentru a seta parametrii care trebuie utilizați pentru a închide un bilanț. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opţiuni OptionModeProductSell=Mod vanzari OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index 8f9e5dc09fd..ca53c0a762f 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salarii Module510Desc=Înregistrați și urmăriți plățile angajaților Module520Name=Credite Module520Desc=Gestionarea creditelor -Module600Name=Notificări +Module600Name=Notifications on business event Module600Desc=Trimiteți notificări prin e-mail declanșate de un eveniment de afaceri: pentru fiecare utilizator (setarea definită pentru fiecare utilizator), pentru contacte terțe (setare definită pentru fiecare terț) sau pentru e-mailuri specifice Module600Long=Rețineți că acest modul trimite e-mailuri în timp real când apare un anumit eveniment de afaceri. Dacă sunteți în căutarea unei funcții pentru a trimite memento-uri de e-mail pentru evenimente de agendă, mergeți la configurarea agendei modulului. Module610Name=Variante de produs @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Atribute complementare (comenzi) ExtraFieldsSupplierInvoices=Atribute complementare (facturi) ExtraFieldsProject=Atribute complementare (proiecte) ExtraFieldsProjectTask=Atribute complementare (sarcini) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Atributul %s are o valoare greşită. AlphaNumOnlyLowerCharsAndNoSpace=numai caractere minuscule, alfanumerice fără spaţiu SendmailOptionNotComplete=Atenţie, pe unele sisteme Linux, pentru a trimite e-mail de la e-mail, sendmail configurare execuţie trebuie să conatins optiunea-ba (mail.force_extra_parameters parametri în fişierul php.ini). Dacă nu unor destinatari a primi e-mailuri, încercaţi să editaţi acest parametru PHP cu mail.force_extra_parameters =-BA). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Stocarea sesiune criptată prin Suhosin ConditionIsCurrently=Condiția este momentan %s YouUseBestDriver=Utilizați driverul %s, care este cel mai bun driver disponibil în prezent. YouDoNotUseBestDriver=Utilizați driverul %s dar driverul %s este recomandat. -NbOfProductIsLowerThanNoPb=Aveți numai %s produse/servicii în fișierul bazei de date. Acest lucru nu necesită o optimizare particulară. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimizare căutare -YouHaveXProductUseSearchOptim=Aveți %s produse în fișierul bazei de date. Trebuie să adăugați constanta PRODUCT_DONOTSEARCH_ANYWHERE la 1 înAcasă-Gestionare-Altele. Limitați căutarea la începutul șirurilor, ceea ce face posibil ca baza de date să utilizeze indexari si ar trebui să primiți un răspuns imediat. +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. +YouHaveXObjectAndSearchOptimOn=You have %s %s in the database and constant %s is set to 1 in Home-Setup-Other. 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. -XDebugInstalled=XDebug este încărcat. -XCacheInstalled=XCache este încărcată. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Afișați Lista de informatii a clientului/Furnizorului (selectați lista sau combobox) și cea mai mare parte a hiperlinkului.
Terții vor apărea cu un format de nume "CC12345 - SC45678 - The Big Company corp". în loc de "The Big Company corp". AddAdressInList=Afișați Lista de informatii a clientului/Furnizorului (selectați lista sau combobox).
Terții i vor apărea cu numele format din "Big Company corp - 21 jump street 123456 Big city - USA" în loc de "Big Company corp". AskForPreferredShippingMethod=Solicitați o metodă de transport preferată pentru terți. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Configurare din module Rapoarte de cheltuieli - Reguli ExpenseReportNumberingModules=Modul de numerotare a rapoartelor de cheltuieli NoModueToManageStockIncrease=Nu a fost activat niciun modul capabil să gestioneze creșterea stocului automat. Creșterea stocurilor se va face doar prin introducere manuală. YouMayFindNotificationsFeaturesIntoModuleNotification=Puteți găsi opțiuni pentru notificările prin e-mail prin activarea și configurarea modulului "Notificare". -ListOfNotificationsPerUser=Listă de notificări pe utilizator * -ListOfNotificationsPerUserOrContact=Listă de notificări (evenimente) disponibilă pe utilizator* sau pe contact ** -ListOfFixedNotifications=Listă de notificări fixe +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Accesați fila "Notificări" a unui mesaj de utilizator pentru a adăuga sau elimina notificările pentru utilizatori GoOntoContactCardToAddMore=Mergeți în fila "Notificări" a unei terțe părți pentru a adăuga sau elimina notificări pentru contacte / adrese Threshold=Prag @@ -1898,6 +1900,11 @@ OnMobileOnly=Numai pe ecranul mic (smartphone) DisableProspectCustomerType=Dezactivați tipul de terţ "Prospect + Client" (deci terţul trebuie să fie Prospect sau Client, dar nu poate fi ambele) MAIN_OPTIMIZEFORTEXTBROWSER=Simplificați interfața pentru o persoană nevăzătoare MAIN_OPTIMIZEFORTEXTBROWSERDesc=Activați această opțiune dacă sunteți o persoană nevăzătoare sau dacă utilizați aplicația dintr-un browser de text precum Lynx sau Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Această valoare poate fi suprascrisă de fiecare utilizator de pe pagina sa de utilizator- tab '%s' DefaultCustomerType=Tipul terțului implicit pentru formularul de creare "Client nou" ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/ro_RO/bills.lang b/htdocs/langs/ro_RO/bills.lang index 61886b2fa25..e6e0abe033e 100644 --- a/htdocs/langs/ro_RO/bills.lang +++ b/htdocs/langs/ro_RO/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Plată mai mare decât restul de plată HelpPaymentHigherThanReminderToPay=Atenție, suma de plată a uneia sau mai multor facturi este mai mare decât suma rămasă neachitată.
Modificați intrarea dvs., în caz contrar confirmați şi luați în considerare crearea unei note de credit pentru suma în exces primită pentru fiecare sumă primită în plus. HelpPaymentHigherThanReminderToPaySupplier=Atenție, suma de plată a uneia sau mai multor facturi este mai mare decât suma rămasă neachitată.
Modificați intrarea dvs., în caz contrar confirmați şi luați în considerare crearea unei note de credit pentru suma în exces primită pentru fiecare sumă plătită în plus. ClassifyPaid=Clasează "Platită" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Clasează "Platită Parţial" ClassifyCanceled=Clasează "Abandonată" ClassifyClosed=Clasează "Închisă" @@ -214,6 +215,20 @@ ShowInvoiceReplace=Afisează factura de înlocuire ShowInvoiceAvoir=Afisează nota de credit ShowInvoiceDeposit=Afișați factura în avans ShowInvoiceSituation=Afişează factura de situaţie +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Afisează plata AlreadyPaid=Deja platite AlreadyPaidBack=Deja rambursată diff --git a/htdocs/langs/ro_RO/errors.lang b/htdocs/langs/ro_RO/errors.lang index 79f0d4f6f50..3402e4a690e 100644 --- a/htdocs/langs/ro_RO/errors.lang +++ b/htdocs/langs/ro_RO/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Caractere speciale nu sunt permise pentru dom ErrorNumRefModel=O referire există în baza de date (%s) şi nu este compatibilă cu această regulă de numerotare. înregistra Remove sau redenumite de referinţă pentru a activa acest modul. ErrorQtyTooLowForThisSupplier=Cantitate prea mică pentru acest furnizor sau niciun preț definit pentru acest produs pentru acest furnizor ErrorOrdersNotCreatedQtyTooLow=Unele comenzi nu au fost create datorită cantităților prea mici -ErrorModuleSetupNotComplete=Configurarea modulului pare a nu fi completă. Mergeți la Setup - Module pentru a finaliza. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Eroare pe masca ErrorBadMaskFailedToLocatePosOfSequence=Eroare, fără a masca numărul de ordine ErrorBadMaskBadRazMonth=Eroare, Bad resetare valoarea @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL-ul %s trebuie să înceapă cu http:// sau https:/ ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount= O parolă a fost trimisă către acest membru. Cu toate acestea, nu a fost creat nici un cont de utilizator. Astfel, această parolă este stocată, dar nu poate fi utilizată pentru autentificare. Poate fi utilizată de către un modul / interfată externă, dar dacă nu aveți nevoie să definiți un utilizator sau o parolă pentru un membru, puteți dezactiva opțiunea "Gestionați o conectare pentru fiecare membru" din modul de configurare membri. În cazul în care aveți nevoie să gestionați un utilizator, dar nu este nevoie de parolă, aveți posibilitatea să păstrați acest câmp gol pentru a evita acest avertisment. Notă: Adresa de e-mail poate fi utilizată ca utilizator la autentificare, în cazul în care membrul este legat de un utilizator. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang index fa6ed942ed0..e5d109c0da2 100644 --- a/htdocs/langs/ro_RO/main.lang +++ b/htdocs/langs/ro_RO/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacte pentru aceast terţ AddressesForCompany=Adrese pentru acest terţ ActionsOnCompany=Evenimente pentru acest terț ActionsOnContact=Evenimente pentru acest contact/adresa +ActionsOnContract=Events for this contract ActionsOnMember=Evenimente privind acest membru ActionsOnProduct=Evenimente despre acest produs NActionsLate=%s întârziat @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link la propunerea vânzătorului LinkToSupplierInvoice=Link la factura furnizorului LinkToContract=Link la contract LinkToIntervention=Link la intervenție +LinkToTicket=Link to ticket CreateDraft=Creareză schiţă SetToDraft=Inapoi la schiţă ClickToEdit=Clic pentru a edita diff --git a/htdocs/langs/ro_RO/products.lang b/htdocs/langs/ro_RO/products.lang index 2d55290f69f..e9a675f3d4d 100644 --- a/htdocs/langs/ro_RO/products.lang +++ b/htdocs/langs/ro_RO/products.lang @@ -2,6 +2,7 @@ ProductRef=Ref. Produs ProductLabel=Etichetă produs ProductLabelTranslated=Etichetă de produs tradusă +ProductDescription=Product description ProductDescriptionTranslated=Descrierea produsului tradus ProductNoteTranslated=Nota de produs tradusă ProductServiceCard=Fişe Produse / Servicii diff --git a/htdocs/langs/ro_RO/stripe.lang b/htdocs/langs/ro_RO/stripe.lang index 92ff044dd88..fc47415eb0d 100644 --- a/htdocs/langs/ro_RO/stripe.lang +++ b/htdocs/langs/ro_RO/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=Cont utilizator pe care să îl utilizați pentru no StripePayoutList=Listă de plăți Stripe ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/ro_RO/withdrawals.lang b/htdocs/langs/ro_RO/withdrawals.lang index 8468953f95a..36d33342746 100644 --- a/htdocs/langs/ro_RO/withdrawals.lang +++ b/htdocs/langs/ro_RO/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Fişier Retragere SetToStatusSent=Setează statusul "Fişier Trimis" ThisWillAlsoAddPaymentOnInvoice=Acest lucru va înregistra, de asemenea, plățile către facturi și le va clasifica drept "plătit" dacă restul de plată este nul StatisticsByLineStatus=Statistici după starea liniilor -RUM=RMU +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Referință de mandat unic RUMWillBeGenerated=Dacă este gol, se va genera un RMU (referință unică de mandat) odată ce informațiile despre contul bancar vor fi salvate. WithdrawMode=Modul debit direct (FRST sau RECUR) diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang index 99e4fefd472..3d4e4b2b76a 100644 --- a/htdocs/langs/ru_RU/accountancy.lang +++ b/htdocs/langs/ru_RU/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Бухгалтерские журналы AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Природа +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Продажи AccountingJournalType3=Покупки @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index 08836e9e900..1b274768ca4 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -574,7 +574,7 @@ Module510Name=Зарплаты Module510Desc=Записывать и отслеживать выплаты сотрудникам Module520Name=Ссуды Module520Desc=Управление ссудами -Module600Name=Уведомления +Module600Name=Notifications on business event Module600Desc=Отправка уведомлений по электронной почте, инициированных бизнес-событием: для каждого пользователя (настройка, определенная для каждого пользователя), для сторонних контактов (настройка, определенная для каждого контрагента) или для определенных электронных писем Module600Long=Обратите внимание, что этот модуль отправляет электронные письма в режиме реального времени, когда происходит определенное деловое событие. Если вы ищете функцию для отправки напоминаний по электронной почте для событий в повестке дня, перейдите к настройке модуля Agenda. Module610Name=Варианты продукта @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Дополнительные атрибуты (Зак ExtraFieldsSupplierInvoices=Дополнительные атрибуты (Счета-фактуры) ExtraFieldsProject=Дополнительные атрибуты (Проекты) ExtraFieldsProjectTask=Дополнительные атрибуты (Задачи) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Атрибут %s имеет неправильное значение. AlphaNumOnlyLowerCharsAndNoSpace=только латинские строчные буквы и цифры без пробелов SendmailOptionNotComplete=Предупреждение, на некоторых системах Linux, для отправки электронной почты из электронной почты, Sendmail выполнения установки должны conatins опцию-ба (параметр mail.force_extra_parameters в файле php.ini). Если некоторые получатели не получают электронные письма, попытке изменить этот параметр с PHP mail.force_extra_parameters =-ба). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Хранилище сессий шифровано сис ConditionIsCurrently=Текущее состояние %s YouUseBestDriver=Вы используете драйвер %s, который является лучшим драйвером, доступным в настоящее время. YouDoNotUseBestDriver=Вы используете драйвер %s, но рекомендуется драйвер %s. -NbOfProductIsLowerThanNoPb=У вас есть только %s товаров/услуг в базе данных. Это не требуебует никакой оптимизации. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Поисковая оптимизация -YouHaveXProductUseSearchOptim=У вас есть продукты %s в базе данных. Вы должны добавить константу PRODUCT_DONOTSEARCH_ANYWHERE равную 1 в Главная-Настройки-Другие настройки. Ограничьте поиск началом строк, что позволяет базе данных использовать индексы, и вы будете получать быстрый ответ. +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. +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. -XDebugInstalled=XDebug загружен. -XCacheInstalled=XCache загружен. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Запросить предпочтительный способ доставки для контрагентов. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Настройка модуля Отчеты о рас ExpenseReportNumberingModules=Модуль нумерации отчетов о расходах NoModueToManageStockIncrease=Был активирован модуль, способный управлять автоматическим увеличением запасов. Увеличение запасов будет производиться только вручную. YouMayFindNotificationsFeaturesIntoModuleNotification=Вы можете найти опции для уведомлений по электронной почте, включив и настроив модуль «Уведомления». -ListOfNotificationsPerUser=Список уведомлений на пользователя * -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Перейдите на вкладку «Уведомления» третьей стороны, чтобы добавлять или удалять уведомления для контактов/адресов Threshold=Порог @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' DefaultCustomerType=Default thirdparty type for "New customer" creation form ABankAccountMustBeDefinedOnPaymentModeSetup=Примечание. Банковский счет должен быть указан в модуле каждого способа оплаты (Paypal, Stripe, ...), чтобы эта функция работала. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Модуль отладки активируется и резко замедляет интерфейс +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/ru_RU/bills.lang b/htdocs/langs/ru_RU/bills.lang index eedacc9143d..4d64e6aa83d 100644 --- a/htdocs/langs/ru_RU/bills.lang +++ b/htdocs/langs/ru_RU/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Платеж больше, чем в напоми HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Классифицировать как 'Оплачен' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Классифицировать как 'Оплачен частично' ClassifyCanceled=Классифицировать как 'Аннулирован' ClassifyClosed=Классифицировать как 'Закрыт' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Показать заменяющий счет-фактуру ShowInvoiceAvoir=Показать кредитое авизо ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Показать платеж AlreadyPaid=Уже оплачен AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/ru_RU/errors.lang b/htdocs/langs/ru_RU/errors.lang index b8e12a8f6bc..ef954ee19b7 100644 --- a/htdocs/langs/ru_RU/errors.lang +++ b/htdocs/langs/ru_RU/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Специальные символы не д ErrorNumRefModel=Ссылка есть в базе данных (%s) и не совместимы с данным правилом нумерации. Удаление записей или переименован ссылкой для активации этого модуля. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Ошибка на маску ErrorBadMaskFailedToLocatePosOfSequence=Ошибка, маска без порядкового номера ErrorBadMaskBadRazMonth=Ошибка, плохое значение сброса @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index 16888bfd4c2..4bea2a8d3e2 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Контакты/Адреса для этого ко AddressesForCompany=Адреса для этого контарагента ActionsOnCompany=События для этого контрагента ActionsOnContact=Событие для этого контакта/адреса +ActionsOnContract=Events for this contract ActionsOnMember=События этого участника ActionsOnProduct=События об этом продукте NActionsLate=% с опозданием @@ -759,6 +760,7 @@ LinkToSupplierProposal=Ссылка на предложение поставщи LinkToSupplierInvoice=Ссылка на счет поставщика LinkToContract=Ссылка на контакт LinkToIntervention=Ссылка на мероприятие +LinkToTicket=Link to ticket CreateDraft=Создать черновик SetToDraft=Назад к черновику ClickToEdit=Нажмите, чтобы изменить diff --git a/htdocs/langs/ru_RU/products.lang b/htdocs/langs/ru_RU/products.lang index 31e9c9901e9..41e45aee3f0 100644 --- a/htdocs/langs/ru_RU/products.lang +++ b/htdocs/langs/ru_RU/products.lang @@ -2,6 +2,7 @@ ProductRef=Продукт исх. ProductLabel=Этикетка товара ProductLabelTranslated=Переведенная этикетка продукта +ProductDescription=Product description ProductDescriptionTranslated=Переведенное описание продукта ProductNoteTranslated=Переведенная заметка о продукте ProductServiceCard=Карточка Товаров/Услуг diff --git a/htdocs/langs/ru_RU/stripe.lang b/htdocs/langs/ru_RU/stripe.lang index 10b6c4748d1..196cfdc10ae 100644 --- a/htdocs/langs/ru_RU/stripe.lang +++ b/htdocs/langs/ru_RU/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/ru_RU/withdrawals.lang b/htdocs/langs/ru_RU/withdrawals.lang index 661e530d09a..3dcaf52751d 100644 --- a/htdocs/langs/ru_RU/withdrawals.lang +++ b/htdocs/langs/ru_RU/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Файл изъятия средств SetToStatusSent=Установить статус "Файл отправлен" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Статистика статуса по строкам -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/sk_SK/accountancy.lang b/htdocs/langs/sk_SK/accountancy.lang index ec2439d5d71..5f922e5911c 100644 --- a/htdocs/langs/sk_SK/accountancy.lang +++ b/htdocs/langs/sk_SK/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Príroda +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Predaje AccountingJournalType3=Platby @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Načítať účtovníctvo InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=Táto stránka môže byť použitá na nastavenie predvoleného účtu, ktorý sa používa na prepojenie transakčných záznamov o platobných platoch, darcovstve, daniach a DPH, ak už nie je stanovený žiadny konkrétny účtovný účet. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Možnosti OptionModeProductSell=Mód predaja OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang index a4156dc9f84..4546efba5d7 100644 --- a/htdocs/langs/sk_SK/admin.lang +++ b/htdocs/langs/sk_SK/admin.lang @@ -574,7 +574,7 @@ Module510Name=Mzdy Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Správca pôžičiek -Module600Name=Upozornenie +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Doplnkové atribúty (objednávky) ExtraFieldsSupplierInvoices=Doplnkové atribúty (faktúry) ExtraFieldsProject=Doplnkové atribúty (projekty) ExtraFieldsProjectTask=Doplnkové atribúty (úlohy) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Atribút %s má nesprávnu hodnotu. AlphaNumOnlyLowerCharsAndNoSpace=iba alfanumerické a malé znaky bez medzier SendmailOptionNotComplete=Upozornenie na niektorých operačných systémoch Linux, posielať e-maily z vášho e-mailu, musíte sendmail prevedenie inštalácie obsahuje voľbu-BA (parameter mail.force_extra_parameters do súboru php.ini). Ak niektorí príjemcovia nikdy prijímať e-maily, skúste upraviť tento parameter spoločne s PHP mail.force_extra_parameters =-BA). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Úložisko relácie šifrovaná Suhosin ConditionIsCurrently=Podmienkou je v súčasnej dobe %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimalizácia pre vyhľadávače -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug je načítaný -XCacheInstalled=XCache načítaný. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Zoznam upozornení podľa užívateľa -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Maximálna hodnota @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/sk_SK/bills.lang b/htdocs/langs/sk_SK/bills.lang index e59e132e721..867afacd391 100644 --- a/htdocs/langs/sk_SK/bills.lang +++ b/htdocs/langs/sk_SK/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Platobné vyššia než upomienke na zaplatenie HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Klasifikáciu "Zaplatené" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Klasifikovať "Platené čiastočne" ClassifyCanceled=Klasifikovať "Opustené" ClassifyClosed=Klasifikáciu "uzavretým" @@ -214,6 +215,20 @@ ShowInvoiceReplace=Zobraziť výmene faktúru ShowInvoiceAvoir=Zobraziť dobropis ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Zobraziť platbu AlreadyPaid=Už zaplatené AlreadyPaidBack=Už vráti diff --git a/htdocs/langs/sk_SK/errors.lang b/htdocs/langs/sk_SK/errors.lang index 6c0c9221b52..5f0b4926d2e 100644 --- a/htdocs/langs/sk_SK/errors.lang +++ b/htdocs/langs/sk_SK/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Špeciálne znaky nie sú povolené pre pole ErrorNumRefModel=Existuje odkaz do databázy (%s) a nie je kompatibilný s týmto pravidlom číslovania. Odobrať záznam alebo premenovať odkaz na aktiváciu tohto modulu. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Chyba na masku ErrorBadMaskFailedToLocatePosOfSequence=Chyba maska ​​bez poradovým číslom ErrorBadMaskBadRazMonth=Chyba, zlá hodnota po resete @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/sk_SK/main.lang b/htdocs/langs/sk_SK/main.lang index 52f6af95054..ef836241865 100644 --- a/htdocs/langs/sk_SK/main.lang +++ b/htdocs/langs/sk_SK/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakty / adries tretím stranám tejto AddressesForCompany=Adresy pre túto tretiu stranu ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Akcia o tomto členovi ActionsOnProduct=Events about this product NActionsLate=%s neskoro @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Vytvorte návrh SetToDraft=Späť na návrh ClickToEdit=Kliknutím možno upraviť diff --git a/htdocs/langs/sk_SK/products.lang b/htdocs/langs/sk_SK/products.lang index a03df89e6d1..5d92e95a649 100644 --- a/htdocs/langs/sk_SK/products.lang +++ b/htdocs/langs/sk_SK/products.lang @@ -2,6 +2,7 @@ ProductRef=Produkt čj. ProductLabel=Produkt štítok ProductLabelTranslated=Preložený názov produktu +ProductDescription=Product description ProductDescriptionTranslated=Preložený popis produktu ProductNoteTranslated=Preložená poznámka produktu ProductServiceCard=Produkty / služby karty diff --git a/htdocs/langs/sk_SK/stripe.lang b/htdocs/langs/sk_SK/stripe.lang index db2a3b0a561..988d8b8954c 100644 --- a/htdocs/langs/sk_SK/stripe.lang +++ b/htdocs/langs/sk_SK/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/sk_SK/withdrawals.lang b/htdocs/langs/sk_SK/withdrawals.lang index 945b76876df..f3ac8b522c5 100644 --- a/htdocs/langs/sk_SK/withdrawals.lang +++ b/htdocs/langs/sk_SK/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Odstúpenie súbor SetToStatusSent=Nastavte na stav "odoslaný súbor" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/sl_SI/accountancy.lang b/htdocs/langs/sl_SI/accountancy.lang index 9ece7db19d0..efd258369f9 100644 --- a/htdocs/langs/sl_SI/accountancy.lang +++ b/htdocs/langs/sl_SI/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Narava +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Prodaja AccountingJournalType3=Nabava @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index 025ffcef4df..3a342353e7b 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -574,7 +574,7 @@ Module510Name=Plače Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Upravljanje posojil -Module600Name=Obvestila +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Koplementarni atributi (naročila) ExtraFieldsSupplierInvoices=Koplementarni atributi (računi) ExtraFieldsProject=Koplementarni atributi (projekti) ExtraFieldsProjectTask=Koplementarni atributi (naloge) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Atribut %s ima napačno vrednost. AlphaNumOnlyLowerCharsAndNoSpace=samo alfanumerični znaki in male črke brez presledkov SendmailOptionNotComplete=Pozor, na nekaterih Linux sistemih mora za pošiljanje pošte z vašega naslova nastavitev vsebovati opcijo -ba (parameter mail.force_extra_parameters v vaši datoteki php.ini). Če nekateri prejemniki nikoli ne dobijo pošte, poskusite popraviti PHP parameter z mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Shranjevanje seje kriptirano s Suhosin ConditionIsCurrently=Trenutni pogoj je %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Iskanje optimizacijo -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=Naložen je XDebug -XCacheInstalled=Naložen je XCache. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=Noben modul za upravljanje avtomatskega povečevanja zalog ni aktiviran. Zaloge se bodo povečale samo na osnovi ročnega vnosa. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Prag @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/sl_SI/bills.lang b/htdocs/langs/sl_SI/bills.lang index 199397eed37..b5349596ba5 100644 --- a/htdocs/langs/sl_SI/bills.lang +++ b/htdocs/langs/sl_SI/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Plačilo višje od opomina HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Označeno kot 'Plačano' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Označeno kot 'Delno plačano' ClassifyCanceled=Označeno kot 'Opuščeno' ClassifyClosed=Označeno kot 'Zaključeno' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Prikaži nadomestni račun ShowInvoiceAvoir=Prikaži dobropis ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Prikaži plačilo AlreadyPaid=Že plačano AlreadyPaidBack=Že vrnjeno plačilo diff --git a/htdocs/langs/sl_SI/errors.lang b/htdocs/langs/sl_SI/errors.lang index bfaf9c8505a..01117e09985 100644 --- a/htdocs/langs/sl_SI/errors.lang +++ b/htdocs/langs/sl_SI/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Posebni znaki niso dovoljeni v polju "%s" ErrorNumRefModel=V bazi podatkov obstaja referenca (%s), ki ni kompatibilna s tem pravilom za številčenje. Odstranite zapis ali preimenujte referenco za aktivacijo tega modula. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Napaka na maski ErrorBadMaskFailedToLocatePosOfSequence=Napaka, maska je brez zaporedne številke ErrorBadMaskBadRazMonth=Napaka, napačna resetirana vrednost @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang index efbfbfef0dc..81c4b2c3b23 100644 --- a/htdocs/langs/sl_SI/main.lang +++ b/htdocs/langs/sl_SI/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakti/naslovi za tega partnerja AddressesForCompany=Naslovi za tega partnerja ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Dogodki okoli tega člana ActionsOnProduct=Events about this product NActionsLate=%s zamujenih @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Ustvarite osnutek SetToDraft=Nazaj na osnutek ClickToEdit=Kliknite za urejanje diff --git a/htdocs/langs/sl_SI/products.lang b/htdocs/langs/sl_SI/products.lang index 050f1fe488d..6b69d44ad17 100644 --- a/htdocs/langs/sl_SI/products.lang +++ b/htdocs/langs/sl_SI/products.lang @@ -2,6 +2,7 @@ ProductRef=Referenca proizvoda ProductLabel=Naziv proizvoda ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Kartica proizvoda/storitve diff --git a/htdocs/langs/sl_SI/stripe.lang b/htdocs/langs/sl_SI/stripe.lang index 53ce253eb09..d5ce9df9811 100644 --- a/htdocs/langs/sl_SI/stripe.lang +++ b/htdocs/langs/sl_SI/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/sl_SI/withdrawals.lang b/htdocs/langs/sl_SI/withdrawals.lang index 630e07a41e2..98cce8e088e 100644 --- a/htdocs/langs/sl_SI/withdrawals.lang +++ b/htdocs/langs/sl_SI/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Datoteka nakazila SetToStatusSent=Nastavi status na "Datoteka poslana" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistika po statusu vrstic -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/sq_AL/accountancy.lang b/htdocs/langs/sq_AL/accountancy.lang index 8e1a61cb5bd..aca20774876 100644 --- a/htdocs/langs/sq_AL/accountancy.lang +++ b/htdocs/langs/sq_AL/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Mundësi OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang index c7a844db4d2..c4296b44853 100644 --- a/htdocs/langs/sq_AL/admin.lang +++ b/htdocs/langs/sq_AL/admin.lang @@ -574,7 +574,7 @@ Module510Name=Rrogat Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/sq_AL/bills.lang b/htdocs/langs/sq_AL/bills.lang index 6d410dc879e..d2700772a37 100644 --- a/htdocs/langs/sq_AL/bills.lang +++ b/htdocs/langs/sq_AL/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/sq_AL/errors.lang b/htdocs/langs/sq_AL/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/sq_AL/errors.lang +++ b/htdocs/langs/sq_AL/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/sq_AL/main.lang b/htdocs/langs/sq_AL/main.lang index 4164fdb1e11..4335079179b 100644 --- a/htdocs/langs/sq_AL/main.lang +++ b/htdocs/langs/sq_AL/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/sq_AL/products.lang b/htdocs/langs/sq_AL/products.lang index 629280cfda5..2966ac4af37 100644 --- a/htdocs/langs/sq_AL/products.lang +++ b/htdocs/langs/sq_AL/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/sq_AL/stripe.lang b/htdocs/langs/sq_AL/stripe.lang index 3db7c0cf2ee..6e3a15a2b20 100644 --- a/htdocs/langs/sq_AL/stripe.lang +++ b/htdocs/langs/sq_AL/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/sq_AL/withdrawals.lang b/htdocs/langs/sq_AL/withdrawals.lang index 4c146c2d43b..b4e13a898d8 100644 --- a/htdocs/langs/sq_AL/withdrawals.lang +++ b/htdocs/langs/sq_AL/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/sr_RS/accountancy.lang b/htdocs/langs/sr_RS/accountancy.lang index 02d455a8817..cb614d171d7 100644 --- a/htdocs/langs/sr_RS/accountancy.lang +++ b/htdocs/langs/sr_RS/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Priroda +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Prodaje AccountingJournalType3=Nabavke @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Započinjanje računovodstva InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Opcije OptionModeProductSell=Vrsta prodaje OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang index 1ac61447847..939e248f1d6 100644 --- a/htdocs/langs/sr_RS/admin.lang +++ b/htdocs/langs/sr_RS/admin.lang @@ -574,7 +574,7 @@ Module510Name=Plate Module510Desc=Record and track employee payments Module520Name=Krediti Module520Desc=Management of loans -Module600Name=Obaveštenja +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/sr_RS/bills.lang b/htdocs/langs/sr_RS/bills.lang index 41751c9406f..c0b740dd261 100644 --- a/htdocs/langs/sr_RS/bills.lang +++ b/htdocs/langs/sr_RS/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Iznos koji želite da platiteje viši od iznosa z HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Klasifikuj kao "plaćeno" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Klasifikuj "delimično plaćeno" ClassifyCanceled=Klasifikuj "napušteno" ClassifyClosed=Klasifikuj "zatvoreno" @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/sr_RS/errors.lang b/htdocs/langs/sr_RS/errors.lang index 528823ad92e..f83d78fb8e2 100644 --- a/htdocs/langs/sr_RS/errors.lang +++ b/htdocs/langs/sr_RS/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Specijalni karakteri nisu dozvoljeni u polju ErrorNumRefModel=U bazi postoji referenca (%s) koja nije kompatibilna sa ovim pravilom. Uklonite taj red ili preimenujte referencu kako biste aktivirali ovaj modul. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Greška za masku ErrorBadMaskFailedToLocatePosOfSequence=Greška, maska bez broja sekvence ErrorBadMaskBadRazMonth=Greška, pogrešna reset vrednost @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Lozinka je podešena za ovog člana, ali korisnik nije kreiran. To znači da je lozinka sačuvana, ali se član ne može ulogovati na Dolibarr. Informaciju može koristiti neka eksterna komponenta, ali ako nemate potrebe da definišete korisnika/lozinku za članove, možete deaktivirati opciju "Upravljanje lozinkama za svakog člana" u podešavanjima modula Članovi. Ukoliko morate da kreirate login, ali Vam nije potrebna lozinka, ostavite ovo polje prazno da se ovo upozorenje ne bi prikazivalo. Napomena: email može biti korišćen kao login ako je član povezan sa korisnikom. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang index 5ca0d505bd9..d75b23dfee9 100644 --- a/htdocs/langs/sr_RS/main.lang +++ b/htdocs/langs/sr_RS/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakti/adrese za ovaj subjekat AddressesForCompany=Adrese za ovaj subjekat ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Događaji vezani za ovog člana ActionsOnProduct=Events about this product NActionsLate=%s kasni @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Napravi draft SetToDraft=Nazad u draft ClickToEdit=Klikni za edit diff --git a/htdocs/langs/sr_RS/products.lang b/htdocs/langs/sr_RS/products.lang index 47fc76a533e..48a44deea4f 100644 --- a/htdocs/langs/sr_RS/products.lang +++ b/htdocs/langs/sr_RS/products.lang @@ -2,6 +2,7 @@ ProductRef=Ref. proizvoda ProductLabel=Oznaka proizvoda ProductLabelTranslated=Prevedeni naziv proizvoda +ProductDescription=Product description ProductDescriptionTranslated=Prevedeni opis proizvoda ProductNoteTranslated=Prevedena napomena proizvoda ProductServiceCard=Kartica Proizvoda/Usluga diff --git a/htdocs/langs/sr_RS/withdrawals.lang b/htdocs/langs/sr_RS/withdrawals.lang index 0c7d5011f58..f6b8495f608 100644 --- a/htdocs/langs/sr_RS/withdrawals.lang +++ b/htdocs/langs/sr_RS/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Fajl podizanja SetToStatusSent=Podesi status "Fajl poslat" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistike po statusu linija -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index a97e82d5dfe..443a5d548de 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Bokföringsloggbok AccountingJournal=Bokföringsloggbok NewAccountingJournal=Ny bokföringsloggbok ShowAccoutingJournal=Visa bokföringsloggbok -Nature=Naturen +NatureOfJournal=Nature of Journal AccountingJournalType1=Övrig verksamhet AccountingJournalType2=Försäljning AccountingJournalType3=Inköp @@ -291,6 +291,7 @@ Modelcsv_quadratus=Exportera till Quadratus QuadraCompta Modelcsv_ebp=Exportera till EBP Modelcsv_cogilog=Exportera till Cogilog Modelcsv_agiris=Exportera till Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Exportera CSV konfigurerbar Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Diagram över konton Id InitAccountancy=Initära bokföring InitAccountancyDesc=Den här sidan kan användas för att initiera ett konto på produkter och tjänster som inte har ett kontokonto definierat för försäljning och inköp. DefaultBindingDesc=Den här sidan kan användas för att ställa in ett standardkonto som ska användas för att koppla transaktionsrekord om betalningslön, donation, skatter och moms när inget specifikt kontokonto redan var inställt. -DefaultClosureDesc=Den här sidan kan användas för att ställa in parametrar som ska användas för att bifoga en balansräkning. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=alternativ OptionModeProductSell=Mode försäljning OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index 1118f400fe0..13e135c84d8 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -574,7 +574,7 @@ Module510Name=Löner Module510Desc=Spela in och spåra anställda betalningar Module520Name=Lån Module520Desc=Förvaltning av lån -Module600Name=Anmälningar +Module600Name=Notifications on business event Module600Desc=Skicka e-postmeddelanden som utlöses av en företagshändelse: per användare (inställning definierad på varje användare), per tredjepartskontakter (inställning definierad på var tredje part) eller genom specifika e-postmeddelanden Module600Long=Observera att den här modulen skickar e-postmeddelanden i realtid när en viss företagshändelse inträffar. Om du letar efter en funktion för att skicka e-postpåminnelser för agendahändelser, gå till inställningen av modulens Agenda. Module610Name=Produktvarianter @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Kompletterande attribut (beslut) ExtraFieldsSupplierInvoices=Kompletterande attribut (fakturor) ExtraFieldsProject=Kompletterande attribut (projekt) ExtraFieldsProjectTask=Kompletterande attribut (arbetsuppgifter) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribut% s har ett felaktigt värde. AlphaNumOnlyLowerCharsAndNoSpace=endast gemena alfanumeriska tecken utan mellanslag SendmailOptionNotComplete=Varning, på vissa Linux-system, för att skicka e-post från e-post, sendmail utförande inställning måste conatins Alternativ-ba (parameter mail.force_extra_parameters i din php.ini-fil). Om vissa mottagare inte emot e-post, försök att redigera den här PHP parameter med mail.force_extra_parameters =-BA). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session lagring krypteras av Suhosin ConditionIsCurrently=Condition är för närvarande% s YouUseBestDriver=Du använder drivrutinen %s vilket är den bästa drivrutinen som för närvarande finns tillgänglig. YouDoNotUseBestDriver=Du använder drivrutinen %s men drivrutinen %s rekommenderas. -NbOfProductIsLowerThanNoPb=Du har bara %s produkter / tjänster i databasen. Detta kräver ingen särskild optimering. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Sökoptimering -YouHaveXProductUseSearchOptim=Du har %s produkter i databasen. Du bör lägga till den konstanta PRODUCT_DONOTSEARCH_ANYWHERE till 1 i Home-Setup-Other. Begränsa sökningen till början av strängar som gör det möjligt för databasen att använda index och du bör få ett omedelbart svar. +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. +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. -XDebugInstalled=Xdebug är laddad. -XCacheInstalled=Xcache är laddad. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used AddRefInList=Visa kund / leverantör ref. info lista (välj lista eller combobox) och de flesta av hyperlänken.
Tredje part kommer att visas med ett namnformat av "CC12345 - SC45678 - The Big Company corp." istället för "The Big Company Corp". AddAdressInList=Visa adresslista för kund / leverantörs adress (välj lista eller combobox)
Tredje parten kommer att visas med ett namnformat för "The Big Company Corp." - 21 Jump Street 123456 Big Town - USA "istället för" The Big Company Corp ". AskForPreferredShippingMethod=Be om föredragen leveransmetod för tredje parter. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Inställning av modul Utläggsrapportsregler ExpenseReportNumberingModules=Modul för utläggsrapporteringsnummer NoModueToManageStockIncrease=Ingen modul kunna hantera automatiska lagerökningen har aktiverats. Stock ökning kommer att ske på bara manuell inmatning. YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan hitta alternativ för e-postmeddelanden genom att aktivera och konfigurera modulen "Meddelande". -ListOfNotificationsPerUser=Lista över anmälningar per användare * -ListOfNotificationsPerUserOrContact=Lista över anmälningar (händelser) tillgängliga per användare * eller per kontakt ** -ListOfFixedNotifications=Lista över fasta meddelanden +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Gå till fliken "Notifieringar" för en användare för att lägga till eller ta bort meddelanden för användare GoOntoContactCardToAddMore=Gå på fliken "Notifieringar" från en tredje part för att lägga till eller ta bort meddelanden för kontakter / adresser Threshold=Tröskelvärde @@ -1898,6 +1900,11 @@ OnMobileOnly=På en liten skärm (smartphone) bara DisableProspectCustomerType=Inaktivera "Prospect + Customer" tredjepartstyp (så tredje part måste vara Prospect eller Kund men kan inte vara båda) MAIN_OPTIMIZEFORTEXTBROWSER=Förenkla gränssnittet för blinda personer MAIN_OPTIMIZEFORTEXTBROWSERDesc=Aktivera det här alternativet om du är blind person, eller om du använder programmet från en textbläsare som Lynx eller Links. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=Detta värde kan skrivas över av varje användare från användarens sida - fliken '%s' DefaultCustomerType=Standard tredjepartstyp för skapande av "Ny kund" ABankAccountMustBeDefinedOnPaymentModeSetup=Obs! Bankkontot måste definieras i modulen för varje betalningsläge (Paypal, Stripe, ...) för att den här funktionen ska fungera. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Antal rader som ska visas på loggfliken UseDebugBar=Använd felsökningsfältet DEBUGBAR_LOGS_LINES_NUMBER=Antal sista logglinjer för att hålla i konsolen WarningValueHigherSlowsDramaticalyOutput=Varning, högre värden sänker dramaticaly-utgången -DebugBarModuleActivated=Modul debugbar aktiveras och saktar dramatiskt gränssnittet +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Exportmodeller delas med alla ExportSetup=Inställning av modul Export InstanceUniqueID=Unikt ID för förekomsten @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang index 738c2068c9d..69025c706da 100644 --- a/htdocs/langs/sv_SE/bills.lang +++ b/htdocs/langs/sv_SE/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Betalning högre än påminnelse att betala HelpPaymentHigherThanReminderToPay=Observera är betalningsbeloppet för en eller flera räkningar högre än det utestående beloppet att betala.
Ändra din post, annars bekräfta och överväga att skapa en kreditnotering för det överskott som tas emot för varje överbetald faktura. HelpPaymentHigherThanReminderToPaySupplier=Observera är betalningsbeloppet för en eller flera räkningar högre än det utestående beloppet att betala.
Ändra din post, annars bekräfta och överväga att skapa en kreditnotering för det överskjutande beloppet för varje överbetald faktura. ClassifyPaid=Märk "betald" +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Märk "betalda delvis" ClassifyCanceled=Märk "övergivna" ClassifyClosed=Märk "avsluten" @@ -214,6 +215,20 @@ ShowInvoiceReplace=Visa ersätter faktura ShowInvoiceAvoir=Visa kreditnota ShowInvoiceDeposit=Visa nedbetalningsfaktura ShowInvoiceSituation=Visa lägesfaktura +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Visa betalning AlreadyPaid=Redan betalats ut AlreadyPaidBack=Redan återbetald diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang index 8be0a0461f0..f4e435871f1 100644 --- a/htdocs/langs/sv_SE/errors.lang +++ b/htdocs/langs/sv_SE/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Speciella tecken är inte tillåtna för anv ErrorNumRefModel=En hänvisning finns i databasen (%s) och är inte förenligt med denna numrering regel. Ta bort post eller bytt namn hänvisning till aktivera den här modulen. ErrorQtyTooLowForThisSupplier=Mängden är för låg för den här försäljaren eller inget pris som definieras på denna produkt för den här försäljaren ErrorOrdersNotCreatedQtyTooLow=Vissa beställningar har inte skapats på grund av för låga kvantiteter -ErrorModuleSetupNotComplete=Inställningen av modulen ser ut att vara ofullständig. Gå hem - Inställningar - Moduler att slutföra. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Fel på masken ErrorBadMaskFailedToLocatePosOfSequence=Fel, mask utan löpnummer ErrorBadMaskBadRazMonth=Fel, dåligt återställningsvärde @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s måste börja med http: // eller https: // ErrorNewRefIsAlreadyUsed=Fel, den nya referensen används redan ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Ett lösenord har ställts för den här medlemmen. Men inget användarkonto skapades. Så det här lösenordet är lagrat men kan inte användas för att logga in till Dolibarr. Den kan användas av en extern modul / gränssnitt men om du inte behöver definiera någon inloggning eller ett lösenord för en medlem kan du inaktivera alternativet "Hantera en inloggning för varje medlem" från inställningen av medlemsmodulen. Om du behöver hantera en inloggning men inte behöver något lösenord, kan du hålla fältet tomt för att undvika denna varning. Obs! Email kan också användas som inloggning om medlemmen är länkad till en användare. WarningMandatorySetupNotComplete=Klicka här för att ställa in obligatoriska parametrar WarningEnableYourModulesApplications=Klicka här för att aktivera dina moduler och applikationer diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang index a18d6220a4a..ccc0b9aca07 100644 --- a/htdocs/langs/sv_SE/main.lang +++ b/htdocs/langs/sv_SE/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Kontakter / adresser för denna tredje part AddressesForCompany=Adresser för denna tredje part ActionsOnCompany=Evenemang för denna tredje part ActionsOnContact=Händelser för denna kontakt / adress +ActionsOnContract=Events for this contract ActionsOnMember=Händelser om denna medlem ActionsOnProduct=Händelser om denna produkt NActionsLate=%s sent @@ -759,6 +760,7 @@ LinkToSupplierProposal=Länk till leverantörsförslag LinkToSupplierInvoice=Länk till leverantörsfaktura LinkToContract=Länk till kontrakt LinkToIntervention=Länk till intervention +LinkToTicket=Link to ticket CreateDraft=Skapa utkast SetToDraft=Tillbaka till utkast ClickToEdit=Klicka för att redigera diff --git a/htdocs/langs/sv_SE/products.lang b/htdocs/langs/sv_SE/products.lang index 2497e61f09e..2950e11044b 100644 --- a/htdocs/langs/sv_SE/products.lang +++ b/htdocs/langs/sv_SE/products.lang @@ -2,6 +2,7 @@ ProductRef=Produkt ref. ProductLabel=Produktmärkning ProductLabelTranslated=Översatt produktetikett +ProductDescription=Product description ProductDescriptionTranslated=Översatt produktbeskrivning ProductNoteTranslated=Översatt produktnotat ProductServiceCard=Produkter / tjänster diff --git a/htdocs/langs/sv_SE/stripe.lang b/htdocs/langs/sv_SE/stripe.lang index 9213cb8b250..f93ea0b5655 100644 --- a/htdocs/langs/sv_SE/stripe.lang +++ b/htdocs/langs/sv_SE/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=Användarkonto som ska användas för e-postnotifier StripePayoutList=Lista över Stripe utbetalningar ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/sv_SE/withdrawals.lang b/htdocs/langs/sv_SE/withdrawals.lang index 46e809839dc..b36e78217df 100644 --- a/htdocs/langs/sv_SE/withdrawals.lang +++ b/htdocs/langs/sv_SE/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Utträde fil SetToStatusSent=Ställ in på status "File Skickat" ThisWillAlsoAddPaymentOnInvoice=Detta kommer också att registrera betalningar till fakturor och märka dem som "Betalda" om det kvarstår att betala är noll StatisticsByLineStatus=Statistik efter status linjer -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unik Mandatreferens RUMWillBeGenerated=Om tomt kommer en UMR (Unique Mandate Reference) att genereras när bankkontoinformationen är sparad. WithdrawMode=Direkt debiteringsläge (FRST eller RECUR) diff --git a/htdocs/langs/sw_SW/accountancy.lang b/htdocs/langs/sw_SW/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/sw_SW/accountancy.lang +++ b/htdocs/langs/sw_SW/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/sw_SW/admin.lang b/htdocs/langs/sw_SW/admin.lang index f30d6edd9f7..2e27c6fe81f 100644 --- a/htdocs/langs/sw_SW/admin.lang +++ b/htdocs/langs/sw_SW/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/sw_SW/bills.lang b/htdocs/langs/sw_SW/bills.lang index 4f114d4df1c..53535e58b46 100644 --- a/htdocs/langs/sw_SW/bills.lang +++ b/htdocs/langs/sw_SW/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/sw_SW/errors.lang b/htdocs/langs/sw_SW/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/sw_SW/errors.lang +++ b/htdocs/langs/sw_SW/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/sw_SW/main.lang b/htdocs/langs/sw_SW/main.lang index 6efbe942032..1cadc32f4ab 100644 --- a/htdocs/langs/sw_SW/main.lang +++ b/htdocs/langs/sw_SW/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/sw_SW/products.lang b/htdocs/langs/sw_SW/products.lang index 7b68f5b3ebd..73e672284de 100644 --- a/htdocs/langs/sw_SW/products.lang +++ b/htdocs/langs/sw_SW/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/sw_SW/withdrawals.lang b/htdocs/langs/sw_SW/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/sw_SW/withdrawals.lang +++ b/htdocs/langs/sw_SW/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/th_TH/accountancy.lang b/htdocs/langs/th_TH/accountancy.lang index 32ea494ec01..b98134aa1cd 100644 --- a/htdocs/langs/th_TH/accountancy.lang +++ b/htdocs/langs/th_TH/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=ธรรมชาติ +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=ขาย AccountingJournalType3=การสั่งซื้อสินค้า @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang index bd4dd75398a..173ac63b62d 100644 --- a/htdocs/langs/th_TH/admin.lang +++ b/htdocs/langs/th_TH/admin.lang @@ -574,7 +574,7 @@ Module510Name=เงินเดือน Module510Desc=Record and track employee payments Module520Name=เงินให้กู้ยืม Module520Desc=การบริหารจัดการของเงินให้สินเชื่อ -Module600Name=การแจ้งเตือน +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=คุณลักษณะเสริม (คำส ExtraFieldsSupplierInvoices=คุณลักษณะเสริม (ใบแจ้งหนี้) ExtraFieldsProject=คุณลักษณะเสริม (โครงการ) ExtraFieldsProjectTask=คุณลักษณะเสริม (งาน) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=s Attribute% มีค่าที่ไม่ถูกต้อง AlphaNumOnlyLowerCharsAndNoSpace=alphanumericals เท่านั้นและอักขระตัวพิมพ์เล็กโดยไม่ต้องพื้นที่ SendmailOptionNotComplete=คำเตือนในบางระบบลินุกซ์ที่จะส่งอีเมลจากอีเมลของคุณตั้งค่าการดำเนินการต้องมี sendmail -ba ตัวเลือก (mail.force_extra_parameters พารามิเตอร์ลงในไฟล์ php.ini ของคุณ) หากผู้รับบางคนไม่เคยได้รับอีเมลพยายามที่จะแก้ไขพารามิเตอร์ PHP นี้กับ mail.force_extra_parameters = -ba) @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=เซสชั่นการจัดเก็บข้ ConditionIsCurrently=สภาพปัจจุบันคือ% s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=ค้นหาการเพิ่มประสิทธิภาพ -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug โหลด -XCacheInstalled=XCache โหลด +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=ไม่มีโมดูลสามารถจัดการกับการเพิ่มขึ้นของสต็อกอัตโนมัติถูกเปิดใช้งาน การเพิ่มขึ้นของสต็อกจะทำได้ในการป้อนข้อมูลด้วยตนเอง YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=ธรณีประตู @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/th_TH/bills.lang b/htdocs/langs/th_TH/bills.lang index 17b76759851..57d4a46221d 100644 --- a/htdocs/langs/th_TH/bills.lang +++ b/htdocs/langs/th_TH/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=การชำระเงินที่สู HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=จำแนก 'ชำระเงิน' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=จำแนก 'ชำระบางส่วน' ClassifyCanceled=จำแนก 'Abandoned' ClassifyClosed=จำแนก 'ปิด' @@ -214,6 +215,20 @@ ShowInvoiceReplace=แสดงการเปลี่ยนใบแจ้ง ShowInvoiceAvoir=แสดงใบลดหนี้ ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=แสดงการชำระเงิน AlreadyPaid=จ่ายเงินไปแล้ว AlreadyPaidBack=จ่ายเงินไปแล้วกลับมา diff --git a/htdocs/langs/th_TH/errors.lang b/htdocs/langs/th_TH/errors.lang index 66063d8262a..ff3ae3c3447 100644 --- a/htdocs/langs/th_TH/errors.lang +++ b/htdocs/langs/th_TH/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=อักขระพิเศษไม่ไ ErrorNumRefModel=การอ้างอิงที่มีอยู่ในฐานข้อมูล (% s) และไม่ได้เข้ากันได้กับกฎหมายเลขนี้ ลบบันทึกการอ้างอิงหรือเปลี่ยนชื่อเพื่อเปิดใช้งานโมดูลนี้ ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=ข้อผิดพลาดในหน้ากาก ErrorBadMaskFailedToLocatePosOfSequence=ข้อผิดพลาดหน้ากากไม่มีหมายเลขลำดับ ErrorBadMaskBadRazMonth=ข้อผิดพลาดค่าการตั้งค่าที่ไม่ดี @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/th_TH/main.lang b/htdocs/langs/th_TH/main.lang index 1b5fa626326..6bdb2dea072 100644 --- a/htdocs/langs/th_TH/main.lang +++ b/htdocs/langs/th_TH/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=รายชื่อ / ที่อยู่สำ AddressesForCompany=สำหรับที่อยู่ของบุคคลที่สามนี้ ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=เหตุการณ์ที่เกิดขึ้นเกี่ยวกับสมาชิกในนี้ ActionsOnProduct=Events about this product NActionsLate=% s ปลาย @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=สร้างร่าง SetToDraft=กลับไปร่าง ClickToEdit=คลิกเพื่อแก้ไข diff --git a/htdocs/langs/th_TH/products.lang b/htdocs/langs/th_TH/products.lang index ce6d14c6dc6..486cd4ee828 100644 --- a/htdocs/langs/th_TH/products.lang +++ b/htdocs/langs/th_TH/products.lang @@ -2,6 +2,7 @@ ProductRef=สินค้าอ้างอิง ProductLabel=ฉลากสินค้า ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=สินค้า / บริการบัตร diff --git a/htdocs/langs/th_TH/stripe.lang b/htdocs/langs/th_TH/stripe.lang index c0a5acea926..ddc7ffc500e 100644 --- a/htdocs/langs/th_TH/stripe.lang +++ b/htdocs/langs/th_TH/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/th_TH/withdrawals.lang b/htdocs/langs/th_TH/withdrawals.lang index b46cf195258..03c1a484b60 100644 --- a/htdocs/langs/th_TH/withdrawals.lang +++ b/htdocs/langs/th_TH/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=ไฟล์ถอนเงิน SetToStatusSent=ตั้งสถานะ "แฟ้มส่ง" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=สถิติตามสถานะของสาย -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index abce087b09e..391d2cf15bc 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Muhasebe günlükleri AccountingJournal=Muhasebe günlüğü NewAccountingJournal=Yeni muhasebe günlüğü ShowAccoutingJournal=Muhasebe günlüğünü göster -Nature=Niteliği +NatureOfJournal=Nature of Journal AccountingJournalType1=Çeşitli işlemler AccountingJournalType2=Satışlar AccountingJournalType3=Alışlar @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=EBP için dışa aktarım Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Hesap planı Id InitAccountancy=Muhasebe başlangıcı InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Seçenekler OptionModeProductSell=Satış modu OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 4ec639898e0..7ff3a990796 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -574,7 +574,7 @@ Module510Name=Ücretler Module510Desc=Çalışan ödemelerini kaydedin ve takip edin Module520Name=Krediler Module520Desc=Borçların yönetimi -Module600Name=Bildirimler +Module600Name=Notifications on business event Module600Desc=Bir iş etkinliği tarafından tetiklenen e-posta bildirimleri gönderin: her kullanıcı için (her bir kullanıcı için tanımlanmış kurulum), her üçüncü parti kişisi için (her bir üçüncü parti için tanımlanmış kurulum) veya belirli e-postalara göre. 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=Ürün Değişkenleri @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Tamamlayıcı öznitelikler (siparişler) ExtraFieldsSupplierInvoices=Tamamlayıcı öznitelikler (faturalar) ExtraFieldsProject=Tamamlayıcı öznitelikler (projeler) ExtraFieldsProjectTask=Tamamlayıcı öznitelikler (görevler) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Öznitelik %s için hatalı değer. AlphaNumOnlyLowerCharsAndNoSpace=yalnızca boşluksuz olarak alfasayısal ve küçük harfli karakterler SendmailOptionNotComplete=Uyarı: Bazı Linux sistemlerinde, e-posta adresinizden mail göndermek için sendmail yürütme kurulumu -ba seçeneğini içermelidir (php.ini dosyanızın içindeki parameter mail.force_extra_parameters). Eğer bazı alıcılar hiç e-posta alamazsa, bu PHP parametresini mail.force_extra_parameters = -ba ile düzenlemeye çalışın. @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Oturum depolaması Suhosin tarafından şifrelendi ConditionIsCurrently=Koşul şu anda %s durumunda YouUseBestDriver=Kullandığınız %s sürücüsü şu anda mevcut olan en iyi sürücüdür. YouDoNotUseBestDriver=%s sürücüsünü kullanıyorsunuz fakat %s sürücüsü önerilir. -NbOfProductIsLowerThanNoPb=Veritabanında sadece %s ürün/hizmet var. Bu, özel bir optimizasyon gerektirmez. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Optimizasyon ara -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug yüklüdür. -XCacheInstalled=XDebug yüklüdür. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Üçüncü Partiler için tercih edilen gönderme yöntemini isteyin. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Gider Raporları modülü kurulumu - Kurallar ExpenseReportNumberingModules=Gider raporları numaralandırma modülü NoModueToManageStockIncrease=Otomatik stok arttırılması yapabilecek hiçbir modül etkinleştirilmemiş. Stok arttırılması yalnızca elle girişle yapılacaktır. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=Kullanıcı başına bildirimler listesi* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=Sabit Bildirimlerin Listesi +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Kullanıcılar için bildirim eklemek veya silmek için kullanıcının "Bildirimler" sekmesine gidin GoOntoContactCardToAddMore=Kişilerden/adreslerden bildirimleri eklemek ya da kaldırmak için üçüncü taraf kişileri "Bildirimler" sekmesine git Threshold=Sınır @@ -1898,6 +1900,11 @@ OnMobileOnly=Sadece küçük ekranda (akıllı telefon) DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both) MAIN_OPTIMIZEFORTEXTBROWSER=Görme engelli insanlar için arayüzü basitleştir 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' DefaultCustomerType="Yeni müşteri" oluşturma formunda varsayılan üçüncü parti türü ABankAccountMustBeDefinedOnPaymentModeSetup=Note: The bank account must be defined on the module of each payment mode (Paypal, Stripe, ...) to have this feature working. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Hata ayıklama çubuğunu kullan DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Hata Ayıklama Çubuğu Modülü etkinleştirildi ve arayüzü önemli ölçüde yavaşlatıyor +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Dışa aktarma modelleri herkesle paylaşılır ExportSetup=Dışa aktarma modülünün kurulumu InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=Onu IFTTT hesabınızda bulacaksınız EndPointFor=%s için bitiş noktası: %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang index 53d372c93fd..8aa7e20097c 100644 --- a/htdocs/langs/tr_TR/bills.lang +++ b/htdocs/langs/tr_TR/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Ödeme hatırlatmasından daha yüksek ödeme HelpPaymentHigherThanReminderToPay=Dikkat: bir veya daha fazla faturanın ödeme tutarı ödenecek kalan miktardan daha yüksek.
Girişinizi düzeltin, aksi takdirde onaylayın ve fazla ödeme alınan her fatura için alınan fazlalık tutarında bir alacak dekontu oluşturmayı düşünün. HelpPaymentHigherThanReminderToPaySupplier=Dikkat: bir veya daha fazla faturanın ödeme tutarı ödenecek kalan miktardan daha yüksek.
Girişinizi düzeltin, aksi takdirde onaylayın ve fazla ödeme yapılan her fatura için ödenen fazlalık tutarında bir alacak dekontu oluşturmayı düşünün. ClassifyPaid=Sınıflandırma ‘Ödendi’ +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Sınıflandırma ‘Kısmen ödendi’ ClassifyCanceled=’Terkedildi’ olarak sınıflandır ClassifyClosed=‘Kapalı’ olarak sınıflandır @@ -214,6 +215,20 @@ ShowInvoiceReplace=Değiştirilen faturayı göster ShowInvoiceAvoir=İade faturası göster ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Hakediş faturası göster +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Ödeme göster AlreadyPaid=Zaten ödenmiş AlreadyPaidBack=Zaten geri ödenmiş diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang index 714b9d6c9ac..9a946adca70 100644 --- a/htdocs/langs/tr_TR/errors.lang +++ b/htdocs/langs/tr_TR/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=%s alanında özel karakterlere izin verilmez ErrorNumRefModel=Veritabanına (%s) bir başvuru var ve bu numaralandırma kuralı ile uyumlu değildir. Kaydı kaldırın ya da bu modülü etkinleştirmek için başvurunun adını değiştirin. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Modül ayarı tamamlanmamış gibi görünüyor. Tamamlamak için Giriş - Ayarlar - Modüller menüsüne git. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Maskede hata ErrorBadMaskFailedToLocatePosOfSequence=Hata, sıra numarasız maske ErrorBadMaskBadRazMonth=Hata, kötü sıfırlama değeri @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=Bu üye için bir parola ayarlıdır. Ancak, hiçbir kullanıcı hesabı oluşturulmamıştır. Yani bu şifre saklanır ama Dolibarr'a giriş için kullanılamaz. Dış bir modül/arayüz tarafından kullanılıyor olabilir, ama bir üye için ne bir kullanıcı adı ne de parola tanımlamanız gerekmiyorsa "Her üye için bir kullanıcı adı yönet" seçeneğini devre dışı bırakabilirsiniz. Bir kullanıcı adı yönetmeniz gerekiyorsa ama herhangi bir parolaya gereksinim duymuyorsanız bu uyarıyı engellemek için bu alanı boş bırakabilirsiniz. Not: Eğer bir üye bir kullanıcıya bağlıysa kullanıcı adı olarak e-posta adresi de kullanılabilir. WarningMandatorySetupNotComplete=Zorunlu parametreleri ayarlamak için buraya tıklayın WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index 4edc9cbc7a4..a4acb9620a3 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Bu üçüncü partinin kişleri/adresleri AddressesForCompany=Bu üçüncü partinin adresleri ActionsOnCompany=Bu üçüncü taraf için etkinlikler ActionsOnContact=Bu kişi/adres için etkinlikler +ActionsOnContract=Events for this contract ActionsOnMember=Bu üye hakkındaki etkinlikler ActionsOnProduct=Bu ürünle ilgili etkinlikler NActionsLate=%s son @@ -759,6 +760,7 @@ LinkToSupplierProposal=Tedarikçi teklifine bağlantıla LinkToSupplierInvoice=Tedarikçi faturasına bağlantıla LinkToContract=Kişiye bağlantıla LinkToIntervention=Müdahaleye bağlantıla +LinkToTicket=Link to ticket CreateDraft=Taslak oluştur SetToDraft=Taslağa geri dön ClickToEdit=Düzenlemek için tıklayın diff --git a/htdocs/langs/tr_TR/products.lang b/htdocs/langs/tr_TR/products.lang index 46b15d67da5..65f9f9ac6d2 100644 --- a/htdocs/langs/tr_TR/products.lang +++ b/htdocs/langs/tr_TR/products.lang @@ -2,6 +2,7 @@ ProductRef=Ürün ref. ProductLabel=Ürün etiketi ProductLabelTranslated=Çevirilmiş ürün etiketi +ProductDescription=Product description ProductDescriptionTranslated=Çevirilmiş ürün tanımı ProductNoteTranslated=Çevirilmiş ürün notu ProductServiceCard=Ürün/Hizmet kartı diff --git a/htdocs/langs/tr_TR/stripe.lang b/htdocs/langs/tr_TR/stripe.lang index a3c26c4b346..e386539b755 100644 --- a/htdocs/langs/tr_TR/stripe.lang +++ b/htdocs/langs/tr_TR/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/tr_TR/withdrawals.lang b/htdocs/langs/tr_TR/withdrawals.lang index 001dacc9c1e..68e1b28efe9 100644 --- a/htdocs/langs/tr_TR/withdrawals.lang +++ b/htdocs/langs/tr_TR/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Para çekme dosyası SetToStatusSent="Dosya Gönderildi" durumuna ayarla ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Durum satırlarına göre istatistkler -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Otomatik ödeme modu (FRST veya RECUR) diff --git a/htdocs/langs/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang index 2c0c96bb664..868f3378bbc 100644 --- a/htdocs/langs/uk_UA/accountancy.lang +++ b/htdocs/langs/uk_UA/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang index 2aa26a32a3b..620e9f7db8c 100644 --- a/htdocs/langs/uk_UA/admin.lang +++ b/htdocs/langs/uk_UA/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Оповіщення +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/uk_UA/bills.lang b/htdocs/langs/uk_UA/bills.lang index 667a89a60fe..56a17b860f9 100644 --- a/htdocs/langs/uk_UA/bills.lang +++ b/htdocs/langs/uk_UA/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Платіж більший, ніж в нагад HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Класифікувати як 'Сплачений' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Класифікувати як 'Сплачений частково' ClassifyCanceled=Класифікувати як 'Анулюваний' ClassifyClosed=Класифікувати як 'Закритий' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Показати замінюючий рахунок-факт ShowInvoiceAvoir=Показати кредитое авізо ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Показати платіж AlreadyPaid=Вже сплачений AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/uk_UA/errors.lang b/htdocs/langs/uk_UA/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/uk_UA/errors.lang +++ b/htdocs/langs/uk_UA/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang index 609709def1b..a0ffc3aa9c2 100644 --- a/htdocs/langs/uk_UA/main.lang +++ b/htdocs/langs/uk_UA/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/uk_UA/products.lang b/htdocs/langs/uk_UA/products.lang index f57c6b76c36..b358dc16410 100644 --- a/htdocs/langs/uk_UA/products.lang +++ b/htdocs/langs/uk_UA/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/uk_UA/stripe.lang b/htdocs/langs/uk_UA/stripe.lang index 7a3389f34b7..c5224982873 100644 --- a/htdocs/langs/uk_UA/stripe.lang +++ b/htdocs/langs/uk_UA/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/uk_UA/withdrawals.lang b/htdocs/langs/uk_UA/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/uk_UA/withdrawals.lang +++ b/htdocs/langs/uk_UA/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang index 758d9c340a5..1fc3b3e05ec 100644 --- a/htdocs/langs/uz_UZ/accountancy.lang +++ b/htdocs/langs/uz_UZ/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Nature +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Sales AccountingJournalType3=Purchases @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang index f30d6edd9f7..2e27c6fe81f 100644 --- a/htdocs/langs/uz_UZ/admin.lang +++ b/htdocs/langs/uz_UZ/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=Management of loans -Module600Name=Notifications +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProjectTask=Complementary attributes (tasks) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Attribute %s has a wrong value. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/uz_UZ/bills.lang b/htdocs/langs/uz_UZ/bills.lang index 4f114d4df1c..53535e58b46 100644 --- a/htdocs/langs/uz_UZ/bills.lang +++ b/htdocs/langs/uz_UZ/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Payment higher than reminder to pay HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Classify 'Paid' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Classify 'Paid partially' ClassifyCanceled=Classify 'Abandoned' ClassifyClosed=Classify 'Closed' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back diff --git a/htdocs/langs/uz_UZ/errors.lang b/htdocs/langs/uz_UZ/errors.lang index b5a9d70cb70..1ee46fdbb92 100644 --- a/htdocs/langs/uz_UZ/errors.lang +++ b/htdocs/langs/uz_UZ/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Error on mask ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number ErrorBadMaskBadRazMonth=Error, bad reset value @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang index c9487388ab3..d578c882ad5 100644 --- a/htdocs/langs/uz_UZ/main.lang +++ b/htdocs/langs/uz_UZ/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Events about this member ActionsOnProduct=Events about this product NActionsLate=%s late @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Create draft SetToDraft=Back to draft ClickToEdit=Click to edit diff --git a/htdocs/langs/uz_UZ/products.lang b/htdocs/langs/uz_UZ/products.lang index 7b68f5b3ebd..73e672284de 100644 --- a/htdocs/langs/uz_UZ/products.lang +++ b/htdocs/langs/uz_UZ/products.lang @@ -2,6 +2,7 @@ ProductRef=Product ref. ProductLabel=Product label ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=Products/Services card diff --git a/htdocs/langs/uz_UZ/withdrawals.lang b/htdocs/langs/uz_UZ/withdrawals.lang index cbca2b2f103..88e5eaf128c 100644 --- a/htdocs/langs/uz_UZ/withdrawals.lang +++ b/htdocs/langs/uz_UZ/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang index 68b3358d211..56aecdb1bbf 100644 --- a/htdocs/langs/vi_VN/accountancy.lang +++ b/htdocs/langs/vi_VN/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Nature=Tự nhiên +NatureOfJournal=Nature of Journal AccountingJournalType1=Miscellaneous operations AccountingJournalType2=Bán AccountingJournalType3=Mua @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=Chart of accounts Id InitAccountancy=Init accountancy InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=Options OptionModeProductSell=Mode sales OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang index 634eb06628e..ecc0d998ca1 100644 --- a/htdocs/langs/vi_VN/admin.lang +++ b/htdocs/langs/vi_VN/admin.lang @@ -574,7 +574,7 @@ Module510Name=Lương Module510Desc=Record and track employee payments Module520Name=Cho vay Module520Desc=Quản lý cho vay -Module600Name=Thông báo +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 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=Thuộc tính bổ sung (đơn hàng) ExtraFieldsSupplierInvoices=Thuộc tính bổ sung (hoá đơn) ExtraFieldsProject=Thuộc tính bổ sung (dự án) ExtraFieldsProjectTask=Thuộc tính bổ sung (nhiệm vụ) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=Thuộc tính %s có giá trị sai. AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Điều kiện là hiện tại %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=Tối ưu hóa tìm kiếm -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules ExpenseReportNumberingModules=Expense reports numbering module NoModueToManageStockIncrease=Không có module có thể quản lý tăng tồn kho được kích hoạt. Tăng tồn kho sẽ chỉ được thực hiện thủ công. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/vi_VN/bills.lang b/htdocs/langs/vi_VN/bills.lang index d04d4324fcd..e2b2a11cbee 100644 --- a/htdocs/langs/vi_VN/bills.lang +++ b/htdocs/langs/vi_VN/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=Thanh toán cao hơn so với đề nghị trả HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=Phân loại 'Đã trả' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=Phân loại 'Đã trả một phần' ClassifyCanceled=Phân loại 'Đã loại bỏ' ClassifyClosed=Phân loại 'Đã đóng' @@ -214,6 +215,20 @@ ShowInvoiceReplace=Hiển thị hóa đơn thay thế ShowInvoiceAvoir=Xem giấy báo có ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Xem hóa đơn tình huống +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=Hiển thị thanh toán AlreadyPaid=Đã trả AlreadyPaidBack=Đã trả lại diff --git a/htdocs/langs/vi_VN/errors.lang b/htdocs/langs/vi_VN/errors.lang index dd27b05a079..dcfe5118f12 100644 --- a/htdocs/langs/vi_VN/errors.lang +++ b/htdocs/langs/vi_VN/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=Ký tự đặc biệt không được phép ErrorNumRefModel=Một tham chiếu tồn tại vào cơ sở dữ liệu (% s) và không tương thích với quy tắc đánh số này. Di chuyển hồ sơ hoặc tài liệu tham khảo đổi tên để kích hoạt module này. ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=Lỗi trên mặt nạ ErrorBadMaskFailedToLocatePosOfSequence=Lỗi, mặt nạ mà không có số thứ tự ErrorBadMaskBadRazMonth=Lỗi, giá trị thiết lập lại xấu @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang index 145e971080c..825708ec534 100644 --- a/htdocs/langs/vi_VN/main.lang +++ b/htdocs/langs/vi_VN/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=Liên lạc/địa chỉ cho bên thứ ba này AddressesForCompany=Địa chỉ cho bên thứ ba này ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=Sự kiện về thành viên này ActionsOnProduct=Events about this product NActionsLate=%s cuối @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention +LinkToTicket=Link to ticket CreateDraft=Tạo dự thảo SetToDraft=Trở về dự thảo ClickToEdit=Nhấn vào để sửa diff --git a/htdocs/langs/vi_VN/products.lang b/htdocs/langs/vi_VN/products.lang index 48b032f77fc..84be0e8db9e 100644 --- a/htdocs/langs/vi_VN/products.lang +++ b/htdocs/langs/vi_VN/products.lang @@ -2,6 +2,7 @@ ProductRef=Tham chiếu sản phẩm. ProductLabel=Nhãn sản phẩm ProductLabelTranslated=Nhãn sản phẩm đã dịch +ProductDescription=Product description ProductDescriptionTranslated=Mô tả sản phẩm đã dịch ProductNoteTranslated=Ghi chú sản phẩm đã dịch ProductServiceCard=Thẻ Sản phẩm/Dịch vụ diff --git a/htdocs/langs/vi_VN/stripe.lang b/htdocs/langs/vi_VN/stripe.lang index 6c47d33cb8b..77337d06301 100644 --- a/htdocs/langs/vi_VN/stripe.lang +++ b/htdocs/langs/vi_VN/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/vi_VN/withdrawals.lang b/htdocs/langs/vi_VN/withdrawals.lang index 43a21ea82c2..9aa1a1d441c 100644 --- a/htdocs/langs/vi_VN/withdrawals.lang +++ b/htdocs/langs/vi_VN/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Thu hồi tập tin SetToStatusSent=Thiết lập để tình trạng "File gửi" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang index 1d3e23e0f66..75b91959f8d 100644 --- a/htdocs/langs/zh_CN/accountancy.lang +++ b/htdocs/langs/zh_CN/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=会计日常报表 AccountingJournal=会计日常报表 NewAccountingJournal=新建会计日常报表 ShowAccoutingJournal=显示会计日常报表 -Nature=属性 +NatureOfJournal=Nature of Journal AccountingJournalType1=杂项业务 AccountingJournalType2=销售 AccountingJournalType3=采购 @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=导出CSV可配置 Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=会计科目表ID InitAccountancy=初始化会计 InitAccountancyDesc=此页面可用于初始化没有为销售和购买定义的会计科目的产品和服务的会计科目。 DefaultBindingDesc=此页面可用于设置默认帐户,用于在未设置特定会计帐户时链接有关付款工资,捐款,税金和增值税的交易记录。 -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=选项 OptionModeProductSell=销售模式 OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index 93299ace4fa..01524a3067f 100644 --- a/htdocs/langs/zh_CN/admin.lang +++ b/htdocs/langs/zh_CN/admin.lang @@ -574,7 +574,7 @@ Module510Name=工资 Module510Desc=Record and track employee payments Module520Name=贷款 Module520Desc=贷款管理模块 -Module600Name=通知 +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=产品变体 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=自定义属性 (订单) ExtraFieldsSupplierInvoices=自定义属性 (账单) ExtraFieldsProject=自定义属性 (项目) ExtraFieldsProjectTask=自定义属性 (任务) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=属性 %s 有一个错误的值。 AlphaNumOnlyLowerCharsAndNoSpace=仅限英文大小写字母不含空格 SendmailOptionNotComplete=警告,在某些Linux系统上,要从您的电子邮件发送电子邮件,sendmail执行设置必须包含选项-ba(参数mail.force_extra_parameters到您的php.ini文件中)。如果某些收件人从未收到电子邮件,请尝试使用mail.force_extra_parameters = -ba编辑此PHP参数。 @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=会话存储空间已用 Suhosin 加密 ConditionIsCurrently=当前条件为 %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=搜索优化 -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=XDebug 已经加载。 -XCacheInstalled=XCache已经加载。 +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=模块费用报告的设置 - 规则 ExpenseReportNumberingModules=费用报告编号模块 NoModueToManageStockIncrease=没有能够管理自动库存增加的模块已被激活。库存增加仅在手动输入时完成。 YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=每个用户的通知列表* -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=转到合作方的“通知”标签,添加或删除联系人/地址的通知 Threshold=阈值 @@ -1898,6 +1900,11 @@ OnMobileOnly=On small screen (smartphone) only 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/zh_CN/bills.lang b/htdocs/langs/zh_CN/bills.lang index f4dd4ef5c4e..4ae6ac4679b 100644 --- a/htdocs/langs/zh_CN/bills.lang +++ b/htdocs/langs/zh_CN/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=付款金额比需要支付的金额高 HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay.
Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice. ClassifyPaid=归类为 已支付 +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=归类分 部分支付 ClassifyCanceled=归类为 已丢弃 ClassifyClosed=归类为 已关闭 @@ -214,6 +215,20 @@ ShowInvoiceReplace=显示替换发票 ShowInvoiceAvoir=显示信用记录 ShowInvoiceDeposit=显示付款发票 ShowInvoiceSituation=显示情况发票 +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=显示支付 AlreadyPaid=已支付 AlreadyPaidBack=已支付 diff --git a/htdocs/langs/zh_CN/errors.lang b/htdocs/langs/zh_CN/errors.lang index 6e232a35a83..d2c54579d93 100644 --- a/htdocs/langs/zh_CN/errors.lang +++ b/htdocs/langs/zh_CN/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=特殊字符不为外地允许“%s的” ErrorNumRefModel=存在一个引用(%s)和编号是不符合本规则兼容到数据库。记录中删除或重命名参考激活此模块。 ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=模块设置看起来未完成设置。请到 主页->设置->模块菜单 完成模块的设置。 +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=在面具的错误 ErrorBadMaskFailedToLocatePosOfSequence=没有序列号错误,面具 ErrorBadMaskBadRazMonth=错误,坏的复位值 @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=为此成员设置了密码。但是,未创建任何用户帐户。因此,此密码已存储,但无法用于登录Dolibarr。它可以由外部模块/接口使用,但如果您不需要为成员定义任何登录名或密码,则可以从成员模块设置中禁用“管理每个成员的登录名”选项。如果您需要管理登录但不需要任何密码,则可以将此字段保留为空以避免此警告。注意:如果成员链接到用户,则电子邮件也可用作登录。 WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang index f7f6a58e93c..3197d345e98 100644 --- a/htdocs/langs/zh_CN/main.lang +++ b/htdocs/langs/zh_CN/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=这个合伙人联系人/地址 AddressesForCompany=这个合伙人的地址 ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=有关此会员的事件 ActionsOnProduct=有关此产品的事件 NActionsLate=逾期 %s @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=链接到联系人 LinkToIntervention=链接到干预 +LinkToTicket=Link to ticket CreateDraft=创建草稿 SetToDraft=返回草稿 ClickToEdit=单击“编辑” diff --git a/htdocs/langs/zh_CN/products.lang b/htdocs/langs/zh_CN/products.lang index a1323c8069d..e10aeb3b1b4 100644 --- a/htdocs/langs/zh_CN/products.lang +++ b/htdocs/langs/zh_CN/products.lang @@ -2,6 +2,7 @@ ProductRef=产品编号 ProductLabel=产品名称 ProductLabelTranslated=产品标签已翻译 +ProductDescription=Product description ProductDescriptionTranslated=产品描述已翻译 ProductNoteTranslated=产品备注已翻译 ProductServiceCard=产品/服务 信息卡 diff --git a/htdocs/langs/zh_CN/stripe.lang b/htdocs/langs/zh_CN/stripe.lang index d239c1fb8bd..c884648b05d 100644 --- a/htdocs/langs/zh_CN/stripe.lang +++ b/htdocs/langs/zh_CN/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/zh_CN/withdrawals.lang b/htdocs/langs/zh_CN/withdrawals.lang index 83c38178b4b..1ccec37cfe1 100644 --- a/htdocs/langs/zh_CN/withdrawals.lang +++ b/htdocs/langs/zh_CN/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=撤回文件 SetToStatusSent=设置状态“发送的文件” ThisWillAlsoAddPaymentOnInvoice=这还将记录付款到发票,并将其分类为“付费”,如果仍然支付是空的 StatisticsByLineStatus=按状态明细统计 -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=唯一授权参考 RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=直接付款模式(FRST或RECUR) diff --git a/htdocs/langs/zh_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang index 97893293e5c..17dcd2accc4 100644 --- a/htdocs/langs/zh_TW/accountancy.lang +++ b/htdocs/langs/zh_TW/accountancy.lang @@ -265,7 +265,7 @@ AccountingJournals=各式會計日記簿 AccountingJournal=會計日記簿 NewAccountingJournal=新會計日記簿 ShowAccoutingJournal=顯示會計日記簿 -Nature=性質 +NatureOfJournal=Nature of Journal AccountingJournalType1=雜項操作 AccountingJournalType2=各式銷貨 AccountingJournalType3=各式採購 @@ -291,6 +291,7 @@ Modelcsv_quadratus=Export for Quadratus QuadraCompta Modelcsv_ebp=Export for EBP Modelcsv_cogilog=Export for Cogilog Modelcsv_agiris=Export for Agiris +Modelcsv_LDCompta=Export for LD Compta (v9 & higher) (Test) Modelcsv_openconcerto=Export for OpenConcerto (Test) Modelcsv_configurable=Export CSV Configurable Modelcsv_FEC=Export FEC @@ -301,7 +302,7 @@ ChartofaccountsId=會計項目表ID InitAccountancy=初始會計 InitAccountancyDesc=此頁可在沒有定義產品及服務的銷售及採購會計項目下使用產品及服務的會計項目。 DefaultBindingDesc=當沒有設定特定會計項目時,此頁面可設定預設會計項目連結到薪資、捐贈、稅捐及營業稅的交易紀錄。 -DefaultClosureDesc=This page can be used to set parameters to use to enclose a balance sheet. +DefaultClosureDesc=This page can be used to set parameters used for accounting closures. Options=選項 OptionModeProductSell=銷售模式 OptionModeProductSellIntra=Mode sales exported in EEC diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index 107124b2198..765fa63ea45 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/admin.lang @@ -574,7 +574,7 @@ Module510Name=Salaries Module510Desc=Record and track employee payments Module520Name=Loans Module520Desc=借款的管理 -Module600Name=通知 +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=產品變種 @@ -1193,6 +1193,7 @@ ExtraFieldsSupplierOrders=補充屬性(訂單) ExtraFieldsSupplierInvoices=補充屬性(發票) ExtraFieldsProject=補充屬性(專案) ExtraFieldsProjectTask=補充屬性(任務) +ExtraFieldsSalaries=Complementary attributes (salaries) ExtraFieldHasWrongValue=屬性 %s 有錯誤值。 AlphaNumOnlyLowerCharsAndNoSpace=只限字母數字和小寫字元且沒有空格 SendmailOptionNotComplete=警告,在某些Linux系統,從您的電子郵件發送電子郵件,必須包含 sendmail 的執行設置選項 -ba(在您的 php.ini 檔案設定參數 mail.force_extra_parameters )。如果收件人沒有收到電子郵件,嘗試編輯 mail.force_extra_parameters = -ba 這個PHP參數。 @@ -1220,13 +1221,14 @@ SuhosinSessionEncrypt=以 Suhosin 加密方式儲存連線階段 ConditionIsCurrently=目前情況 %s YouUseBestDriver=You use driver %s which is the best driver currently available. YouDoNotUseBestDriver=You use driver %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization. +NbOfObjectIsLowerThanNoPb=You have only %s %s in the database. This does not require any particular optimization. SearchOptim=最佳化的蒐尋 -YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE 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 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. +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. -XDebugInstalled=已載入 XDebug。 -XCacheInstalled=已載入 XCache。 +PHPModuleLoaded=PHP component %s is loaded +PreloadOPCode=Preloaded OPCode is used 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". AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties. @@ -1734,9 +1736,9 @@ ExpenseReportsRulesSetup=設定費用報表模組 - 規則 ExpenseReportNumberingModules=費用報表編號模組 NoModueToManageStockIncrease=當自動增加庫存啟動後沒有模組可以管理。此時增加庫存只能人工輸入。 YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=每位用戶* 的通知明細表 -ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact** -ListOfFixedNotifications=List of Fixed Notifications +ListOfNotificationsPerUser=List of automatic notifications per user* +ListOfNotificationsPerUserOrContact=List of possible automatic notifications (on business event) available per user* or per contact** +ListOfFixedNotifications=List of automatic fixed notifications GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users GoOntoContactCardToAddMore=移到合作方的「通知」分頁以便針對通訊錄/地址等增加或移除通知 Threshold=Threshold @@ -1898,6 +1900,11 @@ OnMobileOnly=只在小螢幕(智慧型手機) 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. +MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person +MAIN_OPTIMIZEFORCOLORBLINDDesc=Enable this option if you are a color blind person, in some case interface will change color setup to increase contrast. +Protanopia=Protanopia +Deuteranopes=Deuteranopes +Tritanopes=Tritanopes ThisValueCanOverwrittenOnUserLevel=This value can be overwritten by each user from its user page - tab '%s' 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. @@ -1911,7 +1918,7 @@ LogsLinesNumber=Number of lines to show on logs tab UseDebugBar=Use the debug bar DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output -DebugBarModuleActivated=Module debugbar is activated and slows dramaticaly the interface +ModuleActivated=Module %s is activated and slows the interface EXPORTS_SHARE_MODELS=Export models are share with everybody ExportSetup=Setup of module Export InstanceUniqueID=Unique ID of the instance @@ -1928,3 +1935,5 @@ YouWillFindItOnYourIFTTTAccount=You will find it on your IFTTT account EndPointFor=End point for %s : %s DeleteEmailCollector=Delete email collector ConfirmDeleteEmailCollector=Are you sure you want to delete this email collector? +RecipientEmailsWillBeReplacedWithThisValue=Recipient emails will be always replaced with this value +AtLeastOneDefaultBankAccountMandatory=At least 1 default bank account must be defined diff --git a/htdocs/langs/zh_TW/bills.lang b/htdocs/langs/zh_TW/bills.lang index c4f511537f2..1c4ba30453c 100644 --- a/htdocs/langs/zh_TW/bills.lang +++ b/htdocs/langs/zh_TW/bills.lang @@ -95,6 +95,7 @@ PaymentHigherThanReminderToPay=付款支付更高的比提醒 HelpPaymentHigherThanReminderToPay=注意,一張或多張帳單的付款金額高於未付金額。
編輯您的輸入,否則請確認並考慮為每張超額支付的發票建立貸方通知單。 HelpPaymentHigherThanReminderToPaySupplier=注意,一張或多張帳單的付款金額高於未付金額。
編輯您的輸入,否則請確認並考慮為每張超額支付的發票建立貸方通知單。 ClassifyPaid=分類'已付' +ClassifyUnPaid=Classify 'Unpaid' ClassifyPaidPartially=分類'部分支付' ClassifyCanceled=分類'已放棄' ClassifyClosed=分類'關閉' @@ -214,6 +215,20 @@ ShowInvoiceReplace=顯示發票取代 ShowInvoiceAvoir=顯示信貸說明 ShowInvoiceDeposit=顯示訂金發票 ShowInvoiceSituation=顯示情境發票 +UseSituationInvoices=Allow situation invoice +UseSituationInvoicesCreditNote=Allow situation invoice credit note +Retainedwarranty=Retained warranty +RetainedwarrantyDefaultPercent=Retained warranty default percent +ToPayOn=To pay on %s +toPayOn=to pay on %s +RetainedWarranty=Retained Warranty +PaymentConditionsShortRetainedWarranty=Retained warranty payment terms +DefaultPaymentConditionsRetainedWarranty=Default retained warranty payment terms +setPaymentConditionsShortRetainedWarranty=Set retained warranty payment terms +setretainedwarranty=Set retained warranty +setretainedwarrantyDateLimit=Set retained warranty date limit +RetainedWarrantyDateLimit=Retained warranty date limit +RetainedWarrantyNeed100Percent=The situation invoice need to be at 100%% progress to be displayed on PDF ShowPayment=顯示支付 AlreadyPaid=已支付 AlreadyPaidBack=已經還清了 diff --git a/htdocs/langs/zh_TW/errors.lang b/htdocs/langs/zh_TW/errors.lang index 5c767727593..f2d908bd98f 100644 --- a/htdocs/langs/zh_TW/errors.lang +++ b/htdocs/langs/zh_TW/errors.lang @@ -90,7 +90,7 @@ ErrorSpecialCharNotAllowedForField=特殊字符不為外地允許“%s的” ErrorNumRefModel=存在一個引用(%s)和編號是不符合本規則兼容到數據庫。記錄中刪除或重命名參考激活此模塊。 ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Setup of module %s looks to be uncomplete. Go on Home - Setup - Modules to complete. ErrorBadMask=錯誤的遮罩參數值 ErrorBadMaskFailedToLocatePosOfSequence=沒有序列號錯誤,面具 ErrorBadMaskBadRazMonth=錯誤,壞的復位值 @@ -219,6 +219,7 @@ ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings +WarningParamUploadMaxFileSizeHigherThanPostMaxSize=Your PHP parameter upload_max_filesize (%s) is higher than PHP parameter post_max_size (%s). This is not a consistent setup. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters WarningEnableYourModulesApplications=Click here to enable your modules and applications diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang index 3786469cafd..6a3d99b8b94 100644 --- a/htdocs/langs/zh_TW/main.lang +++ b/htdocs/langs/zh_TW/main.lang @@ -445,6 +445,7 @@ ContactsAddressesForCompany=此合作方的通訊錄及地址 AddressesForCompany=此合作方的地址 ActionsOnCompany=Events for this third party ActionsOnContact=Events for this contact/address +ActionsOnContract=Events for this contract ActionsOnMember=此會員的各種事件 ActionsOnProduct=此產品的各種事件 NActionsLate=%s的後期 @@ -759,6 +760,7 @@ LinkToSupplierProposal=Link to vendor proposal LinkToSupplierInvoice=Link to vendor invoice LinkToContract=連線到合約 LinkToIntervention=連線到干預 +LinkToTicket=Link to ticket CreateDraft=建立草稿 SetToDraft=回到草稿 ClickToEdit=點擊後“編輯” diff --git a/htdocs/langs/zh_TW/products.lang b/htdocs/langs/zh_TW/products.lang index 0379739b18f..660da6b3998 100644 --- a/htdocs/langs/zh_TW/products.lang +++ b/htdocs/langs/zh_TW/products.lang @@ -2,6 +2,7 @@ ProductRef=產品編號 ProductLabel=產品標簽 ProductLabelTranslated=Translated product label +ProductDescription=Product description ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note ProductServiceCard=產品服務卡 diff --git a/htdocs/langs/zh_TW/stripe.lang b/htdocs/langs/zh_TW/stripe.lang index a390881159f..b442a09dbdd 100644 --- a/htdocs/langs/zh_TW/stripe.lang +++ b/htdocs/langs/zh_TW/stripe.lang @@ -65,3 +65,5 @@ StripeUserAccountForActions=User account to use for email notification of some S StripePayoutList=List of Stripe payouts ToOfferALinkForTestWebhook=Link to setup Stripe WebHook to call the IPN (test mode) ToOfferALinkForLiveWebhook=Link to setup Stripe WebHook to call the IPN (live mode) +PaymentWillBeRecordedForNextPeriod=Payment will be recorded for the next period. +ClickHereToTryAgain=Click here to try again... diff --git a/htdocs/langs/zh_TW/withdrawals.lang b/htdocs/langs/zh_TW/withdrawals.lang index e9dcf33924b..a908610c4f0 100644 --- a/htdocs/langs/zh_TW/withdrawals.lang +++ b/htdocs/langs/zh_TW/withdrawals.lang @@ -76,7 +76,8 @@ WithdrawalFile=Withdrawal file SetToStatusSent=Set to status "File Sent" ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null StatisticsByLineStatus=Statistics by status of lines -RUM=UMR +RUM=Unique Mandate Reference (UMR) +DateRUM=Mandate signature date RUMLong=Unique Mandate Reference RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved. WithdrawMode=Direct debit mode (FRST or RECUR) From ac57e527ce5e26a62abaa57ee634e27af6153ea2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Aug 2019 19:01:23 +0200 Subject: [PATCH 486/944] Fix translation --- htdocs/website/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 76d063393f8..1a7a07ba18d 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2799,7 +2799,7 @@ if ($action == 'editmeta' || $action == 'createcontainer') if ($action != 'createcontainer') { print '
'; - print $langs->trans('LastModificationAuthor'); + print $langs->trans('UserModif'); print ''; if ($pageusermodifid > 0) { From f4e58aab228aa0cf179cb23ca64d578bbe625f2e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Aug 2019 04:49:12 +0200 Subject: [PATCH 487/944] FIX Enable web site --- htdocs/admin/website.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/admin/website.php b/htdocs/admin/website.php index 2b7e4fbf1f8..5096563ad76 100644 --- a/htdocs/admin/website.php +++ b/htdocs/admin/website.php @@ -618,7 +618,7 @@ if ($id) // Active print ''; - print ''.$actl[$obj->status].''; + print ''.$actl[($obj->status?1:0)].''; print "'; - print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); + $suggestedid = $objp->aarowid_suggest; + if (empty($suggestedid) && empty($objp->code_sell_p) && ! empty($objp->code_sell_l) && ! empty($conf->global->ACCOUNTANCY_AUTOFILL_ACCOUNT_WITH_GENERIC)) + { + //$suggestedid = // id of $objp->code_sell_l + } + print $formaccounting->select_account($suggestedid, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); print ''; - print 'aarowid ? "checked" : "") . '/>'; + //var_dump($objp->aarowid);var_dump($objp->aarowid_intra);var_dump($objp->aarowid_export);var_dump($objp->aarowid_suggest); + $ischecked = $objp->aarowid_suggest; + print ''; print '
'; - print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); + $suggestedid = $objp->aarowid_suggest; + print $formaccounting->select_account($suggestedid, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'); print ''; - print 'aarowid ? "checked" : "") . '/>'; + $ischecked = $objp->aarowid_suggest; + print ''; print '
'; From d109341ebedd95d7b0eeaa84a4d9510e7db7fcfe Mon Sep 17 00:00:00 2001 From: JC Prieto Date: Fri, 11 Oct 2019 18:08:15 +0200 Subject: [PATCH 823/944] Update card.php Variable $mesg not do anything --- htdocs/fourn/card.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 5ebe8ffed56..5c183cc212b 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -85,10 +85,7 @@ if (empty($reshook)) $result=$object->fetch($id); $object->code_compta_fournisseur=$_POST["supplieraccountancycode"]; $result=$object->update($object->id, $user, 1, 0, 1); - if ($result < 0) - { - $mesg=join(',', $object->errors); - } + if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); } // terms of the settlement if ($action == 'setconditions' && $user->rights->societe->creer) From f345b5fdb0d2b3bc4f2ce52d541393a1f1c7d050 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 11 Oct 2019 19:32:45 +0200 Subject: [PATCH 824/944] Fix look and feel v10 --- htdocs/comm/multiprix.php | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/htdocs/comm/multiprix.php b/htdocs/comm/multiprix.php index 8a5226d36d2..6442bb45a88 100644 --- a/htdocs/comm/multiprix.php +++ b/htdocs/comm/multiprix.php @@ -91,15 +91,13 @@ if ($_socid > 0) dol_fiche_head($head, $tabchoice, $langs->trans("ThirdParty"), 0, 'company'); - print ''; - print '\n"; - - - print ""; - print "
'; - print ''; + print '
'; - print '"; + print '"; - print '
'; - print $langs->trans("PriceLevel").''.$objsoc->price_level."
'; + print $langs->trans("PriceLevel").''.$objsoc->price_level."
'; - print $langs->trans("NewValue").''; + print '
'; + print $langs->trans("NewValue").''; print '
"; - print "
"; - dol_fiche_end(); print '
'; @@ -157,8 +149,8 @@ if ($_socid > 0) while ($i < $num ) { $obj = $db->fetch_object($resql); - $tag = !$tag; - print '
'.dol_print_date($db->jdate($obj->dc), "dayhour").''.$obj->price_level.'
'; - print '
'; print ''; print ''; print ''; @@ -918,7 +918,8 @@ if (! $variants) { print ''; print ''; print ''; - print ''; + print ''; + print ''; } } } @@ -926,12 +927,13 @@ if (! $variants) { } } else dol_print_error($db); + // Total line print ''; print ''; print ''; -// Value purchase + // Value purchase print ''; @@ -939,12 +941,13 @@ if (! $variants) { if (empty($conf->global->PRODUIT_MULTIPRICES)) print ($total ? price($totalvaluesell / $total, 1) : ' '); else print $langs->trans("Variable"); print ''; -// Value to sell + // Value to sell print ''; print ""; + print "
' . $langs->trans("Warehouse") . '' . $langs->trans("NumberOfUnit") . '' . dol_print_date($pdluo->eatby, 'day') . '' . dol_print_date($pdluo->sellby, 'day') . '' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '
' . $langs->trans("Total") . ':' . price2num($total, 'MS') . ''; print ($totalwithpmp ? price(price2num($totalvalue / $totalwithpmp, 'MU')) : ' '); // This value may have rounding errors print ''; print $totalvalue ? price(price2num($totalvalue, 'MT'), 1) : ' '; print ''; if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalvaluesell, 'MT'), 1); else print $langs->trans("Variable"); print '
"; print ''; @@ -1067,6 +1070,7 @@ if (! $variants) { print '
'.$langs->trans("Total").''.$stock_total.'
@@ -524,6 +527,7 @@ if (! empty($id) || ! empty($ref)) print ''; foreach ($prodattr_all as $attr) { + //print ''; print ''; } print ''; @@ -561,6 +565,10 @@ if (! empty($id) || ! empty($ref)) "> + +
+ +
variation_price >= 0 ? '+' : '').price($currcomb->variation_price).($currcomb->variation_price_percentage ? ' %' : '') ?> '.($currcomb->variation_weight >= 0 ? '+' : '').price($currcomb->variation_weight).' '.measuring_units_string($prodstatic->weight_units, 'weight').'getLibStatut(2, 0) ?>getLibStatut(2, 1) ?>getLibStatut(2, 0) ?>getLibStatut(2, 1) ?> From 67d76787eba1dd3493dc435c36d5695751584131 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 15:29:06 +0200 Subject: [PATCH 828/944] Add new hidden conf VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT --- htdocs/product/stock/product.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 9ef671e9913..944b3ce96cd 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -764,7 +764,7 @@ if (empty($reshook)) if ($user->rights->stock->mouvement->creer) { - if (! $variants) { + if (! $variants || ! empty($conf->global->VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT)) { print '' . $langs->trans("CorrectStock") . ''; } else @@ -780,7 +780,7 @@ if (empty($reshook)) //if (($user->rights->stock->mouvement->creer) && ! $object->hasbatch()) if ($user->rights->stock->mouvement->creer) { - if (! $variants) { + if (! $variants || ! empty($conf->global->VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT)) { print '' . $langs->trans("TransferStock") . ''; } else From 9c94ffeea9cb61efd5cdb2dc3cf6693d9709ef3d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 18:40:41 +0200 Subject: [PATCH 829/944] Fix css --- htdocs/comm/mailing/cibles.php | 2 +- htdocs/theme/eldy/global.inc.php | 3 +++ htdocs/theme/md/style.css.php | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index 3cc5f12566d..532e792bd6e 100644 --- a/htdocs/comm/mailing/cibles.php +++ b/htdocs/comm/mailing/cibles.php @@ -338,7 +338,7 @@ if ($object->fetch($id) >= 0) print '
'; if (empty($obj->picto)) $obj->picto='generic'; - print img_object($langs->trans("EmailingTargetSelector").': '.get_class($obj), $obj->picto); + print img_object($langs->trans("EmailingTargetSelector").': '.get_class($obj), $obj->picto, 'class="valignmiddle pictomodule"'); print ' '; print $obj->getDesc(); print '
'; diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 46d24b08cc6..0189a3988dd 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1293,6 +1293,9 @@ div.nopadding { .pictowarning { vertical-align: text-bottom; } +.pictomodule { + width: 14px; +} .fiche .arearef img.pictoedit, .fiche .arearef span.pictoedit, .fiche .fichecenter img.pictoedit, .fiche .fichecenter span.pictoedit, .tagtdnote span.pictoedit { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index a9e94eb885c..8e0cf75047b 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -1483,6 +1483,9 @@ table.noborder tr.liste_titre td { .pictowarning { vertical-align: text-bottom; } +.pictomodule { + width: 14px; +} .fiche .arearef img.pictoedit, .fiche .arearef span.pictoedit, .fiche .fichecenter img.pictoedit, .fiche .fichecenter span.pictoedit, .tagtdnote span.pictoedit { From 650cd2b54ffe616cff7228a0478291812b08ffdd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Oct 2019 18:41:33 +0200 Subject: [PATCH 830/944] Prepare 10.0.3 --- 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 94455858e8b..fffd9be3636 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', '10.0.2'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c +if (! defined('DOL_VERSION')) define('DOL_VERSION', '10.0.3'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c if (! defined('EURO')) define('EURO', chr(128)); From 499eb87173aa6b35a843808aca8a5e03e7414c5c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 13 Oct 2019 08:20:37 +0200 Subject: [PATCH 831/944] lang file for holidays is holiday --- htdocs/core/modules/holiday/modules_holiday.php | 4 ++-- htdocs/holiday/document.php | 4 +--- htdocs/holiday/list.php | 2 +- htdocs/index.php | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/holiday/modules_holiday.php b/htdocs/core/modules/holiday/modules_holiday.php index 9bd0a448ebc..8797d1f377c 100644 --- a/htdocs/core/modules/holiday/modules_holiday.php +++ b/htdocs/core/modules/holiday/modules_holiday.php @@ -96,7 +96,7 @@ class ModelNumRefHolidays public function info() { global $langs; - $langs->load("holidays"); + $langs->load("holiday"); return $langs->trans("NoDescription"); } @@ -108,7 +108,7 @@ class ModelNumRefHolidays public function getExample() { global $langs; - $langs->load("holidays"); + $langs->load("holiday"); return $langs->trans("NoExample"); } diff --git a/htdocs/holiday/document.php b/htdocs/holiday/document.php index a594a920e74..30803a9ecbc 100644 --- a/htdocs/holiday/document.php +++ b/htdocs/holiday/document.php @@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; // Load translation files required by the page -$langs->loadLangs(array('other', 'holidays', 'companies')); +$langs->loadLangs(array('other', 'holiday', 'companies')); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); @@ -48,8 +48,6 @@ $confirm = GETPOST('confirm', 'alpha'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'holiday', $id, 'holiday'); -$langs->load("holiday"); - // Get parameters $sortfield = GETPOST('sortfield', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha'); diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index f74d731e8bd..1c03e3801b6 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -35,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; // Load translation files required by the page -$langs->loadLangs(array('users', 'holidays', 'hrm')); +$langs->loadLangs(array('users', 'holiday', 'hrm')); // Protection if external user if ($user->societe_id > 0) accessforbidden(); diff --git a/htdocs/index.php b/htdocs/index.php index d6ce8c90067..5eee02efa1e 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -218,7 +218,7 @@ if (empty($user->societe_id)) 'askprice', 'projects', 'expensereports', - 'holidays', + 'holiday', 'donations' ); // Dashboard Icon lines From e50d32dc00536523090307691cd1c0b1d6518119 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 13 Oct 2019 13:20:45 +0200 Subject: [PATCH 832/944] Remove a duplicate line --- htdocs/core/modules/modSociete.class.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index a0d190c65cd..8d6490becfe 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -269,8 +269,6 @@ class modSociete extends DolibarrModules 't.libelle'=>"ThirdPartyType",'ce.code'=>"Staff","cfj.libelle"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel', 'st.code'=>'ProspectStatus','payterm.libelle'=>'PaymentConditions','paymode.libelle'=>'PaymentMode' ); - if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; - if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; if (! empty($conf->global->PRODUIT_MULTIPRICES)) $this->export_fields_array[$r]['s.price_level']='PriceLevel'; // Add multicompany field From 4fd12e22cb52e4ba2d747a989c4f0ecd3f866102 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 12:27:44 +0200 Subject: [PATCH 833/944] Fix trans export --- htdocs/exports/export.php | 2 +- htdocs/langs/en_US/admin.lang | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index df298153062..c404fc2b264 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; // Load translation files required by the page -$langs->loadlangs(array('exports', 'other', 'users', 'companies', 'projects')); +$langs->loadlangs(array('admin', 'exports', 'other', 'users', 'companies', 'projects', 'suppliers', 'products')); // Everybody should be able to go on this page //if (! $user->admin) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 5996d643624..bef32dfcd84 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1061,6 +1061,7 @@ CompanyTown=Town CompanyCountry=Country CompanyCurrency=Main currency CompanyObject=Object of the company +IDCountry=ID country Logo=Logo DoNotSuggestPaymentMode=Do not suggest NoActiveBankAccountDefined=No active bank account defined From b4827dbe067e6755665a268262c9ea2deb59f4fa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 12:30:26 +0200 Subject: [PATCH 834/944] Prepare 10.0.3 --- ChangeLog | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ee409bb7588..3583c10385b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,8 +2,68 @@ English Dolibarr ChangeLog -------------------------------------------------------------- -***** ChangeLog for 10.0.2 compared to 10.0.1 ***** +***** ChangeLog for 10.0.3 compared to 10.0.2 ***** +FIX: #11702 +FIX: #11861 No consistent code to manage measuring units +FIX: #11942 +FIX: #12026 +FIX: #12040 +FIX: #12041 +FIX: #12054 +FIX: #12083 +FIX: #12088 +FIX: access to public interface when origin email has an alias. +FIX: Alias name is not into the email recipient label. +FIX: allow standalone credit note even if no invoice +FIX: an admin can not access his own permissions after enabling advanced +FIX: an admin can not access his own permissions after enabling advanced permissions +FIX: Attachement of linked files on ticket when sending a message +FIX: avoid non numeric warning +FIX: Bad currency var used in stripe for connect +FIX: Bad list of ticket on public interface for ticket emailcollector +FIX: Can't modify vendor invoice if transfered into accountancy +FIX: change product type must be allowed if we activate hidden conf +FIX: colspan on VAT quadri report +FIX: CSS +FIX: Debug feature orderstoinvoice for suppliers +FIX: do not output return code on screen after a select of bank account +FIX: Edit of ticket module parameters erased others +FIX: empty cache when we want to load specific warehouses in select +FIX: escape email alias +FIX: expedition.class.php +FIX: Export of leave request show the number of open days +FIX: Filtering the HTTP Header "Accept-Language". +FIX: Filter on project on ticket list +FIX: Filter "Open all" of ticket was ko. +FIX: Force downlaod of file with .noexe as octet-stream mime type +FIX: form not closed. +FIX: hidden conf to prevent from changing product_type +FIX: If product account not suggested during bind, it is not preselected +FIX: If we share invoice, we need to see discount created from a deposit on each entity +FIX: Import of product using units +FIX: label of thirdparty is wrong on open project list +FIX: Look and feel v10 +FIX: missing begin() +FIX: missing "$this->id" in "fetch" function +FIX: navigation on ticket tab of projects +FIX: new invoice with generic thirdparty in takepos +FIX: Pb in units of shipments +FIX: regression with option to hide picto on top menu +FIX: selection of project i am contact of. +FIX: Send email from expense report card. +FIX: shipping card: missing user error messages when classifying closed or billed +FIX: SQL injection on qty +FIX: stripe payment when there is a quote into address +FIX: Substitution of __PROJECT_XXX__ not done +FIX: TakePOS no invoice validation control and good payment translate +FIX: the access of the bank account of one user +FIX: top menu right padding +FIX: Update of leave request when CSRF with token is on +FIX: Var not enough sanitized +FIX: wrong test +FIX: XSS +***** ChangeLog for 10.0.2 compared to 10.0.1 ***** FIX: #10460 compatibility with MariaDB 10.4 FIX: #11401 Adherent unknown language key FIX: #11422 Can't edit his own events with standard rights From 92c624daf0bdd80313bed5a4862e750775bf22de Mon Sep 17 00:00:00 2001 From: atm-greg Date: Mon, 14 Oct 2019 15:28:06 +0200 Subject: [PATCH 835/944] add security.lib.php for dol_hash --- htdocs/blockedlog/class/blockedlog.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/blockedlog/class/blockedlog.class.php b/htdocs/blockedlog/class/blockedlog.class.php index d7302a2c795..4413b78a6a4 100644 --- a/htdocs/blockedlog/class/blockedlog.class.php +++ b/htdocs/blockedlog/class/blockedlog.class.php @@ -1048,6 +1048,7 @@ class BlockedLog if (empty($conf->global->BLOCKEDLOG_ENTITY_FINGERPRINT)) { // creation of a unique fingerprint require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; + require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php'; $fingerprint = dol_hash(print_r($mysoc, true).getRandomPassword(1), '5'); From 4f10009113a776462c26c4500d3c24c593dc9d63 Mon Sep 17 00:00:00 2001 From: atm-josselin Date: Mon, 14 Oct 2019 15:39:38 +0200 Subject: [PATCH 836/944] Add fields definition in product batch class for extrafields compatibility --- htdocs/product/stock/class/productlot.class.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/htdocs/product/stock/class/productlot.class.php b/htdocs/product/stock/class/productlot.class.php index f3cec8f9a98..dd811a66cf6 100644 --- a/htdocs/product/stock/class/productlot.class.php +++ b/htdocs/product/stock/class/productlot.class.php @@ -53,6 +53,19 @@ class Productlot extends CommonObject */ public $ismultientitymanaged = 1; + /** + * @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( + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), + 'batch' =>array('type'=>'varchar(30)', 'label'=>'Batch', 'enabled'=>1, 'visible'=>1, 'notnull'=>0, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'comment'=>'Batch'), + 'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20), + 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>500), + 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>501), + 'fk_user_author'=>array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>510, 'foreignkey'=>'llx_user.rowid'), + 'fk_user_modif' =>array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511) + ); + /** * @var int Entity */ From 45b3d623bbe90e57252377a6f6efc4404bf33a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Mon, 14 Oct 2019 20:30:31 +0200 Subject: [PATCH 837/944] Update list.php --- htdocs/fourn/facture/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 8985ee33de2..1da06b03d63 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -805,7 +805,7 @@ if ($resql) if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'],$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['typent.code']['checked'])) print_liste_field_titre($arrayfields['typent.code']['label'],$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['f.fk_mode_reglement']['checked'])) print_liste_field_titre($arrayfields['f.fk_mode_reglement']['label'],$_SERVER["PHP_SELF"],"f.fk_mode_reglement","",$param,"",$sortfield,$sortorder); - if (! empty($arrayfields['f.total_ht']['checked'])) print_liste_field_titre($arrayfields['f.total_ht']['label'],$_SERVER['PHP_SELF'],'f.total','',$param,'align="right"',$sortfield,$sortorder); + if (! empty($arrayfields['f.total_ht']['checked'])) print_liste_field_titre($arrayfields['f.total_ht']['label'],$_SERVER['PHP_SELF'],'f.total_ht','',$param,'align="right"',$sortfield,$sortorder); if (! empty($arrayfields['f.total_vat']['checked'])) print_liste_field_titre($arrayfields['f.total_vat']['label'],$_SERVER['PHP_SELF'],'f.tva','',$param,'align="right"',$sortfield,$sortorder); if (! empty($arrayfields['f.total_localtax1']['checked'])) print_liste_field_titre($arrayfields['f.total_localtax1']['label'],$_SERVER['PHP_SELF'],'f.localtax1','',$param,'align="right"',$sortfield,$sortorder); if (! empty($arrayfields['f.total_localtax2']['checked'])) print_liste_field_titre($arrayfields['f.total_localtax2']['label'],$_SERVER['PHP_SELF'],'f.localtax2','',$param,'align="right"',$sortfield,$sortorder); From 056f7f826bfaad2048597b4a785467176fcee0d9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Oct 2019 20:41:28 +0200 Subject: [PATCH 838/944] Clean code --- htdocs/modulebuilder/template/myobject_card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 72bc424c53c..132bf158ac8 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -446,7 +446,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Clone if (! empty($user->rights->mymodule->write)) { - print ''; + print '' . $langs->trans("ToClone") . ''."\n"; } /* From 568faef7f4c2f77087fd9005b9a0b37dd0bffc85 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 04:08:34 +0200 Subject: [PATCH 839/944] Fix encoding of message --- htdocs/takepos/takepos.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/takepos/takepos.php b/htdocs/takepos/takepos.php index bd14e227876..311bcd00d8b 100644 --- a/htdocs/takepos/takepos.php +++ b/htdocs/takepos/takepos.php @@ -396,7 +396,7 @@ function Refresh() { function New() { // If we go here,it means $conf->global->TAKEPOS_BAR_RESTAURANT is not defined console.log("New with place = , js place="+place); - var r = confirm(' 0 ? $langs->trans("ConfirmDeletionOfThisPOSSale") : $langs->trans("ConfirmDiscardOfThisPOSSale")); ?>'); + var r = confirm(' 0 ? $langs->transnoentitiesnoconv("ConfirmDeletionOfThisPOSSale") : $langs->transnoentitiesnoconv("ConfirmDiscardOfThisPOSSale")); ?>'); if (r == true) { $("#poslines").load("invoice.php?action=delete&place="+place, function() { //$('#poslines').scrollTop($('#poslines')[0].scrollHeight); From a45ad29e71e6b6cfd83d544bb3c0a4f2186fa5b9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 15 Oct 2019 11:32:53 +0200 Subject: [PATCH 840/944] Doc --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3583c10385b..d4e1356b493 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,11 @@ English Dolibarr ChangeLog -------------------------------------------------------------- ***** ChangeLog for 10.0.3 compared to 10.0.2 ***** +IMPORTANT : This version fixes a serious bug in saving the units of weight, size, surface and volume on product card. +The unit were not saved correctly in database making calculation on shipments wrong. +Update to this version must be done if you use them and have installed version 10.0.0, 10.0.1 or 10.0.2 and set some products after installing or upgrading to this version. +Once update is done you must then edit (manually) the product that has bad unit to set the correct unit to have features restored. + FIX: #11702 FIX: #11861 No consistent code to manage measuring units FIX: #11942 From 6a8e8907efc528598cec19f395a8f97e53399d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 15 Oct 2019 17:55:07 +0200 Subject: [PATCH 841/944] Update list.php --- htdocs/comm/propal/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 893a3935cba..511166991bf 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -267,7 +267,7 @@ $sql.= ' p.rowid, p.entity, p.note_private, p.total_ht, p.tva as total_vat, p.to $sql.= ' p.datec as date_creation, p.tms as date_update,'; $sql.= " pr.rowid as project_id, pr.ref as project_ref, pr.title as project_label,"; $sql.= ' u.login'; -if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user,"; +if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user"; if ($search_categ_cus) $sql .= ", cc.fk_categorie, cc.fk_soc"; // Add fields from extrafields foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); From 4bb16770796b07b197c8e1dcdd6fe5a44efd7340 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 16 Oct 2019 10:39:35 +0200 Subject: [PATCH 842/944] Fix - Accountancy - Various payment - Subledger is not recovered in bank journal --- htdocs/accountancy/journal/bankjournal.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 8003cf1c523..a532379c358 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -4,12 +4,12 @@ * Copyright (C) 2011 Juanjo Menent * Copyright (C) 2012 Regis Houssin * Copyright (C) 2013 Christophe Battarel - * Copyright (C) 2013-2018 Alexandre Spangaro + * Copyright (C) 2013-2019 Alexandre Spangaro * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2017-2018 Frédéric France - * Copyright (C) 2018 Ferran Marcet - * Copyright (C) 2018 Eric Seigne + * Copyright (C) 2018 Ferran Marcet + * Copyright (C) 2018 Eric Seigne * * 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 @@ -387,7 +387,9 @@ if ($result) { $tabpay[$obj->rowid]["paymentvariousid"] = $paymentvariousstatic->id; $paymentvariousstatic->fetch($paymentvariousstatic->id); $account_various = (! empty($paymentvariousstatic->accountancy_code) ? $paymentvariousstatic->accountancy_code : 'NotDefined'); // NotDefined is a reserved word - $tabtp[$obj->rowid][$account_various] += $obj->amount; + $account_subledger = (! empty($paymentvariousstatic->subledger_account) ? $paymentvariousstatic->subledger_account : ''); // NotDefined is a reserved word + $tabpay[$obj->rowid]["account_various"] = $account_various; + $tabtp[$obj->rowid][$account_subledger] += $obj->amount; } elseif ($links[$key]['type'] == 'payment_loan') { $paymentloanstatic->id = $links[$key]['url_id']; $paymentloanstatic->ref = $links[$key]['url_id']; @@ -660,11 +662,11 @@ if (! $error && $action == 'writebookkeeping') { $accountingaccount->fetch(null, $k, true); $bookkeeping->label_compte = $accountingaccount->label; } elseif ($tabtype[$key] == 'payment_various') { - $bookkeeping->subledger_account = ''; - $bookkeeping->subledger_label = ''; - $bookkeeping->numero_compte = $k; + $bookkeeping->subledger_account = $k; + $bookkeeping->subledger_label = $tabcompany[$key]['name']; + $bookkeeping->numero_compte = $tabpay[$obj->rowid]["account_various"]; - $accountingaccount->fetch(null, $k, true); + $accountingaccount->fetch(null, $bookkeeping->numero_compte, true); $bookkeeping->label_compte = $accountingaccount->label; } elseif ($tabtype[$key] == 'banktransfert') { $bookkeeping->subledger_account = ''; @@ -1123,6 +1125,7 @@ if (empty($action) || $action == 'view') { if ($tabtype[$key] == 'payment_salary') $account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; if ($tabtype[$key] == 'payment_vat') $account_ledger = $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT; if ($tabtype[$key] == 'member') $account_ledger = $conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT; + if ($tabtype[$key] == 'payment_various') $account_ledger = $tabpay[$key]["account_various"]; $accounttoshow = length_accounta($account_ledger); if (empty($accounttoshow) || $accounttoshow == 'NotDefined') { @@ -1156,7 +1159,7 @@ if (empty($action) || $action == 'view') { // Subledger account print "
"; - if (in_array($tabtype[$key], array('payment', 'payment_supplier', 'payment_expensereport', 'payment_salary'))) // Type of payment with subledger + if (in_array($tabtype[$key], array('payment', 'payment_supplier', 'payment_expensereport', 'payment_salary', 'payment_various'))) // Type of payment with subledger { $accounttoshowsubledger = length_accounta($k); if ($accounttoshow != $accounttoshowsubledger) From 5a1682509beb97483b41431dde8f1873d85d4a29 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Wed, 16 Oct 2019 11:11:34 +0200 Subject: [PATCH 843/944] FIX It is not possible to create an expedition if there is no unit data --- htdocs/expedition/class/expedition.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 915177164ac..1a9a249effc 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -325,8 +325,8 @@ class Expedition extends CommonObject $sql.= ", ".$this->sizeS; // TODO Should use this->trueDepth $sql.= ", ".$this->sizeW; // TODO Should use this->trueWidth $sql.= ", ".$this->sizeH; // TODO Should use this->trueHeight - $sql.= ", ".$this->weight_units; - $sql.= ", ".$this->size_units; + $sql.= ", ".($this->weight_units>0?$this->weight_units:'NULL'); + $sql.= ", ".($this->size_units>0?$this->size_units:'NULL'); $sql.= ", ".(!empty($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null"); $sql.= ", ".(!empty($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null"); $sql.= ", ".(!empty($this->model_pdf)?"'".$this->db->escape($this->model_pdf)."'":"null"); From 86e4ca55dfd9ec41ff43296c622231079037e302 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 13:55:29 +0200 Subject: [PATCH 844/944] Merge --- htdocs/theme/eldy/btn.inc.php | 3 ++- htdocs/theme/md/style.css.php | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/theme/eldy/btn.inc.php b/htdocs/theme/eldy/btn.inc.php index 2e42d42acaa..3ee6a164f75 100644 --- a/htdocs/theme/eldy/btn.inc.php +++ b/htdocs/theme/eldy/btn.inc.php @@ -11,7 +11,8 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?> div.divButAction { margin-bottom: 1.4em; } -div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused { +div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused, div.tabsAction > a.butActionDelete, +div.tabsAction > span.butAction, div.tabsAction > span.butActionRefused, div.tabsAction > span.butActionDelete { margin-bottom: 1.4em !important; } div.tabsActionNoBottom > a.butAction, div.tabsActionNoBottom > a.butActionRefused { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 8e0cf75047b..65436182755 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2571,7 +2571,9 @@ div.divButAction { margin-bottom: 1.4em; vertical-align: top; } -div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused { + +div.tabsAction > a.butAction, div.tabsAction > a.butActionRefused, div.tabsAction > a.butActionDelete, +div.tabsAction > span.butAction, div.tabsAction > span.butActionRefused, div.tabsAction > span.butActionDelete { margin-bottom: 1.4em !important; } From 43ce1543d8f482d9cf4125e9bbbe915b201eade8 Mon Sep 17 00:00:00 2001 From: TuxGasy Date: Wed, 16 Oct 2019 17:37:20 +0200 Subject: [PATCH 845/944] Fix width unit label in product import --- htdocs/core/modules/modProduct.class.php | 2 +- htdocs/core/modules/modService.class.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index 2b41a76ea45..f3b3cde38e5 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -383,7 +383,7 @@ class modProduct extends DolibarrModules 'p.length' => "Length", 'p.length_units' => "LengthUnit", 'p.width' => "Width", - 'p.width_units' => "VolumeUnits", + 'p.width_units' => "WidthUnits", 'p.height' => "Height", 'p.height_units' => "HeightUnit", 'p.surface' => "Surface", diff --git a/htdocs/core/modules/modService.class.php b/htdocs/core/modules/modService.class.php index 2f3e62903a4..20db49d5e69 100644 --- a/htdocs/core/modules/modService.class.php +++ b/htdocs/core/modules/modService.class.php @@ -360,7 +360,7 @@ class modService extends DolibarrModules 'p.length' => "Length", 'p.length_units' => "LengthUnit", 'p.width' => "Width", - 'p.width_units' => "VolumeUnits", + 'p.width_units' => "WidthUnits", 'p.height' => "Height", 'p.height_units' => "HeightUnit", 'p.surface' => "Surface", From 8a7a0b80e2728d910fcf8cdffce1742cf89af5e6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 16 Oct 2019 19:08:31 +0200 Subject: [PATCH 846/944] Fix remove warnings --- htdocs/core/class/conf.class.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index e3b6ac4e524..c595dd17938 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -226,10 +226,7 @@ class Conf $filesList = explode(":", $this->global->LOCAL_CONSTS_FILES); foreach ($filesList as $file) { $file=dol_sanitizeFileName($file); - include_once DOL_DOCUMENT_ROOT . "/".$file."/".$file."_consts.php"; - foreach ($file2bddconsts as $key=>$value) { - $this->global->$key=$value; - } + include_once DOL_DOCUMENT_ROOT . "/".$file."/".$file."_consts.php"; // This file can run code like setting $this->global->XXX vars. } } From d79340a6325aada703073a2a295e8be27234e1bd Mon Sep 17 00:00:00 2001 From: Marc de Lima Lucio Date: Thu, 17 Oct 2019 09:55:02 +0200 Subject: [PATCH 847/944] FIX: stock replenish: fetching and freeing non existing SQL result set --- htdocs/product/stock/replenish.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php index cc7f5d1f2f5..0bd7f95373b 100644 --- a/htdocs/product/stock/replenish.php +++ b/htdocs/product/stock/replenish.php @@ -137,7 +137,6 @@ if ($action == 'order' && isset($_POST['valid'])) if ($qty) { //might need some value checks - $obj = $db->fetch_object($resql); $line = new CommandeFournisseurLigne($db); $line->qty = $qty; $line->fk_product = $idprod; @@ -176,7 +175,7 @@ if ($action == 'order' && isset($_POST['valid'])) $error=$db->lasterror(); dol_print_error($db); } - $db->free($resql); + unset($_POST['fourn' . $i]); } unset($_POST[$i]); From 084ab53b4b87e918e591df998f93d952959633ba Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 12:14:38 +0200 Subject: [PATCH 848/944] Fix translation --- htdocs/core/class/discount.class.php | 27 ++++++++++++++++----------- htdocs/langs/en_US/bills.lang | 3 ++- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/htdocs/core/class/discount.class.php b/htdocs/core/class/discount.class.php index bf00f5bc91a..df25a619e9e 100644 --- a/htdocs/core/class/discount.class.php +++ b/htdocs/core/class/discount.class.php @@ -91,13 +91,15 @@ class DiscountAbsolute public $fk_facture; /** - * @var int ID credit note having caused the discount + * @var int ID credit note or deposit used to create the discount */ public $fk_facture_source; + public $ref_facture_source; // Ref credit note or deposit used to create the discount + public $type_facture_source; - public $ref_facture_source; // Ref credit note having caused the discount - - public $ref_invoice_supplier_source; + public $fk_invoice_supplier_source; + public $ref_invoice_supplier_source; // Ref credit note or deposit used to create the discount + public $type_invoice_supplier_source; /** * Constructor @@ -135,11 +137,12 @@ class DiscountAbsolute $sql.= " sr.multicurrency_amount_ht, sr.multicurrency_amount_tva, sr.multicurrency_amount_ttc,"; $sql.= " sr.fk_facture_line, sr.fk_facture, sr.fk_facture_source, sr.fk_invoice_supplier_line, sr.fk_invoice_supplier, sr.fk_invoice_supplier_source, sr.description,"; $sql.= " sr.datec,"; - $sql.= " f.ref as ref_facture_source, fsup.ref as ref_invoice_supplier_source"; + $sql.= " f.ref as ref_facture_source, f.type as type_facture_source,"; + $sql.= " fsup.ref as ref_invoice_supplier_source, fsup.type as type_invoice_supplier_source"; $sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as sr"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON sr.fk_facture_source = f.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as fsup ON sr.fk_invoice_supplier_source = fsup.rowid"; - $sql.= " WHERE sr.entity IN (".getEntity('invoice').")"; + $sql.= " WHERE sr.entity IN (".getEntity('invoice').")"; if ($rowid) $sql.= " AND sr.rowid=".$rowid; if ($fk_facture_source) $sql.= " AND sr.fk_facture_source=".$fk_facture_source; if ($fk_invoice_supplier_source) $sql.= " AND sr.fk_invoice_supplier_source=".$fk_invoice_supplier_source; @@ -168,12 +171,14 @@ class DiscountAbsolute $this->fk_user = $obj->fk_user; $this->fk_facture_line = $obj->fk_facture_line; $this->fk_facture = $obj->fk_facture; - $this->fk_facture_source = $obj->fk_facture_source; // Id avoir source - $this->ref_facture_source = $obj->ref_facture_source; // Ref avoir source + $this->fk_facture_source = $obj->fk_facture_source; // Id credit note or deposit source + $this->ref_facture_source = $obj->ref_facture_source; // Ref credit note or deposit source + $this->type_facture_source = $obj->type_facture_source; // Type credit note or deposit source $this->fk_invoice_supplier_line = $obj->fk_invoice_supplier_line; $this->fk_invoice_supplier = $obj->fk_invoice_supplier; - $this->fk_invoice_supplier_source = $obj->fk_invoice_supplier_source; // Id avoir source - $this->ref_invoice_supplier_source = $obj->ref_invoice_supplier_source; // Ref avoir source + $this->fk_invoice_supplier_source = $obj->fk_invoice_supplier_source; // Id credit note or deposit source + $this->ref_invoice_supplier_source = $obj->ref_invoice_supplier_source; // Ref credit note or deposit source + $this->type_invoice_supplier_source = $obj->type_invoice_supplier_source; // Type credit note or deposit source $this->description = $obj->description; $this->datec = $this->db->jdate($obj->datec); @@ -689,7 +694,7 @@ class DiscountAbsolute if ($option == 'invoice') { $facid=! empty($this->discount_type)?$this->fk_invoice_supplier_source:$this->fk_facture_source; $link=! empty($this->discount_type)?'/fourn/facture/card.php':'/compta/facture/card.php'; - $label=$langs->trans("ShowDiscount").': '.$this->ref_facture_source; + $label=$langs->trans("ShowSourceInvoice").': '.$this->ref_facture_source; $link = ''; $linkend=''; $ref=! empty($this->discount_type)?$this->ref_invoice_supplier_source:$this->ref_facture_source; diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index ab4d9096df2..8e922506b23 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -281,7 +281,8 @@ AddGlobalDiscount=Create absolute discount EditGlobalDiscounts=Edit absolute discounts AddCreditNote=Create credit note ShowDiscount=Show discount -ShowReduc=Show the deduction +ShowReduc=Show the discount +ShowSourceInvoice=Show the source invoice RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note From e709c005a084ec7ac6d09b9185d48a6eecf7c430 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 12:28:48 +0200 Subject: [PATCH 849/944] FIX Payment was not saved on TakePOS module. --- htdocs/takepos/invoice.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php index 1f3d4a22563..2b8b0f21921 100644 --- a/htdocs/takepos/invoice.php +++ b/htdocs/takepos/invoice.php @@ -115,7 +115,7 @@ if ($action == 'valid' && $user->rights->facture->creer) $invoice = new Facture($db); $invoice->fetch($placeid); - if($invoice->total_ttc<0){ + if ($invoice->total_ttc < 0) { $invoice->type= $invoice::TYPE_CREDIT_NOTE; $sql="SELECT rowid FROM ".MAIN_DB_PREFIX."facture WHERE "; $sql.="fk_soc = '".$invoice->socid."' "; @@ -153,8 +153,10 @@ if ($action == 'valid' && $user->rights->facture->creer) $res = $invoice->validate($user); } + $remaintopay = $invoice->getRemainToPay(); + // Add the payment - if ($res > 0) { + if ($res >= 0 && $remaintopay > 0) { $payment = new Paiement($db); $payment->datepaye = $now; $payment->fk_account = $bankaccount; @@ -166,9 +168,9 @@ if ($action == 'valid' && $user->rights->facture->creer) $payment->create($user); $payment->addPaymentToBank($user, 'payment', '(CustomerInvoicePayment)', $bankaccount, '', ''); - $remaintopay = $invoice->getRemainToPay(); + $remaintopay = $invoice->getRemainToPay(); // Recalculate remain to pay after the payment is recorded if ($remaintopay == 0) { - dol_syslog("Invoice is paid, so we set it to pay"); + dol_syslog("Invoice is paid, so we set it to status Paid"); $result = $invoice->set_paid($user); if ($result > 0) $invoice->paye = 1; } else { From 1a419a6eb67bf9222f61d76dbc1b926861bdd2b8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 15:15:16 +0200 Subject: [PATCH 850/944] Fix translation --- htdocs/langs/en_US/bills.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 8e922506b23..ddef01b17c1 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -151,7 +151,7 @@ ErrorBillNotFound=Invoice %s does not exist ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s. ErrorDiscountAlreadyUsed=Error, discount already used ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount -ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount +ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have an amount excluding tax positive (or null) ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed. BillFrom=From From 5e12dcc6b14f51c2766aa9c8d2db63cbf64ea2a5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 15:40:02 +0200 Subject: [PATCH 851/944] Fix on FACTURE_ENABLE_NEGATIVE --- htdocs/compta/facture/card.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 1b6b4a50e01..cf5d3477527 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -278,8 +278,11 @@ if (empty($reshook)) $action = ''; } } else { - // Si non avoir, le signe doit etre positif - if (empty($conf->global->FACTURE_ENABLE_NEGATIVE) && $object->total_ht < 0) { + // If not a credit note, amount with tax must be positive or nul. + // Note that amount excluding tax can be negative because you can have a invoice of 100 with vat of 20 that + // consumes a credit note of 100 with vat 0 (total with tax is 0 but without tax is -20). + // For some cases, credit notes can have a vat of 0 (for example when selling goods in France). + if (empty($conf->global->FACTURE_ENABLE_NEGATIVE) && $object->total_ttc < 0) { setEventMessages($langs->trans("ErrorInvoiceOfThisTypeMustBePositive"), null, 'errors'); $action = ''; } From d388c0b0a3ed8f610394ec4684976027a00b6084 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 16:03:07 +0200 Subject: [PATCH 852/944] Doc --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index d4e1356b493..5093894d86b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -67,6 +67,8 @@ FIX: Update of leave request when CSRF with token is on FIX: Var not enough sanitized FIX: wrong test FIX: XSS +FIX: Can validate invoice with amount including tax of zero for the case of having a final invoice with + VAT that includes a deposit without vat. ***** ChangeLog for 10.0.2 compared to 10.0.1 ***** FIX: #10460 compatibility with MariaDB 10.4 From 3267c224ff1d99c16a68e4bd4fff73734e15ce55 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 16:03:56 +0200 Subject: [PATCH 853/944] doc --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5093894d86b..14838c1281d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,7 +5,7 @@ English Dolibarr ChangeLog ***** ChangeLog for 10.0.3 compared to 10.0.2 ***** IMPORTANT : This version fixes a serious bug in saving the units of weight, size, surface and volume on product card. The unit were not saved correctly in database making calculation on shipments wrong. -Update to this version must be done if you use them and have installed version 10.0.0, 10.0.1 or 10.0.2 and set some products after installing or upgrading to this version. +Update to this version must be done if you use them and have installed version 10.0.0, 10.0.1 or 10.0.2 and set some products after installing or upgrading to one of this version. Once update is done you must then edit (manually) the product that has bad unit to set the correct unit to have features restored. FIX: #11702 From ac46d2c9185df86b28fcddffb136c6375c22b77d Mon Sep 17 00:00:00 2001 From: Gildas Date: Thu, 17 Oct 2019 15:10:05 +0200 Subject: [PATCH 854/944] Fix filtering ticket bug (Fixes #12081) --- htdocs/ticket/list.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php index 2bfc1719360..a62120f6e55 100644 --- a/htdocs/ticket/list.php +++ b/htdocs/ticket/list.php @@ -524,15 +524,15 @@ foreach($object->fields as $key => $val) if (! empty($arrayfields['t.'.$key]['checked'])) { if ($key == 'type_code') { print ''; - $formTicket->selectTypesTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 0, 1, 1, 0, ($val['css']?$val['css']:'maxwidth150')); + $formTicket->selectTypesTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 2, 1, 1, 0, ($val['css']?$val['css']:'maxwidth150')); print ''; - $formTicket->selectGroupTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 0, 1, 1, 0, ($val['css']?$val['css']:'maxwidth150')); + $formTicket->selectGroupTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 2, 1, 1, 0, ($val['css']?$val['css']:'maxwidth150')); print ''; - $formTicket->selectSeveritiesTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 0, 1, 1, 0, ($val['css']?$val['css']:'maxwidth150')); + $formTicket->selectSeveritiesTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 2, 1, 1, 0, ($val['css']?$val['css']:'maxwidth150')); print ''; From eaffe4d1eb0eaec5f2ca0a8c1355261113f556c2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 20:13:10 +0200 Subject: [PATCH 855/944] doc --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 14838c1281d..d1c8b22d96f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -67,6 +67,7 @@ FIX: Update of leave request when CSRF with token is on FIX: Var not enough sanitized FIX: wrong test FIX: XSS +FIX: Payment from POS ware not recorded. FIX: Can validate invoice with amount including tax of zero for the case of having a final invoice with VAT that includes a deposit without vat. From d9abbfa46110e03b9f02318b08346191af2ed495 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 21:12:18 +0200 Subject: [PATCH 856/944] Add a message --- 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 fffd9be3636..274f1953d40 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -165,7 +165,7 @@ if (! defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck)) if ($csrfattack) { //print 'NOCSRFCHECK='.defined('NOCSRFCHECK').' REQUEST_METHOD='.$_SERVER['REQUEST_METHOD'].' HTTP_HOST='.$_SERVER['HTTP_HOST'].' HTTP_REFERER='.$_SERVER['HTTP_REFERER']; - print "Access refused by CSRF protection in main.inc.php. Referer of form is outside server that serve the POST.\n"; + print "Access refused by CSRF protection in main.inc.php. Referer of form (".$_SERVER['HTTP_REFERER'].") is outside server that serve the POST.\n"; print "If you access your server behind a proxy using url rewriting, you might check that all HTTP header is propagated (or add the line \$dolibarr_nocsrfcheck=1 into your conf.php file).\n"; die; } From 373d6d60e7bbf9c0a75df69d5a6c304526788280 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 17 Oct 2019 21:12:18 +0200 Subject: [PATCH 857/944] Add a message --- 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 a5d8df20cfc..3c0608c06e2 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -164,7 +164,7 @@ if (! defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck)) if ($csrfattack) { //print 'NOCSRFCHECK='.defined('NOCSRFCHECK').' REQUEST_METHOD='.$_SERVER['REQUEST_METHOD'].' HTTP_HOST='.$_SERVER['HTTP_HOST'].' HTTP_REFERER='.$_SERVER['HTTP_REFERER']; - print "Access refused by CSRF protection in main.inc.php. Referer of form is outside server that serve the POST.\n"; + print "Access refused by CSRF protection in main.inc.php. Referer of form (".$_SERVER['HTTP_REFERER'].") is outside server that serve the POST.\n"; print "If you access your server behind a proxy using url rewriting, you might check that all HTTP header is propagated (or add the line \$dolibarr_nocsrfcheck=1 into your conf.php file).\n"; die; } From d442134a51d7cbca93605d968ce2aaa18b7fb23c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Thu, 17 Oct 2019 21:15:34 +0200 Subject: [PATCH 858/944] fix cant add bookmark with csrf active --- htdocs/bookmarks/bookmarks.lib.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/bookmarks/bookmarks.lib.php b/htdocs/bookmarks/bookmarks.lib.php index 319c44c9d73..f49fd1f93a3 100644 --- a/htdocs/bookmarks/bookmarks.lib.php +++ b/htdocs/bookmarks/bookmarks.lib.php @@ -72,6 +72,7 @@ function printBookmarksList($aDb, $aLangs) $ret.= ''."\n"; $ret.= ''; + $ret.= ''; $ret.= '' . $facture_static->getNomUrl(1) . '' . dol_print_date($db->jdate($objp->datef), 'day') . '' . vatrate($objp->tva_tx.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')) . '' . $langs->trans("Country".$objp->country_code) .' ('.$objp->country_code.')'; + if ($objp->country_code) + { + print $langs->trans("Country".$objp->country_code) .' ('.$objp->country_code.')'; + } + print '' . $objp->tva_intra . '' . dol_print_date($db->jdate($objp->datef), 'day') . '' . vatrate($objp->tva_tx.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')) . '' . $langs->trans("Country".$objp->country_code) .' ('.$objp->country_code.')'; + if ($objp->country_code) + { + print $langs->trans("Country".$objp->country_code) .' ('.$objp->country_code.')'; + } + print '' . $objp->tva_intra . ''; $labelcountry=($objp->country_code && ($langs->trans("Country".$objp->country_code)!="Country".$objp->country_code))?$langs->trans("Country".$objp->country_code):$objp->country_label; print $labelcountry; diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index bc632118da7..f1bf4377f42 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -27,6 +27,7 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.facture.class.php'; // Load translation files required by the page @@ -63,6 +64,7 @@ $year_current = $year_start; // Validate History $action = GETPOST('action', 'aZ09'); +$chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'accounting_system', 'rowid', 'pcg_version'); /* @@ -100,7 +102,7 @@ if ($action == 'validatehistory') { $db->begin(); // Now make the binding. Bind automatically only for product with a dedicated account that exists into chart of account, others need a manual bind - if ($db->type == 'pgsql') { + /*if ($db->type == 'pgsql') { $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det"; $sql1 .= " SET fk_code_ventilation = accnt.rowid"; $sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; @@ -113,16 +115,85 @@ if ($action == 'validatehistory') { $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS.' AND accnt.entity = '.$conf->entity; $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number"; $sql1 .= " AND fd.fk_code_ventilation = 0"; - } + }*/ + + // Supplier Invoice Lines (must be same request than into page list.php for manual binding) + $sql = "SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.type as ftype,"; + $sql.= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,"; + $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.accountancy_code_buy as code_buy, p.tva_tx as tva_tx_prod,"; + $sql.= " aa.rowid as aarowid,"; + $sql.= " co.code as country_code, co.label as country_label,"; + $sql.= " s.tva_intra"; + $sql.= " FROM " . MAIN_DB_PREFIX . "facture_fourn as f"; + $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_country as co ON co.rowid = s.fk_pays "; + $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn_det as l ON f.rowid = l.fk_facture_fourn"; + $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product"; + $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_buy = aa.account_number AND aa.active = 1 AND aa.fk_pcg_version = '" . $chartaccountcode."' AND aa.entity = " . $conf->entity; + $sql.= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0"; + $sql.= " AND l.product_type <= 2"; dol_syslog('htdocs/accountancy/supplier/index.php'); - $resql1 = $db->query($sql1); - if (! $resql1) { - $error ++; - $db->rollback(); + $result = $db->query($sql); + if (! $result) { + $error++; setEventMessages($db->lasterror(), null, 'errors'); } else { + $num_lines = $db->num_rows($result); + + $isSellerInEEC = isInEEC($mysoc); + + $i = 0; + while ($i < min($num_lines, 10000)) { // No more than 10000 at once + $objp = $db->fetch_object($result); + + // Search suggested account for product/service + $suggestedaccountingaccountfor = ''; + if (($objp->country_code == $mysoc->country_code) || empty($objp->country_code)) { // If buyer in same country than seller (if not defined, we assume it is same country) + $objp->code_buy_p = $objp->code_buy; + $objp->aarowid_suggest = $objp->aarowid; + $suggestedaccountingaccountfor = ''; + } else { + if ($isSellerInEEC && $isBuyerInEEC) { // European intravat sale + //$objp->code_buy_p = $objp->code_buy_intra; + $objp->code_buy_p = $objp->code_buy; + //$objp->aarowid_suggest = $objp->aarowid_intra; + $objp->aarowid_suggest = $objp->aarowid; + $suggestedaccountingaccountfor = 'eec'; + } else { // Foreign sale + //$objp->code_buy_p = $objp->code_buy_export; + $objp->code_buy_p = $objp->code_buy; + //$objp->aarowid_suggest = $objp->aarowid_export; + $objp->aarowid_suggest = $objp->aarowid; + $suggestedaccountingaccountfor = 'export'; + } + } + + if ($objp->aarowid_suggest > 0) + { + $sqlupdate = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det"; + $sqlupdate.= " SET fk_code_ventilation = ".$objp->aarowid_suggest; + $sqlupdate.= " WHERE fk_code_ventilation <= 0 AND product_type <= 2 AND rowid = ".$objp->rowid; + + $resqlupdate = $db->query($sqlupdate); + if (! $resqlupdate) + { + $error++; + setEventMessages($db->lasterror(), null, 'errors'); + break; + } + } + + $i++; + } + } + + if ($error) + { + $db->rollback(); + } + else { $db->commit(); setEventMessages($langs->trans('AutomaticBindingDone'), null, 'mesgs'); } diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index d7bfdcc5db3..879b708d32e 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -224,7 +224,7 @@ $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_country as co ON co.rowid = s.fk_pays "; $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn_det as l ON f.rowid = l.fk_facture_fourn"; $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product"; -$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_buy = aa.account_number AND aa.fk_pcg_version = '" . $chartaccountcode."' AND aa.entity = " . $conf->entity; +$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_buy = aa.account_number AND aa.active = 1 AND aa.fk_pcg_version = '" . $chartaccountcode."' AND aa.entity = " . $conf->entity; $sql.= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0"; $sql.= " AND l.product_type <= 2"; // Add search filter like @@ -321,8 +321,8 @@ if ($result) { $arrayofselected=is_array($toselect)?$toselect:array(); $param=''; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; + if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); + if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); if ($search_lineid) $param.='&search_lineid='.urlencode($search_lineid); if ($search_day) $param.='&search_day='.urlencode($search_day); if ($search_month) $param.='&search_month='.urlencode($search_month); @@ -477,7 +477,7 @@ if ($result) { print '' . dol_print_date($db->jdate($objp->datef), 'day') . ''; if ($product_static->id > 0) print $product_static->getNomUrl(1); @@ -485,7 +485,7 @@ if ($result) { print ''; + print ''; $text = dolGetFirstLineOfText(dol_string_nohtmltag($objp->description)); $trunclength = empty($conf->global->ACCOUNTING_LENGTH_DESCRIPTION) ? 32 : $conf->global->ACCOUNTING_LENGTH_DESCRIPTION; print $form->textwithtooltip(dol_trunc($text, $trunclength), $objp->description); From 6205913056c059094b210bd9c9e3c92918e4fa97 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 22 Oct 2019 02:31:47 +0200 Subject: [PATCH 868/944] FIX CVE-2019-17578 CVE-2019-17577 CVE-2019-17576 --- htdocs/admin/mails.php | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index 997b0e97bdb..dd67b138da5 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -65,27 +65,27 @@ complete_substitutions_array($substitutionarrayfortest, $langs); if ($action == 'update' && empty($_POST["cancel"])) { - dolibarr_set_const($db, "MAIN_DISABLE_ALL_MAILS", GETPOST("MAIN_DISABLE_ALL_MAILS"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_FORCE_SENDTO", GETPOST("MAIN_MAIL_FORCE_SENDTO"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_ENABLED_USER_DEST_SELECT", GETPOST("MAIN_MAIL_ENABLED_USER_DEST_SELECT"), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_DISABLE_ALL_MAILS", GETPOST("MAIN_DISABLE_ALL_MAILS", 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_FORCE_SENDTO", GETPOST("MAIN_MAIL_FORCE_SENDTO", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_ENABLED_USER_DEST_SELECT", GETPOST("MAIN_MAIL_ENABLED_USER_DEST_SELECT", 'int'), 'chaine', 0, '', $conf->entity); // Send mode parameters - dolibarr_set_const($db, "MAIN_MAIL_SENDMODE", GETPOST("MAIN_MAIL_SENDMODE"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT", GETPOST("MAIN_MAIL_SMTP_PORT"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER", GETPOST("MAIN_MAIL_SMTP_SERVER"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID", GETPOST("MAIN_MAIL_SMTPS_ID"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW", GETPOST("MAIN_MAIL_SMTPS_PW"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS", GETPOST("MAIN_MAIL_EMAIL_TLS"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS", GETPOST("MAIN_MAIL_EMAIL_STARTTLS"), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_SENDMODE", GETPOST("MAIN_MAIL_SENDMODE", 'aZ09'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT", GETPOST("MAIN_MAIL_SMTP_PORT", 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER", GETPOST("MAIN_MAIL_SMTP_SERVER", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID", GETPOST("MAIN_MAIL_SMTPS_ID", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW", GETPOST("MAIN_MAIL_SMTPS_PW", 'none'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS", GETPOST("MAIN_MAIL_EMAIL_TLS", 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS", GETPOST("MAIN_MAIL_EMAIL_STARTTLS", 'int'), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_ENABLED", GETPOST("MAIN_MAIL_EMAIL_DKIM_ENABLED"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_DOMAIN", GETPOST("MAIN_MAIL_EMAIL_DKIM_DOMAIN"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_SELECTOR", GETPOST("MAIN_MAIL_EMAIL_DKIM_SELECTOR"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY", GETPOST("MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY"), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_ENABLED", GETPOST("MAIN_MAIL_EMAIL_DKIM_ENABLED", 'int'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_DOMAIN", GETPOST("MAIN_MAIL_EMAIL_DKIM_DOMAIN", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_SELECTOR", GETPOST("MAIN_MAIL_EMAIL_DKIM_SELECTOR", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY", GETPOST("MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY", 'alphanohtml'), 'chaine', 0, '', $conf->entity); // Content parameters - dolibarr_set_const($db, "MAIN_MAIL_EMAIL_FROM", GETPOST("MAIN_MAIL_EMAIL_FROM"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_ERRORS_TO", GETPOST("MAIN_MAIL_ERRORS_TO"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, "MAIN_MAIL_AUTOCOPY_TO", GETPOST("MAIN_MAIL_AUTOCOPY_TO"), 'chaine', 0, '', $conf->entity); - dolibarr_set_const($db, 'MAIN_MAIL_DEFAULT_FROMTYPE', GETPOST('MAIN_MAIL_DEFAULT_FROMTYPE'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_EMAIL_FROM", GETPOST("MAIN_MAIL_EMAIL_FROM", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_ERRORS_TO", GETPOST("MAIN_MAIL_ERRORS_TO", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, "MAIN_MAIL_AUTOCOPY_TO", GETPOST("MAIN_MAIL_AUTOCOPY_TO", 'alphanohtml'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, 'MAIN_MAIL_DEFAULT_FROMTYPE', GETPOST('MAIN_MAIL_DEFAULT_FROMTYPE', 'alphanohtml'), 'chaine', 0, '', $conf->entity); header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); exit; @@ -101,8 +101,8 @@ $mode='emailfortest'; $trackid=(($action == 'testhtml')?"testhtml":"test"); include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; -if ($action == 'presend' && GETPOST('trackid') == 'test') $action='test'; -if ($action == 'presend' && GETPOST('trackid') == 'testhtml') $action='testhtml'; +if ($action == 'presend' && GETPOST('trackid', 'alphanohtml') == 'test') $action='test'; +if ($action == 'presend' && GETPOST('trackid', 'alphanohtml') == 'testhtml') $action='testhtml'; @@ -823,7 +823,7 @@ else $formmail->frommail = (isset($_POST['frommail'])?$_POST['frommail']:$conf->global->MAIN_MAIL_EMAIL_FROM); $formmail->fromid=$user->id; $formmail->fromalsorobot=1; - $formmail->fromtype=(GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user')); + $formmail->fromtype=(GETPOSTISSET('fromtype')?GETPOST('fromtype', 'aZ09'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user')); $formmail->withfromreadonly=1; $formmail->withsubstit=1; $formmail->withfrom=1; @@ -849,7 +849,7 @@ else $formmail->param["returnurl"]=$_SERVER["PHP_SELF"]; // Init list of files - if (GETPOST("mode")=='init') + if (GETPOST("mode", "aZ09")=='init') { $formmail->clear_attached_files(); } From 2fb521667c3b2b3418f641595047c466ec093fed Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 22 Oct 2019 02:42:08 +0200 Subject: [PATCH 869/944] Doc --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index f2add251e28..c430b258cda 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,7 @@ FIX: #12041 FIX: #12054 FIX: #12083 FIX: #12088 +FIX: CVE-2019-17578 CVE-2019-17577 CVE-2019-17576 FIX: Clean the + of categories on the product view only in POS module FIX: access to public interface when origin email has an alias. FIX: Alias name is not into the email recipient label. From 84c8b6b5d1f6a9871ec79c610728807c9d1197f7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 22 Oct 2019 15:21:41 +0200 Subject: [PATCH 870/944] FIX #12198 --- htdocs/contact/card.php | 49 ++++++++++++++++++- htdocs/contact/class/contact.class.php | 8 +-- .../public/emailing/mailing-unsubscribe.php | 2 +- 3 files changed, 54 insertions(+), 5 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index 76d0e3911b5..aaf1cd0a2b9 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2015 Laurent Destailleur + * Copyright (C) 2004-2019 Laurent Destailleur * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2017 Regis Houssin * Copyright (C) 2007 Franky Van Liedekerke @@ -191,6 +191,7 @@ if (empty($reshook)) $object->facebook = GETPOST("facebook", 'alpha'); $object->linkedin = GETPOST("linkedin", 'alpha'); $object->email = GETPOST("email", 'alpha'); + $object->no_email = GETPOST("no_email", "int"); $object->phone_pro = GETPOST("phone_pro", 'alpha'); $object->phone_perso = GETPOST("phone_perso", 'alpha'); $object->phone_mobile = GETPOST("phone_mobile", 'alpha'); @@ -230,6 +231,22 @@ if (empty($reshook)) // Categories association $contcats = GETPOST('contcats', 'array'); $object->setCategories($contcats); + + // Add mass emailing flag into table mailing_unsubscribe + if (GETPOST('no_email', 'int') && $object->email) + { + $sql="SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE entity IN (".getEntity('mailing', 0).") AND email = '".$db->escape($object->email)."'"; + $resql=$db->query($sql); + if ($resql) + { + $obj=$db->fetch_object($resql); + if (empty($obj->nb)) + { + $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_unsubscribe(email, entity, date_creat) VALUES ('".$db->escape($object->email)."', ".$db->escape(getEntity('mailing', 0)).", '".$db->idate(dol_now())."')"; + $resql=$db->query($sql); + } + } + } } } @@ -359,6 +376,7 @@ if (empty($reshook)) $object->country_id = GETPOST("country_id", 'int'); $object->email = GETPOST("email", 'alpha'); + $object->no_email = GETPOST("no_email", "int"); $object->skype = GETPOST("skype", 'alpha'); $object->twitter = GETPOST("twitter", 'alpha'); $object->facebook = GETPOST("facebook", 'alpha'); @@ -385,6 +403,35 @@ if (empty($reshook)) $categories = GETPOST('contcats', 'array'); $object->setCategories($categories); + $no_email = GETPOST('no_email', 'int'); + + // Update mass emailing flag into table mailing_unsubscribe + if (GETPOSTISSET('no_email') && $object->email) + { + if ($no_email) + { + $sql="SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE entity IN (".getEntity('mailing', 0).") AND email = '".$db->escape($object->email)."'"; + $resql=$db->query($sql); + if ($resql) + { + $obj=$db->fetch_object($resql); + $noemail = $obj->nb; + if (empty($noemail)) + { + $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_unsubscribe(email, entity, date_creat) VALUES ('".$db->escape($object->email)."', ".$db->escape(getEntity('mailing', 0)).", '".$db->idate(dol_now())."')"; + $resql=$db->query($sql); + } + } + } + else + { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE email = '".$db->escape($object->email)."' AND entity = ".$db->escape(getEntity('mailing', 0)); + $resql=$db->query($sql); + } + + $object->no_email = $no_email; + } + $object->old_lastname=''; $object->old_firstname=''; $action = 'view'; diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 18da6bf476d..eb25d0ad712 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -79,7 +79,7 @@ class Contact extends CommonObject 'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'index'=>1, 'position'=>1000), ); - public $civility_id; // In fact we store civility_code + public $civility_id; // In fact we store civility_code public $civility_code; public $civility; public $address; @@ -87,16 +87,17 @@ class Contact extends CommonObject public $town; public $state_id; // Id of department - public $state_code; // Code of department + public $state_code; // Code of department public $state; // Label of department public $poste; // Position public $socid; // fk_soc - public $statut; // 0=inactif, 1=actif + public $statut; // 0=inactif, 1=actif public $code; public $email; + public $no_email; // 1 = contact has globaly unsubscribe of all mass emailings public $skype; public $photo; public $jabberid; @@ -383,6 +384,7 @@ class Contact extends CommonObject if (! $error && $this->user_id > 0) { + // If contact is linked to a user $tmpobj = new User($this->db); $tmpobj->fetch($this->user_id); $usermustbemodified = 0; diff --git a/htdocs/public/emailing/mailing-unsubscribe.php b/htdocs/public/emailing/mailing-unsubscribe.php index a66281f7687..ce06237ee03 100644 --- a/htdocs/public/emailing/mailing-unsubscribe.php +++ b/htdocs/public/emailing/mailing-unsubscribe.php @@ -115,7 +115,7 @@ if (! empty($tag) && ($unsuscrib=='1')) */ // Update status communication of email (new usage) - $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_unsubscribe (date_creat, entity, email) VALUES ('".$db->idate(dol_now())."', ".$obj->entity.", '".$obj->email."')"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_unsubscribe (date_creat, entity, email) VALUES ('".$db->idate(dol_now())."', ".$db->escape($obj->entity).", '".$db->escape($obj->email)."')"; $resql=$db->query($sql); //if (! $resql) dol_print_error($db); No test on errors, may fail if already unsubscribed From 44ced0cbeb95f2a934c85569906931e261ec5bee Mon Sep 17 00:00:00 2001 From: gauthier Date: Tue, 22 Oct 2019 16:11:59 +0200 Subject: [PATCH 871/944] FIX : if we search something with global search, and after with form fields, we want to stay on Products AND Services list --- htdocs/product/list.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 43188c5fe7c..6e870c05740 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -450,6 +450,7 @@ if ($resql) if($type == Product::TYPE_SERVICE) $rightskey='service'; if($user->rights->{$rightskey}->creer) { + $oldtype=$type; if ($type === "") { $newcardbutton.= dolGetButtonTitle($langs->trans('NewProduct'), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/card.php?action=create&type=0'); $type = Product::TYPE_SERVICE; @@ -457,6 +458,7 @@ if ($resql) $label='NewProduct'; if($type == Product::TYPE_SERVICE) $label='NewService'; $newcardbutton.= dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/product/card.php?action=create&type='.$type); + $type=$oldtype; } print ''; From c4be61c55cf506feb39021abb09561fdf1ced3d5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 22 Oct 2019 18:36:36 +0200 Subject: [PATCH 872/944] FIX Better compatible fix for the trouble of weight / size units Conflicts: htdocs/core/class/html.form.class.php htdocs/product/card.php --- .../core/class/commondocgenerator.class.php | 18 ++++++++-------- htdocs/core/class/commonobject.class.php | 21 ++++++++++--------- htdocs/core/class/cunits.class.php | 4 ++-- htdocs/core/lib/functions.lib.php | 2 +- htdocs/core/lib/product.lib.php | 20 ++++++++++++++++-- .../expedition/doc/pdf_espadon.modules.php | 4 ++-- .../expedition/doc/pdf_rouget.modules.php | 4 ++-- .../reception/doc/pdf_squille.modules.php | 4 ++-- htdocs/expedition/card.php | 21 +++++++------------ .../product/actions_card_product.class.php | 8 +++---- htdocs/product/card.php | 8 +++---- .../product/class/html.formproduct.class.php | 2 +- htdocs/product/class/product.class.php | 12 +++++------ htdocs/reception/card.php | 18 +++++++--------- htdocs/variants/combinations.php | 4 ++-- htdocs/variants/generator.php | 2 +- 16 files changed, 80 insertions(+), 72 deletions(-) diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 1df572c8a35..5eb833dc262 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -643,11 +643,11 @@ abstract class CommonDocGenerator $array_key.'_tracking_number'=>$object->tracking_number, $array_key.'_tracking_url'=>$object->tracking_url, $array_key.'_shipping_method'=>$object->listmeths[0]['libelle'], - $array_key.'_weight'=>$object->trueWeight.' '.measuring_units_string($object->weight_units, 'weight'), - $array_key.'_width'=>$object->trueWidth.' '.measuring_units_string($object->width_units, 'size'), - $array_key.'_height'=>$object->trueHeight.' '.measuring_units_string($object->height_units, 'size'), - $array_key.'_depth'=>$object->trueDepth.' '.measuring_units_string($object->depth_units, 'size'), - $array_key.'_size'=>$calculatedVolume.' '.measuring_units_string(0, 'volume'), + $array_key.'_weight'=>$object->trueWeight.' '.measuringUnitString(0, 'weight', $object->weight_units), + $array_key.'_width'=>$object->trueWidth.' '.measuringUnitString(0, 'size', $object->width_units), + $array_key.'_height'=>$object->trueHeight.' '.measuringUnitString(0, 'size', $object->height_units), + $array_key.'_depth'=>$object->trueDepth.' '.measuringUnitString(0, 'size', $object->depth_units), + $array_key.'_size'=>$calculatedVolume.' '.measuringUnitString(0, 'volume'), ); // Add vat by rates @@ -701,10 +701,10 @@ abstract class CommonDocGenerator 'line_price_ht'=>price($line->total_ht), 'line_price_ttc'=>price($line->total_ttc), 'line_price_vat'=>price($line->total_tva), - 'line_weight'=>empty($line->weight) ? '' : $line->weight*$line->qty_shipped.' '.measuring_units_string($line->weight_units, 'weight'), - 'line_length'=>empty($line->length) ? '' : $line->length*$line->qty_shipped.' '.measuring_units_string($line->length_units, 'size'), - 'line_surface'=>empty($line->surface) ? '' : $line->surface*$line->qty_shipped.' '.measuring_units_string($line->surface_units, 'surface'), - 'line_volume'=>empty($line->volume) ? '' : $line->volume*$line->qty_shipped.' '.measuring_units_string($line->volume_units, 'volume'), + 'line_weight'=>empty($line->weight) ? '' : $line->weight*$line->qty_shipped.' '.measuringUnitString(0, 'weight', $line->weight_units), + 'line_length'=>empty($line->length) ? '' : $line->length*$line->qty_shipped.' '.measuringUnitString(0, 'size', $line->length_units), + 'line_surface'=>empty($line->surface) ? '' : $line->surface*$line->qty_shipped.' '.measuringUnitString(0, 'surface', $line->surface_units), + 'line_volume'=>empty($line->volume) ? '' : $line->volume*$line->qty_shipped.' '.measuringUnitString(0, 'volume', $line->volume_units), ); // Retrieve extrafields diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 3f8037fc04c..0d53fa0bf79 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -3699,17 +3699,18 @@ abstract class CommonObject $totalWeight += $weight * $qty * $trueWeightUnit; } else { - if ($weight_units == 99) { - // conversion 1 Pound = 0.45359237 KG - $trueWeightUnit = 0.45359237; - $totalWeight += $weight * $qty * $trueWeightUnit; - } elseif ($weight_units == 98) { - // conversion 1 Ounce = 0.0283495 KG - $trueWeightUnit = 0.0283495; - $totalWeight += $weight * $qty * $trueWeightUnit; - } - else + if ($weight_units == 99) { + // conversion 1 Pound = 0.45359237 KG + $trueWeightUnit = 0.45359237; + $totalWeight += $weight * $qty * $trueWeightUnit; + } elseif ($weight_units == 98) { + // conversion 1 Ounce = 0.0283495 KG + $trueWeightUnit = 0.0283495; + $totalWeight += $weight * $qty * $trueWeightUnit; + } + else { $totalWeight += $weight * $qty; // This may be wrong if we mix different units + } } if ($volume_units < 50) // >50 means a standard unit (power of 10 of official unit), > 50 means an exotic unit (like inch) { diff --git a/htdocs/core/class/cunits.class.php b/htdocs/core/class/cunits.class.php index cba2a3c1e5d..6fc55386b47 100644 --- a/htdocs/core/class/cunits.class.php +++ b/htdocs/core/class/cunits.class.php @@ -244,8 +244,8 @@ class CUnits // extends CommonObject $sqlwhere = array(); if (count($filter) > 0) { foreach ($filter as $key => $value) { - if ($key=='t.rowid' || $key=='t.active') { - $sqlwhere[] = $key . '='. $value; + if ($key=='t.rowid' || $key=='t.active' || $key=='t.scale') { + $sqlwhere[] = $key . '='. (int) $value; } elseif (strpos($key, 'date') !== false) { $sqlwhere[] = $key.' = \''.$this->db->idate($value).'\''; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 22c3bdb6785..9d926b3bc98 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4569,7 +4569,7 @@ function showDimensionInBestUnit($dimension, $unit, $type, $outputlangs, $round $unit = $forceunitoutput; }*/ - $ret=price($dimension, 0, $outputlangs, 0, 0, $round).' '.measuring_units_string(0, $type, $unit); + $ret=price($dimension, 0, $outputlangs, 0, 0, $round).' '.measuringUnitString(0, $type, $unit); return $ret; } diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index 404e33f1404..6701a82b31b 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -480,6 +480,22 @@ function show_stats_for_company($product, $socid) return $nblines++; } +/** + * Return translation label of a unit key. + * Function kept for backward compatibility. + * + * @param string $scale Scale of unit: '0', '-3', '6', ... + * @param string $measuring_style Style of unit: weight, volume,... + * @param int $unit ID of unit (rowid in llx_c_units table) + * @param int $use_short_label 1=Use short label ('g' instead of 'gram'). Short labels are not translated. + * @return string Unit string + * @see measuringUnitString() formproduct->selectMeasuringUnits() + */ +function measuring_units_string($scale = '', $measuring_style = '', $unit = 0, $use_short_label = 0) +{ + return measuringUnitString($unit, $measuring_style, $scale, $use_short_label); +} + /** * Return translation label of a unit key * @@ -488,9 +504,9 @@ function show_stats_for_company($product, $socid) * @param string $scale Scale of unit: '0', '-3', '6', ... * @param int $use_short_label 1=Use short label ('g' instead of 'gram'). Short labels are not translated. * @return string Unit string - * @see formproduct->selectMeasuringUnits + * @see formproduct->selectMeasuringUnits() */ -function measuring_units_string($unit, $measuring_style = '', $scale = '', $use_short_label = 0) +function measuringUnitString($unit, $measuring_style = '', $scale = '', $use_short_label = 0) { global $langs, $db; require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php index eef7f6bba3a..efbf1fd06aa 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -509,12 +509,12 @@ class pdf_espadon extends ModelePdfExpedition $weighttxt=''; if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->weight) { - $weighttxt=round($object->lines[$i]->weight * $object->lines[$i]->qty_shipped, 5).' '.measuring_units_string($object->lines[$i]->weight_units, "weight"); + $weighttxt=round($object->lines[$i]->weight * $object->lines[$i]->qty_shipped, 5).' '.measuringUnitString(0, "weight", $object->lines[$i]->weight_units); } $voltxt=''; if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->volume) { - $voltxt=round($object->lines[$i]->volume * $object->lines[$i]->qty_shipped, 5).' '.measuring_units_string($object->lines[$i]->volume_units?$object->lines[$i]->volume_units:0, "volume"); + $voltxt=round($object->lines[$i]->volume * $object->lines[$i]->qty_shipped, 5).' '.measuringUnitString(0, "volume", $object->lines[$i]->volume_units?$object->lines[$i]->volume_units:0); } diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index 89686ef2d27..59a3cc46f67 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -525,12 +525,12 @@ class pdf_rouget extends ModelePdfExpedition $weighttxt=''; if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->weight) { - $weighttxt=round($object->lines[$i]->weight * $object->lines[$i]->qty_shipped, 5).' '.measuring_units_string($object->lines[$i]->weight_units, "weight"); + $weighttxt=round($object->lines[$i]->weight * $object->lines[$i]->qty_shipped, 5).' '.measuringUnitString(0, "weight", $object->lines[$i]->weight_units); } $voltxt=''; if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->volume) { - $voltxt=round($object->lines[$i]->volume * $object->lines[$i]->qty_shipped, 5).' '.measuring_units_string($object->lines[$i]->volume_units?$object->lines[$i]->volume_units:0, "volume"); + $voltxt=round($object->lines[$i]->volume * $object->lines[$i]->qty_shipped, 5).' '.measuringUnitString(0, "volume", $object->lines[$i]->volume_units?$object->lines[$i]->volume_units:0); } if (empty($conf->global->SHIPPING_PDF_HIDE_WEIGHT_AND_VOLUME)) diff --git a/htdocs/core/modules/reception/doc/pdf_squille.modules.php b/htdocs/core/modules/reception/doc/pdf_squille.modules.php index ca167e10644..6702b6f1320 100644 --- a/htdocs/core/modules/reception/doc/pdf_squille.modules.php +++ b/htdocs/core/modules/reception/doc/pdf_squille.modules.php @@ -451,12 +451,12 @@ class pdf_squille extends ModelePdfReception $weighttxt=''; if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->product->weight) { - $weighttxt=round($object->lines[$i]->product->weight * $object->lines[$i]->qty, 5).' '.measuring_units_string($object->lines[$i]->product->weight_units, "weight"); + $weighttxt=round($object->lines[$i]->product->weight * $object->lines[$i]->qty, 5).' '.measuringUnitString(0, "weight", $object->lines[$i]->product->weight_units); } $voltxt=''; if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->product->volume) { - $voltxt=round($object->lines[$i]->product->volume * $object->lines[$i]->qty, 5).' '.measuring_units_string($object->lines[$i]->product->volume_units?$object->lines[$i]->product->volume_units:0, "volume"); + $voltxt=round($object->lines[$i]->product->volume * $object->lines[$i]->qty, 5).' '.measuringUnitString(0, "volume", $object->lines[$i]->product->volume_units?$object->lines[$i]->product->volume_units:0); } $pdf->writeHTMLCell($this->posxqtyordered - $this->posxweightvol + 2, 3, $this->posxweightvol - 1, $curY, $weighttxt.(($weighttxt && $voltxt)?'
':'').$voltxt, 0, 0, false, true, 'C'); diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index d0f9b3d1c84..946e58587e9 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -1706,7 +1706,6 @@ elseif ($id || $ref) // Print form confirm print $formconfirm; - // Calculate totalWeight and totalVolume for all products // by adding weight and volume of each product line. $tmparray=$object->getTotalWeightVolume(); @@ -1849,16 +1848,14 @@ elseif ($id || $ref) else { print $object->trueWeight; - print ($object->trueWeight && $object->weight_units!='')?' '.measuring_units_string(0, "weight", $object->weight_units):''; + print ($object->trueWeight && $object->weight_units!='')?' '.measuringUnitString(0, "weight", $object->weight_units):''; } // Calculated if ($totalWeight > 0) { if (!empty($object->trueWeight)) print ' ('.$langs->trans("SumOfProductWeights").': '; - //print $totalWeight.' '.measuring_units_string(0, "weight"); print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND)?$conf->global->MAIN_WEIGHT_DEFAULT_ROUND:-1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?$conf->global->MAIN_WEIGHT_DEFAULT_UNIT:'no'); - //if (empty($object->trueWeight)) print ' ('.$langs->trans("Calculated").')'; if (!empty($object->trueWeight)) print ')'; } print '
'.$form->editfieldkey("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer).''; print $form->editfieldval("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->expedition->creer); - print ($object->trueWidth && $object->width_units!='')?' '.measuring_units_string(0, "size", $object->width_units):''; + print ($object->trueWidth && $object->width_units!='')?' '.measuringUnitString(0, "size", $object->width_units):''; print '
'.$form->editfieldkey("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer).''; print $form->editfieldval("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->expedition->creer); - print ($object->trueDepth && $object->depth_units!='')?' '.measuring_units_string(0, "size", $object->depth_units):''; + print ($object->trueDepth && $object->depth_units!='')?' '.measuringUnitString(0, "size", $object->depth_units):''; print '
'; - if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->weight*$lines[$i]->qty_shipped.' '.measuring_units_string(0, "weight", $lines[$i]->weight_units); + if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->weight*$lines[$i]->qty_shipped.' '.measuringUnitString(0, "weight", $lines[$i]->weight_units); else print ' '; print ''; - if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string(0, "volume", $lines[$i]->volume_units); + if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units); else print ' '; print ''.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units, "volume").''.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuringUnitString(0, "volume", $lines[$i]->volume_units).'
'.$langs->trans("Weight").''; if ($object->weight != '') { - print $object->weight." ".measuring_units_string(0, "weight", $object->weight_units); + print $object->weight." ".measuringUnitString(0, "weight", $object->weight_units); } else { @@ -1841,7 +1841,7 @@ else print $object->length; if ($object->width) print " x ".$object->width; if ($object->height) print " x ".$object->height; - print ' '.measuring_units_string(0, "size", $object->length_units); + print ' '.measuringUnitString(0, "size", $object->length_units); } else { @@ -1855,7 +1855,7 @@ else print '
'.$langs->trans("Surface").''; if ($object->surface != '') { - print $object->surface." ".measuring_units_string(0, "surface", $object->surface_units); + print $object->surface." ".measuringUnitString(0, "surface", $object->surface_units); } else { @@ -1869,7 +1869,7 @@ else print '
'.$langs->trans("Volume").''; if ($object->volume != '') { - print $object->volume." ".measuring_units_string(0, "volume", $object->volume_units); + print $object->volume." ".measuringUnitString(0, "volume", $object->volume_units); } else { diff --git a/htdocs/product/class/html.formproduct.class.php b/htdocs/product/class/html.formproduct.class.php index fa7ff98eae6..106d59a1456 100644 --- a/htdocs/product/class/html.formproduct.class.php +++ b/htdocs/product/class/html.formproduct.class.php @@ -302,7 +302,7 @@ class FormProduct /** * Return a combo box with list of units - * For the moment, units labels are defined in measuring_units_string + * Units labels are defined in llx_c_units * * @param string $name Name of HTML field * @param string $measuring_style Unit to show: weight, size, surface, volume, time diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 9224bf03a92..274ba0391ed 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -3985,22 +3985,22 @@ class Product extends CommonObject if ($this->type == Product::TYPE_PRODUCT) { if ($this->weight) { - $label.="
".$langs->trans("Weight").': '.$this->weight.' '.measuring_units_string($this->weight_units, "weight"); + $label.="
".$langs->trans("Weight").': '.$this->weight.' '.measuringUnitString(0, "weight", $this->weight_units); } if ($this->length) { - $label.="
".$langs->trans("Length").': '.$this->length.' '.measuring_units_string($this->length_units, 'size'); + $label.="
".$langs->trans("Length").': '.$this->length.' '.measuringUnitString(0, 'size', $this->length_units); } if ($this->width) { - $label.="
".$langs->trans("Width").': '.$this->width.' '.measuring_units_string($this->width_units, 'size'); + $label.="
".$langs->trans("Width").': '.$this->width.' '.measuringUnitString(0, 'size', $this->width_units); } if ($this->height) { - $label.="
".$langs->trans("Height").': '.$this->height.' '.measuring_units_string($this->height_units, 'size'); + $label.="
".$langs->trans("Height").': '.$this->height.' '.measuringUnitString(0, 'size', $this->height_units); } if ($this->surface) { - $label.="
".$langs->trans("Surface").': '.$this->surface.' '.measuring_units_string($this->surface_units, 'surface'); + $label.="
".$langs->trans("Surface").': '.$this->surface.' '.measuringUnitString(0, 'surface', $this->surface_units); } if ($this->volume) { - $label.="
".$langs->trans("Volume").': '.$this->volume.' '.measuring_units_string($this->volume_units, 'volume'); + $label.="
".$langs->trans("Volume").': '.$this->volume.' '.measuringUnitString(0, 'volume', $this->volume_units); } } diff --git a/htdocs/reception/card.php b/htdocs/reception/card.php index b9156b1837b..5ce7fbadd57 100644 --- a/htdocs/reception/card.php +++ b/htdocs/reception/card.php @@ -1455,16 +1455,14 @@ elseif ($id || $ref) else { print $object->trueWeight; - print ($object->trueWeight && $object->weight_units!='')?' '.measuring_units_string($object->weight_units, "weight"):''; + print ($object->trueWeight && $object->weight_units!='')?' '.measuringUnitString(0, "weight", $object->weight_units):''; } // Calculated if ($totalWeight > 0) { if (!empty($object->trueWeight)) print ' ('.$langs->trans("SumOfProductWeights").': '; - //print $totalWeight.' '.measuring_units_string(0,"weight"); print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND)?$conf->global->MAIN_WEIGHT_DEFAULT_ROUND:-1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?$conf->global->MAIN_WEIGHT_DEFAULT_UNIT:'no'); - //if (empty($object->trueWeight)) print ' ('.$langs->trans("Calculated").')'; if (!empty($object->trueWeight)) print ')'; } print '
'.$form->editfieldkey("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->reception->creer).''; print $form->editfieldval("Width", 'trueWidth', $object->trueWidth, $object, $user->rights->reception->creer); - print ($object->trueWidth && $object->width_units!='')?' '.measuring_units_string($object->width_units, "size"):''; + print ($object->trueWidth && $object->width_units!='')?' '.measuringUnitString(0, "size", $object->width_units):''; print '
'.$form->editfieldkey("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->reception->creer).''; print $form->editfieldval("Depth", 'trueDepth', $object->trueDepth, $object, $user->rights->reception->creer); - print ($object->trueDepth && $object->depth_units!='')?' '.measuring_units_string($object->depth_units, "size"):''; + print ($object->trueDepth && $object->depth_units!='')?' '.measuringUnitString(0, "size", $object->depth_units):''; print '
'; - if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->product->weight*$lines[$i]->qty.' '.measuring_units_string($lines[$i]->product->weight_units, "weight"); + if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->product->weight*$lines[$i]->qty.' '.measuringUnitString(0, "weight", $lines[$i]->product->weight_units); else print ' '; print ''; - if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->product->volume*$lines[$i]->qty.' '.measuring_units_string($lines[$i]->product->volume_units, "volume"); + if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->product->volume*$lines[$i]->qty.' '.measuringUnitString(0, "volume", $lines[$i]->product->volume_units); else print ' '; print '
'.$langs->trans("Weight").''; if ($object->weight != '') { - print $object->weight." ".measuring_units_string($object->weight_units, "weight"); + print $object->weight." ".measuringUnitString(0, "weight", $object->weight_units); } else { @@ -788,7 +788,7 @@ if (! empty($id) || ! empty($ref)) } ?> variation_price >= 0 ? '+' : '').price($currcomb->variation_price).($currcomb->variation_price_percentage ? ' %' : '') ?>'.($currcomb->variation_weight >= 0 ? '+' : '').price($currcomb->variation_weight).' '.measuring_units_string($prodstatic->weight_units, 'weight').''.($currcomb->variation_weight >= 0 ? '+' : '').price($currcomb->variation_weight).' '.measuringUnitString(0, 'weight', $prodstatic->weight_units).'getLibStatut(2, 0) ?> getLibStatut(2, 1) ?> diff --git a/htdocs/variants/generator.php b/htdocs/variants/generator.php index 39d32094fe4..17d9e129a0e 100644 --- a/htdocs/variants/generator.php +++ b/htdocs/variants/generator.php @@ -181,7 +181,7 @@ if (! empty($id) || ! empty($ref)) { '; } - $out.= ''; + $out.= ''; } else // In most cases, this is not used. We used instead function with no specific list of colors { diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 90cc0a142cb..34802a57a5d 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -788,12 +788,12 @@ if ($action == 'create' || $action == 'adduserldap') print ''; if (! empty($ldap_lastname)) { - print ''; + print ''; print $ldap_lastname; } else { - print ''; + print ''; } print '
'; if (! empty($ldap_firstname)) { - print ''; + print ''; print $ldap_firstname; } else { - print ''; + print ''; } print '
'; if (! empty($ldap_login)) { - print ''; + print ''; print $ldap_login; } elseif (! empty($ldap_loginsmb)) { - print ''; + print ''; print $ldap_loginsmb; } else { - print ''; + print ''; } print '
'.$langs->trans("Password").''; if (! empty($ldap_phone)) { - print ''; + print ''; print $ldap_phone; } else { - print ''; + print ''; } print '
'; if (! empty($ldap_mobile)) { - print ''; + print ''; print $ldap_mobile; } else { - print ''; + print ''; } print '
'; if (! empty($ldap_fax)) { - print ''; + print ''; print $ldap_fax; } else { - print ''; + print ''; } print '
'; if (! empty($ldap_mail)) { - print ''; + print ''; print $ldap_mail; } else { - print ''; + print ''; } print '
'.$langs->trans("AccountancyCode").''; - print ''; + print ''; print '
'.$langs->trans("ColorUser").''; - print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', null, 1, '', 'hideifnotset'); + print $formother->selectColor(GETPOSTISSET('color')?GETPOST('color', 'alphanohtml'):$object->color, 'color', null, 1, '', 'hideifnotset'); print '
'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor=new DolEditor('note', '', '', 120, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_3, '90%'); + $doleditor=new DolEditor('note', GETPOSTISSET('note')?GETPOST('note', 'none'):'', '', 120, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_3, '90%'); $doleditor->Create(); print "
'.$langs->trans("PostOrFunction").''; - print ''; + print ''; print '
'; - print ''; + print ''; print '
'; - print ''; + print ''; print '
'.$langs->trans("Salary").''; - print ''; + print ''; print '
'.$langs->trans("WeeklyHours").''; - print ''; + print ''; print '
'; if ($caneditfield) { - print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', null, 1, '', 'hideifnotset'); + print $formother->selectColor(GETPOSTISSET('color')?GETPOST('color', 'alphanohtml'):$object->color, 'color', null, 1, '', 'hideifnotset'); }else{ print $formother->showColor($object->color, ''); } From 7e52c70321fdd5270f7ae94419e8858b6ea50a30 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 14 Nov 2019 21:16:18 +0100 Subject: [PATCH 919/944] FIX Advisory ID: usd20190067 --- htdocs/core/lib/functions.lib.php | 6 ++++-- htdocs/fourn/class/fournisseur.product.class.php | 2 +- htdocs/product/fournisseurs.php | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 9d926b3bc98..071b7a3b794 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -5134,16 +5134,18 @@ function get_default_npr(Societe $thirdparty_seller, Societe $thirdparty_buyer, if ($idprodfournprice > 0) { - if (! class_exists('ProductFournisseur')) + if (! class_exists('ProductFournisseur')) { require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.product.class.php'; + } $prodprice = new ProductFournisseur($db); $prodprice->fetch_product_fournisseur_price($idprodfournprice); return $prodprice->fourn_tva_npr; } elseif ($idprod > 0) { - if (! class_exists('Product')) + if (! class_exists('Product')) { require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; + } $prod = new Product($db); $prod->fetch($idprod); return $prod->tva_npr; diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index faa681b0e88..786a650efb3 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -499,7 +499,7 @@ class ProductFournisseur extends Product $sql.= " pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code,"; $sql.=" pfp.barcode, pfp.fk_barcode_type"; $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp"; - $sql.= " WHERE pfp.rowid = ".$rowid; + $sql.= " WHERE pfp.rowid = ".(int) $rowid; dol_syslog(get_class($this)."::fetch_product_fournisseur_price", LOG_DEBUG); $resql = $this->db->query($sql); diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php index 560f5b1b574..0bda7d44564 100644 --- a/htdocs/product/fournisseurs.php +++ b/htdocs/product/fournisseurs.php @@ -254,8 +254,8 @@ if (empty($reshook)) { $supplier=new Fournisseur($db); $result=$supplier->fetch($id_fourn); - if (isset($_POST['ref_fourn_price_id'])) - $object->fetch_product_fournisseur_price($_POST['ref_fourn_price_id']); + if (GETPOSTISSET('ref_fourn_price_id')) + $object->fetch_product_fournisseur_price(GETPOST('ref_fourn_price_id', 'int')); $newprice = price2num(GETPOST("price", "alpha")); From 3937b45c5f18a8964299081538bcee7a406a8286 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sat, 16 Nov 2019 07:51:38 +0100 Subject: [PATCH 920/944] Core - Fix accountancy write social contribution in bookkeeping (Need for FEC format) --- htdocs/accountancy/journal/bankjournal.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index a532379c358..16996358425 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -632,7 +632,9 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; - $bookkeeping->label_compte = $objmid->labelc; + + $accountingaccount->fetch(null, $k, true); + $bookkeeping->label_compte = $accountingaccount->label; } elseif ($tabtype[$key] == 'payment_vat') { $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; From 79ee2b8c4d1816f1bbb77713c385d823880fb6a2 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 18 Nov 2019 11:48:44 +0100 Subject: [PATCH 921/944] Missing language key --- htdocs/langs/en_US/stocks.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index 17f914b7405..96e4a911d10 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -210,3 +210,4 @@ StockIncreaseAfterCorrectTransfer=Increase by correction/transfer StockDecreaseAfterCorrectTransfer=Decrease by correction/transfer StockIncrease=Stock increase StockDecrease=Stock decrease +StockIsRequiredToChooseWhichLotToUse=Stock is required to choose which lot to use From 99f93dbbf5894ee0ed8f8447069a976f13786e7a Mon Sep 17 00:00:00 2001 From: atm-greg Date: Mon, 18 Nov 2019 14:33:01 +0100 Subject: [PATCH 922/944] fix bad getpost --- htdocs/contact/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index cfe86fb3793..909dfd9e2e2 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -927,7 +927,7 @@ else // Civility print '
'; - print $formcompany->select_civility(GETPOSTISSET("civility_code")?GETPOST("civility", "aZ09"):$object->civility_code, 'civility_code'); + print $formcompany->select_civility(GETPOSTISSET("civility_code")?GETPOST("civility_code", "aZ09"):$object->civility_code, 'civility_code'); print '
'.$langs->trans("ActionOnContact").''; print '
'; - print $form->selectcontacts($object->socid, array_keys($object->socpeopleassigned), 'socpeopleassigned[]', 1, '', '', 0, 'quatrevingtpercent', false, 0, 0, array(), 'multiple', 'contactid'); + print $form->selectcontacts($object->socid, array_keys($object->socpeopleassigned), 'socpeopleassigned[]', 1, '', '', 1, 'quatrevingtpercent', false, 0, 0, array(), 'multiple', 'contactid'); print '
'; print '
'; $facturestatic->id=$obj->fk_facture_source; - $facturestatic->ref=$obj->ref; + $facturestatic->ref=$obj->invoice_source_ref; $facturestatic->type=$obj->type; print preg_replace('/\(CREDIT_NOTE\)/', $langs->trans("CreditNote"), $obj->description).' '.$facturestatic->getNomURl(1); print ''; $facturestatic->id=$obj->fk_facture_source; - $facturestatic->ref=$obj->ref; + $facturestatic->ref=$obj->invoice_source_ref; $facturestatic->type=$obj->type; print preg_replace('/\(DEPOSIT\)/', $langs->trans("InvoiceDeposit"), $obj->description).' '.$facturestatic->getNomURl(1); print ''; $facturestatic->id=$obj->fk_facture_source; - $facturestatic->ref=$obj->ref; + $facturestatic->ref=$obj->invoice_source_ref; $facturestatic->type=$obj->type; print preg_replace('/\(EXCESS RECEIVED\)/', $langs->trans("Invoice"), $obj->description).' '.$facturestatic->getNomURl(1); print ''.img_object($langs->trans("ShowBill"), 'bill').' '.$obj->ref.''; + if ($obj->invoiceid) + { + print ''.img_object($langs->trans("ShowBill"), 'bill').' '.$obj->ref.''; + } + print ''.price($obj->amount_ht).''; $facturefournstatic->id=$obj->fk_invoice_supplier_source; - $facturefournstatic->ref=$obj->ref; + $facturefournstatic->ref=$obj->invoice_source_ref; $facturefournstatic->type=$obj->type; print preg_replace('/\(CREDIT_NOTE\)/', $langs->trans("CreditNote"), $obj->description).' '.$facturefournstatic->getNomURl(1); print ''; $facturefournstatic->id=$obj->fk_invoice_supplier_source; - $facturefournstatic->ref=$obj->ref; + $facturefournstatic->ref=$obj->invoice_source_ref; $facturefournstatic->type=$obj->type; print preg_replace('/\(DEPOSIT\)/', $langs->trans("InvoiceDeposit"), $obj->description).' '.$facturefournstatic->getNomURl(1); print ''; $facturefournstatic->id=$obj->fk_invoice_supplier_source; - $facturefournstatic->ref=$obj->ref; + $facturefournstatic->ref=$obj->invoice_source_ref; $facturefournstatic->type=$obj->type; print preg_replace('/\(EXCESS PAID\)/', $langs->trans("Invoice"), $obj->description).' '.$facturefournstatic->getNomURl(1); print ''.img_object($langs->trans("ShowBill"), 'bill').' '.$obj->ref.''; + if ($obj->invoiceid) { + print ''.img_object($langs->trans("ShowBill"), 'bill').' '.$obj->ref.''; + } + print ''.price($obj->amount_ht).'
'; if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined From a4a805f618f7c440fdad24f55870f4def51b1bab Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 29 Nov 2019 11:32:22 +0100 Subject: [PATCH 942/944] Doxygen --- htdocs/product/class/product.class.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index ac987d49845..d00cba86e6a 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -4010,7 +4010,7 @@ class Product extends CommonObject if ($this->type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) { if (! empty($conf->productbatch->enabled)) { - $langs->load("productbatch"); + $langs->load("productbatch"); $label.="
".$langs->trans("ManageLotSerial").': '.$this->getLibStatut(0, 2); } } @@ -4361,12 +4361,12 @@ class Product extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps /** - * Load information about stock of a product into ->stock_reel, ->stock_warehouse[] (including stock_warehouse[idwarehouse]->detail_batch for batch products) - * This function need a lot of load. If you use it on list, use a cache to execute it once for each product id. - * If ENTREPOT_EXTRA_STATUS set, filtering on warehouse status possible. + * Load information about stock of a product into ->stock_reel, ->stock_warehouse[] (including stock_warehouse[idwarehouse]->detail_batch for batch products) + * This function need a lot of load. If you use it on list, use a cache to execute it once for each product id. + * If ENTREPOT_EXTRA_STATUS set, filtering on warehouse status possible. * - * @param string $option '' = Load all stock info, also from closed and internal warehouses, - * @return int < 0 if KO, > 0 if OK + * @param string $option '' = Load all stock info, also from closed and internal warehouses, 'nobatch', 'novirtual' + * @return int < 0 if KO, > 0 if OK * @see load_virtual_stock(), loadBatchInfo() */ public function load_stock($option = '') @@ -4396,7 +4396,8 @@ class Product extends CommonObject $sql.= " WHERE w.entity IN (".getEntity('stock').")"; $sql.= " AND w.rowid = ps.fk_entrepot"; $sql.= " AND ps.fk_product = ".$this->id; - if ($conf->global->ENTREPOT_EXTRA_STATUS && count($warehouseStatus)) { $sql.= " AND w.statut IN (".$this->db->escape(implode(',', $warehouseStatus)).")"; + if ($conf->global->ENTREPOT_EXTRA_STATUS && count($warehouseStatus)) { + $sql.= " AND w.statut IN (".$this->db->escape(implode(',', $warehouseStatus)).")"; } dol_syslog(get_class($this)."::load_stock", LOG_DEBUG); @@ -4411,7 +4412,8 @@ class Product extends CommonObject $this->stock_warehouse[$row->fk_entrepot] = new stdClass(); $this->stock_warehouse[$row->fk_entrepot]->real = $row->reel; $this->stock_warehouse[$row->fk_entrepot]->id = $row->rowid; - if ((! preg_match('/nobatch/', $option)) && $this->hasbatch()) { $this->stock_warehouse[$row->fk_entrepot]->detail_batch=Productbatch::findAll($this->db, $row->rowid, 1, $this->id); + if ((! preg_match('/nobatch/', $option)) && $this->hasbatch()) { + $this->stock_warehouse[$row->fk_entrepot]->detail_batch=Productbatch::findAll($this->db, $row->rowid, 1, $this->id); } $this->stock_reel+=$row->reel; $i++; From d480da5629bdd77cbe0244d899c06fbf1fc855d6 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Fri, 29 Nov 2019 23:43:42 +0100 Subject: [PATCH 943/944] =?UTF-8?q?Fix=20#12496=20:=20currency=20was=20?= =?UTF-8?q?=E2=82=AC=20in=20loan=20schedule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/loan/calcmens.php | 4 +-- htdocs/loan/schedule.php | 65 ++++++++++++++++++++++++++++++++-------- 2 files changed, 55 insertions(+), 14 deletions(-) diff --git a/htdocs/loan/calcmens.php b/htdocs/loan/calcmens.php index 7e3d1f83a8f..c741dfa13c9 100644 --- a/htdocs/loan/calcmens.php +++ b/htdocs/loan/calcmens.php @@ -44,7 +44,7 @@ $object = new LoanSchedule($db); $int = ($capital*($rate/12)); $int = round($int, 2, PHP_ROUND_HALF_UP); $cap_rest = round($capital - ($mens-$int), 2, PHP_ROUND_HALF_UP); -$output[$echance]=array('cap_rest'=>$cap_rest,'cap_rest_str'=>price($cap_rest),'interet'=>$int,'interet_str'=>price($int, 0, '', 1),'mens'=>$mens); +$output[$echance]=array('cap_rest'=>$cap_rest,'cap_rest_str'=>price($cap_rest, 0, '', 1, -1, -1, $conf->currency),'interet'=>$int,'interet_str'=>price($int, 0, '', 1, -1, -1, $conf->currency),'mens'=>$mens); $echance++; $capital=$cap_rest; @@ -56,7 +56,7 @@ while ($echance<=$nbterm) { $int = round($int, 2, PHP_ROUND_HALF_UP); $cap_rest = round($capital - ($mens-$int), 2, PHP_ROUND_HALF_UP); - $output[$echance]=array('cap_rest'=>$cap_rest,'cap_rest_str'=>price($cap_rest),'interet'=>$int,'interet_str'=>price($int, 0, '', 1),'mens'=>$mens); + $output[$echance]=array('cap_rest'=>$cap_rest,'cap_rest_str'=>price($cap_rest, 0, '', 1, -1, -1, $conf->currency),'interet'=>$int,'interet_str'=>price($int, 0, '', 1, -1, -1, $conf->currency),'mens'=>$mens); $capital=$cap_rest; $echance++; diff --git a/htdocs/loan/schedule.php b/htdocs/loan/schedule.php index 1c9cb9d8c3f..d4e7dec9feb 100644 --- a/htdocs/loan/schedule.php +++ b/htdocs/loan/schedule.php @@ -44,6 +44,47 @@ llxHeader("", $title, $help_url); $head=loan_prepare_head($object); dol_fiche_head($head, 'FinancialCommitment', $langs->trans("Loan"), -1, 'bill'); +$linkback = '' . $langs->trans("BackToList") . ''; + +$morehtmlref='
'; +// Ref loan +$morehtmlref.=$form->editfieldkey("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', 0, 1); +$morehtmlref.=$form->editfieldval("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', null, null, '', 1); +// Project +if (! empty($conf->projet->enabled)) +{ + $langs->loadLangs(array("projects")); + $morehtmlref.='
'.$langs->trans('Project') . ' '; + if ($user->rights->loan->write) + { + if ($action != 'classify') + $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
'; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
'; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref.=''; + $morehtmlref.=$proj->ref; + $morehtmlref.=''; + } else { + $morehtmlref.=''; + } + } +} +$morehtmlref.='
'; +dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright); + if ($action == 'createecheancier') { $i=1; @@ -128,9 +169,9 @@ $(document).ready(function() { var interet_res_str='#interets'+index; var men_res='#mens'+index; $(idcap_res).val(element.cap_rest); - $(idcap_res_srt).text(element.cap_rest_str+' €'); + $(idcap_res_srt).text(element.cap_rest_str); $(interet_res).val(element.interet); - $(interet_res_str).text(element.interet_str+' €'); + $(interet_res_str).text(element.interet_str); $(men_res).val(element.mens); }); } @@ -166,7 +207,7 @@ print '
'.$langs->trans("Insurance"); print ''.$langs->trans("InterestAmount").''.$langs->trans("Amount").''.$langs->trans("CapitalRemain"); -print ' ('.price2num($object->capital).')'; +print '
('.price($object->capital, 0, '', 1, -1, -1, $conf->currency).')'; print ''; print '
'.$langs->trans('DoPayment').'
' . $i .'' . dol_print_date(dol_time_plus_duree($object->datestart, $i-1, 'm'), 'day') . ''.price($insurance+(($i == 1) ? $regulInsurance : 0), 0, '', 1).' €'.price($int, 0, '', 1).' €'.price($cap_rest).' €'.price($insurance+(($i == 1) ? $regulInsurance : 0), 0, '', 1, -1, -1, $conf->currency).''.price($int, 0, '', 1, -1, -1, $conf->currency).''.price($cap_rest).'
' . $i .'' . dol_print_date($line->datep, 'day') . ''.price($insu, 0, '', 1).' €'.price($int, 0, '', 1).' €'.price($insu, 0, '', 1, -1, -1, $conf->currency).''.price($int, 0, '', 1, -1, -1, $conf->currency).'' . price($mens) . ' €' . price($mens, 0, '', 1, -1, -1, $conf->currency) . ''.price($cap_rest).' €'.price($cap_rest, 0, '', 1, -1, -1, $conf->currency).''; if (!empty($line->fk_bank)) print $langs->trans('Paid'); elseif (!$printed) From fe37983b06d61334f7946aaeb84c794217b577cb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 30 Nov 2019 12:02:05 +0100 Subject: [PATCH 944/944] Fix inversion of mime type and mime file name --- htdocs/adherents/subscription.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php index 7663fe6fba3..006edce6319 100644 --- a/htdocs/adherents/subscription.php +++ b/htdocs/adherents/subscription.php @@ -398,7 +398,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && ! $moreinheader='X-Dolibarr-Info: send_an_email by adherents/subscription.php'."\r\n"; - $result=$object->send_an_email($texttosend, $subjecttosend, $listofpaths, $listofnames, $listofmimes, "", "", 0, -1, '', $moreinheader); + $result=$object->send_an_email($texttosend, $subjecttosend, $listofpaths, $listofmimes, $listofnames, "", "", 0, -1, '', $moreinheader); if ($result < 0) { $errmsg=$object->error;