diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index a84948ffd92..b2687ee66fa 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -589,7 +589,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m // Define $sqlwhere $sqlwhere=''; - $yearoffset=0; // Use year of date by default + $yearoffset=0; // Use year of current $date by default $yearoffsettype=false; // If a restore to zero after a month is asked we check if there is already a value for this year. @@ -627,18 +627,17 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m $monthcomp=$maskraz; $yearcomp=0; - if (! empty($yearoffsettype) && ! is_numeric($yearoffsettype)) { - + if (! empty($yearoffsettype) && ! is_numeric($yearoffsettype)) + { $currentyear=date("Y", $date); $fiscaldate=dol_mktime('0','0','0',$maskraz,'1',$currentyear); $newyeardate=dol_mktime('0','0','0','1','1',$currentyear); $nextnewyeardate=dol_mktime('0','0','0','1','1',$currentyear+1); - //echo 'currentyear='.$currentyear.' date='.dol_print_date($date, 'day').' fiscaldate='.dol_print_date($fiscaldate, 'day').'
'; if ($date >= $fiscaldate) // If after or equal current fiscal date { - if ($date < $nextnewyeardate) // If after or equal of next new year date + if ($date < $nextnewyeardate) // If before of next new year date { if ($yearoffsettype == '-') $yearoffset=0; else if ($yearoffsettype == '+') $yearoffset=1; @@ -650,6 +649,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m else if ($yearoffsettype == '+') $yearoffset=0; } } + // For backward compatibility else if (date("m",$date) < $maskraz) { $yearoffset=-1; } // If current month lower that month of return to zero, year is previous year if (dol_strlen($reg[$posy]) == 4) $yearcomp=sprintf("%04d",date("Y",$date)+$yearoffset);