Merge branch 'develop' into 7.0_new_shipment_update
This commit is contained in:
commit
feb04b4a22
@ -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
|
||||||
|
|||||||
@ -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";
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
|
/* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
* Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2013-2017 Alexandre Spangaro <aspangaro@zendsi.com>
|
* Copyright (C) 2013-2017 Alexandre Spangaro <aspangaro@zendsi.com>
|
||||||
* Copyright (C) 2016-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2016-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -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,137 +411,288 @@ 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">';
|
||||||
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="' . dol_escape_htmltag($search_mvt_num) . '"></td>';
|
// Movement number
|
||||||
print '<td class="liste_titre center">';
|
if (! empty($arrayfields['t.piece_num']['checked']))
|
||||||
print '<div class="nowrap">';
|
|
||||||
print $langs->trans('From') . ' ';
|
|
||||||
print $form->select_date($search_date_start, 'date_start', 0, 0, 1);
|
|
||||||
print '</div>';
|
|
||||||
print '<div class="nowrap">';
|
|
||||||
print $langs->trans('to') . ' ';
|
|
||||||
print $form->select_date($search_date_end, 'date_end', 0, 0, 1);
|
|
||||||
print '</div>';
|
|
||||||
print '</td>';
|
|
||||||
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">';
|
|
||||||
print '<div class="nowrap">';
|
|
||||||
print $langs->trans('From').' ';
|
|
||||||
print $formaccounting->select_account($search_accountancy_code_start, 'search_accountancy_code_start', 1, array (), 1, 1, 'maxwidth200');
|
|
||||||
print '</div>';
|
|
||||||
print '<div class="nowrap">';
|
|
||||||
print $langs->trans('to').' ';
|
|
||||||
print $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', 1, array (), 1, 1, 'maxwidth200');
|
|
||||||
print '</div>';
|
|
||||||
print '</td>';
|
|
||||||
print '<td class="liste_titre">';
|
|
||||||
print '<div class="nowrap">';
|
|
||||||
print $langs->trans('From').' ';
|
|
||||||
// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
|
|
||||||
// use setup of keypress to select thirdparty and this hang browser on large database.
|
|
||||||
if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX))
|
|
||||||
{
|
{
|
||||||
print $formaccounting->select_auxaccount($search_accountancy_aux_code_start, 'search_accountancy_aux_code_start', 1);
|
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="' . dol_escape_htmltag($search_mvt_num) . '"></td>';
|
||||||
}
|
}
|
||||||
else
|
// Date document
|
||||||
|
if (! empty($arrayfields['t.doc_date']['checked']))
|
||||||
{
|
{
|
||||||
print '<input type="text" name="search_accountancy_aux_code_start" value="'.$search_accountancy_aux_code_start.'">';
|
print '<td class="liste_titre center">';
|
||||||
|
print '<div class="nowrap">';
|
||||||
|
print $langs->trans('From') . ' ';
|
||||||
|
print $form->select_date($search_date_start, 'date_start', 0, 0, 1);
|
||||||
|
print '</div>';
|
||||||
|
print '<div class="nowrap">';
|
||||||
|
print $langs->trans('to') . ' ';
|
||||||
|
print $form->select_date($search_date_end, 'date_end', 0, 0, 1);
|
||||||
|
print '</div>';
|
||||||
|
print '</td>';
|
||||||
}
|
}
|
||||||
print '</div>';
|
// Ref document
|
||||||
print '<div class="nowrap">';
|
if (! empty($arrayfields['t.doc_ref']['checked']))
|
||||||
print $langs->trans('to').' ';
|
|
||||||
// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
|
|
||||||
// use setup of keypress to select thirdparty and this hang browser on large database.
|
|
||||||
if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX))
|
|
||||||
{
|
{
|
||||||
print $formaccounting->select_auxaccount($search_accountancy_aux_code_end, 'search_accountancy_aux_code_end', 1);
|
print '<td class="liste_titre"><input type="text" name="search_doc_ref" size="8" value="' . dol_escape_htmltag($search_doc_ref) . '"></td>';
|
||||||
}
|
}
|
||||||
else
|
// Accountancy account
|
||||||
|
if (! empty($arrayfields['t.numero_compte']['checked']))
|
||||||
{
|
{
|
||||||
print '<input type="text" name="search_accountancy_aux_code_end" value="'.$search_accountancy_aux_code_end.'">';
|
print '<td class="liste_titre">';
|
||||||
|
print '<div class="nowrap">';
|
||||||
|
print $langs->trans('From').' ';
|
||||||
|
print $formaccounting->select_account($search_accountancy_code_start, 'search_accountancy_code_start', 1, array (), 1, 1, 'maxwidth200');
|
||||||
|
print '</div>';
|
||||||
|
print '<div class="nowrap">';
|
||||||
|
print $langs->trans('to').' ';
|
||||||
|
print $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', 1, array (), 1, 1, 'maxwidth200');
|
||||||
|
print '</div>';
|
||||||
|
print '</td>';
|
||||||
}
|
}
|
||||||
print '</div>';
|
// Subledger account
|
||||||
print '</td>';
|
if (! empty($arrayfields['t.subledger_account']['checked']))
|
||||||
print '<td class="liste_titre">';
|
{
|
||||||
print '<input type="text" size="7" class="flat" name="search_mvt_label" value="' . $search_mvt_label . '"/>';
|
print '<td class="liste_titre">';
|
||||||
print '</td>';
|
print '<div class="nowrap">';
|
||||||
print '<td class="liste_titre center"> </td>';
|
print $langs->trans('From').' ';
|
||||||
print '<td class="liste_titre center"> </td>';
|
// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
|
||||||
print '<td class="liste_titre center"><input type="text" name="search_ledger_code" size="3" value="' . $search_ledger_code . '"></td>';
|
// use setup of keypress to select thirdparty and this hang browser on large database.
|
||||||
|
if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX))
|
||||||
|
{
|
||||||
|
print $formaccounting->select_auxaccount($search_accountancy_aux_code_start, 'search_accountancy_aux_code_start', 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<input type="text" name="search_accountancy_aux_code_start" value="'.$search_accountancy_aux_code_start.'">';
|
||||||
|
}
|
||||||
|
print '</div>';
|
||||||
|
print '<div class="nowrap">';
|
||||||
|
print $langs->trans('to').' ';
|
||||||
|
// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
|
||||||
|
// use setup of keypress to select thirdparty and this hang browser on large database.
|
||||||
|
if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX))
|
||||||
|
{
|
||||||
|
print $formaccounting->select_auxaccount($search_accountancy_aux_code_end, 'search_accountancy_aux_code_end', 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<input type="text" name="search_accountancy_aux_code_end" value="'.$search_accountancy_aux_code_end.'">';
|
||||||
|
}
|
||||||
|
print '</div>';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Label operation
|
||||||
|
if (! empty($arrayfields['t.label_operation']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '<input type="text" size="7" class="flat" name="search_mvt_label" value="' . $search_mvt_label . '"/>';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Debit
|
||||||
|
if (! empty($arrayfields['t.debit']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre center"> </td>';
|
||||||
|
}
|
||||||
|
// Credit
|
||||||
|
if (! empty($arrayfields['t.credit']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre center"> </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>';
|
||||||
|
}
|
||||||
|
// 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;
|
|
||||||
while ($i < min($num, $limit))
|
|
||||||
{
|
{
|
||||||
$line = $object->lines[$i];
|
$i=0;
|
||||||
|
$totalarray=array();
|
||||||
|
while ($i < min($num, $limit))
|
||||||
|
{
|
||||||
|
$line = $object->lines[$i];
|
||||||
|
|
||||||
$total_debit += $line->debit;
|
$total_debit += $line->debit;
|
||||||
$total_credit += $line->credit;
|
$total_credit += $line->credit;
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
print '<td><a href="./card.php?piece_num=' . $line->piece_num . '">' . $line->piece_num . '</a></td>';
|
// Piece number
|
||||||
print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>';
|
if (! empty($arrayfields['t.piece_num']['checked']))
|
||||||
print '<td class="nowrap">' . $line->doc_ref . '</td>';
|
{
|
||||||
print '<td>' . length_accountg($line->numero_compte) . '</td>';
|
print '<td><a href="./card.php?piece_num=' . $line->piece_num . '">' . $line->piece_num . '</a></td>';
|
||||||
print '<td>' . length_accounta($line->subledger_account) . '</td>';
|
if (! $i) $totalarray['nbfield']++;
|
||||||
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>';
|
|
||||||
|
|
||||||
$accountingjournal = new AccountingJournal($db);
|
// Document date
|
||||||
$result = $accountingjournal->fetch('',$line->code_journal);
|
if (! empty($arrayfields['t.doc_date']['checked']))
|
||||||
$journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0,0,0,'',0) : $line->code_journal);
|
{
|
||||||
print '<td align="center">' . $journaltoshow . '</td>';
|
print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>';
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
print '<td align="center">';
|
// Document ref
|
||||||
print '<a href="./card.php?piece_num=' . $line->piece_num . '">' . img_edit() . '</a> ';
|
if (! empty($arrayfields['t.doc_ref']['checked']))
|
||||||
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=delmouv&mvt_num=' . $line->piece_num . $param . '&page=' . $page . '">' . img_delete() . '</a>';
|
{
|
||||||
print '</td>';
|
print '<td class="nowrap">' . $line->doc_ref . '</td>';
|
||||||
print "</tr>\n";
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
$i++;
|
// 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);
|
||||||
|
$result = $accountingjournal->fetch('',$line->code_journal);
|
||||||
|
$journaltoshow = (($result > 0)?$accountingjournal->getNomUrl(0,0,0,'',0) : $line->code_journal);
|
||||||
|
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 '<a href="./card.php?piece_num=' . $line->piece_num . '">' . img_edit() . '</a> ';
|
||||||
|
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=delmouv&mvt_num=' . $line->piece_num . $param . '&page=' . $page . '">' . img_delete() . '</a>';
|
||||||
|
print '</td>';
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show total line
|
||||||
|
if (isset($totalarray['totaldebitfield']) || isset($totalarray['totalcreditfield']))
|
||||||
|
{
|
||||||
|
$i=0;
|
||||||
|
while ($i < $totalarray['nbfield'])
|
||||||
|
{
|
||||||
|
$i++;
|
||||||
|
if ($i == 1)
|
||||||
|
{
|
||||||
|
if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</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 class="liste_total">';
|
|
||||||
if ($num < $limit) print '<td align="left" colspan="7">'.$langs->trans("Total").'</td>';
|
|
||||||
else print '<td align="left" colspan="7">'.$langs->trans("Totalforthispage").'</td>';
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right">';
|
|
||||||
print price($total_debit);
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right">';
|
|
||||||
print price($total_credit);
|
|
||||||
print '</td>';
|
|
||||||
print '<td colspan="2"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,10 +85,13 @@ 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))
|
||||||
if (! $res > 0) $error++;
|
{
|
||||||
|
$res = dolibarr_set_const($db,$keyparam,(GETPOST($keyparam,'alpha')?GETPOST($keyparam,'alpha'):''),'chaine',0,'',$conf->entity);
|
||||||
|
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,15 +196,17 @@ 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 '<td>'.$trigger['code'].'</td>';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$trigger['label'].'</td>';
|
print '<td>'.$trigger['code'].'</td>';
|
||||||
print '<td align="right" width="40">';
|
print '<td>'.$trigger['label'].'</td>';
|
||||||
$key='MAIN_AGENDA_ACTIONAUTO_'.$trigger['code'];
|
print '<td align="right" width="40">';
|
||||||
$value=$conf->global->$key;
|
$key='MAIN_AGENDA_ACTIONAUTO_'.$trigger['code'];
|
||||||
print '<input class="oddeven" type="checkbox" name="'.$key.'" value="1"'.((($action=='selectall'||$value) && $action!="selectnone")?' checked':'').'>';
|
$value=$conf->global->$key;
|
||||||
print '</td></tr>'."\n";
|
print '<input class="oddeven" type="checkbox" name="'.$key.'" value="1"'.((($action=='selectall'||$value) && $action!="selectnone")?' checked':'').'>';
|
||||||
|
print '</td></tr>'."\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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"> </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"> </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();
|
||||||
|
|||||||
@ -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,22 +419,23 @@ 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)
|
||||||
{
|
{
|
||||||
// Directory of translation files
|
$searchdir = $tmpsearchdir; // $searchdir can be '.../htdocs/core/modules/' or '.../htdocs/custom/mymodule/core/modules/'
|
||||||
$dir_lang = $searchdir."/langs/".$langcode;
|
|
||||||
$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);
|
// Directory of translation files
|
||||||
|
$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);
|
||||||
|
|
||||||
foreach($filearray as $file)
|
$filearray=dol_dir_list($dir_lang_osencoded,'files',0,'','',$sortfield,(strtolower($sortorder)=='asc'?SORT_ASC:SORT_DESC),1);
|
||||||
{
|
foreach($filearray as $file)
|
||||||
$tmpfile=preg_replace('/.lang/i', '', basename($file['name']));
|
{
|
||||||
$newlang->load($tmpfile, 0, 0, '', 0); // Load translation files + database overwrite
|
$tmpfile=preg_replace('/.lang/i', '', basename($file['name']));
|
||||||
$newlangfileonly->load($tmpfile, 0, 0, '', 1); // Load translation files only
|
$newlang->load($tmpfile, 0, 0, '', 0); // Load translation files + database overwrite
|
||||||
//print 'After loading lang '.$tmpfile.', newlang has '.count($newlang->tab_translate).' records<br>'."\n";
|
$newlangfileonly->load($tmpfile, 0, 0, '', 1); // Load translation files only
|
||||||
}
|
//print 'After loading lang '.$tmpfile.', newlang has '.count($newlang->tab_translate).' records<br>'."\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now search into translation array
|
// Now search into translation array
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -180,11 +180,11 @@ class BlockedLog
|
|||||||
public function setObjectData(&$object)
|
public function setObjectData(&$object)
|
||||||
{
|
{
|
||||||
// Set date
|
// Set date
|
||||||
if($object->element == 'payment' || $object->element == 'payment_supplier')
|
if ($object->element == 'payment' || $object->element == 'payment_supplier')
|
||||||
{
|
{
|
||||||
$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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,111 +35,117 @@ function printBookmarksList($aDb, $aLangs)
|
|||||||
$db = $aDb;
|
$db = $aDb;
|
||||||
$langs = $aLangs;
|
$langs = $aLangs;
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
$langs->load("bookmarks");
|
|
||||||
|
|
||||||
$url= $_SERVER["PHP_SELF"];
|
|
||||||
|
|
||||||
if (! empty($_SERVER["QUERY_STRING"]))
|
|
||||||
{
|
|
||||||
$url.=(dol_escape_htmltag($_SERVER["QUERY_STRING"])?'?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]):'');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
global $sortfield,$sortorder;
|
|
||||||
$tmpurl='';
|
|
||||||
// No urlencode, all param $url will be urlencoded later
|
|
||||||
if ($sortfield) $tmpurl.=($tmpurl?'&':'').'sortfield='.$sortfield;
|
|
||||||
if ($sortorder) $tmpurl.=($tmpurl?'&':'').'sortorder='.$sortorder;
|
|
||||||
if (is_array($_POST))
|
|
||||||
{
|
|
||||||
foreach($_POST as $key => $val)
|
|
||||||
{
|
|
||||||
if (preg_match('/^search_/', $key) && $val != '') $tmpurl.=($tmpurl?'&':'').$key.'='.$val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$url.=($tmpurl?'?'.$tmpurl:'');
|
|
||||||
}
|
|
||||||
|
|
||||||
$ret = '';
|
|
||||||
|
|
||||||
// Menu bookmark
|
|
||||||
$ret.= '<div class="menu_top"></div>'."\n";
|
$ret.= '<div class="menu_top"></div>'."\n";
|
||||||
|
|
||||||
$ret.= '<!-- form with POST method by default, will be replaced with GET for external link by js -->'."\n";
|
if (! empty($conf->use_javascript_ajax)) { // Bookmark autosubmit can't work when javascript is off.
|
||||||
$ret.= '<form id="actionbookmark" name="actionbookmark" method="POST" action="">';
|
|
||||||
$ret.= '<select name="bookmark" id="boxbookmark" class="flat boxcombo vmenusearchselectcombo" alt="Bookmarks">';
|
require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php';
|
||||||
$ret.= '<option hidden value="listbookmarks" class="optiongrey" selected rel="'.DOL_URL_ROOT.'/bookmarks/list.php">'.$langs->trans('Bookmarks').'</option>';
|
if (! isset($conf->global->BOOKMARKS_SHOW_IN_MENU)) $conf->global->BOOKMARKS_SHOW_IN_MENU=5;
|
||||||
$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
|
$langs->load("bookmarks");
|
||||||
if ($user->rights->bookmark->creer)
|
|
||||||
{
|
$url= $_SERVER["PHP_SELF"];
|
||||||
//$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&urlsource='.urlencode($url).'&url='.urlencode($url);
|
|
||||||
$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&url='.urlencode($url);
|
if (! empty($_SERVER["QUERY_STRING"]))
|
||||||
$ret.= '<option value="newbookmark" class="optionblue" rel="'.dol_escape_htmltag($urltoadd).'">'.dol_escape_htmltag($langs->trans('AddThisPageToBookmarks')).'...</option>';
|
|
||||||
}
|
|
||||||
// Menu with all bookmarks
|
|
||||||
if (! empty($conf->global->BOOKMARKS_SHOW_IN_MENU))
|
|
||||||
{
|
|
||||||
$sql = "SELECT rowid, title, url, target FROM ".MAIN_DB_PREFIX."bookmark";
|
|
||||||
$sql.= " WHERE (fk_user = ".$user->id." OR fk_user is NULL OR fk_user = 0)";
|
|
||||||
$sql.= " AND entity IN (".getEntity('bookmarks').")";
|
|
||||||
$sql.= " ORDER BY position";
|
|
||||||
if ($resql = $db->query($sql) )
|
|
||||||
{
|
{
|
||||||
$i=0;
|
$url.=(dol_escape_htmltag($_SERVER["QUERY_STRING"])?'?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]):'');
|
||||||
while ($i < $conf->global->BOOKMARKS_SHOW_IN_MENU && $obj = $db->fetch_object($resql))
|
|
||||||
{
|
|
||||||
$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.=img_picto('','object_bookmark').' ';
|
|
||||||
$ret.=$obj->title;
|
|
||||||
$ret.='</option>';
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dol_print_error($db);
|
global $sortfield,$sortorder;
|
||||||
|
$tmpurl='';
|
||||||
|
// No urlencode, all param $url will be urlencoded later
|
||||||
|
if ($sortfield) $tmpurl.=($tmpurl?'&':'').'sortfield='.$sortfield;
|
||||||
|
if ($sortorder) $tmpurl.=($tmpurl?'&':'').'sortorder='.$sortorder;
|
||||||
|
if (is_array($_POST))
|
||||||
|
{
|
||||||
|
foreach($_POST as $key => $val)
|
||||||
|
{
|
||||||
|
if (preg_match('/^search_/', $key) && $val != '') $tmpurl.=($tmpurl?'&':'').$key.'='.$val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$url.=($tmpurl?'?'.$tmpurl:'');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$ret = '';
|
||||||
|
|
||||||
|
// Menu bookmark
|
||||||
|
$ret.= '<div class="menu_top"></div>'."\n";
|
||||||
|
|
||||||
|
$ret.= '<!-- form with POST method by default, will be replaced with GET for external link by js -->'."\n";
|
||||||
|
$ret.= '<form id="actionbookmark" name="actionbookmark" method="POST" action="">';
|
||||||
|
$ret.= '<select name="bookmark" id="boxbookmark" class="flat boxcombo vmenusearchselectcombo" alt="Bookmarks">';
|
||||||
|
$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>';
|
||||||
|
// Url to go on create new bookmark page
|
||||||
|
if (! empty($user->rights->bookmark->creer))
|
||||||
|
{
|
||||||
|
//$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&urlsource='.urlencode($url).'&url='.urlencode($url);
|
||||||
|
$urltoadd=DOL_URL_ROOT.'/bookmarks/card.php?action=create&url='.urlencode($url);
|
||||||
|
$ret.= '<option value="newbookmark" class="optionblue" rel="'.dol_escape_htmltag($urltoadd).'">'.dol_escape_htmltag($langs->trans('AddThisPageToBookmarks')).'...</option>';
|
||||||
|
}
|
||||||
|
// Menu with all bookmarks
|
||||||
|
if (! empty($conf->global->BOOKMARKS_SHOW_IN_MENU))
|
||||||
|
{
|
||||||
|
$sql = "SELECT rowid, title, url, target FROM ".MAIN_DB_PREFIX."bookmark";
|
||||||
|
$sql.= " WHERE (fk_user = ".$user->id." OR fk_user is NULL OR fk_user = 0)";
|
||||||
|
$sql.= " AND entity IN (".getEntity('bookmarks').")";
|
||||||
|
$sql.= " ORDER BY position";
|
||||||
|
if ($resql = $db->query($sql) )
|
||||||
|
{
|
||||||
|
$i=0;
|
||||||
|
while ($i < $conf->global->BOOKMARKS_SHOW_IN_MENU && $obj = $db->fetch_object($resql))
|
||||||
|
{
|
||||||
|
$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.=img_picto('','object_bookmark').' ';
|
||||||
|
$ret.=dol_escape_htmltag($obj->title);
|
||||||
|
$ret.='</option>';
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$ret.= '</select>';
|
||||||
|
$ret.= '</form>';
|
||||||
|
|
||||||
|
$ret.=ajax_combobox('boxbookmark');
|
||||||
|
|
||||||
|
$ret.='<script type="text/javascript">
|
||||||
|
$(document).ready(function () {';
|
||||||
|
$ret.=' jQuery("#boxbookmark").change(function() {
|
||||||
|
var urlselected = jQuery("#boxbookmark option:selected").attr("rel");
|
||||||
|
if (! urlselected) console.log("Error, failed to get the URL to jump to from the rel attribute");
|
||||||
|
var urltarget = jQuery("#boxbookmark option:selected").attr("target");
|
||||||
|
if (! urltarget) { urltarget=""; }
|
||||||
|
jQuery("form#actionbookmark").attr("target",urltarget);
|
||||||
|
jQuery("form#actionbookmark").attr("action",urlselected);
|
||||||
|
|
||||||
|
console.log("We change select bookmark. We choose urlselected="+urlselected+" with target="+urltarget);
|
||||||
|
|
||||||
|
// Method is POST for internal link, GET for external
|
||||||
|
if (urlselected.startsWith(\'http\'))
|
||||||
|
{
|
||||||
|
var newmethod=\'GET\';
|
||||||
|
jQuery("form#actionbookmark").attr("method", newmethod);
|
||||||
|
console.log("We change method to newmethod="+newmethod);
|
||||||
|
jQuery("#actionbookmark").submit();
|
||||||
|
console.log("We restore method to POST");
|
||||||
|
jQuery("form#actionbookmark").attr("method", \'POST\');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
jQuery("#actionbookmark").submit();
|
||||||
|
}
|
||||||
|
});';
|
||||||
|
$ret.='})</script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret.= '</select>';
|
$ret.= '<div class="menu_end"></div>'."\n";
|
||||||
$ret.= '</form>';
|
|
||||||
|
|
||||||
$ret.=ajax_combobox('boxbookmark');
|
|
||||||
|
|
||||||
$ret.='<script type="text/javascript">
|
|
||||||
$(document).ready(function () {';
|
|
||||||
$ret.=' jQuery("#boxbookmark").change(function() {
|
|
||||||
var urlselected = jQuery("#boxbookmark option:selected").attr("rel");
|
|
||||||
if (! urlselected) console.log("Error, failed to get the URL to jump to from the rel attribute");
|
|
||||||
var urltarget = jQuery("#boxbookmark option:selected").attr("target");
|
|
||||||
if (! urltarget) { urltarget=""; }
|
|
||||||
jQuery("form#actionbookmark").attr("target",urltarget);
|
|
||||||
jQuery("form#actionbookmark").attr("action",urlselected);
|
|
||||||
|
|
||||||
console.log("We change select bookmark. We choose urlselected="+urlselected+" with target="+urltarget);
|
|
||||||
|
|
||||||
// Method is POST for internal link, GET for external
|
|
||||||
if (urlselected.startsWith(\'http\'))
|
|
||||||
{
|
|
||||||
var newmethod=\'GET\';
|
|
||||||
jQuery("form#actionbookmark").attr("method", newmethod);
|
|
||||||
console.log("We change method to newmethod="+newmethod);
|
|
||||||
jQuery("#actionbookmark").submit();
|
|
||||||
console.log("We restore method to POST");
|
|
||||||
jQuery("form#actionbookmark").attr("method", \'POST\');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
jQuery("#actionbookmark").submit();
|
|
||||||
}
|
|
||||||
});';
|
|
||||||
$ret.='})</script>';
|
|
||||||
$ret .= '<div class="menu_end"></div>';
|
|
||||||
|
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
229
htdocs/comm/action/class/actioncommreminder.class.php
Normal file
229
htdocs/comm/action/class/actioncommreminder.class.php
Normal 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@ -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
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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>';
|
||||||
|
|
||||||
|
$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.($option == 'reflabel' && $this->label ? ' - '.$this->label : '');
|
||||||
|
$result .= $linkend;
|
||||||
|
|
||||||
if ($withpicto) $result.=($link.img_object($label, 'account', 'class="classfortooltip"').$linkend.' ');
|
|
||||||
$result.=$link.$this->ref.($option == 'reflabel' && $this->label ? ' - '.$this->label : '').$linkend;
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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');
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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':
|
||||||
$out=trim($out);
|
if (! is_array($out))
|
||||||
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
{
|
||||||
// '../' is dangerous because it allows dir transversals
|
$out=trim($out);
|
||||||
if (preg_match('/"/',$out)) $out='';
|
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
||||||
else if (preg_match('/\.\.\//',$out)) $out='';
|
// '../' is dangerous because it allows dir transversals
|
||||||
|
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':
|
||||||
$out=trim($out);
|
if (! is_array($out))
|
||||||
if (preg_match('/[^a-z]+/i',$out)) $out='';
|
{
|
||||||
|
$out=trim($out);
|
||||||
|
if (preg_match('/[^a-z]+/i',$out)) $out='';
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'aZ09':
|
case 'aZ09':
|
||||||
$out=trim($out);
|
if (! is_array($out))
|
||||||
if (preg_match('/[^a-z0-9_\-\.]+/i',$out)) $out='';
|
{
|
||||||
|
$out=trim($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
|
||||||
$out=trim($out);
|
if (! is_array($out))
|
||||||
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
{
|
||||||
// '../' is dangerous because it allows dir transversals
|
$out=trim($out);
|
||||||
if (preg_match('/"/',$out)) $out='';
|
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
||||||
else if (preg_match('/\.\.\//',$out)) $out='';
|
// '../' is dangerous because it allows dir transversals
|
||||||
$out=dol_string_nohtmltag($out);
|
if (preg_match('/"/',$out)) $out='';
|
||||||
|
else if (preg_match('/\.\.\//',$out)) $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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4952,7 +4964,7 @@ function picto_required()
|
|||||||
*/
|
*/
|
||||||
function dol_string_nohtmltag($stringtoclean,$removelinefeed=1,$pagecodeto='UTF-8')
|
function dol_string_nohtmltag($stringtoclean,$removelinefeed=1,$pagecodeto='UTF-8')
|
||||||
{
|
{
|
||||||
// TODO Try to replace with strip_tags($stringtoclean)
|
// TODO Try to replace with strip_tags($stringtoclean)
|
||||||
$pattern = "/<[^<>]+>/";
|
$pattern = "/<[^<>]+>/";
|
||||||
$stringtoclean = preg_replace('/<br[^>]*>/', "\n", $stringtoclean);
|
$stringtoclean = preg_replace('/<br[^>]*>/', "\n", $stringtoclean);
|
||||||
$temp = dol_html_entity_decode($stringtoclean,ENT_COMPAT,$pagecodeto);
|
$temp = dol_html_entity_decode($stringtoclean,ENT_COMPAT,$pagecodeto);
|
||||||
|
|||||||
@ -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";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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++;
|
||||||
|
|||||||
@ -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
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$oldprojectforbreak = (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)?0:-1); // 0 to start break , -1 no break
|
if (empty($oldprojectforbreak))
|
||||||
|
{
|
||||||
|
$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));
|
||||||
|
|
||||||
$oldprojectforbreak = (empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)?0:-1); // 0 = start break, -1 = never break
|
if (empty($oldprojectforbreak))
|
||||||
|
{
|
||||||
|
$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--;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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&leftmenu=', $langs->trans("Accountancy"), 0, $showmode, $atarget, "accountancy", '', 52, $id, $idsel, $classname);
|
$menu->add('/accountancy/index.php?mainmenu=accountancy&leftmenu=', $langs->trans("MenuAccountancy"), 0, $showmode, $atarget, "accountancy", '', 52, $id, $idsel, $classname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -607,13 +607,13 @@ if (empty($reshook))
|
|||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
$lines = $object->lines;
|
$lines = $object->lines;
|
||||||
$line = new ExpeditionLigne($db);
|
$line = new ExpeditionLigne($db);
|
||||||
|
|
||||||
$num_prod = count($lines);
|
$num_prod = count($lines);
|
||||||
for ($i = 0 ; $i < $num_prod ; $i++)
|
for ($i = 0 ; $i < $num_prod ; $i++)
|
||||||
{
|
{
|
||||||
if ($lines[$i]->id == $line_id)
|
if ($lines[$i]->id == $line_id)
|
||||||
{
|
{
|
||||||
if (count($lines[$i]->details_entrepot) > 1)
|
if (count($lines[$i]->details_entrepot) > 1)
|
||||||
{
|
{
|
||||||
// delete multi warehouse lines
|
// delete multi warehouse lines
|
||||||
foreach ($lines[$i]->details_entrepot as $details_entrepot) {
|
foreach ($lines[$i]->details_entrepot as $details_entrepot) {
|
||||||
@ -624,7 +624,7 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// delete single warehouse line
|
// delete single warehouse line
|
||||||
$line->id = $line_id;
|
$line->id = $line_id;
|
||||||
@ -636,12 +636,12 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
unset($_POST["lineid"]);
|
unset($_POST["lineid"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(! $error) {
|
if(! $error) {
|
||||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
|
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessages($line->error, $line->errors, 'errors');
|
setEventMessages($line->error, $line->errors, 'errors');
|
||||||
}
|
}
|
||||||
@ -657,12 +657,12 @@ if (empty($reshook))
|
|||||||
$qty=0;
|
$qty=0;
|
||||||
$entrepot_id = 0;
|
$entrepot_id = 0;
|
||||||
$batch_id = 0;
|
$batch_id = 0;
|
||||||
|
|
||||||
$lines = $object->lines;
|
$lines = $object->lines;
|
||||||
$num_prod = count($lines);
|
$num_prod = count($lines);
|
||||||
for ($i = 0 ; $i < $num_prod ; $i++)
|
for ($i = 0 ; $i < $num_prod ; $i++)
|
||||||
{
|
{
|
||||||
if ($lines[$i]->id == $line_id)
|
if ($lines[$i]->id == $line_id)
|
||||||
{
|
{
|
||||||
// line to update
|
// line to update
|
||||||
$line = new ExpeditionLigne($db);
|
$line = new ExpeditionLigne($db);
|
||||||
@ -680,7 +680,7 @@ if (empty($reshook))
|
|||||||
if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0)
|
if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0)
|
||||||
{
|
{
|
||||||
// line with lot
|
// line with lot
|
||||||
foreach ($lines[$i]->detail_batch as $detail_batch)
|
foreach ($lines[$i]->detail_batch as $detail_batch)
|
||||||
{
|
{
|
||||||
$lotStock = new Productbatch($db);
|
$lotStock = new Productbatch($db);
|
||||||
$batch="batchl".$detail_batch->fk_expeditiondet."_".$detail_batch->fk_origin_stock;
|
$batch="batchl".$detail_batch->fk_expeditiondet."_".$detail_batch->fk_origin_stock;
|
||||||
@ -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;
|
||||||
@ -706,7 +710,7 @@ if (empty($reshook))
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessages($lotStock->error, $lotStock->errors, 'errors');
|
setEventMessages($lotStock->error, $lotStock->errors, 'errors');
|
||||||
$error++;
|
$error++;
|
||||||
@ -790,7 +794,7 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// line without lot
|
// line without lot
|
||||||
if ($lines[$i]->entrepot_id > 0)
|
if ($lines[$i]->entrepot_id > 0)
|
||||||
@ -856,7 +860,7 @@ if (empty($reshook))
|
|||||||
$object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
$object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
|
header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
|
||||||
exit();
|
exit();
|
||||||
@ -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 ' ';
|
||||||
|
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>';
|
||||||
|
|
||||||
@ -2051,7 +2061,7 @@ else if ($id || $ref)
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($object->statut <= 1)
|
if ($object->statut <= 1)
|
||||||
{
|
{
|
||||||
@ -2065,7 +2075,7 @@ else if ($id || $ref)
|
|||||||
{
|
{
|
||||||
print '<td align="left">'.$langs->trans("WarehouseSource").'</td>';
|
print '<td align="left">'.$langs->trans("WarehouseSource").'</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->productbatch->enabled))
|
if (! empty($conf->productbatch->enabled))
|
||||||
{
|
{
|
||||||
print '<td align="left">'.$langs->trans("Batch").'</td>';
|
print '<td align="left">'.$langs->trans("Batch").'</td>';
|
||||||
@ -2240,7 +2250,7 @@ else if ($id || $ref)
|
|||||||
if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0)
|
if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0)
|
||||||
{
|
{
|
||||||
$line = new ExpeditionLigne($db);
|
$line = new ExpeditionLigne($db);
|
||||||
foreach ($lines[$i]->detail_batch as $detail_batch)
|
foreach ($lines[$i]->detail_batch as $detail_batch)
|
||||||
{
|
{
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
// Qty to ship or shipped
|
// Qty to ship or shipped
|
||||||
@ -2401,7 +2411,7 @@ else if ($id || $ref)
|
|||||||
{
|
{
|
||||||
print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
|
print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
|
print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
|
||||||
}
|
}
|
||||||
@ -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();
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2220,7 +2220,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
*/
|
*/
|
||||||
public $fk_expedition;
|
public $fk_expedition;
|
||||||
|
|
||||||
var $db;
|
var $db;
|
||||||
|
|
||||||
// From llx_expeditiondet
|
// From llx_expeditiondet
|
||||||
var $qty;
|
var $qty;
|
||||||
@ -2232,7 +2232,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $entrepot_id;
|
public $entrepot_id;
|
||||||
|
|
||||||
|
|
||||||
// From llx_commandedet or llx_propaldet
|
// From llx_commandedet or llx_propaldet
|
||||||
var $qty_asked;
|
var $qty_asked;
|
||||||
@ -2249,7 +2249,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
var $total_localtax1; // Total Local tax 1
|
var $total_localtax1; // Total Local tax 1
|
||||||
var $total_localtax2; // Total Local tax 2
|
var $total_localtax2; // Total Local tax 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Deprecated
|
// Deprecated
|
||||||
/**
|
/**
|
||||||
@ -2395,7 +2395,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete shipment line.
|
* Delete shipment line.
|
||||||
*
|
*
|
||||||
* @param User $user User that modify
|
* @param User $user User that modify
|
||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int >0 if OK, <0 if KO
|
* @return int >0 if OK, <0 if KO
|
||||||
@ -2407,7 +2407,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
// delete batch expedition line
|
// delete batch expedition line
|
||||||
if ($conf->productbatch->enabled)
|
if ($conf->productbatch->enabled)
|
||||||
{
|
{
|
||||||
@ -2420,7 +2420,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet";
|
||||||
$sql.= " WHERE rowid = ".$this->id;
|
$sql.= " WHERE rowid = ".$this->id;
|
||||||
|
|
||||||
@ -2436,7 +2436,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $error && ! $notrigger)
|
if (! $error && ! $notrigger)
|
||||||
{
|
{
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result=$this->call_trigger('LINESHIPPING_DELETE',$user);
|
$result=$this->call_trigger('LINESHIPPING_DELETE',$user);
|
||||||
@ -2458,7 +2458,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
foreach($this->errors as $errmsg)
|
foreach($this->errors as $errmsg)
|
||||||
{
|
{
|
||||||
@ -2469,10 +2469,10 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
return -1*$error;
|
return -1*$error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update a line in database
|
* Update a line in database
|
||||||
*
|
*
|
||||||
* @param User $user User that modify
|
* @param User $user User that modify
|
||||||
* @param int $notrigger 1 = disable triggers
|
* @param int $notrigger 1 = disable triggers
|
||||||
* @return int < 0 if KO, > 0 if OK
|
* @return int < 0 if KO, > 0 if OK
|
||||||
@ -2480,13 +2480,11 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
function update($user = null, $notrigger = 0)
|
function update($user = null, $notrigger = 0)
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
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,9 +2494,9 @@ 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)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this).'::update only possible for one batch', LOG_ERR);
|
dol_syslog(get_class($this).'::update only possible for one batch', LOG_ERR);
|
||||||
$this->errors[]='ErrorBadParameters';
|
$this->errors[]='ErrorBadParameters';
|
||||||
@ -2560,24 +2558,24 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
$this->errors[]=$this->db->lasterror()." - ExpeditionLineBatch::fetchAll";
|
$this->errors[]=$this->db->lasterror()." - ExpeditionLineBatch::fetchAll";
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// caculate new total line qty
|
// caculate new total line qty
|
||||||
foreach ($lotArray as $lot)
|
foreach ($lotArray as $lot)
|
||||||
{
|
{
|
||||||
if ($expedition_batch_id != $lot->id)
|
if ($expedition_batch_id != $lot->id)
|
||||||
{
|
{
|
||||||
$remainingQty += $lot->dluo_qty;
|
$remainingQty += $lot->dluo_qty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$qty += $remainingQty;
|
$qty += $remainingQty;
|
||||||
|
|
||||||
//fetch lot details
|
//fetch lot details
|
||||||
|
|
||||||
// fetch from product_lot
|
// fetch from product_lot
|
||||||
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php';
|
||||||
$lot = new Productlot($this->db);
|
$lot = new Productlot($this->db);
|
||||||
if ($lot->fetch(0,$this->fk_product,$batch) < 0)
|
if ($lot->fetch(0,$this->fk_product,$batch) < 0)
|
||||||
{
|
{
|
||||||
$this->errors[] = $lot->errors;
|
$this->errors[] = $lot->errors;
|
||||||
$error++;
|
$error++;
|
||||||
@ -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";
|
||||||
@ -2622,8 +2621,8 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
$sql.= " fk_entrepot = ".$this->entrepot_id;
|
$sql.= " fk_entrepot = ".$this->entrepot_id;
|
||||||
$sql.= " , qty = ".$qty;
|
$sql.= " , qty = ".$qty;
|
||||||
$sql.= " WHERE rowid = ".$this->id;
|
$sql.= " WHERE rowid = ".$this->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";
|
||||||
$error++;
|
$error++;
|
||||||
@ -2641,7 +2640,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $error && ! $notrigger)
|
if (! $error && ! $notrigger)
|
||||||
{
|
{
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result=$this->call_trigger('LINESHIPPING_UPDATE',$user);
|
$result=$this->call_trigger('LINESHIPPING_UPDATE',$user);
|
||||||
@ -2656,7 +2655,7 @@ class ExpeditionLigne extends CommonObjectLine
|
|||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
foreach($this->errors as $errmsg)
|
foreach($this->errors as $errmsg)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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 ' ';
|
else print ' ';
|
||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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')
|
||||||
|
|||||||
@ -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
0
htdocs/includes/stripe/build.php
Normal file → Executable 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);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
-- Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
-- Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
-- Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
-- Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
-- Copyright (C) 2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
-- Copyright (C) 2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
--
|
--
|
||||||
-- This program is free software; you can redistribute it and/or modify
|
-- 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
|
-- it under the terms of the GNU General Public License as published by
|
||||||
@ -21,20 +21,20 @@
|
|||||||
|
|
||||||
create table llx_accounting_account
|
create table llx_accounting_account
|
||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
entity integer DEFAULT 1 NOT NULL,
|
entity integer DEFAULT 1 NOT NULL,
|
||||||
datec datetime,
|
datec datetime,
|
||||||
tms timestamp,
|
tms timestamp,
|
||||||
fk_pcg_version varchar(32) NOT NULL,
|
fk_pcg_version varchar(32) NOT NULL,
|
||||||
pcg_type varchar(20) NOT NULL,
|
pcg_type varchar(20) NOT NULL,
|
||||||
pcg_subtype varchar(20) NOT NULL,
|
pcg_subtype varchar(20) NOT NULL,
|
||||||
account_number varchar(32) NOT NULL,
|
account_number varchar(32) NOT NULL,
|
||||||
account_parent varchar(32) DEFAULT '0', -- Hierarchic parent TODO Move this as integer, it is a foreign key of llx_accounting_account.rowid
|
account_parent varchar(32) DEFAULT '0', -- Hierarchic parent TODO Move this as integer, it is a foreign key of llx_accounting_account.rowid
|
||||||
label varchar(255) NOT NULL,
|
label varchar(255) NOT NULL,
|
||||||
fk_accounting_category integer DEFAULT 0,
|
fk_accounting_category integer DEFAULT 0,
|
||||||
fk_user_author integer DEFAULT NULL,
|
fk_user_author integer DEFAULT NULL,
|
||||||
fk_user_modif integer DEFAULT NULL,
|
fk_user_modif integer DEFAULT NULL,
|
||||||
active tinyint DEFAULT 1 NOT NULL,
|
active tinyint DEFAULT 1 NOT NULL,
|
||||||
import_key varchar(14),
|
import_key varchar(14),
|
||||||
extraparams varchar(255) -- for other parameters with json format
|
extraparams varchar(255) -- for other parameters with json format
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -40,7 +40,7 @@ CREATE TABLE llx_accounting_bookkeeping
|
|||||||
multicurrency_code varchar(255), -- FEC:Idevise
|
multicurrency_code varchar(255), -- FEC:Idevise
|
||||||
lettering_code varchar(255), -- FEC:EcritureLet
|
lettering_code varchar(255), -- FEC:EcritureLet
|
||||||
date_lettering datetime, -- FEC:DateLet
|
date_lettering datetime, -- FEC:DateLet
|
||||||
date_lim_reglement datetime DEFAULT NULL, -- | date limite de reglement
|
date_lim_reglement datetime DEFAULT NULL, -- | date limite de reglement
|
||||||
fk_user_author integer NOT NULL, -- | user creating
|
fk_user_author integer NOT NULL, -- | user creating
|
||||||
fk_user_modif integer, -- | user making last change
|
fk_user_modif integer, -- | user making last change
|
||||||
date_creation datetime, -- FEC:EcritureDate | creation date
|
date_creation datetime, -- FEC:EcritureDate | creation date
|
||||||
|
|||||||
@ -40,7 +40,7 @@ CREATE TABLE llx_accounting_bookkeeping_tmp
|
|||||||
multicurrency_code varchar(255), -- FEC:Idevise
|
multicurrency_code varchar(255), -- FEC:Idevise
|
||||||
lettering_code varchar(255), -- FEC:EcritureLet
|
lettering_code varchar(255), -- FEC:EcritureLet
|
||||||
date_lettering datetime, -- FEC:DateLet
|
date_lettering datetime, -- FEC:DateLet
|
||||||
date_lim_reglement datetime, -- | date limite de reglement
|
date_lim_reglement datetime, -- | date limite de reglement
|
||||||
fk_user_author integer NOT NULL, -- | user creating
|
fk_user_author integer NOT NULL, -- | user creating
|
||||||
fk_user_modif integer, -- | user making last change
|
fk_user_modif integer, -- | user making last change
|
||||||
date_creation datetime, -- FEC:EcritureDate | creation date
|
date_creation datetime, -- FEC:EcritureDate | creation date
|
||||||
|
|||||||
25
htdocs/install/mysql/tables/llx_actioncomm_reminder.key.sql
Normal file
25
htdocs/install/mysql/tables/llx_actioncomm_reminder.key.sql
Normal 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);
|
||||||
|
|
||||||
|
|
||||||
27
htdocs/install/mysql/tables/llx_actioncomm_reminder.sql
Normal file
27
htdocs/install/mysql/tables/llx_actioncomm_reminder.sql
Normal 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;
|
||||||
@ -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),
|
||||||
|
|||||||
@ -25,7 +25,7 @@ create table llx_bordereau_cheque
|
|||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
ref varchar(30) NOT NULL, -- ref
|
ref varchar(30) NOT NULL, -- ref
|
||||||
ref_ext varchar(255), -- ref_ext
|
ref_ext varchar(255), -- ref_ext
|
||||||
datec datetime NOT NULL,
|
datec datetime NOT NULL,
|
||||||
date_bordereau date,
|
date_bordereau date,
|
||||||
amount double(24,8) NOT NULL,
|
amount double(24,8) NOT NULL,
|
||||||
|
|||||||
@ -20,25 +20,25 @@
|
|||||||
|
|
||||||
create table llx_chargesociales
|
create table llx_chargesociales
|
||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
ref varchar(16), -- 'TX....'
|
ref varchar(16), -- 'TX....'
|
||||||
date_ech datetime NOT NULL, -- date echeance
|
date_ech datetime NOT NULL, -- date echeance
|
||||||
libelle varchar(80) NOT NULL,
|
libelle varchar(80) NOT NULL,
|
||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
tms timestamp,
|
tms timestamp,
|
||||||
date_creation datetime, -- date de creation
|
date_creation datetime, -- date de creation
|
||||||
date_valid datetime, -- date de validation
|
date_valid datetime, -- date de validation
|
||||||
fk_user_author integer, -- user making creation
|
fk_user_author integer, -- user making creation
|
||||||
fk_user_modif integer, -- user making last change
|
fk_user_modif integer, -- user making last change
|
||||||
fk_user_valid integer, -- user validating
|
fk_user_valid integer, -- user validating
|
||||||
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,
|
||||||
import_key varchar(14)
|
import_key varchar(14)
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|||||||
@ -20,63 +20,63 @@
|
|||||||
|
|
||||||
create table llx_commande
|
create table llx_commande
|
||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
ref varchar(30) NOT NULL, -- order reference number
|
ref varchar(30) NOT NULL, -- order reference number
|
||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
|
||||||
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(255), -- reference into an internal system (deprecated)
|
ref_int varchar(255), -- reference into an internal system (deprecated)
|
||||||
ref_client varchar(255), -- reference for customer
|
ref_client varchar(255), -- reference for customer
|
||||||
|
|
||||||
fk_soc integer NOT NULL,
|
fk_soc integer NOT NULL,
|
||||||
fk_projet integer DEFAULT NULL, -- projet auquel est rattache la commande
|
fk_projet integer DEFAULT NULL, -- projet auquel est rattache la commande
|
||||||
|
|
||||||
tms timestamp,
|
tms timestamp,
|
||||||
date_creation datetime, -- date de creation
|
date_creation datetime, -- date de creation
|
||||||
date_valid datetime, -- date de validation
|
date_valid datetime, -- date de validation
|
||||||
date_cloture datetime, -- date de cloture
|
date_cloture datetime, -- date de cloture
|
||||||
date_commande date, -- date de la commande
|
date_commande date, -- date de la commande
|
||||||
fk_user_author integer, -- user making creation
|
fk_user_author integer, -- user making creation
|
||||||
fk_user_modif integer, -- user making last change
|
fk_user_modif integer, -- user making last change
|
||||||
fk_user_valid integer, -- user validating
|
fk_user_valid integer, -- user validating
|
||||||
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,
|
||||||
tva double(24,8) default 0,
|
tva double(24,8) default 0,
|
||||||
localtax1 double(24,8) default 0, -- total localtax1
|
localtax1 double(24,8) default 0, -- total localtax1
|
||||||
localtax2 double(24,8) default 0, -- total localtax2
|
localtax2 double(24,8) default 0, -- total localtax2
|
||||||
total_ht double(24,8) default 0,
|
total_ht double(24,8) default 0,
|
||||||
total_ttc double(24,8) default 0,
|
total_ttc double(24,8) default 0,
|
||||||
note_private text,
|
note_private text,
|
||||||
note_public text,
|
note_public text,
|
||||||
model_pdf varchar(255),
|
model_pdf varchar(255),
|
||||||
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
||||||
|
|
||||||
facture tinyint default 0,
|
facture tinyint default 0,
|
||||||
fk_account integer, -- bank account
|
fk_account integer, -- bank account
|
||||||
fk_currency varchar(3), -- currency code
|
fk_currency varchar(3), -- currency code
|
||||||
fk_cond_reglement integer, -- condition de reglement
|
fk_cond_reglement integer, -- condition de reglement
|
||||||
fk_mode_reglement integer, -- mode de reglement
|
fk_mode_reglement integer, -- mode de reglement
|
||||||
|
|
||||||
date_livraison date default NULL,
|
date_livraison date default NULL,
|
||||||
fk_shipping_method integer, -- shipping method id
|
fk_shipping_method integer, -- shipping method id
|
||||||
fk_warehouse integer default NULL,
|
fk_warehouse integer default NULL,
|
||||||
fk_availability integer NULL,
|
fk_availability integer NULL,
|
||||||
fk_input_reason integer, -- id coming from c_input_reason, '0' if no defined
|
fk_input_reason integer, -- id coming from c_input_reason, '0' if no defined
|
||||||
fk_delivery_address integer, -- delivery address (deprecated)
|
fk_delivery_address integer, -- delivery address (deprecated)
|
||||||
fk_incoterms integer, -- for incoterms
|
fk_incoterms integer, -- for incoterms
|
||||||
location_incoterms varchar(255), -- for incoterms
|
location_incoterms varchar(255), -- for incoterms
|
||||||
import_key varchar(14),
|
import_key varchar(14),
|
||||||
extraparams varchar(255), -- for stock other parameters with json format
|
extraparams varchar(255), -- for stock other parameters with json format
|
||||||
|
|
||||||
fk_multicurrency integer,
|
fk_multicurrency integer,
|
||||||
multicurrency_code varchar(255),
|
multicurrency_code varchar(255),
|
||||||
multicurrency_tx double(24,8) DEFAULT 1,
|
multicurrency_tx double(24,8) DEFAULT 1,
|
||||||
multicurrency_total_ht double(24,8) DEFAULT 0,
|
multicurrency_total_ht double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_tva double(24,8) DEFAULT 0,
|
multicurrency_total_tva double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_ttc double(24,8) DEFAULT 0
|
multicurrency_total_ttc double(24,8) DEFAULT 0
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -21,58 +21,58 @@
|
|||||||
|
|
||||||
create table llx_commande_fournisseur
|
create table llx_commande_fournisseur
|
||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
|
||||||
ref varchar(255) NOT NULL, -- order number
|
ref varchar(255) NOT NULL, -- order number
|
||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
|
||||||
ref_ext varchar(64), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(64), -- reference into an external system (not used by dolibarr)
|
||||||
ref_supplier varchar(255),
|
ref_supplier varchar(255),
|
||||||
|
|
||||||
fk_soc integer NOT NULL,
|
fk_soc integer NOT NULL,
|
||||||
fk_projet integer DEFAULT 0, -- project id
|
fk_projet integer DEFAULT 0, -- project id
|
||||||
|
|
||||||
tms timestamp,
|
tms timestamp,
|
||||||
date_creation datetime, -- date de creation
|
date_creation datetime, -- date de creation
|
||||||
date_valid datetime, -- date de validation
|
date_valid datetime, -- date de validation
|
||||||
date_approve datetime, -- date de approve
|
date_approve datetime, -- date de approve
|
||||||
date_approve2 datetime, -- date de approve 2 (when double approving is accivated)
|
date_approve2 datetime, -- date de approve 2 (when double approving is accivated)
|
||||||
date_commande date, -- date de la commande
|
date_commande date, -- date de la commande
|
||||||
fk_user_author integer, -- user making creation
|
fk_user_author integer, -- user making creation
|
||||||
fk_user_modif integer, -- user making last change
|
fk_user_modif integer, -- user making last change
|
||||||
fk_user_valid integer, -- user validating
|
fk_user_valid integer, -- user validating
|
||||||
fk_user_approve integer, -- user approving
|
fk_user_approve integer, -- user approving
|
||||||
fk_user_approve2 integer, -- user approving 2 (when double approving is accivated)
|
fk_user_approve2 integer, -- user approving 2 (when double approving is accivated)
|
||||||
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,
|
||||||
localtax1 double(24,8) default 0,
|
localtax1 double(24,8) default 0,
|
||||||
localtax2 double(24,8) default 0,
|
localtax2 double(24,8) default 0,
|
||||||
total_ht double(24,8) default 0,
|
total_ht double(24,8) default 0,
|
||||||
total_ttc double(24,8) default 0,
|
total_ttc double(24,8) default 0,
|
||||||
note_private text,
|
note_private text,
|
||||||
note_public text,
|
note_public text,
|
||||||
model_pdf varchar(255),
|
model_pdf varchar(255),
|
||||||
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
||||||
|
|
||||||
date_livraison datetime default NULL,
|
date_livraison datetime default NULL,
|
||||||
fk_account integer, -- bank account
|
fk_account integer, -- bank account
|
||||||
fk_cond_reglement integer, -- condition de reglement
|
fk_cond_reglement integer, -- condition de reglement
|
||||||
fk_mode_reglement integer, -- mode de reglement
|
fk_mode_reglement integer, -- mode de reglement
|
||||||
fk_input_method integer default 0, -- id coming from c_input_reason, '0' if no defined
|
fk_input_method integer default 0, -- id coming from c_input_reason, '0' if no defined
|
||||||
fk_incoterms integer, -- for incoterms
|
fk_incoterms integer, -- for incoterms
|
||||||
location_incoterms varchar(255), -- for incoterms
|
location_incoterms varchar(255), -- for incoterms
|
||||||
import_key varchar(14),
|
import_key varchar(14),
|
||||||
extraparams varchar(255), -- for stock other parameters with json format
|
extraparams varchar(255), -- for stock other parameters with json format
|
||||||
|
|
||||||
fk_multicurrency integer,
|
fk_multicurrency integer,
|
||||||
multicurrency_code varchar(255),
|
multicurrency_code varchar(255),
|
||||||
multicurrency_tx double(24,8) DEFAULT 1,
|
multicurrency_tx double(24,8) DEFAULT 1,
|
||||||
multicurrency_total_ht double(24,8) DEFAULT 0,
|
multicurrency_total_ht double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_tva double(24,8) DEFAULT 0,
|
multicurrency_total_tva double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_ttc double(24,8) DEFAULT 0
|
multicurrency_total_ttc double(24,8) DEFAULT 0
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
-- ===================================================================
|
-- ===================================================================
|
||||||
-- Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
-- Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
-- Copyright (C) 2007-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
-- Copyright (C) 2007-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
-- Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es>
|
-- Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
-- Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
-- Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
--
|
--
|
||||||
-- This program is free software; you can redistribute it and/or modify
|
-- 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
|
-- it under the terms of the GNU General Public License as published by
|
||||||
@ -23,39 +23,39 @@ create table llx_commande_fournisseurdet
|
|||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
fk_commande integer NOT NULL,
|
fk_commande integer NOT NULL,
|
||||||
fk_parent_line integer NULL,
|
fk_parent_line integer NULL,
|
||||||
fk_product integer,
|
fk_product integer,
|
||||||
ref varchar(50), -- supplier product ref
|
ref varchar(50), -- supplier product ref
|
||||||
label varchar(255), -- product label
|
label varchar(255), -- product label
|
||||||
description text,
|
description text,
|
||||||
vat_src_code varchar(10) DEFAULT '', -- Vat code used as source of vat fields. Not strict foreign key here.
|
vat_src_code varchar(10) DEFAULT '', -- Vat code used as source of vat fields. Not strict foreign key here.
|
||||||
tva_tx double(6,3) DEFAULT 0, -- taux tva
|
tva_tx double(6,3) DEFAULT 0, -- taux tva
|
||||||
localtax1_tx double(6,3) DEFAULT 0, -- localtax1 rate
|
localtax1_tx double(6,3) DEFAULT 0, -- localtax1 rate
|
||||||
localtax1_type varchar(10) NULL, -- localtax1 type
|
localtax1_type varchar(10) NULL, -- localtax1 type
|
||||||
localtax2_tx double(6,3) DEFAULT 0, -- localtax2 rate
|
localtax2_tx double(6,3) DEFAULT 0, -- localtax2 rate
|
||||||
localtax2_type varchar(10) NULL, -- localtax2 type
|
localtax2_type varchar(10) NULL, -- localtax2 type
|
||||||
qty real, -- quantity
|
qty real, -- quantity
|
||||||
remise_percent real DEFAULT 0, -- pourcentage de remise
|
remise_percent real DEFAULT 0, -- pourcentage de remise
|
||||||
remise real DEFAULT 0, -- montant de la remise
|
remise real DEFAULT 0, -- montant de la remise
|
||||||
subprice double(24,8) DEFAULT 0, -- prix unitaire
|
subprice double(24,8) DEFAULT 0, -- prix unitaire
|
||||||
total_ht double(24,8) DEFAULT 0, -- Total HT de la ligne toute quantite et incluant remise ligne et globale
|
total_ht double(24,8) DEFAULT 0, -- Total HT de la ligne toute quantite et incluant remise ligne et globale
|
||||||
total_tva double(24,8) DEFAULT 0, -- Total TVA de la ligne toute quantite et incluant remise ligne et globale
|
total_tva double(24,8) DEFAULT 0, -- Total TVA de la ligne toute quantite et incluant remise ligne et globale
|
||||||
total_localtax1 double(24,8) DEFAULT 0, -- Total Local Tax 1
|
total_localtax1 double(24,8) DEFAULT 0, -- Total Local Tax 1
|
||||||
total_localtax2 double(24,8) DEFAULT 0, -- Total Local Tax 2
|
total_localtax2 double(24,8) DEFAULT 0, -- Total Local Tax 2
|
||||||
total_ttc double(24,8) DEFAULT 0, -- Total TTC de la ligne toute quantite et incluant remise ligne et globale
|
total_ttc double(24,8) DEFAULT 0, -- Total TTC de la ligne toute quantite et incluant remise ligne et globale
|
||||||
product_type integer DEFAULT 0,
|
product_type integer DEFAULT 0,
|
||||||
date_start datetime DEFAULT NULL, -- date debut si service
|
date_start datetime DEFAULT NULL, -- date debut si service
|
||||||
date_end datetime DEFAULT NULL, -- date fin si service
|
date_end datetime DEFAULT NULL, -- date fin si service
|
||||||
info_bits integer DEFAULT 0, -- TVA NPR ou non
|
info_bits integer DEFAULT 0, -- TVA NPR ou non
|
||||||
special_code integer DEFAULT 0, -- code pour les lignes speciales
|
special_code integer DEFAULT 0, -- code pour les lignes speciales
|
||||||
rang integer DEFAULT 0,
|
rang integer DEFAULT 0,
|
||||||
import_key varchar(14),
|
import_key varchar(14),
|
||||||
fk_unit integer DEFAULT NULL,
|
fk_unit integer DEFAULT NULL,
|
||||||
|
|
||||||
fk_multicurrency integer,
|
fk_multicurrency integer,
|
||||||
multicurrency_code varchar(255),
|
multicurrency_code varchar(255),
|
||||||
multicurrency_subprice double(24,8) DEFAULT 0,
|
multicurrency_subprice double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_ht double(24,8) DEFAULT 0,
|
multicurrency_total_ht double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_tva double(24,8) DEFAULT 0,
|
multicurrency_total_tva double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_ttc double(24,8) DEFAULT 0
|
multicurrency_total_ttc double(24,8) DEFAULT 0
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -30,42 +30,42 @@ create table llx_commandedet
|
|||||||
description text,
|
description text,
|
||||||
vat_src_code varchar(10) DEFAULT '', -- Vat code used as source of vat fields. Not strict foreign key here.
|
vat_src_code varchar(10) DEFAULT '', -- Vat code used as source of vat fields. Not strict foreign key here.
|
||||||
tva_tx double(6,3), -- Vat rate
|
tva_tx double(6,3), -- Vat rate
|
||||||
localtax1_tx double(6,3) DEFAULT 0, -- localtax1 rate
|
localtax1_tx double(6,3) DEFAULT 0, -- localtax1 rate
|
||||||
localtax1_type varchar(10) NULL, -- localtax1 type
|
localtax1_type varchar(10) NULL, -- localtax1 type
|
||||||
localtax2_tx double(6,3) DEFAULT 0, -- localtax2 rate
|
localtax2_tx double(6,3) DEFAULT 0, -- localtax2 rate
|
||||||
localtax2_type varchar(10) NULL, -- localtax2 type
|
localtax2_type varchar(10) NULL, -- localtax2 type
|
||||||
qty real, -- quantity
|
qty real, -- quantity
|
||||||
remise_percent real DEFAULT 0, -- pourcentage de remise
|
remise_percent real DEFAULT 0, -- pourcentage de remise
|
||||||
remise real DEFAULT 0, -- montant de la remise
|
remise real DEFAULT 0, -- montant de la remise
|
||||||
fk_remise_except integer NULL, -- Lien vers table des remises fixes
|
fk_remise_except integer NULL, -- Lien vers table des remises fixes
|
||||||
price real, -- prix final
|
price real, -- prix final
|
||||||
subprice double(24,8) DEFAULT 0, -- P.U. HT (exemple 100)
|
subprice double(24,8) DEFAULT 0, -- P.U. HT (exemple 100)
|
||||||
total_ht double(24,8) DEFAULT 0, -- Total HT de la ligne toute quantite et incluant remise ligne et globale
|
total_ht double(24,8) DEFAULT 0, -- Total HT de la ligne toute quantite et incluant remise ligne et globale
|
||||||
total_tva double(24,8) DEFAULT 0, -- Total TVA de la ligne toute quantite et incluant remise ligne et globale
|
total_tva double(24,8) DEFAULT 0, -- Total TVA de la ligne toute quantite et incluant remise ligne et globale
|
||||||
total_localtax1 double(24,8) DEFAULT 0, -- Total LocalTax1
|
total_localtax1 double(24,8) DEFAULT 0, -- Total LocalTax1
|
||||||
total_localtax2 double(24,8) DEFAULT 0, -- Total LocalTax2
|
total_localtax2 double(24,8) DEFAULT 0, -- Total LocalTax2
|
||||||
total_ttc double(24,8) DEFAULT 0, -- Total TTC de la ligne toute quantite et incluant remise ligne et globale
|
total_ttc double(24,8) DEFAULT 0, -- Total TTC de la ligne toute quantite et incluant remise ligne et globale
|
||||||
product_type integer DEFAULT 0,
|
product_type integer DEFAULT 0,
|
||||||
date_start datetime DEFAULT NULL, -- date debut si service
|
date_start datetime DEFAULT NULL, -- date debut si service
|
||||||
date_end datetime DEFAULT NULL, -- date fin si service
|
date_end datetime DEFAULT NULL, -- date fin si service
|
||||||
info_bits integer DEFAULT 0, -- TVA NPR ou non
|
info_bits integer DEFAULT 0, -- TVA NPR ou non
|
||||||
|
|
||||||
buy_price_ht double(24,8) DEFAULT 0, -- buying price
|
buy_price_ht double(24,8) DEFAULT 0, -- buying price
|
||||||
fk_product_fournisseur_price integer DEFAULT NULL, -- reference of supplier price when line was added (may be used to update buy_price_ht current price when future invoice will be created)
|
fk_product_fournisseur_price integer DEFAULT NULL, -- reference of supplier price when line was added (may be used to update buy_price_ht current price when future invoice will be created)
|
||||||
|
|
||||||
special_code integer DEFAULT 0, -- code pour les lignes speciales
|
special_code integer DEFAULT 0, -- code pour les lignes speciales
|
||||||
rang integer DEFAULT 0,
|
rang integer DEFAULT 0,
|
||||||
fk_unit integer DEFAULT NULL, -- lien vers table des unités
|
fk_unit integer DEFAULT NULL, -- lien vers table des unités
|
||||||
import_key varchar(14),
|
import_key varchar(14),
|
||||||
|
|
||||||
fk_commandefourndet integer DEFAULT NULL, -- link to detail line of commande fourn (resplenish)
|
fk_commandefourndet integer DEFAULT NULL, -- link to detail line of commande fourn (resplenish)
|
||||||
|
|
||||||
fk_multicurrency integer,
|
fk_multicurrency integer,
|
||||||
multicurrency_code varchar(255),
|
multicurrency_code varchar(255),
|
||||||
multicurrency_subprice double(24,8) DEFAULT 0,
|
multicurrency_subprice double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_ht double(24,8) DEFAULT 0,
|
multicurrency_total_ht double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_tva double(24,8) DEFAULT 0,
|
multicurrency_total_tva double(24,8) DEFAULT 0,
|
||||||
multicurrency_total_ttc double(24,8) DEFAULT 0
|
multicurrency_total_ttc double(24,8) DEFAULT 0
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|||||||
@ -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),
|
||||||
|
|||||||
@ -18,17 +18,17 @@
|
|||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
CREATE TABLE llx_expensereport_rules (
|
CREATE TABLE llx_expensereport_rules (
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
datec datetime DEFAULT NULL,
|
datec datetime DEFAULT NULL,
|
||||||
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,
|
||||||
fk_c_type_fees integer NOT NULL,
|
fk_c_type_fees integer NOT NULL,
|
||||||
code_expense_rules_type varchar(50) NOT NULL,
|
code_expense_rules_type varchar(50) NOT NULL,
|
||||||
is_for_all tinyint DEFAULT '0',
|
is_for_all tinyint DEFAULT '0',
|
||||||
entity integer DEFAULT 1
|
entity integer DEFAULT 1
|
||||||
) ENGINE=InnoDB
|
) ENGINE=InnoDB
|
||||||
@ -23,24 +23,24 @@ create table llx_loan
|
|||||||
entity integer DEFAULT 1 NOT NULL,
|
entity integer DEFAULT 1 NOT NULL,
|
||||||
datec datetime,
|
datec datetime,
|
||||||
tms timestamp,
|
tms timestamp,
|
||||||
|
|
||||||
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,
|
||||||
rate double NOT NULL,
|
rate double NOT NULL,
|
||||||
|
|
||||||
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,
|
||||||
|
|
||||||
accountancy_account_capital varchar(32),
|
accountancy_account_capital varchar(32),
|
||||||
accountancy_account_insurance varchar(32),
|
accountancy_account_insurance varchar(32),
|
||||||
accountancy_account_interest varchar(32),
|
accountancy_account_interest varchar(32),
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -19,19 +19,19 @@
|
|||||||
|
|
||||||
create table llx_paiementfourn
|
create table llx_paiementfourn
|
||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
ref varchar(30),
|
ref varchar(30),
|
||||||
entity integer DEFAULT 1,
|
entity integer DEFAULT 1,
|
||||||
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
|
||||||
num_paiement varchar(50), -- numero de paiement (cheque)
|
num_paiement varchar(50), -- numero de paiement (cheque)
|
||||||
note text,
|
note text,
|
||||||
fk_bank integer NOT NULL,
|
fk_bank integer NOT NULL,
|
||||||
statut smallint NOT NULL DEFAULT 0,
|
statut smallint NOT NULL DEFAULT 0,
|
||||||
model_pdf varchar(255)
|
model_pdf varchar(255)
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -24,13 +24,13 @@ 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,
|
||||||
note_public text,
|
note_public text,
|
||||||
fk_bank integer NOT NULL,
|
fk_bank integer NOT NULL,
|
||||||
fk_user_creat integer, -- creation user
|
fk_user_creat integer, -- creation user
|
||||||
fk_user_modif integer -- last modification user
|
fk_user_modif integer -- last modification user
|
||||||
|
|||||||
@ -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),
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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),
|
||||||
|
|||||||
@ -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, --
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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),
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 #####
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 مع قيمة الحد الأقصى لعدد من رسائل البريد الإلكتروني التي تريد إرسالها من خلال هذه الدورة.
|
||||||
|
|||||||
@ -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=الثلاثاء
|
||||||
|
|||||||
@ -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=معدل ضريبة القيمة المضافة لاستخدامه في اشتراكات
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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=ربط طرف ثالث آخر
|
||||||
|
|||||||
@ -13,3 +13,5 @@ TJM=Average daily rate
|
|||||||
CurrentSalary=الراتب الحالي
|
CurrentSalary=الراتب الحالي
|
||||||
THMDescription=يمكن استخدام هذه القيمة لحساب تكلفة الوقت المستهلك في المشروع المدخل من قبل المستخدمين إذا تم استخدام وحدة مشروع
|
THMDescription=يمكن استخدام هذه القيمة لحساب تكلفة الوقت المستهلك في المشروع المدخل من قبل المستخدمين إذا تم استخدام وحدة مشروع
|
||||||
TJMDescription=هذه القيمة هي حاليا فقط كمعلومات وليس لاستخدامها في أي حساب
|
TJMDescription=هذه القيمة هي حاليا فقط كمعلومات وليس لاستخدامها في أي حساب
|
||||||
|
LastSalaries=Latest %s salary payments
|
||||||
|
AllSalaries=All salary payments
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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=لا يوجد تقرير مصروفات تعلن بعد
|
||||||
|
|||||||
@ -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><?php ?></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><?php dolIncludeHtmlContent($websitekey.'/alias_of_content_to_include.php'); ?></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><a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"></strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong><a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"></strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong><a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"></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><a href="/viewimage.php?modulepart=medias&file=relative_dir/filename.ext"></strong>
|
YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong><?php ?></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><?php dolIncludeHtmlContent($websitekey.'/alias_of_container_to_include.php'); ?></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><a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"></strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong><a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"></strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong><a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"></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><a href="/viewimage.php?modulepart=medias&file=relative_dir/filename.ext"></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
|
||||||
|
|||||||
@ -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=Да не се показват връзката "Забравена парола" на страницата за вход
|
DisableForgetPasswordLinkOnLogonPage=Да не се показват връзката "Забравена парола" на страницата за вход
|
||||||
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 #####
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 - Други.
|
||||||
|
|||||||
@ -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=Вторник
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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=Свързано с друг контрагент
|
||||||
|
|||||||
@ -13,3 +13,5 @@ TJM=Average daily rate
|
|||||||
CurrentSalary=Сегашна заплата
|
CurrentSalary=Сегашна заплата
|
||||||
THMDescription=Тази стойност може да използва за изчисляване на отнето време по проект отделено от потребителите ако модул проект се използва
|
THMDescription=Тази стойност може да използва за изчисляване на отнето време по проект отделено от потребителите ако модул проект се използва
|
||||||
TJMDescription=Тази стойност е само сега като информация и не се използва за никакво изчисление
|
TJMDescription=Тази стойност е само сега като информация и не се използва за никакво изчисление
|
||||||
|
LastSalaries=Latest %s salary payments
|
||||||
|
AllSalaries=All salary payments
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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=Няма все още деклариран доклад за разходи
|
||||||
|
|||||||
@ -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><?php ?></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><?php dolIncludeHtmlContent($websitekey.'/alias_of_content_to_include.php'); ?></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><a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"></strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong><a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"></strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong><a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"></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><a href="/viewimage.php?modulepart=medias&file=relative_dir/filename.ext"></strong>
|
YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong><?php ?></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><?php dolIncludeHtmlContent($websitekey.'/alias_of_container_to_include.php'); ?></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><a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext"></strong><br>For same file into documents/ecm (open access using the sharing hash key), syntax is:<br><strong><a href="/document.php?modulepart=ecm&file=relative_dir/filename.ext&hashp=publicsharekeyoffile"></strong><br>For a file into documents/media (open directory for public access), syntax is:<br><strong><a href="/document.php?modulepart=medias&file=relative_dir/filename.ext"></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><a href="/viewimage.php?modulepart=medias&file=relative_dir/filename.ext"></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
|
||||||
|
|||||||
@ -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 #####
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user