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.* *****
|
||||
For users:
|
||||
|
||||
For developers:
|
||||
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 ressource list in popup in gantt view
|
||||
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 which is an order here
|
||||
FIX: hook formObjectOptions() must use $expe and not $object
|
||||
FIX: make of link to other object during creation
|
||||
FIX: Missing function getLinesArray
|
||||
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/nusoap/lib/Mail`;
|
||||
$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/phpoffice/phpexcel/.gitattributes`;
|
||||
$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/unitTests`;
|
||||
$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/freefont-*`;
|
||||
$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/tools`;
|
||||
$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 "find $BUILDROOT/$PROJECT/htdocs/custom/* -type d -exec rm -fr {} \\;\n";
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
|
||||
* Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013-2017 Alexandre Spangaro <aspangaro@zendsi.com>
|
||||
/* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
|
||||
* Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013-2017 Alexandre Spangaro <aspangaro@zendsi.com>
|
||||
* Copyright (C) 2016-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* 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_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_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")) {
|
||||
$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_start = GETPOST('search_accountancy_code_start', 'alpha');
|
||||
if ($search_accountancy_code_start == - 1) {
|
||||
$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_start = GETPOST('search_accountancy_aux_code_start', 'alpha');
|
||||
if ($search_accountancy_aux_code_start == - 1) {
|
||||
$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'));
|
||||
}
|
||||
|
||||
$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('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
|
||||
{
|
||||
$search_mvt_num = '';
|
||||
@ -128,6 +145,10 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
|
||||
$search_ledger_code = '';
|
||||
$search_date_start = '';
|
||||
$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.
|
||||
@ -196,6 +217,26 @@ if (! empty($search_mvt_num)) {
|
||||
$filter['t.piece_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') {
|
||||
|
||||
@ -370,137 +411,288 @@ print '<div class="inline-block divButAction"><a class="butActionDelete" name="b
|
||||
|
||||
print '</div>';
|
||||
|
||||
print '<div class="div-table-responsive">';
|
||||
print '<table class="noborder" width="100%">';
|
||||
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
|
||||
$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 '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="' . dol_escape_htmltag($search_mvt_num) . '"></td>';
|
||||
print '<td class="liste_titre 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 '<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))
|
||||
// Movement number
|
||||
if (! empty($arrayfields['t.piece_num']['checked']))
|
||||
{
|
||||
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>';
|
||||
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))
|
||||
// Ref document
|
||||
if (! empty($arrayfields['t.doc_ref']['checked']))
|
||||
{
|
||||
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>';
|
||||
print '</td>';
|
||||
print '<td class="liste_titre">';
|
||||
print '<input type="text" size="7" class="flat" name="search_mvt_label" value="' . $search_mvt_label . '"/>';
|
||||
print '</td>';
|
||||
print '<td class="liste_titre center"> </td>';
|
||||
print '<td class="liste_titre center"> </td>';
|
||||
print '<td class="liste_titre center"><input type="text" name="search_ledger_code" size="3" value="' . $search_ledger_code . '"></td>';
|
||||
// Subledger account
|
||||
if (! empty($arrayfields['t.subledger_account']['checked']))
|
||||
{
|
||||
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);
|
||||
}
|
||||
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">';
|
||||
$searchpicto=$form->showFilterButtons();
|
||||
print $searchpicto;
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
print "</tr>\n";
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||
$checkpicto='';
|
||||
if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1);
|
||||
print_liste_field_titre($checkpicto, $_SERVER["PHP_SELF"], "", $param, "", 'width="60" align="center"', $sortfield, $sortorder);
|
||||
if (! empty($arrayfields['t.piece_num']['checked'])) print_liste_field_titre("TransactionNumShort", $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $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);
|
||||
if (! empty($arrayfields['t.doc_ref']['checked'])) print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
|
||||
if (! empty($arrayfields['t.numero_compte']['checked'])) print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
|
||||
if (! empty($arrayfields['t.subledger_account']['checked'])) print_liste_field_titre("SubledgerAccount", $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder);
|
||||
if (! empty($arrayfields['t.label_operation']['checked'])) print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
|
||||
if (! empty($arrayfields['t.debit']['checked'])) print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $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);
|
||||
if (! empty($arrayfields['t.code_journal']['checked'])) print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||
if (! empty($arrayfields['t.date_creation']['checked'])) print_liste_field_titre("DateCreation", $_SERVER['PHP_SELF'], "t.date_creation", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||
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($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
|
||||
print "</tr>\n";
|
||||
|
||||
|
||||
$total_debit = 0;
|
||||
$total_credit = 0;
|
||||
|
||||
$i=0;
|
||||
while ($i < min($num, $limit))
|
||||
if ($num > 0)
|
||||
{
|
||||
$line = $object->lines[$i];
|
||||
$i=0;
|
||||
$totalarray=array();
|
||||
while ($i < min($num, $limit))
|
||||
{
|
||||
$line = $object->lines[$i];
|
||||
|
||||
$total_debit += $line->debit;
|
||||
$total_credit += $line->credit;
|
||||
$total_debit += $line->debit;
|
||||
$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>';
|
||||
print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>';
|
||||
print '<td class="nowrap">' . $line->doc_ref . '</td>';
|
||||
print '<td>' . length_accountg($line->numero_compte) . '</td>';
|
||||
print '<td>' . length_accounta($line->subledger_account) . '</td>';
|
||||
print '<td>' . $line->label_operation . '</td>';
|
||||
print '<td align="right">' . ($line->debit ? price($line->debit) : ''). '</td>';
|
||||
print '<td align="right">' . ($line->credit ? price($line->credit) : '') . '</td>';
|
||||
// Piece number
|
||||
if (! empty($arrayfields['t.piece_num']['checked']))
|
||||
{
|
||||
print '<td><a href="./card.php?piece_num=' . $line->piece_num . '">' . $line->piece_num . '</a></td>';
|
||||
if (! $i) $totalarray['nbfield']++;
|
||||
}
|
||||
|
||||
$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>';
|
||||
// Document date
|
||||
if (! empty($arrayfields['t.doc_date']['checked']))
|
||||
{
|
||||
print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>';
|
||||
if (! $i) $totalarray['nbfield']++;
|
||||
}
|
||||
|
||||
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>';
|
||||
print "</tr>\n";
|
||||
// Document ref
|
||||
if (! empty($arrayfields['t.doc_ref']['checked']))
|
||||
{
|
||||
print '<td class="nowrap">' . $line->doc_ref . '</td>';
|
||||
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 '</div>';
|
||||
|
||||
|
||||
@ -564,7 +564,8 @@ class BookKeeping extends CommonObject
|
||||
$sql .= " t.import_key,";
|
||||
$sql .= " t.code_journal,";
|
||||
$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 .= ' WHERE 1 = 1';
|
||||
$sql .= " AND entity IN (" . getEntity('accountancy') . ")";
|
||||
@ -603,6 +604,7 @@ class BookKeeping extends CommonObject
|
||||
$this->code_journal = $obj->code_journal;
|
||||
$this->journal_label = $obj->journal_label;
|
||||
$this->piece_num = $obj->piece_num;
|
||||
$this->date_creation = $this->db->jdate($obj->date_creation);
|
||||
}
|
||||
$this->db->free($resql);
|
||||
|
||||
@ -658,7 +660,8 @@ class BookKeeping extends CommonObject
|
||||
$sql .= " t.import_key,";
|
||||
$sql .= " t.code_journal,";
|
||||
$sql .= " t.journal_label,";
|
||||
$sql .= " t.piece_num";
|
||||
$sql .= " t.piece_num,";
|
||||
$sql .= " t.date_creation";
|
||||
// Manage filter
|
||||
$sqlwhere = array ();
|
||||
if (count($filter) > 0) {
|
||||
@ -675,6 +678,8 @@ class BookKeeping extends CommonObject
|
||||
$sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\'';
|
||||
} elseif ($key == 't.label_operation') {
|
||||
$sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\'';
|
||||
} elseif ($key == 't.date_creation>=' || $key == 't.date_creation<=') {
|
||||
$sqlwhere[] = $key . '\'' . $this->db->idate($value) . '\'';
|
||||
} else {
|
||||
$sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\'';
|
||||
}
|
||||
@ -725,6 +730,7 @@ class BookKeeping extends CommonObject
|
||||
$line->code_journal = $obj->code_journal;
|
||||
$line->journal_label = $obj->journal_label;
|
||||
$line->piece_num = $obj->piece_num;
|
||||
$line->date_creation = $obj->date_creation;
|
||||
|
||||
$this->lines[] = $line;
|
||||
}
|
||||
@ -777,7 +783,8 @@ class BookKeeping extends CommonObject
|
||||
$sql .= " t.import_key,";
|
||||
$sql .= " t.code_journal,";
|
||||
$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';
|
||||
// Manage filter
|
||||
$sqlwhere = array ();
|
||||
@ -793,6 +800,10 @@ class BookKeeping extends CommonObject
|
||||
$sqlwhere[] = $key . '=' . $value;
|
||||
} elseif ($key == 't.subledger_account' || $key == 't.numero_compte') {
|
||||
$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 {
|
||||
$sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\'';
|
||||
}
|
||||
@ -841,6 +852,7 @@ class BookKeeping extends CommonObject
|
||||
$line->code_journal = $obj->code_journal;
|
||||
$line->journal_label = $obj->journal_label;
|
||||
$line->piece_num = $obj->piece_num;
|
||||
$line->date_creation = $obj->date_creation;
|
||||
|
||||
$this->lines[] = $line;
|
||||
}
|
||||
@ -1336,6 +1348,7 @@ class BookKeeping extends CommonObject
|
||||
$this->code_journal = 'VT';
|
||||
$this->journal_label = 'Journal de vente';
|
||||
$this->piece_num = '';
|
||||
$this->date_creation = $now;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1348,7 +1361,7 @@ class BookKeeping extends CommonObject
|
||||
public function fetchPerMvt($piecenum, $mode='') {
|
||||
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 .= " WHERE piece_num = " . $piecenum;
|
||||
$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_ref = $obj->doc_ref;
|
||||
$this->doc_type = $obj->doc_type;
|
||||
$this->date_creation = $obj->date_creation;
|
||||
} else {
|
||||
$this->error = "Error " . $this->db->lasterror();
|
||||
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 .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,";
|
||||
$sql .= " numero_compte, label_compte, label_operation, debit, credit,";
|
||||
$sql .= " montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num";
|
||||
$sql .= " 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 .= " WHERE piece_num = " . $piecenum;
|
||||
$sql .= " AND entity IN (" . getEntity('accountancy') . ")";
|
||||
@ -1447,6 +1461,7 @@ class BookKeeping extends CommonObject
|
||||
$line->code_journal = $obj->code_journal;
|
||||
$line->journal_label = $obj->journal_label;
|
||||
$line->piece_num = $obj->piece_num;
|
||||
$line->date_creation = $obj->date_creation;
|
||||
|
||||
$this->linesmvt[] = $line;
|
||||
}
|
||||
@ -1785,4 +1800,5 @@ class BookKeepingLine
|
||||
public $code_journal;
|
||||
public $journal_label;
|
||||
public $piece_num;
|
||||
public $date_creation;
|
||||
}
|
||||
|
||||
@ -38,6 +38,7 @@ $langs->load("agenda");
|
||||
$action = GETPOST('action','alpha');
|
||||
$cancel = GETPOST('cancel','alpha');
|
||||
|
||||
$search_event = GETPOST('search_event', 'alpha');
|
||||
|
||||
// Get list of triggers available
|
||||
$sql = "SELECT a.rowid, a.code, a.label, a.elementtype";
|
||||
@ -70,6 +71,12 @@ else
|
||||
* 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))
|
||||
{
|
||||
$i=0;
|
||||
@ -78,10 +85,13 @@ if ($action == "save" && empty($cancel))
|
||||
|
||||
foreach ($triggers as $trigger)
|
||||
{
|
||||
$param='MAIN_AGENDA_ACTIONAUTO_'.$trigger['code'];
|
||||
$keyparam='MAIN_AGENDA_ACTIONAUTO_'.$trigger['code'];
|
||||
//print "param=".$param." - ".$_POST[$param];
|
||||
$res = dolibarr_set_const($db,$param,(GETPOST($param,'alpha')?GETPOST($param,'alpha'):''),'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
if ($search_event === '' || preg_match('/'.preg_quote($search_event,'/').'/i', $keyparam))
|
||||
{
|
||||
$res = dolibarr_set_const($db,$keyparam,(GETPOST($keyparam,'alpha')?GETPOST($keyparam,'alpha'):''),'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
}
|
||||
}
|
||||
|
||||
if (! $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="action" value="save">';
|
||||
|
||||
$param = '';
|
||||
$param.= '&search_event='.urlencode($search_event);
|
||||
|
||||
$head=agenda_prepare_head();
|
||||
|
||||
@ -151,8 +163,19 @@ print "<br>\n";
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td colspan="2">'.$langs->trans("ActionsEvents").'</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"><input type="text" name="search_event" value="'.dol_escape_htmltag($search_event).'"></td>';
|
||||
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";
|
||||
// Show each trigger (list is in c_action_trigger)
|
||||
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_UNBILLED' && empty($conf->global->FICHINTER_CLASSIFY_BILLED)) continue;
|
||||
|
||||
|
||||
print '<tr class="oddeven">';
|
||||
print '<td>'.$trigger['code'].'</td>';
|
||||
print '<td>'.$trigger['label'].'</td>';
|
||||
print '<td align="right" width="40">';
|
||||
$key='MAIN_AGENDA_ACTIONAUTO_'.$trigger['code'];
|
||||
$value=$conf->global->$key;
|
||||
print '<input class="oddeven" type="checkbox" name="'.$key.'" value="1"'.((($action=='selectall'||$value) && $action!="selectnone")?' checked':'').'>';
|
||||
print '</td></tr>'."\n";
|
||||
if ($search_event === '' || preg_match('/'.preg_quote($search_event,'/').'/i', $trigger['code']))
|
||||
{
|
||||
print '<tr class="oddeven">';
|
||||
print '<td>'.$trigger['code'].'</td>';
|
||||
print '<td>'.$trigger['label'].'</td>';
|
||||
print '<td align="right" width="40">';
|
||||
$key='MAIN_AGENDA_ACTIONAUTO_'.$trigger['code'];
|
||||
$value=$conf->global->$key;
|
||||
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";
|
||||
|
||||
// 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))
|
||||
{
|
||||
|
||||
@ -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');
|
||||
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>';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
@ -403,6 +403,9 @@ if ($mode == 'searchkey')
|
||||
|
||||
$recordtoshow=array();
|
||||
|
||||
// Search modules dirs
|
||||
$modulesdir = dolGetModulesDirs();
|
||||
|
||||
$nbempty=0;
|
||||
/*var_dump($langcode);
|
||||
var_dump($transkey);
|
||||
@ -416,22 +419,23 @@ if ($mode == 'searchkey')
|
||||
}
|
||||
else
|
||||
{
|
||||
// Load all translations keys
|
||||
foreach($conf->file->dol_document_root as $keydir => $searchdir)
|
||||
// Search into dir of modules (the $modulesdir is already a list that loop on $conf->file->dol_document_root)
|
||||
foreach($modulesdir as $keydir => $tmpsearchdir)
|
||||
{
|
||||
// Directory of translation files
|
||||
$dir_lang = $searchdir."/langs/".$langcode;
|
||||
$dir_lang_osencoded=dol_osencode($dir_lang);
|
||||
$searchdir = $tmpsearchdir; // $searchdir can be '.../htdocs/core/modules/' or '.../htdocs/custom/mymodule/core/modules/'
|
||||
|
||||
$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)
|
||||
{
|
||||
$tmpfile=preg_replace('/.lang/i', '', basename($file['name']));
|
||||
$newlang->load($tmpfile, 0, 0, '', 0); // Load translation files + database overwrite
|
||||
$newlangfileonly->load($tmpfile, 0, 0, '', 1); // Load translation files only
|
||||
//print 'After loading lang '.$tmpfile.', newlang has '.count($newlang->tab_translate).' records<br>'."\n";
|
||||
}
|
||||
$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
|
||||
$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
|
||||
|
||||
@ -128,7 +128,7 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' |
|
||||
foreach ($modulesdir as $dir)
|
||||
{
|
||||
// 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));
|
||||
if (is_resource($handle))
|
||||
@ -140,13 +140,13 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' |
|
||||
$module = strtolower($regmod[1]);
|
||||
$moduledirforclass = getModuleDirForApiClass($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
|
||||
$enabled=true;
|
||||
if (empty($conf->$moduleforenabled->enabled)) $enabled=false;
|
||||
if (empty($conf->$modulenameforenabled->enabled)) $enabled=false;
|
||||
|
||||
if ($enabled)
|
||||
{
|
||||
@ -235,7 +235,13 @@ if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/resources.json'
|
||||
if ($module == 'order') { $classname='Commande'; }
|
||||
//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', '/');
|
||||
}
|
||||
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');
|
||||
$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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -180,11 +180,11 @@ class BlockedLog
|
||||
public function setObjectData(&$object)
|
||||
{
|
||||
// Set date
|
||||
if($object->element == 'payment' || $object->element == 'payment_supplier')
|
||||
if ($object->element == 'payment' || $object->element == 'payment_supplier')
|
||||
{
|
||||
$this->date_object = $object->datepaye;
|
||||
}
|
||||
if ($object->element=='payment_salary')
|
||||
elseif ($object->element=='payment_salary')
|
||||
{
|
||||
$this->date_object = $object->datev;
|
||||
}
|
||||
|
||||
@ -35,111 +35,117 @@ function printBookmarksList($aDb, $aLangs)
|
||||
$db = $aDb;
|
||||
$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.= '<!-- 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 ($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) )
|
||||
if (! empty($conf->use_javascript_ajax)) { // Bookmark autosubmit can't work when javascript is off.
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/bookmarks/class/bookmark.class.php';
|
||||
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"]))
|
||||
{
|
||||
$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.=$obj->title;
|
||||
$ret.='</option>';
|
||||
$i++;
|
||||
}
|
||||
$url.=(dol_escape_htmltag($_SERVER["QUERY_STRING"])?'?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]):'');
|
||||
}
|
||||
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.= '</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>';
|
||||
$ret.= '<div class="menu_end"></div>'."\n";
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@ -1135,7 +1135,6 @@ class ActionComm extends CommonObject
|
||||
if ($this->type_code != 'AC_OTH_AUTO') $labeltype = $langs->trans('ActionAC_MANUAL');
|
||||
}
|
||||
|
||||
|
||||
$tooltip = '<u>' . $langs->trans('ShowAction'.$objp->code) . '</u>';
|
||||
if (! empty($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).')':'');
|
||||
}
|
||||
$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;
|
||||
}
|
||||
|
||||
@ -1530,10 +1532,18 @@ class ActionComm extends CommonObject
|
||||
return 0;
|
||||
}
|
||||
|
||||
$now = dol_now();
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
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 '<table class="centpercent cal_event'.(empty($event->transparency)?'':' cal_event_busy').'" style="'.$h;
|
||||
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).'));';
|
||||
//else print 'background-color: transparent !important; background: none; border: 1px solid #bbb;';
|
||||
//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
|
||||
*
|
||||
* @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
|
||||
* @return string New color
|
||||
*/
|
||||
|
||||
@ -3357,11 +3357,11 @@ class Propal extends CommonObject
|
||||
$linkstart.=$linkclose.'>';
|
||||
$linkend='</a>';
|
||||
|
||||
if ($withpicto)
|
||||
$result.=($linkstart.img_object(($notooltip?'':$label), $this->picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend);
|
||||
if ($withpicto && $withpicto != 2)
|
||||
$result.=' ';
|
||||
$result.=$linkstart.$this->ref.$linkend;
|
||||
$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;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@ -1906,6 +1906,40 @@ class Commande extends CommonOrder
|
||||
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
|
||||
* 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;
|
||||
|
||||
dol_syslog(get_class($this)."::loadExpeditions", LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $this->db->num_rows($result);
|
||||
$num = $this->db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
$this->expeditions[$obj->rowid] = $obj->qty;
|
||||
$i++;
|
||||
}
|
||||
$this->db->free();
|
||||
$this->db->free($resql);
|
||||
return $num;
|
||||
}
|
||||
else
|
||||
@ -1951,7 +1985,6 @@ class Commande extends CommonOrder
|
||||
$this->error=$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2002,18 +2035,18 @@ class Commande extends CommonOrder
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
|
||||
$sql.= " WHERE ps.fk_product IN (".join(',',$array_of_product).")";
|
||||
$sql.= ' GROUP BY fk_product ';
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $this->db->num_rows($result);
|
||||
$num = $this->db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
$this->stocks[$obj->fk_product] = $obj->total;
|
||||
$i++;
|
||||
}
|
||||
$this->db->free();
|
||||
$this->db->free($resql);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@ -3368,7 +3401,6 @@ class Commande extends CommonOrder
|
||||
|
||||
if ($short) return $url;
|
||||
|
||||
$picto = 'order';
|
||||
$label = '';
|
||||
|
||||
if ($user->rights->commande->lire) {
|
||||
@ -3402,9 +3434,11 @@ class Commande extends CommonOrder
|
||||
$linkstart.=$linkclose.'>';
|
||||
$linkend='</a>';
|
||||
|
||||
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;
|
||||
$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;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@ -1324,11 +1324,14 @@ class Account extends CommonObject
|
||||
if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
|
||||
}
|
||||
|
||||
$link = '<a href="'.$url.$linkclose;
|
||||
$linkend='</a>';
|
||||
$linkstart = '<a href="'.$url.$linkclose;
|
||||
$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;
|
||||
}
|
||||
|
||||
|
||||
@ -1161,9 +1161,10 @@ class Facture extends CommonInvoice
|
||||
$linkstart.=$linkclose.'>';
|
||||
$linkend='</a>';
|
||||
|
||||
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend);
|
||||
if ($withpicto && $withpicto != 2) $result.=' ';
|
||||
if ($withpicto != 2) $result.=$linkstart.($max?dol_trunc($this->ref,$max):$this->ref).$linkend;
|
||||
$result .= $linkstart;
|
||||
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.= ($max?dol_trunc($this->ref,$max):$this->ref);
|
||||
$result .= $linkend;
|
||||
|
||||
if ($addlinktonotes)
|
||||
{
|
||||
|
||||
@ -40,6 +40,7 @@ class Contact extends CommonObject
|
||||
public $element='contact';
|
||||
public $table_element='socpeople';
|
||||
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_code;
|
||||
@ -1053,8 +1054,12 @@ class Contact extends CommonObject
|
||||
$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;
|
||||
}
|
||||
|
||||
|
||||
@ -1878,7 +1878,6 @@ class Contrat extends CommonObject
|
||||
if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
|
||||
//}
|
||||
|
||||
$picto = 'contract';
|
||||
$label = '';
|
||||
|
||||
if ($user->rights->contrat->lire) {
|
||||
@ -1913,9 +1912,11 @@ class Contrat extends CommonObject
|
||||
$linkstart.=$linkclose.'>';
|
||||
$linkend='</a>';
|
||||
|
||||
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;
|
||||
$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;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@ -340,16 +340,6 @@ abstract class CommonObject
|
||||
|
||||
// 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
|
||||
* 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)
|
||||
{
|
||||
$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").'"';
|
||||
else $placeholder=' title="'.$langs->trans("Label").'"';
|
||||
$placeholder=' placeholder="'.$langs->trans("Label").'"';
|
||||
|
||||
$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>';
|
||||
if (empty($hidelabel)) print $langs->trans("RefOrLabel").' : ';
|
||||
else if ($hidelabel > 1) {
|
||||
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $placeholder=' placeholder="'.$langs->trans("RefOrLabel").'"';
|
||||
else $placeholder=' title="'.$langs->trans("RefOrLabel").'"';
|
||||
$placeholder=' placeholder="'.$langs->trans("RefOrLabel").'"';
|
||||
if ($hidelabel == 2) {
|
||||
$out.= img_picto($langs->trans("Search"), 'search');
|
||||
}
|
||||
@ -1818,8 +1817,7 @@ class Form
|
||||
}
|
||||
if (empty($hidelabel)) print $langs->trans("RefOrLabel").' : ';
|
||||
else if ($hidelabel > 1) {
|
||||
if (! empty($conf->global->MAIN_HTML5_PLACEHOLDER)) $placeholder=' placeholder="'.$langs->trans("RefOrLabel").'"';
|
||||
else $placeholder=' title="'.$langs->trans("RefOrLabel").'"';
|
||||
$placeholder=' placeholder="'.$langs->trans("RefOrLabel").'"';
|
||||
if ($hidelabel == 2) {
|
||||
print img_picto($langs->trans("Search"), 'search');
|
||||
}
|
||||
@ -2566,6 +2564,8 @@ class Form
|
||||
|
||||
$this->db->free($result);
|
||||
|
||||
$out.=ajax_combobox($htmlname);
|
||||
|
||||
if (empty($outputmode)) return $out;
|
||||
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='';
|
||||
break;
|
||||
case 'alpha':
|
||||
$out=trim($out);
|
||||
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
||||
// '../' is dangerous because it allows dir transversals
|
||||
if (preg_match('/"/',$out)) $out='';
|
||||
else if (preg_match('/\.\.\//',$out)) $out='';
|
||||
if (! is_array($out))
|
||||
{
|
||||
$out=trim($out);
|
||||
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
||||
// '../' is dangerous because it allows dir transversals
|
||||
if (preg_match('/"/',$out)) $out='';
|
||||
else if (preg_match('/\.\.\//',$out)) $out='';
|
||||
}
|
||||
break;
|
||||
case 'san_alpha':
|
||||
$out=filter_var($out,FILTER_SANITIZE_STRING);
|
||||
break;
|
||||
case 'aZ':
|
||||
$out=trim($out);
|
||||
if (preg_match('/[^a-z]+/i',$out)) $out='';
|
||||
if (! is_array($out))
|
||||
{
|
||||
$out=trim($out);
|
||||
if (preg_match('/[^a-z]+/i',$out)) $out='';
|
||||
}
|
||||
break;
|
||||
case 'aZ09':
|
||||
$out=trim($out);
|
||||
if (preg_match('/[^a-z0-9_\-\.]+/i',$out)) $out='';
|
||||
if (! is_array($out))
|
||||
{
|
||||
$out=trim($out);
|
||||
if (preg_match('/[^a-z0-9_\-\.]+/i',$out)) $out='';
|
||||
}
|
||||
break;
|
||||
case '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);
|
||||
break;
|
||||
case 'alphanohtml': // Recommended for search params
|
||||
$out=trim($out);
|
||||
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
||||
// '../' is dangerous because it allows dir transversals
|
||||
if (preg_match('/"/',$out)) $out='';
|
||||
else if (preg_match('/\.\.\//',$out)) $out='';
|
||||
$out=dol_string_nohtmltag($out);
|
||||
if (! is_array($out))
|
||||
{
|
||||
$out=trim($out);
|
||||
// '"' is dangerous because param in url can close the href= or src= and add javascript functions.
|
||||
// '../' is dangerous because it allows dir transversals
|
||||
if (preg_match('/"/',$out)) $out='';
|
||||
else if (preg_match('/\.\.\//',$out)) $out='';
|
||||
$out=dol_string_nohtmltag($out);
|
||||
}
|
||||
break;
|
||||
case 'custom':
|
||||
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)
|
||||
{
|
||||
// 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 (! $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')
|
||||
{
|
||||
// TODO Try to replace with strip_tags($stringtoclean)
|
||||
// TODO Try to replace with strip_tags($stringtoclean)
|
||||
$pattern = "/<[^<>]+>/";
|
||||
$stringtoclean = preg_replace('/<br[^>]*>/', "\n", $stringtoclean);
|
||||
$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).",";
|
||||
if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].",";
|
||||
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['help']) $texttoinsert.= " 'help'=>'".$val['help']."',";
|
||||
if ($val['help']) $texttoinsert.= " 'help'=>\"".preg_replace('/"/', '', $val['help'])."\","; // addslashes is escape for PHP
|
||||
if ($val['arrayofkeyval'])
|
||||
{
|
||||
$texttoinsert.= " 'arrayofkeyval'=>array(";
|
||||
@ -215,8 +215,8 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
|
||||
$pathoffiletoclasssrc=$readdir.'/class/'.strtolower($objectname).'.class.php';
|
||||
|
||||
// Edit .sql file
|
||||
$pathoffiletoeditsrc=$readdir.'/sql/llx_'.strtolower($objectname).'.sql';
|
||||
$pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($objectname).'.sql'.($readdir != $destdir ? '.new' : '');
|
||||
$pathoffiletoeditsrc=$readdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql';
|
||||
$pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.sql'.($readdir != $destdir ? '.new' : '');
|
||||
if (! dol_is_file($pathoffiletoeditsrc))
|
||||
{
|
||||
$langs->load("errors");
|
||||
@ -287,8 +287,8 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
|
||||
}
|
||||
|
||||
// Edit .key.sql file
|
||||
$pathoffiletoeditsrc=$destdir.'/sql/llx_'.strtolower($objectname).'.key.sql';
|
||||
$pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($objectname).'.key.sql'.($readdir != $destdir ? '.new' : '');
|
||||
$pathoffiletoeditsrc=$destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql';
|
||||
$pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($module).'_'.strtolower($objectname).'.key.sql'.($readdir != $destdir ? '.new' : '');
|
||||
|
||||
$contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r');
|
||||
|
||||
@ -301,7 +301,7 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
|
||||
$i++;
|
||||
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";
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,10 +61,13 @@ function commande_prepare_head(Commande $object)
|
||||
if (($conf->expedition_bon->enabled && $user->rights->expedition->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;
|
||||
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->livraison_bon->enabled) $text.=$langs->trans("Receivings");
|
||||
if ($nbReceiption > 0) $text.= ' <span class="badge">'.$nbReceiption.'</span>';
|
||||
$head[$h][1] = $text;
|
||||
$head[$h][2] = 'shipping';
|
||||
$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 $preselectedday Preselected day
|
||||
* @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
|
||||
*/
|
||||
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 $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));
|
||||
for ($i = 0 ; $i < $numlines ; $i++)
|
||||
@ -818,8 +822,8 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
|
||||
$level++;
|
||||
if ($lines[$i]->id > 0)
|
||||
{
|
||||
if ($parent == 0) projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lineswithoutlevel0, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $preselectedday, $isavailable);
|
||||
else projectLinesPerDay($inc, $lines[$i]->id, $fuser, $lines, $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, $oldprojectforbreak);
|
||||
}
|
||||
$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 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 int $oldprojectforbreak Old project id of last project break
|
||||
* @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 $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));
|
||||
|
||||
$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++)
|
||||
{
|
||||
@ -1065,8 +1073,8 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
|
||||
$level++;
|
||||
if ($lines[$i]->id > 0)
|
||||
{
|
||||
if ($parent == 0) projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, $lineswithoutlevel0, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask, $isavailable);
|
||||
else projectLinesPerWeek($inc, $firstdaytoshow, $fuser, $lines[$i]->id, $lines, $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, $oldprojectforbreak);
|
||||
}
|
||||
$level--;
|
||||
}
|
||||
|
||||
@ -182,7 +182,7 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
|
||||
else $classname = 'class="tmenu"';
|
||||
$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
|
||||
{
|
||||
$conf->global->MAIN_HTML5_PLACEHOLDER = 1;
|
||||
|
||||
|
||||
$usedbyinclude = 1; // Used into next include
|
||||
include DOL_DOCUMENT_ROOT.'/core/ajax/selectsearchbox.php';
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
|
||||
$b=new BlockedLog($this->db);
|
||||
$b->action = $action;
|
||||
$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);
|
||||
|
||||
|
||||
@ -607,13 +607,13 @@ if (empty($reshook))
|
||||
$object->fetch($id);
|
||||
$lines = $object->lines;
|
||||
$line = new ExpeditionLigne($db);
|
||||
|
||||
|
||||
$num_prod = count($lines);
|
||||
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
|
||||
foreach ($lines[$i]->details_entrepot as $details_entrepot) {
|
||||
@ -624,7 +624,7 @@ if (empty($reshook))
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
// delete single warehouse line
|
||||
$line->id = $line_id;
|
||||
@ -636,12 +636,12 @@ if (empty($reshook))
|
||||
}
|
||||
unset($_POST["lineid"]);
|
||||
}
|
||||
|
||||
|
||||
if(! $error) {
|
||||
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
|
||||
exit();
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
setEventMessages($line->error, $line->errors, 'errors');
|
||||
}
|
||||
@ -657,12 +657,12 @@ if (empty($reshook))
|
||||
$qty=0;
|
||||
$entrepot_id = 0;
|
||||
$batch_id = 0;
|
||||
|
||||
|
||||
$lines = $object->lines;
|
||||
$num_prod = count($lines);
|
||||
for ($i = 0 ; $i < $num_prod ; $i++)
|
||||
{
|
||||
if ($lines[$i]->id == $line_id)
|
||||
if ($lines[$i]->id == $line_id)
|
||||
{
|
||||
// line to update
|
||||
$line = new ExpeditionLigne($db);
|
||||
@ -680,7 +680,7 @@ if (empty($reshook))
|
||||
if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0)
|
||||
{
|
||||
// line with lot
|
||||
foreach ($lines[$i]->detail_batch as $detail_batch)
|
||||
foreach ($lines[$i]->detail_batch as $detail_batch)
|
||||
{
|
||||
$lotStock = new Productbatch($db);
|
||||
$batch="batchl".$detail_batch->fk_expeditiondet."_".$detail_batch->fk_origin_stock;
|
||||
@ -689,13 +689,17 @@ if (empty($reshook))
|
||||
$batch_qty = GETPOST($qty, 'int');
|
||||
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)
|
||||
{
|
||||
// allow update line entrepot_id if not multi warehouse shipping
|
||||
$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->batch = $lotStock->batch;
|
||||
$line->detail_batch->id = $detail_batch->id;
|
||||
@ -706,7 +710,7 @@ if (empty($reshook))
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
setEventMessages($lotStock->error, $lotStock->errors, 'errors');
|
||||
$error++;
|
||||
@ -790,7 +794,7 @@ if (empty($reshook))
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
// line without lot
|
||||
if ($lines[$i]->entrepot_id > 0)
|
||||
@ -856,7 +860,7 @@ if (empty($reshook))
|
||||
$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
|
||||
exit();
|
||||
@ -1600,7 +1604,13 @@ if ($action == 'create')
|
||||
|
||||
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>';
|
||||
|
||||
@ -2051,7 +2061,7 @@ else if ($id || $ref)
|
||||
}
|
||||
print '</td>';
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if ($object->statut <= 1)
|
||||
{
|
||||
@ -2065,7 +2075,7 @@ else if ($id || $ref)
|
||||
{
|
||||
print '<td align="left">'.$langs->trans("WarehouseSource").'</td>';
|
||||
}
|
||||
|
||||
|
||||
if (! empty($conf->productbatch->enabled))
|
||||
{
|
||||
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)
|
||||
{
|
||||
$line = new ExpeditionLigne($db);
|
||||
foreach ($lines[$i]->detail_batch as $detail_batch)
|
||||
foreach ($lines[$i]->detail_batch as $detail_batch)
|
||||
{
|
||||
print '<tr>';
|
||||
// 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);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
|
||||
}
|
||||
@ -2561,136 +2571,6 @@ else if ($id || $ref)
|
||||
$trackid = 'shi'.$object->id;
|
||||
|
||||
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">';
|
||||
$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;
|
||||
}
|
||||
|
||||
@ -2220,7 +2220,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
*/
|
||||
public $fk_expedition;
|
||||
|
||||
var $db;
|
||||
var $db;
|
||||
|
||||
// From llx_expeditiondet
|
||||
var $qty;
|
||||
@ -2232,7 +2232,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
* @var int
|
||||
*/
|
||||
public $entrepot_id;
|
||||
|
||||
|
||||
|
||||
// From llx_commandedet or llx_propaldet
|
||||
var $qty_asked;
|
||||
@ -2249,7 +2249,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
var $total_localtax1; // Total Local tax 1
|
||||
var $total_localtax2; // Total Local tax 2
|
||||
|
||||
|
||||
|
||||
|
||||
// Deprecated
|
||||
/**
|
||||
@ -2395,7 +2395,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
|
||||
/**
|
||||
* Delete shipment line.
|
||||
*
|
||||
*
|
||||
* @param User $user User that modify
|
||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||
* @return int >0 if OK, <0 if KO
|
||||
@ -2407,7 +2407,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$error=0;
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
|
||||
// delete batch expedition line
|
||||
if ($conf->productbatch->enabled)
|
||||
{
|
||||
@ -2420,7 +2420,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet";
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
@ -2436,7 +2436,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
if (! $error && ! $notrigger)
|
||||
if (! $error && ! $notrigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINESHIPPING_DELETE',$user);
|
||||
@ -2458,7 +2458,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
foreach($this->errors as $errmsg)
|
||||
{
|
||||
@ -2469,10 +2469,10 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
return -1*$error;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update a line in database
|
||||
*
|
||||
*
|
||||
* @param User $user User that modify
|
||||
* @param int $notrigger 1 = disable triggers
|
||||
* @return int < 0 if KO, > 0 if OK
|
||||
@ -2480,13 +2480,11 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
function update($user = null, $notrigger = 0)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
||||
$error=0;
|
||||
|
||||
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();
|
||||
|
||||
// Clean parameters
|
||||
@ -2496,9 +2494,9 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$batch = null;
|
||||
$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);
|
||||
$this->errors[]='ErrorBadParameters';
|
||||
@ -2560,24 +2558,24 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$this->errors[]=$this->db->lasterror()." - ExpeditionLineBatch::fetchAll";
|
||||
$error++;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
$qty += $remainingQty;
|
||||
|
||||
|
||||
//fetch lot details
|
||||
|
||||
|
||||
// fetch from product_lot
|
||||
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php';
|
||||
$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;
|
||||
$error++;
|
||||
@ -2588,6 +2586,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet_batch";
|
||||
$sql.= " WHERE fk_expeditiondet = ".$this->id;
|
||||
$sql.= " AND rowid = ".$expedition_batch_id;
|
||||
|
||||
if (!$this->db->query($sql))
|
||||
{
|
||||
$this->errors[]=$this->db->lasterror()." - sql=$sql";
|
||||
@ -2622,8 +2621,8 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$sql.= " fk_entrepot = ".$this->entrepot_id;
|
||||
$sql.= " , qty = ".$qty;
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
if (!$this->db->query($sql))
|
||||
|
||||
if (!$this->db->query($sql))
|
||||
{
|
||||
$this->errors[]=$this->db->lasterror()." - sql=$sql";
|
||||
$error++;
|
||||
@ -2641,7 +2640,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
}
|
||||
}
|
||||
}
|
||||
if (! $error && ! $notrigger)
|
||||
if (! $error && ! $notrigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINESHIPPING_UPDATE',$user);
|
||||
@ -2656,7 +2655,7 @@ class ExpeditionLigne extends CommonObjectLine
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
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->product->enabled) || ! empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||
|
||||
$langs->load('orders');
|
||||
$langs->load("companies");
|
||||
$langs->load("bills");
|
||||
$langs->load('propal');
|
||||
$langs->load('deliveries');
|
||||
$langs->load('stocks');
|
||||
$langs->load("productbatch");
|
||||
$langs->loadLangs(array('orders',"companies","bills",'propal','deliveries','stocks',"productbatch",'incoterm'));
|
||||
|
||||
$id=GETPOST('id','int'); // id of order
|
||||
$ref= GETPOST('ref','alpha');
|
||||
@ -157,6 +151,15 @@ if (empty($reshook))
|
||||
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
|
||||
if ($action == 'setshippingmethod' && $user->rights->commande->creer) {
|
||||
$object = new Commande($db);
|
||||
@ -528,7 +531,7 @@ if ($id > 0 || ! empty($ref))
|
||||
print '<table width="100%" class="nobordernopadding"><tr><td>';
|
||||
print $langs->trans('IncotermLabel');
|
||||
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 ' ';
|
||||
print '</td></tr></table>';
|
||||
print '</td>';
|
||||
|
||||
@ -1544,7 +1544,6 @@ class ExpenseReport extends CommonObject
|
||||
|
||||
if ($short) return $url;
|
||||
|
||||
$picto='trip';
|
||||
$label = '<u>' . $langs->trans("ShowExpenseReport") . '</u>';
|
||||
if (! empty($this->ref))
|
||||
$label .= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
|
||||
@ -1583,8 +1582,11 @@ class ExpenseReport extends CommonObject
|
||||
$linkstart.=$linkclose.'>';
|
||||
$linkend='</a>';
|
||||
|
||||
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend.' ');
|
||||
$result.=$linkstart.($max?dol_trunc($ref,$max):$ref).$linkend;
|
||||
$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.=($max?dol_trunc($ref,$max):$ref);
|
||||
$result .= $linkend;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@ -671,7 +671,6 @@ class Fichinter extends CommonObject
|
||||
if (! empty($this->ref))
|
||||
$label .= '<br><b>' . $langs->trans('Ref') . ':</b> '.$this->ref;
|
||||
|
||||
$picto='intervention';
|
||||
$url = DOL_URL_ROOT.'/fichinter/card.php?id='.$this->id;
|
||||
|
||||
if ($option !== 'nolink')
|
||||
@ -698,9 +697,11 @@ class Fichinter extends CommonObject
|
||||
$linkstart.=$linkclose.'>';
|
||||
$linkend='</a>';
|
||||
|
||||
if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend);
|
||||
if ($withpicto && $withpicto != 2) $result.=' ';
|
||||
if ($withpicto != 2) $result.=$linkstart.$this->ref.$linkend;
|
||||
$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;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@ -393,7 +393,7 @@ if ($object->id > 0)
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre'.(($num == 0) ? ' nobottom':'').'">';
|
||||
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>';
|
||||
|
||||
$return = array();
|
||||
|
||||
@ -1497,6 +1497,7 @@ class FactureFournisseur extends CommonInvoice
|
||||
else
|
||||
{
|
||||
$this->error=$this->line->error;
|
||||
$this->errors=$this->line->errors;
|
||||
$this->db->rollback();
|
||||
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';
|
||||
llxHeader('',$langs->trans("Order"),$help_url);
|
||||
|
||||
/* *************************************************************************** */
|
||||
/* */
|
||||
/* Mode vue et edition */
|
||||
/* */
|
||||
/* *************************************************************************** */
|
||||
|
||||
$now=dol_now();
|
||||
if ($action=='create')
|
||||
|
||||
@ -828,7 +828,7 @@ class Holiday extends CommonObject
|
||||
global $langs;
|
||||
|
||||
$result='';
|
||||
$picto='holiday';
|
||||
|
||||
$label=$langs->trans("Show").': '.$this->ref;
|
||||
|
||||
$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">';
|
||||
$linkend='</a>';
|
||||
|
||||
if ($withpicto) $result.=($linkstart.img_object($label, $picto, 'class="classfortooltip"').$linkend);
|
||||
if ($withpicto && $withpicto != 2) $result.=' ';
|
||||
if ($withpicto != 2) $result.=$linkstart.$this->ref.$linkend;
|
||||
$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;
|
||||
|
||||
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';
|
||||
|
||||
|
||||
|
||||
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 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;
|
||||
@ -474,3 +494,31 @@ UPDATE llx_accounting_system SET fk_country = 12 WHERE pcg_version = 'PCG';
|
||||
|
||||
-- May have error due to duplicate keys
|
||||
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) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||
-- Copyright (C) 2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||
-- Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
-- Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||
-- Copyright (C) 2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||
--
|
||||
-- This program is free software; you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
@ -21,20 +21,20 @@
|
||||
|
||||
create table llx_accounting_account
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
entity integer DEFAULT 1 NOT NULL,
|
||||
datec datetime,
|
||||
tms timestamp,
|
||||
fk_pcg_version varchar(32) NOT NULL,
|
||||
pcg_type varchar(20) NOT NULL,
|
||||
pcg_subtype varchar(20) 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
|
||||
label varchar(255) NOT NULL,
|
||||
fk_accounting_category integer DEFAULT 0,
|
||||
fk_user_author integer DEFAULT NULL,
|
||||
fk_user_modif integer DEFAULT NULL,
|
||||
active tinyint DEFAULT 1 NOT NULL,
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
entity integer DEFAULT 1 NOT NULL,
|
||||
datec datetime,
|
||||
tms timestamp,
|
||||
fk_pcg_version varchar(32) NOT NULL,
|
||||
pcg_type varchar(20) NOT NULL,
|
||||
pcg_subtype varchar(20) 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
|
||||
label varchar(255) NOT NULL,
|
||||
fk_accounting_category integer DEFAULT 0,
|
||||
fk_user_author integer DEFAULT NULL,
|
||||
fk_user_modif integer DEFAULT NULL,
|
||||
active tinyint DEFAULT 1 NOT NULL,
|
||||
import_key varchar(14),
|
||||
extraparams varchar(255) -- for other parameters with json format
|
||||
extraparams varchar(255) -- for other parameters with json format
|
||||
)ENGINE=innodb;
|
||||
|
||||
@ -40,7 +40,7 @@ CREATE TABLE llx_accounting_bookkeeping
|
||||
multicurrency_code varchar(255), -- FEC:Idevise
|
||||
lettering_code varchar(255), -- FEC:EcritureLet
|
||||
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_modif integer, -- | user making last change
|
||||
date_creation datetime, -- FEC:EcritureDate | creation date
|
||||
|
||||
@ -40,7 +40,7 @@ CREATE TABLE llx_accounting_bookkeeping_tmp
|
||||
multicurrency_code varchar(255), -- FEC:Idevise
|
||||
lettering_code varchar(255), -- FEC:EcritureLet
|
||||
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_modif integer, -- | user making last change
|
||||
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,
|
||||
tms timestamp,
|
||||
action varchar(50),
|
||||
amounts real NOT NULL,
|
||||
amounts double(24,8) NOT NULL,
|
||||
signature varchar(100) NOT NULL,
|
||||
signature_line varchar(100) NOT NULL,
|
||||
element varchar(50),
|
||||
|
||||
@ -25,7 +25,7 @@ create table llx_bordereau_cheque
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
ref varchar(30) NOT NULL, -- ref
|
||||
ref_ext varchar(255), -- ref_ext
|
||||
ref_ext varchar(255), -- ref_ext
|
||||
datec datetime NOT NULL,
|
||||
date_bordereau date,
|
||||
amount double(24,8) NOT NULL,
|
||||
|
||||
@ -20,25 +20,25 @@
|
||||
|
||||
create table llx_chargesociales
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
ref varchar(16), -- 'TX....'
|
||||
date_ech datetime NOT NULL, -- date echeance
|
||||
libelle varchar(80) NOT NULL,
|
||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||
tms timestamp,
|
||||
date_creation datetime, -- date de creation
|
||||
date_valid datetime, -- date de validation
|
||||
fk_user_author integer, -- user making creation
|
||||
fk_user_modif integer, -- user making last change
|
||||
fk_user_valid integer, -- user validating
|
||||
fk_type integer NOT NULL,
|
||||
fk_account integer, -- bank account
|
||||
fk_mode_reglement integer, -- mode de reglement
|
||||
amount real default 0 NOT NULL,
|
||||
paye smallint default 0 NOT NULL,
|
||||
periode date,
|
||||
fk_projet integer DEFAULT NULL,
|
||||
import_key varchar(14)
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
ref varchar(16), -- 'TX....'
|
||||
date_ech datetime NOT NULL, -- date echeance
|
||||
libelle varchar(80) NOT NULL,
|
||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||
tms timestamp,
|
||||
date_creation datetime, -- date de creation
|
||||
date_valid datetime, -- date de validation
|
||||
fk_user_author integer, -- user making creation
|
||||
fk_user_modif integer, -- user making last change
|
||||
fk_user_valid integer, -- user validating
|
||||
fk_type integer NOT NULL,
|
||||
fk_account integer, -- bank account
|
||||
fk_mode_reglement integer, -- mode de reglement
|
||||
amount double(24,8) default 0 NOT NULL,
|
||||
paye smallint default 0 NOT NULL,
|
||||
periode date,
|
||||
fk_projet integer DEFAULT NULL,
|
||||
import_key varchar(14)
|
||||
)ENGINE=innodb;
|
||||
|
||||
--
|
||||
|
||||
@ -20,63 +20,63 @@
|
||||
|
||||
create table llx_commande
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
ref varchar(30) NOT NULL, -- order reference number
|
||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
ref varchar(30) NOT NULL, -- order reference number
|
||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||
|
||||
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
||||
ref_int varchar(255), -- reference into an internal system (deprecated)
|
||||
ref_client varchar(255), -- reference for customer
|
||||
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
||||
ref_int varchar(255), -- reference into an internal system (deprecated)
|
||||
ref_client varchar(255), -- reference for customer
|
||||
|
||||
fk_soc integer NOT NULL,
|
||||
fk_projet integer DEFAULT NULL, -- projet auquel est rattache la commande
|
||||
fk_soc integer NOT NULL,
|
||||
fk_projet integer DEFAULT NULL, -- projet auquel est rattache la commande
|
||||
|
||||
tms timestamp,
|
||||
date_creation datetime, -- date de creation
|
||||
date_valid datetime, -- date de validation
|
||||
date_cloture datetime, -- date de cloture
|
||||
date_commande date, -- date de la commande
|
||||
fk_user_author integer, -- user making creation
|
||||
fk_user_modif integer, -- user making last change
|
||||
fk_user_valid integer, -- user validating
|
||||
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 ?
|
||||
fk_statut smallint default 0,
|
||||
amount_ht real default 0,
|
||||
remise_percent real default 0,
|
||||
remise_absolue real default 0,
|
||||
remise real default 0,
|
||||
tva double(24,8) default 0,
|
||||
localtax1 double(24,8) default 0, -- total localtax1
|
||||
localtax2 double(24,8) default 0, -- total localtax2
|
||||
total_ht double(24,8) default 0,
|
||||
total_ttc double(24,8) default 0,
|
||||
note_private text,
|
||||
note_public text,
|
||||
model_pdf varchar(255),
|
||||
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
||||
tms timestamp,
|
||||
date_creation datetime, -- date de creation
|
||||
date_valid datetime, -- date de validation
|
||||
date_cloture datetime, -- date de cloture
|
||||
date_commande date, -- date de la commande
|
||||
fk_user_author integer, -- user making creation
|
||||
fk_user_modif integer, -- user making last change
|
||||
fk_user_valid integer, -- user validating
|
||||
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 ?
|
||||
fk_statut smallint default 0,
|
||||
amount_ht double(24,8) default 0,
|
||||
remise_percent real default 0,
|
||||
remise_absolue real default 0,
|
||||
remise real default 0,
|
||||
tva double(24,8) default 0,
|
||||
localtax1 double(24,8) default 0, -- total localtax1
|
||||
localtax2 double(24,8) default 0, -- total localtax2
|
||||
total_ht double(24,8) default 0,
|
||||
total_ttc double(24,8) default 0,
|
||||
note_private text,
|
||||
note_public text,
|
||||
model_pdf varchar(255),
|
||||
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
||||
|
||||
facture tinyint default 0,
|
||||
fk_account integer, -- bank account
|
||||
fk_currency varchar(3), -- currency code
|
||||
fk_cond_reglement integer, -- condition de reglement
|
||||
fk_mode_reglement integer, -- mode de reglement
|
||||
facture tinyint default 0,
|
||||
fk_account integer, -- bank account
|
||||
fk_currency varchar(3), -- currency code
|
||||
fk_cond_reglement integer, -- condition de reglement
|
||||
fk_mode_reglement integer, -- mode de reglement
|
||||
|
||||
date_livraison date default NULL,
|
||||
fk_shipping_method integer, -- shipping method id
|
||||
fk_warehouse integer default NULL,
|
||||
fk_availability integer NULL,
|
||||
fk_input_reason integer, -- id coming from c_input_reason, '0' if no defined
|
||||
fk_delivery_address integer, -- delivery address (deprecated)
|
||||
fk_incoterms integer, -- for incoterms
|
||||
location_incoterms varchar(255), -- for incoterms
|
||||
import_key varchar(14),
|
||||
extraparams varchar(255), -- for stock other parameters with json format
|
||||
date_livraison date default NULL,
|
||||
fk_shipping_method integer, -- shipping method id
|
||||
fk_warehouse integer default NULL,
|
||||
fk_availability integer NULL,
|
||||
fk_input_reason integer, -- id coming from c_input_reason, '0' if no defined
|
||||
fk_delivery_address integer, -- delivery address (deprecated)
|
||||
fk_incoterms integer, -- for incoterms
|
||||
location_incoterms varchar(255), -- for incoterms
|
||||
import_key varchar(14),
|
||||
extraparams varchar(255), -- for stock other parameters with json format
|
||||
|
||||
fk_multicurrency integer,
|
||||
multicurrency_code varchar(255),
|
||||
fk_multicurrency integer,
|
||||
multicurrency_code varchar(255),
|
||||
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_ttc double(24,8) DEFAULT 0
|
||||
)ENGINE=innodb;
|
||||
|
||||
@ -21,58 +21,58 @@
|
||||
|
||||
create table llx_commande_fournisseur
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
|
||||
ref varchar(255) NOT NULL, -- order number
|
||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||
ref varchar(255) NOT NULL, -- order number
|
||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||
|
||||
ref_ext varchar(64), -- reference into an external system (not used by dolibarr)
|
||||
ref_supplier varchar(255),
|
||||
ref_ext varchar(64), -- reference into an external system (not used by dolibarr)
|
||||
ref_supplier varchar(255),
|
||||
|
||||
fk_soc integer NOT NULL,
|
||||
fk_projet integer DEFAULT 0, -- project id
|
||||
fk_soc integer NOT NULL,
|
||||
fk_projet integer DEFAULT 0, -- project id
|
||||
|
||||
tms timestamp,
|
||||
date_creation datetime, -- date de creation
|
||||
date_valid datetime, -- date de validation
|
||||
date_approve datetime, -- date de approve
|
||||
date_approve2 datetime, -- date de approve 2 (when double approving is accivated)
|
||||
date_commande date, -- date de la commande
|
||||
fk_user_author integer, -- user making creation
|
||||
fk_user_modif integer, -- user making last change
|
||||
fk_user_valid integer, -- user validating
|
||||
fk_user_approve integer, -- user approving
|
||||
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 ?
|
||||
fk_statut smallint default 0,
|
||||
billed smallint default 0,
|
||||
amount_ht real default 0,
|
||||
remise_percent real default 0,
|
||||
remise real default 0,
|
||||
tva double(24,8) default 0,
|
||||
localtax1 double(24,8) default 0,
|
||||
localtax2 double(24,8) default 0,
|
||||
total_ht double(24,8) default 0,
|
||||
total_ttc double(24,8) default 0,
|
||||
note_private text,
|
||||
note_public text,
|
||||
model_pdf varchar(255),
|
||||
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
||||
tms timestamp,
|
||||
date_creation datetime, -- date de creation
|
||||
date_valid datetime, -- date de validation
|
||||
date_approve datetime, -- date de approve
|
||||
date_approve2 datetime, -- date de approve 2 (when double approving is accivated)
|
||||
date_commande date, -- date de la commande
|
||||
fk_user_author integer, -- user making creation
|
||||
fk_user_modif integer, -- user making last change
|
||||
fk_user_valid integer, -- user validating
|
||||
fk_user_approve integer, -- user approving
|
||||
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 ?
|
||||
fk_statut smallint default 0,
|
||||
billed smallint default 0,
|
||||
amount_ht double(24,8) default 0,
|
||||
remise_percent real default 0,
|
||||
remise real default 0,
|
||||
tva double(24,8) default 0,
|
||||
localtax1 double(24,8) default 0,
|
||||
localtax2 double(24,8) default 0,
|
||||
total_ht double(24,8) default 0,
|
||||
total_ttc double(24,8) default 0,
|
||||
note_private text,
|
||||
note_public text,
|
||||
model_pdf varchar(255),
|
||||
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
||||
|
||||
date_livraison datetime default NULL,
|
||||
fk_account integer, -- bank account
|
||||
fk_cond_reglement integer, -- condition 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_incoterms integer, -- for incoterms
|
||||
location_incoterms varchar(255), -- for incoterms
|
||||
import_key varchar(14),
|
||||
extraparams varchar(255), -- for stock other parameters with json format
|
||||
date_livraison datetime default NULL,
|
||||
fk_account integer, -- bank account
|
||||
fk_cond_reglement integer, -- condition 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_incoterms integer, -- for incoterms
|
||||
location_incoterms varchar(255), -- for incoterms
|
||||
import_key varchar(14),
|
||||
extraparams varchar(255), -- for stock other parameters with json format
|
||||
|
||||
fk_multicurrency integer,
|
||||
multicurrency_code varchar(255),
|
||||
multicurrency_code varchar(255),
|
||||
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_ttc double(24,8) DEFAULT 0
|
||||
)ENGINE=innodb;
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
-- ===================================================================
|
||||
-- Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
-- Copyright (C) 2007-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
-- Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es>
|
||||
-- Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
-- Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
-- Copyright (C) 2007-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
-- Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es>
|
||||
-- Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
--
|
||||
-- This program is free software; you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
@ -23,39 +23,39 @@ create table llx_commande_fournisseurdet
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
fk_commande integer NOT NULL,
|
||||
fk_parent_line integer NULL,
|
||||
fk_parent_line integer NULL,
|
||||
fk_product integer,
|
||||
ref varchar(50), -- supplier product ref
|
||||
label varchar(255), -- product label
|
||||
ref varchar(50), -- supplier product ref
|
||||
label varchar(255), -- product label
|
||||
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
|
||||
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_type varchar(10) NULL, -- localtax2 type
|
||||
localtax2_type varchar(10) NULL, -- localtax2 type
|
||||
qty real, -- quantity
|
||||
remise_percent real DEFAULT 0, -- pourcentage de remise
|
||||
remise real DEFAULT 0, -- montant de la remise
|
||||
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_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_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
|
||||
product_type integer DEFAULT 0,
|
||||
date_start datetime DEFAULT NULL, -- date debut si service
|
||||
date_end datetime DEFAULT NULL, -- date fin si service
|
||||
info_bits integer DEFAULT 0, -- TVA NPR ou non
|
||||
special_code integer DEFAULT 0, -- code pour les lignes speciales
|
||||
rang integer DEFAULT 0,
|
||||
import_key varchar(14),
|
||||
fk_unit integer DEFAULT NULL,
|
||||
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,
|
||||
date_start datetime DEFAULT NULL, -- date debut si service
|
||||
date_end datetime DEFAULT NULL, -- date fin si service
|
||||
info_bits integer DEFAULT 0, -- TVA NPR ou non
|
||||
special_code integer DEFAULT 0, -- code pour les lignes speciales
|
||||
rang integer DEFAULT 0,
|
||||
import_key varchar(14),
|
||||
fk_unit integer DEFAULT NULL,
|
||||
|
||||
fk_multicurrency integer,
|
||||
multicurrency_code varchar(255),
|
||||
multicurrency_subprice double(24,8) DEFAULT 0,
|
||||
multicurrency_total_ht double(24,8) DEFAULT 0,
|
||||
multicurrency_total_tva double(24,8) DEFAULT 0,
|
||||
multicurrency_total_ttc double(24,8) DEFAULT 0
|
||||
fk_multicurrency integer,
|
||||
multicurrency_code varchar(255),
|
||||
multicurrency_subprice double(24,8) DEFAULT 0,
|
||||
multicurrency_total_ht double(24,8) DEFAULT 0,
|
||||
multicurrency_total_tva double(24,8) DEFAULT 0,
|
||||
multicurrency_total_ttc double(24,8) DEFAULT 0
|
||||
)ENGINE=innodb;
|
||||
|
||||
@ -30,42 +30,42 @@ create table llx_commandedet
|
||||
description text,
|
||||
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
|
||||
localtax1_tx double(6,3) DEFAULT 0, -- localtax1 rate
|
||||
localtax1_type varchar(10) NULL, -- localtax1 type
|
||||
localtax2_tx double(6,3) DEFAULT 0, -- localtax2 rate
|
||||
localtax1_tx double(6,3) DEFAULT 0, -- localtax1 rate
|
||||
localtax1_type varchar(10) NULL, -- localtax1 type
|
||||
localtax2_tx double(6,3) DEFAULT 0, -- localtax2 rate
|
||||
localtax2_type varchar(10) NULL, -- localtax2 type
|
||||
qty real, -- quantity
|
||||
remise_percent real DEFAULT 0, -- pourcentage de remise
|
||||
remise real DEFAULT 0, -- montant de la remise
|
||||
fk_remise_except integer NULL, -- Lien vers table des remises fixes
|
||||
price real, -- prix final
|
||||
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_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_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
|
||||
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_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_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
|
||||
product_type integer DEFAULT 0,
|
||||
date_start datetime DEFAULT NULL, -- date debut si service
|
||||
date_end datetime DEFAULT NULL, -- date fin si service
|
||||
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)
|
||||
|
||||
special_code integer DEFAULT 0, -- code pour les lignes speciales
|
||||
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),
|
||||
|
||||
fk_commandefourndet integer DEFAULT NULL, -- link to detail line of commande fourn (resplenish)
|
||||
|
||||
fk_multicurrency integer,
|
||||
fk_multicurrency integer,
|
||||
multicurrency_code varchar(255),
|
||||
multicurrency_subprice double(24,8) DEFAULT 0,
|
||||
multicurrency_total_ht double(24,8) DEFAULT 0,
|
||||
multicurrency_total_tva double(24,8) DEFAULT 0,
|
||||
multicurrency_total_ttc double(24,8) DEFAULT 0
|
||||
multicurrency_total_tva double(24,8) DEFAULT 0,
|
||||
multicurrency_total_ttc double(24,8) DEFAULT 0
|
||||
)ENGINE=innodb;
|
||||
|
||||
--
|
||||
|
||||
@ -28,7 +28,7 @@ create table llx_don
|
||||
tms timestamp,
|
||||
fk_statut smallint NOT NULL DEFAULT 0, -- Status of donation promise or validate
|
||||
datedon datetime, -- Date of the donation/promise
|
||||
amount real DEFAULT 0,
|
||||
amount double(24,8) DEFAULT 0,
|
||||
fk_payment integer,
|
||||
paid smallint default 0 NOT NULL,
|
||||
firstname varchar(50),
|
||||
|
||||
@ -18,17 +18,17 @@
|
||||
-- ============================================================================
|
||||
|
||||
CREATE TABLE llx_expensereport_rules (
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
datec datetime DEFAULT NULL,
|
||||
tms timestamp,
|
||||
dates datetime NOT NULL,
|
||||
datee datetime NOT NULL,
|
||||
amount numeric(24,8) NOT NULL,
|
||||
restrictive tinyint NOT NULL,
|
||||
fk_user integer DEFAULT NULL,
|
||||
fk_usergroup integer DEFAULT NULL,
|
||||
fk_c_type_fees integer NOT NULL,
|
||||
code_expense_rules_type varchar(50) NOT NULL,
|
||||
is_for_all tinyint DEFAULT '0',
|
||||
entity integer DEFAULT 1
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
datec datetime DEFAULT NULL,
|
||||
tms timestamp,
|
||||
dates datetime NOT NULL,
|
||||
datee datetime NOT NULL,
|
||||
amount double(24,8) NOT NULL,
|
||||
restrictive tinyint NOT NULL,
|
||||
fk_user integer DEFAULT NULL,
|
||||
fk_usergroup integer DEFAULT NULL,
|
||||
fk_c_type_fees integer NOT NULL,
|
||||
code_expense_rules_type varchar(50) NOT NULL,
|
||||
is_for_all tinyint DEFAULT '0',
|
||||
entity integer DEFAULT 1
|
||||
) ENGINE=InnoDB
|
||||
@ -23,24 +23,24 @@ create table llx_loan
|
||||
entity integer DEFAULT 1 NOT NULL,
|
||||
datec datetime,
|
||||
tms timestamp,
|
||||
|
||||
|
||||
label varchar(80) NOT NULL,
|
||||
fk_bank integer,
|
||||
|
||||
capital real default 0 NOT NULL,
|
||||
|
||||
capital double(24,8) default 0 NOT NULL,
|
||||
datestart date,
|
||||
dateend date,
|
||||
nbterm real,
|
||||
rate double NOT NULL,
|
||||
|
||||
note_private text,
|
||||
note_public text,
|
||||
|
||||
capital_position real default 0, -- If not a new loan, just have the position of capital
|
||||
|
||||
note_private text,
|
||||
note_public text,
|
||||
|
||||
capital_position double(24,8) default 0, -- If not a new loan, just have the position of capital
|
||||
date_position date,
|
||||
|
||||
|
||||
paid smallint default 0 NOT NULL,
|
||||
|
||||
|
||||
accountancy_account_capital varchar(32),
|
||||
accountancy_account_insurance varchar(32),
|
||||
accountancy_account_interest varchar(32),
|
||||
|
||||
@ -24,9 +24,9 @@ create table llx_loan_schedule
|
||||
datec datetime, -- creation date
|
||||
tms timestamp,
|
||||
datep datetime, -- payment date
|
||||
amount_capital real DEFAULT 0,
|
||||
amount_insurance real DEFAULT 0,
|
||||
amount_interest real DEFAULT 0,
|
||||
amount_capital double(24,8) DEFAULT 0,
|
||||
amount_insurance double(24,8) DEFAULT 0,
|
||||
amount_interest double(24,8) DEFAULT 0,
|
||||
fk_typepayment integer NOT NULL,
|
||||
num_payment varchar(50),
|
||||
note_private text,
|
||||
|
||||
@ -23,7 +23,7 @@ create table llx_paiementcharge
|
||||
datec datetime, -- date de creation
|
||||
tms timestamp,
|
||||
datep datetime, -- payment date
|
||||
amount real DEFAULT 0,
|
||||
amount double(24,8) DEFAULT 0,
|
||||
fk_typepaiement integer NOT NULL,
|
||||
num_paiement varchar(50),
|
||||
note text,
|
||||
|
||||
@ -19,19 +19,19 @@
|
||||
|
||||
create table llx_paiementfourn
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
ref varchar(30),
|
||||
entity integer DEFAULT 1,
|
||||
tms timestamp,
|
||||
datec datetime, -- date de creation de l'enregistrement
|
||||
datep datetime, -- date de paiement
|
||||
amount real DEFAULT 0, -- montant
|
||||
multicurrency_amount double(24,8) DEFAULT 0, -- multicurrency amount
|
||||
fk_user_author integer, -- auteur
|
||||
fk_paiement integer NOT NULL, -- moyen de paiement
|
||||
num_paiement varchar(50), -- numero de paiement (cheque)
|
||||
note text,
|
||||
fk_bank integer NOT NULL,
|
||||
statut smallint NOT NULL DEFAULT 0,
|
||||
model_pdf varchar(255)
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
ref varchar(30),
|
||||
entity integer DEFAULT 1,
|
||||
tms timestamp,
|
||||
datec datetime, -- date de creation de l'enregistrement
|
||||
datep datetime, -- date de paiement
|
||||
amount double(24,8) DEFAULT 0, -- montant
|
||||
multicurrency_amount double(24,8) DEFAULT 0, -- multicurrency amount
|
||||
fk_user_author integer, -- auteur
|
||||
fk_paiement integer NOT NULL, -- moyen de paiement
|
||||
num_paiement varchar(50), -- numero de paiement (cheque)
|
||||
note text,
|
||||
fk_bank integer NOT NULL,
|
||||
statut smallint NOT NULL DEFAULT 0,
|
||||
model_pdf varchar(255)
|
||||
)ENGINE=innodb;
|
||||
|
||||
@ -23,7 +23,7 @@ create table llx_payment_donation
|
||||
datec datetime, -- date de creation
|
||||
tms timestamp,
|
||||
datep datetime, -- payment date
|
||||
amount real DEFAULT 0,
|
||||
amount double(24,8) DEFAULT 0,
|
||||
fk_typepayment integer NOT NULL,
|
||||
num_payment varchar(50),
|
||||
note text,
|
||||
|
||||
@ -23,7 +23,7 @@ create table llx_payment_expensereport
|
||||
datec datetime, -- date de creation
|
||||
tms timestamp,
|
||||
datep datetime, -- payment date
|
||||
amount real DEFAULT 0,
|
||||
amount double(24,8) DEFAULT 0,
|
||||
fk_typepayment integer NOT NULL,
|
||||
num_payment varchar(50),
|
||||
note text,
|
||||
|
||||
@ -24,13 +24,13 @@ create table llx_payment_loan
|
||||
datec datetime, -- creation date
|
||||
tms timestamp,
|
||||
datep datetime, -- payment date
|
||||
amount_capital real DEFAULT 0,
|
||||
amount_insurance real DEFAULT 0,
|
||||
amount_interest real DEFAULT 0,
|
||||
amount_capital double(24,8) DEFAULT 0,
|
||||
amount_insurance double(24,8) DEFAULT 0,
|
||||
amount_interest double(24,8) DEFAULT 0,
|
||||
fk_typepayment integer NOT NULL,
|
||||
num_payment varchar(50),
|
||||
note_private text,
|
||||
note_public text,
|
||||
note_private text,
|
||||
note_public text,
|
||||
fk_bank integer NOT NULL,
|
||||
fk_user_creat integer, -- creation user
|
||||
fk_user_modif integer -- last modification user
|
||||
|
||||
@ -24,8 +24,8 @@ create table llx_payment_salary
|
||||
fk_user integer NOT NULL,
|
||||
datep date, -- date de paiement
|
||||
datev date, -- date de valeur (this field should not be here, only into bank tables)
|
||||
salary real, -- salary of user when payment was done
|
||||
amount real NOT NULL DEFAULT 0,
|
||||
salary double(24,8), -- salary of user when payment was done
|
||||
amount double(24,8) NOT NULL DEFAULT 0,
|
||||
fk_typepayment integer NOT NULL,
|
||||
num_payment varchar(50), -- ref
|
||||
label varchar(255),
|
||||
|
||||
@ -29,7 +29,7 @@ create table llx_prelevement_bons
|
||||
ref varchar(12), -- reference
|
||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||
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
|
||||
credite smallint DEFAULT 0, -- indique si le prelevement a ete credite
|
||||
note text,
|
||||
|
||||
@ -21,7 +21,7 @@ create table llx_prelevement_facture_demande
|
||||
(
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||
fk_facture integer NOT NULL,
|
||||
amount real NOT NULL,
|
||||
amount double(24,8) NOT NULL,
|
||||
date_demande datetime NOT NULL,
|
||||
traite smallint DEFAULT 0,
|
||||
date_traite datetime,
|
||||
|
||||
@ -24,7 +24,7 @@ create table llx_prelevement_lignes
|
||||
statut smallint DEFAULT 0,
|
||||
|
||||
client_nom varchar(255),
|
||||
amount real DEFAULT 0,
|
||||
amount double(24,8) DEFAULT 0,
|
||||
code_banque varchar(128),
|
||||
code_guichet varchar(6),
|
||||
number varchar(255),
|
||||
|
||||
@ -64,7 +64,7 @@ create table llx_societe
|
||||
idprof5 varchar(128), -- IDProf5: nu for france
|
||||
idprof6 varchar(128), -- IDProf6: nu for france
|
||||
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
|
||||
note_private text, --
|
||||
note_public text, --
|
||||
|
||||
@ -24,7 +24,7 @@ create table llx_subscription
|
||||
fk_adherent integer,
|
||||
dateadh datetime,
|
||||
datef date,
|
||||
subscription real,
|
||||
subscription double(24,8),
|
||||
fk_bank integer DEFAULT NULL,
|
||||
note text
|
||||
)ENGINE=innodb;
|
||||
|
||||
@ -24,7 +24,7 @@ create table llx_tva
|
||||
datec datetime, -- Create date
|
||||
datep date, -- date de paiement
|
||||
datev date, -- date de valeur
|
||||
amount real NOT NULL DEFAULT 0,
|
||||
amount double(24,8) NOT NULL DEFAULT 0,
|
||||
fk_typepayment integer NULL,
|
||||
num_payment varchar(50),
|
||||
label varchar(255),
|
||||
|
||||
@ -8,7 +8,7 @@ ACCOUNTING_EXPORT_AMOUNT=تصدير الكمية
|
||||
ACCOUNTING_EXPORT_DEVISE=Export currency
|
||||
Selectformat=حدد تنسيق للملف
|
||||
ACCOUNTING_EXPORT_PREFIX_SPEC=تحديد بادئة لاسم الملف
|
||||
ThisService=This service
|
||||
ThisService=هذه الخدمة
|
||||
ThisProduct=This product
|
||||
DefaultForService=Default for service
|
||||
DefaultForProduct=Default for product
|
||||
|
||||
@ -189,7 +189,6 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
|
||||
AutoDetectLang=اكتشاف تلقائي (لغة المتصفح)
|
||||
FeatureDisabledInDemo=الميزة معلطة في العرض التجريبي
|
||||
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.
|
||||
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.
|
||||
@ -593,7 +592,7 @@ Module5000Desc=يسمح لك لإدارة الشركات المتعددة
|
||||
Module6000Name=سير العمل
|
||||
Module6000Desc=إدارة سير العمل
|
||||
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=ترك إدارة الطلبات
|
||||
Module20000Desc=أعلن وتابع الموظفين يترك طلبات
|
||||
Module39000Name=الكثير المنتج
|
||||
@ -1130,7 +1129,7 @@ SendmailOptionMayHurtBuggedMTA=ميزة لإرسال رسائل باستخدام
|
||||
TranslationSetup=Setup of translation
|
||||
TranslationKeySearch=Search a translation key or 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"
|
||||
TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
|
||||
TranslationString=Translation string
|
||||
@ -1171,8 +1170,6 @@ RuleForGeneratedPasswords=قاعدة لتوليد كلمات السر واقتر
|
||||
DisableForgetPasswordLinkOnLogonPage=لا تظهر وصلة "نسيت كلمة المرور" على صفحة تسجيل الدخول
|
||||
UsersSetup=شاهد الإعداد وحدة
|
||||
UserMailRequired=مطلوب بريد إلكتروني لإنشاء مستخدم جديد
|
||||
DefaultCategoryCar=Default car category
|
||||
DefaultRangeNumber=Default range number
|
||||
##### HRM setup #####
|
||||
HRMSetup=HRM وحدة الإعداد
|
||||
##### Company setup #####
|
||||
|
||||
@ -70,3 +70,9 @@ Stats=إحصاءات المبيعات
|
||||
StatusProsp=احتمال وضع
|
||||
DraftPropals=صياغة مقترحات تجارية
|
||||
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
|
||||
EmployeeFirstname=Employee first name
|
||||
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
|
||||
LastHolidays=Latest %s leave requests
|
||||
AllHolidays=All leave requests
|
||||
|
||||
## Configuration du Module ##
|
||||
LastUpdateCP=Latest automatic update of leaves allocation
|
||||
|
||||
@ -99,7 +99,6 @@ NbOfCompaniesContacts=فريدة من شركات الاتصالات
|
||||
MailNoChangePossible=صادق المتلقين للمراسلة لا يمكن تغيير
|
||||
SearchAMailing=البحث البريدية
|
||||
SendMailing=إرسال البريد الإلكتروني
|
||||
SendMail=إرسال بريد إلكتروني
|
||||
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:
|
||||
MailingNeedCommand2=ولكن يمكنك إرسالها عبر الإنترنت عن طريق إضافة معلمة MAILING_LIMIT_SENDBYWEB مع قيمة الحد الأقصى لعدد من رسائل البريد الإلكتروني التي تريد إرسالها من خلال هذه الدورة.
|
||||
|
||||
@ -266,8 +266,10 @@ DateApprove2=تاريخ الموافقة (موافقة الثانية)
|
||||
RegistrationDate=Registration date
|
||||
UserCreation=Creation user
|
||||
UserModification=Modification user
|
||||
UserValidation=Validation user
|
||||
UserCreationShort=Creat. user
|
||||
UserModificationShort=Modif. user
|
||||
UserValidationShort=Valid. user
|
||||
DurationYear=سنة
|
||||
DurationMonth=شهر
|
||||
DurationWeek=أسبوع
|
||||
@ -608,6 +610,7 @@ SendByMail=أرسل عن طريق البريد الالكتروني
|
||||
MailSentBy=البريد الإلكتروني التي بعث بها
|
||||
TextUsedInTheMessageBody=هيئة البريد الإلكتروني
|
||||
SendAcknowledgementByMail=Send confirmation email
|
||||
SendMail=إرسال بريد إلكتروني
|
||||
EMail=البريد الإلكتروني
|
||||
NoEMail=أي بريد إلكتروني
|
||||
Email=Email
|
||||
@ -808,6 +811,10 @@ ModuleBuilder=Module Builder
|
||||
SetMultiCurrencyCode=Set currency
|
||||
BulkActions=Bulk actions
|
||||
ClickToShowHelp=Click to show tooltip help
|
||||
Website=Web site
|
||||
WebSites=Web sites
|
||||
ExpenseReport=تقرير حساب
|
||||
ExpenseReports=تقارير المصاريف
|
||||
HR=HR
|
||||
HRAndBank=HR and Bank
|
||||
AutomaticallyCalculated=Automatically calculated
|
||||
@ -818,6 +825,9 @@ Websites=Web sites
|
||||
Events=الأحداث
|
||||
EMailTemplates=رسائل البريد الإلكتروني قوالب
|
||||
FileNotShared=File not shared to exernal public
|
||||
Project=المشروع
|
||||
Projects=مشاريع
|
||||
Rights=الصلاحيات
|
||||
# Week day
|
||||
Monday=يوم الاثنين
|
||||
Tuesday=الثلاثاء
|
||||
|
||||
@ -168,8 +168,8 @@ TurnoverOrBudget=دوران (لشركة) أو الميزانية (على أسا
|
||||
DefaultAmount=المبلغ الافتراضي للاكتتاب
|
||||
CanEditAmount=يمكن للزائر اختيار / تحرير كمية من اكتتابها
|
||||
MEMBER_NEWFORM_PAYONLINE=القفز على صفحة الدفع عبر الانترنت المتكاملة
|
||||
ByProperties=حسب الخصائص
|
||||
MembersStatisticsByProperties=إحصائيات الأعضاء حسب الخصائص
|
||||
ByProperties=By nature
|
||||
MembersStatisticsByProperties=Members statistics by nature
|
||||
MembersByNature=هذه الشاشة تظهر لك إحصاءات عن أعضاء من الطبيعة.
|
||||
MembersByRegion=هذه الشاشة تظهر لك إحصاءات عن أعضاء حسب المنطقة.
|
||||
VATToUseForSubscriptions=معدل ضريبة القيمة المضافة لاستخدامه في اشتراكات
|
||||
|
||||
@ -47,6 +47,7 @@ SpecificationFile=File with business rules
|
||||
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.
|
||||
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'
|
||||
DatabaseIndex=Database index
|
||||
FileAlreadyExists=File %s already exists
|
||||
@ -70,7 +71,7 @@ NoWidget=No widget
|
||||
GoToApiExplorer=Go to API explorer
|
||||
ListOfPermissionsDefined=List of defined permissions
|
||||
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)
|
||||
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.
|
||||
|
||||
@ -4,126 +4,126 @@ ProductLabel=وصف المنتج
|
||||
ProductLabelTranslated=تسمية المنتج مترجمة
|
||||
ProductDescriptionTranslated=ترجم وصف المنتج
|
||||
ProductNoteTranslated=ترجم مذكرة المنتج
|
||||
ProductServiceCard=منتجات / خدمات البطاقات
|
||||
ProductServiceCard=منتجات / بطاقة الخدمات
|
||||
TMenuProducts=المنتجات
|
||||
TMenuServices=الخدمات
|
||||
Products=المنتجات
|
||||
Services=الخدمات
|
||||
Product=المنتج
|
||||
Service=الخدمة
|
||||
ProductId=المنتجات / الخدمات معرف
|
||||
ProductId=معرف المنتج و الخدمة
|
||||
Create=إنشاء
|
||||
Reference=المرجعية
|
||||
NewProduct=منتجات جديدة
|
||||
Reference=المرجع
|
||||
NewProduct=منتج جديد
|
||||
NewService=خدمة جديدة
|
||||
ProductVatMassChange=تغيير VAT الشامل
|
||||
ProductVatMassChangeDesc=هذه الصفحة يمكن استخدامها لتعديل نسبة الضريبة على القيمة المضافة المحددة على المنتجات أو الخدمات من قيمة إلى أخرى. تحذير، ويتم هذا التغيير على كل قاعدة البيانات.
|
||||
ProductVatMassChange=تغيير جماعي لضريبة القيمة المضافة
|
||||
ProductVatMassChangeDesc=هذه الصفحة يمكن استخدامها لتعديل نسبة الضريبة على القيمة المضافة المحددة على المنتجات أو الخدمات من قيمة إلى أخرى. تحذير، يتم هذا التغيير على كل قاعدة البيانات.
|
||||
MassBarcodeInit=الحرف الأول الباركود الشامل
|
||||
MassBarcodeInitDesc=هذه الصفحة يمكن استخدامها لتهيئة الباركود على الكائنات التي لا يكون الباركود تعريف. تحقق قبل أن الإعداد وحدة الباركود كاملة.
|
||||
ProductAccountancyBuyCode=Accounting code (purchase)
|
||||
ProductAccountancySellCode=Accounting code (sale)
|
||||
ProductAccountancyBuyCode=كود المحاسبة (شراء)
|
||||
ProductAccountancySellCode=كود المحاسبة (بيع)
|
||||
ProductOrService=المنتج أو الخدمة
|
||||
ProductsAndServices=المنتجات والخدمات
|
||||
ProductsOrServices=منتجات أو خدمات
|
||||
ProductsOnSaleOnly=Products for sale only
|
||||
ProductsOnPurchaseOnly=Products for purchase only
|
||||
ProductsNotOnSell=Products not for sale and not for purchase
|
||||
ProductsNotOnSell=منتجات ليست للبيع ولا الشراء
|
||||
ProductsOnSellAndOnBuy=المنتجات للبيع والشراء
|
||||
ServicesOnSaleOnly=Services for sale only
|
||||
ServicesOnPurchaseOnly=Services for purchase only
|
||||
ServicesNotOnSell=Services not for sale and not for purchase
|
||||
ServicesNotOnSell=خدمات ليست للبيع ولا الشراء
|
||||
ServicesOnSellAndOnBuy=خدمات للبيع والشراء
|
||||
LastModifiedProductsAndServices=Latest %s modified products/services
|
||||
LastRecordedProducts=Latest %s recorded products
|
||||
LastRecordedServices=Latest %s recorded services
|
||||
CardProduct0=منتجات البطاقات
|
||||
CardProduct1=بطاقة الخدمة
|
||||
Stock=الأسهم
|
||||
Stocks=الاسهم
|
||||
Stock=المخزون
|
||||
Stocks=المخزون
|
||||
Movements=حركات
|
||||
Sell=مبيعات
|
||||
Buy=مشتريات
|
||||
OnSell=على بيع
|
||||
OnBuy=شراؤها
|
||||
NotOnSell=من بيع
|
||||
ProductStatusOnSell=على بيع
|
||||
ProductStatusNotOnSell=من بيع
|
||||
ProductStatusOnSellShort=على بيع
|
||||
ProductStatusNotOnSellShort=من بيع
|
||||
ProductStatusOnBuy=متاح
|
||||
ProductStatusNotOnBuy=عفا عليها الزمن
|
||||
ProductStatusOnBuyShort=متاح
|
||||
ProductStatusNotOnBuyShort=عفا عليها الزمن
|
||||
OnSell=متاح للبيع
|
||||
OnBuy=للشراء
|
||||
NotOnSell=ليس للبيع
|
||||
ProductStatusOnSell=متاح للبيع
|
||||
ProductStatusNotOnSell=ليس للبيع
|
||||
ProductStatusOnSellShort=متاح للبيع
|
||||
ProductStatusNotOnSellShort=ليس للبيع
|
||||
ProductStatusOnBuy=متاح للشراء
|
||||
ProductStatusNotOnBuy=ليس للشراء
|
||||
ProductStatusOnBuyShort=متاح للشراء
|
||||
ProductStatusNotOnBuyShort=ليس للشراء
|
||||
UpdateVAT=تحديث الضريبة على القيمة المضافة
|
||||
UpdateDefaultPrice=تحديث السعر الافتراضي
|
||||
UpdateLevelPrices=أسعار التحديث لكل مستوى
|
||||
AppliedPricesFrom=تطبق الأسعار من
|
||||
SellingPrice=سعر البيع
|
||||
SellingPriceHT=سعر البيع (صافي الضرائب)
|
||||
SellingPriceTTC=سعر البيع (شركة الضريبية)
|
||||
SellingPriceTTC=سعر البيع (شامل الضريبية)
|
||||
CostPriceDescription=هذا السعر (صافية من الضرائب) يمكن استخدامها لتخزين متوسط كمية هذا تكلفة المنتج لشركتك. قد يكون بأي ثمن على حساب نفسك، على سبيل المثال من متوسط سعر الشراء بالإضافة إلى متوسط إنتاج وتوزيع التكاليف.
|
||||
CostPriceUsage=This value could be used for margin calculation.
|
||||
SoldAmount=Sold amount
|
||||
PurchasedAmount=Purchased amount
|
||||
NewPrice=السعر الجديد
|
||||
MinPrice=دقيقة. سعر البيع
|
||||
MinPrice=سعر البيع
|
||||
CantBeLessThanMinPrice=سعر البيع لا يمكن أن يكون أقل من الحد الأدنى المسموح لهذا المنتج (٪ ق بدون الضرائب)
|
||||
ContractStatusClosed=مغلقة
|
||||
ErrorProductAlreadyExists=منتج مع الإشارة ٪ ق موجود بالفعل.
|
||||
ErrorProductBadRefOrLabel=قيمة خاطئة لإشارة أو علامة.
|
||||
ContractStatusClosed=مغلق
|
||||
ErrorProductAlreadyExists=المنتج ذو المرجع %sموجود بالفعل.
|
||||
ErrorProductBadRefOrLabel=قيمة خاطئة لـ مرجع أو ملصق.
|
||||
ErrorProductClone=كان هناك مشكلة أثناء محاولة استنساخ المنتج أو الخدمة.
|
||||
ErrorPriceCantBeLowerThanMinPrice=خطأ، سعر لا يمكن أن يكون أقل من الحد الأدنى السعر.
|
||||
Suppliers=الموردين
|
||||
SupplierRef=المرجع المورد.
|
||||
ShowProduct=وتظهر المنتج
|
||||
ShowService=وتظهر الخدمة
|
||||
ProductsAndServicesArea=مجال المنتجات والخدمات
|
||||
ProductsArea=منتجات المنطقة
|
||||
ServicesArea=مجال الخدمات
|
||||
ListOfStockMovements=قائمة الحركات الأسهم
|
||||
SupplierRef=مرجع مورد المنتجات.
|
||||
ShowProduct=عرض المنتج
|
||||
ShowService=عرض الخدمة
|
||||
ProductsAndServicesArea=منطقة المنتجات والخدمات
|
||||
ProductsArea=منطقة المنتجات
|
||||
ServicesArea=منطقة الخدمات
|
||||
ListOfStockMovements=قائمة الحركات المخزون
|
||||
BuyingPrice=سعر الشراء
|
||||
PriceForEachProduct=المنتجات بأسعار محددة
|
||||
SupplierCard=بطاقة المورد
|
||||
PriceRemoved=رفع الأسعار
|
||||
PriceRemoved=تمت إزالة السعر
|
||||
BarCode=الباركود
|
||||
BarcodeType=نوع الباركود
|
||||
SetDefaultBarcodeType=حدد نوع الباركود
|
||||
BarcodeValue=قيمة الباركود
|
||||
NoteNotVisibleOnBill=علما) على الفواتير غير مرئي ، واقتراحات...)
|
||||
NoteNotVisibleOnBill=ملحوظة(غيرمرئية على الفواتير والعروض...)
|
||||
ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة :
|
||||
MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment)
|
||||
MultiPricesAbility=عدة شرائح من أسعار لكل منتج / خدمة (كل عميل في شريحة واحدة)
|
||||
MultiPricesNumPrices=عدد من السعر
|
||||
AssociatedProductsAbility=Activate the feature to manage virtual products
|
||||
AssociatedProducts=المنتجات
|
||||
AssociatedProductsNumber=عدد المنتجات
|
||||
ParentProductsNumber=عدد الوالد منتجات التعبئة والتغليف
|
||||
AssociatedProductsAbility=تنشيط ميزة إدارة المنتجات الإفتراضية
|
||||
AssociatedProducts=المنتجات الإفتراضية
|
||||
AssociatedProductsNumber=عدد المنتجات التي تنتج هذا المنتج الإفتراضي
|
||||
ParentProductsNumber=عدد منتج التعبئة الاب
|
||||
ParentProducts=Parent products
|
||||
IfZeroItIsNotAVirtualProduct=If 0, this product is not a virtual product
|
||||
IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any virtual product
|
||||
KeywordFilter=الكلمة الرئيسية فلتر
|
||||
CategoryFilter=فئة فلتر
|
||||
ProductToAddSearch=إضافة إلى البحث عن المنتج
|
||||
NoMatchFound=العثور على أي مباراة
|
||||
IfZeroItIsNotAVirtualProduct=إذا كان 0، هذا المنتج ليس منتج إفتراضي
|
||||
IfZeroItIsNotUsedByVirtualProduct=إذا كان 0، لا يتم استخدام هذا المنتج من قبل أي منتج إفتراضي
|
||||
KeywordFilter=فلتر الكلمة المقتاحية
|
||||
CategoryFilter=فلتر التصنيف
|
||||
ProductToAddSearch= إبحث عن منتج لإضافتة
|
||||
NoMatchFound=لا يوجد نتائج متطابقة
|
||||
ListOfProductsServices=List of products/services
|
||||
ProductAssociationList=قائمة المنتجات / الخدمات التي هي مكون من مكونات هذا المنتج الظاهري / حزمة
|
||||
ProductParentList=قائمة من المنتجات / الخدمات مع هذا المنتج كعنصر
|
||||
ProductAssociationList=قائمة المنتجات / الخدمات التي هي مكون من مكونات هذا المنتج/ الحزمة الإفتراضية
|
||||
ProductParentList=قائمة من المنتجات / الخدمات الإفتراضية مع هذا المنتج كعنصر مكون
|
||||
ErrorAssociationIsFatherOfThis=واحد من اختيار المنتج الأم الحالية المنتج
|
||||
DeleteProduct=حذف المنتجات / الخدمات
|
||||
ConfirmDeleteProduct=هل أنت متأكد من حذف هذه المنتجات / الخدمات؟
|
||||
ProductDeleted=المنتجات والخدمات "٪ ل" حذفها من قاعدة البيانات.
|
||||
DeleteProduct=حذف منتج / خدمة
|
||||
ConfirmDeleteProduct=هل أنت متأكد من حذف هذا المنتج / الخدمة؟
|
||||
ProductDeleted=المنتج /الخدمة "%s" تم حذفها من قاعدة البيانات.
|
||||
ExportDataset_produit_1=المنتجات
|
||||
ExportDataset_service_1=الخدمات
|
||||
ImportDataset_produit_1=المنتجات
|
||||
ImportDataset_service_1=الخدمات
|
||||
DeleteProductLine=حذف خط الإنتاج
|
||||
ConfirmDeleteProductLine=هل أنت متأكد من أنك تريد حذف هذا السطر المنتج؟
|
||||
ConfirmDeleteProductLine=هل أنت متأكد من أنك تريد حذف خط الإنتاج؟
|
||||
ProductSpecial=خاص
|
||||
QtyMin=الحد الأدنى من الكمية
|
||||
PriceQtyMin=ثمن هذا دقيقة. الكمية (ث / س الخصم)
|
||||
PriceQtyMin=ثمن هذا الحد الادنى (ث / س الخصم)
|
||||
VATRateForSupplierProduct=معدل ضريبة القيمة المضافة (لهذا المورد / المنتج)
|
||||
DiscountQtyMin=خصم الكمية الافتراضية ل
|
||||
NoPriceDefinedForThisSupplier=لا السعر الكمية المحددة لهذا المورد / المنتج
|
||||
NoSupplierPriceDefinedForThisProduct=لا مورد السعر الكمية المحددة لهذا المنتج
|
||||
DiscountQtyMin=الخصم الإفتراضي للكمية
|
||||
NoPriceDefinedForThisSupplier=لا يوجد سعر أو كمية محددة لهذا المورد / المنتج
|
||||
NoSupplierPriceDefinedForThisProduct=لا سعر أو كمية محددة لهذا المنتج من قبل المورد
|
||||
PredefinedProductsToSell=منتجات محددة مسبقا للبيع
|
||||
PredefinedServicesToSell=خدمات محددة مسبقا للبيع
|
||||
PredefinedProductsAndServicesToSell=منتجات محددة مسبقا / خدمات للبيع
|
||||
@ -131,27 +131,27 @@ PredefinedProductsToPurchase=المنتج مسبقا لشراء
|
||||
PredefinedServicesToPurchase=خدمات محددة مسبقا لشراء
|
||||
PredefinedProductsAndServicesToPurchase=منتجات محددة مسبقا / خدمات أن puchase
|
||||
NotPredefinedProducts=Not predefined products/services
|
||||
GenerateThumb=يولد الإبهام
|
||||
ServiceNb=خدمة ق # ٪
|
||||
GenerateThumb=توليد صورة مصغرة
|
||||
ServiceNb=خدمة #%s
|
||||
ListProductServiceByPopularity=قائمة المنتجات / الخدمات حسب الشهرة
|
||||
ListProductByPopularity=قائمة المنتجات / الخدمات شعبية
|
||||
ListServiceByPopularity=قائمة الخدمات حسب الشهرة
|
||||
ListProductByPopularity=قائمة المنتجات / الخدمات بحسب الشهرة
|
||||
ListServiceByPopularity=قائمة الخدمات بحسب الشهرة
|
||||
Finished=المنتجات المصنعة
|
||||
RowMaterial=المادة الأولى
|
||||
RowMaterial=المادة الخام
|
||||
CloneProduct=استنساخ المنتجات أو الخدمات
|
||||
ConfirmCloneProduct=Are you sure you want to clone product or service <b>%s</b>?
|
||||
CloneContentProduct=استنساخ جميع المعلومات الرئيسية من المنتجات / الخدمات
|
||||
ClonePricesProduct=استنساخ الرئيسية معلومات والأسعار
|
||||
CloneCompositionProduct=استنساخ حزم المنتج / الخدمة
|
||||
ConfirmCloneProduct=هل انت متأكد انك ترغب في استنساخ المنتج/الخدمة <b>%s</b>؟
|
||||
CloneContentProduct=استنساخ جميع المعلومات الرئيسية لـ المنتج / الخدمة
|
||||
ClonePricesProduct=استنساخ المعلومات الرئيسية والأسعار
|
||||
CloneCompositionProduct=استنساخ منتج / خدمة معبئة
|
||||
CloneCombinationsProduct=Clone product variants
|
||||
ProductIsUsed=ويستخدم هذا المنتج
|
||||
NewRefForClone=المرجع. من المنتجات الجديدة / خدمة
|
||||
ProductIsUsed=هذا المنتج يتم استخدامة
|
||||
NewRefForClone=مرجع. المنتج/ الخدمة الجديدة
|
||||
SellingPrices=أسعار بيع
|
||||
BuyingPrices=شراء أسعار
|
||||
CustomerPrices=أسعار العملاء
|
||||
CustomerPrices=أسعار العميل
|
||||
SuppliersPrices=أسعار المورد
|
||||
SuppliersPricesOfProductsOrServices=أسعار المورد (منتجات أو خدمات)
|
||||
CustomCode=Customs/Commodity/HS code
|
||||
CustomCode=الجمارك/السلع /كود HS
|
||||
CountryOrigin=بلد المنشأ
|
||||
Nature=طبيعة
|
||||
ShortLabel=التسمية قصيرة
|
||||
@ -189,12 +189,12 @@ unitM2=Square meter
|
||||
unitM3=Cubic meter
|
||||
unitL=Liter
|
||||
ProductCodeModel=قالب المرجع المنتج
|
||||
ServiceCodeModel=قالب المرجع الخدمة
|
||||
ServiceCodeModel=قالب مرجع الخدمة
|
||||
CurrentProductPrice=السعر الحالي
|
||||
AlwaysUseNewPrice=دائما استخدام السعر الحالي للمنتج / خدمة
|
||||
AlwaysUseFixedPrice=استخدام سعر ثابت
|
||||
AlwaysUseNewPrice=دائما استخدم السعر الحالي للمنتج / الخدمة
|
||||
AlwaysUseFixedPrice=استخدم السعر الثابت
|
||||
PriceByQuantity=أسعار مختلفة حسب الكمية
|
||||
PriceByQuantityRange=كمية مجموعة
|
||||
PriceByQuantityRange=مدى الكمية
|
||||
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
|
||||
PercentVariationOver=٪٪ الاختلاف على الصورة٪
|
||||
@ -202,26 +202,26 @@ PercentDiscountOver=٪٪ خصم أكثر من٪ الصورة
|
||||
KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products
|
||||
### composition fabrication
|
||||
Build=إنتاج
|
||||
ProductsMultiPrice=Products and prices for each price segment
|
||||
ProductsMultiPrice=المنتجات و الاسعار لكل شريحة
|
||||
ProductsOrServiceMultiPrice=أسعار العملاء (منتجات أو خدمات، أسعار متعددة)
|
||||
ProductSellByQuarterHT=منتجات دوران الفصلية قبل الضرائب
|
||||
ServiceSellByQuarterHT=خدمات دوران الفصلية قبل الضرائب
|
||||
Quarter1=1. ربع
|
||||
Quarter2=2. ربع
|
||||
Quarter3=3. ربع
|
||||
Quarter4=4. ربع
|
||||
BarCodePrintsheet=طباعة قانون نقابة المحامين
|
||||
PageToGenerateBarCodeSheets=مع هذه الأداة، يمكنك طباعة ورقة من الملصقات الرمز الشريطي. اختيار شكل الصفحة ملصقا، ونوع الباركود وقيمة الباركود، ثم انقر على <b>زر٪ الصورة.</b>
|
||||
ProductSellByQuarterHT=دورة المنتجات الربع سنوية قبل الضرائب
|
||||
ServiceSellByQuarterHT=دورة الخدمات الربع سنوية قبل الضرائب
|
||||
Quarter1=الربع الإول
|
||||
Quarter2=الربع الثاني
|
||||
Quarter3=الربع الثالث
|
||||
Quarter4=الربع الرابع
|
||||
BarCodePrintsheet=طباعة الباركود
|
||||
PageToGenerateBarCodeSheets=مع هذه الأداة، يمكنك طباعة أوراق من الباركود. اختار نوع صفحة الملصقات، ونوع وقيمة الباركود، ثم انقر على زر <b>%s</b>
|
||||
NumberOfStickers=عدد من الملصقات للطباعة على الصفحة
|
||||
PrintsheetForOneBarCode=طباعة عدة ملصقات لالباركود واحد
|
||||
BuildPageToPrint=توليد الصفحة لطباعة
|
||||
FillBarCodeTypeAndValueManually=ملء نوع الباركود والقيمة يدويا.
|
||||
FillBarCodeTypeAndValueFromProduct=ملء نوع الباركود وقيمة من الباركود للمنتج.
|
||||
FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party.
|
||||
DefinitionOfBarCodeForProductNotComplete=تعريف نوع أو قيمة الرمز الشريطي يست كاملة للمنتج٪ الصورة.
|
||||
DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s.
|
||||
BarCodeDataForProduct=معلومات الباركود من الناتج٪ الصورة:
|
||||
BarCodeDataForThirdparty=Barcode information of third party %s :
|
||||
BuildPageToPrint=توليد صفحة للطباعة
|
||||
FillBarCodeTypeAndValueManually=ملء نوع وقيمة الباركود يدويا.
|
||||
FillBarCodeTypeAndValueFromProduct=ملء نوع وقيمة الباركود من باركود المنتج.
|
||||
FillBarCodeTypeAndValueFromThirdParty=ملء نوع وقيمة الباركود من باركود طرف ثالت.
|
||||
DefinitionOfBarCodeForProductNotComplete=تعريف نوع أو قيمة الباركود ليس كامل للمنتج%s.
|
||||
DefinitionOfBarCodeForThirdpartyNotComplete=تعريف نوع أو قيمة الباركود ليس كامل للطرف الثالث %s
|
||||
BarCodeDataForProduct=معلومات الباركود للمنتج%s :
|
||||
BarCodeDataForThirdparty=معلومات الباركود للطرف الثالث%s:
|
||||
ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values)
|
||||
PriceByCustomer=Different prices for each customer
|
||||
PriceCatalogue=A single sell price per product/service
|
||||
|
||||
@ -3,8 +3,6 @@ RefProject=المرجع. مشروع
|
||||
ProjectRef=المرجع المشروع.
|
||||
ProjectId=رقم المشروع
|
||||
ProjectLabel=تسمية المشروع
|
||||
Project=المشروع
|
||||
Projects=المشاريع
|
||||
ProjectsArea=Projects Area
|
||||
ProjectStatus=حالة المشروع
|
||||
SharedProject=مشاريع مشتركة
|
||||
@ -38,6 +36,7 @@ OpenedTasks=Open tasks
|
||||
OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
|
||||
OpportunitiesStatusForProjects=Opportunities amount of projects by status
|
||||
ShowProject=وتبين للمشروع
|
||||
ShowTask=وتظهر هذه المهمة
|
||||
SetProject=وضع المشروع
|
||||
NoProject=لا يعرف أو المملوكة للمشروع
|
||||
NbOfProjects=ملاحظة : للمشاريع
|
||||
@ -77,6 +76,7 @@ Time=وقت
|
||||
ListOfTasks=List of tasks
|
||||
GoToListOfTimeConsumed=Go to list of time consumed
|
||||
GoToListOfTasks=Go to list of tasks
|
||||
GanttView=Gantt View
|
||||
ListProposalsAssociatedProject=قائمة المقترحات التجارية المرتبطة بالمشروع.
|
||||
ListOrdersAssociatedProject=List of customer orders 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=فتح مشروع
|
||||
ConfirmReOpenAProject=Are you sure you want to re-open this project?
|
||||
ProjectContact=مشروع اتصالات
|
||||
TaskContact=Task contacts
|
||||
ActionsOnProject=الإجراءات على المشروع
|
||||
YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص
|
||||
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?
|
||||
DoNotShowMyTasksOnly=انظر أيضا المهام الغير موكلة الي
|
||||
ShowMyTasksOnly=عرض فقط المهام الموكلة الي
|
||||
TaskRessourceLinks=مصادر
|
||||
TaskRessourceLinks=Contacts task
|
||||
ProjectsDedicatedToThisThirdParty=مشاريع مخصصة لهذا الطرف الثالث
|
||||
NoTasks=أية مهام لهذا المشروع
|
||||
LinkedToAnotherCompany=ربط طرف ثالث آخر
|
||||
|
||||
@ -13,3 +13,5 @@ TJM=Average daily rate
|
||||
CurrentSalary=الراتب الحالي
|
||||
THMDescription=يمكن استخدام هذه القيمة لحساب تكلفة الوقت المستهلك في المشروع المدخل من قبل المستخدمين إذا تم استخدام وحدة مشروع
|
||||
TJMDescription=هذه القيمة هي حاليا فقط كمعلومات وليس لاستخدامها في أي حساب
|
||||
LastSalaries=Latest %s salary payments
|
||||
AllSalaries=All salary payments
|
||||
|
||||
@ -22,6 +22,7 @@ Movements=حركات
|
||||
ErrorWarehouseRefRequired=مستودع الاشارة اسم مطلوب
|
||||
ListOfWarehouses=لائحة المخازن
|
||||
ListOfStockMovements=قائمة الحركات الأسهم
|
||||
MovementId=Movement ID
|
||||
StockMovementForId=Movement ID %d
|
||||
ListMouvementStockProject=List of stock movements associated to project
|
||||
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)
|
||||
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=تسمية الحركة
|
||||
DateMovement=Date of movement
|
||||
InventoryCode=حركة المخزون أو كود
|
||||
IsInPackage=الواردة في حزمة
|
||||
WarehouseAllowNegativeTransfer=Stock can be negative
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
# Dolibarr language file - Source file is en_US - trips
|
||||
ExpenseReport=تقرير حساب
|
||||
ExpenseReports=تقارير المصاريف
|
||||
ShowExpenseReport=عرض تقرير حساب
|
||||
Trips=تقارير المصاريف
|
||||
TripsAndExpenses=تقارير النفقات
|
||||
@ -12,6 +10,8 @@ ListOfFees=قائمة الرسوم
|
||||
TypeFees=Types of fees
|
||||
ShowTrip=عرض تقرير حساب
|
||||
NewTrip=تقرير حساب جديد
|
||||
LastExpenseReports=Latest %s expense reports
|
||||
AllExpenseReports=All expense reports
|
||||
CompanyVisited=Company/organisation visited
|
||||
FeesKilometersOrAmout=كم المبلغ أو
|
||||
DeleteTrip=حذف تقرير حساب
|
||||
@ -71,6 +71,8 @@ EX_FUE_VP=Fuel PV
|
||||
EX_TOL_VP=Toll PV
|
||||
EX_PAR_VP=Parking PV
|
||||
EX_CAM_VP=PV maintenance and repair
|
||||
DefaultCategoryCar=Default transportation mode
|
||||
DefaultRangeNumber=Default range number
|
||||
|
||||
ErrorDoubleDeclaration=لقد أعلن تقرير حساب آخر في نطاق تاريخ مماثل.
|
||||
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.
|
||||
WEBSITE_PAGENAME=Page name/alias
|
||||
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_INLINE=CSS 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
|
||||
EditMedias=Edit medias
|
||||
EditPageMeta=Edit Meta
|
||||
Website=Web site
|
||||
AddWebsite=Add website
|
||||
Webpage=Web 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
|
||||
SyntaxHelp=Help on specific syntax tips
|
||||
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
|
||||
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.
|
||||
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.
|
||||
@ -52,3 +52,6 @@ OrEnterPageInfoManually=Or create empty page from scratch...
|
||||
FetchAndCreate=Fetch and Create
|
||||
ExportSite=Export site
|
||||
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=Автоматично (език на браузъра)
|
||||
FeatureDisabledInDemo=Feature инвалиди в демо
|
||||
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.
|
||||
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.
|
||||
@ -593,7 +592,7 @@ Module5000Desc=Позволява ви да управлявате няколк
|
||||
Module6000Name=Workflow
|
||||
Module6000Desc=Workflow management
|
||||
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
|
||||
Module20000Desc=Declare and follow employees leaves requests
|
||||
Module39000Name=Product lot
|
||||
@ -1130,7 +1129,7 @@ SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail dire
|
||||
TranslationSetup=Setup of translation
|
||||
TranslationKeySearch=Search a translation key or 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"
|
||||
TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
|
||||
TranslationString=Translation string
|
||||
@ -1171,8 +1170,6 @@ RuleForGeneratedPasswords=Член за генериране на предлож
|
||||
DisableForgetPasswordLinkOnLogonPage=Да не се показват връзката "Забравена парола" на страницата за вход
|
||||
UsersSetup=Потребители модул за настройка
|
||||
UserMailRequired=Задължително е въвеждането на имейл при създаване на нов потребител
|
||||
DefaultCategoryCar=Default car category
|
||||
DefaultRangeNumber=Default range number
|
||||
##### HRM setup #####
|
||||
HRMSetup=HRM module setup
|
||||
##### Company setup #####
|
||||
|
||||
@ -70,3 +70,9 @@ Stats=Статистика на продажбите
|
||||
StatusProsp=Prospect статус
|
||||
DraftPropals=Проектът на търговски предложения
|
||||
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
|
||||
EmployeeFirstname=Employee first name
|
||||
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
|
||||
LastHolidays=Latest %s leave requests
|
||||
AllHolidays=All leave requests
|
||||
|
||||
## Configuration du Module ##
|
||||
LastUpdateCP=Latest automatic update of leaves allocation
|
||||
|
||||
@ -99,7 +99,6 @@ NbOfCompaniesContacts=Уникални контакти на фирми
|
||||
MailNoChangePossible=Получатели на за валидирани електронната поща не може да бъде променена
|
||||
SearchAMailing=Търсене пощенски
|
||||
SendMailing=Изпращане на имейл
|
||||
SendMail=Изпращане на имейл
|
||||
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:
|
||||
MailingNeedCommand2=Все пак можете да ги изпратите онлайн чрез добавяне на параметър MAILING_LIMIT_SENDBYWEB със стойност на максимален брой на имейлите, които искате да изпратите от сесията. За това, отидете на дома - Setup - Други.
|
||||
|
||||
@ -266,8 +266,10 @@ DateApprove2=Дата на одобрение (повторно одобрени
|
||||
RegistrationDate=Registration date
|
||||
UserCreation=Creation user
|
||||
UserModification=Modification user
|
||||
UserValidation=Validation user
|
||||
UserCreationShort=Creat. user
|
||||
UserModificationShort=Modif. user
|
||||
UserValidationShort=Valid. user
|
||||
DurationYear=година
|
||||
DurationMonth=месец
|
||||
DurationWeek=седмица
|
||||
@ -608,6 +610,7 @@ SendByMail=Изпрати по имейл
|
||||
MailSentBy=Изпратено по имейл от
|
||||
TextUsedInTheMessageBody=Текст на имейла
|
||||
SendAcknowledgementByMail=Send confirmation email
|
||||
SendMail=Изпращане на имейл
|
||||
EMail=Имейл
|
||||
NoEMail=Няма имейл
|
||||
Email=Имейл
|
||||
@ -808,6 +811,10 @@ ModuleBuilder=Module Builder
|
||||
SetMultiCurrencyCode=Set currency
|
||||
BulkActions=Bulk actions
|
||||
ClickToShowHelp=Click to show tooltip help
|
||||
Website=Уеб Сайт
|
||||
WebSites=Web sites
|
||||
ExpenseReport=Доклад разходи
|
||||
ExpenseReports=Опис разходи
|
||||
HR=HR
|
||||
HRAndBank=HR and Bank
|
||||
AutomaticallyCalculated=Automatically calculated
|
||||
@ -818,6 +825,9 @@ Websites=Web sites
|
||||
Events=Събития
|
||||
EMailTemplates=Emails templates
|
||||
FileNotShared=File not shared to exernal public
|
||||
Project=Проект
|
||||
Projects=Проекти
|
||||
Rights=Права
|
||||
# Week day
|
||||
Monday=Понеделник
|
||||
Tuesday=Вторник
|
||||
|
||||
@ -168,8 +168,8 @@ TurnoverOrBudget=Оборот (за фирма) или Бюджет (за орг
|
||||
DefaultAmount=Сума по подразбиране за членски внос
|
||||
CanEditAmount=Посетител може да избере/редактира размера на вноската си
|
||||
MEMBER_NEWFORM_PAYONLINE=Прехвърляне към интегрираната онлайн страница за плащане
|
||||
ByProperties=По характеристики
|
||||
MembersStatisticsByProperties=Статистики на членовете по характеристики
|
||||
ByProperties=By nature
|
||||
MembersStatisticsByProperties=Members statistics by nature
|
||||
MembersByNature=Този екран ви показва статистики на членовете по същност.
|
||||
MembersByRegion=Този екран ви показва статистики на членовете по регион.
|
||||
VATToUseForSubscriptions=VAT rate to use for subscriptions
|
||||
|
||||
@ -47,6 +47,7 @@ SpecificationFile=File with business rules
|
||||
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.
|
||||
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'
|
||||
DatabaseIndex=Database index
|
||||
FileAlreadyExists=File %s already exists
|
||||
@ -70,7 +71,7 @@ NoWidget=No widget
|
||||
GoToApiExplorer=Go to API explorer
|
||||
ListOfPermissionsDefined=List of defined permissions
|
||||
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)
|
||||
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.
|
||||
|
||||
@ -3,8 +3,6 @@ RefProject=Реф. проект
|
||||
ProjectRef=Проект реф.
|
||||
ProjectId=Id на проект
|
||||
ProjectLabel=Етикет на проект
|
||||
Project=Проект
|
||||
Projects=Проекти
|
||||
ProjectsArea=Projects Area
|
||||
ProjectStatus=Статус на проект
|
||||
SharedProject=Всички
|
||||
@ -38,6 +36,7 @@ OpenedTasks=Open tasks
|
||||
OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
|
||||
OpportunitiesStatusForProjects=Opportunities amount of projects by status
|
||||
ShowProject=Покажи проект
|
||||
ShowTask=Покажи задача
|
||||
SetProject=Задайте проект
|
||||
NoProject=Нито един проект няма определени или собственост
|
||||
NbOfProjects=Nb на проекти
|
||||
@ -77,6 +76,7 @@ Time=Време
|
||||
ListOfTasks=List of tasks
|
||||
GoToListOfTimeConsumed=Go to list of time consumed
|
||||
GoToListOfTasks=Go to list of tasks
|
||||
GanttView=Gantt View
|
||||
ListProposalsAssociatedProject=Списък на търговските предложения, свързани с проекта
|
||||
ListOrdersAssociatedProject=List of customer orders 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=Проект с отворен
|
||||
ConfirmReOpenAProject=Are you sure you want to re-open this project?
|
||||
ProjectContact=ПРОЕКТА Контакти
|
||||
TaskContact=Task contacts
|
||||
ActionsOnProject=Събития по проекта
|
||||
YouAreNotContactOfProject=Вие не сте контакт на този частен проект
|
||||
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?
|
||||
DoNotShowMyTasksOnly=Показване също на задачи, които не са възложени на мен
|
||||
ShowMyTasksOnly=Показване задачи, възложени само на мен
|
||||
TaskRessourceLinks=Ресурси
|
||||
TaskRessourceLinks=Contacts task
|
||||
ProjectsDedicatedToThisThirdParty=Проекти, насочени към този контрагент
|
||||
NoTasks=Няма задачи за този проект
|
||||
LinkedToAnotherCompany=Свързано с друг контрагент
|
||||
|
||||
@ -13,3 +13,5 @@ TJM=Average daily rate
|
||||
CurrentSalary=Сегашна заплата
|
||||
THMDescription=Тази стойност може да използва за изчисляване на отнето време по проект отделено от потребителите ако модул проект се използва
|
||||
TJMDescription=Тази стойност е само сега като информация и не се използва за никакво изчисление
|
||||
LastSalaries=Latest %s salary payments
|
||||
AllSalaries=All salary payments
|
||||
|
||||
@ -22,6 +22,7 @@ Movements=Движения
|
||||
ErrorWarehouseRefRequired=Изисква се референтно име на склад
|
||||
ListOfWarehouses=Списък на складовете
|
||||
ListOfStockMovements=Списък на движението на стоковите наличности
|
||||
MovementId=Movement ID
|
||||
StockMovementForId=Movement ID %d
|
||||
ListMouvementStockProject=List of stock movements associated to project
|
||||
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)
|
||||
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
|
||||
DateMovement=Date of movement
|
||||
InventoryCode=Movement or inventory code
|
||||
IsInPackage=Contained into package
|
||||
WarehouseAllowNegativeTransfer=Stock can be negative
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
# Dolibarr language file - Source file is en_US - trips
|
||||
ExpenseReport=Доклад разходи
|
||||
ExpenseReports=Expense reports
|
||||
ShowExpenseReport=Показване на доклад за разходи
|
||||
Trips=Expense reports
|
||||
TripsAndExpenses=Доклади разходи
|
||||
@ -12,6 +10,8 @@ ListOfFees=Списък на такси
|
||||
TypeFees=Types of fees
|
||||
ShowTrip=Показване на доклад за разходи
|
||||
NewTrip=Нов доклад за разходи
|
||||
LastExpenseReports=Latest %s expense reports
|
||||
AllExpenseReports=All expense reports
|
||||
CompanyVisited=Company/organisation visited
|
||||
FeesKilometersOrAmout=Сума или км
|
||||
DeleteTrip=Изтриване на доклад за разходи
|
||||
@ -71,6 +71,8 @@ EX_FUE_VP=Fuel PV
|
||||
EX_TOL_VP=Toll PV
|
||||
EX_PAR_VP=Parking PV
|
||||
EX_CAM_VP=PV maintenance and repair
|
||||
DefaultCategoryCar=Default transportation mode
|
||||
DefaultRangeNumber=Default range number
|
||||
|
||||
ErrorDoubleDeclaration=Създали сте друг доклад за разходи в подобен времеви отрязък.
|
||||
AucuneLigne=Няма все още деклариран доклад за разходи
|
||||
|
||||
@ -5,7 +5,7 @@ DeleteWebsite=Изтрийте уебсайт
|
||||
ConfirmDeleteWebsite=Сигурни ли сте, че искате да изтриете този уебсайт? Всички негови страници и съдържание ще бъдат премахнати.
|
||||
WEBSITE_PAGENAME=Име на страницата
|
||||
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_INLINE=CSS 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=Редактирай
|
||||
EditMedias=Edit medias
|
||||
EditPageMeta=Редайтирай Meta
|
||||
Website=Уеб Сайт
|
||||
AddWebsite=Add website
|
||||
Webpage=Web page/container
|
||||
AddPage=Добави страница/контейнер
|
||||
@ -39,9 +38,10 @@ VirtualHostUrlNotDefined=URL of the virtual host served by external web server n
|
||||
NoPageYet=No pages yet
|
||||
SyntaxHelp=Help on specific syntax tips
|
||||
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
|
||||
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.
|
||||
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.
|
||||
@ -52,3 +52,6 @@ OrEnterPageInfoManually=Or create empty page from scratch...
|
||||
FetchAndCreate=Fetch and Create
|
||||
ExportSite=Export site
|
||||
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)
|
||||
FeatureDisabledInDemo=Feature disabled in demo
|
||||
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.
|
||||
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.
|
||||
@ -593,7 +592,7 @@ Module5000Desc=Allows you to manage multiple companies
|
||||
Module6000Name=Workflow
|
||||
Module6000Desc=Workflow management
|
||||
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
|
||||
Module20000Desc=Declare and follow employees leaves requests
|
||||
Module39000Name=Product lot
|
||||
@ -1130,7 +1129,7 @@ SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail dire
|
||||
TranslationSetup=Setup of translation
|
||||
TranslationKeySearch=Search a translation key or 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"
|
||||
TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
|
||||
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
|
||||
UsersSetup=Users module setup
|
||||
UserMailRequired=EMail required to create a new user
|
||||
DefaultCategoryCar=Default car category
|
||||
DefaultRangeNumber=Default range number
|
||||
##### HRM setup #####
|
||||
HRMSetup=HRM module setup
|
||||
##### Company setup #####
|
||||
|
||||
@ -70,3 +70,9 @@ Stats=Sales statistics
|
||||
StatusProsp=Prospect status
|
||||
DraftPropals=Draft commercial proposals
|
||||
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
|
||||
EmployeeFirstname=Employee first name
|
||||
TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
|
||||
LastHolidays=Latest %s leave requests
|
||||
AllHolidays=All leave requests
|
||||
|
||||
## Configuration du Module ##
|
||||
LastUpdateCP=Latest automatic update of leaves allocation
|
||||
|
||||
@ -99,7 +99,6 @@ NbOfCompaniesContacts=Unique contacts/addresses
|
||||
MailNoChangePossible=Recipients for validated emailing can't be changed
|
||||
SearchAMailing=Search mailing
|
||||
SendMailing=Send emailing
|
||||
SendMail=Send email
|
||||
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:
|
||||
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
|
||||
UserCreation=Creation user
|
||||
UserModification=Modification user
|
||||
UserValidation=Validation user
|
||||
UserCreationShort=Creat. user
|
||||
UserModificationShort=Modif. user
|
||||
UserValidationShort=Valid. user
|
||||
DurationYear=year
|
||||
DurationMonth=month
|
||||
DurationWeek=week
|
||||
@ -608,6 +610,7 @@ SendByMail=Send by EMail
|
||||
MailSentBy=Email sent by
|
||||
TextUsedInTheMessageBody=Email body
|
||||
SendAcknowledgementByMail=Send confirmation email
|
||||
SendMail=Send email
|
||||
EMail=E-mail
|
||||
NoEMail=No email
|
||||
Email=Email
|
||||
@ -808,6 +811,10 @@ ModuleBuilder=Module Builder
|
||||
SetMultiCurrencyCode=Set currency
|
||||
BulkActions=Bulk actions
|
||||
ClickToShowHelp=Click to show tooltip help
|
||||
Website=Web site
|
||||
WebSites=Web sites
|
||||
ExpenseReport=Expense report
|
||||
ExpenseReports=Expense reports
|
||||
HR=HR
|
||||
HRAndBank=HR and Bank
|
||||
AutomaticallyCalculated=Automatically calculated
|
||||
@ -818,6 +825,9 @@ Websites=Web sites
|
||||
Events=Events
|
||||
EMailTemplates=Emails templates
|
||||
FileNotShared=File not shared to exernal public
|
||||
Project=Project
|
||||
Projects=Projects
|
||||
Rights=Permissions
|
||||
# Week day
|
||||
Monday=Monday
|
||||
Tuesday=Tuesday
|
||||
|
||||
@ -168,8 +168,8 @@ TurnoverOrBudget=Turnover (for a company) or Budget (for a foundation)
|
||||
DefaultAmount=Default amount of subscription
|
||||
CanEditAmount=Visitor can choose/edit amount of its subscription
|
||||
MEMBER_NEWFORM_PAYONLINE=Jump on integrated online payment page
|
||||
ByProperties=By characteristics
|
||||
MembersStatisticsByProperties=Members statistics by characteristics
|
||||
ByProperties=By nature
|
||||
MembersStatisticsByProperties=Members statistics by nature
|
||||
MembersByNature=This screen show you statistics on members by nature.
|
||||
MembersByRegion=This screen show you statistics on members by region.
|
||||
VATToUseForSubscriptions=VAT rate to use for subscriptions
|
||||
|
||||
@ -47,6 +47,7 @@ SpecificationFile=File with business rules
|
||||
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.
|
||||
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'
|
||||
DatabaseIndex=Database index
|
||||
FileAlreadyExists=File %s already exists
|
||||
@ -70,7 +71,7 @@ NoWidget=No widget
|
||||
GoToApiExplorer=Go to API explorer
|
||||
ListOfPermissionsDefined=List of defined permissions
|
||||
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)
|
||||
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.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user