Merge branch 'develop' into 7.0_new_shipment_update

This commit is contained in:
Laurent Destailleur 2017-11-02 15:43:31 +01:00 committed by GitHub
commit feb04b4a22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
810 changed files with 4097 additions and 2418 deletions

View File

@ -5,6 +5,7 @@ English Dolibarr ChangeLog
***** ChangeLog for 7.0.0 compared to 6.0.* ***** ***** ChangeLog for 7.0.0 compared to 6.0.* *****
For users:
For developers: For developers:
NEW: Add hook addAdminLdapOptions and doAction in ldap admin page NEW: Add hook addAdminLdapOptions and doAction in ldap admin page
@ -42,8 +43,7 @@ FIX: API to get object does not return data of linked objects
FIX: Bad localtax apply FIX: Bad localtax apply
FIX: Bad ressource list in popup in gantt view FIX: Bad ressource list in popup in gantt view
FIX: bankentries search conciliated if val 0 FIX: bankentries search conciliated if val 0
FIX: hook formObjectOptions() must use $expe and not $object which i… FIX: hook formObjectOptions() must use $expe and not $object
FIX: hook formObjectOptions() must use $expe and not $object which is an order here
FIX: make of link to other object during creation FIX: make of link to other object during creation
FIX: Missing function getLinesArray FIX: Missing function getLinesArray
FIX: old batch not shown in multi shipping FIX: old batch not shown in multi shipping

View File

@ -571,6 +571,7 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/mobiledetect/mobiledetectlib/.gitmodules`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/mobiledetect/mobiledetectlib/.gitmodules`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/parsedown/LICENSE.txt`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/php-iban/docs`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/php-iban/docs`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/.gitattributes`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/.gitattributes`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/Classes/license.md`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/Classes/license.md`;
@ -579,6 +580,7 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/Examples`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/Examples`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/unitTests`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/unitTests`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/license.md`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/license.md`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/stripe/LICENSE`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/ae_fonts_*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/ae_fonts_*`;
@ -590,6 +592,8 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/theme/common/octicons/LICENSE`;
print "Remove subdir of custom dir\n"; print "Remove subdir of custom dir\n";
print "find $BUILDROOT/$PROJECT/htdocs/custom/* -type d -exec rm -fr {} \\;\n"; print "find $BUILDROOT/$PROJECT/htdocs/custom/* -type d -exec rm -fr {} \\;\n";

View File

@ -44,6 +44,10 @@ $search_doc_ref = GETPOST("search_doc_ref");
$search_date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth', 'int'), GETPOST('date_startday', 'int'), GETPOST('date_startyear', 'int')); $search_date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth', 'int'), GETPOST('date_startday', 'int'), GETPOST('date_startyear', 'int'));
$search_date_end = dol_mktime(0, 0, 0, GETPOST('date_endmonth', 'int'), GETPOST('date_endday', 'int'), GETPOST('date_endyear', 'int')); $search_date_end = dol_mktime(0, 0, 0, GETPOST('date_endmonth', 'int'), GETPOST('date_endday', 'int'), GETPOST('date_endyear', 'int'));
$search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int')); $search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
$search_date_creation_start = dol_mktime(0, 0, 0, GETPOST('date_creation_startmonth', 'int'), GETPOST('date_creation_startday', 'int'), GETPOST('date_creation_startyear', 'int'));
$search_date_creation_end = dol_mktime(0, 0, 0, GETPOST('date_creation_endmonth', 'int'), GETPOST('date_creation_endday', 'int'), GETPOST('date_creation_endyear', 'int'));
$search_date_modification_start = dol_mktime(0, 0, 0, GETPOST('date_modification_startmonth', 'int'), GETPOST('date_modification_startday', 'int'), GETPOST('date_modification_startyear', 'int'));
$search_date_modification_end = dol_mktime(0, 0, 0, GETPOST('date_modification_endmonth', 'int'), GETPOST('date_modification_endday', 'int'), GETPOST('date_modification_endyear', 'int'));
if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) { if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) {
$action = 'delbookkeepingyear'; $action = 'delbookkeepingyear';
@ -53,7 +57,6 @@ if (GETPOST("button_export_file_x") || GETPOST("button_export_file.x") || GETPOS
} }
$search_accountancy_code = GETPOST("search_accountancy_code"); $search_accountancy_code = GETPOST("search_accountancy_code");
$search_accountancy_code_start = GETPOST('search_accountancy_code_start', 'alpha'); $search_accountancy_code_start = GETPOST('search_accountancy_code_start', 'alpha');
if ($search_accountancy_code_start == - 1) { if ($search_accountancy_code_start == - 1) {
$search_accountancy_code_start = ''; $search_accountancy_code_start = '';
@ -64,7 +67,6 @@ if ($search_accountancy_code_end == - 1) {
} }
$search_accountancy_aux_code = GETPOST("search_accountancy_aux_code"); $search_accountancy_aux_code = GETPOST("search_accountancy_aux_code");
$search_accountancy_aux_code_start = GETPOST('search_accountancy_aux_code_start', 'alpha'); $search_accountancy_aux_code_start = GETPOST('search_accountancy_aux_code_start', 'alpha');
if ($search_accountancy_aux_code_start == - 1) { if ($search_accountancy_aux_code_start == - 1) {
$search_accountancy_aux_code_start = ''; $search_accountancy_aux_code_start = '';
@ -102,15 +104,30 @@ if ($action != 'export_file' && ! isset($_POST['begin']) && ! isset($_GET['begin
$search_date_end = dol_mktime(0, 0, 0, 12, 31, dol_print_date(dol_now(), '%Y')); $search_date_end = dol_mktime(0, 0, 0, 12, 31, dol_print_date(dol_now(), '%Y'));
} }
$arrayfields=array(
't.piece_num'=>array('label'=>$langs->trans("TransactionNumShort"), 'checked'=>1),
't.doc_date'=>array('label'=>$langs->trans("Docdate"), 'checked'=>1),
't.doc_ref'=>array('label'=>$langs->trans("Docref"), 'checked'=>1),
't.numero_compte'=>array('label'=>$langs->trans("AccountAccountingShort"), 'checked'=>1),
't.subledger_account'=>array('label'=>$langs->trans("SubledgerAccount"), 'checked'=>1),
't.label_operation'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
't.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1),
't.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1),
't.code_journal'=>array('label'=>$langs->trans("Codejournal"), 'checked'=>1),
't.date_creation'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0),
't.tms'=>array('label'=>$langs->trans("DateModification"), 'checked'=>0),
);
/* /*
* Action * Actions
*/ */
if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; } if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; }
if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; } if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
{ {
$search_mvt_num = ''; $search_mvt_num = '';
@ -128,6 +145,10 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
$search_ledger_code = ''; $search_ledger_code = '';
$search_date_start = ''; $search_date_start = '';
$search_date_end = ''; $search_date_end = '';
$search_date_creation_start = '';
$search_date_creation_end = '';
$search_date_modification_start = '';
$search_date_modification_end = '';
} }
// Must be after the remove filter action, before the export. // Must be after the remove filter action, before the export.
@ -196,6 +217,26 @@ if (! empty($search_mvt_num)) {
$filter['t.piece_num'] = $search_mvt_num; $filter['t.piece_num'] = $search_mvt_num;
$param .= '&search_mvt_num=' . $search_mvt_num; $param .= '&search_mvt_num=' . $search_mvt_num;
} }
if (! empty($search_date_creation_start)) {
$filter['t.date_creation>='] = $search_date_creation_start;
$tmp=dol_getdate($search_date_creation_start);
$param .= '&date_creation_startmonth=' . $tmp['mon'] . '&date_creation_startday=' . $tmp['mday'] . '&date_creation_startyear=' . $tmp['year'];
}
if (! empty($search_date_creation_end)) {
$filter['t.date_creation<='] = $search_date_creation_end;
$tmp=dol_getdate($search_date_creation_end);
$param .= '&date_creation_endmonth=' . $tmp['mon'] . '&date_creation_endday=' . $tmp['mday'] . '&date_creation_endyear=' . $tmp['year'];
}
if (! empty($search_date_modification_start)) {
$filter['t.tms>='] = $search_date_modification_start;
$tmp=dol_getdate($search_date_modification_start);
$param .= '&date_modification_startmonth=' . $tmp['mon'] . '&date_modification_startday=' . $tmp['mday'] . '&date_modification_startyear=' . $tmp['year'];
}
if (! empty($search_date_modification_end)) {
$filter['t.tms<='] = $search_date_modification_end;
$tmp=dol_getdate($search_date_modification_end);
$param .= '&date_modification_endmonth=' . $tmp['mon'] . '&date_modification_endday=' . $tmp['mday'] . '&date_modification_endyear=' . $tmp['year'];
}
if ($action == 'delbookkeeping') { if ($action == 'delbookkeeping') {
@ -370,11 +411,23 @@ print '<div class="inline-block divButAction"><a class="butActionDelete" name="b
print '</div>'; print '</div>';
print '<div class="div-table-responsive">'; $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
print '<table class="noborder" width="100%">'; $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
print '<div class="div-table-responsive">';
print '<table class="tagtable liste" width="100%">';
// Filters lines
print '<tr class="liste_titre_filter">'; print '<tr class="liste_titre_filter">';
// Movement number
if (! empty($arrayfields['t.piece_num']['checked']))
{
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="' . dol_escape_htmltag($search_mvt_num) . '"></td>'; print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="' . dol_escape_htmltag($search_mvt_num) . '"></td>';
}
// Date document
if (! empty($arrayfields['t.doc_date']['checked']))
{
print '<td class="liste_titre center">'; print '<td class="liste_titre center">';
print '<div class="nowrap">'; print '<div class="nowrap">';
print $langs->trans('From') . ' '; print $langs->trans('From') . ' ';
@ -385,7 +438,15 @@ print $langs->trans('to') . ' ';
print $form->select_date($search_date_end, 'date_end', 0, 0, 1); print $form->select_date($search_date_end, 'date_end', 0, 0, 1);
print '</div>'; print '</div>';
print '</td>'; print '</td>';
}
// Ref document
if (! empty($arrayfields['t.doc_ref']['checked']))
{
print '<td class="liste_titre"><input type="text" name="search_doc_ref" size="8" value="' . dol_escape_htmltag($search_doc_ref) . '"></td>'; print '<td class="liste_titre"><input type="text" name="search_doc_ref" size="8" value="' . dol_escape_htmltag($search_doc_ref) . '"></td>';
}
// Accountancy account
if (! empty($arrayfields['t.numero_compte']['checked']))
{
print '<td class="liste_titre">'; print '<td class="liste_titre">';
print '<div class="nowrap">'; print '<div class="nowrap">';
print $langs->trans('From').' '; print $langs->trans('From').' ';
@ -396,6 +457,10 @@ print $langs->trans('to').' ';
print $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', 1, array (), 1, 1, 'maxwidth200'); print $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', 1, array (), 1, 1, 'maxwidth200');
print '</div>'; print '</div>';
print '</td>'; print '</td>';
}
// Subledger account
if (! empty($arrayfields['t.subledger_account']['checked']))
{
print '<td class="liste_titre">'; print '<td class="liste_titre">';
print '<div class="nowrap">'; print '<div class="nowrap">';
print $langs->trans('From').' '; print $langs->trans('From').' ';
@ -424,38 +489,84 @@ else
} }
print '</div>'; print '</div>';
print '</td>'; print '</td>';
}
// Label operation
if (! empty($arrayfields['t.label_operation']['checked']))
{
print '<td class="liste_titre">'; print '<td class="liste_titre">';
print '<input type="text" size="7" class="flat" name="search_mvt_label" value="' . $search_mvt_label . '"/>'; print '<input type="text" size="7" class="flat" name="search_mvt_label" value="' . $search_mvt_label . '"/>';
print '</td>'; print '</td>';
}
// Debit
if (! empty($arrayfields['t.debit']['checked']))
{
print '<td class="liste_titre center">&nbsp;</td>'; print '<td class="liste_titre center">&nbsp;</td>';
}
// Credit
if (! empty($arrayfields['t.credit']['checked']))
{
print '<td class="liste_titre center">&nbsp;</td>'; print '<td class="liste_titre center">&nbsp;</td>';
}
// Code journal
if (! empty($arrayfields['t.code_journal']['checked']))
{
print '<td class="liste_titre center"><input type="text" name="search_ledger_code" size="3" value="' . $search_ledger_code . '"></td>'; print '<td class="liste_titre center"><input type="text" name="search_ledger_code" size="3" value="' . $search_ledger_code . '"></td>';
}
// Date creation
if (! empty($arrayfields['t.date_creation']['checked']))
{
print '<td class="liste_titre center">';
print '<div class="nowrap">';
print $langs->trans('From') . ' ';
print $form->select_date($search_date_creation_start, 'date_creation_start', 0, 0, 1);
print '</div>';
print '<div class="nowrap">';
print $langs->trans('to') . ' ';
print $form->select_date($search_date_creation_end, 'date_creation_end', 0, 0, 1);
print '</div>';
print '</td>';
}
// Date modification
if (! empty($arrayfields['t.tms']['checked']))
{
print '<td class="liste_titre center">';
print '<div class="nowrap">';
print $langs->trans('From') . ' ';
print $form->select_date($search_date_modification_start, 'date_modification_start', 0, 0, 1);
print '</div>';
print '<div class="nowrap">';
print $langs->trans('to') . ' ';
print $form->select_date($search_date_modification_end, 'date_modification_end', 0, 0, 1);
print '</div>';
print '</td>';
}
// Action column
print '<td class="liste_titre center">'; print '<td class="liste_titre center">';
$searchpicto=$form->showFilterButtons(); $searchpicto=$form->showFilterButtons();
print $searchpicto; print $searchpicto;
print '</td>'; print '</td>';
print '</tr>'; print "</tr>\n";
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre("TransactionNumShort", $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder); if (! empty($arrayfields['t.piece_num']['checked'])) print_liste_field_titre("TransactionNumShort", $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("Docdate", $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['t.doc_date']['checked'])) print_liste_field_titre("Docdate", $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder); if (! empty($arrayfields['t.doc_ref']['checked'])) print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder); if (! empty($arrayfields['t.numero_compte']['checked'])) print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("SubledgerAccount", $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder); if (! empty($arrayfields['t.subledger_account']['checked'])) print_liste_field_titre("SubledgerAccount", $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder); if (! empty($arrayfields['t.label_operation']['checked'])) print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder); if (! empty($arrayfields['t.debit']['checked'])) print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder); if (! empty($arrayfields['t.credit']['checked'])) print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['t.code_journal']['checked'])) print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder);
$checkpicto=''; if (! empty($arrayfields['t.date_creation']['checked'])) print_liste_field_titre("DateCreation", $_SERVER['PHP_SELF'], "t.date_creation", "", $param, 'align="center"', $sortfield, $sortorder);
if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1); if (! empty($arrayfields['t.tms']['checked'])) print_liste_field_titre("DateModification", $_SERVER['PHP_SELF'], "t.tms", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre($checkpicto, $_SERVER["PHP_SELF"], "", $param, "", 'width="60" align="center"', $sortfield, $sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
print "</tr>\n"; print "</tr>\n";
$total_debit = 0; if ($num > 0)
$total_credit = 0; {
$i=0; $i=0;
$totalarray=array();
while ($i < min($num, $limit)) while ($i < min($num, $limit))
{ {
$line = $object->lines[$i]; $line = $object->lines[$i];
@ -465,42 +576,123 @@ while ($i < min($num, $limit))
print '<tr class="oddeven">'; print '<tr class="oddeven">';
// Piece number
if (! empty($arrayfields['t.piece_num']['checked']))
{
print '<td><a href="./card.php?piece_num=' . $line->piece_num . '">' . $line->piece_num . '</a></td>'; print '<td><a href="./card.php?piece_num=' . $line->piece_num . '">' . $line->piece_num . '</a></td>';
print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>'; if (! $i) $totalarray['nbfield']++;
print '<td class="nowrap">' . $line->doc_ref . '</td>'; }
print '<td>' . length_accountg($line->numero_compte) . '</td>';
print '<td>' . length_accounta($line->subledger_account) . '</td>';
print '<td>' . $line->label_operation . '</td>';
print '<td align="right">' . ($line->debit ? price($line->debit) : ''). '</td>';
print '<td align="right">' . ($line->credit ? price($line->credit) : '') . '</td>';
// Document date
if (! empty($arrayfields['t.doc_date']['checked']))
{
print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Document ref
if (! empty($arrayfields['t.doc_ref']['checked']))
{
print '<td class="nowrap">' . $line->doc_ref . '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Account number
if (! empty($arrayfields['t.numero_compte']['checked']))
{
print '<td>' . length_accountg($line->numero_compte) . '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Subledger account
if (! empty($arrayfields['t.subledger_account']['checked']))
{
print '<td>' . length_accounta($line->subledger_account) . '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Label operation
if (! empty($arrayfields['t.label_operation']['checked']))
{
print '<td>' . $line->label_operation . '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Amount debit
if (! empty($arrayfields['t.debit']['checked']))
{
print '<td align="right">' . ($line->debit ? price($line->debit) : ''). '</td>';
if (! $i) $totalarray['nbfield']++;
if (! $i) $totalarray['totaldebitfield']=$totalarray['nbfield'];
$totalarray['totaldebit'] += $line->debit;
}
// Amount credit
if (! empty($arrayfields['t.credit']['checked']))
{
print '<td align="right">' . ($line->credit ? price($line->credit) : '') . '</td>';
if (! $i) $totalarray['nbfield']++;
if (! $i) $totalarray['totalcreditfield']=$totalarray['nbfield'];
$totalarray['totalcredit'] += $line->credit;
}
// Journal code
if (! empty($arrayfields['t.code_journal']['checked']))
{
$accountingjournal = new AccountingJournal($db); $accountingjournal = new AccountingJournal($db);
$result = $accountingjournal->fetch('',$line->code_journal); $result = $accountingjournal->fetch('',$line->code_journal);
$journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0,0,0,'',0) : $line->code_journal); $journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0,0,0,'',0) : $line->code_journal);
print '<td align="center">' . $journaltoshow . '</td>'; print '<td align="center">' . $journaltoshow . '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Creation operation date
if (! empty($arrayfields['t.date_creation']['checked']))
{
print '<td align="center">' . dol_print_date($line->date_creation, 'day') . '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Modification operation date
if (! empty($arrayfields['t.tms']['checked']))
{
print '<td align="center">' . dol_print_date($line->date_modification, 'day') . '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Action column
print '<td align="center">'; print '<td align="center">';
print '<a href="./card.php?piece_num=' . $line->piece_num . '">' . img_edit() . '</a>&nbsp;'; print '<a href="./card.php?piece_num=' . $line->piece_num . '">' . img_edit() . '</a>&nbsp;';
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=delmouv&mvt_num=' . $line->piece_num . $param . '&page=' . $page . '">' . img_delete() . '</a>'; print '<a href="' . $_SERVER['PHP_SELF'] . '?action=delmouv&mvt_num=' . $line->piece_num . $param . '&page=' . $page . '">' . img_delete() . '</a>';
print '</td>'; print '</td>';
if (! $i) $totalarray['nbfield']++;
print "</tr>\n"; print "</tr>\n";
$i++; $i++;
} }
print '<tr class="liste_total">'; // Show total line
if ($num < $limit) print '<td align="left" colspan="7">'.$langs->trans("Total").'</td>'; if (isset($totalarray['totaldebitfield']) || isset($totalarray['totalcreditfield']))
else print '<td align="left" colspan="7">'.$langs->trans("Totalforthispage").'</td>'; {
print '</td>'; $i=0;
print '<td align="right">'; while ($i < $totalarray['nbfield'])
print price($total_debit); {
print '</td>'; $i++;
print '<td align="right">'; if ($i == 1)
print price($total_credit); {
print '</td>'; if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
print '<td colspan="2"></td>'; else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
}
elseif ($totalarray['totaldebitfield'] == $i) print '<td align="right">'.price($totalarray['totaldebit']).'</td>';
elseif ($totalarray['totalcreditfield'] == $i) print '<td align="right">'.price($totalarray['totalcredit']).'</td>';
else print '<td></td>';
}
print '</tr>'; print '</tr>';
}
}
print "</table>"; print "</table>";
print '</div>'; print '</div>';

View File

@ -564,7 +564,8 @@ class BookKeeping extends CommonObject
$sql .= " t.import_key,"; $sql .= " t.import_key,";
$sql .= " t.code_journal,"; $sql .= " t.code_journal,";
$sql .= " t.journal_label,"; $sql .= " t.journal_label,";
$sql .= " t.piece_num"; $sql .= " t.piece_num,";
$sql .= " t.date_creation";
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element.$mode. ' as t'; $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element.$mode. ' as t';
$sql .= ' WHERE 1 = 1'; $sql .= ' WHERE 1 = 1';
$sql .= " AND entity IN (" . getEntity('accountancy') . ")"; $sql .= " AND entity IN (" . getEntity('accountancy') . ")";
@ -603,6 +604,7 @@ class BookKeeping extends CommonObject
$this->code_journal = $obj->code_journal; $this->code_journal = $obj->code_journal;
$this->journal_label = $obj->journal_label; $this->journal_label = $obj->journal_label;
$this->piece_num = $obj->piece_num; $this->piece_num = $obj->piece_num;
$this->date_creation = $this->db->jdate($obj->date_creation);
} }
$this->db->free($resql); $this->db->free($resql);
@ -658,7 +660,8 @@ class BookKeeping extends CommonObject
$sql .= " t.import_key,"; $sql .= " t.import_key,";
$sql .= " t.code_journal,"; $sql .= " t.code_journal,";
$sql .= " t.journal_label,"; $sql .= " t.journal_label,";
$sql .= " t.piece_num"; $sql .= " t.piece_num,";
$sql .= " t.date_creation";
// Manage filter // Manage filter
$sqlwhere = array (); $sqlwhere = array ();
if (count($filter) > 0) { if (count($filter) > 0) {
@ -675,6 +678,8 @@ class BookKeeping extends CommonObject
$sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\''; $sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\'';
} elseif ($key == 't.label_operation') { } elseif ($key == 't.label_operation') {
$sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\''; $sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\'';
} elseif ($key == 't.date_creation>=' || $key == 't.date_creation<=') {
$sqlwhere[] = $key . '\'' . $this->db->idate($value) . '\'';
} else { } else {
$sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\''; $sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\'';
} }
@ -725,6 +730,7 @@ class BookKeeping extends CommonObject
$line->code_journal = $obj->code_journal; $line->code_journal = $obj->code_journal;
$line->journal_label = $obj->journal_label; $line->journal_label = $obj->journal_label;
$line->piece_num = $obj->piece_num; $line->piece_num = $obj->piece_num;
$line->date_creation = $obj->date_creation;
$this->lines[] = $line; $this->lines[] = $line;
} }
@ -777,7 +783,8 @@ class BookKeeping extends CommonObject
$sql .= " t.import_key,"; $sql .= " t.import_key,";
$sql .= " t.code_journal,"; $sql .= " t.code_journal,";
$sql .= " t.journal_label,"; $sql .= " t.journal_label,";
$sql .= " t.piece_num"; $sql .= " t.piece_num,";
$sql .= " t.date_creation";
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
// Manage filter // Manage filter
$sqlwhere = array (); $sqlwhere = array ();
@ -793,6 +800,10 @@ class BookKeeping extends CommonObject
$sqlwhere[] = $key . '=' . $value; $sqlwhere[] = $key . '=' . $value;
} elseif ($key == 't.subledger_account' || $key == 't.numero_compte') { } elseif ($key == 't.subledger_account' || $key == 't.numero_compte') {
$sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\''; $sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\'';
} elseif ($key == 't.date_creation>=' || $key == 't.date_creation<=') {
$sqlwhere[] = $key . '\'' . $this->db->idate($value) . '\'';
} elseif ($key == 't.tms>=' || $key == 't.tms<=') {
$sqlwhere[] = $key . '\'' . $this->db->idate($value) . '\'';
} else { } else {
$sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\''; $sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\'';
} }
@ -841,6 +852,7 @@ class BookKeeping extends CommonObject
$line->code_journal = $obj->code_journal; $line->code_journal = $obj->code_journal;
$line->journal_label = $obj->journal_label; $line->journal_label = $obj->journal_label;
$line->piece_num = $obj->piece_num; $line->piece_num = $obj->piece_num;
$line->date_creation = $obj->date_creation;
$this->lines[] = $line; $this->lines[] = $line;
} }
@ -1336,6 +1348,7 @@ class BookKeeping extends CommonObject
$this->code_journal = 'VT'; $this->code_journal = 'VT';
$this->journal_label = 'Journal de vente'; $this->journal_label = 'Journal de vente';
$this->piece_num = ''; $this->piece_num = '';
$this->date_creation = $now;
} }
/** /**
@ -1348,7 +1361,7 @@ class BookKeeping extends CommonObject
public function fetchPerMvt($piecenum, $mode='') { public function fetchPerMvt($piecenum, $mode='') {
global $conf; global $conf;
$sql = "SELECT piece_num,doc_date,code_journal,journal_label,doc_ref,doc_type"; $sql = "SELECT piece_num,doc_date,code_journal,journal_label,doc_ref,doc_type,date_creation";
$sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element.$mode; $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element.$mode;
$sql .= " WHERE piece_num = " . $piecenum; $sql .= " WHERE piece_num = " . $piecenum;
$sql .= " AND entity IN (" . getEntity('accountancy') . ")"; $sql .= " AND entity IN (" . getEntity('accountancy') . ")";
@ -1364,6 +1377,7 @@ class BookKeeping extends CommonObject
$this->doc_date = $this->db->jdate($obj->doc_date); $this->doc_date = $this->db->jdate($obj->doc_date);
$this->doc_ref = $obj->doc_ref; $this->doc_ref = $obj->doc_ref;
$this->doc_type = $obj->doc_type; $this->doc_type = $obj->doc_type;
$this->date_creation = $obj->date_creation;
} else { } else {
$this->error = "Error " . $this->db->lasterror(); $this->error = "Error " . $this->db->lasterror();
dol_syslog(get_class($this) . "::" . __METHOD__ . $this->error, LOG_ERR); dol_syslog(get_class($this) . "::" . __METHOD__ . $this->error, LOG_ERR);
@ -1414,7 +1428,7 @@ class BookKeeping extends CommonObject
$sql = "SELECT rowid, doc_date, doc_type,"; $sql = "SELECT rowid, doc_date, doc_type,";
$sql .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,"; $sql .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,";
$sql .= " numero_compte, label_compte, label_operation, debit, credit,"; $sql .= " numero_compte, label_compte, label_operation, debit, credit,";
$sql .= " montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num"; $sql .= " montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num, date_creation";
$sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element.$mode; $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element.$mode;
$sql .= " WHERE piece_num = " . $piecenum; $sql .= " WHERE piece_num = " . $piecenum;
$sql .= " AND entity IN (" . getEntity('accountancy') . ")"; $sql .= " AND entity IN (" . getEntity('accountancy') . ")";
@ -1447,6 +1461,7 @@ class BookKeeping extends CommonObject
$line->code_journal = $obj->code_journal; $line->code_journal = $obj->code_journal;
$line->journal_label = $obj->journal_label; $line->journal_label = $obj->journal_label;
$line->piece_num = $obj->piece_num; $line->piece_num = $obj->piece_num;
$line->date_creation = $obj->date_creation;
$this->linesmvt[] = $line; $this->linesmvt[] = $line;
} }
@ -1785,4 +1800,5 @@ class BookKeepingLine
public $code_journal; public $code_journal;
public $journal_label; public $journal_label;
public $piece_num; public $piece_num;
public $date_creation;
} }

View File

@ -38,6 +38,7 @@ $langs->load("agenda");
$action = GETPOST('action','alpha'); $action = GETPOST('action','alpha');
$cancel = GETPOST('cancel','alpha'); $cancel = GETPOST('cancel','alpha');
$search_event = GETPOST('search_event', 'alpha');
// Get list of triggers available // Get list of triggers available
$sql = "SELECT a.rowid, a.code, a.label, a.elementtype"; $sql = "SELECT a.rowid, a.code, a.label, a.elementtype";
@ -70,6 +71,12 @@ else
* Actions * Actions
*/ */
// Purge search criteria
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
{
$search_event = '';
}
if ($action == "save" && empty($cancel)) if ($action == "save" && empty($cancel))
{ {
$i=0; $i=0;
@ -78,11 +85,14 @@ if ($action == "save" && empty($cancel))
foreach ($triggers as $trigger) foreach ($triggers as $trigger)
{ {
$param='MAIN_AGENDA_ACTIONAUTO_'.$trigger['code']; $keyparam='MAIN_AGENDA_ACTIONAUTO_'.$trigger['code'];
//print "param=".$param." - ".$_POST[$param]; //print "param=".$param." - ".$_POST[$param];
$res = dolibarr_set_const($db,$param,(GETPOST($param,'alpha')?GETPOST($param,'alpha'):''),'chaine',0,'',$conf->entity); if ($search_event === '' || preg_match('/'.preg_quote($search_event,'/').'/i', $keyparam))
{
$res = dolibarr_set_const($db,$keyparam,(GETPOST($keyparam,'alpha')?GETPOST($keyparam,'alpha'):''),'chaine',0,'',$conf->entity);
if (! $res > 0) $error++; if (! $res > 0) $error++;
} }
}
if (! $error) if (! $error)
{ {
@ -140,6 +150,8 @@ print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="save">'; print '<input type="hidden" name="action" value="save">';
$param = '';
$param.= '&search_event='.urlencode($search_event);
$head=agenda_prepare_head(); $head=agenda_prepare_head();
@ -151,8 +163,19 @@ print "<br>\n";
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans("ActionsEvents").'</td>'; print '<td class="liste_titre"><input type="text" name="search_event" value="'.dol_escape_htmltag($search_event).'"></td>';
print '<td><a href="'.$_SERVER["PHP_SELF"].'?action=selectall">'.$langs->trans("All").'</a>/<a href="'.$_SERVER["PHP_SELF"].'?action=selectnone">'.$langs->trans("None").'</a>'; print '<td class="liste_titre"></td>';
// Action column
print '<td class="liste_titre" align="right">';
$searchpicto=$form->showFilterButtons();
print $searchpicto;
print '</td>';
print '</tr>';
print '</tr>'."\n";
print '<tr class="liste_titre">';
print '<th class="liste_titre">'.$langs->trans("ActionsEvents").'</th>';
print '<th class="liste_titre"></th>';
print '<th class="liste_titre"><a href="'.$_SERVER["PHP_SELF"].'?action=selectall'.($param?$param:'').'">'.$langs->trans("All").'</a>/<a href="'.$_SERVER["PHP_SELF"].'?action=selectnone'.($param?$param:'').'">'.$langs->trans("None").'</a></th>';
print '</tr>'."\n"; print '</tr>'."\n";
// Show each trigger (list is in c_action_trigger) // Show each trigger (list is in c_action_trigger)
if (! empty($triggers)) if (! empty($triggers))
@ -173,7 +196,8 @@ if (! empty($triggers))
if ($trigger['code'] == 'FICHINTER_CLASSIFY_BILLED' && empty($conf->global->FICHINTER_CLASSIFY_BILLED)) continue; if ($trigger['code'] == 'FICHINTER_CLASSIFY_BILLED' && empty($conf->global->FICHINTER_CLASSIFY_BILLED)) continue;
if ($trigger['code'] == 'FICHINTER_CLASSIFY_UNBILLED' && empty($conf->global->FICHINTER_CLASSIFY_BILLED)) continue; if ($trigger['code'] == 'FICHINTER_CLASSIFY_UNBILLED' && empty($conf->global->FICHINTER_CLASSIFY_BILLED)) continue;
if ($search_event === '' || preg_match('/'.preg_quote($search_event,'/').'/i', $trigger['code']))
{
print '<tr class="oddeven">'; print '<tr class="oddeven">';
print '<td>'.$trigger['code'].'</td>'; print '<td>'.$trigger['code'].'</td>';
print '<td>'.$trigger['label'].'</td>'; print '<td>'.$trigger['label'].'</td>';
@ -185,6 +209,7 @@ if (! empty($triggers))
} }
} }
} }
}
print '</table>'; print '</table>';
dol_fiche_end(); dol_fiche_end();

