diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php
index 0883f9f56bb..afc40bfdff9 100644
--- a/htdocs/accountancy/admin/index.php
+++ b/htdocs/accountancy/admin/index.php
@@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
// Load translation files required by the page
-$langs->loadLangs(array("compta", "bills", "admin", "accountancy"));
+$langs->loadLangs(array("compta", "bills", "admin", "accountancy", "other"));
// Security access
if (empty($user->rights->accounting->chartofaccount))
@@ -54,6 +54,7 @@ $list = array(
$list_binding = array(
'ACCOUNTING_DATE_START_BINDING',
+ 'ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER'
);
/*
@@ -383,7 +384,10 @@ foreach ($list_binding as $key)
print '
';
if ($key == 'ACCOUNTING_DATE_START_BINDING') {
print $form->selectDate(($conf->global->$key ? $db->idate($conf->global->$key) : -1), $key, 0, 0, 1);
- } else {
+ } elseif ($key == 'ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER') {
+ $array=array(0=>$langs->trans("PreviousMonth"), 1=>$langs->trans("CurrentMonth"), 2=>$langs->trans("Fiscalyear"));
+ print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER)?$conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER:0));
+ } else {
print '';
}
diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index 29f1cb76d0b..12fe8792401 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -90,17 +90,16 @@ if ($user->socid > 0 && empty($id_journal))
$error = 0;
-$year_current = strftime("%Y", dol_now());
-$pastmonth = strftime("%m", dol_now()) - 1;
-$pastmonthyear = $year_current;
-if ($pastmonth == 0) {
- $pastmonth = 12;
- $pastmonthyear--;
-}
-
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
+// Period by default on transfer
+$dates = getDefaultDatesForTransfer();
+$date_start = $dates['date_start'];
+$date_end = $dates['date_end'];
+$pastmonthyear = $dates['pastmonthyear'];
+$pastmonth = $dates['pastmonth'];
+
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form
{
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php
index 4a1d2935f0f..b24f8550e50 100644
--- a/htdocs/accountancy/journal/expensereportsjournal.php
+++ b/htdocs/accountancy/journal/expensereportsjournal.php
@@ -70,17 +70,16 @@ $accountingjournalstatic->fetch($id_journal);
$journal = $accountingjournalstatic->code;
$journal_label = $accountingjournalstatic->label;
-$year_current = strftime("%Y", dol_now());
-$pastmonth = strftime("%m", dol_now()) - 1;
-$pastmonthyear = $year_current;
-if ($pastmonth == 0) {
- $pastmonth = 12;
- $pastmonthyear--;
-}
-
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
+// Period by default on transfer
+$dates = getDefaultDatesForTransfer();
+$date_start = $dates['date_start'];
+$date_end = $dates['date_end'];
+$pastmonthyear = $dates['pastmonthyear'];
+$pastmonth = $dates['pastmonth'];
+
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form
{
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php
index 4c9e25725f2..779c04f68fa 100644
--- a/htdocs/accountancy/journal/purchasesjournal.php
+++ b/htdocs/accountancy/journal/purchasesjournal.php
@@ -75,17 +75,16 @@ $accountingjournalstatic->fetch($id_journal);
$journal = $accountingjournalstatic->code;
$journal_label = $accountingjournalstatic->label;
-$year_current = strftime("%Y", dol_now());
-$pastmonth = strftime("%m", dol_now()) - 1;
-$pastmonthyear = $year_current;
-if ($pastmonth == 0) {
- $pastmonth = 12;
- $pastmonthyear--;
-}
-
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
+// Period by default on transfer
+$dates = getDefaultDatesForTransfer();
+$date_start = $dates['date_start'];
+$date_end = $dates['date_end'];
+$pastmonthyear = $dates['pastmonthyear'];
+$pastmonth = $dates['pastmonth'];
+
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form
{
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php
index 4b66feb9e3d..998f34745ac 100644
--- a/htdocs/accountancy/journal/sellsjournal.php
+++ b/htdocs/accountancy/journal/sellsjournal.php
@@ -78,17 +78,16 @@ $accountingjournalstatic->fetch($id_journal);
$journal = $accountingjournalstatic->code;
$journal_label = $accountingjournalstatic->label;
-$year_current = strftime("%Y", dol_now());
-$pastmonth = strftime("%m", dol_now()) - 1;
-$pastmonthyear = $year_current;
-if ($pastmonth == 0) {
- $pastmonth = 12;
- $pastmonthyear--;
-}
-
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
+// Period by default on transfer
+$dates = getDefaultDatesForTransfer();
+$date_start = $dates['date_start'];
+$date_end = $dates['date_end'];
+$pastmonthyear = $dates['pastmonthyear'];
+$pastmonth = $dates['pastmonth'];
+
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form
{
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
diff --git a/htdocs/core/lib/accounting.lib.php b/htdocs/core/lib/accounting.lib.php
index 16b124443da..c6c0c874cf4 100644
--- a/htdocs/core/lib/accounting.lib.php
+++ b/htdocs/core/lib/accounting.lib.php
@@ -243,3 +243,63 @@ function journalHead($nom, $variante, $period, $periodlink, $description, $build
print "\n\n\n";
}
+
+/**
+ * Return Default dates for transfer based on periodicity option in accountancy setup
+ *
+ * @return array Dates of periodicity by default
+ */
+function getDefaultDatesForTransfer()
+{
+ global $db, $conf;
+
+ // Period by default on transfer (0: previous month | 1: current month | 2: fiscal year)
+ $periodbydefaultontransfer = $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER;
+ isset($periodbydefaultontransfer)?$periodbydefaultontransfer:0;
+ if ($periodbydefaultontransfer == 2) {
+ $sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
+ $sql .= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."'";
+ $sql .= $db->plimit(1);
+ $res = $db->query($sql);
+ if ($res->num_rows > 0) {
+ $fiscalYear = $db->fetch_object($res);
+ $date_start = strtotime($fiscalYear->date_start);
+ $date_end = strtotime($fiscalYear->date_end);
+ } else {
+ $month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
+ $year_start = dol_print_date(dol_now(), '%Y');
+ $year_end = $year_start + 1;
+ $month_end = $month_start - 1;
+ if ($month_end < 1)
+ {
+ $month_end = 12;
+ $year_end--;
+ }
+ $date_start = dol_mktime(0, 0, 0, $month_start, 1, $year_start);
+ $date_end = dol_get_last_day($year_end, $month_end);
+ }
+ } elseif ($periodbydefaultontransfer == 1) {
+ $year_current = strftime("%Y", dol_now());
+ $pastmonth = strftime("%m", dol_now());
+ $pastmonthyear = $year_current;
+ if ($pastmonth == 0) {
+ $pastmonth = 12;
+ $pastmonthyear --;
+ }
+ } else {
+ $year_current = strftime("%Y", dol_now());
+ $pastmonth = strftime("%m", dol_now())-1;
+ $pastmonthyear = $year_current;
+ if ($pastmonth == 0) {
+ $pastmonth = 12;
+ $pastmonthyear --;
+ }
+ }
+
+ return array(
+ 'date_start' => $date_start,
+ 'date_end' => $date_end,
+ 'pastmonthyear' => $pastmonthyear,
+ 'pastmonth' => $pastmonth
+ );
+}
diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang
index 29a857c914b..5e59996a2c5 100644
--- a/htdocs/langs/en_US/accountancy.lang
+++ b/htdocs/langs/en_US/accountancy.lang
@@ -150,6 +150,7 @@ BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank accoun
ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal
ACCOUNTANCY_COMBO_FOR_AUX=Enable combo list for subsidiary account (may be slow if you have a lot of third parties)
ACCOUNTING_DATE_START_BINDING=Define a date to start binding & transfer in accountancy. Below this date, the transactions will not be transferred to accounting.
+ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER=On accountancy transfer, select period show by default
ACCOUNTING_SELL_JOURNAL=Sell journal
ACCOUNTING_PURCHASE_JOURNAL=Purchase journal
diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang
index 4903bea90da..0448672a577 100644
--- a/htdocs/langs/en_US/other.lang
+++ b/htdocs/langs/en_US/other.lang
@@ -16,6 +16,8 @@ PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date
TextPreviousMonthOfInvoice=Previous month (text) of invoice date
NextMonthOfInvoice=Following month (number 1-12) of invoice date
TextNextMonthOfInvoice=Following month (text) of invoice date
+PreviousMonth=Previous month
+CurrentMonth=Current month
ZipFileGeneratedInto=Zip file generated into %s.
DocFileGeneratedInto=Doc file generated into %s.
JumpToLogin=Disconnected. Go to login page...
|