Jump to content

[Résolu] Complément tableau de bord statistique


Recommended Posts

Bonjour,

Si cela intéresse quelqu'un, j'ai fait une modif de l'onglet stat pour afficher le CA jour par jour de la semaine en cours, avec total et moyenne de la semaine et du mois en cours.

Attention : c'est de la modif bien grasse directement AdminStats.php ce n'est pas un module ! Le code n'est pas beau (faut que j'regarde comment on fait une boucle en php) mais ça fonctionne (v1.2.4.0) et j'ai un tableau de bord un peu plus parlant.

Sur ce, j'vais aller faire dodo, il y aura un screen shoot plus tard si souhaité.

Tchao

Link to comment
Share on other sites

  • 7 months later...
  • 4 weeks later...

Bonjour,

Puisque quelqu'un est intéressé, voici les modif à faire (base v1.2.4, cela modifie le core et donc une màj fait sauter le patch.

Modifications dans

A ajouter \racine_du_site\dossier_administrateur\tabs fichier AdminStats.php

public static function fgzGetStats()
   {    $fgzStats = array();

       /* 1er jour de la semaine en cours */
       if (date("w") == 0)
           $fgzDateFrom = mktime(0,0,0,date("m"),date("d")-date("w")-7,date("Y"));
       else
           $fgzDateFrom = mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y"));

       $fgzDebutSemaine = $fgzDateFrom;
       $fgzDateTo = mktime(23,59,59,date("m"),date("d")-date("w")+1,date("Y"));
       $fgzStats['lundi'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['lundi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['mardi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['mardi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['mercredi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['mercredi']['jour'] = date("d-m-Y", $fgzDateFrom);


       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['jeudi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['jeudi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['vendredi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['vendredi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['samedi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['samedi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['dimanche'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['dimanche']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDebutSemaine;
       $fgzStats['semaine'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['semaine']['jour'] = $fgzStats['semaine']['ttc'] / date("N");

       $fgzDateFrom = mktime( 0, 0, 0, date("m"), 1, date("Y"));
       $fgzDateTo = mktime( 23, 59, 59, date("m"), date("t"), date("Y"));
       $fgzStats['mois'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['mois']['jour'] = $fgzStats['mois']['ttc'] / date("d");

       $fgzDateFrom = mktime( 0, 0, 0, 1, 1, date("Y"));
       $fgzDateTo = mktime( 23, 59, 59, 12, 31, date("Y"));
       $fgzStats['an'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['an']['jour'] = $fgzStats['an']['ttc'] / date("z");

       $fgzDateFrom = mktime(0,0,0,date("m"),date("d")-date("w")-6,date("Y")); /* 1er jour de la semaine précédente */
       $fgzDateTo = $fgzDateFrom + 604800;
       $fgzStats['semprec'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['semprec']['jour'] = $fgzStats['semprec']['ttc'] / 7;

       $fgzDateFrom = mktime( 0, 0, 0, date("m")-1, 1, date("Y"));
       $fgzDateTo = $fgzDateFrom+(86400*(date("t",$fgzDateFrom)));
       $fgzStats['moisprec'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['moisprec']['jour'] = $fgzStats['moisprec']['ttc'] / date("t",$fgzDateFrom);

       return $fgzStats;
   }



... la suite arrive

Link to comment
Share on other sites

... suite

Dans la fonction display, ajouter la ligne suivante avant le 1er "echo" :

$fgzStats = self::fgzGetStats();



puis remplacer le bloc "En cours" par le code suivant :






En cours
'.$this->l('date').' '.$this->l('with tax').' '.$this->l('only products not incl. tax').'
Lundi '.$fgzStats['lundi']['jour'].' '.Tools::displayPrice($fgzStats['lundi']['ttc'], $currency).' '.Tools::displayPrice($fgzStats['lundi']['ht'], $currency).'
Mardi '.$fgzStats['mardi']['jour'].' '.Tools::displayPrice($fgzStats['mardi']['totalttc'], $currency).' '.Tools::displayPrice($fgzStats['mardi']['totalht'], $currency).'
Mercredi '.$fgzStats['mercredi']['jour'].' '.Tools::displayPrice($fgzStats['mercredi']['totalttc'], $currency).' '.Tools::displayPrice($fgzStats['mercredi']['totalht'], $currency).'


... vous voyez le principe CtrlC et Ctrl sont vos amis

34269_HjIah6jRG6vMH3bS1Lxu_t

Link to comment
Share on other sites

Précisions :

Pour semaine, semaine précédente et suivants, la colonne date contient le CA TTC moyen par jour (pour "semaine", "mois" et "année", à la date d'affichage, pour "précédent" sur 7 pour la semaine et 28 à 31 pour le mois).

Je ne suis pas certain d'être bien clair mais avec une claculette, tu devrais retrouver.

Dès que je n'ai rien de mieux à faire, je calcule les prix d'achat

Link to comment
Share on other sites

  • 4 weeks later...

Correction du bug qui arrivait le dimanche. Nouvelle version :

    public static function fgzGetStats()
   {    $fgzStats = array();

       /* 1er jour de la semaine en cours */
       if (date("w") == 0)
           $fgzDateFrom = mktime(0,0,0,date("m"),date("d")-date("w")-6,date("Y"));
       else
           $fgzDateFrom = mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y"));

       $fgzDebutSemaine = $fgzDateFrom;
       if (date("w") == 0)
           $fgzDateTo = mktime(23,59,59,date("m"),date("d")-date("w")-6,date("Y"));
       else
           $fgzDateTo = mktime(23,59,59,date("m"),date("d")-date("w")+1,date("Y"));
       $fgzStats['lundi'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['lundi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['mardi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['mardi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['mercredi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['mercredi']['jour'] = date("d-m-Y", $fgzDateFrom);


       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['jeudi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['jeudi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['vendredi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['vendredi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['samedi'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['samedi']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDateFrom + 86400; $fgzDateTo = $fgzDateTo + 86400;
       $fgzStats['dimanche'] = self::recordQuery("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['dimanche']['jour'] = date("d-m-Y", $fgzDateFrom);

       $fgzDateFrom = $fgzDebutSemaine;
       $fgzStats['semaine'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['semaine']['jour'] = $fgzStats['semaine']['ttc'] / date("N");

       $fgzDateFrom = mktime( 0, 0, 0, date("m"), 1, date("Y"));
       $fgzDateTo = mktime( 23, 59, 59, date("m"), date("t"), date("Y"));
       $fgzStats['mois'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['mois']['jour'] = $fgzStats['mois']['ttc'] / date("d");

       $fgzDateFrom = mktime( 0, 0, 0, 1, 1, date("Y"));
       $fgzDateTo = mktime( 23, 59, 59, 12, 31, date("Y"));
       $fgzStats['an'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['an']['jour'] = $fgzStats['an']['ttc'] / date("z");

        /* 1er jour de la semaine précédente */
       if (date("w") == 0)
           $fgzDateFrom = mktime(0,0,0,date("m"),date("d")-date("w")-13,date("Y"));
       else
           $fgzDateFrom = mktime(0,0,0,date("m"),date("d")-date("w")-6,date("Y")); /* 1er jour de la semaine précédente */
       $fgzDateTo = $fgzDateFrom + 604800;
       $fgzStats['semprec'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['semprec']['jour'] = $fgzStats['semprec']['ttc'] / 7;

       $fgzDateFrom = mktime( 0, 0, 0, date("m")-1, 1, date("Y"));
       $fgzDateTo = $fgzDateFrom+(86400*(date("t",$fgzDateFrom)));
       $fgzStats['moisprec'] = self::getSales("'".date("Y-m-d H:i:s",$fgzDateFrom)."' AND '".date("Y-m-d H:i:s",$fgzDateTo)."'", '%Y-%m-%d', 'DESC');
       $fgzStats['moisprec']['jour'] = $fgzStats['moisprec']['ttc'] / date("t",$fgzDateFrom);

       return $fgzStats;
   }

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...