PageRenderTime 1340ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/factux/graph2_ca.php

https://bitbucket.org/breizhux/pepinierux
PHP | 355 lines | 254 code | 41 blank | 60 comment | 3 complexity | 25a48cd445e3c2ad0cabfa37ecba8bcb MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause
  1. <?php
  2. /*
  3. * Factux le facturier libre
  4. * Copyright (C) 2003-2004 Guy Hendrickx
  5. *
  6. * Licensed under the terms of the GNU General Public License:
  7. * http://www.opensource.org/licenses/gpl-license.php
  8. *
  9. * For further information visit:
  10. * http://factux.sourceforge.net
  11. *
  12. * File Name: fckconfig.js
  13. * Editor configuration settings.
  14. *
  15. * * * Version: 1.1.5
  16. * * * * Modified: 23/07/2005
  17. *
  18. * File Authors:
  19. * Guy Hendrickx
  20. *.
  21. */
  22. include_once("include/config/common.php");
  23. $annee = date(Y);
  24. //1
  25. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '1' AND YEAR(date) = YEAR(NOW());";
  26. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  27. $data = mysql_fetch_array($req);
  28. $entre1 = $data['SUM(tot_htva)'];
  29. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 1 AND YEAR(date) = YEAR(NOW())";
  30. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  31. $data = mysql_fetch_array($req);
  32. $depe1 = $data['SUM(prix)'];
  33. //2
  34. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '2' AND YEAR(date) = YEAR(NOW())";
  35. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  36. $data = mysql_fetch_array($req);
  37. $entre2 = $data['SUM(tot_htva)'];
  38. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 2 AND YEAR(date) = YEAR(NOW())";
  39. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  40. $data = mysql_fetch_array($req);
  41. $depe2 = $data['SUM(prix)'];
  42. //3
  43. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '3' AND YEAR(date) = YEAR(NOW())";
  44. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  45. $data = mysql_fetch_array($req);
  46. $entre3 = $data['SUM(tot_htva)'];
  47. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 3 AND YEAR(date) = YEAR(NOW())";
  48. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  49. $data = mysql_fetch_array($req);
  50. $depe3 = $data['SUM(prix)'];
  51. //4
  52. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '4' AND YEAR(date) = YEAR(NOW())";
  53. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  54. $data = mysql_fetch_array($req);
  55. $entre4 = $data['SUM(tot_htva)'];
  56. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 4 AND YEAR(date) = YEAR(NOW())";
  57. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  58. $data = mysql_fetch_array($req);
  59. $depe4 = $data['SUM(prix)'];
  60. //5
  61. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '5' AND YEAR(date) = YEAR(NOW())";
  62. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  63. $data = mysql_fetch_array($req);
  64. $entre5 = $data['SUM(tot_htva)'];
  65. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 5 AND YEAR(date) = YEAR(NOW())";
  66. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  67. $data = mysql_fetch_array($req);
  68. $depe5 = $data['SUM(prix)'];
  69. //6
  70. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '6' AND YEAR(date) = YEAR(NOW())";
  71. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  72. $data = mysql_fetch_array($req);
  73. $entre6 = $data['SUM(tot_htva)'];
  74. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 6 AND YEAR(date) = YEAR(NOW())";
  75. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  76. $data = mysql_fetch_array($req);
  77. $depe6 = $data['SUM(prix)'];
  78. //7
  79. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '7' AND YEAR(date) = YEAR(NOW())";
  80. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  81. $data = mysql_fetch_array($req);
  82. $entre7 = $data['SUM(tot_htva)'];
  83. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 7 AND YEAR(date) = YEAR(NOW())";
  84. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  85. while($data = mysql_fetch_array($req))
  86. {
  87. $depe7 = $data['SUM(prix)'];
  88. }
  89. //8
  90. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '8' AND YEAR(date) = YEAR(NOW())";
  91. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  92. $data = mysql_fetch_array($req);
  93. $entre8 = $data['SUM(tot_htva)'];
  94. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 8 AND YEAR(date) = YEAR(NOW())";
  95. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  96. $data = mysql_fetch_array($req);
  97. $depe8 = $data['SUM(prix)'];
  98. //9
  99. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '9' AND YEAR(date) = YEAR(NOW())";
  100. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  101. $data = mysql_fetch_array($req);
  102. $entre9 = $data['SUM(tot_htva)'];
  103. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 9 AND YEAR(date) = YEAR(NOW())";
  104. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  105. $data = mysql_fetch_array($req);
  106. $depe9 = $data['SUM(prix)'];
  107. //10
  108. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '10' AND YEAR(date) = YEAR(NOW())";
  109. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  110. $data = mysql_fetch_array($req);
  111. $entre10 = $data['SUM(tot_htva)'];
  112. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 10 AND YEAR(date) = YEAR(NOW())";
  113. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  114. $data = mysql_fetch_array($req);
  115. $depe10 = $data['SUM(prix)'];
  116. //11
  117. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '11'";
  118. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  119. $data = mysql_fetch_array($req);
  120. $entre11 = $data['SUM(tot_htva)'];
  121. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 11 AND YEAR(date) = YEAR(NOW())";
  122. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  123. $data = mysql_fetch_array($req);
  124. $depe11 = $data['SUM(prix)'];
  125. //12
  126. $sql = "SELECT SUM(tot_htva)FROM bon_comm WHERE MONTH(date) = '12' AND YEAR(date) = YEAR(NOW())";
  127. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  128. $data = mysql_fetch_array($req);
  129. $entre12 = $data['SUM(tot_htva)'];
  130. $sql = " SELECT SUM(prix)FROM `depense` WHERE MONTH(date) = 12 AND YEAR(date) = YEAR(NOW())";
  131. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  132. $data = mysql_fetch_array($req);
  133. $depe12 = $data['SUM(prix)'];
  134. $stat1 = $entre1 - $depe1 ;
  135. $stat2 = $entre2 - $depe2 ;
  136. $stat3 = $entre3 - $depe3 ;
  137. $stat4 = $entre4 - $depe4 ;
  138. $stat5 = $entre5 - $depe5 ;
  139. $stat6 = $entre6 - $depe6 ;
  140. $stat7 = $entre7 - $depe7 ;
  141. $stat8 = $entre8 - $depe8 ;
  142. $stat9 = $entre9 - $depe9 ;
  143. $stat10 = $entre10 - $depe10 ;
  144. $stat11 = $entre11 - $depe11 ;
  145. $stat12 = $entre12 - $depe12 ;
  146. /*
  147. ** Graphique sectoriel au format GIF
  148. */
  149. /*
  150. ** Convertir les degrés en radians
  151. */
  152. function radians($degrees)
  153. {
  154. return($degrees * (pi()/180.0));
  155. }
  156. /*
  157. ** prendre x,y dans le cercle,
  158. ** centre = 0,0
  159. */
  160. function circle_point($degrees, $diameter)
  161. {
  162. $x = cos(radians($degrees)) * ($diameter/2);
  163. $y = sin(radians($degrees)) * ($diameter/2);
  164. return (array($x, $y));
  165. }
  166. //remplir les paramètres
  167. $ChartDiameter = 200;
  168. $ChartFont = 3;
  169. $ChartFontHeight = imagefontheight($ChartFont);
  170. $ChartData = array("$entre1", "$entre2", "$entre3", "$entre4", "$entre5","$entre6", "$entre7", "$entre8", "$entre9","$entre10","$entre11", "$entre12");
  171. $ChartLabel = array("Janvier", "Février",
  172. "Mars", "Avril", "Mai", "Juin", "Juillet", "Août","Septembre","Octobre", "Novembre", "Decembre");
  173. //déterminer la taille du graphique
  174. $ChartWidth = $ChartDiameter + 20;
  175. $ChartHeight = $ChartDiameter + 20 +
  176. (($ChartFontHeight + 2) * count($ChartData));
  177. //détermine le total de toutes les valeurs
  178. for($index = 0; $index < count($ChartData); $index++)
  179. {
  180. $ChartTotal += $ChartData[$index];
  181. }
  182. $ChartCenterX = $ChartDiameter/2 + 10;
  183. $ChartCenterY = $ChartDiameter/2 + 10;
  184. //image
  185. $image = imagecreate($ChartWidth, $ChartHeight);
  186. //couleurs
  187. $colorBody = imagecolorallocate($image, 0xCC, 0xCC, 0xCC);
  188. $colorBorder = imagecolorallocate($image, 0x00, 0x00, 0x00);
  189. $colorText = imagecolorallocate($image, 0x00, 0x00, 0x00);
  190. $colorSlice[] = imagecolorallocate($image, 0xFF, 0x00, 0x00);
  191. $colorSlice[] = imagecolorallocate($image, 0x00, 0xFF, 0x00);
  192. $colorSlice[] = imagecolorallocate($image, 0x00, 0x00, 0xFF);
  193. $colorSlice[] = imagecolorallocate($image, 0xFF, 0xFF, 0x00);
  194. $colorSlice[] = imagecolorallocate($image, 0xFF, 0x00, 0xFF);
  195. $colorSlice[] = imagecolorallocate($image, 0x00, 0xFF, 0xFF);
  196. $colorSlice[] = imagecolorallocate($image, 0x99, 0x00, 0x00);
  197. $colorSlice[] = imagecolorallocate($image, 0x00, 0x99, 0x00);
  198. $colorSlice[] = imagecolorallocate($image, 0x00, 0x00, 0x99);
  199. $colorSlice[] = imagecolorallocate($image, 0x99, 0x99, 0x00);
  200. $colorSlice[] = imagecolorallocate($image, 0x99, 0x00, 0x99);
  201. $colorSlice[] = imagecolorallocate($image, 0x00, 0x99, 0x99);
  202. //arrière-plan
  203. imagefill($image, 0, 0, $colorBody);
  204. /*
  205. ** Dessiner chaque portion
  206. */
  207. $Degrees = 0;
  208. for($index = 0; $index < count($ChartData); $index++)
  209. {
  210. $StartDegrees = round($Degrees);
  211. $Degrees += (($ChartData[$index]/$ChartTotal)*360);
  212. $EndDegrees = round($Degrees);
  213. $CurrentColor = $colorSlice[$index%(count($colorSlice))];
  214. //dessiner un arc
  215. imagearc($image,
  216. $ChartCenterX,
  217. $ChartCenterY,
  218. $ChartDiameter,
  219. $ChartDiameter,
  220. $StartDegrees,
  221. $EndDegrees,
  222. $CurrentColor);
  223. //Tracer le début de la ligne à partir du centre
  224. list($ArcX, $ArcY) = circle_point($StartDegrees, $ChartDiameter);
  225. imageline($image,
  226. $ChartCenterX,
  227. $ChartCenterY,
  228. floor($ChartCenterX + $ArcX),
  229. floor($ChartCenterY + $ArcY),
  230. $CurrentColor);
  231. //dessiner la fin de la ligne
  232. list($ArcX, $ArcY) = circle_point($EndDegrees, $ChartDiameter);
  233. imageline($image,
  234. $ChartCenterX,
  235. $ChartCenterY,
  236. ceil($ChartCenterX + $ArcX),
  237. ceil($ChartCenterY + $ArcY),
  238. $CurrentColor);
  239. //remplir les portions
  240. $MidPoint = round((($EndDegrees - $StartDegrees)/2) + $StartDegrees);
  241. list($ArcX, $ArcY) = circle_point($MidPoint, $ChartDiameter/2);
  242. imagefilltoborder($image,
  243. floor($ChartCenterX + $ArcX),
  244. floor($ChartCenterY + $ArcY),
  245. $CurrentColor,
  246. $CurrentColor);
  247. }
  248. //la bordure
  249. imagearc($image,
  250. $ChartCenterX,
  251. $ChartCenterY,
  252. $ChartDiameter,
  253. $ChartDiameter,
  254. 0,
  255. 180,
  256. $colorBorder);
  257. imagearc($image,
  258. $ChartCenterX,
  259. $ChartCenterY,
  260. $ChartDiameter,
  261. $ChartDiameter,
  262. 180,
  263. 360,
  264. $colorBorder);
  265. imagearc($image,
  266. $ChartCenterX,
  267. $ChartCenterY,
  268. $ChartDiameter+7,
  269. $ChartDiameter+7,
  270. 0,
  271. 180,
  272. $colorBorder);
  273. imagearc($image,
  274. $ChartCenterX,
  275. $ChartCenterY,
  276. $ChartDiameter+7,
  277. $ChartDiameter+7,
  278. 180,
  279. 360,
  280. $colorBorder);
  281. imagefilltoborder($image,
  282. floor($ChartCenterX + ($ChartDiameter/2) + 2),
  283. $ChartCenterY,
  284. $colorBorder,
  285. $colorBorder);
  286. //la légende
  287. for($index = 0; $index < count($ChartData); $index++)
  288. {
  289. $CurrentColor = $colorSlice[$index%(count($colorSlice))];
  290. $LineY = $ChartDiameter + 20 + ($index*($ChartFontHeight+2));
  291. //la couleur des boîtes
  292. imagerectangle($image,
  293. 10,
  294. $LineY,
  295. 10 + $ChartFontHeight,
  296. $LineY+$ChartFontHeight,
  297. $colorBorder);
  298. imagefilltoborder($image,
  299. 12,
  300. $LineY + 2,
  301. $colorBorder,
  302. $CurrentColor);
  303. //Les titres
  304. imagestring($image,
  305. $ChartFont,
  306. 20 + $ChartFontHeight,
  307. $LineY,
  308. "$ChartLabel[$index]: $ChartData[$index]",
  309. $colorText);
  310. }
  311. //afficher l'image
  312. header("Content-type: image/png");
  313. imagepng($image);
  314. ?>