View File

@ -352,6 +352,15 @@ else
} }
print '</td></tr>'."\n"; print '</td></tr>'."\n";
// AGENDA_DEFAULT_VIEW
print '<tr class="oddeven">'."\n";
print '<td>'.$langs->trans("AGENDA_DEFAULT_VIEW").'</td>'."\n";
print '<td align="center">&nbsp;</td>'."\n";
print '<td align="right">'."\n";
$tmplist=array('show_list'=>$langs->trans("ViewList"), 'show_month'=>$langs->trans("ViewCal"), 'show_week'=>$langs->trans("ViewWeek"), 'show_day'=>$langs->trans("ViewDay"), 'show_peruser'=>$langs->trans("ViewPerUser"));
print $form->selectarray('AGENDA_DEFAULT_VIEW', $tmplist, $conf->global->AGENDA_DEFAULT_VIEW);
print '</td></tr>'."\n";
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
{ {
@ -381,15 +390,6 @@ print '<td align="right">'."\n";
$formactions->form_select_status_action('agenda', $conf->global->AGENDA_DEFAULT_FILTER_STATUS, 1, 'AGENDA_DEFAULT_FILTER_STATUS', 1, 2, 'minwidth100'); $formactions->form_select_status_action('agenda', $conf->global->AGENDA_DEFAULT_FILTER_STATUS, 1, 'AGENDA_DEFAULT_FILTER_STATUS', 1, 2, 'minwidth100');
print '</td></tr>'."\n"; print '</td></tr>'."\n";
// AGENDA_DEFAULT_VIEW
print '<tr class="oddeven">'."\n";
print '<td>'.$langs->trans("AGENDA_DEFAULT_VIEW").'</td>'."\n";
print '<td align="center">&nbsp;</td>'."\n";
print '<td align="right">'."\n";
$tmplist=array('show_list'=>$langs->trans("ViewList"), 'show_month'=>$langs->trans("ViewCal"), 'show_week'=>$langs->trans("ViewWeek"), 'show_day'=>$langs->trans("ViewDay"), 'show_peruser'=>$langs->trans("ViewPerUser"));
print $form->selectarray('AGENDA_DEFAULT_VIEW', $tmplist, $conf->global->AGENDA_DEFAULT_VIEW);
print '</td></tr>'."\n";
print '</table>'; print '</table>';
dol_fiche_end(); dol_fiche_end();

View File

@ -403,6 +403,9 @@ if ($mode == 'searchkey')
$recordtoshow=array(); $recordtoshow=array();
// Search modules dirs
$modulesdir = dolGetModulesDirs();
$nbempty=0; $nbempty=0;
/*var_dump($langcode); /*var_dump($langcode);
var_dump($transkey); var_dump($transkey);
@ -416,15 +419,16 @@ if ($mode == 'searchkey')
} }
else else
{ {
// Load all translations keys // Search into dir of modules (the $modulesdir is already a list that loop on $conf->file->dol_document_root)
foreach($conf->file->dol_document_root as $keydir => $searchdir) foreach($modulesdir as $keydir => $tmpsearchdir)
{ {
$searchdir = $tmpsearchdir; // $searchdir can be '.../htdocs/core/modules/' or '.../htdocs/custom/mymodule/core/modules/'
// Directory of translation files // Directory of translation files
$dir_lang = $searchdir."/langs/".$langcode; $dir_lang = dirname(dirname($searchdir))."/langs/".$langcode; // The 2 dirname is to go up in dir for 2 levels
$dir_lang_osencoded=dol_osencode($dir_lang); $dir_lang_osencoded=dol_osencode($dir_lang);
$filearray=dol_dir_list($dir_lang_osencoded,'files',0,'','',$sortfield,(strtolower($sortorder)=='asc'?SORT_ASC:SORT_DESC),1); $filearray=dol_dir_list($dir_lang_osencoded,'files',0,'','',$sortfield,(strtolower($sortorder)=='asc'?SORT_ASC:SORT_DESC),1);
foreach($filearray as $file) foreach($filearray as $file)
{ {
$tmpfile=preg_replace('/.lang/i', '', basename($file['name'])); $tmpfile=preg_replace('/.lang/i', '', basename($file['name']));

View File

@ -128,7 +128,7 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' |
foreach ($modulesdir as $dir) foreach ($modulesdir as $dir)
{ {
// Search available module // Search available module
dol_syslog("Scan directory ".$dir." for module descriptor to after search for API files"); dol_syslog("Scan directory ".$dir." for module descriptor files, then search for API files");
$handle=@opendir(dol_osencode($dir)); $handle=@opendir(dol_osencode($dir));
if (is_resource($handle)) if (is_resource($handle))
@ -140,13 +140,13 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' |
$module = strtolower($regmod[1]); $module = strtolower($regmod[1]);
$moduledirforclass = getModuleDirForApiClass($module); $moduledirforclass = getModuleDirForApiClass($module);
$modulenameforenabled = $module; $modulenameforenabled = $module;
if ($module == 'propale') { $moduleforenabled='propal'; } if ($module == 'propale') { $modulenameforenabled='propal'; }
//dol_syslog("Found module file ".$file." - module=".$module." - moduledirforclass=".$moduledirforclass); dol_syslog("Found module file ".$file." - module=".$module." - moduledirforclass=".$moduledirforclass);
// Defined if module is enabled // Defined if module is enabled
$enabled=true; $enabled=true;
if (empty($conf->$moduleforenabled->enabled)) $enabled=false; if (empty($conf->$modulenameforenabled->enabled)) $enabled=false;
if ($enabled) if ($enabled)
{ {
@ -235,7 +235,13 @@ if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/resources.json'
if ($module == 'order') { $classname='Commande'; } if ($module == 'order') { $classname='Commande'; }
//var_dump($classfile);var_dump($classname);exit; //var_dump($classfile);var_dump($classname);exit;
require_once $dir_part_file; $res = include_once $dir_part_file;
if (! $res)
{
print 'API not found (failed to include API file)';
header('HTTP/1.1 501 API not found (failed to include API file)');
exit(0);
}
if (class_exists($classname.'Api')) $api->r->addAPIClass($classname.'Api', '/'); if (class_exists($classname.'Api')) $api->r->addAPIClass($classname.'Api', '/');
} }
else else
@ -247,7 +253,14 @@ if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/resources.json'
$dir_part_file = dol_buildpath('/'.$moduledirforclass.'/class/api_'.$classfile.'.class.php'); $dir_part_file = dol_buildpath('/'.$moduledirforclass.'/class/api_'.$classfile.'.class.php');
$classname=ucwords($module); $classname=ucwords($module);
require_once $dir_part_file; $res = include_once $dir_part_file;
if (! $res)
{
print 'API not found (failed to include API file)';
header('HTTP/1.1 501 API not found (failed to include API file)');
exit(0);
}
if (class_exists($classname)) $api->r->addAPIClass($classname); if (class_exists($classname)) $api->r->addAPIClass($classname);
} }
} }

View File

@ -184,7 +184,7 @@ class BlockedLog
{ {
$this->date_object = $object->datepaye; $this->date_object = $object->datepaye;
} }
if ($object->element=='payment_salary') elseif ($object->element=='payment_salary')
{ {
$this->date_object = $object->datev; $this->date_object = $object->datev;
} }

View File

@ -35,6 +35,10 @@ function printBookmarksList($aDb, $aLangs)
$db = $aDb; $db = $aDb;
$langs = $aLangs; $langs = $aLangs;
$ret.= '<div class="menu_top"></div>'."\n";
if (! empty($conf->use_javascript_ajax)) { // Bookmark autosubmit can't work when javascript is off.
require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php'; require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php';
if (! isset($conf->global->BOOKMARKS_SHOW_IN_MENU)) $conf->global->BOOKMARKS_SHOW_IN_MENU=5; if (! isset($conf->global->BOOKMARKS_SHOW_IN_MENU)) $conf->global->BOOKMARKS_SHOW_IN_MENU=5;
@ -74,7 +78,7 @@ function printBookmarksList($aDb, $aLangs)
$ret.= '<option hidden value="listbookmarks" class="optiongrey" selected rel="'.DOL_URL_ROOT.'/bookmarks/list.php">'.$langs->trans('Bookmarks').'</option>'; $ret.= '<option hidden value="listbookmarks" class="optiongrey" selected rel="'.DOL_URL_ROOT.'/bookmarks/list.php">'.$langs->trans('Bookmarks').'</option>';
$ret.= '<option value="listbookmark" class="optionblue" rel="'.dol_escape_htmltag(DOL_URL_ROOT.'/bookmarks/list.php').'">'.dol_escape_htmltag($user->rights->bookmark->creer ? $langs->trans('EditBookmarks') : $langs->trans('ListOfBookmarks')).'...</option>'; $ret.= '<option value="listbookmark" class="optionblue" rel="'.dol_escape_htmltag(DOL_URL_ROOT.'/bookmarks/list.php').'">'.dol_escape_htmltag($user->rights->bookmark->creer ? $langs->trans('EditBookmarks') : $langs->trans('ListOfBookmarks')).'...</option>';
// Url to go on create new bookmark page // Url to go on create new bookmark page
if ($user->rights->bookmark->creer) if (! empty($user->rights->bookmark->creer))
{ {
//$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&amp;urlsource='.urlencode($url).'&amp;url='.urlencode($url); //$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&amp;urlsource='.urlencode($url).'&amp;url='.urlencode($url);
$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&amp;url='.urlencode($url); $urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&amp;url='.urlencode($url);
@ -95,7 +99,7 @@ function printBookmarksList($aDb, $aLangs)
$ret.='<option name="bookmark'.$obj->rowid.'" value="'.$obj->rowid.'" '.($obj->target == 1?' target="_blank"':'').' rel="'.dol_escape_htmltag($obj->url).'">'; $ret.='<option name="bookmark'.$obj->rowid.'" value="'.$obj->rowid.'" '.($obj->target == 1?' target="_blank"':'').' rel="'.dol_escape_htmltag($obj->url).'">';
//$ret.='<span class="fa fa-print">aa</span>'; //$ret.='<span class="fa fa-print">aa</span>';
$ret.=img_picto('','object_bookmark').' '; $ret.=img_picto('','object_bookmark').' ';
$ret.=$obj->title; $ret.=dol_escape_htmltag($obj->title);
$ret.='</option>'; $ret.='</option>';
$i++; $i++;
} }
@ -139,7 +143,9 @@ function printBookmarksList($aDb, $aLangs)
} }
});'; });';
$ret.='})</script>'; $ret.='})</script>';
$ret .= '<div class="menu_end"></div>'; }
$ret.= '<div class="menu_end"></div>'."\n";
return $ret; return $ret;
} }

View File

@ -1135,7 +1135,6 @@ class ActionComm extends CommonObject
if ($this->type_code != 'AC_OTH_AUTO') $labeltype = $langs->trans('ActionAC_MANUAL'); if ($this->type_code != 'AC_OTH_AUTO') $labeltype = $langs->trans('ActionAC_MANUAL');
} }
$tooltip = '<u>' . $langs->trans('ShowAction'.$objp->code) . '</u>'; $tooltip = '<u>' . $langs->trans('ShowAction'.$objp->code) . '</u>';
if (! empty($this->ref)) if (! empty($this->ref))
$tooltip .= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref; $tooltip .= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
@ -1204,10 +1203,13 @@ class ActionComm extends CommonObject
{ {
$libelle.=(($this->type_code && $libelle!=$langs->transnoentities("Action".$this->type_code) && $langs->transnoentities("Action".$this->type_code)!="Action".$this->type_code)?' ('.$langs->transnoentities("Action".$this->type_code).')':''); $libelle.=(($this->type_code && $libelle!=$langs->transnoentities("Action".$this->type_code) && $langs->transnoentities("Action".$this->type_code)!="Action".$this->type_code)?' ('.$langs->transnoentities("Action".$this->type_code).')':'');
} }
$result.=$linkstart.img_object(($notooltip?'':$langs->trans("ShowAction").': '.$libelle), ($overwritepicto?$overwritepicto:'action'), ($notooltip?'class="valigntextbottom"':'class="classfortooltip valigntextbottom"'), 0, 0, $notooltip?0:1).$linkend;
} }
if ($withpicto==1) $result.=' ';
$result.=$linkstart.$libelleshort.$linkend; $result.=$linkstart;
if ($withpicto) $result.=img_object(($notooltip?'':$langs->trans("ShowAction").': '.$libelle), ($overwritepicto?$overwritepicto:'action'), ($notooltip?'class="'.(($withpicto != 2) ? 'paddingright ' : '').'valigntextbottom"':'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip valigntextbottom"'), 0, 0, $notooltip?0:1);
$result.=$libelleshort;
$result.=$linkend;
return $result; return $result;
} }
@ -1530,10 +1532,18 @@ class ActionComm extends CommonObject
return 0; return 0;
} }
$now = dol_now();
dol_syslog(__METHOD__, LOG_DEBUG); dol_syslog(__METHOD__, LOG_DEBUG);
// TODO Scan events of type 'email' into table llx_actioncomm_reminder with status todo, send email, then set status to done
// Delete also very old past events (we do not keep more than 1 month record in past)
$sql = "DELETE FROM ".MAIN_DB_PREFIX."actioncomm_reminder WHERE dateremind < '".$this->jdate($now - (3600 * 24 * 32))."'";
$this->db->query($sql);
return 0; return 0;
} }

View File

@ -0,0 +1,229 @@
<?php
/* Copyright (C) 2017 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 <http://www.gnu.org/licenses/>.
*/
/**
* \file class/actioncommreminder.class.php
* \ingroup agenda
* \brief This file is a CRUD class file for ActionCommReminder (Create/Read/Update/Delete)
*/
// Put here all includes required by your class file
require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
/**
* Class for ActionCommReminder
*/
class ActionCommReminder extends CommonObject
{
/**
* @var string ID to identify managed object
*/
public $element = 'actioncomm_reminder';
/**
* @var string Name of table without prefix where object is stored
*/
public $table_element = 'actioncomm_reminder';
/**
* @var array Does actioncommreminder support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
*/
public $ismultientitymanaged = 0;
/**
* @var string String with name of icon for actioncommreminder. Must be the part after the 'object_' into object_actioncommreminder.png
*/
public $picto = 'generic';
/**
* 'type' if the field format.
* 'label' the translation key.
* 'enabled' is a condition when the field must be managed.
* 'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only. Using a negative value means field is not shown by default on list but can be selected for viewing)
* 'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0).
* 'index' if we want an index in database.
* 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...).
* 'position' is the sort order of field.
* 'searchall' is 1 if we want to search in this field when making a search from the quick search button.
* 'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8).
* 'help' is a string visible as a tooltip on field
* 'comment' is not used. You can store here any text of your choice. It is not used by application.
* 'default' is a default value for creation (can still be replaced by the global setup of default values)
* 'showoncombobox' if field must be shown into the label of combobox
*/
// BEGIN MODULEBUILDER PROPERTIES
/**
* @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor.
*/
public $fields=array(
'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>-1, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id",),
'dateremind' => array('type'=>'datetime', 'label'=>'DateRemind', 'visible'=>1, 'enabled'=>1, 'position'=>60, 'notnull'=>1, 'index'=>1,),
'typeremind' => array('type'=>'varchar(32)', 'label'=>'TypeRemind', 'visible'=>-1, 'enabled'=>1, 'position'=>55, 'notnull'=>1, 'comment'=>"email, browser, sms",),
'fk_user' => array('type'=>'integer', 'label'=>'User', 'visible'=>-1, 'enabled'=>1, 'position'=>65, 'notnull'=>1, 'index'=>1,),
'offsetvalue' => array('type'=>'integer', 'label'=>'OffsetValue', 'visible'=>1, 'enabled'=>1, 'position'=>56, 'notnull'=>1,),
'offsetunit' => array('type'=>'varchar(1)', 'label'=>'OffsetUnit', 'visible'=>1, 'enabled'=>1, 'position'=>57, 'notnull'=>1, 'comment'=>"m, h, d, w",),
'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>1000, 'notnull'=>1, 'default'=>0, 'index'=>0, 'arrayofkeyval'=>array('0'=>'ToDo', '1'=>'Done')),
);
public $rowid;
public $dateremind;
public $typeremind;
public $fk_user;
public $offsetvalue;
public $offsetunit;
public $status;
// END MODULEBUILDER PROPERTIES
/**
* Constructor
*
* @param DoliDb $db Database handler
*/
public function __construct(DoliDB $db)
{
global $conf;
$this->db = $db;
if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID)) $this->fields['rowid']['visible']=0;
if (empty($conf->multicompany->enabled)) $this->fields['entity']['enabled']=0;
}
/**
* Create object into database
*
* @param User $user User that creates
* @param bool $notrigger false=launch triggers after, true=disable triggers
* @return int <0 if KO, Id of created object if OK
*/
public function create(User $user, $notrigger = false)
{
return $this->createCommon($user, $notrigger);
}
/**
* Load object in memory from the database
*
* @param int $id Id object
* @param string $ref Ref
* @return int <0 if KO, 0 if not found, >0 if OK
*/
public function fetch($id, $ref = null)
{
$result = $this->fetchCommon($id, $ref);
return $result;
}
/**
* Update object into database
*
* @param User $user User that modifies
* @param bool $notrigger false=launch triggers after, true=disable triggers
* @return int <0 if KO, >0 if OK
*/
public function update(User $user, $notrigger = false)
{
return $this->updateCommon($user, $notrigger);
}
/**
* Delete object in database
*
* @param User $user User that deletes
* @param bool $notrigger false=launch triggers after, true=disable triggers
* @return int <0 if KO, >0 if OK
*/
public function delete(User $user, $notrigger = false)
{
return $this->deleteCommon($user, $notrigger);
}
/**
* Retourne le libelle du status d'un user (actif, inactif)
*
* @param int $mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
* @return string Label of status
*/
function getLibStatut($mode=0)
{
return $this->LibStatut($this->status,$mode);
}
/**
* Return the status
*
* @param int $status Id status
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
* @return string Label of status
*/
static function LibStatut($status,$mode=0)
{
global $langs;
if ($mode == 0)
{
$prefix='';
if ($status == 1) return $langs->trans('Done');
if ($status == 0) return $langs->trans('ToDo');
}
if ($mode == 1)
{
if ($status == 1) return $langs->trans('Done');
if ($status == 0) return $langs->trans('ToDo');
}
if ($mode == 2)
{
if ($status == 1) return img_picto($langs->trans('Done'),'statut4').' '.$langs->trans('Done');
if ($status == 0) return img_picto($langs->trans('ToDo'),'statut5').' '.$langs->trans('ToDo');
}
if ($mode == 3)
{
if ($status == 1) return img_picto($langs->trans('Done'),'statut4');
if ($status == 0) return img_picto($langs->trans('ToDo'),'statut5');
}
if ($mode == 4)
{
if ($status == 1) return img_picto($langs->trans('Done'),'statut4').' '.$langs->trans('Done');
if ($status == 0) return img_picto($langs->trans('ToDo'),'statut5').' '.$langs->trans('ToDo');
}
if ($mode == 5)
{
if ($status == 1) return $langs->trans('Done').' '.img_picto($langs->trans('Done'),'statut4');
if ($status == 0) return $langs->trans('ToDo').' '.img_picto($langs->trans('ToDo'),'statut5');
}
if ($mode == 6)
{
if ($status == 1) return $langs->trans('Done').' '.img_picto($langs->trans('Done'),'statut4');
if ($status == 0) return $langs->trans('ToDo').' '.img_picto($langs->trans('ToDo'),'statut5');
}
}
/**
* Initialise object with example values
* Id must be 0 if object instance is a specimen
*
* @return void
*/
public function initAsSpecimen()
{
$this->initAsSpecimenCommon();
}
}

View File

@ -1364,7 +1364,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
print '>'; print '>';
print '<table class="centpercent cal_event'.(empty($event->transparency)?'':' cal_event_busy').'" style="'.$h; print '<table class="centpercent cal_event'.(empty($event->transparency)?'':' cal_event_busy').'" style="'.$h;
print 'background: #'.$color.';'; print 'background: #'.$color.';';
print 'background: -webkit-gradient(linear, left top, left bottom, from(#'.dol_color_minus($color, 0).'), to(#'.dol_color_minus($color, 1).'));'; print 'background: -webkit-gradient(linear, left top, left bottom, from(#'.dol_color_minus($color, -4).'), to(#'.dol_color_minus($color, -3).'));';
//if (! empty($event->transparency)) print 'background: #'.$color.'; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,1).'));'; //if (! empty($event->transparency)) print 'background: #'.$color.'; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,1).'));';
//else print 'background-color: transparent !important; background: none; border: 1px solid #bbb;'; //else print 'background-color: transparent !important; background: none; border: 1px solid #bbb;';
//print ' -moz-border-radius:4px;"'; //print ' -moz-border-radius:4px;"';
@ -1572,7 +1572,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
* Change color with a delta * Change color with a delta
* *
* @param string $color Color * @param string $color Color
* @param int $minus Delta (1 = 16 unit) * @param int $minus Delta (1 = 16 unit). Positive value = darker color, Negative value = brighter color.
* @param int $minusunit Minus unit * @param int $minusunit Minus unit
* @return string New color * @return string New color
*/ */

View File

@ -3357,11 +3357,11 @@ class Propal extends CommonObject
$linkstart.=$linkclose.'>'; $linkstart.=$linkclose.'>';
$linkend='</a>'; $linkend='</a>';
if ($withpicto) $result .= $linkstart;
$result.=($linkstart.img_object(($notooltip?'':$label), $this->picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend); if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
if ($withpicto && $withpicto != 2) if ($withpicto != 2) $result.= $this->ref;
$result.=' '; $result .= $linkend;
$result.=$linkstart.$this->ref.$linkend;
return $result; return $result;
} }

View File

@ -1906,6 +1906,40 @@ class Commande extends CommonOrder
return $nb; return $nb;
} }
/**
* Count numbe rof shipments for this order
*
* @return int <0 if KO, Nb of shipment found if OK
*/
function getNbOfShipments()
{
$nb = 0;
$sql = 'SELECT COUNT(DISTINCT ed.fk_expedition) as nb';
$sql.= ' FROM '.MAIN_DB_PREFIX.'expeditiondet as ed,';
$sql.= ' '.MAIN_DB_PREFIX.'commandedet as cd';
$sql.= ' WHERE';
$sql.= ' ed.fk_origin_line = cd.rowid';
$sql.= ' AND cd.fk_commande =' .$this->id;
//print $sql;
dol_syslog(get_class($this)."::getNbOfShipments", LOG_DEBUG);
$resql = $this->db->query($sql);
if ($resql)
{
$obj = $this->db->fetch_object($resql);
if ($obj) $nb = $obj->nb;
$this->db->free($resql);
return $nb;
}
else
{
$this->error=$this->db->lasterror();
return -1;
}
}
/** /**
* Load array this->expeditions of lines of shipments with nb of products sent for each order line * Load array this->expeditions of lines of shipments with nb of products sent for each order line
* Note: For a dedicated shipment, the fetch_lines can be used to load the qty_asked and qty_shipped. This function is use to return qty_shipped cumulated for the order * Note: For a dedicated shipment, the fetch_lines can be used to load the qty_asked and qty_shipped. This function is use to return qty_shipped cumulated for the order
@ -1932,18 +1966,18 @@ class Commande extends CommonOrder
//print $sql; //print $sql;
dol_syslog(get_class($this)."::loadExpeditions", LOG_DEBUG); dol_syslog(get_class($this)."::loadExpeditions", LOG_DEBUG);
$result = $this->db->query($sql); $resql = $this->db->query($sql);
if ($result) if ($resql)
{ {
$num = $this->db->num_rows($result); $num = $this->db->num_rows($resql);
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$obj = $this->db->fetch_object($result); $obj = $this->db->fetch_object($resql);
$this->expeditions[$obj->rowid] = $obj->qty; $this->expeditions[$obj->rowid] = $obj->qty;
$i++; $i++;
} }
$this->db->free(); $this->db->free($resql);
return $num; return $num;
} }
else else
@ -1951,7 +1985,6 @@ class Commande extends CommonOrder
$this->error=$this->db->lasterror(); $this->error=$this->db->lasterror();
return -1; return -1;
} }
} }
/** /**
@ -2002,18 +2035,18 @@ class Commande extends CommonOrder
$sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps"; $sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
$sql.= " WHERE ps.fk_product IN (".join(',',$array_of_product).")"; $sql.= " WHERE ps.fk_product IN (".join(',',$array_of_product).")";
$sql.= ' GROUP BY fk_product '; $sql.= ' GROUP BY fk_product ';
$result = $this->db->query($sql); $resql = $this->db->query($sql);
if ($result) if ($resql)
{ {
$num = $this->db->num_rows($result); $num = $this->db->num_rows($resql);
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$obj = $this->db->fetch_object($result); $obj = $this->db->fetch_object($resql);
$this->stocks[$obj->fk_product] = $obj->total; $this->stocks[$obj->fk_product] = $obj->total;
$i++; $i++;
} }
$this->db->free(); $this->db->free($resql);
} }
} }
return 0; return 0;
@ -3368,7 +3401,6 @@ class Commande extends CommonOrder
if ($short) return $url; if ($short) return $url;
$picto = 'order';
$label = ''; $label = '';
if ($user->rights->commande->lire) { if ($user->rights->commande->lire) {
@ -3402,9 +3434,11 @@ class Commande extends CommonOrder
$linkstart.=$linkclose.'>'; $linkstart.=$linkclose.'>';
$linkend='</a>'; $linkend='</a>';
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend); $result .= $linkstart;
if ($withpicto && $withpicto != 2) $result.=' '; if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
$result.=$linkstart.$this->ref.$linkend; if ($withpicto != 2) $result.= $this->ref;
$result .= $linkend;
return $result; return $result;
} }

View File

@ -1324,11 +1324,14 @@ class Account extends CommonObject
if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
} }
$link = '<a href="'.$url.$linkclose; $linkstart = '<a href="'.$url.$linkclose;
$linkend = '</a>'; $linkend = '</a>';
if ($withpicto) $result.=($link.img_object($label, 'account', 'class="classfortooltip"').$linkend.' '); $result .= $linkstart;
$result.=$link.$this->ref.($option == 'reflabel' && $this->label ? ' - '.$this->label : '').$linkend; if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
if ($withpicto != 2) $result.= $this->ref.($option == 'reflabel' && $this->label ? ' - '.$this->label : '');
$result .= $linkend;
return $result; return $result;
} }

View File

@ -1161,9 +1161,10 @@ class Facture extends CommonInvoice
$linkstart.=$linkclose.'>'; $linkstart.=$linkclose.'>';
$linkend='</a>'; $linkend='</a>';
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend); $result .= $linkstart;
if ($withpicto && $withpicto != 2) $result.=' '; if ($withpicto) $result.=img_object(($notooltip?'':$label), $picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
if ($withpicto != 2) $result.=$linkstart.($max?dol_trunc($this->ref,$max):$this->ref).$linkend; if ($withpicto != 2) $result.= ($max?dol_trunc($this->ref,$max):$this->ref);
$result .= $linkend;
if ($addlinktonotes) if ($addlinktonotes)
{ {

View File

@ -40,6 +40,7 @@ class Contact extends CommonObject
public $element='contact'; public $element='contact';
public $table_element='socpeople'; public $table_element='socpeople';
public $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe public $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
public $picto = 'contact';
public $civility_id; // In fact we store civility_code public $civility_id; // In fact we store civility_code
public $civility_code; public $civility_code;
@ -1053,8 +1054,12 @@ class Contact extends CommonObject
$linkend='</a>'; $linkend='</a>';
} }
if ($withpicto) $result.=($linkstart.img_object($label, 'contact', 'class="classfortooltip"').$linkend.' ');
$result.=$linkstart.($maxlen?dol_trunc($this->getFullName($langs),$maxlen):$this->getFullName($langs)).$linkend; $result.=$linkstart;
if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip valigntextbottom"'), 0, 0, $notooltip?0:1);
if ($withpicto != 2) $result.=($maxlen?dol_trunc($this->getFullName($langs),$maxlen):$this->getFullName($langs));
$result.=$linkend;
return $result; return $result;
} }

View File

@ -1878,7 +1878,6 @@ class Contrat extends CommonObject
if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
//} //}
$picto = 'contract';
$label = ''; $label = '';
if ($user->rights->contrat->lire) { if ($user->rights->contrat->lire) {
@ -1913,9 +1912,11 @@ class Contrat extends CommonObject
$linkstart.=$linkclose.'>'; $linkstart.=$linkclose.'>';
$linkend='</a>'; $linkend='</a>';
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend); $result .= $linkstart;
if ($withpicto && $withpicto != 2) $result.=' '; if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
$result.=$linkstart.$this->ref.$linkend; if ($withpicto != 2) $result.= $this->ref;
$result .= $linkend;
return $result; return $result;
} }

View File

@ -340,16 +340,6 @@ abstract class CommonObject
// No constructor as it is an abstract class // No constructor as it is an abstract class
/**
* Return if an object manage the multicompany field and how.
*
* @return int 0=No entity field managed, 1=Test with field entity, 2=Test with link to thirdparty (and sales representative)
*/
function getIsmultientitymanaged()
{
return $this->ismultientitymanaged;
}
/** /**
* Check an object id/ref exists * Check an object id/ref exists
* If you don't need/want to instantiate object and just need to know if object exists, use this method instead of fetch * If you don't need/want to instantiate object and just need to know if object exists, use this method instead of fetch
@ -3712,8 +3702,7 @@ abstract class CommonObject
if ($this->statut == 0 && $action == 'editline' && $selected == $line->id) if ($this->statut == 0 && $action == 'editline' && $selected == $line->id)
{ {
$label = (! empty($line->label) ? $line->label : (($line->fk_product > 0) ? $line->product_label : '')); $label = (! empty($line->label) ? $line->label : (($line->fk_product > 0) ? $line->product_label : ''));
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $placeholder=' placeholder="'.$langs->trans("Label").'"'; $placeholder=' placeholder="'.$langs->trans("Label").'"';
else $placeholder=' title="'.$langs->trans("Label").'"';
$line->pu_ttc = price2num($line->subprice * (1 + ($line->tva_tx/100)), 'MU'); $line->pu_ttc = price2num($line->subprice * (1 + ($line->tva_tx/100)), 'MU');

View File

@ -1010,8 +1010,7 @@ class Form
$out.='<style type="text/css">.ui-autocomplete { z-index: 250; }</style>'; $out.='<style type="text/css">.ui-autocomplete { z-index: 250; }</style>';
if (empty($hidelabel)) print $langs->trans("RefOrLabel").' : '; if (empty($hidelabel)) print $langs->trans("RefOrLabel").' : ';
else if ($hidelabel > 1) { else if ($hidelabel > 1) {
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $placeholder=' placeholder="'.$langs->trans("RefOrLabel").'"'; $placeholder=' placeholder="'.$langs->trans("RefOrLabel").'"';
else $placeholder=' title="'.$langs->trans("RefOrLabel").'"';
if ($hidelabel == 2) { if ($hidelabel == 2) {
$out.= img_picto($langs->trans("Search"), 'search'); $out.= img_picto($langs->trans("Search"), 'search');
} }
@ -1818,8 +1817,7 @@ class Form
} }
if (empty($hidelabel)) print $langs->trans("RefOrLabel").' : '; if (empty($hidelabel)) print $langs->trans("RefOrLabel").' : ';
else if ($hidelabel > 1) { else if ($hidelabel > 1) {
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $placeholder=' placeholder="'.$langs->trans("RefOrLabel").'"'; $placeholder=' placeholder="'.$langs->trans("RefOrLabel").'"';
else $placeholder=' title="'.$langs->trans("RefOrLabel").'"';
if ($hidelabel == 2) { if ($hidelabel == 2) {
print img_picto($langs->trans("Search"), 'search'); print img_picto($langs->trans("Search"), 'search');
} }
@ -2566,6 +2564,8 @@ class Form
$this->db->free($result); $this->db->free($result);
$out.=ajax_combobox($htmlname);
if (empty($outputmode)) return $out; if (empty($outputmode)) return $out;
return $outarray; return $outarray;
} }

View File

@ -517,22 +517,31 @@ function GETPOST($paramname, $check='alpha', $method=0, $filter=NULL, $options=N
if (preg_match('/[^0-9,]+/i',$out)) $out=''; if (preg_match('/[^0-9,]+/i',$out)) $out='';
break; break;
case 'alpha': case 'alpha':
if (! is_array($out))
{
$out=trim($out); $out=trim($out);
// '"' is dangerous because param in url can close the href= or src= and add javascript functions. // '"' is dangerous because param in url can close the href= or src= and add javascript functions.
// '../' is dangerous because it allows dir transversals // '../' is dangerous because it allows dir transversals
if (preg_match('/"/',$out)) $out=''; if (preg_match('/"/',$out)) $out='';
else if (preg_match('/\.\.\//',$out)) $out=''; else if (preg_match('/\.\.\//',$out)) $out='';
}
break; break;
case 'san_alpha': case 'san_alpha':
$out=filter_var($out,FILTER_SANITIZE_STRING); $out=filter_var($out,FILTER_SANITIZE_STRING);
break; break;
case 'aZ': case 'aZ':
if (! is_array($out))
{
$out=trim($out); $out=trim($out);
if (preg_match('/[^a-z]+/i',$out)) $out=''; if (preg_match('/[^a-z]+/i',$out)) $out='';
}
break; break;
case 'aZ09': case 'aZ09':
if (! is_array($out))
{
$out=trim($out); $out=trim($out);
if (preg_match('/[^a-z0-9_\-\.]+/i',$out)) $out=''; if (preg_match('/[^a-z0-9_\-\.]+/i',$out)) $out='';
}
break; break;
case 'array': case 'array':
if (! is_array($out) || empty($out)) $out=array(); if (! is_array($out) || empty($out)) $out=array();
@ -541,12 +550,15 @@ function GETPOST($paramname, $check='alpha', $method=0, $filter=NULL, $options=N
$out=dol_string_nohtmltag($out); $out=dol_string_nohtmltag($out);
break; break;
case 'alphanohtml': // Recommended for search params case 'alphanohtml': // Recommended for search params
if (! is_array($out))
{
$out=trim($out); $out=trim($out);
// '"' is dangerous because param in url can close the href= or src= and add javascript functions. // '"' is dangerous because param in url can close the href= or src= and add javascript functions.
// '../' is dangerous because it allows dir transversals // '../' is dangerous because it allows dir transversals
if (preg_match('/"/',$out)) $out=''; if (preg_match('/"/',$out)) $out='';
else if (preg_match('/\.\.\//',$out)) $out=''; else if (preg_match('/\.\.\//',$out)) $out='';
$out=dol_string_nohtmltag($out); $out=dol_string_nohtmltag($out);
}
break; break;
case 'custom': case 'custom':
if (empty($filter)) return 'BadFourthParameterForGETPOST'; if (empty($filter)) return 'BadFourthParameterForGETPOST';
@ -927,10 +939,10 @@ function dol_escape_js($stringtoescape, $mode=0, $noescapebackslashn=0)
function dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0) function dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0)
{ {
// escape quotes and backslashes, newlines, etc. // escape quotes and backslashes, newlines, etc.
$tmp=html_entity_decode($stringtoescape, ENT_COMPAT, 'UTF-8'); // TODO Use htmlspecialchars_decode instead, that make only required change for html form content $tmp=html_entity_decode($stringtoescape, ENT_COMPAT, 'UTF-8'); // TODO Use htmlspecialchars_decode instead, that make only required change for html tags
if (! $keepb) $tmp=strtr($tmp, array("<b>"=>'','</b>'=>'')); if (! $keepb) $tmp=strtr($tmp, array("<b>"=>'','</b>'=>''));
if (! $keepn) $tmp=strtr($tmp, array("\r"=>'\\r',"\n"=>'\\n')); if (! $keepn) $tmp=strtr($tmp, array("\r"=>'\\r',"\n"=>'\\n'));
return htmlentities($tmp, ENT_COMPAT, 'UTF-8'); // TODO Use htmlspecialchars instead, that make only required change for html form content return htmlentities($tmp, ENT_COMPAT, 'UTF-8'); // TODO Use htmlspecialchars instead, that make only required change for html tags
} }

View File

@ -132,9 +132,9 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir='
$texttoinsert.= " 'notnull'=>".($val['notnull']!=''?$val['notnull']:-1).","; $texttoinsert.= " 'notnull'=>".($val['notnull']!=''?$val['notnull']:-1).",";
if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].","; if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].",";
if ($val['searchall']) $texttoinsert.= " 'searchall'=>".$val['searchall'].","; if ($val['searchall']) $texttoinsert.= " 'searchall'=>".$val['searchall'].",";
if ($val['comment']) $texttoinsert.= " 'comment'=>'".$val['comment']."',"; if ($val['comment']) $texttoinsert.= " 'comment'=>\"".preg_replace('/"/', '', $val['comment'])."\","; // addslashes is escape for PHP
if ($val['isameasure']) $texttoinsert.= " 'isameasure'=>'".$val['isameasure']."',"; if ($val['isameasure']) $texttoinsert.= " 'isameasure'=>'".$val['isameasure']."',";
if ($val['help']) $texttoinsert.= " 'help'=>'".$val['help']."',"; if ($val['help']) $texttoinsert.= " 'help'=>\"".preg_replace('/"/', '', $val['help'])."\","; // addslashes is escape for PHP
if ($val['arrayofkeyval']) if ($val['arrayofkeyval'])
{ {
$texttoinsert.= " 'arrayofkeyval'=>array("; $texttoinsert.= " 'arrayofkeyval'=>array(";
@ -215,8 +215,8 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
$pathoffiletoclasssrc=$readdir.'/class/'.strtolower($objectname).'.class.php'; $pathoffiletoclasssrc=$readdir.'/class/'.strtolower($objectname).'.class.php';
// Edit .sql file // Edit .sql file
$pathoffiletoeditsrc=$readdir.'/sql/llx_'.strtolower($objectname).'.sql'; $pathoffiletoeditsrc=$readdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql';
$pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($objectname).'.sql'.($readdir != $destdir ? '.new' : ''); $pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql'.($readdir != $destdir ? '.new' : '');
if (! dol_is_file($pathoffiletoeditsrc)) if (! dol_is_file($pathoffiletoeditsrc))
{ {
$langs->load("errors"); $langs->load("errors");
@ -287,8 +287,8 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
} }
// Edit .key.sql file // Edit .key.sql file
$pathoffiletoeditsrc=$destdir.'/sql/llx_'.strtolower($objectname).'.key.sql'; $pathoffiletoeditsrc=$destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql';
$pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($objectname).'.key.sql'.($readdir != $destdir ? '.new' : ''); $pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql'.($readdir != $destdir ? '.new' : '');
$contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); $contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r');
@ -301,7 +301,7 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
$i++; $i++;
if ($val['index']) if ($val['index'])
{ {
$texttoinsert.= "ALTER TABLE llx_".strtolower($objectname)." ADD INDEX idx_".strtolower($objectname)."_".$key." (".$key.");"; $texttoinsert.= "ALTER TABLE llx_".strtolower($module).'_'.strtolower($objectname)." ADD INDEX idx_".strtolower($module).'_'.strtolower($objectname)."_".$key." (".$key.");";
$texttoinsert.= "\n"; $texttoinsert.= "\n";
} }
} }

View File

@ -61,10 +61,13 @@ function commande_prepare_head(Commande $object)
if (($conf->expedition_bon->enabled && $user->rights->expedition->lire) if (($conf->expedition_bon->enabled && $user->rights->expedition->lire)
|| ($conf->livraison_bon->enabled && $user->rights->expedition->livraison->lire)) || ($conf->livraison_bon->enabled && $user->rights->expedition->livraison->lire))
{ {
$nbShipments=$object->getNbOfShipments(); $nbReceiption=0;
$head[$h][0] = DOL_URL_ROOT.'/expedition/shipment.php?id='.$object->id; $head[$h][0] = DOL_URL_ROOT.'/expedition/shipment.php?id='.$object->id;
if ($conf->expedition_bon->enabled) $text=$langs->trans("Shipments"); if ($conf->expedition_bon->enabled) $text=$langs->trans("Shipments");
if ($nbShipments > 0) $text.= ' <span class="badge">'.$nbShipments.'</span>';
if ($conf->expedition_bon->enabled && $conf->livraison_bon->enabled) $text.='/'; if ($conf->expedition_bon->enabled && $conf->livraison_bon->enabled) $text.='/';
if ($conf->livraison_bon->enabled) $text.=$langs->trans("Receivings"); if ($conf->livraison_bon->enabled) $text.=$langs->trans("Receivings");
if ($nbReceiption > 0) $text.= ' <span class="badge">'.$nbReceiption.'</span>';
$head[$h][1] = $text; $head[$h][1] = $text;
$head[$h][2] = 'shipping'; $head[$h][2] = 'shipping';
$h++; $h++;

View File

@ -589,9 +589,10 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
* @param int $restricteditformytask 0=No restriction, 1=Enable add time only if task is a task i am affected to * @param int $restricteditformytask 0=No restriction, 1=Enable add time only if task is a task i am affected to
* @param int $preselectedday Preselected day * @param int $preselectedday Preselected day
* @param array $isavailable Array with data that say if user is available for several days for morning and afternoon * @param array $isavailable Array with data that say if user is available for several days for morning and afternoon
* @param int $oldprojectforbreak Old project id of last project break
* @return $inc * @return $inc
*/ */
function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask, $preselectedday, &$isavailable) function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask, $preselectedday, &$isavailable, $oldprojectforbreak=0)
{ {
global $conf, $db, $user, $bc, $langs; global $conf, $db, $user, $bc, $langs;
global $form, $formother, $projectstatic, $taskstatic, $thirdpartystatic; global $form, $formother, $projectstatic, $taskstatic, $thirdpartystatic;
@ -611,7 +612,10 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
} }
} }
if (empty($oldprojectforbreak))
{
$oldprojectforbreak = (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)?0:-1); // 0 to start break , -1 no break $oldprojectforbreak = (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)?0:-1); // 0 to start break , -1 no break
}
//dol_syslog('projectLinesPerDay inc='.$inc.' preselectedday='.$preselectedday.' task parent id='.$parent.' level='.$level." count(lines)=".$numlines." count(lineswithoutlevel0)=".count($lineswithoutlevel0)); //dol_syslog('projectLinesPerDay inc='.$inc.' preselectedday='.$preselectedday.' task parent id='.$parent.' level='.$level." count(lines)=".$numlines." count(lineswithoutlevel0)=".count($lineswithoutlevel0));
for ($i = 0 ; $i < $numlines ; $i++) for ($i = 0 ; $i < $numlines ; $i++)
@ -818,8 +822,8 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
$level++; $level++;
if ($lines[$i]->id > 0) if ($lines[$i]->id > 0)
{ {
if ($parent == 0) projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lineswithoutlevel0, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $isavailable); if ($parent == 0) projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lineswithoutlevel0, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $isavailable, $oldprojectforbreak);
else projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lines, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $isavailable); else projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lines, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $isavailable, $oldprojectforbreak);
} }
$level--; $level--;
} }
@ -847,9 +851,10 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
* @param string $mine Show only task lines I am assigned to * @param string $mine Show only task lines I am assigned to
* @param int $restricteditformytask 0=No restriction, 1=Enable add time only if task is a task i am affected to * @param int $restricteditformytask 0=No restriction, 1=Enable add time only if task is a task i am affected to
* @param array $isavailable Array with data that say if user is available for several days for morning and afternoon * @param array $isavailable Array with data that say if user is available for several days for morning and afternoon
* @param int $oldprojectforbreak Old project id of last project break
* @return $inc * @return $inc
*/ */
function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask, &$isavailable) function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask, &$isavailable, $oldprojectforbreak=0)
{ {
global $conf, $db, $user, $bc, $langs; global $conf, $db, $user, $bc, $langs;
global $form, $formother, $projectstatic, $taskstatic, $thirdpartystatic; global $form, $formother, $projectstatic, $taskstatic, $thirdpartystatic;
@ -871,7 +876,10 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
//dol_syslog('projectLinesPerWeek inc='.$inc.' firstdaytoshow='.$firstdaytoshow.' task parent id='.$parent.' level='.$level." count(lines)=".$numlines." count(lineswithoutlevel0)=".count($lineswithoutlevel0)); //dol_syslog('projectLinesPerWeek inc='.$inc.' firstdaytoshow='.$firstdaytoshow.' task parent id='.$parent.' level='.$level." count(lines)=".$numlines." count(lineswithoutlevel0)=".count($lineswithoutlevel0));
if (empty($oldprojectforbreak))
{
$oldprojectforbreak = (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)?0:-1); // 0 = start break, -1 = never break $oldprojectforbreak = (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)?0:-1); // 0 = start break, -1 = never break
}
for ($i = 0 ; $i < $numlines ; $i++) for ($i = 0 ; $i < $numlines ; $i++)
{ {
@ -1065,8 +1073,8 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
$level++; $level++;
if ($lines[$i]->id > 0) if ($lines[$i]->id > 0)
{ {
if ($parent == 0) projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, $lineswithoutlevel0, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $isavailable); if ($parent == 0) projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, $lineswithoutlevel0, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $isavailable, $oldprojectforbreak);
else projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, $lines, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $isavailable); else projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, $lines, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $isavailable, $oldprojectforbreak);
} }
$level--; $level--;
} }

View File

@ -182,7 +182,7 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
else $classname = 'class="tmenu"'; else $classname = 'class="tmenu"';
$idsel='accountancy'; $idsel='accountancy';
$menu->add('/accountancy/index.php?mainmenu=accountancy&amp;leftmenu=', $langs->trans("Accountancy"), 0, $showmode, $atarget, "accountancy", '', 52, $id, $idsel, $classname); $menu->add('/accountancy/index.php?mainmenu=accountancy&amp;leftmenu=', $langs->trans("MenuAccountancy"), 0, $showmode, $atarget, "accountancy", '', 52, $id, $idsel, $classname);
} }

View File

@ -77,9 +77,6 @@ if ($conf->use_javascript_ajax && 1 == 2) // select2 is ko with jmobile
} }
else else
{ {
$conf->global->MAIN_HTML5_PLACEHOLDER = 1;
$usedbyinclude = 1; // Used into next include $usedbyinclude = 1; // Used into next include
include DOL_DOCUMENT_ROOT.'/core/ajax/selectsearchbox.php'; include DOL_DOCUMENT_ROOT.'/core/ajax/selectsearchbox.php';

View File

@ -83,7 +83,7 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
$b=new BlockedLog($this->db); $b=new BlockedLog($this->db);
$b->action = $action; $b->action = $action;
$b->amounts= $amounts; $b->amounts= $amounts;
$b->setObjectData($object); // Set field ref_object, fk_object, element, object_data $b->setObjectData($object); // Set field date_object, ref_object, fk_object, element, object_data
$res = $b->create($user); $res = $b->create($user);

View File

@ -689,13 +689,17 @@ if (empty($reshook))
$batch_qty = GETPOST($qty, 'int'); $batch_qty = GETPOST($qty, 'int');
if (! empty($batch_id) && ($batch_id != $detail_batch->fk_origin_stock || $batch_qty != $detail_batch->dluo_qty)) if (! empty($batch_id) && ($batch_id != $detail_batch->fk_origin_stock || $batch_qty != $detail_batch->dluo_qty))
{ {
if ($lotStock->fetch($batch_id) > 0 && $line->fetch($detail_batch->fk_expeditiondet) > 0) if ($lotStock->fetch($batch_id) > 0 && $line->fetch($detail_batch->fk_expeditiondet) > 0) // $line is ExpeditionLine
{ {
if ($lines[$i]->entrepot_id != 0) if ($lines[$i]->entrepot_id != 0)
{ {
// allow update line entrepot_id if not multi warehouse shipping // allow update line entrepot_id if not multi warehouse shipping
$line->entrepot_id = $lotStock->warehouseid; $line->entrepot_id = $lotStock->warehouseid;
} }
// detail_batch can be an object with keys, or an array of ExpeditionLineBatch
if (empty($line->detail_batch)) $line->detail_batch=new stdClass();
$line->detail_batch->fk_origin_stock = $batch_id; $line->detail_batch->fk_origin_stock = $batch_id;
$line->detail_batch->batch = $lotStock->batch; $line->detail_batch->batch = $lotStock->batch;
$line->detail_batch->id = $detail_batch->id; $line->detail_batch->id = $detail_batch->id;
@ -1600,7 +1604,13 @@ if ($action == 'create')
print "</table>"; print "</table>";
print '<br><div class="center"><input type="submit" class="button" value="'.$langs->trans("Create").'"></div>'; print '<br>';
print '<div class="center">';
print '<input type="submit" class="button" name="add" value="'.dol_escape_htmltag($langs->trans("Create")).'">';
print '&nbsp; ';
print '<input type="'.($backtopage?"submit":"button").'" class="button" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'"'.($backtopage?'':' onclick="javascript:history.go(-1)"').'>'; // Cancel for create does not post form if we don't know the backtopage
print '</div>';
print '</form>'; print '</form>';
@ -2561,136 +2571,6 @@ else if ($id || $ref)
$trackid = 'shi'.$object->id; $trackid = 'shi'.$object->id;
include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
/*
if ($action == 'presend')
{
$ref = dol_sanitizeFileName($object->ref);
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$fileparams = dol_most_recent_file($conf->expedition->dir_output . '/sending/' . $ref, preg_quote($ref, '/').'[^\-]+');
$file=$fileparams['fullname'];
// Define output language
$outputlangs = $langs;
$newlang = '';
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
$newlang = $_REQUEST['lang_id'];
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
$newlang = $object->thirdparty->default_lang;
if (!empty($newlang))
{
$outputlangs = new Translate('', $conf);
$outputlangs->setDefaultLang($newlang);
$outputlangs->load('sendings');
}
// Build document if it not exists
if (! $file || ! is_readable($file))
{
$result = $object->generateDocument(GETPOST('model')?GETPOST('model'):$object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
if ($result <= 0)
{
dol_print_error($db,$object->error,$object->errors);
exit;
}
$fileparams = dol_most_recent_file($conf->expedition->dir_output . '/sending/' . $ref, preg_quote($ref, '/').'[^\-]+');
$file=$fileparams['fullname'];
}
print '<div id="formmailbeforetitle" name="formmailbeforetitle"></div>';
print '<div class="clearboth"></div>';
print '<br>';
print load_fiche_titre($langs->trans('SendShippingByEMail'));
dol_fiche_head('');
// Cree l'objet formulaire mail
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
$formmail = new FormMail($db);
$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
$formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
if($formmail->fromtype === 'user'){
$formmail->fromid = $user->id;
}
$formmail->trackid='shi'.$object->id;
if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set
{
include DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
$formmail->frommail=dolAddEmailTrackId($formmail->frommail, 'shi'.$object->id);
}
$formmail->withfrom=1;
$liste=array();
foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value) $liste[$key]=$value;
$formmail->withto=GETPOST("sendto")?GETPOST("sendto"):$liste;
$formmail->withtocc=$liste;
$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
$formmail->withtopic=$outputlangs->trans('SendShippingRef','__SHIPPINGREF__');
$formmail->withfile=2;
$formmail->withbody=1;
$formmail->withdeliveryreceipt=1;
$formmail->withcancel=1;
// Tableau des substitutions
$formmail->setSubstitFromObject($object, $outputlangs);
$formmail->substit['__SHIPPINGREF__']=$object->ref;
$formmail->substit['__SHIPPINGTRACKNUM__']=$object->tracking_number;
$formmail->substit['__SHIPPINGTRACKNUMURL__']=$object->tracking_url;
//Find the good contact adress
if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled)) {
$objectsrc=new Commande($db);
$objectsrc->fetch($object->$typeobject->id);
}
if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled)) {
$objectsrc=new Propal($db);
$objectsrc->fetch($object->$typeobject->id);
}
$custcontact='';
$contactarr=array();
if (is_object($objectsrc)) // For the case the shipment was created without orders
{
$contactarr=$objectsrc->liste_contact(-1,'external');
}
if (is_array($contactarr) && count($contactarr)>0) {
foreach($contactarr as $contact) {
if ($contact['libelle']==$langs->trans('TypeContact_commande_external_CUSTOMER')) {
require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
$contactstatic=new Contact($db);
$contactstatic->fetch($contact['id']);
$custcontact=$contactstatic->getFullName($langs,1);
}
}
if (!empty($custcontact)) {
$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
}
}
// Tableau des parametres complementaires
$formmail->param['action']='send';
$formmail->param['models']='shipping_send';
$formmail->param['models_id']=GETPOST('modelmailselected','int');
$formmail->param['shippingid']=$object->id;
$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
// Init list of files
if (GETPOST("mode")=='init')
{
$formmail->clear_attached_files();
$formmail->add_attached_files($file,basename($file),dol_mimetype($file));
}
// Show form
print $formmail->get_form();
dol_fiche_end();
}*/
} }

View File

@ -1504,11 +1504,11 @@ class Expedition extends CommonObject
$linkstart = '<a href="'.$url.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">'; $linkstart = '<a href="'.$url.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
$linkend='</a>'; $linkend='</a>';
$picto='sending'; $result .= $linkstart;
if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
if ($withpicto != 2) $result.= $this->ref;
$result .= $linkend;
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend);
if ($withpicto && $withpicto != 2) $result.=' ';
$result.=$linkstart.$this->ref.$linkend;
return $result; return $result;
} }
@ -2485,8 +2485,6 @@ class ExpeditionLigne extends CommonObjectLine
dol_syslog(get_class($this)."::update id=$this->id, entrepot_id=$this->entrepot_id, product_id=$this->fk_product, qty=$this->qty"); dol_syslog(get_class($this)."::update id=$this->id, entrepot_id=$this->entrepot_id, product_id=$this->fk_product, qty=$this->qty");
$this->db->begin(); $this->db->begin();
// Clean parameters // Clean parameters
@ -2496,7 +2494,7 @@ class ExpeditionLigne extends CommonObjectLine
$batch = null; $batch = null;
$batch_id = null; $batch_id = null;
$expedition_batch_id = null; $expedition_batch_id = null;
if (is_array($this->detail_batch)) if (is_array($this->detail_batch)) // array of ExpeditionLineBatch
{ {
if (count($this->detail_batch) > 1) if (count($this->detail_batch) > 1)
{ {
@ -2588,6 +2586,7 @@ class ExpeditionLigne extends CommonObjectLine
$sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_batch"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_batch";
$sql.= " WHERE fk_expeditiondet = ".$this->id; $sql.= " WHERE fk_expeditiondet = ".$this->id;
$sql.= " AND rowid = ".$expedition_batch_id; $sql.= " AND rowid = ".$expedition_batch_id;
if (!$this->db->query($sql)) if (!$this->db->query($sql))
{ {
$this->errors[]=$this->db->lasterror()." - sql=$sql"; $this->errors[]=$this->db->lasterror()." - sql=$sql";

View File

@ -39,13 +39,7 @@ if (! empty($conf->stock->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/st
if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
$langs->load('orders'); $langs->loadLangs(array('orders',"companies","bills",'propal','deliveries','stocks',"productbatch",'incoterm'));
$langs->load("companies");
$langs->load("bills");
$langs->load('propal');
$langs->load('deliveries');
$langs->load('stocks');
$langs->load("productbatch");
$id=GETPOST('id','int'); // id of order $id=GETPOST('id','int'); // id of order
$ref= GETPOST('ref','alpha'); $ref= GETPOST('ref','alpha');
@ -157,6 +151,15 @@ if (empty($reshook))
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
// Set incoterm
elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled))
{
$result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors');
}
}
// shipping method // shipping method
if ($action == 'setshippingmethod' && $user->rights->commande->creer) { if ($action == 'setshippingmethod' && $user->rights->commande->creer) {
$object = new Commande($db); $object = new Commande($db);
@ -528,7 +531,7 @@ if ($id > 0 || ! empty($ref))
print '<table width="100%" class="nobordernopadding"><tr><td>'; print '<table width="100%" class="nobordernopadding"><tr><td>';
print $langs->trans('IncotermLabel'); print $langs->trans('IncotermLabel');
print '<td><td align="right">'; print '<td><td align="right">';
if ($user->rights->commande->creer) print '<a href="'.DOL_URL_ROOT.'/commande/card.php?id='.$object->id.'&action=editincoterm">'.img_edit().'</a>'; if ($user->rights->commande->creer) print '<a href="'.$_SERVER['PHP_SELF'].'/expedition/shipment.php?id='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
else print '&nbsp;'; else print '&nbsp;';
print '</td></tr></table>'; print '</td></tr></table>';
print '</td>'; print '</td>';

View File

@ -1544,7 +1544,6 @@ class ExpenseReport extends CommonObject
if ($short) return $url; if ($short) return $url;
$picto='trip';
$label = '<u>' . $langs->trans("ShowExpenseReport") . '</u>'; $label = '<u>' . $langs->trans("ShowExpenseReport") . '</u>';
if (! empty($this->ref)) if (! empty($this->ref))
$label .= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref; $label .= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
@ -1583,8 +1582,11 @@ class ExpenseReport extends CommonObject
$linkstart.=$linkclose.'>'; $linkstart.=$linkclose.'>';
$linkend='</a>'; $linkend='</a>';
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend.' '); $result .= $linkstart;
$result.=$linkstart.($max?dol_trunc($ref,$max):$ref).$linkend; if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
if ($withpicto != 2) $result.=($max?dol_trunc($ref,$max):$ref);
$result .= $linkend;
return $result; return $result;
} }

View File

@ -671,7 +671,6 @@ class Fichinter extends CommonObject
if (! empty($this->ref)) if (! empty($this->ref))
$label .= '<br><b>' . $langs->trans('Ref') . ':</b> '.$this->ref; $label .= '<br><b>' . $langs->trans('Ref') . ':</b> '.$this->ref;
$picto='intervention';
$url = DOL_URL_ROOT.'/fichinter/card.php?id='.$this->id; $url = DOL_URL_ROOT.'/fichinter/card.php?id='.$this->id;
if ($option !== 'nolink') if ($option !== 'nolink')
@ -698,9 +697,11 @@ class Fichinter extends CommonObject
$linkstart.=$linkclose.'>'; $linkstart.=$linkclose.'>';
$linkend='</a>'; $linkend='</a>';
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend); $result .= $linkstart;
if ($withpicto && $withpicto != 2) $result.=' '; if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
if ($withpicto != 2) $result.=$linkstart.$this->ref.$linkend; if ($withpicto != 2) $result.= $this->ref;
$result .= $linkend;
return $result; return $result;
} }

View File

@ -393,7 +393,7 @@ if ($object->id > 0)
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
print '<tr class="liste_titre'.(($num == 0) ? ' nobottom':'').'">'; print '<tr class="liste_titre'.(($num == 0) ? ' nobottom':'').'">';
print '<td colspan="3">'.$langs->trans("ProductsAndServices").'</td><td align="right">'; print '<td colspan="3">'.$langs->trans("ProductsAndServices").'</td><td align="right">';
print '<a class="notasortlink" href="'.DOL_URL_ROOT.'/fourn/product/list.php?fourn_id='.$object->id.'">'.$langs->trans("AllProductServicePrices").' <span class="badge">'.$object->nbOfProductRefs().'</span>'; print '<a class="notasortlink" href="'.DOL_URL_ROOT.'/fourn/product/list.php?fourn_id='.$object->id.'">'.$langs->trans("AllProductReferencesOfSupplier").' <span class="badge">'.$object->nbOfProductRefs().'</span>';
print '</a></td></tr>'; print '</a></td></tr>';
$return = array(); $return = array();

View File

@ -1497,6 +1497,7 @@ class FactureFournisseur extends CommonInvoice
else else
{ {
$this->error=$this->line->error; $this->error=$this->line->error;
$this->errors=$this->line->errors;
$this->db->rollback(); $this->db->rollback();
return -2; return -2;
} }

View File

@ -1344,11 +1344,6 @@ if (! empty($conf->projet->enabled)) { $formproject = new FormProjets($db); }
$help_url='EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores'; $help_url='EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores';
llxHeader('',$langs->trans("Order"),$help_url); llxHeader('',$langs->trans("Order"),$help_url);
/* *************************************************************************** */
/* */
/* Mode vue et edition */
/* */
/* *************************************************************************** */
$now=dol_now(); $now=dol_now();
if ($action=='create') if ($action=='create')

View File

@ -828,7 +828,7 @@ class Holiday extends CommonObject
global $langs; global $langs;
$result=''; $result='';
$picto='holiday';
$label=$langs->trans("Show").': '.$this->ref; $label=$langs->trans("Show").': '.$this->ref;
$url = DOL_URL_ROOT.'/holiday/card.php?id='.$this->id; $url = DOL_URL_ROOT.'/holiday/card.php?id='.$this->id;
@ -844,9 +844,11 @@ class Holiday extends CommonObject
$linkstart = '<a href="'.$url.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">'; $linkstart = '<a href="'.$url.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
$linkend='</a>'; $linkend='</a>';
if ($withpicto) $result.=($linkstart.img_object($label, $picto, 'class="classfortooltip"').$linkend); $result .= $linkstart;
if ($withpicto && $withpicto != 2) $result.=' '; if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
if ($withpicto != 2) $result.=$linkstart.$this->ref.$linkend; if ($withpicto != 2) $result.= $this->ref;
$result .= $linkend;
return $result; return $result;
} }

0
htdocs/includes/stripe/build.php Normal file → Executable file
View File

View File

