[ Index ]
 

Code source de Dolibarr 2.0.1

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/htdocs/telephonie/script/ -> graph-statistiques-ca.php (source)

   1  <?PHP
   2  /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
   3   *
   4   * This program is free software; you can redistribute it and/or modify
   5   * it under the terms of the GNU General Public License as published by
   6   * the Free Software Foundation; either version 2 of the License, or
   7   * (at your option) any later version.
   8   *
   9   * This program is distributed in the hope that it will be useful,
  10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12   * GNU General Public License for more details.
  13   *
  14   * You should have received a copy of the GNU General Public License
  15   * along with this program; if not, write to the Free Software
  16   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  17   *
  18   * $Id: graph-statistiques-ca.php,v 1.17 2005/12/06 10:36:03 rodolphe Exp $
  19   * $Source: /cvsroot/dolibarr/dolibarr/htdocs/telephonie/script/graph-statistiques-ca.php,v $
  20   *
  21   * Generation de graphiques
  22   *
  23   */
  24  require  ("../../master.inc.php");
  25  
  26  $verbose = 0;
  27  for ($i = 1 ; $i < sizeof($argv) ; $i++)
  28  {
  29    if ($argv[$i] == "-v")
  30      {
  31        $verbose = 1;
  32      }
  33    if ($argv[$i] == "-vv")
  34      {
  35        $verbose = 2;
  36      }
  37    if ($argv[$i] == "-vvv")
  38      {
  39        $verbose = 3;
  40      }
  41  }
  42  
  43  require_once (DOL_DOCUMENT_ROOT."/telephonie/lignetel.class.php");
  44  require_once (DOL_DOCUMENT_ROOT."/telephonie/facturetel.class.php");
  45  require_once (DOL_DOCUMENT_ROOT."/telephonie/telephonie-tarif.class.php");
  46  require_once (DOL_DOCUMENT_ROOT."/telephonie/communication.class.php");
  47  
  48  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/bar.class.php");
  49  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/baraccumul.class.php");
  50  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/camenbert.class.php");
  51  
  52  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/ca.class.php");
  53  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/gain.class.php");
  54  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/heureappel.class.php");
  55  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/joursemaine.class.php");
  56  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/camoyen.class.php");
  57  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/appelsdureemoyenne.class.php");
  58  require_once (DOL_DOCUMENT_ROOT."/telephonie/stats/graph/comm.nbmensuel.class.php");
  59  
  60  $error = 0;
  61  
  62  $datetime = time();
  63  $date = strftime("%d%h%Y%Hh%Mm%S",$datetime);
  64  $year = strftime("%Y", $datetime);
  65  
  66  $img_root = DOL_DATA_ROOT."/graph/telephonie";
  67  
  68  $month = array();
  69  $month[1] = 'J';
  70  $month[2] = 'F';
  71  $month[3] = 'M';
  72  $month[4] = 'A';
  73  $month[5] = 'M';
  74  $month[6] = 'J';
  75  $month[7] = 'J';
  76  $month[8] = 'A';
  77  $month[9] = 'S';
  78  $month[10] = 'O';
  79  $month[11] = 'N';
  80  $month[12] = 'D';
  81  
  82  /**********************************************************************/
  83  /*
  84  /* Stats sur les factures
  85  /*
  86  /*
  87  /**********************************************************************/
  88  
  89  $sql = "DELETE FROM ".MAIN_DB_PREFIX."telephonie_stats";
  90  $sql .= " WHERE graph IN ('factures.facture_moyenne','factures.ca_mensuel','factures.nb_mensuel')";
  91  $sql .= " AND legend like '".$this->year."%';";
  92  $resql = $db->query($sql);
  93  
  94  $sql = "SELECT date_format(tf.date,'%Y%m'), sum(tf.cout_vente)";
  95  $sql .= ", sum(tf.cout_achat), sum(tf.gain), count(tf.cout_vente)";
  96  $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture as tf";
  97  $sql .= " WHERE date_format(tf.date,'%Y') ='".$year."'";
  98  $sql .= " GROUP BY date_format(tf.date,'%Y%m') ASC ;";
  99  
 100  $resql = $db->query($sql);
 101  
 102  if ($resql)
 103  {
 104    $cout_vente = array_pad(array(),12,0);
 105    $cout_vente_prev = array();
 106    $cout_vente_autr = array();
 107    $cout_vente_moyen = array_pad(array(),12,0);
 108    $nb_factures = array_pad(array(),12,0);
 109    $jour_semaine_nb = array();
 110    $jour_semaine_duree = array();
 111    $gain = array_pad(array(),12,0);
 112    $gain_moyen = array_pad(array(),12,0);
 113    $labels = array_pad(array(),12,0);
 114    $short_labels = array(1,2,3,4,5,6,7,8,9,10,11,12);
 115  
 116    $num = $db->num_rows($resql);
 117    $i = 0;
 118  
 119    while ($i < $num)
 120      {
 121        $row = $db->fetch_row($resql);    
 122  
 123        $cout_vente[$i] = $row[1];
 124  
 125        if ($row[5] == 3)
 126      {
 127        $cout_vente_prev[$i] = $row[1];
 128      }
 129        else
 130      {
 131        $cout_vente_autr[$i] = $row[1];
 132      }
 133  
 134        $gain[$i] = $row[3];
 135        $gain_moyen[$i] = ($row[3]/$row[4]);
 136        $cout_vente_moyen[$i] = ($row[1]/$row[4]);
 137        $nb_factures[$i] = $row[4];
 138        $labels[$i] = $row[0];
 139        $short_labels[$i] = $month[(substr($row[0],-2)*1)];
 140  
 141        $sqli = " INSERT INTO ".MAIN_DB_PREFIX."telephonie_stats";
 142        $sqli .= " (graph, ord, legend, valeur) VALUES (";
 143        $sqli .= "'factures.ca_mensuel','".$i."','".$labels[$i]."','".$cout_vente[$i]."')";     
 144        if (!$resqli = $db->query($sqli)) print $db->error();
 145        
 146        $sqli = " INSERT INTO ".MAIN_DB_PREFIX."telephonie_stats";
 147        $sqli .= " (graph, ord, legend, valeur) VALUES (";
 148        $sqli .= "'factures.nb_mensuel','".$i."','".$labels[$i]."','".$nb_factures[$i]."')";      
 149        if (!$resqli = $db->query($sqli)) print $db->error();
 150  
 151        $sqli = " INSERT INTO ".MAIN_DB_PREFIX."telephonie_stats";
 152        $sqli .= " (graph, ord, legend, valeur) VALUES (";
 153        $sqli .= "'factures.facture_moyenne','".$i."','".$labels[$i]."','".$cout_vente_moyen[$i]."')";
 154        if (!$resqli = $db->query($sqli)) print $db->error();
 155  
 156        $i++;
 157      }
 158  }
 159  else
 160  {
 161    print $db->error();
 162  }
 163  $file = $img_root . "/factures/ca_mensuel.png";
 164  if ($verbose) print "Graph $file\n";
 165  $graph = new GraphBar ($db, $file);
 166  $graph->titre = "Chiffre d'affaire par mois en euros HT";
 167  $graph->width = 440;
 168  $graph->GraphDraw($file, $cout_vente, $short_labels);
 169  
 170  $file = $img_root . "/factures/facture_moyenne.png";
 171  if ($verbose) print "Graph $file\n";
 172  $graph = new GraphBar ($db, $file, $labels);
 173  $graph->titre = "Facture moyenne";
 174  $graph->barcolor = "blue";
 175  $graph->width = 440;
 176  $graph->GraphDraw($file, $cout_vente_moyen, $short_labels);
 177  
 178  $file = $img_root . "/factures/gain_mensuel.$year.png";
 179  if ($verbose) print "Graph $file\n";
 180  $graph = new GraphBar ($db, $file);
 181  $graph->titre = "Marge en euros HT $year";
 182  $graph->width = 440;
 183  $graph->GraphDraw($file, $gain, $short_labels);
 184  
 185  $file = $img_root . "/factures/gain_moyen.$year.png";
 186  if ($verbose) print "Graph $file\n";
 187  $graph = new GraphBar ($db, $file);
 188  $graph->titre = "Marge moyenne par facture $year";
 189  $graph->width = 440;
 190  $graph->barcolor = "blue";
 191  $graph->GraphDraw($file, $gain_moyen, $short_labels);
 192  
 193  $file = $img_root . "/factures/nb_facture.$year.png";
 194  if ($verbose) print "Graph $file\n";
 195  $graph = new GraphBar ($db, $file);
 196  $graph->titre = "Nb de facture mois $year";
 197  $graph->width = 440;
 198  $graph->barcolor = "yellow";
 199  $graph->GraphDraw($file, $nb_factures, $short_labels);
 200  
 201  
 202  $sql = "DELETE FROM ".MAIN_DB_PREFIX."telephonie_stats";
 203  $sql .= " WHERE graph IN ('factures.ca_mensuel_preleve','factures.ca_mensuel_autre')";
 204  $resql = $db->query($sql);
 205  
 206  
 207  $sql = "SELECT date_format(tf.date,'%Y%m'), sum(tf.cout_vente)";
 208  $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture as tf";
 209  $sql .= " , ".MAIN_DB_PREFIX."facture as f";
 210  $sql .= " WHERE tf.fk_facture = f.rowid";
 211  $sql .= " AND f.fk_mode_reglement = 3";
 212  $sql .= " GROUP BY date_format(tf.date,'%Y%m') ASC ";
 213  
 214  $resql = $db->query($sql);
 215  
 216  if ($resql)
 217  {
 218    $cvp = array();
 219    $num = $db->num_rows($resql);
 220    $i = 0;
 221  
 222    while ($i < $num)
 223      {
 224        $row = $db->fetch_row($resql);    
 225  
 226        $cvp[$row[0]] = $row[1];
 227  
 228        $sqli = " INSERT INTO ".MAIN_DB_PREFIX."telephonie_stats";
 229        $sqli .= " (graph, ord, legend, valeur) VALUES (";
 230        $sqli .= "'factures.ca_mensuel_preleve','".$i."','".$row[0]."','".$row[1]."')";     
 231        if (!$resqli = $db->query($sqli)) print $db->error();
 232  
 233        $i++;
 234      }
 235  }
 236  else
 237  {
 238    print $db->error();
 239  }
 240  
 241  $sql = "SELECT date_format(tf.date,'%Y%m'), sum(tf.cout_vente)";
 242  $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture as tf";
 243  $sql .= " , ".MAIN_DB_PREFIX."facture as f";
 244  $sql .= " WHERE tf.fk_facture = f.rowid";
 245  $sql .= " AND f.fk_mode_reglement <> 3";
 246  $sql .= " GROUP BY date_format(tf.date,'%Y%m') ASC ";
 247  
 248  $resql = $db->query($sql);
 249  
 250  if ($resql)
 251  {
 252    $cva = array();
 253    $num = $db->num_rows($resql);
 254    $i = 0;
 255  
 256    while ($i < $num)
 257      {
 258        $row = $db->fetch_row($resql);    
 259  
 260        $cva[$row[0]] = $row[1];
 261  
 262        $sqli = " INSERT INTO ".MAIN_DB_PREFIX."telephonie_stats";
 263        $sqli .= " (graph, ord, legend, valeur) VALUES (";
 264        $sqli .= "'factures.ca_mensuel_autre','".$i."','".$row[0]."','".$row[1]."')";     
 265        if (!$resqli = $db->query($sqli)) print $db->error();
 266  
 267        $i++;
 268      }
 269  }
 270  else
 271  {
 272    print $db->error();
 273  }
 274  
 275  $sql = "SELECT date_format(tf.date,'%Y%m'), sum(tf.fourn_montant)";
 276  $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details as tf";
 277  $sql .= " GROUP BY date_format(tf.date,'%Y%m') ASC ";
 278  
 279  $resql = $db->query($sql);
 280  
 281  if ($resql)
 282  {
 283    $cvc = array();
 284    $num = $db->num_rows($resql);
 285    $i = 0;
 286  
 287    while ($i < $num)
 288      {
 289        $row = $db->fetch_row($resql);    
 290        $cvc[$row[0]] = $row[1];
 291  
 292        $i++;
 293      }
 294  }
 295  else
 296  {
 297    print $db->error();
 298  }
 299  
 300  $i = 0;
 301  foreach ($labels as $labl)
 302  {
 303    $cout_vente_prelev[$i] = $cvp[$labl];
 304    $cout_vente_autre[$i]  = $cva[$labl];
 305    $cout_achat[$i]        = $cvc[$labl];
 306    $labels[$i] = substr($labl, -2);
 307    $i++;
 308  }
 309  
 310  
 311  $file = $img_root . "/factures/ca_mensuel_preleve.png";
 312  
 313  $graph = new GraphBarAccumul ($db, $file);
 314  $graph->titre = "Chiffre d'affaire par méthode de réglement";
 315  $graph->width = 640;
 316  $graph->height = 480;
 317  $graph->barcolor = "yellow";
 318  
 319  $xdatas[0] = array($cout_vente_prelev, $cout_vente_autre);
 320  $xdatas[1] = array($cout_achat);
 321  
 322  $graph->legend[0][0] = "Factures prélevées";
 323  $graph->legend[0][1] = "Factures non-prélevées";
 324  $graph->legend[1][0] = "Coût fournisseur";
 325  
 326  $graph->add_datas($xdatas);
 327  
 328  $graph->GraphDraw($file, $labels, $cout_vente);
 329  
 330  ?>


Généré le : Mon Nov 26 12:29:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics