diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php
index 029550192f0..c905ad25cd0 100644
--- a/htdocs/accountancy/admin/card.php
+++ b/htdocs/accountancy/admin/card.php
@@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
$error = 0;
// Load translation files required by the page
-$langs->loadLangs(array("bills", "accountancy"));
+$langs->loadLangs(array("bills", "accountancy", "compta"));
$mesg = '';
$action = GETPOST('action', 'aZ09');
@@ -41,7 +41,9 @@ $id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alpha');
$rowid = GETPOST('rowid', 'int');
$cancel = GETPOST('cancel', 'alpha');
-$accountingaccount = GETPOST('accountingaccount', 'alpha');
+
+$account_number = GETPOST('account_number', 'string');
+$label = GETPOST('label', 'alpha');
// Security check
if ($user->socid > 0) accessforbidden();
@@ -65,104 +67,118 @@ if (GETPOST('cancel', 'alpha'))
if ($action == 'add' && $user->rights->accounting->chartofaccount)
{
if (!$cancel) {
- $sql = 'SELECT pcg_version FROM '.MAIN_DB_PREFIX.'accounting_system WHERE rowid='.$conf->global->CHARTOFACCOUNTS;
-
- dol_syslog('accountancy/admin/card.php:: $sql='.$sql);
- $result = $db->query($sql);
- $obj = $db->fetch_object($result);
-
- // Clean code
-
- // To manage zero or not at the end of the accounting account
- if ($conf->global->ACCOUNTING_MANAGE_ZERO == 1)
+ if (!$account_number)
{
- $account_number = GETPOST('account_number', 'string');
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
+ $action = 'create';
+ } elseif (!$label)
+ {
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
+ $action = 'create';
} else {
- $account_number = clean_account(GETPOST('account_number', 'string'));
- }
+ $sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS;
- if (GETPOST('account_parent', 'int') <= 0)
- {
- $account_parent = 0;
- } else {
- $account_parent = GETPOST('account_parent', 'int');
- }
+ dol_syslog('accountancy/admin/card.php:: $sql=' . $sql);
+ $result = $db->query($sql);
+ $obj = $db->fetch_object($result);
- $object->fk_pcg_version = $obj->pcg_version;
- $object->pcg_type = GETPOST('pcg_type', 'alpha');
- $object->account_number = $account_number;
- $object->account_parent = $account_parent;
- $object->account_category = GETPOST('account_category', 'alpha');
- $object->label = GETPOST('label', 'alpha');
- $object->labelshort = GETPOST('labelshort', 'alpha');
- $object->active = 1;
+ // Clean code
- $res = $object->create($user);
- if ($res == - 3) {
- $error = 1;
- $action = "create";
- setEventMessages($object->error, $object->errors, 'errors');
- } elseif ($res == - 4) {
- $error = 2;
- $action = "create";
- setEventMessages($object->error, $object->errors, 'errors');
- } elseif ($res < 0)
- {
- $error++;
- setEventMessages($object->error, $object->errors, 'errors');
- $action = "create";
- }
- if (!$error)
- {
- setEventMessages("RecordCreatedSuccessfully", null, 'mesgs');
- $urltogo = $backtopage ? $backtopage : dol_buildpath('/accountancy/admin/account.php', 1);
- header("Location: ".$urltogo);
- exit;
+ // To manage zero or not at the end of the accounting account
+ if ($conf->global->ACCOUNTING_MANAGE_ZERO == 1) {
+ $account_number = $account_number;
+ } else {
+ $account_number = clean_account($account_number);
+ }
+
+ if (GETPOST('account_parent', 'int') <= 0) {
+ $account_parent = 0;
+ } else {
+ $account_parent = GETPOST('account_parent', 'int');
+ }
+
+ $object->fk_pcg_version = $obj->pcg_version;
+ $object->pcg_type = GETPOST('pcg_type', 'alpha');
+ $object->account_number = $account_number;
+ $object->account_parent = $account_parent;
+ $object->account_category = GETPOST('account_category', 'alpha');
+ $object->label = $label;
+ $object->labelshort = GETPOST('labelshort', 'alpha');
+ $object->active = 1;
+
+ $res = $object->create($user);
+ if ($res == -3) {
+ $error = 1;
+ $action = "create";
+ setEventMessages($object->error, $object->errors, 'errors');
+ } elseif ($res == -4) {
+ $error = 2;
+ $action = "create";
+ setEventMessages($object->error, $object->errors, 'errors');
+ } elseif ($res < 0) {
+ $error++;
+ setEventMessages($object->error, $object->errors, 'errors');
+ $action = "create";
+ }
+ if (!$error) {
+ setEventMessages("RecordCreatedSuccessfully", null, 'mesgs');
+ $urltogo = $backtopage ? $backtopage : dol_buildpath('/accountancy/admin/account.php', 1);
+ header("Location: " . $urltogo);
+ exit;
+ }
}
}
} elseif ($action == 'edit' && $user->rights->accounting->chartofaccount) {
if (!$cancel) {
- $result = $object->fetch($id);
-
- $sql = 'SELECT pcg_version FROM '.MAIN_DB_PREFIX.'accounting_system WHERE rowid='.$conf->global->CHARTOFACCOUNTS;
-
- dol_syslog('accountancy/admin/card.php:: $sql='.$sql);
- $result2 = $db->query($sql);
- $obj = $db->fetch_object($result2);
-
- // Clean code
-
- // To manage zero or not at the end of the accounting account
- if ($conf->global->ACCOUNTING_MANAGE_ZERO == 1)
+ if (!$account_number)
{
- $account_number = GETPOST('account_number', 'string');
- } else {
- $account_number = clean_account(GETPOST('account_number', 'string'));
- }
-
- if (GETPOST('account_parent', 'int') <= 0)
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
+ $action = 'update';
+ } elseif (!$label)
{
- $account_parent = 0;
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
+ $action = 'update';
} else {
- $account_parent = GETPOST('account_parent', 'int');
- }
+ $result = $object->fetch($id);
- $object->fk_pcg_version = $obj->pcg_version;
- $object->pcg_type = GETPOST('pcg_type', 'alpha');
- $object->account_number = $account_number;
- $object->account_parent = $account_parent;
- $object->account_category = GETPOST('account_category', 'alpha');
- $object->label = GETPOST('label', 'alpha');
- $object->labelshort = GETPOST('labelshort', 'alpha');
+ $sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS;
- $result = $object->update($user);
+ dol_syslog('accountancy/admin/card.php:: $sql=' . $sql);
+ $result2 = $db->query($sql);
+ $obj = $db->fetch_object($result2);
- if ($result > 0) {
- $urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"]."?id=".$id);
- header("Location: ".$urltogo);
- exit();
- } else {
- $mesg = $object->error;
+ // Clean code
+
+ // To manage zero or not at the end of the accounting account
+ if ($conf->global->ACCOUNTING_MANAGE_ZERO == 1) {
+ $account_number = $account_number;
+ } else {
+ $account_number = clean_account($account_number);
+ }
+
+ if (GETPOST('account_parent', 'int') <= 0) {
+ $account_parent = 0;
+ } else {
+ $account_parent = GETPOST('account_parent', 'int');
+ }
+
+ $object->fk_pcg_version = $obj->pcg_version;
+ $object->pcg_type = GETPOST('pcg_type', 'alpha');
+ $object->account_number = $account_number;
+ $object->account_parent = $account_parent;
+ $object->account_category = GETPOST('account_category', 'alpha');
+ $object->label = $label;
+ $object->labelshort = GETPOST('labelshort', 'alpha');
+
+ $result = $object->update($user);
+
+ if ($result > 0) {
+ $urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"] . "?id=" . $id);
+ header("Location: " . $urltogo);
+ exit();
+ } else {
+ $mesg = $object->error;
+ }
}
} else {
$urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"]."?id=".$id);
@@ -222,7 +238,7 @@ if ($action == 'create') {
// Account number
print '
| '.$langs->trans("AccountNumber").' | ';
- print ' |
';
+ print ' | ';
// Label
print '| '.$langs->trans("Label").' | ';
diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php
index 1547983da0c..fcd7efdab47 100644
--- a/htdocs/accountancy/bookkeeping/balance.php
+++ b/htdocs/accountancy/bookkeeping/balance.php
@@ -37,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
// Load translation files required by the page
-$langs->loadLangs(array("accountancy"));
+$langs->loadLangs(array("accountancy", "compta"));
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
$sortorder = GETPOST("sortorder", 'alpha');
@@ -88,6 +88,7 @@ if (empty($search_date_start) && !GETPOSTISSET('formfilteraction'))
} else {
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
$year_start = dol_print_date(dol_now(), '%Y');
+ if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
$year_end = $year_start + 1;
$month_end = $month_start - 1;
if ($month_end < 1)
@@ -322,7 +323,9 @@ if ($action != 'export_csv')
$root_account_number = $tmparrayforrootaccount['account_number'];
if (empty($accountingaccountstatic->label) && $accountingaccountstatic->id > 0) {
- $link = ''.img_edit().'';
+ $link = '' . img_edit() . '';
+ } elseif (empty($tmparrayforrootaccount['label'])) {
+ $link = '' . img_edit_add() . '';
}
if (!empty($show_subgroup))
diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php
index b3cec7710a4..3bcea99dc39 100644
--- a/htdocs/accountancy/bookkeeping/list.php
+++ b/htdocs/accountancy/bookkeeping/list.php
@@ -36,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
// Load translation files required by the page
-$langs->loadLangs(array("accountancy"));
+$langs->loadLangs(array("accountancy", "compta"));
$socid = GETPOST('socid', 'int');
@@ -638,7 +638,7 @@ if (empty($reshook)) {
}
$newcardbutton .= ''.$langs->trans("IncludeDocsAlreadyExported").'';
- $newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file'.($param ? '&'.$param : ''), $user->rights->accounting->mouvements->export);
+ if (!empty($user->rights->accounting->mouvements->export)) $newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file'.($param ? '&'.$param : ''), $user->rights->accounting->mouvements->export);
$newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected'));
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly'));
diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php
index 4847dfd2e9a..6bab55f0f52 100644
--- a/htdocs/accountancy/bookkeeping/listbyaccount.php
+++ b/htdocs/accountancy/bookkeeping/listbyaccount.php
@@ -48,6 +48,14 @@ $search_date_endday = GETPOST('search_date_endday', 'int');
$search_date_start = dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
$search_date_end = dol_mktime(0, 0, 0, $search_date_endmonth, $search_date_endday, $search_date_endyear);
$search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
+$search_date_export_startyear = GETPOST('search_date_export_startyear', 'int');
+$search_date_export_startmonth = GETPOST('search_date_export_startmonth', 'int');
+$search_date_export_startday = GETPOST('search_date_export_startday', 'int');
+$search_date_export_endyear = GETPOST('search_date_export_endyear', 'int');
+$search_date_export_endmonth = GETPOST('search_date_export_endmonth', 'int');
+$search_date_export_endday = GETPOST('search_date_export_endday', 'int');
+$search_date_export_start = dol_mktime(0, 0, 0, $search_date_export_startmonth, $search_date_export_startday, $search_date_export_startyear);
+$search_date_export_end = dol_mktime(0, 0, 0, $search_date_export_endmonth, $search_date_export_endday, $search_date_export_endyear);
$search_accountancy_code = GETPOST("search_accountancy_code");
$search_accountancy_code_start = GETPOST('search_accountancy_code_start', 'alpha');
@@ -128,6 +136,7 @@ $arrayfields = array(
't.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1),
't.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1),
't.lettering_code'=>array('label'=>$langs->trans("LetteringCode"), 'checked'=>1),
+ 't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1),
);
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) unset($arrayfields['t.lettering_code']);
@@ -181,6 +190,14 @@ if (empty($reshook))
$search_date_endyear = '';
$search_date_endmonth = '';
$search_date_endday = '';
+ $search_date_export_start = '';
+ $search_date_export_end = '';
+ $search_date_export_startyear = '';
+ $search_date_export_startmonth = '';
+ $search_date_export_startday = '';
+ $search_date_export_endyear = '';
+ $search_date_export_endmonth = '';
+ $search_date_export_endday = '';
$search_debit = '';
$search_credit = '';
$search_lettering_code = '';
@@ -251,6 +268,14 @@ if (empty($reshook))
$filter['t.reconciled_option'] = $search_not_reconciled;
$param .= '&search_not_reconciled='.urlencode($search_not_reconciled);
}
+ if (!empty($search_date_export_start)) {
+ $filter['t.date_export>='] = $search_date_export_start;
+ $param .= '&search_date_export_startmonth='.$search_date_export_startmonth.'&search_date_export_startday='.$search_date_export_startday.'&search_date_export_startyear='.$search_date_export_startyear;
+ }
+ if (!empty($search_date_export_end)) {
+ $filter['t.date_export<='] = $search_date_export_end;
+ $param .= '&search_date_export_endmonth='.$search_date_export_endmonth.'&search_date_export_endday='.$search_date_export_endday.'&search_date_export_endyear='.$search_date_export_endyear;
+ }
}
if ($action == 'delbookkeeping' && $user->rights->accounting->mouvements->supprimer) {
@@ -490,6 +515,17 @@ if (!empty($arrayfields['t.lettering_code']['checked']))
print '
'.$langs->trans("NotReconciled").'';
print '';
}
+// Date export
+if (!empty($arrayfields['t.date_export']['checked'])) {
+ print '';
+ print ' ';
+ print $form->selectDate($search_date_export_start, 'search_date_export_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
+ print ' ';
+ print '';
+ print $form->selectDate($search_date_export_end, 'search_date_export_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("to"));
+ print ' ';
+ print ' | ';
+}
// Fields from hook
$parameters = array('arrayfields'=>$arrayfields);
@@ -512,6 +548,7 @@ if (!empty($arrayfields['t.label_operation']['checked'])) print_liste_field_tit
if (!empty($arrayfields['t.debit']['checked'])) print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, '', $sortfield, $sortorder, 'right ');
if (!empty($arrayfields['t.credit']['checked'])) print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, '', $sortfield, $sortorder, 'right ');
if (!empty($arrayfields['t.lettering_code']['checked'])) print_liste_field_titre($arrayfields['t.lettering_code']['label'], $_SERVER['PHP_SELF'], "t.lettering_code", "", $param, '', $sortfield, $sortorder, 'center ');
+if (!empty($arrayfields['t.date_export']['checked'])) print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center ');
// Hook fields
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
@@ -542,13 +579,12 @@ while ($i < min($num, $limit))
// Is it a break ?
if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
- if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) {
- $colnumber = 3;
- $colnumberend = 7;
- } else {
- $colnumber = 4;
- $colnumberend = 7;
- }
+ $colnumber = 5;
+ $colnumberend = 7;
+
+ if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) $colnumber--;
+ if (empty($arrayfields['t.date_export']['checked'])) $colnumber--;
+
$colspan = $totalarray['nbfield'] - $colnumber;
$colspanend = $totalarray['nbfield'] - $colnumberend;
// Show a subtotal by accounting account
@@ -581,7 +617,7 @@ while ($i < min($num, $limit))
// Show the break account
print "
";
- print '| ';
+ print ' | ';
if ($line->numero_compte != "" && $line->numero_compte != '-1') print length_accountg($line->numero_compte).' : '.$object->get_compte_desc($line->numero_compte);
else print ''.$langs->trans("Unknown").'';
print ' | ';
@@ -722,6 +758,13 @@ while ($i < min($num, $limit))
if (!$i) $totalarray['nbfield']++;
}
+ // Exported operation date
+ if (!empty($arrayfields['t.date_export']['checked']))
+ {
+ print ''.dol_print_date($line->date_export, 'dayhour').' | ';
+ if (!$i) $totalarray['nbfield']++;
+ }
+
// Fields from hook
$parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj);
$reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook
@@ -750,14 +793,6 @@ while ($i < min($num, $limit))
}
if ($num > 0) {
- // Show sub-total of last shown account
- if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) {
- $colnumber = 3;
- $colnumberend = 7;
- } else {
- $colnumber = 4;
- $colnumberend = 7;
- }
$colspan = $totalarray['nbfield'] - $colnumber;
$colspanend = $totalarray['nbfield'] - $colnumberend;
print '
';
diff --git a/htdocs/accountancy/bookkeeping/listbysubaccount.php b/htdocs/accountancy/bookkeeping/listbysubaccount.php
index abbf5df60e7..f010e9efbcf 100644
--- a/htdocs/accountancy/bookkeeping/listbysubaccount.php
+++ b/htdocs/accountancy/bookkeeping/listbysubaccount.php
@@ -48,6 +48,14 @@ $search_date_endday = GETPOST('search_date_endday', 'int');
$search_date_start = dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
$search_date_end = dol_mktime(0, 0, 0, $search_date_endmonth, $search_date_endday, $search_date_endyear);
$search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
+$search_date_export_startyear = GETPOST('search_date_export_startyear', 'int');
+$search_date_export_startmonth = GETPOST('search_date_export_startmonth', 'int');
+$search_date_export_startday = GETPOST('search_date_export_startday', 'int');
+$search_date_export_endyear = GETPOST('search_date_export_endyear', 'int');
+$search_date_export_endmonth = GETPOST('search_date_export_endmonth', 'int');
+$search_date_export_endday = GETPOST('search_date_export_endday', 'int');
+$search_date_export_start = dol_mktime(0, 0, 0, $search_date_export_startmonth, $search_date_export_startday, $search_date_export_startyear);
+$search_date_export_end = dol_mktime(0, 0, 0, $search_date_export_endmonth, $search_date_export_endday, $search_date_export_endyear);
$search_accountancy_code = GETPOST("search_accountancy_code");
$search_accountancy_code_start = GETPOST('search_accountancy_code_start', 'alpha');
@@ -128,6 +136,7 @@ $arrayfields = array(
't.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1),
't.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1),
't.lettering_code'=>array('label'=>$langs->trans("LetteringCode"), 'checked'=>1),
+ 't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1),
);
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) unset($arrayfields['t.lettering_code']);
@@ -149,6 +158,7 @@ if ($search_date_end && empty($search_date_endyear)) {
/*
* Action
*/
+
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
@@ -180,6 +190,14 @@ if (empty($reshook))
$search_date_endyear = '';
$search_date_endmonth = '';
$search_date_endday = '';
+ $search_date_export_start = '';
+ $search_date_export_end = '';
+ $search_date_export_startyear = '';
+ $search_date_export_startmonth = '';
+ $search_date_export_startday = '';
+ $search_date_export_endyear = '';
+ $search_date_export_endmonth = '';
+ $search_date_export_endday = '';
$search_debit = '';
$search_credit = '';
$search_lettering_code = '';
@@ -250,6 +268,14 @@ if (empty($reshook))
$filter['t.reconciled_option'] = $search_not_reconciled;
$param .= '&search_not_reconciled='.urlencode($search_not_reconciled);
}
+ if (!empty($search_date_export_start)) {
+ $filter['t.date_export>='] = $search_date_export_start;
+ $param .= '&search_date_export_startmonth='.$search_date_export_startmonth.'&search_date_export_startday='.$search_date_export_startday.'&search_date_export_startyear='.$search_date_export_startyear;
+ }
+ if (!empty($search_date_export_end)) {
+ $filter['t.date_export<='] = $search_date_export_end;
+ $param .= '&search_date_export_endmonth='.$search_date_export_endmonth.'&search_date_export_endday='.$search_date_export_endday.'&search_date_export_endyear='.$search_date_export_endyear;
+ }
}
if ($action == 'delbookkeeping' && $user->rights->accounting->mouvements->supprimer) {
@@ -287,7 +313,7 @@ if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouveme
}
// Make a redirect to avoid to launch the delete later after a back button
- header("Location: listbysubaccount.php".($param ? '?'.$param : ''));
+ header("Location: ".$_SERVER["PHP_SELF"].($param ? '?'.$param : ''));
exit;
} else {
setEventMessages("NoRecordDeleted", null, 'warnings');
@@ -304,7 +330,7 @@ if ($action == 'delmouvconfirm' && $user->rights->accounting->mouvements->suppri
setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs');
}
- header("Location: listbysubaccount.php?noreset=1".($param ? '&'.$param : ''));
+ header("Location: ".$_SERVER["PHP_SELF"]."?noreset=1".($param ? '&'.$param : ''));
exit;
}
}
@@ -403,7 +429,6 @@ if (empty($reshook)) {
$newcardbutton = dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param);
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php', '', 1, array('morecss' => 'marginleftonly'));
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbysubaccount.php', '', 1, array('morecss' => 'marginleftonly btnTitleSelected'));
-
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?action=create');
}
@@ -494,6 +519,17 @@ if (!empty($arrayfields['t.lettering_code']['checked']))
print '
'.$langs->trans("NotReconciled").'';
print '';
}
+// Date export
+if (!empty($arrayfields['t.date_export']['checked'])) {
+ print '';
+ print ' ';
+ print $form->selectDate($search_date_export_start, 'search_date_export_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
+ print ' ';
+ print '';
+ print $form->selectDate($search_date_export_end, 'search_date_export_end', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("to"));
+ print ' ';
+ print ' | ';
+}
// Fields from hook
$parameters = array('arrayfields'=>$arrayfields);
@@ -516,6 +552,7 @@ if (!empty($arrayfields['t.label_operation']['checked'])) print_liste_field_tit
if (!empty($arrayfields['t.debit']['checked'])) print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, '', $sortfield, $sortorder, 'right ');
if (!empty($arrayfields['t.credit']['checked'])) print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, '', $sortfield, $sortorder, 'right ');
if (!empty($arrayfields['t.lettering_code']['checked'])) print_liste_field_titre($arrayfields['t.lettering_code']['label'], $_SERVER['PHP_SELF'], "t.lettering_code", "", $param, '', $sortfield, $sortorder, 'center ');
+if (!empty($arrayfields['t.date_export']['checked'])) print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center ');
// Hook fields
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
$reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
@@ -546,13 +583,12 @@ while ($i < min($num, $limit))
// Is it a break ?
if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
- if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) {
- $colnumber = 3;
- $colnumberend = 7;
- } else {
- $colnumber = 4;
- $colnumberend = 7;
- }
+ $colnumber = 5;
+ $colnumberend = 7;
+
+ if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) $colnumber--;
+ if (empty($arrayfields['t.date_export']['checked'])) $colnumber--;
+
$colspan = $totalarray['nbfield'] - $colnumber;
$colspanend = $totalarray['nbfield'] - $colnumberend;
// Show a subtotal by accounting account
@@ -585,7 +621,7 @@ while ($i < min($num, $limit))
// Show the break account
print "
";
- print '| ';
+ print ' | ';
if ($line->subledger_account != "" && $line->subledger_account != '-1') {
print $object->get_compte_desc($line->numero_compte).' : '.length_accounta($line->subledger_account);
} else {
@@ -734,6 +770,13 @@ while ($i < min($num, $limit))
if (!$i) $totalarray['nbfield']++;
}
+ // Exported operation date
+ if (!empty($arrayfields['t.date_export']['checked']))
+ {
+ print ' | '.dol_print_date($line->date_export, 'dayhour').' | ';
+ if (!$i) $totalarray['nbfield']++;
+ }
+
// Fields from hook
$parameters = array('arrayfields'=>$arrayfields, 'obj'=>$obj);
$reshook = $hookmanager->executeHooks('printFieldListValue', $parameters); // Note that $action and $object may have been modified by hook
@@ -762,14 +805,6 @@ while ($i < min($num, $limit))
}
if ($num > 0) {
- // Show sub-total of last shown account
- if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) {
- $colnumber = 3;
- $colnumberend = 7;
- } else {
- $colnumber = 4;
- $colnumberend = 7;
- }
$colspan = $totalarray['nbfield'] - $colnumber;
$colspanend = $totalarray['nbfield'] - $colnumberend;
print '
';
diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php
index 72428762459..8261a5f4173 100644
--- a/htdocs/accountancy/class/bookkeeping.class.php
+++ b/htdocs/accountancy/class/bookkeeping.class.php
@@ -795,7 +795,7 @@ class BookKeeping extends CommonObject
$sql .= " t.label_operation,";
$sql .= " t.debit,";
$sql .= " t.credit,";
- $sql .= " t.montant,";
+ $sql .= " t.montant as amount,";
$sql .= " t.sens,";
$sql .= " t.multicurrency_amount,";
$sql .= " t.multicurrency_code,";
@@ -806,7 +806,8 @@ class BookKeeping extends CommonObject
$sql .= " t.code_journal,";
$sql .= " t.journal_label,";
$sql .= " t.piece_num,";
- $sql .= " t.date_creation";
+ $sql .= " t.date_creation,";
+ $sql .= " t.date_export";
// Manage filter
$sqlwhere = array();
if (count($filter) > 0) {
@@ -823,6 +824,8 @@ class BookKeeping extends CommonObject
$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.date_export>=' || $key == 't.date_export<=') {
+ $sqlwhere[] = $key.'\''.$this->db->idate($value).'\'';
} elseif ($key == 't.credit' || $key == 't.debit') {
$sqlwhere[] = natural_search($key, $value, 1, 1);
} elseif ($key == 't.reconciled_option') {
@@ -878,7 +881,8 @@ class BookKeeping extends CommonObject
$line->label_operation = $obj->label_operation;
$line->debit = $obj->debit;
$line->credit = $obj->credit;
- $line->montant = $obj->montant;
+ $line->montant = $obj->amount; // deprecated
+ $line->amount = $obj->amount;
$line->sens = $obj->sens;
$line->multicurrency_amount = $obj->multicurrency_amount;
$line->multicurrency_code = $obj->multicurrency_code;
@@ -889,7 +893,8 @@ 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;
+ $line->date_creation = $this->db->jdate($obj->date_creation);
+ $line->date_export = $this->db->jdate($obj->date_export);
$this->lines[] = $line;
@@ -941,7 +946,7 @@ class BookKeeping extends CommonObject
$sql .= " t.credit,";
$sql .= " t.lettering_code,";
$sql .= " t.date_lettering,";
- $sql .= " t.montant,";
+ $sql .= " t.montant as amount,";
$sql .= " t.sens,";
$sql .= " t.fk_user_author,";
$sql .= " t.import_key,";
@@ -1019,7 +1024,8 @@ class BookKeeping extends CommonObject
$line->label_operation = $obj->label_operation;
$line->debit = $obj->debit;
$line->credit = $obj->credit;
- $line->montant = $obj->montant;
+ $line->montant = $obj->amount; // deprecated
+ $line->amount = $obj->amount;
$line->sens = $obj->sens;
$line->lettering_code = $obj->lettering_code;
$line->date_lettering = $obj->date_lettering;
diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php
index 05149030f9e..62e95b2c001 100644
--- a/htdocs/admin/dict.php
+++ b/htdocs/admin/dict.php
@@ -621,6 +621,7 @@ if ($id == 11)
// 'contract' => $langs->trans('Contract'),
'project' => $langs->trans('Project'),
'project_task' => $langs->trans('Task'),
+ 'ticket' => $langs->trans('Ticket'),
'agenda' => $langs->trans('Agenda'),
'dolresource' => $langs->trans('Resource'),
// old deprecated
@@ -1492,11 +1493,9 @@ if ($id)
continue;
}
- if ($value == 'element')
- {
+ if ($value == 'element') {
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
- } elseif ($value == 'source')
- {
+ } elseif ($value == 'source') {
$valuetoshow = isset($sourceList[$valuetoshow]) ? $sourceList[$valuetoshow] : $valuetoshow;
} elseif ($valuetoshow == 'all') {
$valuetoshow = $langs->trans('All');
diff --git a/htdocs/admin/system/filecheck.php b/htdocs/admin/system/filecheck.php
index a94a78a9794..4ed21144346 100644
--- a/htdocs/admin/system/filecheck.php
+++ b/htdocs/admin/system/filecheck.php
@@ -264,7 +264,7 @@ if (!$error && $xml)
$out .= "
\n";
}
} else {
- $out .= '| '.$langs->trans("None").' |
';
+ $out .= '| '.$langs->trans("None").' |
';
}
$out .= '';
$out .= '';
@@ -317,7 +317,7 @@ if (!$error && $xml)
$out .= ' | '."\n";
$out .= "\n";
} else {
- $out .= '| '.$langs->trans("None").' |
';
+ $out .= '| '.$langs->trans("None").' |
';
}
$out .= '';
$out .= '';
@@ -370,12 +370,11 @@ if (!$error && $xml)
$out .= ' | '."\n";
$out .= "\n";
} else {
- $out .= '| '.$langs->trans("None").' |
';
+ $out .= '| '.$langs->trans("None").' |
';
}
$out .= '';
$out .= '';
-
// Show warning
if (empty($tmpfilelist) && empty($tmpfilelist2) && empty($tmpfilelist3))
{
diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php
index 5c170d0aa72..47f1d336279 100644
--- a/htdocs/bom/bom_card.php
+++ b/htdocs/bom/bom_card.php
@@ -134,10 +134,10 @@ if (empty($reshook))
// Set if we used free entry or predefined product
$idprod = (int) GETPOST('idprod', 'int');
- $qty = GETPOST('qty', 'int');
- $qty_frozen = GETPOST('qty_frozen', 'int');
+ $qty = price2num(GETPOST('qty', 'alpha'), 'MS');
+ $qty_frozen = price2num(GETPOST('qty_frozen', 'alpha'), 'MS');
$disable_stock_change = GETPOST('disable_stock_change', 'int');
- $efficiency = GETPOST('efficiency', 'int');
+ $efficiency = price2num(GETPOST('efficiency', 'alpha'));
if ($qty == '') {
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), null, 'errors');
@@ -155,8 +155,6 @@ if (empty($reshook))
if (!$error)
{
- $lastposition = 0;
-
$bomline = new BOMLine($db);
$bomline->fk_bom = $id;
$bomline->fk_product = $idprod;
@@ -181,8 +179,10 @@ if (empty($reshook))
unset($_POST['qty_frozen']);
unset($_POST['disable_stock_change']);
- $object->fetchLines();
- }
+ $object->fetchLines();
+
+ $object->calculateCosts();
+ }
}
}
@@ -193,10 +193,10 @@ if (empty($reshook))
$error = 0;
// Set if we used free entry or predefined product
- $qty = price2num(GETPOST('qty', 'int'));
- $qty_frozen = GETPOST('qty_frozen', 'int');
+ $qty = price2num(GETPOST('qty', 'alpha'), 'MS');
+ $qty_frozen = price2num(GETPOST('qty_frozen', 'alpha'), 'MS');
$disable_stock_change = GETPOST('disable_stock_change', 'int');
- $efficiency = price2num(GETPOST('efficiency', 'int'));
+ $efficiency = price2num(GETPOST('efficiency', 'alpha'));
if ($qty == '') {
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), null, 'errors');
@@ -221,7 +221,9 @@ if (empty($reshook))
unset($_POST['qty_frozen']);
unset($_POST['disable_stock_change']);
- $object->fetchLines();
+ $object->fetchLines();
+
+ $object->calculateCosts();
}
}
}
diff --git a/htdocs/bom/tpl/objectline_create.tpl.php b/htdocs/bom/tpl/objectline_create.tpl.php
index d29cdb7c6bb..1f0a00cb4b8 100644
--- a/htdocs/bom/tpl/objectline_create.tpl.php
+++ b/htdocs/bom/tpl/objectline_create.tpl.php
@@ -113,7 +113,6 @@ if (!empty($conf->global->PRODUCT_USE_UNITS))
{
$coldisplay++;
print '';
- // print $form->selectUnits(empty($line->fk_unit) ? $conf->global->PRODUCT_USE_UNITS : $line->fk_unit, "units");
print ' | ';
}
diff --git a/htdocs/bom/tpl/objectline_edit.tpl.php b/htdocs/bom/tpl/objectline_edit.tpl.php
index 77638b875ff..f31db94403b 100644
--- a/htdocs/bom/tpl/objectline_edit.tpl.php
+++ b/htdocs/bom/tpl/objectline_edit.tpl.php
@@ -112,7 +112,6 @@ if (!empty($conf->global->PRODUCT_USE_UNITS))
{
$coldisplay++;
print '';
- // print $form->selectUnits($line->fk_unit, "units");
print ' | ';
}
diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php
index 12146179db0..997a5848434 100644
--- a/htdocs/comm/propal/card.php
+++ b/htdocs/comm/propal/card.php
@@ -809,7 +809,7 @@ if (empty($reshook))
$tva_tx = '';
}
- $qty = price2num(GETPOST('qty'.$predef), 'MS');
+ $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS');
$remise_percent = GETPOST('remise_percent'.$predef);
if (empty($remise_percent)) $remise_percent = 0;
@@ -1234,7 +1234,7 @@ if (empty($reshook))
}
}
- $qty = price2num(GETPOST('qty'), 'MS');
+ $qty = price2num(GETPOST('qty', 'alpha'), 'MS');
$result = $object->updateline(GETPOST('lineid', 'int'), $pu_ht, $qty, GETPOST('remise_percent'), $vat_rate, $localtax1_rate, $localtax2_rate, $description, 'HT', $info_bits, $special_code, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $type, $date_start, $date_end, $array_options, $_POST["units"], $pu_ht_devise);
diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
index 2ea5c37bf39..b06acda7105 100644
--- a/htdocs/commande/card.php
+++ b/htdocs/commande/card.php
@@ -633,7 +633,7 @@ if (empty($reshook))
$predef = '';
$product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht'), 'MU');
- $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CR');
+ $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU');
$prod_entry_mode = GETPOST('prod_entry_mode');
if ($prod_entry_mode == 'free')
{
@@ -644,7 +644,7 @@ if (empty($reshook))
$tva_tx = '';
}
- $qty = price2num(GETPOST('qty'.$predef, 'alpha'));
+ $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS');
$remise_percent = (GETPOSTISSET('remise_percent'.$predef) ? price2num(GETPOST('remise_percent'.$predef, 'alpha')) : 0);
// Extrafields
diff --git a/htdocs/compta/bank/line.php b/htdocs/compta/bank/line.php
index 33f7f3a0352..467f6b7b78b 100644
--- a/htdocs/compta/bank/line.php
+++ b/htdocs/compta/bank/line.php
@@ -58,11 +58,15 @@ if ($user->socid) $socid = $user->socid;
$result = restrictedArea($user, 'banque', $fieldvalue, 'bank_account', '', '', $fieldtype);
if (!$user->rights->banque->lire && !$user->rights->banque->consolidate) accessforbidden();
+$hookmanager->initHooks(array('bankline'));
+
/*
* Actions
*/
-
+$parameters = array('socid' => $socid);
+$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
+if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
if ($cancel)
{
if ($backtopage)
diff --git a/htdocs/compta/bank/transfer.php b/htdocs/compta/bank/transfer.php
index 7e1b7fd0567..5aeec4f444c 100644
--- a/htdocs/compta/bank/transfer.php
+++ b/htdocs/compta/bank/transfer.php
@@ -40,11 +40,14 @@ if (!$user->rights->banque->transfer)
$action = GETPOST('action', 'aZ09');
$error = 0;
+$hookmanager->initHooks(array('banktransfer'));
/*
* Actions
*/
-
+$parameters = array('socid' => $socid);
+$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
+if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
if ($action == 'add')
{
$langs->load("errors");
diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php
index 0efe367089c..0c2db362e75 100644
--- a/htdocs/compta/bank/various_payment/card.php
+++ b/htdocs/compta/bank/various_payment/card.php
@@ -1,5 +1,5 @@
+/* Copyright (C) 2017-2021 Alexandre Spangaro
* Copyright (C) 2018-2020 Frédéric France
*
* This program is free software; you can redistribute it and/or modify
@@ -266,6 +266,18 @@ if ($action == 'confirm_clone' && $confirm == 'yes' && ($user->rights->banque->m
$object->datev = $newdatepayment;
}
+ if (GETPOSTISSET("clone_sens")) {
+ $object->sens = GETPOST("clone_sens", 'int');
+ } else {
+ $object->sens = $object->sens;
+ }
+
+ if (GETPOST("clone_amount", "alpha")) {
+ $object->amount = price2num(GETPOST("clone_amount", "alpha"));
+ } else {
+ $object->amount = price2num($object->amount);
+ }
+
if ($object->check())
{
$id = $object->create($user);
@@ -486,14 +498,19 @@ if ($id)
// Clone confirmation
if ($action === 'clone')
{
+ $set_value_help = $form->textwithpicto('', $langs->trans($langs->trans("AccountingDirectionHelp")));
+ $sensarray = array('0' => $langs->trans("Debit"), '1' => $langs->trans("Credit"));
+
$formquestion = array(
array('type' => 'text', 'name' => 'clone_label', 'label' => $langs->trans("Label"), 'value' => $langs->trans("CopyOf").' '.$object->label),
- );
- $formquestion[] = array('type' => 'date', 'tdclass'=>'fieldrequired', 'name' => 'clone_date_payment', 'label' => $langs->trans("DatePayment"), 'value' => -1);
- $formquestion[] = array('type' => 'date', 'name' => 'clone_date_value', 'label' => $langs->trans("DateValue"), 'value' => -1);
- $formquestion[] = array('type' => 'other', 'tdclass'=>'fieldrequired', 'name' => 'accountid', 'label' => $langs->trans("BankAccount"), 'value' => $form->select_comptes($accountid, "accountid", 0, '', 1, '', 0, 'minwidth200', 1));
+ array('type' => 'date', 'tdclass'=>'fieldrequired', 'name' => 'clone_date_payment', 'label' => $langs->trans("DatePayment"), 'value' => -1),
+ array('type' => 'date', 'name' => 'clone_date_value', 'label' => $langs->trans("DateValue"), 'value' => -1),
+ array('type' => 'other', 'tdclass'=>'fieldrequired', 'name' => 'clone_accountid', 'label' => $langs->trans("BankAccount"), 'value' => $form->select_comptes($object->fk_account, "accountid", 0, '', 1, '', 0, 'minwidth200', 1)),
+ array('type' => 'text', 'name' => 'clone_amount', 'label' => $langs->trans("Amount"), 'value' => price($object->amount)),
+ array('type' => 'select', 'name' => 'clone_sens', 'label' => $langs->trans("Sens") . ' ' . $set_value_help, 'values' => $sensarray, 'default' => $object->sens),
+ );
- print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneVariousPayment', $object->ref), 'confirm_clone', $formquestion, 'yes', 1, 300);
+ print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneVariousPayment', $object->ref), 'confirm_clone', $formquestion, 'yes', 1, 350);
}
print dol_get_fiche_head($head, 'card', $langs->trans("VariousPayment"), -1, $object->picto);
diff --git a/htdocs/compta/facture/card-rec.php b/htdocs/compta/facture/card-rec.php
index 097585dbea0..64b00aaa156 100644
--- a/htdocs/compta/facture/card-rec.php
+++ b/htdocs/compta/facture/card-rec.php
@@ -439,7 +439,7 @@ if (empty($reshook))
$predef = '';
$product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht'), 'MU');
- $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CR');
+ $price_ht_devise = price2num(GETPOST('multicurrency_price_ht'), 'CU');
$prod_entry_mode = GETPOST('prod_entry_mode', 'alpha');
if ($prod_entry_mode == 'free')
{
@@ -450,7 +450,7 @@ if (empty($reshook))
$tva_tx = '';
}
- $qty = price2num(GETPOST('qty'.$predef), 'alpha');
+ $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS');
$remise_percent = GETPOST('remise_percent'.$predef);
// Extrafields
diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
index d9c272df559..1f5e0456937 100644
--- a/htdocs/compta/facture/card.php
+++ b/htdocs/compta/facture/card.php
@@ -984,39 +984,39 @@ if (empty($reshook))
$action = 'create';
}
- if (!($_POST['fac_replacement'] > 0)) {
+ if (!(GETPOST('fac_replacement', 'int') > 0)) {
$error++;
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ReplaceInvoice")), null, 'errors');
$action = 'create';
}
- $date_pointoftax = dol_mktime(12, 0, 0, $_POST['date_pointoftaxmonth'], $_POST['date_pointoftaxday'], $_POST['date_pointoftaxyear']);
+ $date_pointoftax = dol_mktime(12, 0, 0, GETPOST('date_pointoftaxmonth', 'int'), GETPOST('date_pointoftaxday', 'int'), GETPOST('date_pointoftaxyear', 'int'));
if (!$error) {
// This is a replacement invoice
- $result = $object->fetch($_POST['fac_replacement']);
+ $result = $object->fetch(GETPOST('fac_replacement', 'int'));
$object->fetch_thirdparty();
$object->date = $dateinvoice;
$object->date_pointoftax = $date_pointoftax;
$object->note_public = trim(GETPOST('note_public', 'restricthtml'));
// We do not copy the private note
- $object->ref_client = $_POST['ref_client'];
- $object->ref_int = $_POST['ref_int'];
- $object->model_pdf = $_POST['model'];
- $object->fk_project = $_POST['projectid'];
- $object->cond_reglement_id = $_POST['cond_reglement_id'];
- $object->mode_reglement_id = $_POST['mode_reglement_id'];
+ $object->ref_client = GETPOST('ref_client');
+ //$object->ref_int = $_POST['ref_int'];
+ $object->model_pdf = GETPOST('model');
+ $object->fk_project = GETPOST('projectid', 'int');
+ $object->cond_reglement_id = GETPOST('cond_reglement_id', 'int');
+ $object->mode_reglement_id = GETPOST('mode_reglement_id', 'int');
$object->fk_account = GETPOST('fk_account', 'int');
- $object->remise_absolue = $_POST['remise_absolue'];
- $object->remise_percent = $_POST['remise_percent'];
+ $object->remise_absolue = GETPOST('remise_absolue', 'alpha');
+ $object->remise_percent = GETPOST('remise_percent', 'alpha');
$object->fk_incoterms = GETPOST('incoterm_id', 'int');
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
$object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int');
// Proprietes particulieres a facture de remplacement
- $object->fk_facture_source = $_POST['fac_replacement'];
+ $object->fk_facture_source = GETPOST('fac_replacement', 'int');
$object->type = Facture::TYPE_REPLACEMENT;
$id = $object->createFromCurrent($user);
@@ -1732,9 +1732,9 @@ if (empty($reshook))
setEventMessages($mesg, null, 'errors');
}
- $date_pointoftax = dol_mktime(12, 0, 0, $_POST['date_pointoftaxmonth'], $_POST['date_pointoftaxday'], $_POST['date_pointoftaxyear']);
+ $date_pointoftax = dol_mktime(12, 0, 0, GETPOST('date_pointoftaxmonth', 'int'), GETPOST('date_pointoftaxday', 'int'), GETPOST('date_pointoftaxyear', 'int'));
- if (!($_POST['situations'] > 0)) {
+ if (!(GETPOST('situations', 'int') > 0)) {
$error++;
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("InvoiceSituation"));
setEventMessages($mesg, null, 'errors');
@@ -1742,8 +1742,8 @@ if (empty($reshook))
}
if (!$error) {
- $result = $object->fetch($_POST['situations']);
- $object->fk_facture_source = $_POST['situations'];
+ $result = $object->fetch(GETPOST('situations', 'int'));
+ $object->fk_facture_source = GETPOST('situations', 'int');
$object->type = Facture::TYPE_SITUATION;
if (!empty($origin) && !empty($originid))
diff --git a/htdocs/compta/sociales/card.php b/htdocs/compta/sociales/card.php
index bf28ceb0996..ccb413ecf6f 100644
--- a/htdocs/compta/sociales/card.php
+++ b/htdocs/compta/sociales/card.php
@@ -182,8 +182,7 @@ if ($action == 'update' && !$_POST["cancel"] && $user->rights->tax->charges->cre
if (!$dateech)
{
- setEventMessages($langs->trans("ErrorFieldReqrequire_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
-uired", $langs->transnoentities("Date")), null, 'errors');
+ setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Date")), null, 'errors');
$action = 'edit';
} elseif (!$dateperiod)
{
diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
index 9ec2e04ee5c..a346d955f14 100644
--- a/htdocs/contrat/card.php
+++ b/htdocs/contrat/card.php
@@ -385,7 +385,7 @@ if (empty($reshook))
$predef = '';
$product_desc = (GETPOSTISSET('dp_desc') ? GETPOST('dp_desc', 'restricthtml') : '');
$price_ht = price2num(GETPOST('price_ht'), 'MU');
- $price_ht_devise = price2num(GETPOST('multicurrency_price_ht', 'CR'));
+ $price_ht_devise = price2num(GETPOST('multicurrency_price_ht', 'CU'));
if (GETPOST('prod_entry_mode', 'alpha') == 'free')
{
$idprod = 0;
@@ -395,7 +395,7 @@ if (empty($reshook))
$tva_tx = '';
}
- $qty = price2num(GETPOST('qty'.$predef), 'alpha');
+ $qty = price2num(GETPOST('qty'.$predef, 'alpha'), 'MS');
$remise_percent = ((GETPOST('remise_percent'.$predef) != '') ? GETPOST('remise_percent'.$predef) : 0);
if ($qty == '')
diff --git a/htdocs/core/boxes/box_birthdays.php b/htdocs/core/boxes/box_birthdays.php
index 9a2ccd33cf7..ea83e022079 100644
--- a/htdocs/core/boxes/box_birthdays.php
+++ b/htdocs/core/boxes/box_birthdays.php
@@ -91,7 +91,7 @@ class box_birthdays extends ModeleBoxes
$sql .= " WHERE u.entity IN (".getEntity('user').")";
$sql .= " AND u.statut = 1";
$sql .= dolSqlDateFilter('u.birth', 0, $tmparray['mon'], 0);
- $sql .= " ORDER BY u.birth ASC";
+ $sql .= " ORDER BY DAY(u.birth) ASC";
$sql .= $this->db->plimit($max, 0);
dol_syslog(get_class($this)."::loadBox", LOG_DEBUG);
diff --git a/htdocs/core/boxes/box_birthdays_members.php b/htdocs/core/boxes/box_birthdays_members.php
index 02a315ea836..56619fac581 100644
--- a/htdocs/core/boxes/box_birthdays_members.php
+++ b/htdocs/core/boxes/box_birthdays_members.php
@@ -91,7 +91,7 @@ class box_birthdays_members extends ModeleBoxes
$sql .= " WHERE u.entity IN (".getEntity('adherent').")";
$sql .= " AND u.statut = 1";
$sql .= dolSqlDateFilter('u.birth', 0, $tmparray['mon'], 0);
- $sql .= " ORDER BY u.birth ASC";
+ $sql .= " ORDER BY DAY(u.birth) ASC";
$sql .= $this->db->plimit($max, 0);
dol_syslog(get_class($this)."::loadBox", LOG_DEBUG);
diff --git a/htdocs/core/boxes/box_graph_invoices_permonth.php b/htdocs/core/boxes/box_graph_invoices_permonth.php
index 983bb75cbc3..71c750c3e73 100644
--- a/htdocs/core/boxes/box_graph_invoices_permonth.php
+++ b/htdocs/core/boxes/box_graph_invoices_permonth.php
@@ -120,7 +120,8 @@ class box_graph_invoices_permonth extends ModeleBoxes
if (empty($shownb) && empty($showtot)) { $shownb = 1; $showtot = 1; }
$nowarray = dol_getdate(dol_now(), true);
if (empty($endyear)) $endyear = $nowarray['year'];
- $startyear = $endyear - 1;
+ $startyear = $endyear - (empty($conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH) ? 1 : $conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH);
+
$mode = 'customer';
$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '256' : '320';
$HEIGHT = '192';
diff --git a/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php b/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
index 1490f5ea6e9..e249900afab 100644
--- a/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
+++ b/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
@@ -117,7 +117,8 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes
if (empty($shownb) && empty($showtot)) { $shownb = 1; $showtot = 1; }
$nowarray = dol_getdate(dol_now(), true);
if (empty($endyear)) $endyear = $nowarray['year'];
- $startyear = $endyear - 1;
+ $startyear = $endyear - (empty($conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH) ? 1 : $conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH);
+
$mode = 'supplier';
$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '256' : '320';
$HEIGHT = '192';
diff --git a/htdocs/core/boxes/box_graph_orders_permonth.php b/htdocs/core/boxes/box_graph_orders_permonth.php
index d9c26620553..df6a9f5c18e 100644
--- a/htdocs/core/boxes/box_graph_orders_permonth.php
+++ b/htdocs/core/boxes/box_graph_orders_permonth.php
@@ -120,7 +120,8 @@ class box_graph_orders_permonth extends ModeleBoxes
if (empty($shownb) && empty($showtot)) { $shownb = 1; $showtot = 1; }
$nowarray = dol_getdate(dol_now(), true);
if (empty($endyear)) $endyear = $nowarray['year'];
- $startyear = $endyear - 1;
+ $startyear = $endyear - (empty($conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH) ? 1 : $conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH);
+
$mode = 'customer';
$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '256' : '320';
$HEIGHT = '192';
diff --git a/htdocs/core/boxes/box_graph_orders_supplier_permonth.php b/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
index 765c6324516..eda3d32f250 100644
--- a/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
+++ b/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
@@ -119,7 +119,8 @@ class box_graph_orders_supplier_permonth extends ModeleBoxes
if (empty($shownb) && empty($showtot)) { $shownb = 1; $showtot = 1; }
$nowarray = dol_getdate(dol_now(), true);
if (empty($endyear)) $endyear = $nowarray['year'];
- $startyear = $endyear - 1;
+ $startyear = $endyear - (empty($conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH) ? 1 : $conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH);
+
$mode = 'supplier';
$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '256' : '320';
$HEIGHT = '192';
diff --git a/htdocs/core/boxes/box_graph_propales_permonth.php b/htdocs/core/boxes/box_graph_propales_permonth.php
index de1a1f8de83..7ca9740d8e5 100644
--- a/htdocs/core/boxes/box_graph_propales_permonth.php
+++ b/htdocs/core/boxes/box_graph_propales_permonth.php
@@ -120,7 +120,8 @@ class box_graph_propales_permonth extends ModeleBoxes
if (empty($shownb) && empty($showtot)) { $shownb = 1; $showtot = 1; }
$nowarray = dol_getdate(dol_now(), true);
if (empty($endyear)) $endyear = $nowarray['year'];
- $startyear = $endyear - 1;
+ $startyear = $endyear - (empty($conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH) ? 1 : $conf->global->MAIN_NB_OF_YEAR_IN_WIDGET_GRAPH);
+
$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '256' : '320';
$HEIGHT = '192';
diff --git a/htdocs/core/boxes/box_shipments.php b/htdocs/core/boxes/box_shipments.php
index 5a1f093ce87..22b28d42761 100644
--- a/htdocs/core/boxes/box_shipments.php
+++ b/htdocs/core/boxes/box_shipments.php
@@ -105,6 +105,7 @@ class box_shipments extends ModeleBoxes
if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON e.fk_soc = sc.fk_soc";
$sql .= " WHERE e.entity IN (".getEntity('expedition').")";
if (!empty($conf->global->ORDER_BOX_LAST_SHIPMENTS_VALIDATED_ONLY)) $sql .= " AND e.fk_statut = 1";
+ if ($user->socid > 0) $sql.= " AND s.rowid = ".$user->socid;
if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND sc.fk_user = ".$user->id;
else $sql .= " ORDER BY e.date_delivery, e.ref DESC ";
$sql .= $this->db->plimit($max, 0);
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index ed0511a8e1d..8a96877a35b 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -4881,7 +4881,7 @@ class Form
print '