@ -461,6 +461,26 @@ UPDATE llx_accounting_system SET fk_country =140 WHERE pcg_version = 'PCN-LUXEMB
UPDATE llx_accounting_system SET fk_country = 12 WHERE pcg_version = 'PCG'; UPDATE llx_accounting_system SET fk_country = 12 WHERE pcg_version = 'PCG';
CREATE TABLE llx_actioncomm_reminder(
-- BEGIN MODULEBUILDER FIELDS
rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
dateremind datetime NOT NULL,
typeremind varchar(32) NOT NULL,
fk_user integer NOT NULL,
offsetvalue integer NOT NULL,
offsetunit varchar(1) NOT NULL,
status integer NOT NULL DEFAULT 0
-- END MODULEBUILDER FIELDS
) ENGINE=innodb;
ALTER TABLE llx_actioncomm_reminder ADD INDEX idx_actioncomm_reminder_rowid (rowid);
ALTER TABLE llx_actioncomm_reminder ADD INDEX idx_actioncomm_reminder_dateremind (dateremind);
ALTER TABLE llx_actioncomm_reminder ADD INDEX idx_actioncomm_reminder_fk_user (fk_user);
ALTER TABLE llx_actioncomm_reminder ADD UNIQUE INDEX uk_actioncomm_reminder_unique(fk_user, typeremind, offsetvalue, offsetunit);
-- VPGSQL8.2 CREATE SEQUENCE llx_supplier_proposal_rowid_seq; -- VPGSQL8.2 CREATE SEQUENCE llx_supplier_proposal_rowid_seq;
-- VPGSQL8.2 ALTER TABLE llx_supplier_proposal ALTER COLUMN rowid SET DEFAULT nextval('llx_supplier_proposal_rowid_seq'); -- VPGSQL8.2 ALTER TABLE llx_supplier_proposal ALTER COLUMN rowid SET DEFAULT nextval('llx_supplier_proposal_rowid_seq');
-- VPGSQL8.2 ALTER TABLE llx_supplier_proposal ALTER COLUMN rowid SET NOT NULL; -- VPGSQL8.2 ALTER TABLE llx_supplier_proposal ALTER COLUMN rowid SET NOT NULL;
@ -474,3 +494,31 @@ UPDATE llx_accounting_system SET fk_country = 12 WHERE pcg_version = 'PCG';
-- May have error due to duplicate keys -- May have error due to duplicate keys
ALTER TABLE llx_resource ADD UNIQUE INDEX uk_resource_ref (ref, entity); ALTER TABLE llx_resource ADD UNIQUE INDEX uk_resource_ref (ref, entity);
-- SPEC : use database type "double" to store monetary values
ALTER TABLE llx_blockedlog MODIFY COLUMN amounts double(24,8);
ALTER TABLE llx_chargessociales MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_commande MODIFY COLUMN amount_ht double(24,8);
ALTER TABLE llx_commande_fournisseur MODIFY COLUMN amount_ht double(24,8);
ALTER TABLE llx_don MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_expensereport_rules MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_loan MODIFY COLUMN capital double(24,8);
ALTER TABLE llx_loan MODIFY COLUMN capital_position double(24,8);
ALTER TABLE llx_loan_schedule MODIFY COLUMN amount_capital double(24,8);
ALTER TABLE llx_loan_schedule MODIFY COLUMN amount_insurance double(24,8);
ALTER TABLE llx_loan_schedule MODIFY COLUMN amount_interest double(24,8);
ALTER TABLE llx_paiementcharge MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_paiementfourn MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_payment_donation MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_payment_expensereport MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_payment_loan MODIFY COLUMN amount_capital double(24,8);
ALTER TABLE llx_payment_loan MODIFY COLUMN amount_insurance double(24,8);
ALTER TABLE llx_payment_loan MODIFY COLUMN amount_interest double(24,8);
ALTER TABLE llx_payment_salary MODIFY COLUMN salary double(24,8);
ALTER TABLE llx_payment_salary MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_prelevement_bons MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_prelevement_facture_demande MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_prelevement_lignes MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_societe MODIFY COLUMN capital double(24,8);
ALTER TABLE llx_tva MODIFY COLUMN amount double(24,8);
ALTER TABLE llx_subscription MODIFY COLUMN subscription double(24,8);

View File

@ -0,0 +1,25 @@
-- Copyright (C) 2017 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 http://www.gnu.org/licenses/.
-- BEGIN MODULEBUILDER INDEXES
ALTER TABLE llx_actioncomm_reminder ADD INDEX idx_actioncomm_reminder_rowid (rowid);
ALTER TABLE llx_actioncomm_reminder ADD INDEX idx_actioncomm_reminder_dateremind (dateremind);
ALTER TABLE llx_actioncomm_reminder ADD INDEX idx_actioncomm_reminder_fk_user (fk_user);
-- END MODULEBUILDER INDEXES
ALTER TABLE llx_actioncomm_reminder ADD UNIQUE INDEX uk_actioncomm_reminder_unique(fk_user, typeremind, offsetvalue, offsetunit);

View File

@ -0,0 +1,27 @@
-- Copyright (C) 2017 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 http://www.gnu.org/licenses/.
CREATE TABLE llx_actioncomm_reminder(
-- BEGIN MODULEBUILDER FIELDS
rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
dateremind datetime NOT NULL,
typeremind varchar(32) NOT NULL,
fk_user integer NOT NULL,
offsetvalue integer NOT NULL,
offsetunit varchar(1) NOT NULL,
status integer NOT NULL DEFAULT 0
-- END MODULEBUILDER FIELDS
) ENGINE=innodb;

View File

@ -21,7 +21,7 @@ CREATE TABLE llx_blockedlog
rowid integer AUTO_INCREMENT PRIMARY KEY, rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp, tms timestamp,
action varchar(50), action varchar(50),
amounts real NOT NULL, amounts double(24,8) NOT NULL,
signature varchar(100) NOT NULL, signature varchar(100) NOT NULL,
signature_line varchar(100) NOT NULL, signature_line varchar(100) NOT NULL,
element varchar(50), element varchar(50),

View File

@ -34,7 +34,7 @@ create table llx_chargesociales
fk_type integer NOT NULL, fk_type integer NOT NULL,
fk_account integer, -- bank account fk_account integer, -- bank account
fk_mode_reglement integer, -- mode de reglement fk_mode_reglement integer, -- mode de reglement
amount real default 0 NOT NULL, amount double(24,8) default 0 NOT NULL,
paye smallint default 0 NOT NULL, paye smallint default 0 NOT NULL,
periode date, periode date,
fk_projet integer DEFAULT NULL, fk_projet integer DEFAULT NULL,

View File

@ -42,7 +42,7 @@ create table llx_commande
fk_user_cloture integer, -- user closing fk_user_cloture integer, -- user closing
source smallint, -- not used, except by setting this to 42 for orders coming for replenishment and 0 in other case ? source smallint, -- not used, except by setting this to 42 for orders coming for replenishment and 0 in other case ?
fk_statut smallint default 0, fk_statut smallint default 0,
amount_ht real default 0, amount_ht double(24,8) default 0,
remise_percent real default 0, remise_percent real default 0,
remise_absolue real default 0, remise_absolue real default 0,
remise real default 0, remise real default 0,

View File

@ -46,7 +46,7 @@ create table llx_commande_fournisseur
source smallint NOT NULL, -- not used, except by setting this to 42 for orders coming for replenishment and 0 in other case ? source smallint NOT NULL, -- not used, except by setting this to 42 for orders coming for replenishment and 0 in other case ?
fk_statut smallint default 0, fk_statut smallint default 0,
billed smallint default 0, billed smallint default 0,
amount_ht real default 0, amount_ht double(24,8) default 0,
remise_percent real default 0, remise_percent real default 0,
remise real default 0, remise real default 0,
tva double(24,8) default 0, tva double(24,8) default 0,

View File

@ -28,7 +28,7 @@ create table llx_don
tms timestamp, tms timestamp,
fk_statut smallint NOT NULL DEFAULT 0, -- Status of donation promise or validate fk_statut smallint NOT NULL DEFAULT 0, -- Status of donation promise or validate
datedon datetime, -- Date of the donation/promise datedon datetime, -- Date of the donation/promise
amount real DEFAULT 0, amount double(24,8) DEFAULT 0,
fk_payment integer, fk_payment integer,
paid smallint default 0 NOT NULL, paid smallint default 0 NOT NULL,
firstname varchar(50), firstname varchar(50),

View File

@ -23,7 +23,7 @@ CREATE TABLE llx_expensereport_rules (
tms timestamp, tms timestamp,
dates datetime NOT NULL, dates datetime NOT NULL,
datee datetime NOT NULL, datee datetime NOT NULL,
amount numeric(24,8) NOT NULL, amount double(24,8) NOT NULL,
restrictive tinyint NOT NULL, restrictive tinyint NOT NULL,
fk_user integer DEFAULT NULL, fk_user integer DEFAULT NULL,
fk_usergroup integer DEFAULT NULL, fk_usergroup integer DEFAULT NULL,

View File

@ -27,7 +27,7 @@ create table llx_loan
label varchar(80) NOT NULL, label varchar(80) NOT NULL,
fk_bank integer, fk_bank integer,
capital real default 0 NOT NULL, capital double(24,8) default 0 NOT NULL,
datestart date, datestart date,
dateend date, dateend date,
nbterm real, nbterm real,
@ -36,7 +36,7 @@ create table llx_loan
note_private text, note_private text,
note_public text, note_public text,
capital_position real default 0, -- If not a new loan, just have the position of capital capital_position double(24,8) default 0, -- If not a new loan, just have the position of capital
date_position date, date_position date,
paid smallint default 0 NOT NULL, paid smallint default 0 NOT NULL,

View File

@ -24,9 +24,9 @@ create table llx_loan_schedule
datec datetime, -- creation date datec datetime, -- creation date
tms timestamp, tms timestamp,
datep datetime, -- payment date datep datetime, -- payment date
amount_capital real DEFAULT 0, amount_capital double(24,8) DEFAULT 0,
amount_insurance real DEFAULT 0, amount_insurance double(24,8) DEFAULT 0,
amount_interest real DEFAULT 0, amount_interest double(24,8) DEFAULT 0,
fk_typepayment integer NOT NULL, fk_typepayment integer NOT NULL,
num_payment varchar(50), num_payment varchar(50),
note_private text, note_private text,

View File

@ -23,7 +23,7 @@ create table llx_paiementcharge
datec datetime, -- date de creation datec datetime, -- date de creation
tms timestamp, tms timestamp,
datep datetime, -- payment date datep datetime, -- payment date
amount real DEFAULT 0, amount double(24,8) DEFAULT 0,
fk_typepaiement integer NOT NULL, fk_typepaiement integer NOT NULL,
num_paiement varchar(50), num_paiement varchar(50),
note text, note text,

View File

@ -25,7 +25,7 @@ create table llx_paiementfourn
tms timestamp, tms timestamp,
datec datetime, -- date de creation de l'enregistrement datec datetime, -- date de creation de l'enregistrement
datep datetime, -- date de paiement datep datetime, -- date de paiement
amount real DEFAULT 0, -- montant amount double(24,8) DEFAULT 0, -- montant
multicurrency_amount double(24,8) DEFAULT 0, -- multicurrency amount multicurrency_amount double(24,8) DEFAULT 0, -- multicurrency amount
fk_user_author integer, -- auteur fk_user_author integer, -- auteur
fk_paiement integer NOT NULL, -- moyen de paiement fk_paiement integer NOT NULL, -- moyen de paiement

View File

@ -23,7 +23,7 @@ create table llx_payment_donation
datec datetime, -- date de creation datec datetime, -- date de creation
tms timestamp, tms timestamp,
datep datetime, -- payment date datep datetime, -- payment date
amount real DEFAULT 0, amount double(24,8) DEFAULT 0,
fk_typepayment integer NOT NULL, fk_typepayment integer NOT NULL,
num_payment varchar(50), num_payment varchar(50),
note text, note text,

View File

@ -23,7 +23,7 @@ create table llx_payment_expensereport
datec datetime, -- date de creation datec datetime, -- date de creation
tms timestamp, tms timestamp,
datep datetime, -- payment date datep datetime, -- payment date
amount real DEFAULT 0, amount double(24,8) DEFAULT 0,
fk_typepayment integer NOT NULL, fk_typepayment integer NOT NULL,
num_payment varchar(50), num_payment varchar(50),
note text, note text,

View File

@ -24,9 +24,9 @@ create table llx_payment_loan
datec datetime, -- creation date datec datetime, -- creation date
tms timestamp, tms timestamp,
datep datetime, -- payment date datep datetime, -- payment date
amount_capital real DEFAULT 0, amount_capital double(24,8) DEFAULT 0,
amount_insurance real DEFAULT 0, amount_insurance double(24,8) DEFAULT 0,
amount_interest real DEFAULT 0, amount_interest double(24,8) DEFAULT 0,
fk_typepayment integer NOT NULL, fk_typepayment integer NOT NULL,
num_payment varchar(50), num_payment varchar(50),
note_private text, note_private text,

View File

@ -24,8 +24,8 @@ create table llx_payment_salary
fk_user integer NOT NULL, fk_user integer NOT NULL,
datep date, -- date de paiement datep date, -- date de paiement
datev date, -- date de valeur (this field should not be here, only into bank tables) datev date, -- date de valeur (this field should not be here, only into bank tables)
salary real, -- salary of user when payment was done salary double(24,8), -- salary of user when payment was done
amount real NOT NULL DEFAULT 0, amount double(24,8) NOT NULL DEFAULT 0,
fk_typepayment integer NOT NULL, fk_typepayment integer NOT NULL,
num_payment varchar(50), -- ref num_payment varchar(50), -- ref
label varchar(255), label varchar(255),

View File

@ -29,7 +29,7 @@ create table llx_prelevement_bons
ref varchar(12), -- reference ref varchar(12), -- reference
entity integer DEFAULT 1 NOT NULL, -- multi company id entity integer DEFAULT 1 NOT NULL, -- multi company id
datec datetime, -- date de creation datec datetime, -- date de creation
amount real DEFAULT 0, -- montant total du prelevement amount double(24,8) DEFAULT 0, -- montant total du prelevement
statut smallint DEFAULT 0, -- statut statut smallint DEFAULT 0, -- statut
credite smallint DEFAULT 0, -- indique si le prelevement a ete credite credite smallint DEFAULT 0, -- indique si le prelevement a ete credite
note text, note text,

View File

@ -21,7 +21,7 @@ create table llx_prelevement_facture_demande
( (
rowid integer AUTO_INCREMENT PRIMARY KEY, rowid integer AUTO_INCREMENT PRIMARY KEY,
fk_facture integer NOT NULL, fk_facture integer NOT NULL,
amount real NOT NULL, amount double(24,8) NOT NULL,
date_demande datetime NOT NULL, date_demande datetime NOT NULL,
traite smallint DEFAULT 0, traite smallint DEFAULT 0,
date_traite datetime, date_traite datetime,

View File

@ -24,7 +24,7 @@ create table llx_prelevement_lignes
statut smallint DEFAULT 0, statut smallint DEFAULT 0,
client_nom varchar(255), client_nom varchar(255),
amount real DEFAULT 0, amount double(24,8) DEFAULT 0,
code_banque varchar(128), code_banque varchar(128),
code_guichet varchar(6), code_guichet varchar(6),
number varchar(255), number varchar(255),

View File

@ -64,7 +64,7 @@ create table llx_societe
idprof5 varchar(128), -- IDProf5: nu for france idprof5 varchar(128), -- IDProf5: nu for france
idprof6 varchar(128), -- IDProf6: nu for france idprof6 varchar(128), -- IDProf6: nu for france
tva_intra varchar(20), -- tva tva_intra varchar(20), -- tva
capital real, -- capital de la societe capital double(24,8), -- capital de la societe
fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial statut fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial statut
note_private text, -- note_private text, --
note_public text, -- note_public text, --

View File

@ -24,7 +24,7 @@ create table llx_subscription
fk_adherent integer, fk_adherent integer,
dateadh datetime, dateadh datetime,
datef date, datef date,
subscription real, subscription double(24,8),
fk_bank integer DEFAULT NULL, fk_bank integer DEFAULT NULL,
note text note text
)ENGINE=innodb; )ENGINE=innodb;

View File

@ -24,7 +24,7 @@ create table llx_tva
datec datetime, -- Create date datec datetime, -- Create date
datep date, -- date de paiement datep date, -- date de paiement
datev date, -- date de valeur datev date, -- date de valeur
amount real NOT NULL DEFAULT 0, amount double(24,8) NOT NULL DEFAULT 0,
fk_typepayment integer NULL, fk_typepayment integer NULL,
num_payment varchar(50), num_payment varchar(50),
label varchar(255), label varchar(255),

View File

@ -8,7 +8,7 @@ ACCOUNTING_EXPORT_AMOUNT=تصدير الكمية
ACCOUNTING_EXPORT_DEVISE=Export currency ACCOUNTING_EXPORT_DEVISE=Export currency
Selectformat=حدد تنسيق للملف Selectformat=حدد تنسيق للملف
ACCOUNTING_EXPORT_PREFIX_SPEC=تحديد بادئة لاسم الملف ACCOUNTING_EXPORT_PREFIX_SPEC=تحديد بادئة لاسم الملف
ThisService=This service ThisService=هذه الخدمة
ThisProduct=This product ThisProduct=This product
DefaultForService=Default for service DefaultForService=Default for service
DefaultForProduct=Default for product DefaultForProduct=Default for product

View File

@ -189,7 +189,6 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
AutoDetectLang=اكتشاف تلقائي (لغة المتصفح) AutoDetectLang=اكتشاف تلقائي (لغة المتصفح)
FeatureDisabledInDemo=الميزة معلطة في العرض التجريبي FeatureDisabledInDemo=الميزة معلطة في العرض التجريبي
FeatureAvailableOnlyOnStable=Feature only available on official stable versions FeatureAvailableOnlyOnStable=Feature only available on official stable versions
Rights=الصلاحيات
BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
OnlyActiveElementsAreShown=فقط العناصر من <a href="%s">النماذج المفعلة </a> سوف تظهر. OnlyActiveElementsAreShown=فقط العناصر من <a href="%s">النماذج المفعلة </a> سوف تظهر.
ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
@ -593,7 +592,7 @@ Module5000Desc=يسمح لك لإدارة الشركات المتعددة
Module6000Name=سير العمل Module6000Name=سير العمل
Module6000Desc=إدارة سير العمل Module6000Desc=إدارة سير العمل
Module10000Name=Websites Module10000Name=Websites
Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
Module20000Name=ترك إدارة الطلبات Module20000Name=ترك إدارة الطلبات
Module20000Desc=أعلن وتابع الموظفين يترك طلبات Module20000Desc=أعلن وتابع الموظفين يترك طلبات
Module39000Name=الكثير المنتج Module39000Name=الكثير المنتج
@ -1130,7 +1129,7 @@ SendmailOptionMayHurtBuggedMTA=ميزة لإرسال رسائل باستخدام
TranslationSetup=Setup of translation TranslationSetup=Setup of translation
TranslationKeySearch=Search a translation key or string TranslationKeySearch=Search a translation key or string
TranslationOverwriteKey=Overwrite a translation string TranslationOverwriteKey=Overwrite a translation string
TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: <strong>User display setup</strong> tab of user card (click on username at the top of the screen). TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
TranslationString=Translation string TranslationString=Translation string
@ -1171,8 +1170,6 @@ RuleForGeneratedPasswords=قاعدة لتوليد كلمات السر واقتر
DisableForgetPasswordLinkOnLogonPage=لا تظهر وصلة "نسيت كلمة المرور" على صفحة تسجيل الدخول DisableForgetPasswordLinkOnLogonPage=لا تظهر وصلة "نسيت كلمة المرور" على صفحة تسجيل الدخول
UsersSetup=شاهد الإعداد وحدة UsersSetup=شاهد الإعداد وحدة
UserMailRequired=مطلوب بريد إلكتروني لإنشاء مستخدم جديد UserMailRequired=مطلوب بريد إلكتروني لإنشاء مستخدم جديد
DefaultCategoryCar=Default car category
DefaultRangeNumber=Default range number
##### HRM setup ##### ##### HRM setup #####
HRMSetup=HRM وحدة الإعداد HRMSetup=HRM وحدة الإعداد
##### Company setup ##### ##### Company setup #####

View File

@ -70,3 +70,9 @@ Stats=إحصاءات المبيعات
StatusProsp=احتمال وضع StatusProsp=احتمال وضع
DraftPropals=صياغة مقترحات تجارية DraftPropals=صياغة مقترحات تجارية
NoLimit=لا حدود NoLimit=لا حدود
ToOfferALinkForOnlineSignature=Link for online signature
WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
SignatureProposalRef=Signature of quote/commerical proposal %s
FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled

View File

@ -79,6 +79,8 @@ HolidaysCancelation=ترك طلب الإلغاء
EmployeeLastname=Employee last name EmployeeLastname=Employee last name
EmployeeFirstname=Employee first name EmployeeFirstname=Employee first name
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
LastHolidays=Latest %s leave requests
AllHolidays=All leave requests
## Configuration du Module ## ## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -99,7 +99,6 @@ NbOfCompaniesContacts=فريدة من شركات الاتصالات
MailNoChangePossible=صادق المتلقين للمراسلة لا يمكن تغيير MailNoChangePossible=صادق المتلقين للمراسلة لا يمكن تغيير
SearchAMailing=البحث البريدية SearchAMailing=البحث البريدية
SendMailing=إرسال البريد الإلكتروني SendMailing=إرسال البريد الإلكتروني
SendMail=إرسال بريد إلكتروني
SentBy=أرسلها SentBy=أرسلها
MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients:
MailingNeedCommand2=ولكن يمكنك إرسالها عبر الإنترنت عن طريق إضافة معلمة MAILING_LIMIT_SENDBYWEB مع قيمة الحد الأقصى لعدد من رسائل البريد الإلكتروني التي تريد إرسالها من خلال هذه الدورة. MailingNeedCommand2=ولكن يمكنك إرسالها عبر الإنترنت عن طريق إضافة معلمة MAILING_LIMIT_SENDBYWEB مع قيمة الحد الأقصى لعدد من رسائل البريد الإلكتروني التي تريد إرسالها من خلال هذه الدورة.

View File

@ -266,8 +266,10 @@ DateApprove2=تاريخ الموافقة (موافقة الثانية)
RegistrationDate=Registration date RegistrationDate=Registration date
UserCreation=Creation user UserCreation=Creation user
UserModification=Modification user UserModification=Modification user
UserValidation=Validation user
UserCreationShort=Creat. user UserCreationShort=Creat. user
UserModificationShort=Modif. user UserModificationShort=Modif. user
UserValidationShort=Valid. user
DurationYear=سنة DurationYear=سنة
DurationMonth=شهر DurationMonth=شهر
DurationWeek=أسبوع DurationWeek=أسبوع
@ -608,6 +610,7 @@ SendByMail=أرسل عن طريق البريد الالكتروني
MailSentBy=البريد الإلكتروني التي بعث بها MailSentBy=البريد الإلكتروني التي بعث بها
TextUsedInTheMessageBody=هيئة البريد الإلكتروني TextUsedInTheMessageBody=هيئة البريد الإلكتروني
SendAcknowledgementByMail=Send confirmation email SendAcknowledgementByMail=Send confirmation email
SendMail=إرسال بريد إلكتروني
EMail=البريد الإلكتروني EMail=البريد الإلكتروني
NoEMail=أي بريد إلكتروني NoEMail=أي بريد إلكتروني
Email=Email Email=Email
@ -808,6 +811,10 @@ ModuleBuilder=Module Builder
SetMultiCurrencyCode=Set currency SetMultiCurrencyCode=Set currency
BulkActions=Bulk actions BulkActions=Bulk actions
ClickToShowHelp=Click to show tooltip help ClickToShowHelp=Click to show tooltip help
Website=Web site
WebSites=Web sites
ExpenseReport=تقرير حساب
ExpenseReports=تقارير المصاريف
HR=HR HR=HR
HRAndBank=HR and Bank HRAndBank=HR and Bank
AutomaticallyCalculated=Automatically calculated AutomaticallyCalculated=Automatically calculated
@ -818,6 +825,9 @@ Websites=Web sites
Events=الأحداث Events=الأحداث
EMailTemplates=رسائل البريد الإلكتروني قوالب EMailTemplates=رسائل البريد الإلكتروني قوالب
FileNotShared=File not shared to exernal public FileNotShared=File not shared to exernal public
Project=المشروع
Projects=مشاريع
Rights=الصلاحيات
# Week day # Week day
Monday=يوم الاثنين Monday=يوم الاثنين
Tuesday=الثلاثاء Tuesday=الثلاثاء

View File

@ -168,8 +168,8 @@ TurnoverOrBudget=دوران (لشركة) أو الميزانية (على أسا
DefaultAmount=المبلغ الافتراضي للاكتتاب DefaultAmount=المبلغ الافتراضي للاكتتاب
CanEditAmount=يمكن للزائر اختيار / تحرير كمية من اكتتابها CanEditAmount=يمكن للزائر اختيار / تحرير كمية من اكتتابها
MEMBER_NEWFORM_PAYONLINE=القفز على صفحة الدفع عبر الانترنت المتكاملة MEMBER_NEWFORM_PAYONLINE=القفز على صفحة الدفع عبر الانترنت المتكاملة
ByProperties=حسب الخصائص ByProperties=By nature
MembersStatisticsByProperties=إحصائيات الأعضاء حسب الخصائص MembersStatisticsByProperties=Members statistics by nature
MembersByNature=هذه الشاشة تظهر لك إحصاءات عن أعضاء من الطبيعة. MembersByNature=هذه الشاشة تظهر لك إحصاءات عن أعضاء من الطبيعة.
MembersByRegion=هذه الشاشة تظهر لك إحصاءات عن أعضاء حسب المنطقة. MembersByRegion=هذه الشاشة تظهر لك إحصاءات عن أعضاء حسب المنطقة.
VATToUseForSubscriptions=معدل ضريبة القيمة المضافة لاستخدامه في اشتراكات VATToUseForSubscriptions=معدل ضريبة القيمة المضافة لاستخدامه في اشتراكات

View File

@ -47,6 +47,7 @@ SpecificationFile=File with business rules
LanguageFile=File for language LanguageFile=File for language
ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object. ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
NotNull=Not NULL NotNull=Not NULL
NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0).
SearchAll=Used for 'search all' SearchAll=Used for 'search all'
DatabaseIndex=Database index DatabaseIndex=Database index
FileAlreadyExists=File %s already exists FileAlreadyExists=File %s already exists
@ -70,7 +71,7 @@ NoWidget=No widget
GoToApiExplorer=Go to API explorer GoToApiExplorer=Go to API explorer
ListOfPermissionsDefined=List of defined permissions ListOfPermissionsDefined=List of defined permissions
EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION)
VisibleDesc=Is the field visible into list ? (Examples: 0=not visible, 1=visible by default on list, -1=not shown by default on list but can be added into list to be viewed) VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only. Using a negative value means field is not shown by default on list but can be selected for viewing)
IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0) IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0)
SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0) SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0)
SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax. SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax.

View File

@ -4,126 +4,126 @@ ProductLabel=وصف المنتج
ProductLabelTranslated=تسمية المنتج مترجمة ProductLabelTranslated=تسمية المنتج مترجمة
ProductDescriptionTranslated=ترجم وصف المنتج ProductDescriptionTranslated=ترجم وصف المنتج
ProductNoteTranslated=ترجم مذكرة المنتج ProductNoteTranslated=ترجم مذكرة المنتج
ProductServiceCard=منتجات / خدمات البطاقات ProductServiceCard=منتجات / بطاقة الخدمات
TMenuProducts=المنتجات TMenuProducts=المنتجات
TMenuServices=الخدمات TMenuServices=الخدمات
Products=المنتجات Products=المنتجات
Services=الخدمات Services=الخدمات
Product=المنتج Product=المنتج
Service=الخدمة Service=الخدمة
ProductId=المنتجات / الخدمات معرف ProductId=معرف المنتج و الخدمة
Create=إنشاء Create=إنشاء
Reference=المرجعية Reference=المرجع
NewProduct=منتجات جديدة NewProduct=منتج جديد
NewService=خدمة جديدة NewService=خدمة جديدة
ProductVatMassChange=تغيير VAT الشامل ProductVatMassChange=تغيير جماعي لضريبة القيمة المضافة
ProductVatMassChangeDesc=هذه الصفحة يمكن استخدامها لتعديل نسبة الضريبة على القيمة المضافة المحددة على المنتجات أو الخدمات من قيمة إلى أخرى. تحذير، ويتم هذا التغيير على كل قاعدة البيانات. ProductVatMassChangeDesc=هذه الصفحة يمكن استخدامها لتعديل نسبة الضريبة على القيمة المضافة المحددة على المنتجات أو الخدمات من قيمة إلى أخرى. تحذير، يتم هذا التغيير على كل قاعدة البيانات.
MassBarcodeInit=الحرف الأول الباركود الشامل MassBarcodeInit=الحرف الأول الباركود الشامل
MassBarcodeInitDesc=هذه الصفحة يمكن استخدامها لتهيئة الباركود على الكائنات التي لا يكون الباركود تعريف. تحقق قبل أن الإعداد وحدة الباركود كاملة. MassBarcodeInitDesc=هذه الصفحة يمكن استخدامها لتهيئة الباركود على الكائنات التي لا يكون الباركود تعريف. تحقق قبل أن الإعداد وحدة الباركود كاملة.
ProductAccountancyBuyCode=Accounting code (purchase) ProductAccountancyBuyCode=كود المحاسبة (شراء)
ProductAccountancySellCode=Accounting code (sale) ProductAccountancySellCode=كود المحاسبة (بيع)
ProductOrService=المنتج أو الخدمة ProductOrService=المنتج أو الخدمة
ProductsAndServices=المنتجات والخدمات ProductsAndServices=المنتجات والخدمات
ProductsOrServices=منتجات أو خدمات ProductsOrServices=منتجات أو خدمات
ProductsOnSaleOnly=Products for sale only ProductsOnSaleOnly=Products for sale only
ProductsOnPurchaseOnly=Products for purchase only ProductsOnPurchaseOnly=Products for purchase only
ProductsNotOnSell=Products not for sale and not for purchase ProductsNotOnSell=منتجات ليست للبيع ولا الشراء
ProductsOnSellAndOnBuy=المنتجات للبيع والشراء ProductsOnSellAndOnBuy=المنتجات للبيع والشراء
ServicesOnSaleOnly=Services for sale only ServicesOnSaleOnly=Services for sale only
ServicesOnPurchaseOnly=Services for purchase only ServicesOnPurchaseOnly=Services for purchase only
ServicesNotOnSell=Services not for sale and not for purchase ServicesNotOnSell=خدمات ليست للبيع ولا الشراء
ServicesOnSellAndOnBuy=خدمات للبيع والشراء ServicesOnSellAndOnBuy=خدمات للبيع والشراء
LastModifiedProductsAndServices=Latest %s modified products/services LastModifiedProductsAndServices=Latest %s modified products/services
LastRecordedProducts=Latest %s recorded products LastRecordedProducts=Latest %s recorded products
LastRecordedServices=Latest %s recorded services LastRecordedServices=Latest %s recorded services
CardProduct0=منتجات البطاقات CardProduct0=منتجات البطاقات
CardProduct1=بطاقة الخدمة CardProduct1=بطاقة الخدمة
Stock=الأسهم Stock=المخزون
Stocks=الاسهم Stocks=المخزون
Movements=حركات Movements=حركات
Sell=مبيعات Sell=مبيعات
Buy=مشتريات Buy=مشتريات
OnSell=على بيع OnSell=متاح للبيع
OnBuy=شراؤها OnBuy=للشراء
NotOnSell=من بيع NotOnSell=ليس للبيع
ProductStatusOnSell=على بيع ProductStatusOnSell=متاح للبيع
ProductStatusNotOnSell=من بيع ProductStatusNotOnSell=ليس للبيع
ProductStatusOnSellShort=على بيع ProductStatusOnSellShort=متاح للبيع
ProductStatusNotOnSellShort=من بيع ProductStatusNotOnSellShort=ليس للبيع
ProductStatusOnBuy=متاح ProductStatusOnBuy=متاح للشراء
ProductStatusNotOnBuy=عفا عليها الزمن ProductStatusNotOnBuy=ليس للشراء
ProductStatusOnBuyShort=متاح ProductStatusOnBuyShort=متاح للشراء
ProductStatusNotOnBuyShort=عفا عليها الزمن ProductStatusNotOnBuyShort=ليس للشراء
UpdateVAT=تحديث الضريبة على القيمة المضافة UpdateVAT=تحديث الضريبة على القيمة المضافة
UpdateDefaultPrice=تحديث السعر الافتراضي UpdateDefaultPrice=تحديث السعر الافتراضي
UpdateLevelPrices=أسعار التحديث لكل مستوى UpdateLevelPrices=أسعار التحديث لكل مستوى
AppliedPricesFrom=تطبق الأسعار من AppliedPricesFrom=تطبق الأسعار من
SellingPrice=سعر البيع SellingPrice=سعر البيع
SellingPriceHT=سعر البيع (صافي الضرائب) SellingPriceHT=سعر البيع (صافي الضرائب)
SellingPriceTTC=سعر البيع (شركة الضريبية) SellingPriceTTC=سعر البيع (شامل الضريبية)
CostPriceDescription=هذا السعر (صافية من الضرائب) يمكن استخدامها لتخزين متوسط ​​كمية هذا تكلفة المنتج لشركتك. قد يكون بأي ثمن على حساب نفسك، على سبيل المثال من متوسط ​​سعر الشراء بالإضافة إلى متوسط ​​إنتاج وتوزيع التكاليف. CostPriceDescription=هذا السعر (صافية من الضرائب) يمكن استخدامها لتخزين متوسط ​​كمية هذا تكلفة المنتج لشركتك. قد يكون بأي ثمن على حساب نفسك، على سبيل المثال من متوسط ​​سعر الشراء بالإضافة إلى متوسط ​​إنتاج وتوزيع التكاليف.
CostPriceUsage=This value could be used for margin calculation. CostPriceUsage=This value could be used for margin calculation.
SoldAmount=Sold amount SoldAmount=Sold amount
PurchasedAmount=Purchased amount PurchasedAmount=Purchased amount
NewPrice=السعر الجديد NewPrice=السعر الجديد
MinPrice=دقيقة. سعر البيع MinPrice=سعر البيع
CantBeLessThanMinPrice=سعر البيع لا يمكن أن يكون أقل من الحد الأدنى المسموح لهذا المنتج (٪ ق بدون الضرائب) CantBeLessThanMinPrice=سعر البيع لا يمكن أن يكون أقل من الحد الأدنى المسموح لهذا المنتج (٪ ق بدون الضرائب)
ContractStatusClosed=مغلقة ContractStatusClosed=مغلق
ErrorProductAlreadyExists=منتج مع الإشارة ٪ ق موجود بالفعل. ErrorProductAlreadyExists=المنتج ذو المرجع %sموجود بالفعل.
ErrorProductBadRefOrLabel=قيمة خاطئة لإشارة أو علامة. ErrorProductBadRefOrLabel=قيمة خاطئة لـ مرجع أو ملصق.
ErrorProductClone=كان هناك مشكلة أثناء محاولة استنساخ المنتج أو الخدمة. ErrorProductClone=كان هناك مشكلة أثناء محاولة استنساخ المنتج أو الخدمة.
ErrorPriceCantBeLowerThanMinPrice=خطأ، سعر لا يمكن أن يكون أقل من الحد الأدنى السعر. ErrorPriceCantBeLowerThanMinPrice=خطأ، سعر لا يمكن أن يكون أقل من الحد الأدنى السعر.
Suppliers=الموردين Suppliers=الموردين
SupplierRef=المرجع المورد. SupplierRef=مرجع مورد المنتجات.
ShowProduct=وتظهر المنتج ShowProduct=عرض المنتج
ShowService=وتظهر الخدمة ShowService=عرض الخدمة
ProductsAndServicesArea=مجال المنتجات والخدمات ProductsAndServicesArea=منطقة المنتجات والخدمات
ProductsArea=منتجات المنطقة ProductsArea=منطقة المنتجات
ServicesArea=مجال الخدمات ServicesArea=منطقة الخدمات
ListOfStockMovements=قائمة الحركات الأسهم ListOfStockMovements=قائمة الحركات المخزون
BuyingPrice=سعر الشراء BuyingPrice=سعر الشراء
PriceForEachProduct=المنتجات بأسعار محددة PriceForEachProduct=المنتجات بأسعار محددة
SupplierCard=بطاقة المورد SupplierCard=بطاقة المورد
PriceRemoved=رفع الأسعار PriceRemoved=تمت إزالة السعر
BarCode=الباركود BarCode=الباركود
BarcodeType=نوع الباركود BarcodeType=نوع الباركود
SetDefaultBarcodeType=حدد نوع الباركود SetDefaultBarcodeType=حدد نوع الباركود
BarcodeValue=قيمة الباركود BarcodeValue=قيمة الباركود
NoteNotVisibleOnBill=علما) على الفواتير غير مرئي ، واقتراحات...) NoteNotVisibleOnBill=ملحوظة(غيرمرئية على الفواتير والعروض...)
ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة : ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة :
MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment) MultiPricesAbility=عدة شرائح من أسعار لكل منتج / خدمة (كل عميل في شريحة واحدة)
MultiPricesNumPrices=عدد من السعر MultiPricesNumPrices=عدد من السعر
AssociatedProductsAbility=Activate the feature to manage virtual products AssociatedProductsAbility=تنشيط ميزة إدارة المنتجات الإفتراضية
AssociatedProducts=المنتجات AssociatedProducts=المنتجات الإفتراضية
AssociatedProductsNumber=عدد المنتجات AssociatedProductsNumber=عدد المنتجات التي تنتج هذا المنتج الإفتراضي
ParentProductsNumber=عدد الوالد منتجات التعبئة والتغليف ParentProductsNumber=عدد منتج التعبئة الاب
ParentProducts=Parent products ParentProducts=Parent products
IfZeroItIsNotAVirtualProduct=If 0, this product is not a virtual product IfZeroItIsNotAVirtualProduct=إذا كان 0، هذا المنتج ليس منتج إفتراضي
IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any virtual product IfZeroItIsNotUsedByVirtualProduct=إذا كان 0، لا يتم استخدام هذا المنتج من قبل أي منتج إفتراضي
KeywordFilter=الكلمة الرئيسية فلتر KeywordFilter=فلتر الكلمة المقتاحية
CategoryFilter=فئة فلتر CategoryFilter=فلتر التصنيف
ProductToAddSearch=إضافة إلى البحث عن المنتج ProductToAddSearch= إبحث عن منتج لإضافتة
NoMatchFound=العثور على أي مباراة NoMatchFound=لا يوجد نتائج متطابقة
ListOfProductsServices=List of products/services ListOfProductsServices=List of products/services
ProductAssociationList=قائمة المنتجات / الخدمات التي هي مكون من مكونات هذا المنتج الظاهري / حزمة ProductAssociationList=قائمة المنتجات / الخدمات التي هي مكون من مكونات هذا المنتج/ الحزمة الإفتراضية
ProductParentList=قائمة من المنتجات / الخدمات مع هذا المنتج كعنصر ProductParentList=قائمة من المنتجات / الخدمات الإفتراضية مع هذا المنتج كعنصر مكون
ErrorAssociationIsFatherOfThis=واحد من اختيار المنتج الأم الحالية المنتج ErrorAssociationIsFatherOfThis=واحد من اختيار المنتج الأم الحالية المنتج
DeleteProduct=حذف المنتجات / الخدمات DeleteProduct=حذف منتج / خدمة
ConfirmDeleteProduct=هل أنت متأكد من حذف هذه المنتجات / الخدمات؟ ConfirmDeleteProduct=هل أنت متأكد من حذف هذا المنتج / الخدمة؟
ProductDeleted=المنتجات والخدمات "٪ ل" حذفها من قاعدة البيانات. ProductDeleted=المنتج /الخدمة "%s" تم حذفها من قاعدة البيانات.
ExportDataset_produit_1=المنتجات ExportDataset_produit_1=المنتجات
ExportDataset_service_1=الخدمات ExportDataset_service_1=الخدمات
ImportDataset_produit_1=المنتجات ImportDataset_produit_1=المنتجات
ImportDataset_service_1=الخدمات ImportDataset_service_1=الخدمات
DeleteProductLine=حذف خط الإنتاج DeleteProductLine=حذف خط الإنتاج
ConfirmDeleteProductLine=هل أنت متأكد من أنك تريد حذف هذا السطر المنتج؟ ConfirmDeleteProductLine=هل أنت متأكد من أنك تريد حذف خط الإنتاج؟
ProductSpecial=خاص ProductSpecial=خاص
QtyMin=الحد الأدنى من الكمية QtyMin=الحد الأدنى من الكمية
PriceQtyMin=ثمن هذا دقيقة. الكمية (ث / س الخصم) PriceQtyMin=ثمن هذا الحد الادنى (ث / س الخصم)
VATRateForSupplierProduct=معدل ضريبة القيمة المضافة (لهذا المورد / المنتج) VATRateForSupplierProduct=معدل ضريبة القيمة المضافة (لهذا المورد / المنتج)
DiscountQtyMin=خصم الكمية الافتراضية ل DiscountQtyMin=الخصم الإفتراضي للكمية
NoPriceDefinedForThisSupplier=لا السعر الكمية المحددة لهذا المورد / المنتج NoPriceDefinedForThisSupplier=لا يوجد سعر أو كمية محددة لهذا المورد / المنتج
NoSupplierPriceDefinedForThisProduct=لا مورد السعر الكمية المحددة لهذا المنتج NoSupplierPriceDefinedForThisProduct=لا سعر أو كمية محددة لهذا المنتج من قبل المورد
PredefinedProductsToSell=منتجات محددة مسبقا للبيع PredefinedProductsToSell=منتجات محددة مسبقا للبيع
PredefinedServicesToSell=خدمات محددة مسبقا للبيع PredefinedServicesToSell=خدمات محددة مسبقا للبيع
PredefinedProductsAndServicesToSell=منتجات محددة مسبقا / خدمات للبيع PredefinedProductsAndServicesToSell=منتجات محددة مسبقا / خدمات للبيع
@ -131,27 +131,27 @@ PredefinedProductsToPurchase=المنتج مسبقا لشراء
PredefinedServicesToPurchase=خدمات محددة مسبقا لشراء PredefinedServicesToPurchase=خدمات محددة مسبقا لشراء
PredefinedProductsAndServicesToPurchase=منتجات محددة مسبقا / خدمات أن puchase PredefinedProductsAndServicesToPurchase=منتجات محددة مسبقا / خدمات أن puchase
NotPredefinedProducts=Not predefined products/services NotPredefinedProducts=Not predefined products/services
GenerateThumb=يولد الإبهام GenerateThumb=توليد صورة مصغرة
ServiceNb=خدمة ق # ٪ ServiceNb=خدمة #%s
ListProductServiceByPopularity=قائمة المنتجات / الخدمات حسب الشهرة ListProductServiceByPopularity=قائمة المنتجات / الخدمات حسب الشهرة
ListProductByPopularity=قائمة المنتجات / الخدمات شعبية ListProductByPopularity=قائمة المنتجات / الخدمات بحسب الشهرة
ListServiceByPopularity=قائمة الخدمات حسب الشهرة ListServiceByPopularity=قائمة الخدمات بحسب الشهرة
Finished=المنتجات المصنعة Finished=المنتجات المصنعة
RowMaterial=المادة الأولى RowMaterial=المادة الخام
CloneProduct=استنساخ المنتجات أو الخدمات CloneProduct=استنساخ المنتجات أو الخدمات
ConfirmCloneProduct=Are you sure you want to clone product or service <b>%s</b>? ConfirmCloneProduct=هل انت متأكد انك ترغب في استنساخ المنتج/الخدمة <b>%s</b>؟
CloneContentProduct=استنساخ جميع المعلومات الرئيسية من المنتجات / الخدمات CloneContentProduct=استنساخ جميع المعلومات الرئيسية لـ المنتج / الخدمة
ClonePricesProduct=استنساخ الرئيسية معلومات والأسعار ClonePricesProduct=استنساخ المعلومات الرئيسية والأسعار
CloneCompositionProduct=استنساخ حزم المنتج / الخدمة CloneCompositionProduct=استنساخ منتج / خدمة معبئة
CloneCombinationsProduct=Clone product variants CloneCombinationsProduct=Clone product variants
ProductIsUsed=ويستخدم هذا المنتج ProductIsUsed=هذا المنتج يتم استخدامة
NewRefForClone=المرجع. من المنتجات الجديدة / خدمة NewRefForClone=مرجع. المنتج/ الخدمة الجديدة 
SellingPrices=أسعار بيع SellingPrices=أسعار بيع
BuyingPrices=شراء أسعار BuyingPrices=شراء أسعار
CustomerPrices=أسعار العملاء CustomerPrices=أسعار العميل
SuppliersPrices=أسعار المورد SuppliersPrices=أسعار المورد
SuppliersPricesOfProductsOrServices=أسعار المورد (منتجات أو خدمات) SuppliersPricesOfProductsOrServices=أسعار المورد (منتجات أو خدمات)
CustomCode=Customs/Commodity/HS code CustomCode=الجمارك/السلع /كود HS
CountryOrigin=بلد المنشأ CountryOrigin=بلد المنشأ
Nature=طبيعة Nature=طبيعة
ShortLabel=التسمية قصيرة ShortLabel=التسمية قصيرة
@ -189,12 +189,12 @@ unitM2=Square meter
unitM3=Cubic meter unitM3=Cubic meter
unitL=Liter unitL=Liter
ProductCodeModel=قالب المرجع المنتج ProductCodeModel=قالب المرجع المنتج
ServiceCodeModel=قالب المرجع الخدمة ServiceCodeModel=قالب مرجع الخدمة
CurrentProductPrice=السعر الحالي CurrentProductPrice=السعر الحالي
AlwaysUseNewPrice=دائما استخدام السعر الحالي للمنتج / خدمة AlwaysUseNewPrice=دائما استخدم السعر الحالي للمنتج / الخدمة
AlwaysUseFixedPrice=استخدام سعر ثابت AlwaysUseFixedPrice=استخدم السعر الثابت
PriceByQuantity=أسعار مختلفة حسب الكمية PriceByQuantity=أسعار مختلفة حسب الكمية
PriceByQuantityRange=كمية مجموعة PriceByQuantityRange=مدى الكمية
MultipriceRules=Price segment rules MultipriceRules=Price segment rules
UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment
PercentVariationOver=٪٪ الاختلاف على الصورة٪ PercentVariationOver=٪٪ الاختلاف على الصورة٪
@ -202,26 +202,26 @@ PercentDiscountOver=٪٪ خصم أكثر من٪ الصورة
KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products
### composition fabrication ### composition fabrication
Build=إنتاج Build=إنتاج
ProductsMultiPrice=Products and prices for each price segment ProductsMultiPrice=المنتجات و الاسعار لكل شريحة
ProductsOrServiceMultiPrice=أسعار العملاء (منتجات أو خدمات، أسعار متعددة) ProductsOrServiceMultiPrice=أسعار العملاء (منتجات أو خدمات، أسعار متعددة)
ProductSellByQuarterHT=منتجات دوران الفصلية قبل الضرائب ProductSellByQuarterHT=دورة المنتجات الربع سنوية قبل الضرائب
ServiceSellByQuarterHT=خدمات دوران الفصلية قبل الضرائب ServiceSellByQuarterHT=دورة الخدمات الربع سنوية قبل الضرائب
Quarter1=1. ربع Quarter1=الربع الإول
Quarter2=2. ربع Quarter2=الربع الثاني
Quarter3=3. ربع Quarter3=الربع الثالث
Quarter4=4. ربع Quarter4=الربع الرابع
BarCodePrintsheet=طباعة قانون نقابة المحامين BarCodePrintsheet=طباعة الباركود
PageToGenerateBarCodeSheets=مع هذه الأداة، يمكنك طباعة ورقة من الملصقات الرمز الشريطي. اختيار شكل الصفحة ملصقا، ونوع الباركود وقيمة الباركود، ثم انقر على <b>زر٪ الصورة.</b> PageToGenerateBarCodeSheets=مع هذه الأداة، يمكنك طباعة أوراق من الباركود. اختار نوع صفحة الملصقات، ونوع وقيمة الباركود، ثم انقر على زر <b>%s</b>
NumberOfStickers=عدد من الملصقات للطباعة على الصفحة NumberOfStickers=عدد من الملصقات للطباعة على الصفحة
PrintsheetForOneBarCode=طباعة عدة ملصقات لالباركود واحد PrintsheetForOneBarCode=طباعة عدة ملصقات لالباركود واحد
BuildPageToPrint=توليد الصفحة لطباعة BuildPageToPrint=توليد صفحة للطباعة
FillBarCodeTypeAndValueManually=ملء نوع الباركود والقيمة يدويا. FillBarCodeTypeAndValueManually=ملء نوع وقيمة الباركود يدويا.
FillBarCodeTypeAndValueFromProduct=ملء نوع الباركود وقيمة من الباركود للمنتج. FillBarCodeTypeAndValueFromProduct=ملء نوع وقيمة الباركود من باركود المنتج.
FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party. FillBarCodeTypeAndValueFromThirdParty=ملء نوع وقيمة الباركود من باركود طرف ثالت.
DefinitionOfBarCodeForProductNotComplete=تعريف نوع أو قيمة الرمز الشريطي يست كاملة للمنتج٪ الصورة. DefinitionOfBarCodeForProductNotComplete=تعريف نوع أو قيمة الباركود ليس كامل للمنتج%s.
DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s. DefinitionOfBarCodeForThirdpartyNotComplete=تعريف نوع أو قيمة الباركود ليس كامل للطرف الثالث %s
BarCodeDataForProduct=معلومات الباركود من الناتج٪ الصورة: BarCodeDataForProduct=معلومات الباركود للمنتج%s :
BarCodeDataForThirdparty=Barcode information of third party %s : BarCodeDataForThirdparty=معلومات الباركود للطرف الثالث%s:
ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values)
PriceByCustomer=Different prices for each customer PriceByCustomer=Different prices for each customer
PriceCatalogue=A single sell price per product/service PriceCatalogue=A single sell price per product/service

