[ Index ] |
|
Code source de Dolibarr 2.0.1 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Mon Nov 26 12:29:37 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |