From bdb47921e7bbfc5e6de690e7266b413050e4fb6e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 21 Dec 2014 14:15:36 +0100 Subject: [PATCH] Fixed: Bad value for % increase for first year. --- htdocs/compta/stats/index.php | 109 +++++++++++++++++----------------- 1 file changed, 56 insertions(+), 53 deletions(-) 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]) {