View File

@ -3,8 +3,6 @@ RefProject=المرجع. مشروع
ProjectRef=المرجع المشروع. ProjectRef=المرجع المشروع.
ProjectId=رقم المشروع ProjectId=رقم المشروع
ProjectLabel=تسمية المشروع ProjectLabel=تسمية المشروع
Project=المشروع
Projects=المشاريع
ProjectsArea=Projects Area ProjectsArea=Projects Area
ProjectStatus=حالة المشروع ProjectStatus=حالة المشروع
SharedProject=مشاريع مشتركة SharedProject=مشاريع مشتركة
@ -38,6 +36,7 @@ OpenedTasks=Open tasks
OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
OpportunitiesStatusForProjects=Opportunities amount of projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status
ShowProject=وتبين للمشروع ShowProject=وتبين للمشروع
ShowTask=وتظهر هذه المهمة
SetProject=وضع المشروع SetProject=وضع المشروع
NoProject=لا يعرف أو المملوكة للمشروع NoProject=لا يعرف أو المملوكة للمشروع
NbOfProjects=ملاحظة : للمشاريع NbOfProjects=ملاحظة : للمشاريع
@ -77,6 +76,7 @@ Time=وقت
ListOfTasks=List of tasks ListOfTasks=List of tasks
GoToListOfTimeConsumed=Go to list of time consumed GoToListOfTimeConsumed=Go to list of time consumed
GoToListOfTasks=Go to list of tasks GoToListOfTasks=Go to list of tasks
GanttView=Gantt View
ListProposalsAssociatedProject=قائمة المقترحات التجارية المرتبطة بالمشروع. ListProposalsAssociatedProject=قائمة المقترحات التجارية المرتبطة بالمشروع.
ListOrdersAssociatedProject=List of customer orders associated with the project ListOrdersAssociatedProject=List of customer orders associated with the project
ListInvoicesAssociatedProject=List of customer invoices associated with the project ListInvoicesAssociatedProject=List of customer invoices associated with the project
@ -108,6 +108,7 @@ AlsoCloseAProject=Also close project (keep it open if you still need to follow p
ReOpenAProject=فتح مشروع ReOpenAProject=فتح مشروع
ConfirmReOpenAProject=Are you sure you want to re-open this project? ConfirmReOpenAProject=Are you sure you want to re-open this project?
ProjectContact=مشروع اتصالات ProjectContact=مشروع اتصالات
TaskContact=Task contacts
ActionsOnProject=الإجراءات على المشروع ActionsOnProject=الإجراءات على المشروع
YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص
UserIsNotContactOfProject=User is not a contact of this private project UserIsNotContactOfProject=User is not a contact of this private project
@ -115,7 +116,7 @@ DeleteATimeSpent=قضى الوقت حذف
ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent?
DoNotShowMyTasksOnly=انظر أيضا المهام الغير موكلة الي DoNotShowMyTasksOnly=انظر أيضا المهام الغير موكلة الي
ShowMyTasksOnly=عرض فقط المهام الموكلة الي ShowMyTasksOnly=عرض فقط المهام الموكلة الي
TaskRessourceLinks=مصادر TaskRessourceLinks=Contacts task
ProjectsDedicatedToThisThirdParty=مشاريع مخصصة لهذا الطرف الثالث ProjectsDedicatedToThisThirdParty=مشاريع مخصصة لهذا الطرف الثالث
NoTasks=أية مهام لهذا المشروع NoTasks=أية مهام لهذا المشروع
LinkedToAnotherCompany=ربط طرف ثالث آخر LinkedToAnotherCompany=ربط طرف ثالث آخر

View File

@ -13,3 +13,5 @@ TJM=Average daily rate
CurrentSalary=الراتب الحالي CurrentSalary=الراتب الحالي
THMDescription=يمكن استخدام هذه القيمة لحساب تكلفة الوقت المستهلك في المشروع المدخل من قبل المستخدمين إذا تم استخدام وحدة مشروع THMDescription=يمكن استخدام هذه القيمة لحساب تكلفة الوقت المستهلك في المشروع المدخل من قبل المستخدمين إذا تم استخدام وحدة مشروع
TJMDescription=هذه القيمة هي حاليا فقط كمعلومات وليس لاستخدامها في أي حساب TJMDescription=هذه القيمة هي حاليا فقط كمعلومات وليس لاستخدامها في أي حساب
LastSalaries=Latest %s salary payments
AllSalaries=All salary payments

View File

@ -22,6 +22,7 @@ Movements=حركات
ErrorWarehouseRefRequired=مستودع الاشارة اسم مطلوب ErrorWarehouseRefRequired=مستودع الاشارة اسم مطلوب
ListOfWarehouses=لائحة المخازن ListOfWarehouses=لائحة المخازن
ListOfStockMovements=قائمة الحركات الأسهم ListOfStockMovements=قائمة الحركات الأسهم
MovementId=Movement ID
StockMovementForId=Movement ID %d StockMovementForId=Movement ID %d
ListMouvementStockProject=List of stock movements associated to project ListMouvementStockProject=List of stock movements associated to project
StocksArea=منطقة المستودعات StocksArea=منطقة المستودعات
@ -130,6 +131,7 @@ StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to
StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change) StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change)
StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change) StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change)
MovementLabel=تسمية الحركة MovementLabel=تسمية الحركة
DateMovement=Date of movement
InventoryCode=حركة المخزون أو كود InventoryCode=حركة المخزون أو كود
IsInPackage=الواردة في حزمة IsInPackage=الواردة في حزمة
WarehouseAllowNegativeTransfer=Stock can be negative WarehouseAllowNegativeTransfer=Stock can be negative

View File

@ -1,6 +1,4 @@
# Dolibarr language file - Source file is en_US - trips # Dolibarr language file - Source file is en_US - trips
ExpenseReport=تقرير حساب
ExpenseReports=تقارير المصاريف
ShowExpenseReport=عرض تقرير حساب ShowExpenseReport=عرض تقرير حساب
Trips=تقارير المصاريف Trips=تقارير المصاريف
TripsAndExpenses=تقارير النفقات TripsAndExpenses=تقارير النفقات
@ -12,6 +10,8 @@ ListOfFees=قائمة الرسوم
TypeFees=Types of fees TypeFees=Types of fees
ShowTrip=عرض تقرير حساب ShowTrip=عرض تقرير حساب
NewTrip=تقرير حساب جديد NewTrip=تقرير حساب جديد
LastExpenseReports=Latest %s expense reports
AllExpenseReports=All expense reports
CompanyVisited=Company/organisation visited CompanyVisited=Company/organisation visited
FeesKilometersOrAmout=كم المبلغ أو FeesKilometersOrAmout=كم المبلغ أو
DeleteTrip=حذف تقرير حساب DeleteTrip=حذف تقرير حساب
@ -71,6 +71,8 @@ EX_FUE_VP=Fuel PV
EX_TOL_VP=Toll PV EX_TOL_VP=Toll PV
EX_PAR_VP=Parking PV EX_PAR_VP=Parking PV
EX_CAM_VP=PV maintenance and repair EX_CAM_VP=PV maintenance and repair
DefaultCategoryCar=Default transportation mode
DefaultRangeNumber=Default range number
ErrorDoubleDeclaration=لقد أعلن تقرير حساب آخر في نطاق تاريخ مماثل. ErrorDoubleDeclaration=لقد أعلن تقرير حساب آخر في نطاق تاريخ مماثل.
AucuneLigne=لا يوجد تقرير مصروفات تعلن بعد AucuneLigne=لا يوجد تقرير مصروفات تعلن بعد

View File

@ -5,7 +5,7 @@ DeleteWebsite=Delete website
ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
WEBSITE_PAGENAME=Page name/alias WEBSITE_PAGENAME=Page name/alias
WEBSITE_HTML_HEADER=HTML Header (common to all pages) WEBSITE_HTML_HEADER=HTML Header (common to all pages)
HtmlHeaderPage=HTML specific header for ppage HtmlHeaderPage=HTML specific header for page
WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_URL=URL of external CSS file
WEBSITE_CSS_INLINE=CSS file content (common to all pages) WEBSITE_CSS_INLINE=CSS file content (common to all pages)
WEBSITE_JS_INLINE=Javascript file content (common to all pages) WEBSITE_JS_INLINE=Javascript file content (common to all pages)
@ -17,7 +17,6 @@ EditCss=Edit Style/CSS or HTML header
EditMenu=Edit menu EditMenu=Edit menu
EditMedias=Edit medias EditMedias=Edit medias
EditPageMeta=Edit Meta EditPageMeta=Edit Meta
Website=Web site
AddWebsite=Add website AddWebsite=Add website
Webpage=Web page/container Webpage=Web page/container
AddPage=Add page/container AddPage=Add page/container
@ -39,9 +38,10 @@ VirtualHostUrlNotDefined=URL of the virtual host served by external web server n
NoPageYet=No pages yet NoPageYet=No pages yet
SyntaxHelp=Help on specific syntax tips SyntaxHelp=Help on specific syntax tips
YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor. YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
YouCanEditHtmlSource=You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php dolIncludeHtmlContent($websitekey.'/alias_of_content_to_include.php'); ?&gt;</strong><br><br>To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"&gt;</strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"&gt;</strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"&gt;</strong><br><br>To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/media (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=relative_dir/filename.ext"&gt;</strong> YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php dolIncludeHtmlContent($websitekey.'/alias_of_container_to_include.php'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"&gt;</strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"&gt;</strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/media (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=relative_dir/filename.ext"&gt;</strong><br>
ClonePage=Clone page/container ClonePage=Clone page/container
CloneSite=Clone site CloneSite=Clone site
SiteAdded=Web site added
ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page. ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
PageIsANewTranslation=The new page is a translation of the current page ? PageIsANewTranslation=The new page is a translation of the current page ?
LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page. LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
@ -52,3 +52,6 @@ OrEnterPageInfoManually=Or create empty page from scratch...
FetchAndCreate=Fetch and Create FetchAndCreate=Fetch and Create
ExportSite=Export site ExportSite=Export site
IDOfPage=Id of page IDOfPage=Id of page
WebsiteAccount=Web site account
WebsiteAccounts=Web site accounts
AddWebsiteAccount=Create web site account

View File

@ -189,7 +189,6 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
AutoDetectLang=Автоматично (език на браузъра) AutoDetectLang=Автоматично (език на браузъра)
FeatureDisabledInDemo=Feature инвалиди в демо FeatureDisabledInDemo=Feature инвалиди в демо
FeatureAvailableOnlyOnStable=Feature only available on official stable versions FeatureAvailableOnlyOnStable=Feature only available on official stable versions
Rights=Права
BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
OnlyActiveElementsAreShown=Показани са само елементи от <a href="%s">активирани модули</a>. OnlyActiveElementsAreShown=Показани са само елементи от <a href="%s">активирани модули</a>.
ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
@ -593,7 +592,7 @@ Module5000Desc=Позволява ви да управлявате няколк
Module6000Name=Workflow Module6000Name=Workflow
Module6000Desc=Workflow management Module6000Desc=Workflow management
Module10000Name=Websites Module10000Name=Websites
Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
Module20000Name=Leave Requests management Module20000Name=Leave Requests management
Module20000Desc=Declare and follow employees leaves requests Module20000Desc=Declare and follow employees leaves requests
Module39000Name=Product lot Module39000Name=Product lot
@ -1130,7 +1129,7 @@ SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail dire
TranslationSetup=Setup of translation TranslationSetup=Setup of translation
TranslationKeySearch=Search a translation key or string TranslationKeySearch=Search a translation key or string
TranslationOverwriteKey=Overwrite a translation string TranslationOverwriteKey=Overwrite a translation string
TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: <strong>User display setup</strong> tab of user card (click on username at the top of the screen). TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
TranslationString=Translation string TranslationString=Translation string
@ -1171,8 +1170,6 @@ RuleForGeneratedPasswords=Член за генериране на предлож
DisableForgetPasswordLinkOnLogonPage=Да не се показват връзката &quot;Забравена парола&quot; на страницата за вход DisableForgetPasswordLinkOnLogonPage=Да не се показват връзката &quot;Забравена парола&quot; на страницата за вход
UsersSetup=Потребители модул за настройка UsersSetup=Потребители модул за настройка
UserMailRequired=Задължително е въвеждането на имейл при създаване на нов потребител UserMailRequired=Задължително е въвеждането на имейл при създаване на нов потребител
DefaultCategoryCar=Default car category
DefaultRangeNumber=Default range number
##### HRM setup ##### ##### HRM setup #####
HRMSetup=HRM module setup HRMSetup=HRM module setup
##### Company setup ##### ##### Company setup #####

View File

@ -70,3 +70,9 @@ Stats=Статистика на продажбите
StatusProsp=Prospect статус StatusProsp=Prospect статус
DraftPropals=Проектът на търговски предложения DraftPropals=Проектът на търговски предложения
NoLimit=Няма лимит NoLimit=Няма лимит
ToOfferALinkForOnlineSignature=Link for online signature
WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
SignatureProposalRef=Signature of quote/commerical proposal %s
FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled

View File

@ -79,6 +79,8 @@ HolidaysCancelation=Отказване на молба за отпуск
EmployeeLastname=Employee last name EmployeeLastname=Employee last name
EmployeeFirstname=Employee first name EmployeeFirstname=Employee first name
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
LastHolidays=Latest %s leave requests
AllHolidays=All leave requests
## Configuration du Module ## ## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -99,7 +99,6 @@ NbOfCompaniesContacts=Уникални контакти на фирми
MailNoChangePossible=Получатели на за валидирани електронната поща не може да бъде променена MailNoChangePossible=Получатели на за валидирани електронната поща не може да бъде променена
SearchAMailing=Търсене пощенски SearchAMailing=Търсене пощенски
SendMailing=Изпращане на имейл SendMailing=Изпращане на имейл
SendMail=Изпращане на имейл
SentBy=Изпратено от SentBy=Изпратено от
MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients:
MailingNeedCommand2=Все пак можете да ги изпратите онлайн чрез добавяне на параметър MAILING_LIMIT_SENDBYWEB със стойност на максимален брой на имейлите, които искате да изпратите от сесията. За това, отидете на дома - Setup - Други. MailingNeedCommand2=Все пак можете да ги изпратите онлайн чрез добавяне на параметър MAILING_LIMIT_SENDBYWEB със стойност на максимален брой на имейлите, които искате да изпратите от сесията. За това, отидете на дома - Setup - Други.

View File

@ -266,8 +266,10 @@ DateApprove2=Дата на одобрение (повторно одобрени
RegistrationDate=Registration date RegistrationDate=Registration date
UserCreation=Creation user UserCreation=Creation user
UserModification=Modification user UserModification=Modification user
UserValidation=Validation user
UserCreationShort=Creat. user UserCreationShort=Creat. user
UserModificationShort=Modif. user UserModificationShort=Modif. user
UserValidationShort=Valid. user
DurationYear=година DurationYear=година
DurationMonth=месец DurationMonth=месец
DurationWeek=седмица DurationWeek=седмица
@ -608,6 +610,7 @@ SendByMail=Изпрати по имейл
MailSentBy=Изпратено по имейл от MailSentBy=Изпратено по имейл от
TextUsedInTheMessageBody=Текст на имейла TextUsedInTheMessageBody=Текст на имейла
SendAcknowledgementByMail=Send confirmation email SendAcknowledgementByMail=Send confirmation email
SendMail=Изпращане на имейл
EMail=Имейл EMail=Имейл
NoEMail=Няма имейл NoEMail=Няма имейл
Email=Имейл Email=Имейл
@ -808,6 +811,10 @@ ModuleBuilder=Module Builder
SetMultiCurrencyCode=Set currency SetMultiCurrencyCode=Set currency
BulkActions=Bulk actions BulkActions=Bulk actions
ClickToShowHelp=Click to show tooltip help ClickToShowHelp=Click to show tooltip help
Website=Уеб Сайт
WebSites=Web sites
ExpenseReport=Доклад разходи
ExpenseReports=Опис разходи
HR=HR HR=HR
HRAndBank=HR and Bank HRAndBank=HR and Bank
AutomaticallyCalculated=Automatically calculated AutomaticallyCalculated=Automatically calculated
@ -818,6 +825,9 @@ Websites=Web sites
Events=Събития Events=Събития
EMailTemplates=Emails templates EMailTemplates=Emails templates
FileNotShared=File not shared to exernal public FileNotShared=File not shared to exernal public
Project=Проект
Projects=Проекти
Rights=Права
# Week day # Week day
Monday=Понеделник Monday=Понеделник
Tuesday=Вторник Tuesday=Вторник

View File

@ -168,8 +168,8 @@ TurnoverOrBudget=Оборот (за фирма) или Бюджет (за орг
DefaultAmount=Сума по подразбиране за членски внос DefaultAmount=Сума по подразбиране за членски внос
CanEditAmount=Посетител може да избере/редактира размера на вноската си CanEditAmount=Посетител може да избере/редактира размера на вноската си
MEMBER_NEWFORM_PAYONLINE=Прехвърляне към интегрираната онлайн страница за плащане MEMBER_NEWFORM_PAYONLINE=Прехвърляне към интегрираната онлайн страница за плащане
ByProperties=По характеристики ByProperties=By nature
MembersStatisticsByProperties=Статистики на членовете по характеристики MembersStatisticsByProperties=Members statistics by nature
MembersByNature=Този екран ви показва статистики на членовете по същност. MembersByNature=Този екран ви показва статистики на членовете по същност.
MembersByRegion=Този екран ви показва статистики на членовете по регион. MembersByRegion=Този екран ви показва статистики на членовете по регион.
VATToUseForSubscriptions=VAT rate to use for subscriptions VATToUseForSubscriptions=VAT rate to use for subscriptions

View File

@ -47,6 +47,7 @@ SpecificationFile=File with business rules
LanguageFile=File for language LanguageFile=File for language
ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object. ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
NotNull=Not NULL NotNull=Not NULL
NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0).
SearchAll=Used for 'search all' SearchAll=Used for 'search all'
DatabaseIndex=Database index DatabaseIndex=Database index
FileAlreadyExists=File %s already exists FileAlreadyExists=File %s already exists
@ -70,7 +71,7 @@ NoWidget=No widget
GoToApiExplorer=Go to API explorer GoToApiExplorer=Go to API explorer
ListOfPermissionsDefined=List of defined permissions ListOfPermissionsDefined=List of defined permissions
EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION)
VisibleDesc=Is the field visible into list ? (Examples: 0=not visible, 1=visible by default on list, -1=not shown by default on list but can be added into list to be viewed) VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only. Using a negative value means field is not shown by default on list but can be selected for viewing)
IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0) IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0)
SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0) SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0)
SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax. SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax.

View File

@ -3,8 +3,6 @@ RefProject=Реф. проект
ProjectRef=Проект реф. ProjectRef=Проект реф.
ProjectId=Id на проект ProjectId=Id на проект
ProjectLabel=Етикет на проект ProjectLabel=Етикет на проект
Project=Проект
Projects=Проекти
ProjectsArea=Projects Area ProjectsArea=Projects Area
ProjectStatus=Статус на проект ProjectStatus=Статус на проект
SharedProject=Всички SharedProject=Всички
@ -38,6 +36,7 @@ OpenedTasks=Open tasks
OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
OpportunitiesStatusForProjects=Opportunities amount of projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status
ShowProject=Покажи проект ShowProject=Покажи проект
ShowTask=Покажи задача
SetProject=Задайте проект SetProject=Задайте проект
NoProject=Нито един проект няма определени или собственост NoProject=Нито един проект няма определени или собственост
NbOfProjects=Nb на проекти NbOfProjects=Nb на проекти
@ -77,6 +76,7 @@ Time=Време
ListOfTasks=List of tasks ListOfTasks=List of tasks
GoToListOfTimeConsumed=Go to list of time consumed GoToListOfTimeConsumed=Go to list of time consumed
GoToListOfTasks=Go to list of tasks GoToListOfTasks=Go to list of tasks
GanttView=Gantt View
ListProposalsAssociatedProject=Списък на търговските предложения, свързани с проекта ListProposalsAssociatedProject=Списък на търговските предложения, свързани с проекта
ListOrdersAssociatedProject=List of customer orders associated with the project ListOrdersAssociatedProject=List of customer orders associated with the project
ListInvoicesAssociatedProject=List of customer invoices associated with the project ListInvoicesAssociatedProject=List of customer invoices associated with the project
@ -108,6 +108,7 @@ AlsoCloseAProject=Also close project (keep it open if you still need to follow p
ReOpenAProject=Проект с отворен ReOpenAProject=Проект с отворен
ConfirmReOpenAProject=Are you sure you want to re-open this project? ConfirmReOpenAProject=Are you sure you want to re-open this project?
ProjectContact=ПРОЕКТА Контакти ProjectContact=ПРОЕКТА Контакти
TaskContact=Task contacts
ActionsOnProject=Събития по проекта ActionsOnProject=Събития по проекта
YouAreNotContactOfProject=Вие не сте контакт на този частен проект YouAreNotContactOfProject=Вие не сте контакт на този частен проект
UserIsNotContactOfProject=User is not a contact of this private project UserIsNotContactOfProject=User is not a contact of this private project
@ -115,7 +116,7 @@ DeleteATimeSpent=Изтриване на времето, прекарано
ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent?
DoNotShowMyTasksOnly=Показване също на задачи, които не са възложени на мен DoNotShowMyTasksOnly=Показване също на задачи, които не са възложени на мен
ShowMyTasksOnly=Показване задачи, възложени само на мен ShowMyTasksOnly=Показване задачи, възложени само на мен
TaskRessourceLinks=Ресурси TaskRessourceLinks=Contacts task
ProjectsDedicatedToThisThirdParty=Проекти, насочени към този контрагент ProjectsDedicatedToThisThirdParty=Проекти, насочени към този контрагент
NoTasks=Няма задачи за този проект NoTasks=Няма задачи за този проект
LinkedToAnotherCompany=Свързано с друг контрагент LinkedToAnotherCompany=Свързано с друг контрагент

View File

@ -13,3 +13,5 @@ TJM=Average daily rate
CurrentSalary=Сегашна заплата CurrentSalary=Сегашна заплата
THMDescription=Тази стойност може да използва за изчисляване на отнето време по проект отделено от потребителите ако модул проект се използва THMDescription=Тази стойност може да използва за изчисляване на отнето време по проект отделено от потребителите ако модул проект се използва
TJMDescription=Тази стойност е само сега като информация и не се използва за никакво изчисление TJMDescription=Тази стойност е само сега като информация и не се използва за никакво изчисление
LastSalaries=Latest %s salary payments
AllSalaries=All salary payments

View File

@ -22,6 +22,7 @@ Movements=Движения
ErrorWarehouseRefRequired=Изисква се референтно име на склад ErrorWarehouseRefRequired=Изисква се референтно име на склад
ListOfWarehouses=Списък на складовете ListOfWarehouses=Списък на складовете
ListOfStockMovements=Списък на движението на стоковите наличности ListOfStockMovements=Списък на движението на стоковите наличности
MovementId=Movement ID
StockMovementForId=Movement ID %d StockMovementForId=Movement ID %d
ListMouvementStockProject=List of stock movements associated to project ListMouvementStockProject=List of stock movements associated to project
StocksArea=Warehouses area StocksArea=Warehouses area
@ -130,6 +131,7 @@ StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to
StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change) StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change)
StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change) StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change)
MovementLabel=Label of movement MovementLabel=Label of movement
DateMovement=Date of movement
InventoryCode=Movement or inventory code InventoryCode=Movement or inventory code
IsInPackage=Contained into package IsInPackage=Contained into package
WarehouseAllowNegativeTransfer=Stock can be negative WarehouseAllowNegativeTransfer=Stock can be negative

