Merge branch 'Dolibarr:develop' into add-ticket-categories-functions
This commit is contained in:
commit
f0599095ee
21
ChangeLog
21
ChangeLog
@ -2,6 +2,27 @@
|
|||||||
English Dolibarr ChangeLog
|
English Dolibarr ChangeLog
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
***** ChangeLog for 13.0.4 compared to 13.0.2 *****
|
||||||
|
|
||||||
|
FIX: Allow disabling of a module (not a dangerous action) even if there is problem with token (due to bugged modules).
|
||||||
|
FIX: 13.0 - fatal - missing inclusion of ajax.lib.php for calling `ajax_autocompleter()`
|
||||||
|
FIX: #17919 pictures in docs.
|
||||||
|
FIX: #18006
|
||||||
|
FIX: Accountancy - if we define a date start, automatic binding try to continue to solve old binding
|
||||||
|
FIX: Accoutancy Limit date payment not registered on purchases operations
|
||||||
|
FIX: Can't edit replacement invoice
|
||||||
|
FIX: deposit can create credit note in payment conf
|
||||||
|
FIX: division by zero on create
|
||||||
|
FIX: holiday: balances not updated correctly with pgsql because of case sensitivity field
|
||||||
|
FIX: holiday: status filter parameter has been renamed but not in links it was used
|
||||||
|
FIX: List and Create Companies Left Menus
|
||||||
|
FIX: method exists
|
||||||
|
FIX: need to add payment sum to getlibstatus function in object linked block
|
||||||
|
FIX: permission to close a proposal when using advanced permissions
|
||||||
|
FIX: Problem of z-index with popup and top menu
|
||||||
|
FIX: same thing on supplier orders
|
||||||
|
FIX: Status of invoice when making a replacement invoice
|
||||||
|
FIX: update contact birthday alert
|
||||||
|
|
||||||
***** ChangeLog for 14.0.0 compared to 13.0.0 *****
|
***** ChangeLog for 14.0.0 compared to 13.0.0 *****
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -99,14 +99,16 @@ print "<br>\n";
|
|||||||
/**
|
/**
|
||||||
* Edit parameters
|
* Edit parameters
|
||||||
*/
|
*/
|
||||||
print "\n".'<script type="text/javascript" language="javascript">';
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
print '$(document).ready(function () {
|
print "\n".'<script type="text/javascript" language="javascript">';
|
||||||
|
print '$(document).ready(function () {
|
||||||
$("#selectcountry_id").change(function() {
|
$("#selectcountry_id").change(function() {
|
||||||
document.form_index.action.value="updateedit";
|
document.form_index.action.value="updateedit";
|
||||||
document.form_index.submit();
|
document.form_index.submit();
|
||||||
});
|
});
|
||||||
});';
|
});';
|
||||||
print '</script>'."\n";
|
print '</script>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'" name="form_index">';
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'" name="form_index">';
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
|||||||
@ -384,21 +384,23 @@ print "<br>\n";
|
|||||||
/**
|
/**
|
||||||
* Edit parameters
|
* Edit parameters
|
||||||
*/
|
*/
|
||||||
print "\n".'<script type="text/javascript" language="javascript">';
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
print '$(document).ready(function () {
|
print "\n".'<script type="text/javascript" language="javascript">';
|
||||||
|
print '$(document).ready(function () {
|
||||||
$("#selectcountry_id").change(function() {
|
$("#selectcountry_id").change(function() {
|
||||||
document.form_index.action.value="updateedit";
|
document.form_index.action.value="updateedit";
|
||||||
document.form_index.submit();
|
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 '<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="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="update">';
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
print '<table class="noborder centpercent editmode">';
|
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
|
// Name
|
||||||
print '<tr class="oddeven"><td class="fieldrequired wordbreak"><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
|
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)
|
// IDs of the company (country-specific)
|
||||||
print '<div class="div-table-responsive-no-min">';
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder centpercent editmode">';
|
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");
|
$langs->load("companies");
|
||||||
|
|
||||||
@ -668,7 +670,7 @@ print '</div>';
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
print '<table class="noborder centpercent editmode">';
|
print '<table class="noborder centpercent editmode">';
|
||||||
print '<tr class="liste_titre">';
|
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>\n";
|
||||||
|
|
||||||
print '<tr class="oddeven"><td><label for="SOCIETE_FISCAL_MONTH_START">'.$langs->trans("FiscalMonthStart").'</label></td><td>';
|
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 '<table class="noborder centpercent editmode">';
|
||||||
print '<tr class="liste_titre">';
|
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"> </td>';
|
print '<td class="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
// Main tax
|
// 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">';
|
print '<td colspan="2">';
|
||||||
$tooltiphelp = '';
|
$tooltiphelp = '';
|
||||||
if ($mysoc->country_code == 'FR') {
|
if ($mysoc->country_code == 'FR') {
|
||||||
@ -713,7 +715,7 @@ print "</table>";
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
print '<table class="noborder centpercent editmode">';
|
print '<table class="noborder centpercent editmode">';
|
||||||
print '<tr class="liste_titre">';
|
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"> </td>';
|
print '<td class="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -747,7 +749,7 @@ if ($mysoc->useLocalTax(1)) {
|
|||||||
if (empty($mysoc->country_code)) {
|
if (empty($mysoc->country_code)) {
|
||||||
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
|
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
|
||||||
} else {
|
} 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 '<br>';
|
||||||
print '<table class="noborder centpercent editmode">';
|
print '<table class="noborder centpercent editmode">';
|
||||||
print '<tr class="liste_titre">';
|
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"> </td>';
|
print '<td class="right"> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -790,7 +792,7 @@ if ($mysoc->useLocalTax(2)) {
|
|||||||
if (empty($mysoc->country_code)) {
|
if (empty($mysoc->country_code)) {
|
||||||
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
|
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
|
||||||
} else {
|
} 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)) {
|
if (empty($mysoc->country_code)) {
|
||||||
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
|
print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
|
||||||
} else {
|
} 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>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -413,8 +413,8 @@ if ($action != 'create') {
|
|||||||
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
|
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
|
||||||
*/
|
*/
|
||||||
print '<table class="border centpercent tableforfield">';
|
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 class="fieldrequired">'.$langs->trans("Label").'</td><td><input type="text" name="label" value="'.GETPOST('label', 'alphanohtml').'" autofocus></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("Email").'</td><td><input type="text" name="email" value="'.GETPOST('email', 'alphanohtml').'"></td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("Signature").'</td><td>';
|
print '<tr><td>'.$langs->trans("Signature").'</td><td>';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
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%');
|
$doleditor = new DolEditor('signature', GETPOST('signature'), '', 138, 'dolibarr_notes', 'In', true, true, empty($conf->global->FCKEDITOR_ENABLE_USERSIGN) ? 0 : 1, ROWS_4, '90%');
|
||||||
|
|||||||
@ -481,7 +481,9 @@ print load_fiche_titre($langs->trans("ModulesSetup"), '', 'title_setup');
|
|||||||
$deschelp = '';
|
$deschelp = '';
|
||||||
if ($mode == 'common' || $mode == 'commonkanban') {
|
if ($mode == 'common' || $mode == 'commonkanban') {
|
||||||
$desc = $langs->trans("ModulesDesc", '{picto}');
|
$desc = $langs->trans("ModulesDesc", '{picto}');
|
||||||
|
$desc .= ' '.$langs->trans("ModulesDesc2", '{picto2}');
|
||||||
$desc = str_replace('{picto}', img_picto('', 'switch_off'), $desc);
|
$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
|
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";
|
$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 '<div class="imgmaxheight50 logo_setup"></div>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td>'.$langs->trans("TryToUseTheModuleBuilder", $langs->transnoentitiesnoconv("ModuleBuilder")).'</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>';
|
||||||
|
|
||||||
print '<tr class="oddeven" height="80">'."\n";
|
print '<tr class="oddeven" height="80">'."\n";
|
||||||
|
|||||||
@ -25,6 +25,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require '../../main.inc.php';
|
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");
|
$langs->load("admin");
|
||||||
|
|
||||||
@ -35,6 +37,10 @@ if (!$user->admin) {
|
|||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
if ($action == 'convert') {
|
if ($action == 'convert') {
|
||||||
$sql = "ALTER TABLE ".$db->escape(GETPOST("table", "aZ09"))." ENGINE=INNODB";
|
$sql = "ALTER TABLE ".$db->escape(GETPOST("table", "aZ09"))." ENGINE=INNODB";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
@ -82,6 +88,7 @@ if (!$base) {
|
|||||||
print '<div class="div-table-responsive-no-min">';
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder">';
|
print '<table class="noborder">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>#</td>';
|
||||||
print '<td>'.$langs->trans("TableName").'</td>';
|
print '<td>'.$langs->trans("TableName").'</td>';
|
||||||
print '<td colspan="2">'.$langs->trans("Type").'</td>';
|
print '<td colspan="2">'.$langs->trans("Type").'</td>';
|
||||||
print '<td>'.$langs->trans("Format").'</td>';
|
print '<td>'.$langs->trans("Format").'</td>';
|
||||||
@ -105,7 +112,18 @@ if (!$base) {
|
|||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
print '<tr class="oddeven">';
|
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>';
|
print '<td>'.$obj->Engine.'</td>';
|
||||||
if (isset($obj->Engine) && $obj->Engine == "MyISAM") {
|
if (isset($obj->Engine) && $obj->Engine == "MyISAM") {
|
||||||
print '<td><a class="reposition" href="database-tables.php?action=convert&table='.$obj->Name.'">'.$langs->trans("Convert").' InnoDb</a></td>';
|
print '<td><a class="reposition" href="database-tables.php?action=convert&table='.$obj->Name.'">'.$langs->trans("Convert").' InnoDb</a></td>';
|
||||||
@ -142,6 +160,8 @@ if (!$base) {
|
|||||||
print '<div class="div-table-responsive-no-min">';
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder">';
|
print '<table class="noborder">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
|
|
||||||
|
print '<td>#</td>';
|
||||||
print '<td>'.$langs->trans("TableName").'</td>';
|
print '<td>'.$langs->trans("TableName").'</td>';
|
||||||
print '<td>Nb of tuples</td>';
|
print '<td>Nb of tuples</td>';
|
||||||
print '<td>Nb index fetcher.</td>';
|
print '<td>Nb index fetcher.</td>';
|
||||||
@ -160,6 +180,7 @@ if (!$base) {
|
|||||||
while ($i < $num) {
|
while ($i < $num) {
|
||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.($i+1).'</td>';
|
||||||
print '<td>'.$row[0].'</td>';
|
print '<td>'.$row[0].'</td>';
|
||||||
print '<td class="right">'.$row[1].'</td>';
|
print '<td class="right">'.$row[1].'</td>';
|
||||||
print '<td class="right">'.$row[2].'</td>';
|
print '<td class="right">'.$row[2].'</td>';
|
||||||
@ -179,6 +200,7 @@ if (!$base) {
|
|||||||
print '<div class="div-table-responsive-no-min">';
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder">';
|
print '<table class="noborder">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>#</td>';
|
||||||
print '<td>'.$langs->trans("TableName").'</td>';
|
print '<td>'.$langs->trans("TableName").'</td>';
|
||||||
print '<td>'.$langs->trans("NbOfRecord").'</td>';
|
print '<td>'.$langs->trans("NbOfRecord").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
@ -197,6 +219,7 @@ if (!$base) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.($i+1).'</td>';
|
||||||
print '<td>'.$row[0].'</td>';
|
print '<td>'.$row[0].'</td>';
|
||||||
print '<td>'.$count.'</td>';
|
print '<td>'.$count.'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|||||||
@ -79,7 +79,12 @@ $file_list = array('missing' => array(), 'updated' => array());
|
|||||||
|
|
||||||
// Local file to compare to
|
// 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));
|
$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;
|
$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
|
// Remote file to compare to
|
||||||
$xmlremote = GETPOST('xmlremote', 'alphanohtml');
|
$xmlremote = GETPOST('xmlremote', 'alphanohtml');
|
||||||
if (empty($xmlremote) && !empty($conf->global->MAIN_FILECHECK_URL)) {
|
if (empty($xmlremote) && !empty($conf->global->MAIN_FILECHECK_URL)) {
|
||||||
@ -150,6 +155,10 @@ if (GETPOST('target') == 'local') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$xml = simplexml_load_file($xmlfile);
|
$xml = simplexml_load_file($xmlfile);
|
||||||
|
if ($xml === false) {
|
||||||
|
print '<div class="warning">'.$langs->trans('XmlCorrupted').': '.$xmlfile.'</span>';
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
print '<div class="warning">'.$langs->trans('XmlNotFound').': '.$xmlfile.'</span>';
|
print '<div class="warning">'.$langs->trans('XmlNotFound').': '.$xmlfile.'</span>';
|
||||||
$error++;
|
$error++;
|
||||||
|
|||||||
@ -270,7 +270,7 @@ class Categorie extends CommonObject
|
|||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('constructCategory', $parameters, $this); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('constructCategory', $parameters, $this); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook >= 0 && !empty($hookmanager->resArray)) {
|
if ($reshook >= 0 && !empty($hookmanager->resArray)) {
|
||||||
$mapList = $hookmanager->resArray;
|
foreach ($hookmanager->resArray as $mapList) {
|
||||||
$mapId = $mapList['id'];
|
$mapId = $mapList['id'];
|
||||||
$mapCode = $mapList['code'];
|
$mapCode = $mapList['code'];
|
||||||
self::$MAP_ID_TO_CODE[$mapId] = $mapCode;
|
self::$MAP_ID_TO_CODE[$mapId] = $mapCode;
|
||||||
@ -282,6 +282,7 @@ class Categorie extends CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get map list
|
* Get map list
|
||||||
@ -1504,7 +1505,10 @@ class Categorie extends CommonObject
|
|||||||
} else {
|
} else {
|
||||||
$sql = "SELECT ct.fk_categorie, c.label, c.rowid";
|
$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 .= " 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').")";
|
$sql .= " AND c.entity IN (".getEntity('category').")";
|
||||||
|
|
||||||
$res = $this->db->query($sql);
|
$res = $this->db->query($sql);
|
||||||
|
|||||||
@ -1470,6 +1470,80 @@ if (!$error && ($action == 'affecttag' && $confirm == 'yes') && $permissiontoadd
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$error && ($massaction == 'enable' || ($action == 'enable' && $confirm == 'yes')) && $permissiontoadd) {
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
|
$objecttmp = new $objectclass($db);
|
||||||
|
$nbok = 0;
|
||||||
|
foreach ($toselect as $toselectid) {
|
||||||
|
$result = $objecttmp->fetch($toselectid);
|
||||||
|
if ($result>0) {
|
||||||
|
if (in_array($objecttmp->element, array('societe'))) {
|
||||||
|
$result =$objecttmp->setStatut(1);
|
||||||
|
}
|
||||||
|
if ($result <= 0) {
|
||||||
|
setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
|
||||||
|
$error++;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
$nbok++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
|
||||||
|
$error++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$error) {
|
||||||
|
if ($nbok > 1) {
|
||||||
|
setEventMessages($langs->trans("RecordsEnabled", $nbok), null, 'mesgs');
|
||||||
|
} else {
|
||||||
|
setEventMessages($langs->trans("RecordEnabled"), null, 'mesgs');
|
||||||
|
}
|
||||||
|
$db->commit();
|
||||||
|
} else {
|
||||||
|
$db->rollback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$error && ($massaction == 'disable' || ($action == 'disable' && $confirm == 'yes')) && $permissiontoadd) {
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
|
$objecttmp = new $objectclass($db);
|
||||||
|
$nbok = 0;
|
||||||
|
foreach ($toselect as $toselectid) {
|
||||||
|
$result = $objecttmp->fetch($toselectid);
|
||||||
|
if ($result>0) {
|
||||||
|
if (in_array($objecttmp->element, array('societe'))) {
|
||||||
|
$result =$objecttmp->setStatut(0);
|
||||||
|
}
|
||||||
|
if ($result <= 0) {
|
||||||
|
setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
|
||||||
|
$error++;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
$nbok++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
|
||||||
|
$error++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$error) {
|
||||||
|
if ($nbok > 1) {
|
||||||
|
setEventMessages($langs->trans("RecordsDisabled", $nbok), null, 'mesgs');
|
||||||
|
} else {
|
||||||
|
setEventMessages($langs->trans("RecordDisabled"), null, 'mesgs');
|
||||||
|
}
|
||||||
|
$db->commit();
|
||||||
|
} else {
|
||||||
|
$db->rollback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$parameters['toselect'] = $toselect;
|
$parameters['toselect'] = $toselect;
|
||||||
$parameters['uploaddir'] = $uploaddir;
|
$parameters['uploaddir'] = $uploaddir;
|
||||||
$parameters['massaction'] = $massaction;
|
$parameters['massaction'] = $massaction;
|
||||||
|
|||||||
@ -2006,6 +2006,7 @@ 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));
|
$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:'');
|
$extrafields_collapse_num = $this->attributes[$object->table_element]['pos'][$key].(!empty($object->id)?'_'.$object->id:'');
|
||||||
|
|
||||||
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
$out .= '<!-- Add js script to manage the collapse/uncollapse of extrafields separators '.$key.' -->'."\n";
|
$out .= '<!-- Add js script to manage the collapse/uncollapse of extrafields separators '.$key.' -->'."\n";
|
||||||
$out .= '<script type="text/javascript">'."\n";
|
$out .= '<script type="text/javascript">'."\n";
|
||||||
$out .= 'jQuery(document).ready(function(){'."\n";
|
$out .= 'jQuery(document).ready(function(){'."\n";
|
||||||
@ -2033,6 +2034,7 @@ class ExtraFields
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -272,8 +272,10 @@ class HookManager
|
|||||||
$parameters['currentcontext'] = $context;
|
$parameters['currentcontext'] = $context;
|
||||||
// Hooks that must return int (hooks with type 'addreplace')
|
// Hooks that must return int (hooks with type 'addreplace')
|
||||||
if ($hooktype == 'addreplace') {
|
if ($hooktype == 'addreplace') {
|
||||||
$resaction += $actionclassinstance->$method($parameters, $object, $action, $this); // $object and $action can be changed by method ($object->id during creation for example or $action to go back to other action for example)
|
$resactiontmp = $actionclassinstance->$method($parameters, $object, $action, $this); // $object and $action can be changed by method ($object->id during creation for example or $action to go back to other action for example)
|
||||||
if ($resaction < 0 || !empty($actionclassinstance->error) || (!empty($actionclassinstance->errors) && count($actionclassinstance->errors) > 0)) {
|
$resaction += $resactiontmp;
|
||||||
|
|
||||||
|
if ($resactiontmp < 0 || !empty($actionclassinstance->error) || (!empty($actionclassinstance->errors) && count($actionclassinstance->errors) > 0)) {
|
||||||
$error++;
|
$error++;
|
||||||
$this->error = $actionclassinstance->error;
|
$this->error = $actionclassinstance->error;
|
||||||
$this->errors = array_merge($this->errors, (array) $actionclassinstance->errors);
|
$this->errors = array_merge($this->errors, (array) $actionclassinstance->errors);
|
||||||
@ -281,13 +283,22 @@ class HookManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($actionclassinstance->results) && is_array($actionclassinstance->results)) {
|
if (isset($actionclassinstance->results) && is_array($actionclassinstance->results)) {
|
||||||
|
if ($resactiontmp > 0) {
|
||||||
|
$this->resArray = $actionclassinstance->results;
|
||||||
|
} else {
|
||||||
$this->resArray = array_merge($this->resArray, $actionclassinstance->results);
|
$this->resArray = array_merge($this->resArray, $actionclassinstance->results);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!empty($actionclassinstance->resprints)) {
|
if (!empty($actionclassinstance->resprints)) {
|
||||||
|
if ($resactiontmp > 0) {
|
||||||
|
$this->resPrint = $actionclassinstance->resprints;
|
||||||
|
} else {
|
||||||
$this->resPrint .= $actionclassinstance->resprints;
|
$this->resPrint .= $actionclassinstance->resprints;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Generic hooks that return a string or array (printLeftBlock, formAddObjectLine, formBuilddocOptions, ...)
|
// Generic hooks that return a string or array (printLeftBlock, formAddObjectLine, formBuilddocOptions, ...)
|
||||||
|
|
||||||
// TODO. this test should be done into the method of hook by returning nothing
|
// TODO. this test should be done into the method of hook by returning nothing
|
||||||
if (is_array($parameters) && !empty($parameters['special_code']) && $parameters['special_code'] > 3 && $parameters['special_code'] != $actionclassinstance->module_number) {
|
if (is_array($parameters) && !empty($parameters['special_code']) && $parameters['special_code'] > 3 && $parameters['special_code'] != $actionclassinstance->module_number) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@ -7273,7 +7273,7 @@ class Form
|
|||||||
public static function selectArrayAjax($htmlname, $url, $id = '', $moreparam = '', $moreparamtourl = '', $disabled = 0, $minimumInputLength = 1, $morecss = '', $callurlonselect = 0, $placeholder = '', $acceptdelayedhtml = 0)
|
public static function selectArrayAjax($htmlname, $url, $id = '', $moreparam = '', $moreparamtourl = '', $disabled = 0, $minimumInputLength = 1, $morecss = '', $callurlonselect = 0, $placeholder = '', $acceptdelayedhtml = 0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
global $delayedhtmlcontent;
|
global $delayedhtmlcontent; // Will be used later outside of this function
|
||||||
|
|
||||||
// TODO Use an internal dolibarr component instead of select2
|
// TODO Use an internal dolibarr component instead of select2
|
||||||
if (empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && !defined('REQUIRE_JQUERY_MULTISELECT')) {
|
if (empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && !defined('REQUIRE_JQUERY_MULTISELECT')) {
|
||||||
@ -7282,6 +7282,8 @@ class Form
|
|||||||
|
|
||||||
$out = '<select type="text" class="'.$htmlname.($morecss ? ' '.$morecss : '').'" '.($moreparam ? $moreparam.' ' : '').'name="'.$htmlname.'"></select>';
|
$out = '<select type="text" class="'.$htmlname.($morecss ? ' '.$morecss : '').'" '.($moreparam ? $moreparam.' ' : '').'name="'.$htmlname.'"></select>';
|
||||||
|
|
||||||
|
$outdelayed = '';
|
||||||
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
$tmpplugin = 'select2';
|
$tmpplugin = 'select2';
|
||||||
$outdelayed = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
|
$outdelayed = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
|
||||||
<script>
|
<script>
|
||||||
@ -7344,6 +7346,7 @@ class Form
|
|||||||
|
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
}
|
||||||
|
|
||||||
if ($acceptdelayedhtml) {
|
if ($acceptdelayedhtml) {
|
||||||
$delayedhtmlcontent .= $outdelayed;
|
$delayedhtmlcontent .= $outdelayed;
|
||||||
@ -7374,7 +7377,7 @@ class Form
|
|||||||
public static function selectArrayFilter($htmlname, $array, $id = '', $moreparam = '', $disableFiltering = 0, $disabled = 0, $minimumInputLength = 1, $morecss = '', $callurlonselect = 0, $placeholder = '', $acceptdelayedhtml = 0)
|
public static function selectArrayFilter($htmlname, $array, $id = '', $moreparam = '', $disableFiltering = 0, $disabled = 0, $minimumInputLength = 1, $morecss = '', $callurlonselect = 0, $placeholder = '', $acceptdelayedhtml = 0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
global $delayedhtmlcontent;
|
global $delayedhtmlcontent; // Will be used later outside of this function
|
||||||
|
|
||||||
// TODO Use an internal dolibarr component instead of select2
|
// TODO Use an internal dolibarr component instead of select2
|
||||||
if (empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && !defined('REQUIRE_JQUERY_MULTISELECT')) {
|
if (empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && !defined('REQUIRE_JQUERY_MULTISELECT')) {
|
||||||
@ -7393,6 +7396,8 @@ class Form
|
|||||||
$formattedarrayresult[] = $o;
|
$formattedarrayresult[] = $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$outdelayed = '';
|
||||||
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
$tmpplugin = 'select2';
|
$tmpplugin = 'select2';
|
||||||
$outdelayed = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
|
$outdelayed = "\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
|
||||||
<script>
|
<script>
|
||||||
@ -7461,6 +7466,7 @@ class Form
|
|||||||
|
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
}
|
||||||
|
|
||||||
if ($acceptdelayedhtml) {
|
if ($acceptdelayedhtml) {
|
||||||
$delayedhtmlcontent .= $outdelayed;
|
$delayedhtmlcontent .= $outdelayed;
|
||||||
@ -7503,7 +7509,7 @@ class Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add code for jquery to use multiselect
|
// 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".'<!-- JS CODE TO ENABLE select for id '.$htmlname.', addjscombo='.$addjscombo.' -->';
|
||||||
$out .= "\n".'<script>'."\n";
|
$out .= "\n".'<script>'."\n";
|
||||||
if ($addjscombo == 1) {
|
if ($addjscombo == 1) {
|
||||||
|
|||||||
@ -665,11 +665,11 @@ class FormTicket
|
|||||||
print ajax_combobox('select'.$htmlname);
|
print ajax_combobox('select'.$htmlname);
|
||||||
} elseif ($htmlname!='') {
|
} elseif ($htmlname!='') {
|
||||||
$groupticket=GETPOST($htmlname, 'aZ09');
|
$groupticket=GETPOST($htmlname, 'aZ09');
|
||||||
$groupticketchild=GETPOST($htmlname.'_child', 'aZ09');
|
$child_id=GETPOST($htmlname.'_child_id', 'aZ09')?GETPOST($htmlname.'_child_id', 'aZ09'):0;
|
||||||
$arraycodenotparent[] = "";
|
$arraycodenotparent[] = "";
|
||||||
$arrayidused = array();
|
$arrayidused = array();
|
||||||
$stringtoprint = '<span class="supportemailfield bold">'.$langs->trans("GroupOfTicket").'</span> ';
|
$stringtoprint = '<span class="supportemailfield bold">'.$langs->trans("GroupOfTicket").'</span> ';
|
||||||
$stringtoprint .= '<select name="'.$htmlname.'" id ="'.$htmlname.'" class="maxwidth500 minwidth400" child_id="0">';
|
$stringtoprint .= '<select id ="'.$htmlname.'" class="maxwidth500 minwidth400" child_id="0">';
|
||||||
$stringtoprint .= '<option value=""> </option>';
|
$stringtoprint .= '<option value=""> </option>';
|
||||||
|
|
||||||
$sql = "SELECT ctc.rowid, ctc.code, ctc.label, ctc.fk_parent, ";
|
$sql = "SELECT ctc.rowid, ctc.code, ctc.label, ctc.fk_parent, ";
|
||||||
@ -706,13 +706,17 @@ class FormTicket
|
|||||||
}
|
}
|
||||||
if ($num_rows_level0 == 1) {
|
if ($num_rows_level0 == 1) {
|
||||||
return '<input type="hidden" name="'.$htmlname.'" id="'.$htmlname.'" value="'.dol_escape_htmltag($groupvalue).'">';
|
return '<input type="hidden" name="'.$htmlname.'" id="'.$htmlname.'" value="'.dol_escape_htmltag($groupvalue).'">';
|
||||||
|
} else {
|
||||||
|
$stringtoprint .= '<input type="hidden" name="'.$htmlname.'" id="'.$htmlname.'_select" class="maxwidth500 minwidth400">';
|
||||||
|
$stringtoprint .= '<input type="hidden" name="'.$htmlname.'_child_id" id="'.$htmlname.'_select_child_id" class="maxwidth500 minwidth400">';
|
||||||
}
|
}
|
||||||
|
$stringtoprint .= '<input type="submit" value="Envoyer le formulaire">';
|
||||||
$stringtoprint .= '</select> ';
|
$stringtoprint .= '</select> ';
|
||||||
|
|
||||||
$levelid = 1;
|
$levelid = 1;
|
||||||
while ($levelid <= $use_multilevel) {
|
while ($levelid <= $use_multilevel) {
|
||||||
$tabscript = array();
|
$tabscript = array();
|
||||||
$stringtoprint .= '<select name="'.$htmlname.'_child_'.$levelid.'" id ="'.$htmlname.'_child_'.$levelid.'" class="maxwidth500 minwidth400 groupticketchild" child_id="'.$levelid.'">';
|
$stringtoprint .= '<select id ="'.$htmlname.'_child_'.$levelid.'" class="maxwidth500 minwidth400 groupticketchild" child_id="'.$levelid.'">';
|
||||||
$stringtoprint .= '<option value=""> </option>';
|
$stringtoprint .= '<option value=""> </option>';
|
||||||
|
|
||||||
$sql = "SELECT ctc.rowid, ctc.code, ctc.label, ctc.fk_parent, ctcjoin.code as codefather, ";
|
$sql = "SELECT ctc.rowid, ctc.code, ctc.label, ctc.fk_parent, ctcjoin.code as codefather, ";
|
||||||
@ -751,7 +755,7 @@ class FormTicket
|
|||||||
if ($isparent == 'NOTPARENT') {
|
if ($isparent == 'NOTPARENT') {
|
||||||
$arraycodenotparent[] = $groupvalue;
|
$arraycodenotparent[] = $groupvalue;
|
||||||
}
|
}
|
||||||
$iselected = $groupticketchild == $obj->code ?'selected':'';
|
$iselected = $groupticket == $obj->code ?'selected':'';
|
||||||
$stringtoprint .= '<option '.$iselected.' class="'.$htmlname.'_'.dol_escape_htmltag($fatherid).'_child_'.$levelid.'" value="'.dol_escape_htmltag($groupvalue).'" data-html="'.dol_escape_htmltag($grouplabel).'">'.dol_escape_htmltag($grouplabel).'</option>';
|
$stringtoprint .= '<option '.$iselected.' class="'.$htmlname.'_'.dol_escape_htmltag($fatherid).'_child_'.$levelid.'" value="'.dol_escape_htmltag($groupvalue).'" data-html="'.dol_escape_htmltag($grouplabel).'">'.dol_escape_htmltag($grouplabel).'</option>';
|
||||||
if (empty($tabscript[$groupcodefather])) {
|
if (empty($tabscript[$groupcodefather])) {
|
||||||
$tabscript[$groupcodefather] = 'if ($("#'.$htmlname.($levelid > 1 ?'_child_'.$levelid-1:'').'")[0].value == "'.dol_escape_js($groupcodefather).'"){
|
$tabscript[$groupcodefather] = 'if ($("#'.$htmlname.($levelid > 1 ?'_child_'.$levelid-1:'').'")[0].value == "'.dol_escape_js($groupcodefather).'"){
|
||||||
@ -769,14 +773,42 @@ class FormTicket
|
|||||||
dol_print_error($this->db);
|
dol_print_error($this->db);
|
||||||
}
|
}
|
||||||
$stringtoprint .='</select>';
|
$stringtoprint .='</select>';
|
||||||
//$stringtoprint .= ajax_combobox($htmlname.'_child_'.$levelid);
|
|
||||||
|
|
||||||
$stringtoprint .='<script>';
|
$stringtoprint .='<script>';
|
||||||
$stringtoprint .='arraynotparents = '.json_encode($arraycodenotparent).';';
|
$stringtoprint .='arraynotparents = '.json_encode($arraycodenotparent).';';
|
||||||
$stringtoprint .='if (arraynotparents.includes($("#'.$htmlname.($levelid > 1 ?'_child_'.$levelid-1:'').'")[0].value)){$("#'.$htmlname.'_child_'.$levelid.'").hide()}
|
$stringtoprint .='if (arraynotparents.includes($("#'.$htmlname.($levelid > 1 ?'_child_'.$levelid-1:'').'")[0].value)){
|
||||||
|
console.log("'.$htmlname.'_child_'.$levelid.'")
|
||||||
|
if($("#'.$htmlname.'_child_'.$levelid.'")[0].value == "" && ($("#'.$htmlname.'_child_'.$levelid.'").attr("child_id")>'.$child_id.')){
|
||||||
|
$("#'.$htmlname.'_child_'.$levelid.'").hide();
|
||||||
|
console.log("We hide '.$htmlname.'_child_'.$levelid.' input")
|
||||||
|
}else if(($("#'.$htmlname.'_child_'.$levelid.'").attr("child_id")!=0) && ($("#'.$htmlname.'_child_'.$levelid.'").attr("child_id")<'.$child_id.')){
|
||||||
|
$("#'.$htmlname.'_child_'.$levelid.'").attr("disabled",true);
|
||||||
|
console.log("We disable '.$htmlname.'_child_'.$levelid.' input");
|
||||||
|
}else{
|
||||||
|
$("#'.$htmlname.'_child_'.$levelid.'").attr("disabled",true);
|
||||||
|
$("#ticketcategory_select_child_id")[0].value = $("#'.$htmlname.'_child_'.$levelid.'").attr("child_id")
|
||||||
|
$("#ticketcategory_select")[0].value = $("#'.$htmlname.'_child_'.$levelid.'")[0].value;
|
||||||
|
console.log("We disable '.$htmlname.'_child_'.$levelid.' input and reload hidden input");
|
||||||
|
}
|
||||||
|
if(arraynotparents.includes("'.$groupticket.'") && '.$child_id.' == 0){
|
||||||
|
$("#ticketcategory_select_child_id")[0].value = $("#'.$htmlname.'").attr("child_id")
|
||||||
|
$("#ticketcategory_select")[0].value = $("#'.$htmlname.'")[0].value;
|
||||||
|
console.log("We choose '.$htmlname.' input and reload hidden input");
|
||||||
|
}
|
||||||
|
}
|
||||||
$("#'.$htmlname.($levelid > 1 ?'_child_'.$levelid-1:'').'").change(function() {
|
$("#'.$htmlname.($levelid > 1 ?'_child_'.$levelid-1:'').'").change(function() {
|
||||||
child_id = $("#'.$htmlname.($levelid > 1 ?'_child_'.$levelid-1:'').'").attr("child_id");
|
child_id = $("#'.$htmlname.($levelid > 1 ?'_child_'.$levelid:'').'").attr("child_id");
|
||||||
|
|
||||||
|
/* Change of value to select this value*/
|
||||||
|
if (arraynotparents.includes(this.value) || $(this).attr("child_id") == '.$use_multilevel.') {
|
||||||
|
$("#ticketcategory_select")[0].value = this.value;
|
||||||
|
$("#ticketcategory_select_child_id")[0].value = $(this).attr("child_id");
|
||||||
|
console.log("We choose to select "+ $("#ticketcategory_select")[0].value );
|
||||||
|
}else{
|
||||||
|
$("#ticketcategory_select")[0].value = "";
|
||||||
|
$("#ticketcategory_select_child_id")[0].value = "";
|
||||||
|
}
|
||||||
|
|
||||||
console.log("We select a new value into combo child_id="+child_id);
|
console.log("We select a new value into combo child_id="+child_id);
|
||||||
|
|
||||||
/* Hide all selected box that are child of the one modified */
|
/* Hide all selected box that are child of the one modified */
|
||||||
@ -803,7 +835,13 @@ class FormTicket
|
|||||||
$stringtoprint .='})';
|
$stringtoprint .='})';
|
||||||
$stringtoprint .='</script>';
|
$stringtoprint .='</script>';
|
||||||
}
|
}
|
||||||
|
$stringtoprint .='<script>';
|
||||||
|
$stringtoprint .='$("#'.$htmlname.'_child_'.$use_multilevel.'").change(function() {
|
||||||
|
$("#ticketcategory_select")[0].value = this.value;
|
||||||
|
$("#ticketcategory_select_child_id")[0].value = $(this).attr("child_id");
|
||||||
|
console.log($("#ticketcategory_select")[0].value);
|
||||||
|
})';
|
||||||
|
$stringtoprint .='</script>';
|
||||||
$stringtoprint .= ajax_combobox($htmlname);
|
$stringtoprint .= ajax_combobox($htmlname);
|
||||||
|
|
||||||
return $stringtoprint;
|
return $stringtoprint;
|
||||||
|
|||||||
@ -1899,7 +1899,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Status
|
// Status
|
||||||
$out .= '<td class="nowrap center">'.$actionstatic->LibStatut($histo[$key]['percent'], 3, 0, $histo[$key]['datestart']).'</td>';
|
$out .= '<td class="nowrap center">'.$actionstatic->LibStatut($histo[$key]['percent'], 2, 0, $histo[$key]['datestart']).'</td>';
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
$out .= '<td></td>';
|
$out .= '<td></td>';
|
||||||
|
|||||||
@ -114,8 +114,13 @@ function dol_print_cron_urls()
|
|||||||
|
|
||||||
print '<u>'.$langs->trans("FileToLaunchCronJobs").':</u><br>';
|
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]';
|
$pathtoscript = '/pathtoscript';
|
||||||
print '<textarea class="quatrevingtpercent">..'.$file."</textarea><br>\n";
|
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>';
|
print '<br>';
|
||||||
|
|
||||||
// Add note
|
// Add note
|
||||||
@ -131,7 +136,7 @@ function dol_print_cron_urls()
|
|||||||
if ($linuxlike) {
|
if ($linuxlike) {
|
||||||
print $langs->trans("CronExplainHowToRunUnix");
|
print $langs->trans("CronExplainHowToRunUnix");
|
||||||
print '<br>';
|
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.' > '.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.' > '.DOL_DATA_ROOT.'/cron_run_jobs.php.log</textarea><br>';
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("CronExplainHowToRunWin");
|
print $langs->trans("CronExplainHowToRunWin");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8487,8 +8487,10 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type,
|
|||||||
if (!empty($hookmanager)) {
|
if (!empty($hookmanager)) {
|
||||||
$parameters = array('object' => $object, 'mode' => $mode, 'head' => &$head);
|
$parameters = array('object' => $object, 'mode' => $mode, 'head' => &$head);
|
||||||
$reshook = $hookmanager->executeHooks('completeTabsHead', $parameters);
|
$reshook = $hookmanager->executeHooks('completeTabsHead', $parameters);
|
||||||
if ($reshook > 0) {
|
if ($reshook > 0) { // Hook ask to replace completely the array
|
||||||
$head = $hookmanager->resArray;
|
$head = $hookmanager->resArray;
|
||||||
|
} else { // Hook
|
||||||
|
$head = array_merge($head, $hookmanager->resArray);
|
||||||
}
|
}
|
||||||
$h = count($head);
|
$h = count($head);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,14 +84,14 @@ class modProductBatch extends DolibarrModules
|
|||||||
$this->const[$r][0] = "PRODUCTBATCH_LOT_ADDON";
|
$this->const[$r][0] = "PRODUCTBATCH_LOT_ADDON";
|
||||||
$this->const[$r][1] = "chaine";
|
$this->const[$r][1] = "chaine";
|
||||||
$this->const[$r][2] = "mod_lot_free";
|
$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;
|
$this->const[$r][4] = 0;
|
||||||
$r++;
|
$r++;
|
||||||
|
|
||||||
$this->const[$r][0] = "PRODUCTBATCH_SN_ADDON";
|
$this->const[$r][0] = "PRODUCTBATCH_SN_ADDON";
|
||||||
$this->const[$r][1] = "chaine";
|
$this->const[$r][1] = "chaine";
|
||||||
$this->const[$r][2] = "mod_sn_free";
|
$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;
|
$this->const[$r][4] = 0;
|
||||||
$r++;
|
$r++;
|
||||||
|
|
||||||
|
|||||||
@ -128,27 +128,27 @@ class mod_lot_advanced extends ModeleNumRefBatch
|
|||||||
/**
|
/**
|
||||||
* Return next free value
|
* Return next free value
|
||||||
*
|
*
|
||||||
* @param Product $objprod Object product
|
* @param Societe $objsoc Object Societe
|
||||||
* @param Object $object Object we need next value for
|
* @param Object $object Object we need next value for
|
||||||
* @return string Value if KO, <0 if KO
|
* @return string Value if KO, <0 if KO
|
||||||
*/
|
*/
|
||||||
public function getNextValue($objprod, $object)
|
public function getNextValue($objsoc, $object)
|
||||||
{
|
{
|
||||||
global $db, $conf;
|
global $db, $conf;
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
|
|
||||||
// We get cursor rule
|
// We get cursor rule
|
||||||
$mask = $conf->global->BATCH_ADVANCED_MASK;
|
$mask = $conf->global->LOT_ADVANCED_MASK;
|
||||||
|
|
||||||
if (!$mask) {
|
if (!$mask) {
|
||||||
$this->error = 'NotConfigured';
|
$this->error = 'NotConfigured';
|
||||||
return 0;
|
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;
|
return $numFinal;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -85,17 +85,21 @@ class mod_lot_standard extends ModeleNumRefBatch
|
|||||||
$coyymm = ''; $max = '';
|
$coyymm = ''; $max = '';
|
||||||
|
|
||||||
$posindice = strlen($this->prefix) + 6;
|
$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 .= " 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;
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$row = $db->fetch_row($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
if ($row) { $coyymm = substr($row[0], 0, 6); $max = $row[0]; }
|
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");
|
$langs->load("errors");
|
||||||
$this->error = $langs->trans('ErrorNumRefModel', $max);
|
$this->error = $langs->trans('ErrorNumRefModel', $max);
|
||||||
return false;
|
return false;
|
||||||
@ -117,23 +121,26 @@ class mod_lot_standard extends ModeleNumRefBatch
|
|||||||
|
|
||||||
// First, we get the max value
|
// First, we get the max value
|
||||||
$posindice = strlen($this->prefix) + 6;
|
$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 .= " 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;
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
if ($obj) $max = intval($obj->max);
|
if ($obj) {
|
||||||
else $max = 0;
|
$max = intval($obj->max);
|
||||||
|
} else {
|
||||||
|
$max = 0;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
dol_syslog("mod_lot_standard::getNextValue", LOG_DEBUG);
|
dol_syslog("mod_lot_standard::getNextValue", LOG_DEBUG);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//$date=time();
|
//$date=time();
|
||||||
$date = $object->date_creation;
|
$date = dol_now();
|
||||||
$yymm = strftime("%y%m", $date);
|
$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
|
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
|
||||||
|
|||||||
@ -139,16 +139,16 @@ class mod_sn_advanced extends ModeleNumRefBatch
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
|
|
||||||
// We get cursor rule
|
// We get cursor rule
|
||||||
$mask = $conf->global->BATCH_ADVANCED_MASK;
|
$mask = $conf->global->SN_ADVANCED_MASK;
|
||||||
|
|
||||||
if (!$mask) {
|
if (!$mask) {
|
||||||
$this->error = 'NotConfigured';
|
$this->error = 'NotConfigured';
|
||||||
return 0;
|
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;
|
return $numFinal;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -85,17 +85,21 @@ class mod_sn_standard extends ModeleNumRefBatch
|
|||||||
$coyymm = ''; $max = '';
|
$coyymm = ''; $max = '';
|
||||||
|
|
||||||
$posindice = strlen($this->prefix) + 6;
|
$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 .= " 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;
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$row = $db->fetch_row($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
if ($row) { $coyymm = substr($row[0], 0, 6); $max = $row[0]; }
|
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");
|
$langs->load("errors");
|
||||||
$this->error = $langs->trans('ErrorNumRefModel', $max);
|
$this->error = $langs->trans('ErrorNumRefModel', $max);
|
||||||
return false;
|
return false;
|
||||||
@ -107,33 +111,36 @@ class mod_sn_standard extends ModeleNumRefBatch
|
|||||||
/**
|
/**
|
||||||
* Return next free value
|
* Return next free value
|
||||||
*
|
*
|
||||||
* @param Product $objprod Object product
|
* @param Societe $objsoc Object product
|
||||||
* @param Object $object Object we need next value for
|
* @param Object $object Object we need next value for
|
||||||
* @return string Value if KO, <0 if KO
|
* @return string Value if KO, <0 if KO
|
||||||
*/
|
*/
|
||||||
public function getNextValue($objprod, $object)
|
public function getNextValue($objsoc, $object)
|
||||||
{
|
{
|
||||||
global $db, $conf;
|
global $db, $conf;
|
||||||
|
|
||||||
// First, we get the max value
|
// First, we get the max value
|
||||||
$posindice = strlen($this->prefix) + 6;
|
$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 .= " 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;
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
if ($obj) $max = intval($obj->max);
|
if ($obj) {
|
||||||
else $max = 0;
|
$max = intval($obj->max);
|
||||||
|
} else {
|
||||||
|
$max = 0;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
dol_syslog("mod_sn_standard::getNextValue", LOG_DEBUG);
|
dol_syslog("mod_sn_standard::getNextValue", LOG_DEBUG);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//$date=time();
|
//$date=time();
|
||||||
$date = $object->date_creation;
|
$date = dol_now();
|
||||||
$yymm = strftime("%y%m", $date);
|
$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
|
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
|
||||||
|
|||||||
@ -258,7 +258,6 @@ if (empty($reshook) && isset($extrafields->attributes[$object->table_element]['l
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Add code to manage list depending on others
|
// Add code to manage list depending on others
|
||||||
// TODO Test/enhance this with a more generic solution
|
// TODO Test/enhance this with a more generic solution
|
||||||
if (!empty($conf->use_javascript_ajax)) {
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
|
|||||||
@ -194,6 +194,14 @@ if ($massaction == 'presend') {
|
|||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($massaction == 'preenable') {
|
||||||
|
print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassEnabling"), $langs->trans("ConfirmMassEnablingQuestion", count($toselect)), "enable", null, '', 0, 200, 500, 1);
|
||||||
|
}
|
||||||
|
if ($massaction == 'predisable') {
|
||||||
|
print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDisabling"), $langs->trans("ConfirmMassDisablingQuestion", count($toselect)), "disable", null, '', 0, 200, 500, 1);
|
||||||
|
}
|
||||||
|
|
||||||
// Allow Pre-Mass-Action hook (eg for confirmation dialog)
|
// Allow Pre-Mass-Action hook (eg for confirmation dialog)
|
||||||
$parameters = array(
|
$parameters = array(
|
||||||
'toselect' => $toselect,
|
'toselect' => $toselect,
|
||||||
|
|||||||
@ -116,8 +116,10 @@ if ($action == 'set_DONATION_ACCOUNTINGACCOUNT') {
|
|||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
|
$action = ''; // To avoid to execute next actions
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
|
$action = ''; // To avoid to execute next actions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,14 +134,15 @@ if ($action == 'set_DONATION_MESSAGE') {
|
|||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
|
$action = ''; // To avoid to execute next actions
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
|
$action = ''; // To avoid to execute next actions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Other cases
|
||||||
* Action
|
$reg = array();
|
||||||
*/
|
|
||||||
if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) {
|
if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) {
|
||||||
$code = $reg[1];
|
$code = $reg[1];
|
||||||
if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) {
|
if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) {
|
||||||
|
|||||||
@ -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>';
|
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)
|
// 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"
|
// 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>';
|
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>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,7 +51,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array('bills', 'companies', 'interventions'));
|
$langs->loadLangs(array('bills', 'companies', 'interventions', 'stocks'));
|
||||||
|
|
||||||
$id = GETPOST('id', 'int');
|
$id = GETPOST('id', 'int');
|
||||||
$ref = GETPOST('ref', 'alpha');
|
$ref = GETPOST('ref', 'alpha');
|
||||||
@ -1079,7 +1079,7 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
// Confirm back to open
|
// Confirm back to open
|
||||||
if ($action == 'reopen') {
|
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
|
// Confirm deletion of line
|
||||||
|
|||||||
@ -367,7 +367,7 @@ ALTER TABLE llx_actioncomm_reminder ADD UNIQUE uk_actioncomm_reminder_unique (fk
|
|||||||
|
|
||||||
ALTER TABLE llx_actioncomm_reminder ADD INDEX idx_actioncomm_reminder_status (status);
|
ALTER TABLE llx_actioncomm_reminder ADD INDEX idx_actioncomm_reminder_status (status);
|
||||||
|
|
||||||
|
ALTER TABLE llx_inventorydet ADD COLUMN fk_warehouse integer DEFAULT 0;
|
||||||
ALTER TABLE llx_inventorydet ADD UNIQUE uk_inventorydet(fk_inventory, fk_warehouse, fk_product, batch);
|
ALTER TABLE llx_inventorydet ADD UNIQUE uk_inventorydet(fk_inventory, fk_warehouse, fk_product, batch);
|
||||||
|
|
||||||
ALTER TABLE llx_commandedet ADD COLUMN ref_ext varchar(255) AFTER label;
|
ALTER TABLE llx_commandedet ADD COLUMN ref_ext varchar(255) AFTER label;
|
||||||
|
|||||||
@ -569,3 +569,30 @@ create table llx_c_partnership_type
|
|||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|
||||||
DELETE FROM llx_rights_def WHERE module = 'hrm' AND perms = 'employee';
|
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;
|
||||||
|
|
||||||
|
|||||||
39
htdocs/install/mysql/migration/14.0.0-15.0.0.sql
Normal file
39
htdocs/install/mysql/migration/14.0.0-15.0.0.sql
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
--
|
||||||
|
-- Be carefull to requests order.
|
||||||
|
-- This file must be loaded by calling /install/index.php page
|
||||||
|
-- when current version is 14.0.0 or higher.
|
||||||
|
--
|
||||||
|
-- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y
|
||||||
|
-- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y
|
||||||
|
-- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new;
|
||||||
|
-- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;
|
||||||
|
-- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);
|
||||||
|
-- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname;
|
||||||
|
-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60);
|
||||||
|
-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
|
||||||
|
-- To create a unique index ALTER TABLE llx_table ADD UNIQUE INDEX uk_table_field (field);
|
||||||
|
-- To drop an index: -- VMYSQL4.1 DROP INDEX nomindex on llx_table
|
||||||
|
-- To drop an index: -- VPGSQL8.2 DROP INDEX nomindex
|
||||||
|
-- To make pk to be auto increment (mysql): -- VMYSQL4.3 ALTER TABLE llx_table CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
|
||||||
|
-- To make pk to be auto increment (postgres):
|
||||||
|
-- -- VPGSQL8.2 CREATE SEQUENCE llx_table_rowid_seq OWNED BY llx_table.rowid;
|
||||||
|
-- -- VPGSQL8.2 ALTER TABLE llx_table ADD PRIMARY KEY (rowid);
|
||||||
|
-- -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN rowid SET DEFAULT nextval('llx_table_rowid_seq');
|
||||||
|
-- -- VPGSQL8.2 SELECT setval('llx_table_rowid_seq', MAX(rowid)) FROM llx_table;
|
||||||
|
-- To set a field as NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL;
|
||||||
|
-- To set a field as NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL;
|
||||||
|
-- To set a field as NOT NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL;
|
||||||
|
-- To set a field as NOT NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL;
|
||||||
|
-- To set a field as default NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL;
|
||||||
|
-- Note: fields with type BLOB/TEXT can't have default value.
|
||||||
|
-- To rebuild sequence for postgresql after insert by forcing id autoincrement fields:
|
||||||
|
-- -- VPGSQL8.2 SELECT dol_util_rebuild_sequences();
|
||||||
|
|
||||||
|
|
||||||
|
-- Missing in v14 or lower
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- v15
|
||||||
|
|
||||||
21
htdocs/install/mysql/tables/llx_categorie_ticket.key.sql
Normal file
21
htdocs/install/mysql/tables/llx_categorie_ticket.key.sql
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
-- Copyright (C) 2021 EOXIA <dev@eoxia.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_categorie_ticket ADD PRIMARY KEY pk_categorie_ticket (fk_categorie, fk_ticket);
|
||||||
|
ALTER TABLE llx_categorie_ticket ADD INDEX idx_categorie_ticket_fk_categorie (fk_categorie);
|
||||||
|
ALTER TABLE llx_categorie_ticket ADD INDEX idx_categorie_ticket_fk_ticket (fk_ticket);
|
||||||
|
|
||||||
|
ALTER TABLE llx_categorie_ticket ADD CONSTRAINT fk_categorie_ticket_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid);
|
||||||
|
ALTER TABLE llx_categorie_ticket ADD CONSTRAINT fk_categorie_ticket_ticket_rowid FOREIGN KEY (fk_ticket) REFERENCES llx_ticket (rowid);
|
||||||
21
htdocs/install/mysql/tables/llx_categorie_ticket.sql
Normal file
21
htdocs/install/mysql/tables/llx_categorie_ticket.sql
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
-- Copyright (C) 2021 EOXIA <dev@eoxia.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/.
|
||||||
|
|
||||||
|
create table llx_categorie_ticket
|
||||||
|
(
|
||||||
|
fk_categorie integer NOT NULL,
|
||||||
|
fk_ticket integer NOT NULL,
|
||||||
|
import_key varchar(14)
|
||||||
|
)ENGINE=innodb;
|
||||||
@ -86,7 +86,7 @@ create table llx_facture
|
|||||||
fk_incoterms integer, -- for incoterms
|
fk_incoterms integer, -- for incoterms
|
||||||
location_incoterms varchar(255), -- for incoterms
|
location_incoterms varchar(255), -- for incoterms
|
||||||
|
|
||||||
fk_mode_transport integer, -- for intracomm report
|
fk_transport_mode integer, -- for intracomm report
|
||||||
|
|
||||||
situation_cycle_ref smallint, -- situation cycle reference
|
situation_cycle_ref smallint, -- situation cycle reference
|
||||||
situation_counter smallint, -- situation counter
|
situation_counter smallint, -- situation counter
|
||||||
|
|||||||
@ -74,7 +74,7 @@ create table llx_facture_fourn
|
|||||||
fk_incoterms integer, -- for incoterms
|
fk_incoterms integer, -- for incoterms
|
||||||
location_incoterms varchar(255), -- for incoterms
|
location_incoterms varchar(255), -- for incoterms
|
||||||
|
|
||||||
fk_mode_transport integer, -- for intracomm report
|
fk_transport_mode integer, -- for intracomm report
|
||||||
|
|
||||||
model_pdf varchar(255),
|
model_pdf varchar(255),
|
||||||
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
||||||
|
|||||||
31
htdocs/install/mysql/tables/llx_onlinesignature.sql
Normal file
31
htdocs/install/mysql/tables/llx_onlinesignature.sql
Normal 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;
|
||||||
21
htdocs/install/mysql/tables/llx_partnership.key.sql
Normal file
21
htdocs/install/mysql/tables/llx_partnership.key.sql
Normal 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);
|
||||||
40
htdocs/install/mysql/tables/llx_partnership.sql
Normal file
40
htdocs/install/mysql/tables/llx_partnership.sql
Normal 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;
|
||||||
@ -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);
|
||||||
25
htdocs/install/mysql/tables/llx_partnership_extrafields.sql
Normal file
25
htdocs/install/mysql/tables/llx_partnership_extrafields.sql
Normal 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;
|
||||||
@ -531,6 +531,14 @@ if (!$error && $db->connected && $action == "set") {
|
|||||||
if ($db->connected) {
|
if ($db->connected) {
|
||||||
$resultbis = 1;
|
$resultbis = 1;
|
||||||
|
|
||||||
|
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>'.$langs->trans("Error").": A password for database user is mandatory.</td></tr>";
|
||||||
|
} else {
|
||||||
// Create user
|
// Create user
|
||||||
$result = $db->DDLCreateUser($dolibarr_main_db_host, $dolibarr_main_db_user, $dolibarr_main_db_pass, $dolibarr_main_db_name);
|
$result = $db->DDLCreateUser($dolibarr_main_db_host, $dolibarr_main_db_user, $dolibarr_main_db_pass, $dolibarr_main_db_name);
|
||||||
|
|
||||||
@ -566,6 +574,7 @@ if (!$error && $db->connected && $action == "set") {
|
|||||||
print '<td>'.$langs->trans("Error").': '.$db->errno().' '.$db->error().($db->error ? '. '.$db->error : '')."</td></tr>";
|
print '<td>'.$langs->trans("Error").': '.$db->errno().' '.$db->error().($db->error ? '. '.$db->error : '')."</td></tr>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -53,6 +53,7 @@ InternalUser=Internal user
|
|||||||
ExternalUser=External user
|
ExternalUser=External user
|
||||||
InternalUsers=Internal users
|
InternalUsers=Internal users
|
||||||
ExternalUsers=External users
|
ExternalUsers=External users
|
||||||
|
UserInterface=User interface
|
||||||
GUISetup=Display
|
GUISetup=Display
|
||||||
SetupArea=Setup
|
SetupArea=Setup
|
||||||
UploadNewTemplate=Upload new template(s)
|
UploadNewTemplate=Upload new template(s)
|
||||||
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
|
|||||||
DownloadMoreSkins=More skins to download
|
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
|
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
|
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
|
ShowProfIdInAddress=Show professional ID with addresses
|
||||||
ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
|
ShowVATIntaInAddress=Hide intra-Community VAT number
|
||||||
TranslationUncomplete=Partial translation
|
TranslationUncomplete=Partial translation
|
||||||
MAIN_DISABLE_METEO=Disable meteorological view
|
MAIN_DISABLE_METEO=Disable meteorological view
|
||||||
MeteoStdMod=Standard mode
|
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).
|
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.
|
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
|
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) #####
|
##### Point Of Sale (CashDesk) #####
|
||||||
CashDesk=Point of Sale
|
CashDesk=Point of Sale
|
||||||
CashDeskSetup=Point of Sales module setup
|
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
|
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)
|
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
|
||||||
RecommendedValueIs=Recommended: %s
|
RecommendedValueIs=Recommended: %s
|
||||||
NotRecommended=Not recommanded
|
Recommended=Recommended
|
||||||
|
NotRecommended=Not recommended
|
||||||
ARestrictedPath=A restricted path
|
ARestrictedPath=A restricted path
|
||||||
CheckForModuleUpdate=Check for external modules updates
|
CheckForModuleUpdate=Check for external modules updates
|
||||||
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
|
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
|
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
|
||||||
DatabasePasswordObfuscated=Database password is obfuscated in conf file
|
DatabasePasswordObfuscated=Database password is obfuscated in conf file
|
||||||
DatabasePasswordNotObfuscated=Database password is NOT 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
|
||||||
|
|||||||
@ -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.
|
TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
|
||||||
CheckTransmitter=Sender
|
CheckTransmitter=Sender
|
||||||
ValidateCheckReceipt=Validate this check receipt?
|
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?
|
DeleteCheckReceipt=Delete this check receipt?
|
||||||
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
|
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
|
||||||
BankChecks=Bank checks
|
BankChecks=Bank checks
|
||||||
|
|||||||
@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified
|
|||||||
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
|
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
|
||||||
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
|
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
|
||||||
BoxTitleLastModifiedPropals=Latest %s modified proposals
|
BoxTitleLastModifiedPropals=Latest %s modified proposals
|
||||||
BoxTitleLatestModifiedJobPositions=Latest %s modified jobs
|
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
|
||||||
BoxTitleLatestModifiedCandidatures=Latest %s modified candidatures
|
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
|
||||||
ForCustomersInvoices=Customers invoices
|
ForCustomersInvoices=Customers invoices
|
||||||
ForCustomersOrders=Customers orders
|
ForCustomersOrders=Customers orders
|
||||||
ForProposals=Proposals
|
ForProposals=Proposals
|
||||||
|
|||||||
@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
|
|||||||
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
|
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
|
||||||
WeighingScale=Weighing scale
|
WeighingScale=Weighing scale
|
||||||
ShowPriceHT = Display the column with the price excluding tax (on screen)
|
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)
|
||||||
|
|||||||
@ -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
|
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
|
||||||
CheckVersionFail=Version check fail
|
CheckVersionFail=Version check fail
|
||||||
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
|
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
|
||||||
|
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.
|
||||||
|
|||||||
@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
|
|||||||
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
|
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_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
|
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
|
||||||
|
NbVotes=Number of votes
|
||||||
#
|
#
|
||||||
# Status
|
# 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.
|
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
|
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
|
||||||
EventType = Event type
|
EventType = Event type
|
||||||
|
LabelOfBooth=Booth label
|
||||||
|
LabelOfconference=Conference label
|
||||||
|
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
|
||||||
|
|
||||||
#
|
#
|
||||||
# Vote page
|
# Vote page
|
||||||
|
|||||||
@ -206,6 +206,7 @@ MigrationUserPhotoPath=Migration of photo paths for users
|
|||||||
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
|
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
|
||||||
MigrationReloadModule=Reload module %s
|
MigrationReloadModule=Reload module %s
|
||||||
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
||||||
|
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
|
||||||
ShowNotAvailableOptions=Show unavailable options
|
ShowNotAvailableOptions=Show unavailable options
|
||||||
HideNotAvailableOptions=Hide 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.
|
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.
|
||||||
|
|||||||
@ -64,3 +64,5 @@ InterLineDuration=Line duration intervention
|
|||||||
InterLineDesc=Line description intervention
|
InterLineDesc=Line description intervention
|
||||||
RepeatableIntervention=Template of intervention
|
RepeatableIntervention=Template of intervention
|
||||||
ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template
|
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>?
|
||||||
|
|||||||
@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Show log of movements for couple product/lot
|
|||||||
StockDetailPerBatch=Stock detail per lot
|
StockDetailPerBatch=Stock detail per lot
|
||||||
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
|
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
|
||||||
TooManyQtyForSerialNumber=You can only have one product %s for serial number %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
|
ManageLotMask=Custom mask
|
||||||
CustomMasks=Adds an option to define mask in the product card
|
CustomMasks=Option to define a different numbering mask for each product
|
||||||
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
|
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
|
||||||
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
|
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
|
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
|
||||||
LifeTime=Life span (in days)
|
LifeTime=Life span (in days)
|
||||||
EndOfLife=End of life
|
EndOfLife=End of life
|
||||||
|
|||||||
@ -277,7 +277,7 @@ PriceByCustomer=Different prices for each customer
|
|||||||
PriceCatalogue=A single sell price per product/service
|
PriceCatalogue=A single sell price per product/service
|
||||||
PricingRule=Rules for selling prices
|
PricingRule=Rules for selling prices
|
||||||
AddCustomerPrice=Add price by customer
|
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
|
PriceByCustomerLog=Log of previous customer prices
|
||||||
MinimumPriceLimit=Minimum price can't be lower then %s
|
MinimumPriceLimit=Minimum price can't be lower then %s
|
||||||
MinimumRecommendedPrice=Minimum recommended price is: %s
|
MinimumRecommendedPrice=Minimum recommended price is: %s
|
||||||
@ -296,6 +296,7 @@ ComposedProductIncDecStock=Increase/Decrease stock on parent change
|
|||||||
ComposedProduct=Child products
|
ComposedProduct=Child products
|
||||||
MinSupplierPrice=Minimum buying price
|
MinSupplierPrice=Minimum buying price
|
||||||
MinCustomerPrice=Minimum selling price
|
MinCustomerPrice=Minimum selling price
|
||||||
|
NoDynamicPrice=No dynamic price
|
||||||
DynamicPriceConfiguration=Dynamic price configuration
|
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.
|
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
|
AddVariable=Add Variable
|
||||||
|
|||||||
@ -2,20 +2,23 @@
|
|||||||
SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
|
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_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined.
|
||||||
SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments
|
SALARIES_ACCOUNTING_ACCOUNT_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
|
Salary=Salary
|
||||||
Salaries=Salaries
|
Salaries=Salaries
|
||||||
NewSalaryPayment=New salary payment
|
NewSalary=New salary
|
||||||
|
NewSalaryPayment=New salary card
|
||||||
AddSalaryPayment=Add salary payment
|
AddSalaryPayment=Add salary payment
|
||||||
SalaryPayment=Salary payment
|
SalaryPayment=Salary payment
|
||||||
SalariesPayments=Salaries payments
|
SalariesPayments=Salaries payments
|
||||||
|
SalariesPaymentsOf=Salaries payments of %s
|
||||||
ShowSalaryPayment=Show salary payment
|
ShowSalaryPayment=Show salary payment
|
||||||
THM=Average hourly rate
|
THM=Average hourly rate
|
||||||
TJM=Average daily rate
|
TJM=Average daily rate
|
||||||
CurrentSalary=Current salary
|
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
|
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
|
TJMDescription=This value is currently for information only and is not used for any calculation
|
||||||
LastSalaries=Latest %s salary payments
|
LastSalaries=Latest %s salaries
|
||||||
AllSalaries=All salary payments
|
AllSalaries=All salaries
|
||||||
SalariesStatistics=Salary statistics
|
SalariesStatistics=Salary statistics
|
||||||
# Export
|
|
||||||
SalariesAndPayments=Salaries and payments
|
SalariesAndPayments=Salaries and payments
|
||||||
|
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?
|
||||||
|
|||||||
@ -34,7 +34,8 @@ TicketDictResolution=Ticket - Resolution
|
|||||||
|
|
||||||
TicketTypeShortCOM=Commercial question
|
TicketTypeShortCOM=Commercial question
|
||||||
TicketTypeShortHELP=Request for functionnal help
|
TicketTypeShortHELP=Request for functionnal help
|
||||||
TicketTypeShortISSUE=Issue, bug or problem
|
TicketTypeShortISSUE=Issue or bug
|
||||||
|
TicketTypeShortPROBLEM=Problem
|
||||||
TicketTypeShortREQUEST=Change or enhancement request
|
TicketTypeShortREQUEST=Change or enhancement request
|
||||||
TicketTypeShortPROJET=Project
|
TicketTypeShortPROJET=Project
|
||||||
TicketTypeShortOTHER=Other
|
TicketTypeShortOTHER=Other
|
||||||
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Assigned user
|
|||||||
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
|
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
|
||||||
TypeContact_ticket_external_CONTRIBUTOR=External contributor
|
TypeContact_ticket_external_CONTRIBUTOR=External contributor
|
||||||
|
|
||||||
OriginEmail=Email source
|
OriginEmail=Reporter Email
|
||||||
Notify_TICKET_SENTBYMAIL=Send ticket message by email
|
Notify_TICKET_SENTBYMAIL=Send ticket message by email
|
||||||
|
|
||||||
# Status
|
# Status
|
||||||
Read=Read
|
Read=Read
|
||||||
Assigned=Assigned
|
Assigned=Assigned
|
||||||
InProgress=In progress
|
InProgress=In progress
|
||||||
NeedMoreInformation=Waiting for information
|
NeedMoreInformation=Waiting for reporter feedback
|
||||||
|
NeedMoreInformationShort=Waiting for feedback
|
||||||
Answered=Answered
|
Answered=Answered
|
||||||
Waiting=Waiting
|
Waiting=Waiting
|
||||||
Closed=Closed
|
Closed=Closed
|
||||||
@ -160,7 +162,7 @@ CreatedBy=Created by
|
|||||||
NewTicket=New Ticket
|
NewTicket=New Ticket
|
||||||
SubjectAnswerToTicket=Ticket answer
|
SubjectAnswerToTicket=Ticket answer
|
||||||
TicketTypeRequest=Request type
|
TicketTypeRequest=Request type
|
||||||
TicketCategory=Group
|
TicketCategory=Ticket categorization
|
||||||
SeeTicket=See ticket
|
SeeTicket=See ticket
|
||||||
TicketMarkedAsRead=Ticket has been marked as read
|
TicketMarkedAsRead=Ticket has been marked as read
|
||||||
TicketReadOn=Read on
|
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.
|
TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values.
|
||||||
TimeElapsedSince=Time elapsed since
|
TimeElapsedSince=Time elapsed since
|
||||||
TicketTimeToRead=Time elapsed before read
|
TicketTimeToRead=Time elapsed before read
|
||||||
|
TicketTimeElapsedBeforeSince=Time elapsed before / since
|
||||||
TicketContacts=Contacts ticket
|
TicketContacts=Contacts ticket
|
||||||
TicketDocumentsLinked=Documents linked to ticket
|
TicketDocumentsLinked=Documents linked to ticket
|
||||||
ConfirmReOpenTicket=Confirm reopen this ticket ?
|
ConfirmReOpenTicket=Confirm reopen this ticket ?
|
||||||
|
|||||||
@ -97,8 +97,8 @@ LoginToCreate=Login to create
|
|||||||
NameToCreate=Name of third party to create
|
NameToCreate=Name of third party to create
|
||||||
YourRole=Your roles
|
YourRole=Your roles
|
||||||
YourQuotaOfUsersIsReached=Your quota of active users is reached !
|
YourQuotaOfUsersIsReached=Your quota of active users is reached !
|
||||||
NbOfUsers=No. of users
|
NbOfUsers=Number of users
|
||||||
NbOfPermissions=No. of permissions
|
NbOfPermissions=Number of permissions
|
||||||
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
|
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
|
||||||
HierarchicalResponsible=Supervisor
|
HierarchicalResponsible=Supervisor
|
||||||
HierarchicView=Hierarchical view
|
HierarchicView=Hierarchical view
|
||||||
|
|||||||
@ -31,7 +31,7 @@ AddWebsite=Add website
|
|||||||
Webpage=Web page/container
|
Webpage=Web page/container
|
||||||
AddPage=Add page/container
|
AddPage=Add page/container
|
||||||
PageContainer=Page
|
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.
|
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
|
SiteDeleted=Web site '%s' deleted
|
||||||
PageContent=Page/Contenair
|
PageContent=Page/Contenair
|
||||||
|
|||||||
@ -49,3 +49,4 @@ Permission81=قراءة أوامر الشراء
|
|||||||
MailToSendInvoice=فواتير العميل
|
MailToSendInvoice=فواتير العميل
|
||||||
MailToSendSupplierOrder=أوامر الشراء
|
MailToSendSupplierOrder=أوامر الشراء
|
||||||
MailToSendSupplierInvoice=فواتير المورد
|
MailToSendSupplierInvoice=فواتير المورد
|
||||||
|
Recommended=موصى به
|
||||||
|
|||||||
@ -1,2 +0,0 @@
|
|||||||
# Dolibarr language file - Source file is en_US - products
|
|
||||||
ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
|
|
||||||
@ -1,4 +1,3 @@
|
|||||||
# Dolibarr language file - Source file is en_US - ticket
|
# Dolibarr language file - Source file is en_US - ticket
|
||||||
Closed=مقفول
|
Closed=مقفول
|
||||||
TicketSettings=الإعدادات
|
TicketSettings=الإعدادات
|
||||||
TicketCategory=Group
|
|
||||||
|
|||||||
@ -9,4 +9,3 @@ WEBSITE_ALIASALT=أسماء الصفحات / الأسماء المستعارة
|
|||||||
WEBSITE_ALIASALTDesc=استخدم هنا قائمة بأسماء / أسماء مستعارة أخرى بحيث يمكن الوصول إلى الصفحة أيضًا باستخدام هذه الأسماء / الأسماء المستعارة الأخرى (على سبيل المثال ، الاسم القديم بعد إعادة تسمية الاسم المستعار للحفاظ على الرابط الخلفي في عمل الرابط / الاسم القديم). النحو هو: <br> Alternativename1 ، و Alternativename2 ، ...
|
WEBSITE_ALIASALTDesc=استخدم هنا قائمة بأسماء / أسماء مستعارة أخرى بحيث يمكن الوصول إلى الصفحة أيضًا باستخدام هذه الأسماء / الأسماء المستعارة الأخرى (على سبيل المثال ، الاسم القديم بعد إعادة تسمية الاسم المستعار للحفاظ على الرابط الخلفي في عمل الرابط / الاسم القديم). النحو هو: <br> Alternativename1 ، و Alternativename2 ، ...
|
||||||
WEBSITE_CSS_URL=عنوان URL لملف CSS الخارجي
|
WEBSITE_CSS_URL=عنوان URL لملف CSS الخارجي
|
||||||
WEBSITE_CSS_INLINE=محتوى ملف 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>'.
|
|
||||||
|
|||||||
@ -53,6 +53,7 @@ InternalUser=Internal user
|
|||||||
ExternalUser=External user
|
ExternalUser=External user
|
||||||
InternalUsers=Internal users
|
InternalUsers=Internal users
|
||||||
ExternalUsers=External users
|
ExternalUsers=External users
|
||||||
|
UserInterface=User interface
|
||||||
GUISetup=Display
|
GUISetup=Display
|
||||||
SetupArea=Setup
|
SetupArea=Setup
|
||||||
UploadNewTemplate=Upload new template(s)
|
UploadNewTemplate=Upload new template(s)
|
||||||
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
|
|||||||
DownloadMoreSkins=More skins to download
|
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
|
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
|
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
|
ShowProfIdInAddress=Show professional ID with addresses
|
||||||
ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
|
ShowVATIntaInAddress=Hide intra-Community VAT number
|
||||||
TranslationUncomplete=Partial translation
|
TranslationUncomplete=Partial translation
|
||||||
MAIN_DISABLE_METEO=Disable meteorological view
|
MAIN_DISABLE_METEO=Disable meteorological view
|
||||||
MeteoStdMod=Standard mode
|
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).
|
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.
|
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
|
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) #####
|
##### Point Of Sale (CashDesk) #####
|
||||||
CashDesk=Point of Sale
|
CashDesk=Point of Sale
|
||||||
CashDeskSetup=Point of Sales module setup
|
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
|
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)
|
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
|
||||||
RecommendedValueIs=Recommended: %s
|
RecommendedValueIs=Recommended: %s
|
||||||
NotRecommended=Not recommanded
|
Recommended=Recommended
|
||||||
|
NotRecommended=Not recommended
|
||||||
ARestrictedPath=A restricted path
|
ARestrictedPath=A restricted path
|
||||||
CheckForModuleUpdate=Check for external modules updates
|
CheckForModuleUpdate=Check for external modules updates
|
||||||
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
|
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
|
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
|
||||||
DatabasePasswordObfuscated=Database password is obfuscated in conf file
|
DatabasePasswordObfuscated=Database password is obfuscated in conf file
|
||||||
DatabasePasswordNotObfuscated=Database password is NOT 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
|
||||||
|
|||||||
@ -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.
|
TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
|
||||||
CheckTransmitter=Sender
|
CheckTransmitter=Sender
|
||||||
ValidateCheckReceipt=Validate this check receipt?
|
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?
|
DeleteCheckReceipt=Delete this check receipt?
|
||||||
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
|
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
|
||||||
BankChecks=Bank checks
|
BankChecks=Bank checks
|
||||||
|
|||||||
@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified
|
|||||||
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
|
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
|
||||||
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
|
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
|
||||||
BoxTitleLastModifiedPropals=Latest %s modified proposals
|
BoxTitleLastModifiedPropals=Latest %s modified proposals
|
||||||
BoxTitleLatestModifiedJobPositions=Latest %s modified jobs
|
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
|
||||||
BoxTitleLatestModifiedCandidatures=Latest %s modified candidatures
|
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
|
||||||
ForCustomersInvoices=Customers invoices
|
ForCustomersInvoices=Customers invoices
|
||||||
ForCustomersOrders=Customers orders
|
ForCustomersOrders=Customers orders
|
||||||
ForProposals=Proposals
|
ForProposals=Proposals
|
||||||
|
|||||||
@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
|
|||||||
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
|
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
|
||||||
WeighingScale=Weighing scale
|
WeighingScale=Weighing scale
|
||||||
ShowPriceHT = Display the column with the price excluding tax (on screen)
|
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)
|
||||||
|
|||||||
@ -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
|
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
|
||||||
CheckVersionFail=Version check fail
|
CheckVersionFail=Version check fail
|
||||||
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
|
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
|
||||||
|
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.
|
||||||
|
|||||||
@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
|
|||||||
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
|
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_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
|
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
|
||||||
|
NbVotes=Number of votes
|
||||||
#
|
#
|
||||||
# Status
|
# 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.
|
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
|
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
|
||||||
EventType = Event type
|
EventType = Event type
|
||||||
|
LabelOfBooth=Booth label
|
||||||
|
LabelOfconference=Conference label
|
||||||
|
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
|
||||||
|
|
||||||
#
|
#
|
||||||
# Vote page
|
# Vote page
|
||||||
|
|||||||
@ -206,6 +206,7 @@ MigrationUserPhotoPath=Migration of photo paths for users
|
|||||||
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
|
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
|
||||||
MigrationReloadModule=Reload module %s
|
MigrationReloadModule=Reload module %s
|
||||||
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
||||||
|
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
|
||||||
ShowNotAvailableOptions=Show unavailable options
|
ShowNotAvailableOptions=Show unavailable options
|
||||||
HideNotAvailableOptions=Hide 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.
|
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.
|
||||||
|
|||||||
@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Show log of movements for couple product/lot
|
|||||||
StockDetailPerBatch=Stock detail per lot
|
StockDetailPerBatch=Stock detail per lot
|
||||||
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
|
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
|
||||||
TooManyQtyForSerialNumber=You can only have one product %s for serial number %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
|
ManageLotMask=Custom mask
|
||||||
CustomMasks=Adds an option to define mask in the product card
|
CustomMasks=Option to define a different numbering mask for each product
|
||||||
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
|
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
|
||||||
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
|
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
|
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
|
||||||
LifeTime=Life span (in days)
|
LifeTime=Life span (in days)
|
||||||
EndOfLife=End of life
|
EndOfLife=End of life
|
||||||
|
|||||||
@ -277,7 +277,7 @@ PriceByCustomer=Different prices for each customer
|
|||||||
PriceCatalogue=A single sell price per product/service
|
PriceCatalogue=A single sell price per product/service
|
||||||
PricingRule=Rules for selling prices
|
PricingRule=Rules for selling prices
|
||||||
AddCustomerPrice=Add price by customer
|
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
|
PriceByCustomerLog=Log of previous customer prices
|
||||||
MinimumPriceLimit=Minimum price can't be lower then %s
|
MinimumPriceLimit=Minimum price can't be lower then %s
|
||||||
MinimumRecommendedPrice=Minimum recommended price is: %s
|
MinimumRecommendedPrice=Minimum recommended price is: %s
|
||||||
@ -296,6 +296,7 @@ ComposedProductIncDecStock=Increase/Decrease stock on parent change
|
|||||||
ComposedProduct=Child products
|
ComposedProduct=Child products
|
||||||
MinSupplierPrice=Minimum buying price
|
MinSupplierPrice=Minimum buying price
|
||||||
MinCustomerPrice=Minimum selling price
|
MinCustomerPrice=Minimum selling price
|
||||||
|
NoDynamicPrice=No dynamic price
|
||||||
DynamicPriceConfiguration=Dynamic price configuration
|
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.
|
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
|
AddVariable=Add Variable
|
||||||
|
|||||||
@ -17,8 +17,8 @@ TJM=Average daily rate
|
|||||||
CurrentSalary=Current salary
|
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
|
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
|
TJMDescription=This value is currently for information only and is not used for any calculation
|
||||||
LastSalaries=Latest %s salary payments
|
LastSalaries=Latest %s salaries
|
||||||
AllSalaries=All salary payments
|
AllSalaries=All salaries
|
||||||
SalariesStatistics=Salary statistics
|
SalariesStatistics=Salary statistics
|
||||||
# Export
|
|
||||||
SalariesAndPayments=Salaries and payments
|
SalariesAndPayments=Salaries and payments
|
||||||
|
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?
|
||||||
|
|||||||
@ -34,7 +34,8 @@ TicketDictResolution=Ticket - Resolution
|
|||||||
|
|
||||||
TicketTypeShortCOM=Commercial question
|
TicketTypeShortCOM=Commercial question
|
||||||
TicketTypeShortHELP=Request for functionnal help
|
TicketTypeShortHELP=Request for functionnal help
|
||||||
TicketTypeShortISSUE=Issue, bug or problem
|
TicketTypeShortISSUE=Issue or bug
|
||||||
|
TicketTypeShortPROBLEM=Problem
|
||||||
TicketTypeShortREQUEST=Change or enhancement request
|
TicketTypeShortREQUEST=Change or enhancement request
|
||||||
TicketTypeShortPROJET=Project
|
TicketTypeShortPROJET=Project
|
||||||
TicketTypeShortOTHER=Other
|
TicketTypeShortOTHER=Other
|
||||||
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Assigned user
|
|||||||
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
|
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
|
||||||
TypeContact_ticket_external_CONTRIBUTOR=External contributor
|
TypeContact_ticket_external_CONTRIBUTOR=External contributor
|
||||||
|
|
||||||
OriginEmail=Email source
|
OriginEmail=Reporter Email
|
||||||
Notify_TICKET_SENTBYMAIL=Send ticket message by email
|
Notify_TICKET_SENTBYMAIL=Send ticket message by email
|
||||||
|
|
||||||
# Status
|
# Status
|
||||||
Read=Read
|
Read=Read
|
||||||
Assigned=Assigned
|
Assigned=Assigned
|
||||||
InProgress=In progress
|
InProgress=In progress
|
||||||
NeedMoreInformation=Waiting for information
|
NeedMoreInformation=Waiting for reporter feedback
|
||||||
|
NeedMoreInformationShort=Waiting for feedback
|
||||||
Answered=Answered
|
Answered=Answered
|
||||||
Waiting=Waiting
|
Waiting=Waiting
|
||||||
Closed=Closed
|
Closed=Closed
|
||||||
@ -160,7 +162,7 @@ CreatedBy=Created by
|
|||||||
NewTicket=New Ticket
|
NewTicket=New Ticket
|
||||||
SubjectAnswerToTicket=Ticket answer
|
SubjectAnswerToTicket=Ticket answer
|
||||||
TicketTypeRequest=Request type
|
TicketTypeRequest=Request type
|
||||||
TicketCategory=Group
|
TicketCategory=Ticket categorization
|
||||||
SeeTicket=See ticket
|
SeeTicket=See ticket
|
||||||
TicketMarkedAsRead=Ticket has been marked as read
|
TicketMarkedAsRead=Ticket has been marked as read
|
||||||
TicketReadOn=Read on
|
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.
|
TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values.
|
||||||
TimeElapsedSince=Time elapsed since
|
TimeElapsedSince=Time elapsed since
|
||||||
TicketTimeToRead=Time elapsed before read
|
TicketTimeToRead=Time elapsed before read
|
||||||
|
TicketTimeElapsedBeforeSince=Time elapsed before / since
|
||||||
TicketContacts=Contacts ticket
|
TicketContacts=Contacts ticket
|
||||||
TicketDocumentsLinked=Documents linked to ticket
|
TicketDocumentsLinked=Documents linked to ticket
|
||||||
ConfirmReOpenTicket=Confirm reopen this ticket ?
|
ConfirmReOpenTicket=Confirm reopen this ticket ?
|
||||||
|
|||||||
@ -97,8 +97,8 @@ LoginToCreate=Login to create
|
|||||||
NameToCreate=Name of third party to create
|
NameToCreate=Name of third party to create
|
||||||
YourRole=Your roles
|
YourRole=Your roles
|
||||||
YourQuotaOfUsersIsReached=Your quota of active users is reached !
|
YourQuotaOfUsersIsReached=Your quota of active users is reached !
|
||||||
NbOfUsers=No. of users
|
NbOfUsers=Number of users
|
||||||
NbOfPermissions=No. of permissions
|
NbOfPermissions=Number of permissions
|
||||||
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
|
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
|
||||||
HierarchicalResponsible=Supervisor
|
HierarchicalResponsible=Supervisor
|
||||||
HierarchicView=Hierarchical view
|
HierarchicView=Hierarchical view
|
||||||
|
|||||||
@ -31,7 +31,7 @@ AddWebsite=Add website
|
|||||||
Webpage=Web page/container
|
Webpage=Web page/container
|
||||||
AddPage=Add page/container
|
AddPage=Add page/container
|
||||||
PageContainer=Page
|
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.
|
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
|
SiteDeleted=Web site '%s' deleted
|
||||||
PageContent=Page/Contenair
|
PageContent=Page/Contenair
|
||||||
|
|||||||
@ -53,6 +53,7 @@ InternalUser=مستخدم داخلي
|
|||||||
ExternalUser=مستخدم خارجي
|
ExternalUser=مستخدم خارجي
|
||||||
InternalUsers=مستخدمين داخليين
|
InternalUsers=مستخدمين داخليين
|
||||||
ExternalUsers=مستخدمين خارجيين
|
ExternalUsers=مستخدمين خارجيين
|
||||||
|
UserInterface=User interface
|
||||||
GUISetup=العرض
|
GUISetup=العرض
|
||||||
SetupArea=التثبيت
|
SetupArea=التثبيت
|
||||||
UploadNewTemplate=تحميل قالب جديد
|
UploadNewTemplate=تحميل قالب جديد
|
||||||
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=وظائف خدمة تصميم المواقع لا
|
|||||||
DownloadMoreSkins=مزيد من جلود بتحميل
|
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
|
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
|
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
|
ShowProfIdInAddress=Show professional ID with addresses
|
||||||
ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
|
ShowVATIntaInAddress=Hide intra-Community VAT number
|
||||||
TranslationUncomplete=ترجمة جزئية
|
TranslationUncomplete=ترجمة جزئية
|
||||||
MAIN_DISABLE_METEO=Disable meteorological view
|
MAIN_DISABLE_METEO=Disable meteorological view
|
||||||
MeteoStdMod=Standard mode
|
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).
|
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.
|
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=مجرد استخدام الرابط "الهاتف:" على أرقام الهواتف
|
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) #####
|
##### Point Of Sale (CashDesk) #####
|
||||||
CashDesk=Point of Sale
|
CashDesk=Point of Sale
|
||||||
CashDeskSetup=Point of Sales module setup
|
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
|
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)
|
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
|
||||||
RecommendedValueIs=Recommended: %s
|
RecommendedValueIs=Recommended: %s
|
||||||
NotRecommended=Not recommanded
|
Recommended=موصى بها
|
||||||
|
NotRecommended=Not recommended
|
||||||
ARestrictedPath=A restricted path
|
ARestrictedPath=A restricted path
|
||||||
CheckForModuleUpdate=Check for external modules updates
|
CheckForModuleUpdate=Check for external modules updates
|
||||||
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
|
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
|
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
|
||||||
DatabasePasswordObfuscated=Database password is obfuscated in conf file
|
DatabasePasswordObfuscated=Database password is obfuscated in conf file
|
||||||
DatabasePasswordNotObfuscated=Database password is NOT 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
|
||||||
|
|||||||
@ -115,7 +115,7 @@ TransferTo=إلى
|
|||||||
TransferFromToDone=التحويل من <b>%s</b>إلى <b>%s</b>من <b>%s</b>%s قد تم تسجيلة.
|
TransferFromToDone=التحويل من <b>%s</b>إلى <b>%s</b>من <b>%s</b>%s قد تم تسجيلة.
|
||||||
CheckTransmitter=مرسل
|
CheckTransmitter=مرسل
|
||||||
ValidateCheckReceipt=تأكيد صحة الشيك المستلم؟
|
ValidateCheckReceipt=تأكيد صحة الشيك المستلم؟
|
||||||
ConfirmValidateCheckReceipt=هل انت متأكد من رغبتك بإرسال إيصال هذا الشيك للتأكيد ؟ لا تغيير ممكن بعد الاكمال.
|
ConfirmValidateCheckReceipt=Are you sure that you want to submit this check receipt for validation? No changes will be possible once validated.
|
||||||
DeleteCheckReceipt=حذف هذا الشيك ؟
|
DeleteCheckReceipt=حذف هذا الشيك ؟
|
||||||
ConfirmDeleteCheckReceipt=هل انت متأكد أنك تريد حذف هذا الشيك؟
|
ConfirmDeleteCheckReceipt=هل انت متأكد أنك تريد حذف هذا الشيك؟
|
||||||
BankChecks=الشيكات المصرفية
|
BankChecks=الشيكات المصرفية
|
||||||
|
|||||||
@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=أوامر الموردين: آخر %s تع
|
|||||||
BoxTitleLastModifiedCustomerBills=فواتير العميل: آخر %s تعديل
|
BoxTitleLastModifiedCustomerBills=فواتير العميل: آخر %s تعديل
|
||||||
BoxTitleLastModifiedCustomerOrders=أوامر المبيعات: آخر %s تعديل
|
BoxTitleLastModifiedCustomerOrders=أوامر المبيعات: آخر %s تعديل
|
||||||
BoxTitleLastModifiedPropals=أحدث %s العروض المعدلة
|
BoxTitleLastModifiedPropals=أحدث %s العروض المعدلة
|
||||||
BoxTitleLatestModifiedJobPositions=أحدث %s وظائف المعدلة
|
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
|
||||||
BoxTitleLatestModifiedCandidatures=أحدث %s الترشيحات المعدلة
|
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
|
||||||
ForCustomersInvoices=فواتير العملاء
|
ForCustomersInvoices=فواتير العملاء
|
||||||
ForCustomersOrders=أوامر العملاء
|
ForCustomersOrders=أوامر العملاء
|
||||||
ForProposals=عروض
|
ForProposals=عروض
|
||||||
|
|||||||
@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
|
|||||||
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
|
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
|
||||||
WeighingScale=Weighing scale
|
WeighingScale=Weighing scale
|
||||||
ShowPriceHT = Display the column with the price excluding tax (on screen)
|
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)
|
||||||
|
|||||||
@ -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
|
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
|
||||||
CheckVersionFail=Version check fail
|
CheckVersionFail=Version check fail
|
||||||
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
|
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
|
||||||
|
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.
|
||||||
|
|||||||
@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
|
|||||||
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
|
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_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
|
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
|
||||||
|
NbVotes=Number of votes
|
||||||
#
|
#
|
||||||
# Status
|
# 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.
|
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
|
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
|
||||||
EventType = نوع الحدث
|
EventType = نوع الحدث
|
||||||
|
LabelOfBooth=Booth label
|
||||||
|
LabelOfconference=Conference label
|
||||||
|
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
|
||||||
|
|
||||||
#
|
#
|
||||||
# Vote page
|
# Vote page
|
||||||
|
|||||||
@ -206,6 +206,7 @@ MigrationUserPhotoPath=Migration of photo paths for users
|
|||||||
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
|
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
|
||||||
MigrationReloadModule=إعادة تحديث الوحدات %s
|
MigrationReloadModule=إعادة تحديث الوحدات %s
|
||||||
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
||||||
|
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
|
||||||
ShowNotAvailableOptions=Show unavailable options
|
ShowNotAvailableOptions=Show unavailable options
|
||||||
HideNotAvailableOptions=Hide 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.
|
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.
|
||||||
|
|||||||
@ -64,3 +64,5 @@ InterLineDuration=تدخل مدة خط
|
|||||||
InterLineDesc=خط وصف التدخل
|
InterLineDesc=خط وصف التدخل
|
||||||
RepeatableIntervention=Template of intervention
|
RepeatableIntervention=Template of intervention
|
||||||
ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template
|
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>?
|
||||||
|
|||||||
@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Show log of movements for couple product/lot
|
|||||||
StockDetailPerBatch=Stock detail per lot
|
StockDetailPerBatch=Stock detail per lot
|
||||||
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
|
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
|
||||||
TooManyQtyForSerialNumber=You can only have one product %s for serial number %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
|
ManageLotMask=Custom mask
|
||||||
CustomMasks=Adds an option to define mask in the product card
|
CustomMasks=Option to define a different numbering mask for each product
|
||||||
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
|
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
|
||||||
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
|
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
|
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
|
||||||
LifeTime=Life span (in days)
|
LifeTime=Life span (in days)
|
||||||
EndOfLife=End of life
|
EndOfLife=End of life
|
||||||
|
|||||||
@ -277,7 +277,7 @@ PriceByCustomer=Different prices for each customer
|
|||||||
PriceCatalogue=A single sell price per product/service
|
PriceCatalogue=A single sell price per product/service
|
||||||
PricingRule=Rules for selling prices
|
PricingRule=Rules for selling prices
|
||||||
AddCustomerPrice=إضافة السعر من قبل العملاء
|
AddCustomerPrice=إضافة السعر من قبل العملاء
|
||||||
ForceUpdateChildPriceSoc=تعيين نفس السعر على الشركات التابعة العملاء
|
ForceUpdateChildPriceSoc=Set same price on customer's subsidiaries
|
||||||
PriceByCustomerLog=سجل الأسعار العملاء السابقة
|
PriceByCustomerLog=سجل الأسعار العملاء السابقة
|
||||||
MinimumPriceLimit=سعر الحد الأدنى لا يمكن أن يكون أقل ثم٪ الصورة
|
MinimumPriceLimit=سعر الحد الأدنى لا يمكن أن يكون أقل ثم٪ الصورة
|
||||||
MinimumRecommendedPrice=Minimum recommended price is: %s
|
MinimumRecommendedPrice=Minimum recommended price is: %s
|
||||||
@ -296,6 +296,7 @@ ComposedProductIncDecStock=زيادة / نقصان الأسهم على التغ
|
|||||||
ComposedProduct=Child products
|
ComposedProduct=Child products
|
||||||
MinSupplierPrice=الحد الأدنى من سعر الشراء
|
MinSupplierPrice=الحد الأدنى من سعر الشراء
|
||||||
MinCustomerPrice=Minimum selling price
|
MinCustomerPrice=Minimum selling price
|
||||||
|
NoDynamicPrice=No dynamic price
|
||||||
DynamicPriceConfiguration=التكوين سعر ديناميكي
|
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.
|
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
|
AddVariable=Add Variable
|
||||||
|
|||||||
@ -2,20 +2,23 @@
|
|||||||
SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
|
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_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined.
|
||||||
SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments
|
SALARIES_ACCOUNTING_ACCOUNT_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=دفع الرواتب جديد
|
NewSalary=New salary
|
||||||
|
NewSalaryPayment=New salary card
|
||||||
AddSalaryPayment=Add salary payment
|
AddSalaryPayment=Add salary payment
|
||||||
SalaryPayment=دفع الرواتب
|
SalaryPayment=دفع الرواتب
|
||||||
SalariesPayments=مدفوعات الرواتب
|
SalariesPayments=مدفوعات الرواتب
|
||||||
|
SalariesPaymentsOf=Salaries payments of %s
|
||||||
ShowSalaryPayment=مشاهدة دفع الرواتب
|
ShowSalaryPayment=مشاهدة دفع الرواتب
|
||||||
THM=Average hourly rate
|
THM=Average hourly rate
|
||||||
TJM=Average daily rate
|
TJM=Average daily rate
|
||||||
CurrentSalary=الراتب الحالي
|
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
|
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
|
TJMDescription=This value is currently for information only and is not used for any calculation
|
||||||
LastSalaries=Latest %s salary payments
|
LastSalaries=Latest %s salaries
|
||||||
AllSalaries=All salary payments
|
AllSalaries=All salaries
|
||||||
SalariesStatistics=Salary statistics
|
SalariesStatistics=Salary statistics
|
||||||
# Export
|
|
||||||
SalariesAndPayments=Salaries and payments
|
SalariesAndPayments=Salaries and payments
|
||||||
|
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?
|
||||||
|
|||||||
@ -34,7 +34,8 @@ TicketDictResolution=Ticket - Resolution
|
|||||||
|
|
||||||
TicketTypeShortCOM=Commercial question
|
TicketTypeShortCOM=Commercial question
|
||||||
TicketTypeShortHELP=Request for functionnal help
|
TicketTypeShortHELP=Request for functionnal help
|
||||||
TicketTypeShortISSUE=Issue, bug or problem
|
TicketTypeShortISSUE=Issue or bug
|
||||||
|
TicketTypeShortPROBLEM=Problem
|
||||||
TicketTypeShortREQUEST=Change or enhancement request
|
TicketTypeShortREQUEST=Change or enhancement request
|
||||||
TicketTypeShortPROJET=المشروع
|
TicketTypeShortPROJET=المشروع
|
||||||
TicketTypeShortOTHER=الآخر
|
TicketTypeShortOTHER=الآخر
|
||||||
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Assigned user
|
|||||||
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
|
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
|
||||||
TypeContact_ticket_external_CONTRIBUTOR=External contributor
|
TypeContact_ticket_external_CONTRIBUTOR=External contributor
|
||||||
|
|
||||||
OriginEmail=Email source
|
OriginEmail=Reporter Email
|
||||||
Notify_TICKET_SENTBYMAIL=Send ticket message by email
|
Notify_TICKET_SENTBYMAIL=Send ticket message by email
|
||||||
|
|
||||||
# Status
|
# Status
|
||||||
Read=قرأ
|
Read=قرأ
|
||||||
Assigned=Assigned
|
Assigned=Assigned
|
||||||
InProgress=في تقدم
|
InProgress=في تقدم
|
||||||
NeedMoreInformation=Waiting for information
|
NeedMoreInformation=Waiting for reporter feedback
|
||||||
|
NeedMoreInformationShort=Waiting for feedback
|
||||||
Answered=Answered
|
Answered=Answered
|
||||||
Waiting=انتظار
|
Waiting=انتظار
|
||||||
Closed=مغلق
|
Closed=مغلق
|
||||||
@ -160,7 +162,7 @@ CreatedBy=Created by
|
|||||||
NewTicket=New Ticket
|
NewTicket=New Ticket
|
||||||
SubjectAnswerToTicket=Ticket answer
|
SubjectAnswerToTicket=Ticket answer
|
||||||
TicketTypeRequest=Request type
|
TicketTypeRequest=Request type
|
||||||
TicketCategory=مجموعة
|
TicketCategory=Ticket categorization
|
||||||
SeeTicket=See ticket
|
SeeTicket=See ticket
|
||||||
TicketMarkedAsRead=Ticket has been marked as read
|
TicketMarkedAsRead=Ticket has been marked as read
|
||||||
TicketReadOn=Read on
|
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.
|
TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values.
|
||||||
TimeElapsedSince=Time elapsed since
|
TimeElapsedSince=Time elapsed since
|
||||||
TicketTimeToRead=Time elapsed before read
|
TicketTimeToRead=Time elapsed before read
|
||||||
|
TicketTimeElapsedBeforeSince=Time elapsed before / since
|
||||||
TicketContacts=Contacts ticket
|
TicketContacts=Contacts ticket
|
||||||
TicketDocumentsLinked=Documents linked to ticket
|
TicketDocumentsLinked=Documents linked to ticket
|
||||||
ConfirmReOpenTicket=Confirm reopen this ticket ?
|
ConfirmReOpenTicket=Confirm reopen this ticket ?
|
||||||
|
|||||||
@ -97,8 +97,8 @@ LoginToCreate=ادخل لخلق
|
|||||||
NameToCreate=اسم طرف ثالث لخلق
|
NameToCreate=اسم طرف ثالث لخلق
|
||||||
YourRole=الأدوار الخاص
|
YourRole=الأدوار الخاص
|
||||||
YourQuotaOfUsersIsReached=يتم التوصل إلى حصة الخاص بك من المستخدمين النشطين!
|
YourQuotaOfUsersIsReached=يتم التوصل إلى حصة الخاص بك من المستخدمين النشطين!
|
||||||
NbOfUsers=No. of users
|
NbOfUsers=Number of users
|
||||||
NbOfPermissions=No. of permissions
|
NbOfPermissions=Number of permissions
|
||||||
DontDowngradeSuperAdmin=يمكن فقط superadmin تقليله a superadmin
|
DontDowngradeSuperAdmin=يمكن فقط superadmin تقليله a superadmin
|
||||||
HierarchicalResponsible=المشرف
|
HierarchicalResponsible=المشرف
|
||||||
HierarchicView=الهرمي
|
HierarchicView=الهرمي
|
||||||
|
|||||||
@ -31,7 +31,7 @@ AddWebsite=إضافة موقع إلكتروني
|
|||||||
Webpage=الصفحة\\الحاوية
|
Webpage=الصفحة\\الحاوية
|
||||||
AddPage=إضافة صفحة\\حاوية
|
AddPage=إضافة صفحة\\حاوية
|
||||||
PageContainer=صفحة
|
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 لاتحتوي بعد على محتوى ، او ان ملف القالب الخاص بها قد تم حذفه. قم بتعديل محتويات الصفحة لحل ذلك
|
RequestedPageHasNoContentYet=الصفحة المطلوبة بالمعرف %s لاتحتوي بعد على محتوى ، او ان ملف القالب الخاص بها قد تم حذفه. قم بتعديل محتويات الصفحة لحل ذلك
|
||||||
SiteDeleted= الموقع "%s" تم حذهف
|
SiteDeleted= الموقع "%s" تم حذهف
|
||||||
PageContent=الصفحة\\الحاوية
|
PageContent=الصفحة\\الحاوية
|
||||||
|
|||||||
@ -53,6 +53,7 @@ InternalUser=Internal user
|
|||||||
ExternalUser=External user
|
ExternalUser=External user
|
||||||
InternalUsers=Internal users
|
InternalUsers=Internal users
|
||||||
ExternalUsers=External users
|
ExternalUsers=External users
|
||||||
|
UserInterface=User interface
|
||||||
GUISetup=Display
|
GUISetup=Display
|
||||||
SetupArea=Setup
|
SetupArea=Setup
|
||||||
UploadNewTemplate=Upload new template(s)
|
UploadNewTemplate=Upload new template(s)
|
||||||
@ -1260,8 +1261,8 @@ YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
|
|||||||
DownloadMoreSkins=More skins to download
|
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
|
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
|
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
|
ShowProfIdInAddress=Show professional ID with addresses
|
||||||
ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
|
ShowVATIntaInAddress=Hide intra-Community VAT number
|
||||||
TranslationUncomplete=Partial translation
|
TranslationUncomplete=Partial translation
|
||||||
MAIN_DISABLE_METEO=Disable meteorological view
|
MAIN_DISABLE_METEO=Disable meteorological view
|
||||||
MeteoStdMod=Standard mode
|
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).
|
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.
|
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
|
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) #####
|
##### Point Of Sale (CashDesk) #####
|
||||||
CashDesk=Point of Sale
|
CashDesk=Point of Sale
|
||||||
CashDeskSetup=Point of Sales module setup
|
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
|
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)
|
NoWritableFilesFoundIntoRootDir=No writable files or directories of the common programs were found into your root directory (Good)
|
||||||
RecommendedValueIs=Recommended: %s
|
RecommendedValueIs=Recommended: %s
|
||||||
NotRecommended=Not recommanded
|
Recommended=Recommended
|
||||||
|
NotRecommended=Not recommended
|
||||||
ARestrictedPath=A restricted path
|
ARestrictedPath=A restricted path
|
||||||
CheckForModuleUpdate=Check for external modules updates
|
CheckForModuleUpdate=Check for external modules updates
|
||||||
CheckForModuleUpdateHelp=This action will connect to editors of external modules to check if a new version is available.
|
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
|
RandomlySelectedIfSeveral=Randomly selected if several pictures are available
|
||||||
DatabasePasswordObfuscated=Database password is obfuscated in conf file
|
DatabasePasswordObfuscated=Database password is obfuscated in conf file
|
||||||
DatabasePasswordNotObfuscated=Database password is NOT 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
|
||||||
|
|||||||
@ -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.
|
TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
|
||||||
CheckTransmitter=Sender
|
CheckTransmitter=Sender
|
||||||
ValidateCheckReceipt=Validate this check receipt?
|
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?
|
DeleteCheckReceipt=Delete this check receipt?
|
||||||
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
|
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
|
||||||
BankChecks=Bank checks
|
BankChecks=Bank checks
|
||||||
|
|||||||
@ -91,8 +91,8 @@ BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified
|
|||||||
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
|
BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
|
||||||
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
|
BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
|
||||||
BoxTitleLastModifiedPropals=Latest %s modified proposals
|
BoxTitleLastModifiedPropals=Latest %s modified proposals
|
||||||
BoxTitleLatestModifiedJobPositions=Latest %s modified jobs
|
BoxTitleLatestModifiedJobPositions=Latest %s modified job positions
|
||||||
BoxTitleLatestModifiedCandidatures=Latest %s modified candidatures
|
BoxTitleLatestModifiedCandidatures=Latest %s modified job applications
|
||||||
ForCustomersInvoices=Customers invoices
|
ForCustomersInvoices=Customers invoices
|
||||||
ForCustomersOrders=Customers orders
|
ForCustomersOrders=Customers orders
|
||||||
ForProposals=Proposals
|
ForProposals=Proposals
|
||||||
|
|||||||
@ -127,4 +127,4 @@ AllowDelayedPayment=Allow delayed payment
|
|||||||
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
|
PrintPaymentMethodOnReceipts=Print payment method on tickets|receipts
|
||||||
WeighingScale=Weighing scale
|
WeighingScale=Weighing scale
|
||||||
ShowPriceHT = Display the column with the price excluding tax (on screen)
|
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)
|
||||||
|
|||||||
@ -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
|
ErrorActionCommBadType=Selected event type (id: %n, code: %s) do not exist in Event Type dictionary
|
||||||
CheckVersionFail=Version check fail
|
CheckVersionFail=Version check fail
|
||||||
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
|
ErrorWrongFileName=Name of the file cannot have __SOMETHING__ in it
|
||||||
|
ErrorNotInDictionaryPaymentConditions=Not in Payment Terms Dictionary, please modify.
|
||||||
|
|||||||
@ -86,6 +86,7 @@ DownloadICSLink = Download ICS link
|
|||||||
EVENTORGANIZATION_SECUREKEY = Secure Key of the public registration link to a conference
|
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_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
|
SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION = Service used for the invoice row about an attendee subscription to a conference
|
||||||
|
NbVotes=Number of votes
|
||||||
#
|
#
|
||||||
# Status
|
# 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.
|
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
|
BoothLocationFee = Booth location for the event : '%s' occurring from %s to %s
|
||||||
EventType = Event type
|
EventType = Event type
|
||||||
|
LabelOfBooth=Booth label
|
||||||
|
LabelOfconference=Conference label
|
||||||
|
ConferenceIsNotConfirmed=Subcription not available, conference is not confirmed yet
|
||||||
|
|
||||||
#
|
#
|
||||||
# Vote page
|
# Vote page
|
||||||
|
|||||||
@ -206,6 +206,7 @@ MigrationUserPhotoPath=Migration of photo paths for users
|
|||||||
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
|
MigrationFieldsSocialNetworks=Migration of users fields social networks (%s)
|
||||||
MigrationReloadModule=Reload module %s
|
MigrationReloadModule=Reload module %s
|
||||||
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
||||||
|
MigrationImportOrExportProfiles=Migration of import or export profiles (%s)
|
||||||
ShowNotAvailableOptions=Show unavailable options
|
ShowNotAvailableOptions=Show unavailable options
|
||||||
HideNotAvailableOptions=Hide 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.
|
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.
|
||||||
|
|||||||
@ -64,3 +64,5 @@ InterLineDuration=Line duration intervention
|
|||||||
InterLineDesc=Line description intervention
|
InterLineDesc=Line description intervention
|
||||||
RepeatableIntervention=Template of intervention
|
RepeatableIntervention=Template of intervention
|
||||||
ToCreateAPredefinedIntervention=To create a predefined or recurring intervention, create a common intervention and convert it into intervention template
|
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>?
|
||||||
|
|||||||
@ -26,12 +26,10 @@ ShowLogOfMovementIfLot=Show log of movements for couple product/lot
|
|||||||
StockDetailPerBatch=Stock detail per lot
|
StockDetailPerBatch=Stock detail per lot
|
||||||
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
|
SerialNumberAlreadyInUse=Serial number %s is already used for product %s
|
||||||
TooManyQtyForSerialNumber=You can only have one product %s for serial number %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
|
ManageLotMask=Custom mask
|
||||||
CustomMasks=Adds an option to define mask in the product card
|
CustomMasks=Option to define a different numbering mask for each product
|
||||||
LotProductTooltip=Adds an option in the product card to define a dedicated batch number mask
|
BatchLotNumberingModules=Numbering rule for automatic generation of lot number
|
||||||
SNProductTooltip=Adds an option in the product card to define a dedicated serial number mask
|
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
|
QtyToAddAfterBarcodeScan=Qty to add for each barcode/lot/serial scanned
|
||||||
LifeTime=Life span (in days)
|
LifeTime=Life span (in days)
|
||||||
EndOfLife=End of life
|
EndOfLife=End of life
|
||||||
|
|||||||
@ -277,7 +277,7 @@ PriceByCustomer=Different prices for each customer
|
|||||||
PriceCatalogue=A single sell price per product/service
|
PriceCatalogue=A single sell price per product/service
|
||||||
PricingRule=Rules for selling prices
|
PricingRule=Rules for selling prices
|
||||||
AddCustomerPrice=Add price by customer
|
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
|
PriceByCustomerLog=Log of previous customer prices
|
||||||
MinimumPriceLimit=Minimum price can't be lower then %s
|
MinimumPriceLimit=Minimum price can't be lower then %s
|
||||||
MinimumRecommendedPrice=Minimum recommended price is: %s
|
MinimumRecommendedPrice=Minimum recommended price is: %s
|
||||||
@ -296,6 +296,7 @@ ComposedProductIncDecStock=Increase/Decrease stock on parent change
|
|||||||
ComposedProduct=Child products
|
ComposedProduct=Child products
|
||||||
MinSupplierPrice=Minimum buying price
|
MinSupplierPrice=Minimum buying price
|
||||||
MinCustomerPrice=Minimum selling price
|
MinCustomerPrice=Minimum selling price
|
||||||
|
NoDynamicPrice=No dynamic price
|
||||||
DynamicPriceConfiguration=Dynamic price configuration
|
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.
|
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
|
AddVariable=Add Variable
|
||||||
|
|||||||
@ -2,20 +2,23 @@
|
|||||||
SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
|
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_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined.
|
||||||
SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments
|
SALARIES_ACCOUNTING_ACCOUNT_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
|
Salary=Salary
|
||||||
Salaries=Salaries
|
Salaries=Salaries
|
||||||
NewSalaryPayment=New salary payment
|
NewSalary=New salary
|
||||||
|
NewSalaryPayment=New salary card
|
||||||
AddSalaryPayment=Add salary payment
|
AddSalaryPayment=Add salary payment
|
||||||
SalaryPayment=Salary payment
|
SalaryPayment=Salary payment
|
||||||
SalariesPayments=Salaries payments
|
SalariesPayments=Salaries payments
|
||||||
|
SalariesPaymentsOf=Salaries payments of %s
|
||||||
ShowSalaryPayment=Show salary payment
|
ShowSalaryPayment=Show salary payment
|
||||||
THM=Average hourly rate
|
THM=Average hourly rate
|
||||||
TJM=Average daily rate
|
TJM=Average daily rate
|
||||||
CurrentSalary=Current salary
|
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
|
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
|
TJMDescription=This value is currently for information only and is not used for any calculation
|
||||||
LastSalaries=Latest %s salary payments
|
LastSalaries=Latest %s salaries
|
||||||
AllSalaries=All salary payments
|
AllSalaries=All salaries
|
||||||
SalariesStatistics=Salary statistics
|
SalariesStatistics=Salary statistics
|
||||||
# Export
|
|
||||||
SalariesAndPayments=Salaries and payments
|
SalariesAndPayments=Salaries and payments
|
||||||
|
ConfirmDeleteSalaryPayment=Do you want to delete this salary payment ?
|
||||||
|
|||||||
@ -34,7 +34,8 @@ TicketDictResolution=Ticket - Resolution
|
|||||||
|
|
||||||
TicketTypeShortCOM=Commercial question
|
TicketTypeShortCOM=Commercial question
|
||||||
TicketTypeShortHELP=Request for functionnal help
|
TicketTypeShortHELP=Request for functionnal help
|
||||||
TicketTypeShortISSUE=Issue, bug or problem
|
TicketTypeShortISSUE=Issue or bug
|
||||||
|
TicketTypeShortPROBLEM=Problem
|
||||||
TicketTypeShortREQUEST=Change or enhancement request
|
TicketTypeShortREQUEST=Change or enhancement request
|
||||||
TicketTypeShortPROJET=Project
|
TicketTypeShortPROJET=Project
|
||||||
TicketTypeShortOTHER=Other
|
TicketTypeShortOTHER=Other
|
||||||
@ -54,14 +55,15 @@ TypeContact_ticket_internal_SUPPORTTEC=Assigned user
|
|||||||
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
|
TypeContact_ticket_external_SUPPORTCLI=Customer contact / incident tracking
|
||||||
TypeContact_ticket_external_CONTRIBUTOR=External contributor
|
TypeContact_ticket_external_CONTRIBUTOR=External contributor
|
||||||
|
|
||||||
OriginEmail=Email source
|
OriginEmail=Reporter Email
|
||||||
Notify_TICKET_SENTBYMAIL=Send ticket message by email
|
Notify_TICKET_SENTBYMAIL=Send ticket message by email
|
||||||
|
|
||||||
# Status
|
# Status
|
||||||
Read=Read
|
Read=Read
|
||||||
Assigned=Assigned
|
Assigned=Assigned
|
||||||
InProgress=In progress
|
InProgress=In progress
|
||||||
NeedMoreInformation=Waiting for information
|
NeedMoreInformation=Waiting for reporter feedback
|
||||||
|
NeedMoreInformationShort=Waiting for feedback
|
||||||
Answered=Answered
|
Answered=Answered
|
||||||
Waiting=Waiting
|
Waiting=Waiting
|
||||||
Closed=Closed
|
Closed=Closed
|
||||||
@ -160,7 +162,7 @@ CreatedBy=Created by
|
|||||||
NewTicket=New Ticket
|
NewTicket=New Ticket
|
||||||
SubjectAnswerToTicket=Ticket answer
|
SubjectAnswerToTicket=Ticket answer
|
||||||
TicketTypeRequest=Request type
|
TicketTypeRequest=Request type
|
||||||
TicketCategory=Group
|
TicketCategory=Ticket categorization
|
||||||
SeeTicket=See ticket
|
SeeTicket=See ticket
|
||||||
TicketMarkedAsRead=Ticket has been marked as read
|
TicketMarkedAsRead=Ticket has been marked as read
|
||||||
TicketReadOn=Read on
|
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.
|
TicketMessageSubstitutionReplacedByGenericValues=Substitutions variables are replaced by generic values.
|
||||||
TimeElapsedSince=Time elapsed since
|
TimeElapsedSince=Time elapsed since
|
||||||
TicketTimeToRead=Time elapsed before read
|
TicketTimeToRead=Time elapsed before read
|
||||||
|
TicketTimeElapsedBeforeSince=Time elapsed before / since
|
||||||
TicketContacts=Contacts ticket
|
TicketContacts=Contacts ticket
|
||||||
TicketDocumentsLinked=Documents linked to ticket
|
TicketDocumentsLinked=Documents linked to ticket
|
||||||
ConfirmReOpenTicket=Confirm reopen this ticket ?
|
ConfirmReOpenTicket=Confirm reopen this ticket ?
|
||||||
|
|||||||
@ -97,8 +97,8 @@ LoginToCreate=Login to create
|
|||||||
NameToCreate=Name of third party to create
|
NameToCreate=Name of third party to create
|
||||||
YourRole=Your roles
|
YourRole=Your roles
|
||||||
YourQuotaOfUsersIsReached=Your quota of active users is reached !
|
YourQuotaOfUsersIsReached=Your quota of active users is reached !
|
||||||
NbOfUsers=No. of users
|
NbOfUsers=Number of users
|
||||||
NbOfPermissions=No. of permissions
|
NbOfPermissions=Number of permissions
|
||||||
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
|
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
|
||||||
HierarchicalResponsible=Supervisor
|
HierarchicalResponsible=Supervisor
|
||||||
HierarchicView=Hierarchical view
|
HierarchicView=Hierarchical view
|
||||||
|
|||||||
@ -31,7 +31,7 @@ AddWebsite=Add website
|
|||||||
Webpage=Web page/container
|
Webpage=Web page/container
|
||||||
AddPage=Add page/container
|
AddPage=Add page/container
|
||||||
PageContainer=Page
|
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.
|
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
|
SiteDeleted=Web site '%s' deleted
|
||||||
PageContent=Page/Contenair
|
PageContent=Page/Contenair
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user