diff --git a/htdocs/compta/stats/index.php b/htdocs/compta/stats/index.php
index b3fb130e185..cfd816c29b6 100644
--- a/htdocs/compta/stats/index.php
+++ b/htdocs/compta/stats/index.php
@@ -209,6 +209,8 @@ $maxyear=substr($maxyearmonth,0,4);
$nowyear=strftime("%Y",dol_now());
$nowyearmonth=strftime("%Y-%m",dol_now());
$maxyearmonth=max($maxyearmonth,$nowyearmonth);
+$now=dol_now();
+$casenow = dol_print_date($now,"%Y-%m");
// Loop on each month
$nb_mois_decalage = $conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START-1):0;
@@ -220,22 +222,37 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
print "
";
print "| ".dol_print_date(dol_mktime(12,0,0,$mois_modulo,1,2000),"%B")." | ";
- for ($annee = $year_start ; $annee <= $year_end ; $annee++)
+ for ($annee = $year_start -1 ; $annee <= $year_end ; $annee++) // We start one year before to have data to be able to make delta
{
- $now=dol_now();
$annee_decalage=$annee;
if ($mois>12) {$annee_decalage=$annee+1;}
- $casenow = dol_print_date($now,"%Y-%m");
$case = dol_print_date(dol_mktime(1,1,1,$mois_modulo,1,$annee_decalage),"%Y-%m");
$caseprev = dol_print_date(dol_mktime(1,1,1,$mois_modulo,1,$annee_decalage-1),"%Y-%m");
- if ($modecompta == 'CREANCES-DETTES') {
- // Valeur CA du mois w/o VAT
+ if ($annee >= $year_start)
+ {
+ if ($modecompta == 'CREANCES-DETTES') {
+ // Valeur CA du mois w/o VAT
+ print '';
+ if ($cum_ht[$case])
+ {
+ $now_show_delta=1; // On a trouve le premier mois de la premiere annee generant du chiffre.
+ print ''.price($cum_ht[$case],1).'';
+ }
+ else
+ {
+ if ($minyearmonth < $case && $case <= max($maxyearmonth,$nowyearmonth)) { print '0'; }
+ else { print ' '; }
+ }
+ print " | ";
+ }
+
+ // Valeur CA du mois
print '';
- if ($cum_ht[$case])
+ if ($cum[$case])
{
$now_show_delta=1; // On a trouve le premier mois de la premiere annee generant du chiffre.
- print ''.price($cum_ht[$case],1).'';
+ print ''.price($cum[$case],1).'';
}
else
{
@@ -243,60 +260,46 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
else { print ' '; }
}
print " | ";
- }
- // Valeur CA du mois
- print '';
- if ($cum[$case])
- {
- $now_show_delta=1; // On a trouve le premier mois de la premiere annee generant du chiffre.
- print ''.price($cum[$case],1).'';
- }
- else
- {
- if ($minyearmonth < $case && $case <= max($maxyearmonth,$nowyearmonth)) { print '0'; }
- else { print ' '; }
- }
- print " | ";
-
- // Pourcentage du mois
- if ($annee_decalage > $minyear && $case <= $casenow)
- {
- if ($cum[$caseprev] && $cum[$case])
+ // Pourcentage du mois
+ if ($annee_decalage > $minyear && $case <= $casenow)
{
- $percent=(round(($cum[$case]-$cum[$caseprev])/$cum[$caseprev],4)*100);
- //print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X";
- print ''.($percent>=0?"+$percent":"$percent").'% | ';
+ if ($cum[$caseprev] && $cum[$case])
+ {
+ $percent=(round(($cum[$case]-$cum[$caseprev])/$cum[$caseprev],4)*100);
+ //print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X";
+ print ''.($percent>=0?"+$percent":"$percent").'% | ';
+ }
+ if ($cum[$caseprev] && ! $cum[$case])
+ {
+ print '-100% | ';
+ }
+ if (! $cum[$caseprev] && $cum[$case])
+ {
+ //print '+Inf% | ';
+ print '- | ';
+ }
+ if (isset($cum[$caseprev]) && ! $cum[$caseprev] && ! $cum[$case])
+ {
+ print '+0% | ';
+ }
+ if (! isset($cum[$caseprev]) && ! $cum[$case])
+ {
+ print '- | ';
+ }
}
- if ($cum[$caseprev] && ! $cum[$case])
+ else
{
- print '-100% | ';
+ print '';
+ if ($minyearmonth <= $case && $case <= $maxyearmonth) { print '-'; }
+ else { print ' '; }
+ print ' | ';
}
- if (! $cum[$caseprev] && $cum[$case])
- {
- //print '+Inf% | ';
- print '- | ';
- }
- if (isset($cum[$caseprev]) && ! $cum[$caseprev] && ! $cum[$case])
- {
- print '+0% | ';
- }
- if (! isset($cum[$caseprev]) && ! $cum[$case])
- {
- print '- | ';
- }
- }
- else
- {
- print '';
- if ($minyearmonth <= $case && $case <= $maxyearmonth) { print '-'; }
- else { print ' '; }
- print ' | ';
+ if ($annee_decalage != $year_end) print ' | ';
}
$total_ht[$annee]+=!empty($cum_ht[$case]) ? $cum_ht[$case] : 0;;
$total[$annee]+=$cum[$case];
- if ($annee_decalage != $year_end) print ' | ';
}
print '
';
@@ -406,7 +409,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++)
}
if (! $total[$annee-1] && $total[$annee])
{
- print '+Inf% | ';
+ print '+zzzz'.$total[$annee-1].$langs->trans('Inf').'% | ';
}
if (! $total[$annee-1] && ! $total[$annee])
{