View File

@ -1,6 +1,4 @@
# Dolibarr language file - Source file is en_US - trips # Dolibarr language file - Source file is en_US - trips
ExpenseReport=Доклад разходи
ExpenseReports=Expense reports
ShowExpenseReport=Показване на доклад за разходи ShowExpenseReport=Показване на доклад за разходи
Trips=Expense reports Trips=Expense reports
TripsAndExpenses=Доклади разходи TripsAndExpenses=Доклади разходи
@ -12,6 +10,8 @@ ListOfFees=Списък на такси
TypeFees=Types of fees TypeFees=Types of fees
ShowTrip=Показване на доклад за разходи ShowTrip=Показване на доклад за разходи
NewTrip=Нов доклад за разходи NewTrip=Нов доклад за разходи
LastExpenseReports=Latest %s expense reports
AllExpenseReports=All expense reports
CompanyVisited=Company/organisation visited CompanyVisited=Company/organisation visited
FeesKilometersOrAmout=Сума или км FeesKilometersOrAmout=Сума или км
DeleteTrip=Изтриване на доклад за разходи DeleteTrip=Изтриване на доклад за разходи
@ -71,6 +71,8 @@ EX_FUE_VP=Fuel PV
EX_TOL_VP=Toll PV EX_TOL_VP=Toll PV
EX_PAR_VP=Parking PV EX_PAR_VP=Parking PV
EX_CAM_VP=PV maintenance and repair EX_CAM_VP=PV maintenance and repair
DefaultCategoryCar=Default transportation mode
DefaultRangeNumber=Default range number
ErrorDoubleDeclaration=Създали сте друг доклад за разходи в подобен времеви отрязък. ErrorDoubleDeclaration=Създали сте друг доклад за разходи в подобен времеви отрязък.
AucuneLigne=Няма все още деклариран доклад за разходи AucuneLigne=Няма все още деклариран доклад за разходи

View File

@ -5,7 +5,7 @@ DeleteWebsite=Изтрийте уебсайт
ConfirmDeleteWebsite=Сигурни ли сте, че искате да изтриете този уебсайт? Всички негови страници и съдържание ще бъдат премахнати. ConfirmDeleteWebsite=Сигурни ли сте, че искате да изтриете този уебсайт? Всички негови страници и съдържание ще бъдат премахнати.
WEBSITE_PAGENAME=Име на страницата WEBSITE_PAGENAME=Име на страницата
WEBSITE_HTML_HEADER=HTML Header (common to all pages) WEBSITE_HTML_HEADER=HTML Header (common to all pages)
HtmlHeaderPage=HTML specific header for ppage HtmlHeaderPage=HTML specific header for page
WEBSITE_CSS_URL=Линк към външен CSS файл WEBSITE_CSS_URL=Линк към външен CSS файл
WEBSITE_CSS_INLINE=CSS file content (common to all pages) WEBSITE_CSS_INLINE=CSS file content (common to all pages)
WEBSITE_JS_INLINE=Javascript file content (common to all pages) WEBSITE_JS_INLINE=Javascript file content (common to all pages)
@ -17,7 +17,6 @@ EditCss=Редактирай CSS или HTML header
EditMenu=Редактирай EditMenu=Редактирай
EditMedias=Edit medias EditMedias=Edit medias
EditPageMeta=Редайтирай Meta EditPageMeta=Редайтирай Meta
Website=Уеб Сайт
AddWebsite=Add website AddWebsite=Add website
Webpage=Web page/container Webpage=Web page/container
AddPage=Добави страница/контейнер AddPage=Добави страница/контейнер
@ -39,9 +38,10 @@ VirtualHostUrlNotDefined=URL of the virtual host served by external web server n
NoPageYet=No pages yet NoPageYet=No pages yet
SyntaxHelp=Help on specific syntax tips SyntaxHelp=Help on specific syntax tips
YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor. YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
YouCanEditHtmlSource=You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php dolIncludeHtmlContent($websitekey.'/alias_of_content_to_include.php'); ?&gt;</strong><br><br>To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"&gt;</strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"&gt;</strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"&gt;</strong><br><br>To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/media (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=relative_dir/filename.ext"&gt;</strong> YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php dolIncludeHtmlContent($websitekey.'/alias_of_container_to_include.php'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"&gt;</strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"&gt;</strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/media (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=relative_dir/filename.ext"&gt;</strong><br>
ClonePage=Clone page/container ClonePage=Clone page/container
CloneSite=Clone site CloneSite=Clone site
SiteAdded=Web site added
ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page. ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
PageIsANewTranslation=The new page is a translation of the current page ? PageIsANewTranslation=The new page is a translation of the current page ?
LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page. LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
@ -52,3 +52,6 @@ OrEnterPageInfoManually=Or create empty page from scratch...
FetchAndCreate=Fetch and Create FetchAndCreate=Fetch and Create
ExportSite=Export site ExportSite=Export site
IDOfPage=Id of page IDOfPage=Id of page
WebsiteAccount=Web site account
WebsiteAccounts=Web site accounts
AddWebsiteAccount=Create web site account

View File

@ -189,7 +189,6 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
AutoDetectLang=Autodetect (browser language) AutoDetectLang=Autodetect (browser language)
FeatureDisabledInDemo=Feature disabled in demo FeatureDisabledInDemo=Feature disabled in demo
FeatureAvailableOnlyOnStable=Feature only available on official stable versions FeatureAvailableOnlyOnStable=Feature only available on official stable versions
Rights=Permissions
BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown. OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
@ -593,7 +592,7 @@ Module5000Desc=Allows you to manage multiple companies
Module6000Name=Workflow Module6000Name=Workflow
Module6000Desc=Workflow management Module6000Desc=Workflow management
Module10000Name=Websites Module10000Name=Websites
Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
Module20000Name=Leave Requests management Module20000Name=Leave Requests management
Module20000Desc=Declare and follow employees leaves requests Module20000Desc=Declare and follow employees leaves requests
Module39000Name=Product lot Module39000Name=Product lot
@ -1130,7 +1129,7 @@ SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail dire
TranslationSetup=Setup of translation TranslationSetup=Setup of translation
TranslationKeySearch=Search a translation key or string TranslationKeySearch=Search a translation key or string
TranslationOverwriteKey=Overwrite a translation string TranslationOverwriteKey=Overwrite a translation string
TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: <strong>User display setup</strong> tab of user card (click on username at the top of the screen). TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
TranslationString=Translation string TranslationString=Translation string
@ -1171,8 +1170,6 @@ RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passw
DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page
UsersSetup=Users module setup UsersSetup=Users module setup
UserMailRequired=EMail required to create a new user UserMailRequired=EMail required to create a new user
DefaultCategoryCar=Default car category
DefaultRangeNumber=Default range number
##### HRM setup ##### ##### HRM setup #####
HRMSetup=HRM module setup HRMSetup=HRM module setup
##### Company setup ##### ##### Company setup #####

View File

@ -70,3 +70,9 @@ Stats=Sales statistics
StatusProsp=Prospect status StatusProsp=Prospect status
DraftPropals=Draft commercial proposals DraftPropals=Draft commercial proposals
NoLimit=No limit NoLimit=No limit
ToOfferALinkForOnlineSignature=Link for online signature
WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
SignatureProposalRef=Signature of quote/commerical proposal %s
FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled

View File

@ -79,6 +79,8 @@ HolidaysCancelation=Leave request cancelation
EmployeeLastname=Employee last name EmployeeLastname=Employee last name
EmployeeFirstname=Employee first name EmployeeFirstname=Employee first name
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
LastHolidays=Latest %s leave requests
AllHolidays=All leave requests
## Configuration du Module ## ## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -99,7 +99,6 @@ NbOfCompaniesContacts=Unique contacts/addresses
MailNoChangePossible=Recipients for validated emailing can't be changed MailNoChangePossible=Recipients for validated emailing can't be changed
SearchAMailing=Search mailing SearchAMailing=Search mailing
SendMailing=Send emailing SendMailing=Send emailing
SendMail=Send email
SentBy=Sent by SentBy=Sent by
MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients:
MailingNeedCommand2=You can however send them online by adding parameter MAILING_LIMIT_SENDBYWEB with value of max number of emails you want to send by session. For this, go on Home - Setup - Other. MailingNeedCommand2=You can however send them online by adding parameter MAILING_LIMIT_SENDBYWEB with value of max number of emails you want to send by session. For this, go on Home - Setup - Other.

View File

@ -266,8 +266,10 @@ DateApprove2=Approving date (second approval)
RegistrationDate=Registration date RegistrationDate=Registration date
UserCreation=Creation user UserCreation=Creation user
UserModification=Modification user UserModification=Modification user
UserValidation=Validation user
UserCreationShort=Creat. user UserCreationShort=Creat. user
UserModificationShort=Modif. user UserModificationShort=Modif. user
UserValidationShort=Valid. user
DurationYear=year DurationYear=year
DurationMonth=month DurationMonth=month
DurationWeek=week DurationWeek=week
@ -608,6 +610,7 @@ SendByMail=Send by EMail
MailSentBy=Email sent by MailSentBy=Email sent by
TextUsedInTheMessageBody=Email body TextUsedInTheMessageBody=Email body
SendAcknowledgementByMail=Send confirmation email SendAcknowledgementByMail=Send confirmation email
SendMail=Send email
EMail=E-mail EMail=E-mail
NoEMail=No email NoEMail=No email
Email=Email Email=Email
@ -808,6 +811,10 @@ ModuleBuilder=Module Builder
SetMultiCurrencyCode=Set currency SetMultiCurrencyCode=Set currency
BulkActions=Bulk actions BulkActions=Bulk actions
ClickToShowHelp=Click to show tooltip help ClickToShowHelp=Click to show tooltip help
Website=Web site
WebSites=Web sites
ExpenseReport=Expense report
ExpenseReports=Expense reports
HR=HR HR=HR
HRAndBank=HR and Bank HRAndBank=HR and Bank
AutomaticallyCalculated=Automatically calculated AutomaticallyCalculated=Automatically calculated
@ -818,6 +825,9 @@ Websites=Web sites
Events=Events Events=Events
EMailTemplates=Emails templates EMailTemplates=Emails templates
FileNotShared=File not shared to exernal public FileNotShared=File not shared to exernal public
Project=Project
Projects=Projects
Rights=Permissions
# Week day # Week day
Monday=Monday Monday=Monday
Tuesday=Tuesday Tuesday=Tuesday

View File

@ -168,8 +168,8 @@ TurnoverOrBudget=Turnover (for a company) or Budget (for a foundation)
DefaultAmount=Default amount of subscription DefaultAmount=Default amount of subscription
CanEditAmount=Visitor can choose/edit amount of its subscription CanEditAmount=Visitor can choose/edit amount of its subscription
MEMBER_NEWFORM_PAYONLINE=Jump on integrated online payment page MEMBER_NEWFORM_PAYONLINE=Jump on integrated online payment page
ByProperties=By characteristics ByProperties=By nature
MembersStatisticsByProperties=Members statistics by characteristics MembersStatisticsByProperties=Members statistics by nature
MembersByNature=This screen show you statistics on members by nature. MembersByNature=This screen show you statistics on members by nature.
MembersByRegion=This screen show you statistics on members by region. MembersByRegion=This screen show you statistics on members by region.
VATToUseForSubscriptions=VAT rate to use for subscriptions VATToUseForSubscriptions=VAT rate to use for subscriptions

View File

@ -47,6 +47,7 @@ SpecificationFile=File with business rules
LanguageFile=File for language LanguageFile=File for language
ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object. ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
NotNull=Not NULL NotNull=Not NULL
NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0).
SearchAll=Used for 'search all' SearchAll=Used for 'search all'
DatabaseIndex=Database index DatabaseIndex=Database index
FileAlreadyExists=File %s already exists FileAlreadyExists=File %s already exists
@ -70,7 +71,7 @@ NoWidget=No widget
GoToApiExplorer=Go to API explorer GoToApiExplorer=Go to API explorer
ListOfPermissionsDefined=List of defined permissions ListOfPermissionsDefined=List of defined permissions
EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION) EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION)
VisibleDesc=Is the field visible into list ? (Examples: 0=not visible, 1=visible by default on list, -1=not shown by default on list but can be added into list to be viewed) VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only. Using a negative value means field is not shown by default on list but can be selected for viewing)
IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0) IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0)
SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0) SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0)
SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax. SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax.

View File

@ -3,8 +3,6 @@ RefProject=Ref. project
ProjectRef=Project ref. ProjectRef=Project ref.
ProjectId=Project Id ProjectId=Project Id
ProjectLabel=Project label ProjectLabel=Project label
Project=Project
Projects=Projects
ProjectsArea=Projects Area ProjectsArea=Projects Area
ProjectStatus=Project status ProjectStatus=Project status
SharedProject=Everybody SharedProject=Everybody
@ -38,6 +36,7 @@ OpenedTasks=Open tasks
OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
OpportunitiesStatusForProjects=Opportunities amount of projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status
ShowProject=Show project ShowProject=Show project
ShowTask=Show task
SetProject=Set project SetProject=Set project
NoProject=No project defined or owned NoProject=No project defined or owned
NbOfProjects=Nb of projects NbOfProjects=Nb of projects
@ -77,6 +76,7 @@ Time=Time
ListOfTasks=List of tasks ListOfTasks=List of tasks
GoToListOfTimeConsumed=Go to list of time consumed GoToListOfTimeConsumed=Go to list of time consumed
GoToListOfTasks=Go to list of tasks GoToListOfTasks=Go to list of tasks
GanttView=Gantt View
ListProposalsAssociatedProject=List of the commercial proposals associated with the project ListProposalsAssociatedProject=List of the commercial proposals associated with the project
ListOrdersAssociatedProject=List of customer orders associated with the project ListOrdersAssociatedProject=List of customer orders associated with the project
ListInvoicesAssociatedProject=List of customer invoices associated with the project ListInvoicesAssociatedProject=List of customer invoices associated with the project
@ -108,6 +108,7 @@ AlsoCloseAProject=Also close project (keep it open if you still need to follow p
ReOpenAProject=Open project ReOpenAProject=Open project
ConfirmReOpenAProject=Are you sure you want to re-open this project? ConfirmReOpenAProject=Are you sure you want to re-open this project?
ProjectContact=Project contacts ProjectContact=Project contacts
TaskContact=Task contacts
ActionsOnProject=Events on project ActionsOnProject=Events on project
YouAreNotContactOfProject=You are not a contact of this private project YouAreNotContactOfProject=You are not a contact of this private project
UserIsNotContactOfProject=User is not a contact of this private project UserIsNotContactOfProject=User is not a contact of this private project
@ -115,7 +116,7 @@ DeleteATimeSpent=Delete time spent
ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent?
DoNotShowMyTasksOnly=See also tasks not assigned to me DoNotShowMyTasksOnly=See also tasks not assigned to me
ShowMyTasksOnly=View only tasks assigned to me ShowMyTasksOnly=View only tasks assigned to me
TaskRessourceLinks=Resources TaskRessourceLinks=Contacts task
ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party
NoTasks=No tasks for this project NoTasks=No tasks for this project
LinkedToAnotherCompany=Linked to other third party LinkedToAnotherCompany=Linked to other third party

View File

@ -13,3 +13,5 @@ TJM=Average daily rate
CurrentSalary=Current salary CurrentSalary=Current salary
THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used
TJMDescription=This value is currently as information only and is not used for any calculation TJMDescription=This value is currently as information only and is not used for any calculation
LastSalaries=Latest %s salary payments
AllSalaries=All salary payments

View File

@ -22,6 +22,7 @@ Movements=Movements
ErrorWarehouseRefRequired=Warehouse reference name is required ErrorWarehouseRefRequired=Warehouse reference name is required
ListOfWarehouses=List of warehouses ListOfWarehouses=List of warehouses
ListOfStockMovements=List of stock movements ListOfStockMovements=List of stock movements
MovementId=Movement ID
StockMovementForId=Movement ID %d StockMovementForId=Movement ID %d
ListMouvementStockProject=List of stock movements associated to project ListMouvementStockProject=List of stock movements associated to project
StocksArea=Warehouses area StocksArea=Warehouses area
@ -130,6 +131,7 @@ StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to
StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change) StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change)
StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change) StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change)
MovementLabel=Label of movement MovementLabel=Label of movement
DateMovement=Date of movement
InventoryCode=Movement or inventory code InventoryCode=Movement or inventory code
IsInPackage=Contained into package IsInPackage=Contained into package
WarehouseAllowNegativeTransfer=Stock can be negative WarehouseAllowNegativeTransfer=Stock can be negative

View File

@ -1,6 +1,4 @@
# Dolibarr language file - Source file is en_US - trips # Dolibarr language file - Source file is en_US - trips
ExpenseReport=Expense report
ExpenseReports=Expense reports
ShowExpenseReport=Show expense report ShowExpenseReport=Show expense report
Trips=Expense reports Trips=Expense reports
TripsAndExpenses=Expenses reports TripsAndExpenses=Expenses reports
@ -12,6 +10,8 @@ ListOfFees=List of fees
TypeFees=Types of fees TypeFees=Types of fees
ShowTrip=Show expense report ShowTrip=Show expense report
NewTrip=New expense report NewTrip=New expense report
LastExpenseReports=Latest %s expense reports
AllExpenseReports=All expense reports
CompanyVisited=Company/organisation visited CompanyVisited=Company/organisation visited
FeesKilometersOrAmout=Amount or kilometers FeesKilometersOrAmout=Amount or kilometers
DeleteTrip=Delete expense report DeleteTrip=Delete expense report
@ -71,6 +71,8 @@ EX_FUE_VP=Fuel PV
EX_TOL_VP=Toll PV EX_TOL_VP=Toll PV
EX_PAR_VP=Parking PV EX_PAR_VP=Parking PV
EX_CAM_VP=PV maintenance and repair EX_CAM_VP=PV maintenance and repair
DefaultCategoryCar=Default transportation mode
DefaultRangeNumber=Default range number
ErrorDoubleDeclaration=You have declared another expense report into a similar date range. ErrorDoubleDeclaration=You have declared another expense report into a similar date range.
AucuneLigne=There is no expense report declared yet AucuneLigne=There is no expense report declared yet

View File

@ -5,7 +5,7 @@ DeleteWebsite=Delete website
ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
WEBSITE_PAGENAME=Page name/alias WEBSITE_PAGENAME=Page name/alias
WEBSITE_HTML_HEADER=HTML Header (common to all pages) WEBSITE_HTML_HEADER=HTML Header (common to all pages)
HtmlHeaderPage=HTML specific header for ppage HtmlHeaderPage=HTML specific header for page
WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_URL=URL of external CSS file
WEBSITE_CSS_INLINE=CSS file content (common to all pages) WEBSITE_CSS_INLINE=CSS file content (common to all pages)
WEBSITE_JS_INLINE=Javascript file content (common to all pages) WEBSITE_JS_INLINE=Javascript file content (common to all pages)
@ -17,7 +17,6 @@ EditCss=Edit Style/CSS or HTML header
EditMenu=Edit menu EditMenu=Edit menu
EditMedias=Edit medias EditMedias=Edit medias
EditPageMeta=Edit Meta EditPageMeta=Edit Meta
Website=Web site
AddWebsite=Add website AddWebsite=Add website
Webpage=Web page/container Webpage=Web page/container
AddPage=Add page/container AddPage=Add page/container
@ -39,9 +38,10 @@ VirtualHostUrlNotDefined=URL of the virtual host served by external web server n
NoPageYet=No pages yet NoPageYet=No pages yet
SyntaxHelp=Help on specific syntax tips SyntaxHelp=Help on specific syntax tips
YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor. YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
YouCanEditHtmlSource=You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br>You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php dolIncludeHtmlContent($websitekey.'/alias_of_content_to_include.php'); ?&gt;</strong><br><br>To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"&gt;</strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"&gt;</strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"&gt;</strong><br><br>To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/media (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=relative_dir/filename.ext"&gt;</strong> YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php dolIncludeHtmlContent($websitekey.'/alias_of_container_to_include.php'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"&gt;</strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"&gt;</strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/media (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=relative_dir/filename.ext"&gt;</strong><br>
ClonePage=Clone page/container ClonePage=Clone page/container
CloneSite=Clone site CloneSite=Clone site
SiteAdded=Web site added
ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page. ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
PageIsANewTranslation=The new page is a translation of the current page ? PageIsANewTranslation=The new page is a translation of the current page ?
LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page. LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
@ -52,3 +52,6 @@ OrEnterPageInfoManually=Or create empty page from scratch...
FetchAndCreate=Fetch and Create FetchAndCreate=Fetch and Create
ExportSite=Export site ExportSite=Export site
IDOfPage=Id of page IDOfPage=Id of page
WebsiteAccount=Web site account
WebsiteAccounts=Web site accounts
AddWebsiteAccount=Create web site account

View File

@ -189,7 +189,6 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
AutoDetectLang=Automatsko otkrivanje (jezik preglednika) AutoDetectLang=Automatsko otkrivanje (jezik preglednika)
FeatureDisabledInDemo=Feature disabled in demo FeatureDisabledInDemo=Feature disabled in demo
FeatureAvailableOnlyOnStable=Feature only available on official stable versions FeatureAvailableOnlyOnStable=Feature only available on official stable versions
Rights=Dozvole
BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown. OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
@ -593,7 +592,7 @@ Module5000Desc=Allows you to manage multiple companies
Module6000Name=Workflow - Tok rada Module6000Name=Workflow - Tok rada
Module6000Desc=Upravljanje workflow-om - tokom rada Module6000Desc=Upravljanje workflow-om - tokom rada
Module10000Name=Websites Module10000Name=Websites
Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
Module20000Name=Leave Requests management Module20000Name=Leave Requests management
Module20000Desc=Declare and follow employees leaves requests Module20000Desc=Declare and follow employees leaves requests
Module39000Name=Product lot Module39000Name=Product lot
@ -1130,7 +1129,7 @@ SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail dire
TranslationSetup=Setup of translation TranslationSetup=Setup of translation
TranslationKeySearch=Search a translation key or string TranslationKeySearch=Search a translation key or string
TranslationOverwriteKey=Overwrite a translation string TranslationOverwriteKey=Overwrite a translation string
TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: <strong>User display setup</strong> tab of user card (click on username at the top of the screen). TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
TranslationString=Translation string TranslationString=Translation string
@ -1171,8 +1170,6 @@ RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passw
DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page
UsersSetup=Users module setup UsersSetup=Users module setup
UserMailRequired=EMail required to create a new user UserMailRequired=EMail required to create a new user
DefaultCategoryCar=Default car category
DefaultRangeNumber=Default range number
##### HRM setup ##### ##### HRM setup #####
HRMSetup=HRM module setup HRMSetup=HRM module setup
##### Company setup ##### ##### Company setup #####

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