Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into develop

Conflicts:
	htdocs/langs/fr_FR/interventions.lang
This commit is contained in:
Laurent Destailleur 2021-07-12 12:01:53 +02:00
commit 7533c9e3a5
1156 changed files with 7957 additions and 8804 deletions

File diff suppressed because one or more lines are too long

View File

@ -99,14 +99,16 @@ print "<br>\n";
/**
* Edit parameters
*/
print "\n".'<script type="text/javascript" language="javascript">';
print '$(document).ready(function () {
if (!empty($conf->use_javascript_ajax)) {
print "\n".'<script type="text/javascript" language="javascript">';
print '$(document).ready(function () {
$("#selectcountry_id").change(function() {
document.form_index.action.value="updateedit";
document.form_index.submit();
});
});';
print '</script>'."\n";
print '</script>'."\n";
}
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'" name="form_index">';
print '<input type="hidden" name="token" value="'.newToken().'">';

View File

@ -384,21 +384,23 @@ print "<br>\n";
/**
* Edit parameters
*/
print "\n".'<script type="text/javascript" language="javascript">';
print '$(document).ready(function () {
if (!empty($conf->use_javascript_ajax)) {
print "\n".'<script type="text/javascript" language="javascript">';
print '$(document).ready(function () {
$("#selectcountry_id").change(function() {
document.form_index.action.value="updateedit";
document.form_index.submit();
});
});';
print '</script>'."\n";
print '</script>'."\n";
}
print '<form enctype="multipart/form-data" method="POST" action="'.$_SERVER["PHP_SELF"].'" name="form_index">';
print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="action" value="update">';
print '<table class="noborder centpercent editmode">';
print '<tr class="liste_titre"><th class="titlefield wordbreak">'.$langs->trans("CompanyInfo").'</th><th>'.$langs->trans("Value").'</th></tr>'."\n";
print '<tr class="liste_titre"><th class="titlefieldcreate wordbreak">'.$langs->trans("CompanyInfo").'</th><th>'.$langs->trans("Value").'</th></tr>'."\n";
// Name
print '<tr class="oddeven"><td class="fieldrequired wordbreak"><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
@ -557,7 +559,7 @@ print '<br>';
// IDs of the company (country-specific)
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder centpercent editmode">';
print '<tr class="liste_titre"><td class="titlefield wordbreak">'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
print '<tr class="liste_titre"><td class="titlefieldcreate wordbreak">'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
$langs->load("companies");
@ -668,7 +670,7 @@ print '</div>';
print '<br>';
print '<table class="noborder centpercent editmode">';
print '<tr class="liste_titre">';
print '<td class="titlefield">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
print '<td class="titlefieldcreate">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
print "</tr>\n";
print '<tr class="oddeven"><td><label for="SOCIETE_FISCAL_MONTH_START">'.$langs->trans("FiscalMonthStart").'</label></td><td>';
@ -683,12 +685,12 @@ print load_fiche_titre($langs->trans("TypeOfSaleTaxes"), '', 'object_payment');
print '<table class="noborder centpercent editmode">';
print '<tr class="liste_titre">';
print '<td width="25%">'.$langs->trans("VATManagement").'</td><td>'.$langs->trans("Description").'</td>';
print '<td class="titlefieldcreate">'.$langs->trans("VATManagement").'</td><td>'.$langs->trans("Description").'</td>';
print '<td class="right">&nbsp;</td>';
print "</tr>\n";
// Main tax
print '<tr class="oddeven"><td width="140"><label><input type="radio" name="optiontva" id="use_vat" value="1"'.(empty($conf->global->FACTURE_TVAOPTION) ? "" : " checked")."> ".$langs->trans("VATIsUsed")."</label></td>";
print '<tr class="oddeven"><td><label><input type="radio" name="optiontva" id="use_vat" value="1"'.(empty($conf->global->FACTURE_TVAOPTION) ? "" : " checked")."> ".$langs->trans("VATIsUsed")."</label></td>";
print '<td colspan="2">';
$tooltiphelp = '';
if ($mysoc->country_code == 'FR') {
@ -713,7 +715,7 @@ print "</table>";
print '<br>';
print '<table class="noborder centpercent editmode">';
print '<tr class="liste_titre">';
print '<td width="25%">'.$form->textwithpicto($langs->transcountry("LocalTax1Management", $mysoc->country_code), $langs->transcountry("LocalTax1IsUsedDesc", $mysoc->country_code)).'</td><td>'.$langs->trans("Description").'</td>';
print '<td class="titlefieldcreate">'.$form->textwithpicto($langs->transcountry("LocalTax1Management", $mysoc->country_code), $langs->transcountry("LocalTax1IsUsedDesc", $mysoc->country_code)).'</td><td>'.$langs->trans("Description").'</td>';
print '<td class="right">&nbsp;</td>';
print "</tr>\n";
@ -747,7 +749,7 @@ if ($mysoc->useLocalTax(1)) {
if (empty($mysoc->country_code)) {
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
} else {
print '<tr class="oddeven nohover"><td class="" colspan="3">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryVAT"), $langs->transnoentitiesnoconv("LocalTax1Management")).'</td></tr>';
print '<tr class="oddeven nohover"><td class="" colspan="3"><span class="opacitymedium">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryVAT"), $langs->transnoentitiesnoconv("LocalTax1Management")).'</span></td></tr>';
}
}
@ -757,7 +759,7 @@ print "</table>";
print '<br>';
print '<table class="noborder centpercent editmode">';
print '<tr class="liste_titre">';
print '<td width="25%">'.$form->textwithpicto($langs->transcountry("LocalTax2Management", $mysoc->country_code), $langs->transcountry("LocalTax2IsUsedDesc", $mysoc->country_code)).'</td><td>'.$langs->trans("Description").'</td>';
print '<td class="titlefieldcreate">'.$form->textwithpicto($langs->transcountry("LocalTax2Management", $mysoc->country_code), $langs->transcountry("LocalTax2IsUsedDesc", $mysoc->country_code)).'</td><td>'.$langs->trans("Description").'</td>';
print '<td class="right">&nbsp;</td>';
print "</tr>\n";
@ -790,7 +792,7 @@ if ($mysoc->useLocalTax(2)) {
if (empty($mysoc->country_code)) {
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
} else {
print '<tr class="oddeven nohover"><td class="" colspan="3">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryVAT"), $langs->transnoentitiesnoconv("LocalTax2Management")).'</td></tr>';
print '<tr class="oddeven nohover"><td class="" colspan="3"><span class="opacitymedium">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryVAT"), $langs->transnoentitiesnoconv("LocalTax2Management")).'</span></td></tr>';
}
}
@ -816,7 +818,7 @@ if ($mysoc->useRevenueStamp()) {
if (empty($mysoc->country_code)) {
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
} else {
print '<tr class="oddeven nohover"><td class="" colspan="3">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryRevenueStamp"), $langs->transnoentitiesnoconv("RevenueStamp")).'</td></tr>';
print '<tr class="oddeven nohover"><td class="" colspan="3"><span class="opacitymedium">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryRevenueStamp"), $langs->transnoentitiesnoconv("RevenueStamp")).'</span></td></tr>';
}
}

View File

@ -413,8 +413,8 @@ if ($action != 'create') {
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
*/
print '<table class="border centpercent tableforfield">';
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input type="text" name="label" value="'.GETPOST('label', 'alphanohtml').'"></td></tr>';
print '<tr><td>'.$langs->trans("Email").'</td><td><input type="text" name="email" value="'.GETPOST('email', 'alphanohtml').'"></td></tr>';
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input type="text" name="label" value="'.GETPOST('label', 'alphanohtml').'" autofocus></td></tr>';
print '<tr><td class="fieldrequired">'.$langs->trans("Email").'</td><td><input type="text" name="email" value="'.GETPOST('email', 'alphanohtml').'"></td></tr>';
print '<tr><td>'.$langs->trans("Signature").'</td><td>';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
$doleditor = new DolEditor('signature', GETPOST('signature'), '', 138, 'dolibarr_notes', 'In', true, true, empty($conf->global->FCKEDITOR_ENABLE_USERSIGN) ? 0 : 1, ROWS_4, '90%');

View File

@ -481,7 +481,9 @@ print load_fiche_titre($langs->trans("ModulesSetup"), '', 'title_setup');
$deschelp = '';
if ($mode == 'common' || $mode == 'commonkanban') {
$desc = $langs->trans("ModulesDesc", '{picto}');
$desc .= ' '.$langs->trans("ModulesDesc2", '{picto2}');
$desc = str_replace('{picto}', img_picto('', 'switch_off'), $desc);
$desc = str_replace('{picto2}', img_picto('', 'setup'), $desc);
if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING) ? 1 : $conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)) { // If only minimal initial modules enabled
$deschelp = '<div class="info hideonsmartphone">'.$desc."<br></div><br>\n";
}
@ -1247,7 +1249,13 @@ if ($mode == 'develop') {
print '<div class="imgmaxheight50 logo_setup"></div>';
print '</td>';
print '<td>'.$langs->trans("TryToUseTheModuleBuilder", $langs->transnoentitiesnoconv("ModuleBuilder")).'</td>';
print '<td>'.$langs->trans("SeeTopRightMenu").'</td>';
print '<td class="maxwidth300">';
if (!empty($conf->modulebuilder->enabled)) {
print $langs->trans("SeeTopRightMenu");
} else {
print '<span class="opacitymedium">'.$langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("ModuleBuilder")).'</span>';
}
print '</td>';
print '</tr>';
print '<tr class="oddeven" height="80">'."\n";

View File

