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

/gespac/gestion_donnees/export_inventaire.php

http://gespac.googlecode.com/
PHP | 108 lines | 69 code | 28 blank | 11 comment | 14 complexity | 438dd5e76e5bc94c05bf4f5ffc27ea87 MD5 | raw file
  1. <?PHP
  2. /* CREATION DU FICHIER D'EXPORT INVENTAIRE */
  3. // Connexion ŕ la base de données GESPAC
  4. $con_gespac = new Sql ( $host, $user, $pass, $gespac );
  5. if ($con_gespac->Exists()) {
  6. // stockage des lignes retournées par sql dans un tableau (je ne récupčre que le matos associé ŕ une marque)
  7. $liste_export = $con_gespac->QueryAll ( "
  8. select college.clg_uai as clg_uai, clg_nom, clg_cp, clg_ville, salle_nom, mat_nom, mat_etat, mat_origine, marque_type, marque_stype, marque_marque, marque_model, mat_dsit, mat_serial, salle_vlan, salle_etage, salle_batiment, clg_site_web, clg_site_grr
  9. from college, salles, materiels, marques
  10. where
  11. college.clg_uai = salles.clg_uai AND
  12. salles.salle_id = materiels.salle_id AND
  13. marques.marque_id = materiels.marque_id
  14. " );
  15. $filename = "inv_" . $liste_export[0]["clg_nom"] . "_" . $liste_export[0]["clg_ville"] . "_" . $liste_export[0]["clg_uai"] . "_gespac_".$version.".csv";
  16. //On formate le nom du fichier ici histoire de pas avoir de caractčres zarb'
  17. $filename = strtr($filename, 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  18. $filename = preg_replace('/([^.a-z0-9]+)/i', '_', $filename);
  19. $fp = fopen('dump/' .$filename, 'w+');
  20. // ENTETES
  21. fputcsv($fp, array('clg_uai', 'clg_nom', 'clg_cp', 'clg_ville', 'salle_nom', 'mat_nom', 'etat', 'origine', 'type', 'stype', 'marque', 'modele', 'inventaire', 'lastcome', 'fidele', 'serial', 'vlan', 'etage', 'batiment'), ',' );
  22. foreach ($liste_export as $record) {
  23. $clg_uai = mb_strtoupper($record['clg_uai']);
  24. $clg_nom = strtr(mb_strtoupper($record['clg_nom']), 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  25. $clg_cp = mb_strtoupper($record['clg_cp']);
  26. $clg_ville = strtr(mb_strtoupper($record['clg_ville']), 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  27. $salle_nom = strtr(mb_strtoupper($record['salle_nom']), 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  28. $mat_nom = mb_strtoupper($record['mat_nom']);
  29. $etat = strtr(mb_strtoupper($record['mat_etat']), 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  30. $origine = mb_strtoupper($record['mat_origine']);
  31. $type = mb_strtoupper($record['marque_type']);
  32. $stype = mb_strtoupper($record['marque_stype']);
  33. $marque = mb_strtoupper($record['marque_marque']);
  34. $modele = mb_strtoupper($record['marque_model']);
  35. $dsit = mb_strtoupper($record['mat_dsit']);
  36. $serial = mb_strtoupper($record['mat_serial']);
  37. $vlan = mb_strtoupper($record['salle_vlan']);
  38. $etage = strtr(mb_strtoupper($record['salle_etage']), 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  39. $batiment = strtr(mb_strtoupper($record['salle_batiment']), 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  40. $web = mb_strtoupper($record['clg_site_web']);
  41. $grr = mb_strtoupper($record['clg_site_grr']);
  42. //Partie fidelité OCS :-(
  43. // Connexion ŕ la base de données GESPAC
  44. $con_ocsweb = new Sql ( $host, $user, $pass, $ocsweb );
  45. // Si la base OCS répond
  46. if ($con_ocsweb->Exists()) {
  47. $info = "";
  48. $liste_export_ocs = $con_ocsweb->QueryAll ("select LASTCOME, FIDELITY from hardware, bios where bios.HARDWARE_ID=hardware.ID AND bios.SSN = '$serial'");
  49. if (!$liste_export_ocs) {
  50. $last='matériel non présent dans OCS'; $fidele='0';
  51. }//du fait du MAX(LASTCOME) cette ligne ne marche pas...
  52. else {
  53. foreach ($liste_export_ocs as $record_ocs) {
  54. $last = ($record_ocs['LASTCOME']);
  55. $fidele =($record_ocs['FIDELITY']);
  56. }
  57. }
  58. //demande etude imprimante reseaux ou pas
  59. if ($type == 'IMPRIMANTE') {
  60. if ($modele[strlen($modele)-1] == 'N') {$stype = $stype.'_RX';}//si le modčle imprimante contient ŕ la fin un N est bien c'est une imprimante RX normalement et on ajout _RX ŕ la fin du sous type
  61. }
  62. fputcsv($fp, array($clg_uai, $clg_nom, $clg_cp, $clg_ville, $salle_nom, $mat_nom, $etat, $origine, $type, $stype, $marque, $modele, $dsit, $last, $fidele, $serial, $vlan, $etage, $batiment), ',');
  63. }
  64. else {
  65. $info = " SANS les données OCS.";
  66. // Si la base OCS ne répond pas, on ne colle pas de lastcome ou de fidelity
  67. //demande etude imprimante reseaux ou pas
  68. if ($type == 'IMPRIMANTE') {
  69. if ($modele[strlen($modele)-1] == 'N') {$stype = $stype.'_RX';}//si le modčle imprimante contient ŕ la fin un N est bien c'est une imprimante RX normalement et on ajout _RX ŕ la fin du sous type
  70. }
  71. fputcsv($fp, array($clg_uai, $clg_nom, $clg_cp, $clg_ville, $salle_nom, $mat_nom, $etat, $origine, $type, $stype, $marque, $modele, $dsit, 'NA', 'NA', $serial, $vlan, $etage, $batiment), ',');
  72. }
  73. }
  74. fclose($fp);
  75. echo "<center><h1><a href='dump/$filename'>Fichier CSV inventaire $info</a></h1></center>";
  76. } else {
  77. echo "<center><h1 style='color:red;'>La base GESPAC ne semble pas joignable...</h1></center>";
  78. exit();
  79. }
  80. ?>