@ -25,6 +25,8 @@
*/
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$langs->load("admin");
@ -35,6 +37,10 @@ if (!$user->admin) {
$action = GETPOST('action', 'aZ09');
/*
* Actions
*/
if ($action == 'convert') {
$sql = "ALTER TABLE ".$db->escape(GETPOST("table", "aZ09"))." ENGINE=INNODB";
$db->query($sql);
@ -82,6 +88,7 @@ if (!$base) {
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder">';
print '<tr class="liste_titre">';
print '<td>#</td>';
print '<td>'.$langs->trans("TableName").'</td>';
print '<td colspan="2">'.$langs->trans("Type").'</td>';
print '<td>'.$langs->trans("Format").'</td>';
@ -105,7 +112,18 @@ if (!$base) {
$obj = $db->fetch_object($resql);
print '<tr class="oddeven">';
print '<td><a href="dbtable.php?table='.$obj->Name.'">'.$obj->Name.'</a></td>';
print '<td>'.($i+1).'</td>';
print '<td><a href="dbtable.php?table='.$obj->Name.'">'.$obj->Name.'</a>';
$tablename = preg_replace('/^'.MAIN_DB_PREFIX.'/', 'llx_', $obj->Name);
if (dol_is_file(DOL_DOCUMENT_ROOT.'/install/mysql/tables/'.$tablename.'.sql')) {
$img = "info";
//print img_picto($langs->trans("ExternalModule"), $img);
} else {
$img = "info_black";
//print DOL_DOCUMENT_ROOT.'/install/mysql/tables/'.$tablename.'.sql';
print img_picto($langs->trans("ExternalModule"), $img, 'class="small"');
}
print '</td>';
print '<td>'.$obj->Engine.'</td>';
if (isset($obj->Engine) && $obj->Engine == "MyISAM") {
print '<td><a class="reposition" href="database-tables.php?action=convert&amp;table='.$obj->Name.'">'.$langs->trans("Convert").' InnoDb</a></td>';
@ -142,6 +160,8 @@ if (!$base) {
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder">';
print '<tr class="liste_titre">';
print '<td>#</td>';
print '<td>'.$langs->trans("TableName").'</td>';
print '<td>Nb of tuples</td>';
print '<td>Nb index fetcher.</td>';
@ -160,6 +180,7 @@ if (!$base) {
while ($i < $num) {
$row = $db->fetch_row($resql);
print '<tr class="oddeven">';
print '<td>'.($i+1).'</td>';
print '<td>'.$row[0].'</td>';
print '<td class="right">'.$row[1].'</td>';
print '<td class="right">'.$row[2].'</td>';
@ -179,6 +200,7 @@ if (!$base) {
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder">';
print '<tr class="liste_titre">';
print '<td>#</td>';
print '<td>'.$langs->trans("TableName").'</td>';
print '<td>'.$langs->trans("NbOfRecord").'</td>';
print "</tr>\n";
@ -197,6 +219,7 @@ if (!$base) {
}
print '<tr class="oddeven">';
print '<td>'.($i+1).'</td>';
print '<td>'.$row[0].'</td>';
print '<td>'.$count.'</td>';
print '</tr>';

View File

@ -79,7 +79,12 @@ $file_list = array('missing' => array(), 'updated' => array());
// Local file to compare to
$xmlshortfile = dol_sanitizeFileName(GETPOST('xmlshortfile', 'alpha') ? GETPOST('xmlshortfile', 'alpha') : 'filelist-'.DOL_VERSION.(empty($conf->global->MAIN_FILECHECK_LOCAL_SUFFIX) ? '' : $conf->global->MAIN_FILECHECK_LOCAL_SUFFIX).'.xml'.(empty($conf->global->MAIN_FILECHECK_LOCAL_EXT) ? '' : $conf->global->MAIN_FILECHECK_LOCAL_EXT));
$xmlfile = DOL_DOCUMENT_ROOT.'/install/'.$xmlshortfile;
if (!preg_match('/\.zip$/i', $xmlfile) && dol_is_file($xmlfile.'.zip')) {
$xmlfile = $xmlfile.'.zip';
}
// Remote file to compare to
$xmlremote = GETPOST('xmlremote', 'alphanohtml');
if (empty($xmlremote) && !empty($conf->global->MAIN_FILECHECK_URL)) {
@ -150,6 +155,10 @@ if (GETPOST('target') == 'local') {
}
}
$xml = simplexml_load_file($xmlfile);
if ($xml === false) {
print '<div class="warning">'.$langs->trans('XmlCorrupted').': '.$xmlfile.'</span>';
$error++;
}
} else {
print '<div class="warning">'.$langs->trans('XmlNotFound').': '.$xmlfile.'</span>';
$error++;

View File

@ -263,15 +263,16 @@ class Categorie extends CommonObject
$parameters = array();
$reshook = $hookmanager->executeHooks('constructCategory', $parameters, $this); // Note that $action and $object may have been modified by some hooks
if ($reshook >= 0 && !empty($hookmanager->resArray)) {
$mapList = $hookmanager->resArray;
$mapId = $mapList['id'];
$mapCode = $mapList['code'];
self::$MAP_ID_TO_CODE[$mapId] = $mapCode;
$this->MAP_ID[$mapCode] = $mapId;
$this->MAP_CAT_FK[$mapCode] = $mapList['cat_fk'];
$this->MAP_CAT_TABLE[$mapCode] = $mapList['cat_table'];
$this->MAP_OBJ_CLASS[$mapCode] = $mapList['obj_class'];
$this->MAP_OBJ_TABLE[$mapCode] = $mapList['obj_table'];
foreach ($hookmanager->resArray as $mapList) {
$mapId = $mapList['id'];
$mapCode = $mapList['code'];
self::$MAP_ID_TO_CODE[$mapId] = $mapCode;
$this->MAP_ID[$mapCode] = $mapId;
$this->MAP_CAT_FK[$mapCode] = $mapList['cat_fk'];
$this->MAP_CAT_TABLE[$mapCode] = $mapList['cat_table'];
$this->MAP_OBJ_CLASS[$mapCode] = $mapList['obj_class'];
$this->MAP_OBJ_TABLE[$mapCode] = $mapList['obj_table'];
}
}
}
}
@ -1497,7 +1498,10 @@ class Categorie extends CommonObject
} else {
$sql = "SELECT ct.fk_categorie, c.label, c.rowid";
$sql .= " FROM ".MAIN_DB_PREFIX."categorie_".(empty($this->MAP_CAT_TABLE[$type]) ? $type : $this->MAP_CAT_TABLE[$type])." as ct, ".MAIN_DB_PREFIX."categorie as c";
$sql .= " WHERE ct.fk_categorie = c.rowid AND ct.fk_".(empty($this->MAP_CAT_FK[$type]) ? $type : $this->MAP_CAT_FK[$type])." = ".(int) $id." AND c.type = ".$this->MAP_ID[$type];
$sql .= " WHERE ct.fk_categorie = c.rowid AND ct.fk_".(empty($this->MAP_CAT_FK[$type]) ? $type : $this->MAP_CAT_FK[$type])." = ".(int) $id;
// This seems useless because the table already contains id of category of 1 unique type. So commented.
// So now it works also with external added categories.
//$sql .= " AND c.type = ".$this->MAP_ID[$type];
$sql .= " AND c.entity IN (".getEntity('category').")";
$res = $this->db->query($sql);

View File

@ -2006,30 +2006,32 @@ class ExtraFields
$collapse_display = ((isset($_COOKIE['DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key]) || GETPOST('ignorecollapsesetup', 'int')) ? ($_COOKIE['DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key] ? true : false) : ($extrafield_collapse_display_value == 2 ? false : true));
$extrafields_collapse_num = $this->attributes[$object->table_element]['pos'][$key].(!empty($object->id)?'_'.$object->id:'');
$out .= '<!-- Add js script to manage the collapse/uncollapse of extrafields separators '.$key.' -->'."\n";
$out .= '<script type="text/javascript">'."\n";
$out .= 'jQuery(document).ready(function(){'."\n";
if ($collapse_display === false) {
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.'").prepend("<span class=\"cursorpointer far fa-plus-square\"></span>&nbsp;");'."\n";
$out .= ' jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").hide();'."\n";
} else {
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.'").prepend("<span class=\"cursorpointer far fa-minus-square\"></span>&nbsp;");'."\n";
$out .= ' document.cookie = "DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.'=1; path='.$_SERVER["PHP_SELF"].'"'."\n";
if (!empty($conf->use_javascript_ajax)) {
$out .= '<!-- Add js script to manage the collapse/uncollapse of extrafields separators '.$key.' -->'."\n";
$out .= '<script type="text/javascript">'."\n";
$out .= 'jQuery(document).ready(function(){'."\n";
if ($collapse_display === false) {
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.'").prepend("<span class=\"cursorpointer far fa-plus-square\"></span>&nbsp;");'."\n";
$out .= ' jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").hide();'."\n";
} else {
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.'").prepend("<span class=\"cursorpointer far fa-minus-square\"></span>&nbsp;");'."\n";
$out .= ' document.cookie = "DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.'=1; path='.$_SERVER["PHP_SELF"].'"'."\n";
}
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').'").click(function(){'."\n";
$out .= ' console.log("We click on collapse/uncollapse .trextrafields_collapse'.$extrafields_collapse_num.'");'."\n";
$out .= ' jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").toggle(300, function(){'."\n";
$out .= ' if (jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").is(":hidden")) {'."\n";
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.' span").addClass("fa-plus-square").removeClass("fa-minus-square");'."\n";
$out .= ' document.cookie = "DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.'=0; path='.$_SERVER["PHP_SELF"].'"'."\n";
$out .= ' } else {'."\n";
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.' span").addClass("fa-minus-square").removeClass("fa-plus-square");'."\n";
$out .= ' document.cookie = "DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.'=1; path='.$_SERVER["PHP_SELF"].'"'."\n";
$out .= ' }'."\n";
$out .= ' });'."\n";
$out .= ' });'."\n";
$out .= '});'."\n";
$out .= '</script>'."\n";
}
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').'").click(function(){'."\n";
$out .= ' console.log("We click on collapse/uncollapse .trextrafields_collapse'.$extrafields_collapse_num.'");'."\n";
$out .= ' jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").toggle(300, function(){'."\n";
$out .= ' if (jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").is(":hidden")) {'."\n";
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.' span").addClass("fa-plus-square").removeClass("fa-minus-square");'."\n";
$out .= ' document.cookie = "DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.'=0; path='.$_SERVER["PHP_SELF"].'"'."\n";
$out .= ' } else {'."\n";
$out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.' span").addClass("fa-minus-square").removeClass("fa-plus-square");'."\n";
$out .= ' document.cookie = "DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.'=1; path='.$_SERVER["PHP_SELF"].'"'."\n";
$out .= ' }'."\n";
$out .= ' });'."\n";
$out .= ' });'."\n";
$out .= '});'."\n";
$out .= '</script>'."\n";
}
}
}

View File

@ -7067,7 +7067,7 @@ class Form
public static function selectArrayAjax($htmlname, $url, $id = '', $moreparam = '', $moreparamtourl = '', $disabled = 0, $minimumInputLength = 1, $morecss = '', $callurlonselect = 0, $placeholder = '', $acceptdelayedhtml = 0)
{
global $conf, $langs;
global $delayedhtmlcontent;
global $delayedhtmlcontent; // Will be used later outside of this function
// TODO Use an internal dolibarr component instead of select2
if (empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && !defined('REQUIRE_JQUERY_MULTISELECT')) {
@ -7076,68 +7076,71 @@ class Form
$out = '<select type="text" class="'.$htmlname.($morecss ? ' '.$morecss : '').'" '.($moreparam ? $moreparam.' ' : '').'name="'.$htmlname.'"></select>';
$tmpplugin = 'select2';
$outdelayed = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
<script>
$(document).ready(function () {
$outdelayed = '';
if (!empty($conf->use_javascript_ajax)) {
$tmpplugin = 'select2';
$outdelayed = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
<script>
$(document).ready(function () {
'.($callurlonselect ? 'var saveRemoteData = [];' : '').'
'.($callurlonselect ? 'var saveRemoteData = [];' : '').'
$(".'.$htmlname.'").select2({
ajax: {
dir: "ltr",
url: "'.$url.'",
dataType: \'json\',
delay: 250,
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
processResults: function (data) {
// parse the results into the format expected by Select2.
// since we are using custom formatting functions we do not need to alter the remote JSON data
//console.log(data);
saveRemoteData = data;
/* format json result for select2 */
result = []
$.each( data, function( key, value ) {
result.push({id: key, text: value.text});
});
//return {results:[{id:\'none\', text:\'aa\'}, {id:\'rrr\', text:\'Red\'},{id:\'bbb\', text:\'Search a into projects\'}], more:false}
//console.log(result);
return {results: result, more: false}
},
cache: true
},
language: select2arrayoflanguage,
containerCssClass: \':all:\', /* Line to add class of origin SELECT propagated to the new <span class="select2-selection...> tag */
placeholder: "'.dol_escape_js($placeholder).'",
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: '.$minimumInputLength.',
formatResult: function(result, container, query, escapeMarkup) {
return escapeMarkup(result.text);
},
});
$(".'.$htmlname.'").select2({
ajax: {
dir: "ltr",
url: "'.$url.'",
dataType: \'json\',
delay: 250,
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
processResults: function (data) {
// parse the results into the format expected by Select2.
// since we are using custom formatting functions we do not need to alter the remote JSON data
//console.log(data);
saveRemoteData = data;
/* format json result for select2 */
result = []
$.each( data, function( key, value ) {
result.push({id: key, text: value.text});
});
//return {results:[{id:\'none\', text:\'aa\'}, {id:\'rrr\', text:\'Red\'},{id:\'bbb\', text:\'Search a into projects\'}], more:false}
//console.log(result);
return {results: result, more: false}
},
cache: true
},
language: select2arrayoflanguage,
containerCssClass: \':all:\', /* Line to add class of origin SELECT propagated to the new <span class="select2-selection...> tag */
placeholder: "'.dol_escape_js($placeholder).'",
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: '.$minimumInputLength.',
formatResult: function(result, container, query, escapeMarkup) {
return escapeMarkup(result.text);
},
});
'.($callurlonselect ? '
/* Code to execute a GET when we select a value */
$(".'.$htmlname.'").change(function() {
var selected = $(".'.$htmlname.'").val();
console.log("We select in selectArrayAjax the entry "+selected)
$(".'.$htmlname.'").val(""); /* reset visible combo value */
$.each( saveRemoteData, function( key, value ) {
if (key == selected)
{
console.log("selectArrayAjax - Do a redirect to "+value.url)
location.assign(value.url);
}
});
});' : '').'
'.($callurlonselect ? '
/* Code to execute a GET when we select a value */
$(".'.$htmlname.'").change(function() {
var selected = $(".'.$htmlname.'").val();
console.log("We select in selectArrayAjax the entry "+selected)
$(".'.$htmlname.'").val(""); /* reset visible combo value */
$.each( saveRemoteData, function( key, value ) {
if (key == selected)
{
console.log("selectArrayAjax - Do a redirect to "+value.url)
location.assign(value.url);
}
});
});' : '').'
});
</script>';
});
</script>';
}
if ($acceptdelayedhtml) {
$delayedhtmlcontent .= $outdelayed;
@ -7168,7 +7171,7 @@ class Form
public static function selectArrayFilter($htmlname, $array, $id = '', $moreparam = '', $disableFiltering = 0, $disabled = 0, $minimumInputLength = 1, $morecss = '', $callurlonselect = 0, $placeholder = '', $acceptdelayedhtml = 0)
{
global $conf, $langs;
global $delayedhtmlcontent;
global $delayedhtmlcontent; // Will be used later outside of this function
// TODO Use an internal dolibarr component instead of select2
if (empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && !defined('REQUIRE_JQUERY_MULTISELECT')) {
@ -7187,74 +7190,77 @@ class Form
$formattedarrayresult[] = $o;
}
$tmpplugin = 'select2';
$outdelayed = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
<script>
$(document).ready(function () {
var data = '.json_encode($formattedarrayresult).';
$outdelayed = '';
if (!empty($conf->use_javascript_ajax)) {
$tmpplugin = 'select2';
$outdelayed = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
<script>
$(document).ready(function () {
var data = '.json_encode($formattedarrayresult).';
'.($callurlonselect ? 'var saveRemoteData = '.json_encode($array).';' : '').'
'.($callurlonselect ? 'var saveRemoteData = '.json_encode($array).';' : '').'
$(".'.$htmlname.'").select2({
data: data,
language: select2arrayoflanguage,
containerCssClass: \':all:\', /* Line to add class of origin SELECT propagated to the new <span class="select2-selection...> tag */
placeholder: "'.dol_escape_js($placeholder).'",
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: '.$minimumInputLength.',
formatResult: function(result, container, query, escapeMarkup) {
return escapeMarkup(result.text);
},
matcher: function (params, data) {
$(".'.$htmlname.'").select2({
data: data,
language: select2arrayoflanguage,
containerCssClass: \':all:\', /* Line to add class of origin SELECT propagated to the new <span class="select2-selection...> tag */
placeholder: "'.dol_escape_js($placeholder).'",
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: '.$minimumInputLength.',
formatResult: function(result, container, query, escapeMarkup) {
return escapeMarkup(result.text);
},
matcher: function (params, data) {
if(! data.id) return null;';
if(! data.id) return null;';
if ($callurlonselect) {
$outdelayed .= '
var urlBase = data.url;
var separ = urlBase.indexOf("?") >= 0 ? "&" : "?";
/* console.log("params.term="+params.term); */
/* console.log("params.term encoded="+encodeURIComponent(params.term)); */
saveRemoteData[data.id].url = urlBase + separ + "sall=" + encodeURIComponent(params.term.replace(/\"/g, ""));';
}
if (!$disableFiltering) {
$outdelayed .= '
if(data.text.match(new RegExp(params.term))) {
return data;
}
return null;';
} else {
$outdelayed .= '
return data;';
}
if ($callurlonselect) {
$outdelayed .= '
var urlBase = data.url;
var separ = urlBase.indexOf("?") >= 0 ? "&" : "?";
/* console.log("params.term="+params.term); */
/* console.log("params.term encoded="+encodeURIComponent(params.term)); */
saveRemoteData[data.id].url = urlBase + separ + "sall=" + encodeURIComponent(params.term.replace(/\"/g, ""));';
}
if (!$disableFiltering) {
$outdelayed .= '
if(data.text.match(new RegExp(params.term))) {
return data;
}
return null;';
} else {
$outdelayed .= '
return data;';
}
$outdelayed .= '
}
});
'.($callurlonselect ? '
/* Code to execute a GET when we select a value */
$(".'.$htmlname.'").change(function() {
var selected = $(".'.$htmlname.'").val();
console.log("We select "+selected)
$(".'.$htmlname.'").val(""); /* reset visible combo value */
$.each( saveRemoteData, function( key, value ) {
if (key == selected)
{
console.log("selectArrayFilter - Do a redirect to "+value.url)
location.assign(value.url);
}
});
});' : '').'
});
</script>';
'.($callurlonselect ? '
/* Code to execute a GET when we select a value */
$(".'.$htmlname.'").change(function() {
var selected = $(".'.$htmlname.'").val();
console.log("We select "+selected)
$(".'.$htmlname.'").val(""); /* reset visible combo value */
$.each( saveRemoteData, function( key, value ) {
if (key == selected)
{
console.log("selectArrayFilter - Do a redirect to "+value.url)
location.assign(value.url);
}
});
});' : '').'
});
</script>';
}
if ($acceptdelayedhtml) {
$delayedhtmlcontent .= $outdelayed;
@ -7297,7 +7303,7 @@ class Form
}
// Add code for jquery to use multiselect
if (!empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || defined('REQUIRE_JQUERY_MULTISELECT')) {
if (!empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || defined('REQUIRE_JQUERY_MULTISELECT')) {
$out .= "\n".'<!-- JS CODE TO ENABLE select for id '.$htmlname.', addjscombo='.$addjscombo.' -->';
$out .= "\n".'<script>'."\n";
if ($addjscombo == 1) {

View File

@ -114,8 +114,13 @@ function dol_print_cron_urls()
print '<u>'.$langs->trans("FileToLaunchCronJobs").':</u><br>';
$file = '/scripts/cron/cron_run_jobs.php '.(empty($conf->global->CRON_KEY) ? 'securitykey' : ''.$conf->global->CRON_KEY.'').' '.$logintouse.' [cronjobid]';
print '<textarea class="quatrevingtpercent">..'.$file."</textarea><br>\n";
$pathtoscript = '/pathtoscript';
if (!empty($conf->global->MAIN_DOL_SCRIPTS_ROOT)) {
$pathtoscript = $conf->global->MAIN_DOL_SCRIPTS_ROOT;
}
$file = $pathtoscript.'/scripts/cron/cron_run_jobs.php '.(empty($conf->global->CRON_KEY) ? 'securitykey' : ''.$conf->global->CRON_KEY.'').' '.$logintouse.' [cronjobid]';
print '<textarea class="quatrevingtpercent">'.$file."</textarea><br>\n";
print '<br>';
// Add note
@ -131,7 +136,7 @@ function dol_print_cron_urls()
if ($linuxlike) {
print $langs->trans("CronExplainHowToRunUnix");
print '<br>';
print '<textarea class="quatrevingtpercent">*/5 * * * * pathtoscript/scripts/cron/cron_run_jobs.php '.(empty($conf->global->CRON_KEY) ? 'securitykey' : ''.$conf->global->CRON_KEY.'').' '.$logintouse.' &gt; '.DOL_DATA_ROOT.'/cron_run_jobs.php.log</textarea><br>';
print '<textarea class="quatrevingtpercent">*/5 * * * * '.$pathtoscript.'/scripts/cron/cron_run_jobs.php '.(empty($conf->global->CRON_KEY) ? 'securitykey' : ''.$conf->global->CRON_KEY.'').' '.$logintouse.' &gt; '.DOL_DATA_ROOT.'/cron_run_jobs.php.log</textarea><br>';
} else {
print $langs->trans("CronExplainHowToRunWin");
}

View File

@ -84,14 +84,14 @@ class modProductBatch extends DolibarrModules
$this->const[$r][0] = "PRODUCTBATCH_LOT_ADDON";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "mod_lot_free";
$this->const[$r][3] = 'Module to control product codes';
$this->const[$r][3] = 'Module to control lot number';
$this->const[$r][4] = 0;
$r++;
$this->const[$r][0] = "PRODUCTBATCH_SN_ADDON";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "mod_sn_free";
$this->const[$r][3] = 'Module to control product codes';
$this->const[$r][3] = 'Module to control serial number';
$this->const[$r][4] = 0;
$r++;

View File

@ -128,27 +128,27 @@ class mod_lot_advanced extends ModeleNumRefBatch
/**
* Return next free value
*
* @param Product $objprod Object product
* @param Societe $objsoc Object Societe
* @param Object $object Object we need next value for
* @return string Value if KO, <0 if KO
*/
public function getNextValue($objprod, $object)
public function getNextValue($objsoc, $object)
{
global $db, $conf;
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
// We get cursor rule
$mask = $conf->global->BATCH_ADVANCED_MASK;
$mask = $conf->global->LOT_ADVANCED_MASK;
if (!$mask) {
$this->error = 'NotConfigured';
return 0;
}
$date = $object->date;
$date = dol_now();
$numFinal = get_next_value($db, $mask, 'product_lot', 'ref', '', null, $date);
$numFinal = get_next_value($db, $mask, 'product_lot', 'batch', '', null, $date);
return $numFinal;
}

View File

@ -85,17 +85,21 @@ class mod_lot_standard extends ModeleNumRefBatch
$coyymm = ''; $max = '';
$posindice = strlen($this->prefix) + 6;
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
$sql = "SELECT MAX(CAST(SUBSTRING(batch FROM ".$posindice.") AS SIGNED)) as max";
$sql .= " FROM ".MAIN_DB_PREFIX."product_lot";
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " WHERE batch LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " AND entity = ".$conf->entity;
$resql = $db->query($sql);
if ($resql) {
$row = $db->fetch_row($resql);
if ($row) { $coyymm = substr($row[0], 0, 6); $max = $row[0]; }
$obj = $db->fetch_object($resql);
if ($obj) {
$max = intval($obj->max);
} else {
$max = 0;
}
}
if ($coyymm && !preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i', $coyymm)) {
if ($max && !preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i', $max)) {
$langs->load("errors");
$this->error = $langs->trans('ErrorNumRefModel', $max);
return false;
@ -117,23 +121,26 @@ class mod_lot_standard extends ModeleNumRefBatch
// First, we get the max value
$posindice = strlen($this->prefix) + 6;
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
$sql = "SELECT MAX(CAST(SUBSTRING(batch FROM ".$posindice.") AS SIGNED)) as max";
$sql .= " FROM ".MAIN_DB_PREFIX."product_lot";
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " WHERE batch LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " AND entity = ".$conf->entity;
$resql = $db->query($sql);
if ($resql) {
$obj = $db->fetch_object($resql);
if ($obj) $max = intval($obj->max);
else $max = 0;
if ($obj) {
$max = intval($obj->max);
} else {
$max = 0;
}
} else {
dol_syslog("mod_lot_standard::getNextValue", LOG_DEBUG);
return -1;
}
//$date=time();
$date = $object->date_creation;
$date = dol_now();
$yymm = strftime("%y%m", $date);
if ($max >= (pow(10, 4) - 1)) $num = $max + 1; // If counter > 9999, we do not format on 4 chars, we take number as it is

View File

@ -139,16 +139,16 @@ class mod_sn_advanced extends ModeleNumRefBatch
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
// We get cursor rule
$mask = $conf->global->BATCH_ADVANCED_MASK;
$mask = $conf->global->SN_ADVANCED_MASK;
if (!$mask) {
$this->error = 'NotConfigured';
return 0;
}
$date = $object->date;
$date = dol_now();
$numFinal = get_next_value($db, $mask, 'product_sn', 'ref', '', null, $date);
$numFinal = get_next_value($db, $mask, 'product_lot', 'batch', '', null, $date);
return $numFinal;
}

View File

@ -85,17 +85,21 @@ class mod_sn_standard extends ModeleNumRefBatch
$coyymm = ''; $max = '';
$posindice = strlen($this->prefix) + 6;
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
$sql = "SELECT MAX(CAST(SUBSTRING(batch FROM ".$posindice.") AS SIGNED)) as max";
$sql .= " FROM ".MAIN_DB_PREFIX."product_lot";
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " WHERE batch LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " AND entity = ".$conf->entity;
$resql = $db->query($sql);
if ($resql) {
$row = $db->fetch_row($resql);
if ($row) { $coyymm = substr($row[0], 0, 6); $max = $row[0]; }
$obj = $db->fetch_object($resql);
if ($obj) {
$max = intval($obj->max);
} else {
$max = 0;
}
}
if ($coyymm && !preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i', $coyymm)) {
if ($max && !preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i', $max)) {
$langs->load("errors");
$this->error = $langs->trans('ErrorNumRefModel', $max);
return false;
@ -107,33 +111,36 @@ class mod_sn_standard extends ModeleNumRefBatch
/**
* Return next free value
*
* @param Product $objprod Object product
* @param Societe $objsoc Object product
* @param Object $object Object we need next value for
* @return string Value if KO, <0 if KO
*/
public function getNextValue($objprod, $object)
public function getNextValue($objsoc, $object)
{
global $db, $conf;
// First, we get the max value
$posindice = strlen($this->prefix) + 6;
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
$sql = "SELECT MAX(CAST(SUBSTRING(batch FROM ".$posindice.") AS SIGNED)) as max";
$sql .= " FROM ".MAIN_DB_PREFIX."product_lot";
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " WHERE batch LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " AND entity = ".$conf->entity;
$resql = $db->query($sql);
if ($resql) {
$obj = $db->fetch_object($resql);
if ($obj) $max = intval($obj->max);
else $max = 0;
if ($obj) {
$max = intval($obj->max);
} else {
$max = 0;
}
} else {
dol_syslog("mod_sn_standard::getNextValue", LOG_DEBUG);
return -1;
}
//$date=time();
$date = $object->date_creation;
$date = dol_now();
$yymm = strftime("%y%m", $date);
if ($max >= (pow(10, 4) - 1)) $num = $max + 1; // If counter > 9999, we do not format on 4 chars, we take number as it is

View File

@ -258,7 +258,6 @@ if (empty($reshook) && isset($extrafields->attributes[$object->table_element]['l
}
}
// Add code to manage list depending on others
// TODO Test/enhance this with a more generic solution
if (!empty($conf->use_javascript_ajax)) {

View File

@ -116,8 +116,10 @@ if ($action == 'set_DONATION_ACCOUNTINGACCOUNT') {
if (!$error) {
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
$action = ''; // To avoid to execute next actions
} else {
setEventMessages($langs->trans("Error"), null, 'errors');
$action = ''; // To avoid to execute next actions
}
}
@ -132,14 +134,15 @@ if ($action == 'set_DONATION_MESSAGE') {
if (!$error) {
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
$action = ''; // To avoid to execute next actions
} else {
setEventMessages($langs->trans("Error"), null, 'errors');
$action = ''; // To avoid to execute next actions
}
}
/*
* Action
*/
// Other cases
$reg = array();
if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) {
$code = $reg[1];
if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) {

View File

@ -2560,7 +2560,7 @@ if ($action != 'create' && $action != 'edit') {
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$object->id.'">'.$langs->trans('Modify').'</a></div>';
// setdraft (le statut refusée est identique à brouillon)
//print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=brouillonner&id='.$id.'">'.$langs->trans('BROUILLONNER').'</a>';
//print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=brouillonner&id='.$id.'">'.$langs->trans('ReOpen').'</a>';
// Enregistrer depuis le statut "Refusée"
print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=save_from_refuse&id='.$object->id.'">'.$langs->trans('ValidateAndSubmit').'</a></div>';
}

View File

@ -51,7 +51,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
// Load translation files required by the page
$langs->loadLangs(array('bills', 'companies', 'interventions'));
$langs->loadLangs(array('bills', 'companies', 'interventions', 'stocks'));
$id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alpha');
@ -1079,7 +1079,7 @@ if ($action == 'create') {
// Confirm back to open
if ($action == 'reopen') {
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('Reopen'), $langs->trans('ConfirmReopenIntervention', $object->ref), 'confirm_reopen', '', 0, 1);
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ReOpen'), $langs->trans('ConfirmReopenIntervention', $object->ref), 'confirm_reopen', '', 0, 1);
}
// Confirm deletion of line

View File

@ -569,3 +569,30 @@ create table llx_c_partnership_type
)ENGINE=innodb;
DELETE FROM llx_rights_def WHERE module = 'hrm' AND perms = 'employee';
CREATE TABLE llx_ecm_directories_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;
DROP TABLE llx_categorie_association;
DROP TABLE llx_cond_reglement;
DROP TABLE llx_zapier_hook_extrafields;
create table llx_onlinesignature
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
entity integer DEFAULT 1 NOT NULL,
object_type varchar(32) NOT NULL,
object_id integer NOT NULL,
datec datetime NOT NULL,
tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
name varchar(255) NOT NULL,
ip varchar(128),
pathoffile varchar(255)
)ENGINE=innodb;

View File

@ -0,0 +1,31 @@
-- ===================================================================
-- Copyright (C) 2021 Laurent Destailleur <eldy@users.sourceforge.net>
--
-- 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 <https://www.gnu.org/licenses/>.
--
-- Table of with online signatures
-- ===================================================================
create table llx_onlinesignature
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
entity integer DEFAULT 1 NOT NULL,
object_type varchar(32) NOT NULL,
object_id integer NOT NULL,
datec datetime NOT NULL,
tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
name varchar(255) NOT NULL,
ip varchar(128),
pathoffile varchar(255)
)ENGINE=innodb;

View File

@ -0,0 +1,21 @@
-- ===================================================================
-- Copyright (C) 2012 Laurent Destailleur <eldy@users.sourceforge.net>
-- Copyright (C) 2016 Regis Houssin <regis.houssin@inodbox.com>
--
-- 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 <https://www.gnu.org/licenses/>.
--
-- ===================================================================
ALTER TABLE llx_partnership ADD INDEX idx_partnership_entity (entity);
ALTER TABLE llx_partnership ADD UNIQUE INDEX uk_partnership_ref (ref, entity);

View File

@ -0,0 +1,40 @@
-- ===================================================================
-- Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net>
--
-- 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 <https://www.gnu.org/licenses/>.
--
-- ===================================================================
CREATE TABLE llx_partnership(
rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
ref varchar(128) DEFAULT '(PROV)' NOT NULL,
status smallint NOT NULL DEFAULT '0',
fk_soc integer,
fk_member integer,
date_partnership_start date NOT NULL,
date_partnership_end date NOT NULL,
entity integer DEFAULT 1 NOT NULL, -- multi company id, 0 = all
reason_decline_or_cancel text NULL,
date_creation datetime NOT NULL,
fk_user_creat integer NOT NULL,
tms timestamp,
fk_user_modif integer,
note_private text,
note_public text,
last_main_doc varchar(255),
count_last_url_check_error integer DEFAULT '0',
last_check_backlink datetime NULL,
import_key varchar(14),
model_pdf varchar(255)
) ENGINE=innodb;

View File

@ -0,0 +1,20 @@
-- ===================================================================
-- Copyright (C) 2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
--
-- 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 <https://www.gnu.org/licenses/>.
--
-- ===================================================================
ALTER TABLE llx_partnership_extrafields ADD INDEX idx_partnership_extrafields (fk_object);

View File

@ -0,0 +1,25 @@
-- ===================================================================
-- Copyright (C) 2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
--
-- 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 <https://www.gnu.org/licenses/>.
--
-- ===================================================================
create table llx_partnership_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
fk_object integer NOT NULL, -- salary payment id
import_key varchar(14) -- import key
)ENGINE=innodb;

View File

@ -531,39 +531,48 @@ if (!$error && $db->connected && $action == "set") {
if ($db->connected) {
$resultbis = 1;
// Create user
$result = $db->DDLCreateUser($dolibarr_main_db_host, $dolibarr_main_db_user, $dolibarr_main_db_pass, $dolibarr_main_db_name);
// Create user bis
if ($databasefortest == 'mysql') {
if (!in_array($dolibarr_main_db_host, array('127.0.0.1', '::1', 'localhost', 'localhost.local'))) {
$resultbis = $db->DDLCreateUser('%', $dolibarr_main_db_user, $dolibarr_main_db_pass, $dolibarr_main_db_name);
}
}
if ($result > 0 && $resultbis > 0) {
if (empty($dolibarr_main_db_pass)) {
dolibarr_install_syslog("step1: failed to create user, password is empty", LOG_ERR);
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td><img src="../theme/eldy/img/tick.png" alt="Ok"></td></tr>';
print '<td>'.$langs->trans("Error").": A password for database user is mandatory.</td></tr>";
} else {
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS'
|| $db->errno() == 'DB_ERROR_KEY_NAME_ALREADY_EXISTS'
|| $db->errno() == 'DB_ERROR_USER_ALREADY_EXISTS') {
dolibarr_install_syslog("step1: user already exists");
// Create user
$result = $db->DDLCreateUser($dolibarr_main_db_host, $dolibarr_main_db_user, $dolibarr_main_db_pass, $dolibarr_main_db_name);
// Create user bis
if ($databasefortest == 'mysql') {
if (!in_array($dolibarr_main_db_host, array('127.0.0.1', '::1', 'localhost', 'localhost.local'))) {
$resultbis = $db->DDLCreateUser('%', $dolibarr_main_db_user, $dolibarr_main_db_pass, $dolibarr_main_db_name);
}
}
if ($result > 0 && $resultbis > 0) {
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td>'.$langs->trans("LoginAlreadyExists").'</td></tr>';
print '<td><img src="../theme/eldy/img/tick.png" alt="Ok"></td></tr>';
} else {
dolibarr_install_syslog("step1: failed to create user", LOG_ERR);
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td>'.$langs->trans("Error").': '.$db->errno().' '.$db->error().($db->error ? '. '.$db->error : '')."</td></tr>";
if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS'
|| $db->errno() == 'DB_ERROR_KEY_NAME_ALREADY_EXISTS'
|| $db->errno() == 'DB_ERROR_USER_ALREADY_EXISTS') {
dolibarr_install_syslog("step1: user already exists");
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td>'.$langs->trans("LoginAlreadyExists").'</td></tr>';
} else {
dolibarr_install_syslog("step1: failed to create user", LOG_ERR);
print '<tr><td>';
print $langs->trans("UserCreation").' : ';
print $dolibarr_main_db_user;
print '</td>';
print '<td>'.$langs->trans("Error").': '.$db->errno().' '.$db->error().($db->error ? '. '.$db->error : '')."</td></tr>";
}
}
}

View File

@ -53,6 +53,7 @@ InternalUser=Internal user
ExternalUser=External user
InternalUsers=Internal users
ExternalUsers=External users
UserInterface=User interface
GUISetup=Display
SetupArea=Setup
UploadNewTemplate=Upload new template(s)
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
DownloadMoreSkins=More skins to download
SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset
SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset
ShowProfIdInAddress=Show professional id with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
ShowProfIdInAddress=Show professional ID with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number
TranslationUncomplete=Partial translation
MAIN_DISABLE_METEO=Disable meteorological view
MeteoStdMod=Standard mode
@ -1778,7 +1779,7 @@ ClickToDialSetup=Click To Dial module setup
ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable.
ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
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.
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 starting with "tel:" in your browser. If you need link that start with "sip:" or 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
@ -2133,7 +2134,8 @@ IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system co
PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
RecommendedValueIs=Recommended: %s
NotRecommended=Not recommanded
Recommended=Recommended
NotRecommended=Not recommended
ARestrictedPath=A restricted path
CheckForModuleUpdate=Check for external modules updates
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
@ -2144,3 +2146,5 @@ YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You s
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
DatabasePasswordObfuscated=Database password is obfuscated in conf file
DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file
APIsAreNotEnabled=APIs modules are not enabled
YouShouldSetThisToOff=You should set this to 0 or off

View File

@ -115,7 +115,7 @@ TransferTo=To
TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
CheckTransmitter=Sender
ValidateCheckReceipt=Validate this check receipt?
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes are possible it's done.
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated.
DeleteCheckReceipt=Delete this check receipt?
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
BankChecks=Bank checks

View File

@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
BoxTitleLastModifiedPropals=Latest %s modified proposals
BoxTitleLatestModifiedJobPositions=Latest %s modified jobs
BoxTitleLatestModifiedCandidatures=Latest %s modified candidatures
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
ForCustomersInvoices=Customers invoices
ForCustomersOrders=Customers orders
ForProposals=Proposals

View File

@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
WeighingScale=Weighing scale
ShowPriceHT = Display the column with the price excluding tax (on screen)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on receipt)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt)

View File

@ -301,3 +301,4 @@ ErrorActionCommPropertyUserowneridNotDefined=User's owner is required
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
CheckVersionFail=Version check fail
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.

View File

@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
NbVotes=Number of votes
#
# Status
#
@ -115,6 +116,9 @@ EvntOrgDuration = This conference starts on %s and ends on %s.
ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s.
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
EventType = Event type
LabelOfBooth=Booth label
LabelOfconference=Conference label
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
#
# Vote page

View File

@ -206,6 +206,7 @@ MigrationUserPhotoPath=Migration of photo paths for users
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
MigrationReloadModule=Reload module %s
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
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 <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.

View File

@ -64,3 +64,5 @@ InterLineDuration=Line duration intervention
InterLineDesc=Line description intervention
RepeatableIntervention=Template of intervention
ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template
Reopen=Reopen
ConfirmReopenIntervention=Are you sure you want to open back the intervention <b>%s</b>?

View File

@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Show log of movements for couple product/lot
StockDetailPerBatch=Stock detail per lot
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
TooManyQtyForSerialNumber=You can only have one product %s for serial number %s
BatchLotNumberingModules=Options for automatic generation of batch products managed by lots
BatchSerialNumberingModules=Options for automatic generation of batch products managed by serial numbers
ManageLotMask=Custom mask
CustomMasks=Adds an option to define mask in the product card
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
CustomMasks=Option to define a different numbering mask for each product
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product)
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
LifeTime=Life span (in days)
EndOfLife=End of life

View File

@ -277,7 +277,7 @@ PriceByCustomer=Different prices for each customer
PriceCatalogue=A single sell price per product/service
PricingRule=Rules for selling prices
AddCustomerPrice=Add price by customer
ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries
PriceByCustomerLog=Log of previous customer prices
MinimumPriceLimit=Minimum price can't be lower then %s
MinimumRecommendedPrice=Minimum recommended price is: %s
@ -296,6 +296,7 @@ ComposedProductIncDecStock=Increase/Decrease stock on parent change
ComposedProduct=Child products
MinSupplierPrice=Minimum buying price
MinCustomerPrice=Minimum selling price
NoDynamicPrice=No dynamic price
DynamicPriceConfiguration=Dynamic price configuration
DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically.
AddVariable=Add Variable

View File

@ -2,20 +2,23 @@
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
CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary
Salary=Salary
Salaries=Salaries
NewSalaryPayment=New salary payment
NewSalary=New salary
NewSalaryPayment=New salary card
AddSalaryPayment=Add salary payment
SalaryPayment=Salary payment
SalariesPayments=Salaries payments
SalariesPaymentsOf=Salaries payments of %s
ShowSalaryPayment=Show salary payment
THM=Average hourly rate
TJM=Average daily rate
CurrentSalary=Current salary
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
LastSalaries=Latest %s salaries
AllSalaries=All salaries
SalariesStatistics=Salary statistics
# Export
SalariesAndPayments=Salaries and payments
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?

View File

@ -34,7 +34,8 @@ TicketDictResolution=Ticket - Resolution
TicketTypeShortCOM=Commercial question
TicketTypeShortHELP=Request for functionnal help
TicketTypeShortISSUE=Issue, bug or problem
TicketTypeShortISSUE=Issue or bug
TicketTypeShortPROBLEM=Problem
TicketTypeShortREQUEST=Change or enhancement request
TicketTypeShortPROJET=Project
TicketTypeShortOTHER=Other
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Assigned user
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
TypeContact_ticket_external_CONTRIBUTOR=External contributor
OriginEmail=Email source
OriginEmail=Reporter Email
Notify_TICKET_SENTBYMAIL=Send ticket message by email
# Status
Read=Read
Assigned=Assigned
InProgress=In progress
NeedMoreInformation=Waiting for information
NeedMoreInformation=Waiting for reporter feedback
NeedMoreInformationShort=Waiting for feedback
Answered=Answered
Waiting=Waiting
Closed=Closed
@ -160,7 +162,7 @@ CreatedBy=Created by
NewTicket=New Ticket
SubjectAnswerToTicket=Ticket answer
TicketTypeRequest=Request type
TicketCategory=Group
TicketCategory=Ticket categorization
SeeTicket=See ticket
TicketMarkedAsRead=Ticket has been marked as read
TicketReadOn=Read on
@ -211,6 +213,7 @@ TicketMessageHelp=Only this text will be saved in the message list on ticket car
TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values.
TimeElapsedSince=Time elapsed since
TicketTimeToRead=Time elapsed before read
TicketTimeElapsedBeforeSince=Time elapsed before / since
TicketContacts=Contacts ticket
TicketDocumentsLinked=Documents linked to ticket
ConfirmReOpenTicket=Confirm reopen this ticket ?

View File

@ -97,8 +97,8 @@ LoginToCreate=Login to create
NameToCreate=Name of third party to create
YourRole=Your roles
YourQuotaOfUsersIsReached=Your quota of active users is reached !
NbOfUsers=No. of users
NbOfPermissions=No. of permissions
NbOfUsers=Number of users
NbOfPermissions=Number of permissions
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
HierarchicalResponsible=Supervisor
HierarchicView=Hierarchical view

View File

@ -31,7 +31,7 @@ AddWebsite=Add website
Webpage=Web page/container
AddPage=Add page/container
PageContainer=Page
PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
PreviewOfSiteNotYetAvailable=The preview of your website <strong>%s</strong> is not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
SiteDeleted=Web site '%s' deleted
PageContent=Page/Contenair

View File

@ -49,3 +49,4 @@ Permission81=قراءة أوامر الشراء
MailToSendInvoice=فواتير العميل
MailToSendSupplierOrder=أوامر الشراء
MailToSendSupplierInvoice=فواتير المورد
Recommended=موصى به

View File

@ -1,2 +0,0 @@
# Dolibarr language file - Source file is en_US - products
ForceUpdateChildPriceSoc=Set same price on customer subsidiaries

View File

@ -1,4 +1,3 @@
# Dolibarr language file - Source file is en_US - ticket
Closed=مقفول
TicketSettings=الإعدادات
TicketCategory=Group

View File

@ -9,4 +9,3 @@ WEBSITE_ALIASALT=أسماء الصفحات / الأسماء المستعارة
WEBSITE_ALIASALTDesc=استخدم هنا قائمة بأسماء / أسماء مستعارة أخرى بحيث يمكن الوصول إلى الصفحة أيضًا باستخدام هذه الأسماء / الأسماء المستعارة الأخرى (على سبيل المثال ، الاسم القديم بعد إعادة تسمية الاسم المستعار للحفاظ على الرابط الخلفي في عمل الرابط / الاسم القديم). النحو هو: <br> Alternativename1 ، و Alternativename2 ، ...
WEBSITE_CSS_URL=عنوان URL لملف CSS الخارجي
WEBSITE_CSS_INLINE=محتوى ملف CSS (مشترك لجميع الصفحات)
PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.

View File

@ -53,6 +53,7 @@ InternalUser=Internal user
ExternalUser=External user
InternalUsers=Internal users
ExternalUsers=External users
UserInterface=User interface
GUISetup=Display
SetupArea=Setup
UploadNewTemplate=Upload new template(s)
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
DownloadMoreSkins=More skins to download
SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset
SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset
ShowProfIdInAddress=Show professional id with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
ShowProfIdInAddress=Show professional ID with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number
TranslationUncomplete=Partial translation
MAIN_DISABLE_METEO=Disable meteorological view
MeteoStdMod=Standard mode
@ -1778,7 +1779,7 @@ ClickToDialSetup=Click To Dial module setup
ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable.
ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
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.
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 starting with "tel:" in your browser. If you need link that start with "sip:" or 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
@ -2133,7 +2134,8 @@ IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system co
PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
RecommendedValueIs=Recommended: %s
NotRecommended=Not recommanded
Recommended=Recommended
NotRecommended=Not recommended
ARestrictedPath=A restricted path
CheckForModuleUpdate=Check for external modules updates
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
@ -2144,3 +2146,5 @@ YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You s
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
DatabasePasswordObfuscated=Database password is obfuscated in conf file
DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file
APIsAreNotEnabled=APIs modules are not enabled
YouShouldSetThisToOff=You should set this to 0 or off

View File

@ -115,7 +115,7 @@ TransferTo=To
TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
CheckTransmitter=Sender
ValidateCheckReceipt=Validate this check receipt?
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes are possible it's done.
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated.
DeleteCheckReceipt=Delete this check receipt?
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
BankChecks=Bank checks

View File

@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
BoxTitleLastModifiedPropals=Latest %s modified proposals
BoxTitleLatestModifiedJobPositions=Latest %s modified jobs
BoxTitleLatestModifiedCandidatures=Latest %s modified candidatures
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
ForCustomersInvoices=Customers invoices
ForCustomersOrders=Customers orders
ForProposals=Proposals

View File

@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
WeighingScale=Weighing scale
ShowPriceHT = Display the column with the price excluding tax (on screen)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on receipt)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt)

View File

@ -301,3 +301,4 @@ ErrorActionCommPropertyUserowneridNotDefined=User's owner is required
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
CheckVersionFail=Version check fail
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.

View File

@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
NbVotes=Number of votes
#
# Status
#
@ -115,6 +116,9 @@ EvntOrgDuration = This conference starts on %s and ends on %s.
ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s.
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
EventType = Event type
LabelOfBooth=Booth label
LabelOfconference=Conference label
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
#
# Vote page

View File

@ -206,6 +206,7 @@ MigrationUserPhotoPath=Migration of photo paths for users
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
MigrationReloadModule=Reload module %s
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
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 <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.

View File

@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Show log of movements for couple product/lot
StockDetailPerBatch=Stock detail per lot
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
TooManyQtyForSerialNumber=You can only have one product %s for serial number %s
BatchLotNumberingModules=Options for automatic generation of batch products managed by lots
BatchSerialNumberingModules=Options for automatic generation of batch products managed by serial numbers
ManageLotMask=Custom mask
CustomMasks=Adds an option to define mask in the product card
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
CustomMasks=Option to define a different numbering mask for each product
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product)
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
LifeTime=Life span (in days)
EndOfLife=End of life

View File

@ -277,7 +277,7 @@ PriceByCustomer=Different prices for each customer
PriceCatalogue=A single sell price per product/service
PricingRule=Rules for selling prices
AddCustomerPrice=Add price by customer
ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries
PriceByCustomerLog=Log of previous customer prices
MinimumPriceLimit=Minimum price can't be lower then %s
MinimumRecommendedPrice=Minimum recommended price is: %s
@ -296,6 +296,7 @@ ComposedProductIncDecStock=Increase/Decrease stock on parent change
ComposedProduct=Child products
MinSupplierPrice=Minimum buying price
MinCustomerPrice=Minimum selling price
NoDynamicPrice=No dynamic price
DynamicPriceConfiguration=Dynamic price configuration
DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically.
AddVariable=Add Variable

View File

@ -17,8 +17,8 @@ TJM=Average daily rate
CurrentSalary=Current salary
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
LastSalaries=Latest %s salaries
AllSalaries=All salaries
SalariesStatistics=Salary statistics
# Export
SalariesAndPayments=Salaries and payments
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?

View File

@ -34,7 +34,8 @@ TicketDictResolution=Ticket - Resolution
TicketTypeShortCOM=Commercial question
TicketTypeShortHELP=Request for functionnal help
TicketTypeShortISSUE=Issue, bug or problem
TicketTypeShortISSUE=Issue or bug
TicketTypeShortPROBLEM=Problem
TicketTypeShortREQUEST=Change or enhancement request
TicketTypeShortPROJET=Project
TicketTypeShortOTHER=Other
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Assigned user
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
TypeContact_ticket_external_CONTRIBUTOR=External contributor
OriginEmail=Email source
OriginEmail=Reporter Email
Notify_TICKET_SENTBYMAIL=Send ticket message by email
# Status
Read=Read
Assigned=Assigned
InProgress=In progress
NeedMoreInformation=Waiting for information
NeedMoreInformation=Waiting for reporter feedback
NeedMoreInformationShort=Waiting for feedback
Answered=Answered
Waiting=Waiting
Closed=Closed
@ -160,7 +162,7 @@ CreatedBy=Created by
NewTicket=New Ticket
SubjectAnswerToTicket=Ticket answer
TicketTypeRequest=Request type
TicketCategory=Group
TicketCategory=Ticket categorization
SeeTicket=See ticket
TicketMarkedAsRead=Ticket has been marked as read
TicketReadOn=Read on
@ -211,6 +213,7 @@ TicketMessageHelp=Only this text will be saved in the message list on ticket car
TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values.
TimeElapsedSince=Time elapsed since
TicketTimeToRead=Time elapsed before read
TicketTimeElapsedBeforeSince=Time elapsed before / since
TicketContacts=Contacts ticket
TicketDocumentsLinked=Documents linked to ticket
ConfirmReOpenTicket=Confirm reopen this ticket ?

View File

@ -97,8 +97,8 @@ LoginToCreate=Login to create
NameToCreate=Name of third party to create
YourRole=Your roles
YourQuotaOfUsersIsReached=Your quota of active users is reached !
NbOfUsers=No. of users
NbOfPermissions=No. of permissions
NbOfUsers=Number of users
NbOfPermissions=Number of permissions
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
HierarchicalResponsible=Supervisor
HierarchicView=Hierarchical view

View File

@ -31,7 +31,7 @@ AddWebsite=Add website
Webpage=Web page/container
AddPage=Add page/container
PageContainer=Page
PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
PreviewOfSiteNotYetAvailable=The preview of your website <strong>%s</strong> is not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
SiteDeleted=Web site '%s' deleted
PageContent=Page/Contenair

View File

@ -53,6 +53,7 @@ InternalUser=مستخدم داخلي
ExternalUser=مستخدم خارجي
InternalUsers=مستخدمين داخليين
ExternalUsers=مستخدمين خارجيين
UserInterface=User interface
GUISetup=العرض
SetupArea=التثبيت
UploadNewTemplate=تحميل قالب جديد
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=وظائف خدمة تصميم المواقع لا
DownloadMoreSkins=مزيد من جلود بتحميل
SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset
SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset
ShowProfIdInAddress=Show professional id with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
ShowProfIdInAddress=Show professional ID with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number
TranslationUncomplete=ترجمة جزئية
MAIN_DISABLE_METEO=Disable meteorological view
MeteoStdMod=Standard mode
@ -1778,7 +1779,7 @@ ClickToDialSetup=انقر لإعداد وحدة الاتصال الهاتفي
ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable.
ClickToDialUseTelLink=مجرد استخدام الرابط "الهاتف:" على أرقام الهواتف
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.
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 starting with "tel:" in your browser. If you need link that start with "sip:" or 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
@ -2133,7 +2134,8 @@ IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system co
PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
RecommendedValueIs=Recommended: %s
NotRecommended=Not recommanded
Recommended=موصى بها
NotRecommended=Not recommended
ARestrictedPath=A restricted path
CheckForModuleUpdate=Check for external modules updates
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
@ -2144,3 +2146,5 @@ YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You s
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
DatabasePasswordObfuscated=Database password is obfuscated in conf file
DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file
APIsAreNotEnabled=APIs modules are not enabled
YouShouldSetThisToOff=You should set this to 0 or off

View File

@ -115,7 +115,7 @@ TransferTo=إلى
TransferFromToDone=التحويل من <b>%s</b>إلى <b>%s</b>من <b>%s</b>%s قد تم تسجيلة.
CheckTransmitter=مرسل
ValidateCheckReceipt=تأكيد صحة الشيك المستلم؟
ConfirmValidateCheckReceipt=هل انت متأكد من رغبتك بإرسال إيصال هذا الشيك للتأكيد ؟ لا تغيير ممكن بعد الاكمال.
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated.
DeleteCheckReceipt=حذف هذا الشيك ؟
ConfirmDeleteCheckReceipt=هل انت متأكد أنك تريد حذف هذا الشيك؟
BankChecks=الشيكات المصرفية

View File

@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=أوامر الموردين: آخر %s تع
BoxTitleLastModifiedCustomerBills=فواتير العميل: آخر %s تعديل
BoxTitleLastModifiedCustomerOrders=أوامر المبيعات: آخر %s تعديل
BoxTitleLastModifiedPropals=أحدث %s العروض المعدلة
BoxTitleLatestModifiedJobPositions=أحدث %s وظائف المعدلة
BoxTitleLatestModifiedCandidatures=أحدث %s الترشيحات المعدلة
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
ForCustomersInvoices=فواتير العملاء
ForCustomersOrders=أوامر العملاء
ForProposals=عروض

View File

@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
WeighingScale=Weighing scale
ShowPriceHT = Display the column with the price excluding tax (on screen)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on receipt)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt)

View File

@ -301,3 +301,4 @@ ErrorActionCommPropertyUserowneridNotDefined=User's owner is required
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
CheckVersionFail=Version check fail
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.

View File

@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
NbVotes=Number of votes
#
# Status
#
@ -115,6 +116,9 @@ EvntOrgDuration = This conference starts on %s and ends on %s.
ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s.
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
EventType = نوع الحدث
LabelOfBooth=Booth label
LabelOfconference=Conference label
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
#
# Vote page

View File

@ -206,6 +206,7 @@ MigrationUserPhotoPath=Migration of photo paths for users
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
MigrationReloadModule=إعادة تحديث الوحدات %s
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
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 <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.

View File

@ -64,3 +64,5 @@ InterLineDuration=تدخل مدة خط
InterLineDesc=خط وصف التدخل
RepeatableIntervention=Template of intervention
ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template
Reopen=إعادة فتح
ConfirmReopenIntervention=Are you sure you want to open back the intervention <b>%s</b>?

View File

@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Show log of movements for couple product/lot
StockDetailPerBatch=Stock detail per lot
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
TooManyQtyForSerialNumber=You can only have one product %s for serial number %s
BatchLotNumberingModules=Options for automatic generation of batch products managed by lots
BatchSerialNumberingModules=Options for automatic generation of batch products managed by serial numbers
ManageLotMask=Custom mask
CustomMasks=Adds an option to define mask in the product card
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
CustomMasks=Option to define a different numbering mask for each product
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product)
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
LifeTime=Life span (in days)
EndOfLife=End of life

View File

@ -277,7 +277,7 @@ PriceByCustomer=Different prices for each customer
PriceCatalogue=A single sell price per product/service
PricingRule=Rules for selling prices
AddCustomerPrice=إضافة السعر من قبل العملاء
ForceUpdateChildPriceSoc=تعيين نفس السعر على الشركات التابعة العملاء
ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries
PriceByCustomerLog=سجل الأسعار العملاء السابقة
MinimumPriceLimit=سعر الحد الأدنى لا يمكن أن يكون أقل ثم٪ الصورة
MinimumRecommendedPrice=Minimum recommended price is: %s
@ -296,6 +296,7 @@ ComposedProductIncDecStock=زيادة / نقصان الأسهم على التغ
ComposedProduct=Child products
MinSupplierPrice=الحد الأدنى من سعر الشراء
MinCustomerPrice=Minimum selling price
NoDynamicPrice=No dynamic price
DynamicPriceConfiguration=التكوين سعر ديناميكي
DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically.
AddVariable=Add Variable

View File

@ -2,20 +2,23 @@
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
CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary
Salary=الراتب
Salaries=الرواتب
NewSalaryPayment=دفع الرواتب جديد
NewSalary=New salary
NewSalaryPayment=New salary card
AddSalaryPayment=Add salary payment
SalaryPayment=دفع الرواتب
SalariesPayments=مدفوعات الرواتب
SalariesPaymentsOf=Salaries payments of %s
ShowSalaryPayment=مشاهدة دفع الرواتب
THM=Average hourly rate
TJM=Average daily rate
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
LastSalaries=Latest %s salaries
AllSalaries=All salaries
SalariesStatistics=Salary statistics
# Export
SalariesAndPayments=Salaries and payments
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?

View File

@ -34,7 +34,8 @@ TicketDictResolution=Ticket - Resolution
TicketTypeShortCOM=Commercial question
TicketTypeShortHELP=Request for functionnal help
TicketTypeShortISSUE=Issue, bug or problem
TicketTypeShortISSUE=Issue or bug
TicketTypeShortPROBLEM=Problem
TicketTypeShortREQUEST=Change or enhancement request
TicketTypeShortPROJET=المشروع
TicketTypeShortOTHER=الآخر
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Assigned user
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
TypeContact_ticket_external_CONTRIBUTOR=External contributor
OriginEmail=Email source
OriginEmail=Reporter Email
Notify_TICKET_SENTBYMAIL=Send ticket message by email
# Status
Read=قرأ
Assigned=Assigned
InProgress=في تقدم
NeedMoreInformation=Waiting for information
NeedMoreInformation=Waiting for reporter feedback
NeedMoreInformationShort=Waiting for feedback
Answered=Answered
Waiting=انتظار
Closed=مغلق
@ -160,7 +162,7 @@ CreatedBy=Created by
NewTicket=New Ticket
SubjectAnswerToTicket=Ticket answer
TicketTypeRequest=Request type
TicketCategory=مجموعة
TicketCategory=Ticket categorization
SeeTicket=See ticket
TicketMarkedAsRead=Ticket has been marked as read
TicketReadOn=Read on
@ -211,6 +213,7 @@ TicketMessageHelp=Only this text will be saved in the message list on ticket car
TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values.
TimeElapsedSince=Time elapsed since
TicketTimeToRead=Time elapsed before read
TicketTimeElapsedBeforeSince=Time elapsed before / since
TicketContacts=Contacts ticket
TicketDocumentsLinked=Documents linked to ticket
ConfirmReOpenTicket=Confirm reopen this ticket ?

View File

@ -97,8 +97,8 @@ LoginToCreate=ادخل لخلق
NameToCreate=اسم طرف ثالث لخلق
YourRole=الأدوار الخاص
YourQuotaOfUsersIsReached=يتم التوصل إلى حصة الخاص بك من المستخدمين النشطين!
NbOfUsers=No. of users
NbOfPermissions=No. of permissions
NbOfUsers=Number of users
NbOfPermissions=Number of permissions
DontDowngradeSuperAdmin=يمكن فقط superadmin تقليله a superadmin
HierarchicalResponsible=المشرف
HierarchicView=الهرمي

View File

@ -31,7 +31,7 @@ AddWebsite=إضافة موقع إلكتروني
Webpage=الصفحة\\الحاوية
AddPage=إضافة صفحة\\حاوية
PageContainer=صفحة
PreviewOfSiteNotYetAvailable=إستعراض موقعك الإلكتروني <strong>%s</strong> غير متاح الان . عليك اولاً "<strong>إستيراد قالب موقع إلكتروني </strong>" او فقط "<strong>إضافة صفحة\\حاوية</strong>".
PreviewOfSiteNotYetAvailable=The preview of your website <strong>%s</strong> is not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
RequestedPageHasNoContentYet=الصفحة المطلوبة بالمعرف %s لاتحتوي بعد على محتوى ، او ان ملف القالب الخاص بها قد تم حذفه. قم بتعديل محتويات الصفحة لحل ذلك
SiteDeleted= الموقع "%s" تم حذهف
PageContent=الصفحة\\الحاوية

View File

@ -53,6 +53,7 @@ InternalUser=Internal user
ExternalUser=External user
InternalUsers=Internal users
ExternalUsers=External users
UserInterface=User interface
GUISetup=Display
SetupArea=Setup
UploadNewTemplate=Upload new template(s)
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
DownloadMoreSkins=More skins to download
SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset
SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset
ShowProfIdInAddress=Show professional id with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
ShowProfIdInAddress=Show professional ID with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number
TranslationUncomplete=Partial translation
MAIN_DISABLE_METEO=Disable meteorological view
MeteoStdMod=Standard mode
@ -1778,7 +1779,7 @@ ClickToDialSetup=Click To Dial module setup
ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable.
ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
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.
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 starting with "tel:" in your browser. If you need link that start with "sip:" or 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
@ -2133,7 +2134,8 @@ IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system co
PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
RecommendedValueIs=Recommended: %s
NotRecommended=Not recommanded
Recommended=Recommended
NotRecommended=Not recommended
ARestrictedPath=A restricted path
CheckForModuleUpdate=Check for external modules updates
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
@ -2144,3 +2146,5 @@ YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You s
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
DatabasePasswordObfuscated=Database password is obfuscated in conf file
DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file
APIsAreNotEnabled=APIs modules are not enabled
YouShouldSetThisToOff=You should set this to 0 or off

View File

@ -115,7 +115,7 @@ TransferTo=To
TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
CheckTransmitter=Sender
ValidateCheckReceipt=Validate this check receipt?
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes are possible it's done.
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated.
DeleteCheckReceipt=Delete this check receipt?
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
BankChecks=Bank checks

View File

@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
BoxTitleLastModifiedPropals=Latest %s modified proposals
BoxTitleLatestModifiedJobPositions=Latest %s modified jobs
BoxTitleLatestModifiedCandidatures=Latest %s modified candidatures
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
ForCustomersInvoices=Customers invoices
ForCustomersOrders=Customers orders
ForProposals=Proposals

View File

@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
WeighingScale=Weighing scale
ShowPriceHT = Display the column with the price excluding tax (on screen)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on receipt)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt)

View File

@ -301,3 +301,4 @@ ErrorActionCommPropertyUserowneridNotDefined=User's owner is required
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
CheckVersionFail=Version check fail
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.

View File

@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
NbVotes=Number of votes
#
# Status
#
@ -115,6 +116,9 @@ EvntOrgDuration = This conference starts on %s and ends on %s.
ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s.
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
EventType = Event type
LabelOfBooth=Booth label
LabelOfconference=Conference label
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
#
# Vote page

View File

@ -206,6 +206,7 @@ MigrationUserPhotoPath=Migration of photo paths for users
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
MigrationReloadModule=Reload module %s
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
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 <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.

View File

@ -64,3 +64,5 @@ InterLineDuration=Line duration intervention
InterLineDesc=Line description intervention
RepeatableIntervention=Template of intervention
ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template
Reopen=Reopen
ConfirmReopenIntervention=Are you sure you want to open back the intervention <b>%s</b>?

View File

@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Show log of movements for couple product/lot
StockDetailPerBatch=Stock detail per lot
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
TooManyQtyForSerialNumber=You can only have one product %s for serial number %s
BatchLotNumberingModules=Options for automatic generation of batch products managed by lots
BatchSerialNumberingModules=Options for automatic generation of batch products managed by serial numbers
ManageLotMask=Custom mask
CustomMasks=Adds an option to define mask in the product card
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
CustomMasks=Option to define a different numbering mask for each product
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product)
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
LifeTime=Life span (in days)
EndOfLife=End of life

View File

@ -277,7 +277,7 @@ PriceByCustomer=Different prices for each customer
PriceCatalogue=A single sell price per product/service
PricingRule=Rules for selling prices
AddCustomerPrice=Add price by customer
ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries
PriceByCustomerLog=Log of previous customer prices
MinimumPriceLimit=Minimum price can't be lower then %s
MinimumRecommendedPrice=Minimum recommended price is: %s
@ -296,6 +296,7 @@ ComposedProductIncDecStock=Increase/Decrease stock on parent change
ComposedProduct=Child products
MinSupplierPrice=Minimum buying price
MinCustomerPrice=Minimum selling price
NoDynamicPrice=No dynamic price
DynamicPriceConfiguration=Dynamic price configuration
DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically.
AddVariable=Add Variable

View File

@ -2,20 +2,23 @@
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
CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary
Salary=Salary
Salaries=Salaries
NewSalaryPayment=New salary payment
NewSalary=New salary
NewSalaryPayment=New salary card
AddSalaryPayment=Add salary payment
SalaryPayment=Salary payment
SalariesPayments=Salaries payments
SalariesPaymentsOf=Salaries payments of %s
ShowSalaryPayment=Show salary payment
THM=Average hourly rate
TJM=Average daily rate
CurrentSalary=Current salary
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
LastSalaries=Latest %s salaries
AllSalaries=All salaries
SalariesStatistics=Salary statistics
# Export
SalariesAndPayments=Salaries and payments
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?

View File

@ -34,7 +34,8 @@ TicketDictResolution=Ticket - Resolution
TicketTypeShortCOM=Commercial question
TicketTypeShortHELP=Request for functionnal help
TicketTypeShortISSUE=Issue, bug or problem
TicketTypeShortISSUE=Issue or bug
TicketTypeShortPROBLEM=Problem
TicketTypeShortREQUEST=Change or enhancement request
TicketTypeShortPROJET=Project
TicketTypeShortOTHER=Other
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Assigned user
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
TypeContact_ticket_external_CONTRIBUTOR=External contributor
OriginEmail=Email source
OriginEmail=Reporter Email
Notify_TICKET_SENTBYMAIL=Send ticket message by email
# Status
Read=Read
Assigned=Assigned
InProgress=In progress
NeedMoreInformation=Waiting for information
NeedMoreInformation=Waiting for reporter feedback
NeedMoreInformationShort=Waiting for feedback
Answered=Answered
Waiting=Waiting
Closed=Closed
@ -160,7 +162,7 @@ CreatedBy=Created by
NewTicket=New Ticket
SubjectAnswerToTicket=Ticket answer
TicketTypeRequest=Request type
TicketCategory=Group
TicketCategory=Ticket categorization
SeeTicket=See ticket
TicketMarkedAsRead=Ticket has been marked as read
TicketReadOn=Read on
@ -211,6 +213,7 @@ TicketMessageHelp=Only this text will be saved in the message list on ticket car
TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values.
TimeElapsedSince=Time elapsed since
TicketTimeToRead=Time elapsed before read
TicketTimeElapsedBeforeSince=Time elapsed before / since
TicketContacts=Contacts ticket
TicketDocumentsLinked=Documents linked to ticket
ConfirmReOpenTicket=Confirm reopen this ticket ?

View File

@ -97,8 +97,8 @@ LoginToCreate=Login to create
NameToCreate=Name of third party to create
YourRole=Your roles
YourQuotaOfUsersIsReached=Your quota of active users is reached !
NbOfUsers=No. of users
NbOfPermissions=No. of permissions
NbOfUsers=Number of users
NbOfPermissions=Number of permissions
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
HierarchicalResponsible=Supervisor
HierarchicView=Hierarchical view

View File

@ -31,7 +31,7 @@ AddWebsite=Add website
Webpage=Web page/container
AddPage=Add page/container
PageContainer=Page
PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
PreviewOfSiteNotYetAvailable=The preview of your website <strong>%s</strong> is not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
SiteDeleted=Web site '%s' deleted
PageContent=Page/Contenair

View File

@ -53,6 +53,7 @@ InternalUser=Вътрешен потребител
ExternalUser=Външен потребител
InternalUsers=Вътрешни потребители
ExternalUsers=Външни потребители
UserInterface=User interface
GUISetup=Интерфейс
SetupArea=Настройки
UploadNewTemplate=Качване на нов(и) шаблон(и)
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=SSL функциите не са налични в
DownloadMoreSkins=Изтегляне на повече теми
SimpleNumRefModelDesc=Returns the reference number in the format %syymm-nnnn where yy is the year, mm is the month and nnnn is a sequential auto-incrementing number with no reset
SimpleNumRefNoDateModelDesc=Returns the reference number in the format %s-nnnn where nnnn is a sequential auto-incrementing number with no reset
ShowProfIdInAddress=Показване на идентификационни данни в полетата с адреси
ShowVATIntaInAddress=Скриване на вътрешнообщностния номер по ДДС в полетата с адреси
ShowProfIdInAddress=Show professional ID with addresses
ShowVATIntaInAddress=Hide intra-Community VAT number
TranslationUncomplete=Частичен превод
MAIN_DISABLE_METEO=Деактивиране на метеорологичния изглед
MeteoStdMod=Стандартен режим
@ -1778,7 +1779,7 @@ ClickToDialSetup=Настройка на модула за набиране (Cli
ClickToDialUrlDesc=URL, който се извиква при кликване върху телефонен номер. В URL адреса може да използвате маркери <br> <b>__PHONETO__</b>, който ще бъде заменен с телефонния номер на лицето, на което ще се обаждате <br> <b>__PHONEFROM__</b>, който ще бъде заменен с телефонния номер на обаждащия се (вашият) <br> <b>__LOGIN__</b>, който ще бъде заменен с clicktodial потребителско име (дефиниран в картата на потребителя) <br> <b>__PASS__</b>, който ще бъде заменен с clicktodial парола (дефинирана в картата на потребителя).
ClickToDialDesc=This module change phone numbers, when using a desktop computer, into clickable links. A click will call the number. This can be used to start the phone call when using a soft phone on your desktop or when using a CTI system based on SIP protocol for example. Note: When using a smartphone, phone numbers are always clickable.
ClickToDialUseTelLink=Просто използвайте връзката "tel:" за телефонни номера
ClickToDialUseTelLinkDesc=Използвайте този метод, ако вашите потребители имат softphone или софтуерен интерфейс, инсталиран на същия компютър заедно с браузъра и се обаждат, когато кликнете върху връзка във вашия браузър, която започва "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 starting with "tel:" in your browser. If you need link that start with "sip:" or 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=Точка за продажба
CashDeskSetup=Настройка на модул Точка за продажби
@ -2133,7 +2134,8 @@ IfCLINotRequiredYouShouldDisablePHPFunctions=Except if you need to run system co
PHPFunctionsRequiredForCLI=For shell purpose (like scheduled job backup or running an anitivurs program), you must keep PHP functions
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
RecommendedValueIs=Recommended: %s
NotRecommended=Not recommanded
Recommended=Препоръчителна
NotRecommended=Not recommended
ARestrictedPath=A restricted path
CheckForModuleUpdate=Check for external modules updates
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
@ -2144,3 +2146,5 @@ YouEnableDeprecatedWSAPIsUseRESTAPIsInstead=You enabled deprecated WS API. You s
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
DatabasePasswordObfuscated=Database password is obfuscated in conf file
DatabasePasswordNotObfuscated=Database password is NOT obfuscated in conf file
APIsAreNotEnabled=APIs modules are not enabled
YouShouldSetThisToOff=You should set this to 0 or off

View File

@ -115,7 +115,7 @@ TransferTo=За
TransferFromToDone=Прехвърлянето от <b>%s</b> към <b>%s</b> на <b>%s</b> %s беше записано.
CheckTransmitter=Подател
ValidateCheckReceipt=Валидиране на тази чекова разписка?
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes are possible it's done.
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated.
DeleteCheckReceipt=Изтриване на тази чекова разписка?
ConfirmDeleteCheckReceipt=Сигурни ли сте, че искате да изтриете тази чекова разписка?
BankChecks=Банкови чекове

View File

@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=Поръчки за покупка: %s по
BoxTitleLastModifiedCustomerBills=Фактури за продажба: %s последно променени
BoxTitleLastModifiedCustomerOrders=Поръчки за продажба: %s последно променени
BoxTitleLastModifiedPropals=Търговски предложения: %s последно променени
BoxTitleLatestModifiedJobPositions=Latest %s modified jobs
BoxTitleLatestModifiedCandidatures=Latest %s modified candidatures
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
ForCustomersInvoices=Фактури за продажба
ForCustomersOrders=Поръчки на продажба
ForProposals=Предложения

View File

@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
WeighingScale=Weighing scale
ShowPriceHT = Display the column with the price excluding tax (on screen)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on receipt)
ShowPriceHTOnReceipt = Display the column with the price excluding tax (on the receipt)

View File

@ -301,3 +301,4 @@ ErrorActionCommPropertyUserowneridNotDefined=User's owner is required
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
CheckVersionFail=Version check fail
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.

View File

@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
SERVICE_BOOTH_LOCATION = Service used for the invoice row about a booth location
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
NbVotes=Number of votes
#
# Status
#
@ -115,6 +116,9 @@ EvntOrgDuration = This conference starts on %s and ends on %s.
ConferenceAttendeeFee = Conference attendee fee for the event : '%s' occurring from %s to %s.
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
EventType = Тип събитие
LabelOfBooth=Booth label
LabelOfconference=Conference label
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
#
# Vote page

View File

@ -206,6 +206,7 @@ MigrationUserPhotoPath=Миграция на пътя до снимки на п
MigrationFieldsSocialNetworks=Миграция на потребителски полета за социални мрежи (%s)
MigrationReloadModule=Презареждане на модул %s
MigrationResetBlockedLog=Нулиране на модула BlockedLog за алгоритъм v7
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
ShowNotAvailableOptions=Показване на недостъпни опции
HideNotAvailableOptions=Скриване на недостъпни опции
ErrorFoundDuringMigration=По време на процеса на миграция са докладвани грешки, така че следващата стъпка не е възможна. За да игнорирате грешките, може да <a href="%s"> кликнете тук </a>, но приложението или някои функции може да не работят правилно, докато грешките не бъдат отстранени.

View File

@ -64,3 +64,5 @@ InterLineDuration=Продължителност на реда в интерве
InterLineDesc=Описание на реда в интервенцията
RepeatableIntervention=Шаблон на интервенция
ToCreateAPredefinedIntervention=За да създадете предварително определена или повтаряща се интервенция, създайте интервенция и я превърнете в шаблон за интервенция.
Reopen=Повторно отваряне
ConfirmReopenIntervention=Are you sure you want to open back the intervention <b>%s</b>?

View File

@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Показване на движения за проду
StockDetailPerBatch=Наличност по партида
SerialNumberAlreadyInUse=Сериен номер %s е вече използван от друг продукт %s
TooManyQtyForSerialNumber=You can only have one product %s for serial number %s
BatchLotNumberingModules=Options for automatic generation of batch products managed by lots
BatchSerialNumberingModules=Options for automatic generation of batch products managed by serial numbers
ManageLotMask=Custom mask
CustomMasks=Adds an option to define mask in the product card
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
CustomMasks=Option to define a different numbering mask for each product
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
BatchSerialNumberingModules=Numbering rule for automatic generation of serial number (for products with property 1 unique lot/serial for each product)
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
LifeTime=Life span (in days)
EndOfLife=End of life

View File

@ -277,7 +277,7 @@ PriceByCustomer=Различни цени за всеки клиент
PriceCatalogue=Една продажна цена за продукт / услуга
PricingRule=Правила за продажни цени
AddCustomerPrice=Добавяне на цена за клиент
ForceUpdateChildPriceSoc=Определяне на една и съща цена за филиали на клиента
ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries
PriceByCustomerLog=История на предишни цени за клиент
MinimumPriceLimit=Минималната цена не може да бъде по-ниска от %s
MinimumRecommendedPrice=Минималната препоръчителна цена е: %s
@ -296,6 +296,7 @@ ComposedProductIncDecStock=Увеличаване / намаляване на н
ComposedProduct=Съставни продукти
MinSupplierPrice=Минимална покупната цена
MinCustomerPrice=Минимална продажна цена
NoDynamicPrice=No dynamic price
DynamicPriceConfiguration=Динамична ценова конфигурация
DynamicPriceDesc=Можете да дефинирате математически формули за изчисляване на клиентски или доставни цени. Тези формули могат да използват всички математически оператори, някои константи и променливи. Тук можете да определите променливите, които искате да използвате. Ако променливата се нуждае от автоматична актуализация, можете да дефинирате външен URL адрес, за да позволите на Dolibarr да актуализира стойността автоматично.
AddVariable=Добавяне на променлива

View File

@ -2,20 +2,23 @@
SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Счетоводна сметка, използвана за служители на контрагенти
SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Специализираната счетоводна сметка, дефинирана в картата на потребителя, ще се използва само за вторично счетоводно отчитане. Тя ще бъде използвана в регистъра на главната счетоводна книга и като стойност по подразбиране за вторично счетоводно отчитане, ако не е дефинирана специализирана потребителска счетоводна сметка за потребителя.
SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Счетоводна сметка по подразбиране за плащане на заплати
CREATE_NEW_SALARY_WITHOUT_AUTO_PAYMENT=By default, leave empty the option "Automatically create a total payment" when creating a Salary
Salary=Заплата
Salaries=Заплати
NewSalaryPayment=Ново плащане на заплата
NewSalary=New salary
NewSalaryPayment=New salary card
AddSalaryPayment=Добавяне на плащане на заплата
SalaryPayment=Плащане на заплата
SalariesPayments=Плащания на заплати
SalariesPaymentsOf=Salaries payments of %s
ShowSalaryPayment=Показване на плащане на заплата
THM=Средна почасова ставка
TJM=Средна дневна ставка
CurrentSalary=Текуща заплата
THMDescription=Тази стойност може да се използва за изчисляване на разходите за времето, което е отделено по проект, ако модула проекти се използва.
TJMDescription=Тази стойност понастоящем е информативна и не се използва за изчисления
LastSalaries=Плащания на заплати: %s последни
AllSalaries=Всички плащания на заплати
LastSalaries=Latest %s salaries
AllSalaries=All salaries
SalariesStatistics=Статистика на заплати
# Export
SalariesAndPayments=Заплати и плащания
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?

View File

@ -34,7 +34,8 @@ TicketDictResolution=Тикет - Решения
TicketTypeShortCOM=Търговски въпрос
TicketTypeShortHELP=Молба за асистенция
TicketTypeShortISSUE=Въпрос, грешка или проблем
TicketTypeShortISSUE=Issue or bug
TicketTypeShortPROBLEM=Problem
TicketTypeShortREQUEST=Заявка за подобрение
TicketTypeShortPROJET=Проект
TicketTypeShortOTHER=Друго
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Отговорен служител
TypeContact_ticket_external_SUPPORTCLI=Контакт на контрагента проследяващ тикета
TypeContact_ticket_external_CONTRIBUTOR=Сътрудник от страна на контрагента
OriginEmail=Имейл източник
OriginEmail=Reporter Email
Notify_TICKET_SENTBYMAIL=Изпращане на тикет съобщението по имейл
# Status
Read=Прочетен
Assigned=Възложен
InProgress=В изпълнение
NeedMoreInformation=В очакване на подробности
NeedMoreInformation=Waiting for reporter feedback
NeedMoreInformationShort=Waiting for feedback
Answered=Отговорен
Waiting=В изчакване
Closed=Приключен
@ -160,7 +162,7 @@ CreatedBy=Създаден от
NewTicket=Нов тикет
SubjectAnswerToTicket=Отговор на тикет
TicketTypeRequest=Вид на тикета
TicketCategory=Група
TicketCategory=Ticket categorization
SeeTicket=Преглед на тикет
TicketMarkedAsRead=Тикетът е маркиран като прочетен
TicketReadOn=Прочетен на
@ -211,6 +213,7 @@ TicketMessageHelp=Само този текст ще бъде запазен в
TicketMessageSubstitutionReplacedByGenericValues=Заместващите променливи се заменят с общи стойности.
TimeElapsedSince=Изминало време
TicketTimeToRead=Изминало време преди прочитане
TicketTimeElapsedBeforeSince=Time elapsed before / since
TicketContacts=Контакти
TicketDocumentsLinked=Документи свързани с тикета
ConfirmReOpenTicket=Потвърдете повторното отваряне на този тикет?

View File

@ -97,8 +97,8 @@ LoginToCreate=Потребителско име
NameToCreate=Име на контрагент за създаване
YourRole=Вашите роли
YourQuotaOfUsersIsReached=Вашата квота за активни потребители е достигната!
NbOfUsers=Брой потребители
NbOfPermissions=Брой права
NbOfUsers=Number of users
NbOfPermissions=Number of permissions
DontDowngradeSuperAdmin=Само супер администратор може да понижи супер администратор
HierarchicalResponsible=Ръководител
HierarchicView=Йерархичен изглед

Some files were not shown because too many files have changed in this diff Show More