Ejemplo n.º 1
0
 public function IndexAction()
 {
     $em = $this->getDoctrine()->getEntityManager();
     $versionCarto = $em->getRepository('DeveloppementCartopliBundle:Installation')->getVersionCarto();
     $ServeursaAjouter = new Serveur();
     // On crée le FormBuilder grâce à la méthode du contrôleur
     $formBuilder = $this->createFormBuilder($ServeursaAjouter);
     // On ajoute les champs de l'entité que l'on veut à notre formulaire
     $formBuilder->add('constructeur', 'text', array('label' => 'Constructeur : ', 'required' => true, 'data' => 'HP'))->add('modele', 'text', array('label' => 'Mod. Serveur : ', 'required' => true, 'data' => 'HP DL360 G8'))->add('format', 'entity', array('label' => 'Format : ', 'required' => true, 'class' => 'DeveloppementCartopliBundle:ListesNew', 'property' => 'valeurAttr', 'empty_value' => 'N/A', 'query_builder' => function (EntityRepository $er) {
         return $er->createQueryBuilder('l')->where("l.nomAttr = 'Format' ")->orderBy('l.valeurAttr');
     }))->add('cycledevie', 'entity', array('label' => 'Etat :', 'required' => true, 'class' => 'DeveloppementCartopliBundle:ListesNew', 'property' => 'valeurAttr', 'empty_value' => false, 'query_builder' => function (EntityRepository $er) {
         return $er->createQueryBuilder('l')->where("l.nomAttr = 'CycleVie' ")->orderBy('l.valeurAttr');
     }))->add('rackLocal', 'entity', array('label' => 'Rack/Local :', 'required' => false, 'class' => 'DeveloppementCartopliBundle:Rack', 'property' => 'nom', 'empty_value' => 'stock', 'query_builder' => function (EntityRepository $er) {
         return $er->createQueryBuilder('r')->orderBy('r.nom');
     }))->add('localisation', 'entity', array('label' => 'Localisation :', 'required' => false, 'class' => 'DeveloppementCartopliBundle:ListesNew', 'property' => 'valeurAttr', 'empty_value' => 'LILHDD', 'query_builder' => function (EntityRepository $er) {
         return $er->createQueryBuilder('l')->where("l.nomAttr = 'Srv_Loca' ")->orderBy('l.valeurAttr');
     }))->add('nbcpu', 'integer', array('label' => 'Nb CPU : ', 'required' => true, 'data' => '2'))->add('nbcoeur', 'integer', array('label' => 'Nb Coeur : ', 'required' => true, 'data' => '6'))->add('vitessecpu', 'text', array('label' => 'Vitesse CPU : ', 'required' => true, 'data' => '2.5GHz'))->add('ram', 'text', array('label' => 'RAM : ', 'required' => true, 'data' => '16349'))->add('taille', 'integer', array('label' => 'Taille en U : ', 'required' => true, 'max_length' => '1'))->add('disque', 'text', array('label' => 'Taille Disque : ', 'required' => true, 'data' => '3To'))->add('lto', 'text', array('label' => 'LTO : ', 'required' => true, 'data' => 'SDLT'))->add('dateachat', 'date', array('label' => 'Date d\'achat : ', 'required' => true, 'widget' => 'single_text', 'format' => 'yyyy-MM-dd'))->add('fournisseur', 'text', array('label' => 'Fournisseur : ', 'required' => true, 'data' => 'UGAP LNA'))->add('marche', 'text', array('label' => 'Marché : ', 'required' => true, 'data' => '2013-23'))->add('garantie', 'text', array('label' => 'Garantie : ', 'required' => true, 'data' => 'UGAP-HP'))->add('datefinsupport', 'date', array('label' => 'Date Fin Sup: ', 'required' => true, 'widget' => 'single_text', 'format' => 'yyyy-MM-dd'))->add('lien', 'url', array('label' => 'Lien Contrat:', 'required' => false));
     // À partir du formBuilder, on génère le formulaire
     $formCreationServeurs = $formBuilder->getForm();
     $request = $this->get('request');
     if ($request->isMethod('POST')) {
         $formCreationServeurs->bind($request);
         if ($formCreationServeurs->isValid()) {
             // check there are no errors
             if ($_FILES['csv']['error'] == 0) {
                 $tmpName = $_FILES['csv']['tmp_name'];
                 if (($handle = fopen($tmpName, 'r')) !== FALSE) {
                     // necessary if a large csv file
                     // set_time_limit(0);
                     $row = 1;
                     while (($data = fgetcsv($handle, 1000, ';')) !== FALSE) {
                         $num = count($data);
                         if ($row == 1) {
                             if (isset($_POST['form']['rackLocal']) != '') {
                                 $ServeursaAjouter->setRackLocal($em->getRepository('DeveloppementCartopliBundle:Rack')->find($_POST['form']['rackLocal']));
                             }
                             if (isset($_POST['form']['rackLocal']) == '') {
                                 $ServeursaAjouter->setRackLocal($em->getRepository('DeveloppementCartopliBundle:Rack')->find(128));
                             }
                             //    if (isset($_POST['rackLocal'])=='')
                             //    {
                             //         $ServeursaAjouter->setRackLocal(($em->getRepository('DeveloppementCartopliBundle:Rack')->find(128)));
                             //   }
                             if ($ServeursaAjouter->getRackLocal() === NULL) {
                                 $ServeursaAjouter->setRackLocal($em->getRepository('DeveloppementCartopliBundle:Rack')->find(128));
                             }
                             if (isset($_POST['localisation']) == '') {
                                 $ServeursaAjouter->setLocalisation($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(157));
                             }
                             if ($ServeursaAjouter->getRackLocal()->getNum() >= 41 && $ServeursaAjouter->getRackLocal()->getNum() <= 54) {
                                 $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(1);
                                 $emplacement = $r->getUtilise();
                             } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 85 && $ServeursaAjouter->getRackLocal()->getNum() <= 98) {
                                 $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(2);
                                 $emplacement = $r->getUtilise();
                             } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 55 && $ServeursaAjouter->getRackLocal()->getNum() <= 68) {
                                 $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(3);
                                 $emplacement = $r->getUtilise();
                             } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 70 && $ServeursaAjouter->getRackLocal()->getNum() <= 83) {
                                 $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(84);
                                 $emplacement = $r->getUtilise();
                             } else {
                                 $emplacement = $ServeursaAjouter->getRackLocal()->getUtilise();
                             }
                             $ServeursaAjouter->setNser($data[0]);
                             $ServeursaAjouter->setHostname('SRVSTOCK' . $ServeursaAjouter->getNum());
                             $ServeursaAjouter->setOS('UNKNOWN');
                             $ServeursaAjouter->setType($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(366));
                             $ServeursaAjouter->setNumcontrat('');
                             $ServeursaAjouter->setEmplacementrack($ServeursaAjouter->getRackLocal()->getUtilise());
                             $em->persist($ServeursaAjouter);
                             // var_dump($ServeursaAjouter);
                             $em->flush();
                             $emplacement = $emplacement + $ServeursaAjouter->getTaille();
                             $ServeursaAjouter->setHostname('SRVSTOCK' . $ServeursaAjouter->getNum());
                             $ServeursaAjouter->setEmplacementrack($emplacement);
                             if ($ServeursaAjouter->getRackLocal()->getNum() >= 41 && $ServeursaAjouter->getRackLocal()->getNum() <= 54) {
                                 $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(1);
                                 $r->setUtilise($emplacement);
                             } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 85 && $ServeursaAjouter->getRackLocal()->getNum() <= 98) {
                                 $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(2);
                                 $r->setUtilise($emplacement);
                             } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 55 && $ServeursaAjouter->getRackLocal()->getNum() <= 68) {
                                 $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(3);
                                 $r->setUtilise($emplacement);
                             } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 70 && $ServeursaAjouter->getRackLocal()->getNum() <= 83) {
                                 $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(84);
                                 $r->setUtilise($emplacement);
                             } else {
                                 $ServeursaAjouter->getRackLocal()->setUtilise($emplacement);
                             }
                             $em->persist($ServeursaAjouter);
                             // var_dump($ServeursaAjouter);
                             $em->flush();
                             //garde les champs en mémoire pour créer plusieurs serveurs
                             $const = $ServeursaAjouter->getConstructeur();
                             $modele = $ServeursaAjouter->getModele();
                             $format = $ServeursaAjouter->getFormat();
                             $etat = $ServeursaAjouter->getCycledevie();
                             $rack = $ServeursaAjouter->getRackLocal();
                             $local = $ServeursaAjouter->getLocalisation();
                             $nbcpu = $ServeursaAjouter->getNbcpu();
                             $nbcoeur = $ServeursaAjouter->getNbcoeur();
                             $vitesse = $ServeursaAjouter->getVitessecpu();
                             $ram = $ServeursaAjouter->getRam();
                             $taille = $ServeursaAjouter->getTaille();
                             $disque = $ServeursaAjouter->getDisque();
                             //$dvd = $ServeursaAjouter->getDvd();
                             $lto = $ServeursaAjouter->getLto();
                             $achat = $ServeursaAjouter->getDateachat();
                             $fournisseur = $ServeursaAjouter->getFournisseur();
                             $marche = $ServeursaAjouter->getMarche();
                             $garantie = $ServeursaAjouter->getGarantie();
                             $finsupport = $ServeursaAjouter->getDatefinsupport();
                             $lien = $ServeursaAjouter->getLien();
                             $c = 1;
                         } else {
                             $c = 0;
                         }
                         $row++;
                         for ($c; $c < $num; $c++) {
                             if ($data[$c] != '') {
                                 $ServeursaAjouter = new Serveur();
                                 $emplacement = $taille + $emplacement;
                                 //Creation du serveur
                                 $ServeursaAjouter->setHostname('SRVSTOCK' . $ServeursaAjouter->getNum());
                                 $ServeursaAjouter->setConstructeur($const);
                                 $ServeursaAjouter->setModele($modele);
                                 $ServeursaAjouter->setFormat($format);
                                 $ServeursaAjouter->setCycledevie($etat);
                                 $ServeursaAjouter->setRackLocal($rack);
                                 $ServeursaAjouter->setLocalisation($local);
                                 $ServeursaAjouter->setNbcpu($nbcpu);
                                 $ServeursaAjouter->setNbcoeur($nbcoeur);
                                 $ServeursaAjouter->setVitessecpu($vitesse);
                                 $ServeursaAjouter->setRam($ram);
                                 $ServeursaAjouter->setTaille($taille);
                                 $ServeursaAjouter->setDisque($disque);
                                 // $ServeursaAjouter->setDvd($dvd);
                                 $ServeursaAjouter->setLto($lto);
                                 $ServeursaAjouter->setDateachat($achat);
                                 $ServeursaAjouter->setFournisseur($fournisseur);
                                 $ServeursaAjouter->setMarche($marche);
                                 $ServeursaAjouter->setGarantie($garantie);
                                 $ServeursaAjouter->setDatefinsupport($finsupport);
                                 $ServeursaAjouter->setLien($lien);
                                 $ServeursaAjouter->setNser($data[$c]);
                                 $ServeursaAjouter->setHostname('SRVSTOCK' . $ServeursaAjouter->getNum());
                                 $ServeursaAjouter->setOS('UNKNOWN');
                                 $ServeursaAjouter->setType($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(366));
                                 $ServeursaAjouter->setNumcontrat($ServeursaAjouter->getNumcontrat());
                                 $ServeursaAjouter->setEmplacementrack($emplacement);
                                 //   var_dump($ServeursaAjouter);
                                 if ($ServeursaAjouter->getRackLocal()->getNum() >= 41 && $ServeursaAjouter->getRackLocal()->getNum() <= 54) {
                                     $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(1);
                                     $r->setUtilise($emplacement);
                                 } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 85 && $ServeursaAjouter->getRackLocal()->getNum() <= 98) {
                                     $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(2);
                                     $r->setUtilise($emplacement);
                                 } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 55 && $ServeursaAjouter->getRackLocal()->getNum() <= 68) {
                                     $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(3);
                                     $r->setUtilise($emplacement);
                                 } elseif ($ServeursaAjouter->getRackLocal()->getNum() >= 70 && $ServeursaAjouter->getRackLocal()->getNum() <= 83) {
                                     $r = $em->getRepository('DeveloppementCartopliBundle:Rack')->find(84);
                                     $r->setUtilise($emplacement);
                                 } else {
                                     $ServeursaAjouter->getRackLocal()->setUtilise($emplacement);
                                 }
                                 $em->persist($ServeursaAjouter);
                                 $em->flush();
                                 $ServeursaAjouter->setHostname('SRVSTOCK' . $ServeursaAjouter->getNum());
                                 //  var_dump($ServeursaAjouter);
                                 $em->persist($ServeursaAjouter);
                                 $em->flush();
                             }
                         }
                     }
                     fclose($handle);
                 }
             }
             // return $this->redirect($this->generateUrl('developpement_cartopli_serveurs'));
             // var_dump($ServeursaAjouter);
         }
         //  sleep(3);
         return $this->render('DeveloppementCartopliBundle:Default:outils.html.twig', array('versionCarto' => $versionCarto, 'formCreationServeurs' => $formCreationServeurs->createView()));
     }
     //sleep(3);
     return $this->render('DeveloppementCartopliBundle:Default:outils.html.twig', array('versionCarto' => $versionCarto, 'formCreationServeurs' => $formCreationServeurs->createView()));
 }
 public function ImportServeurAction()
 {
     set_time_limit(0);
     $em = $this->getDoctrine()->getEntityManager();
     // $full_path = "//landesk-serveurs.intranet.cg59.fr/reports/";
     $precedent = "";
     $nouveau = 0;
     $maj = 0;
     $sanserial = 0;
     foreach (glob($full_path . "*.csv") as $csvfile) {
     }
     // $nomCsv = substr($csvfile,53);
     //+11
     $nomCsv = substr($csvfile, strripos($csvfile, '/', -1));
     $csv = new SplFileObject($csvfile, 'r');
     $csv->setFlags(SplFileObject::READ_CSV);
     $csv->setCsvControl(',', '"', '"');
     echo "Import du fichier " . $nomCsv . " <br><br>";
     $nouveauServeur = false;
     $stringListeNouveauServeur = '';
     $headers = '*****@*****.**';
     $resultat = '';
     $row = 1;
     foreach ($csv as $data) {
         if ($row == 1) {
             $eHost = 0;
             for ($i = 0; $i != 11; $i++) {
                 switch ($data[$i]) {
                     case "Service Pack":
                         $eServicePack = $i;
                         break;
                     case "Nom du périphérique":
                         $eHostname = $i;
                         break;
                     case "Nom d'OS":
                         $eOs = $i;
                         break;
                     case "Numéro de série":
                         $eNser = $i;
                         break;
                     case "Modèle":
                         $eModel = $i;
                         break;
                     case "Nombre de processeurs":
                         $eNbCpu = $i;
                         break;
                     case "Total d'octets":
                         $eRam = $i;
                         break;
                     case "Type":
                         $eTcpu = $i;
                         break;
                     case "Fabricant":
                         $eConstructeur = $i;
                         break;
                     case "Coeurs par Processeurs":
                         $eNbCoeurCpu = $i;
                         break;
                     case "Adresse":
                         $eAdresse = $i;
                         break;
                 }
             }
         }
         if ($data[$eHost] != null) {
             //si data[0] est pas null c'est a dir le hostname
             if ($data[$eHostname] != '' && $data[$eNser] != '') {
                 // si hostname ET numéro de serie existent ==> MAJ
                 $row++;
                 $hostname = strtoupper($data[$eHostname]);
                 $os = $data[$eOs];
                 $Nser = $data[$eNser];
                 $Model = $data[$eModel];
                 $Constructeur = $data[$eConstructeur];
                 $Ram = $data[$eRam];
                 $NbCpu = $data[$eNbCpu];
                 $ServicePack = $data[$eServicePack];
                 $Tcpu = $data[$eTcpu];
                 $adresse = $data[$eAdresse];
                 $nbCoeurCpu = $data[$eNbCoeurCpu];
                 //$Hostname = $data[$eHostname];
                 if ($row > 2) {
                     // pour passer l'entete du fichier
                     // récupération du serveur par Numero de série
                     if ($em->getRepository('DeveloppementCartopliBundle:Serveur')->getNumServeurByNser($Nser) != NULL) {
                         $serveur = $em->getRepository('DeveloppementCartopliBundle:Serveur')->find($em->getRepository('DeveloppementCartopliBundle:Serveur')->getNumServeurByNser($Nser));
                         if ($Tcpu != NULL) {
                             $serveur->setTypecpu($Tcpu);
                         } else {
                             $serveur->setTypecpu('Serveur Pas ou Plus dans Referentiel');
                             break;
                             // DVI erreur a corriger plus tard
                         }
                         // positionne le cycle de vie pour les serveur importé en masse, sinon le laisser tel quel
                         if (preg_match('#SRVSTOCK#i', $serveur->getHostname())) {
                             $serveur->setCycleDeVie($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(256));
                         }
                         $serveur->setHostname($hostname);
                         $serveur->setOs($os);
                         $serveur->setNbcpu($NbCpu);
                         $serveur->setModele($Model);
                         $serveur->setRam($Ram);
                         $serveur->setConstructeur($Constructeur);
                         $serveur->setSP($ServicePack);
                         //nouv fonctionnalite
                         $serveur->setadresseIP($adresse);
                         $serveur->setNbcoeur($nbCoeurCpu);
                         $em->persist($serveur);
                         $em->flush();
                         $precedent = $hostname;
                         $maj++;
                         echo "Serveur MAJ : " . $hostname . " <br>";
                     } else {
                         // numero de serie non trouvé
                         // Si Hostname existe et numero de serie différent ; MAJ
                         if ($em->getRepository('DeveloppementCartopliBundle:Serveur')->getNumServeurByHostname($hostname) != NULL) {
                             $serveur = $em->getRepository('DeveloppementCartopliBundle:Serveur')->find($em->getRepository('DeveloppementCartopliBundle:Serveur')->getNumServeurByHostname($hostname));
                             if ($Tcpu != NULL) {
                                 $serveur->setTypecpu($Tcpu);
                             } else {
                                 $serveur->setTypecpu('Serveur Pas ou Plus dans Referentiel');
                             }
                             $serveur->setNser($Nser);
                             $serveur->setOs($os);
                             $serveur->setNbcpu($NbCpu);
                             $serveur->setModele($Model);
                             $serveur->setRam($Ram);
                             $serveur->setConstructeur($Constructeur);
                             $serveur->setSP($ServicePack);
                             $serveur->setadresseIP($adresse);
                             $serveur->setNbcoeur($nbCoeurCpu);
                             $em->persist($serveur);
                             $em->flush();
                             $precedent = $hostname;
                             $maj++;
                             echo "Serveur MAJ par Hostname (NSerie posant pb): " . $hostname . " <br>";
                         } else {
                             // Sinon Nouveau serveur
                             // Si Nser et Hostname alors nouvreau serveur
                             $RackLocal = 128;
                             $nouveauServeur = true;
                             $serveur = new Serveur();
                             $serveur->setPerimetreCST($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(870));
                             $serveur->setcriticite($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(833));
                             $serveur->setcomplexite($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(829));
                             $serveur->setplageService($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(823));
                             $serveur->setCycledevie($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(371));
                             $serveur->setLocalisation($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(369));
                             $serveur->setType($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(366));
                             $serveur->setRackLocal($em->getRepository('DeveloppementCartopliBundle:Rack')->find(128));
                             $serveur->setOs($os);
                             $serveur->setNbcpu($NbCpu);
                             $serveur->setModele($Model);
                             $serveur->setRam($Ram);
                             $serveur->setConstructeur($Constructeur);
                             $serveur->setNser($Nser);
                             $serveur->setHostname($hostname);
                             $serveur->setSP($ServicePack);
                             //nouv fonctionnalite
                             $serveur->setadresseIP($adresse);
                             $serveur->setNbcoeur($nbCoeurCpu);
                             $serveur->setHost($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(805));
                             // nouv SM
                             $em->persist($serveur);
                             $em->flush();
                             $nouveau++;
                             echo "Nouveau Serveur : " . $hostname . " <br>";
                             $stringListeNouveauServeur = $stringListeNouveauServeur . $hostname . ", ";
                         }
                     }
                 }
                 // Row >2
             } else {
                 // Pas de Hostname ou Ner dans le fichier
                 // if ($data[2]==''){ echo "Serveur sans numero de série  : " . $hostname." <br>" ; }
                 if ($data[$eNser] != '') {
                     //// pas nser
                     echo "Serveur sans Numéro de serie : " . $data[$eHostname] . "<br>";
                     $sanserial++;
                 } else {
                     // pas de Hostname ?!
                 }
             }
         }
         // var_dump("Fichier imcomplet : Serveur ". $data[0] . " num ser ". $data[2] . " non trouvé <br>");
     }
     // foreach ligne du fichier
     $row = $row - 2;
     // enlever entete et dernière ligne
     echo "<br>Fin de Fichier. ligne:" . abs($row) . " , dernier serveur traité :" . $precedent . "<br>";
     echo $nouveau . " Nouveaux serveurs <br>";
     echo $maj . " Serveurs traités <br> dont " . $sanserial . " sans numémro de série <br>";
     foreach (glob($full_path . "*DVI - Export Serveur ID Landesk*.csv") as $csvfile) {
     }
     //$nomCsv = substr($csvfile,53);
     $nomCsv = substr($csvfile, strripos($csvfile, '/', -1));
     $csv = new SplFileObject($csvfile, 'r');
     $csv->setFlags(SplFileObject::READ_CSV);
     $csv->setCsvControl(',', '"', '"');
     echo "  <br><br> Import du fichier " . $nomCsv . " <br><br>";
     $nouveauServeur = false;
     $stringListeNouveauServeur = '';
     $headers = '*****@*****.**';
     $resultat = '';
     $row = 1;
     foreach ($csv as $data) {
         if ($row == 1) {
             $eHost = 0;
             for ($i = 0; $i != 9; $i++) {
                 switch ($data[$i]) {
                     case "Service Pack":
                         $eServicePack = $i;
                         break;
                     case "Nom du périphérique":
                         $eHostname = $i;
                         break;
                     case "Nom d'OS":
                         $eOs = $i;
                         break;
                     case "Numéro de série":
                         $eNser = $i;
                         break;
                     case "Modèle":
                         $eModel = $i;
                         break;
                     case "Nombre de processeurs":
                         $eNbCpu = $i;
                         break;
                     case "Total d'octets":
                         $eRam = $i;
                         break;
                     case "Type":
                         $eTcpu = $i;
                         break;
                     case "Fabricant":
                         $eConstructeur = $i;
                         break;
                 }
             }
         }
         if ($data[$eHost] != null) {
             //si data[0] est pas null c'est a dir le hostname
             if ($data[$eHostname] != '' && $data[$eNser] != '') {
                 // si hostname ET numéro de serie existent ==> MAJ
                 $row++;
                 $hostname = strtoupper($data[$eHostname]);
                 $os = $data[$eOs];
                 $Nser = $data[$eNser];
                 $Model = $data[$eModel];
                 $Constructeur = $data[$eConstructeur];
                 $Ram = $data[$eRam];
                 $NbCpu = $data[$eNbCpu];
                 $ServicePack = $data[$eServicePack];
                 $Tcpu = $data[$eTcpu];
                 //$Hostname = $data[$eHostname];
                 if ($row > 2) {
                     // pour passer l'entete du fichier
                     // récupération du serveur par Numero de série
                     if ($em->getRepository('DeveloppementCartopliBundle:Serveur')->getNumServeurByNser($Nser) != NULL) {
                         $serveur = $em->getRepository('DeveloppementCartopliBundle:Serveur')->find($em->getRepository('DeveloppementCartopliBundle:Serveur')->getNumServeurByNser($Nser));
                         if ($Tcpu != NULL) {
                             $serveur->setTypecpu($Tcpu);
                         } else {
                             $serveur->setTypecpu('Serveur Pas ou Plus dans Referentiel');
                             break;
                             // DVI erreur a corriger plus tard
                         }
                         // positionne le cycle de vie pour les serveur importé en masse, sinon le laisser tel quel
                         if (preg_match('#SRVSTOCK#i', $serveur->getHostname())) {
                             $serveur->setCycleDeVie($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(256));
                         }
                         $serveur->setHostname($hostname);
                         $serveur->setOs($os);
                         $serveur->setNbcpu($NbCpu);
                         $serveur->setModele($Model);
                         $serveur->setRam($Ram);
                         $serveur->setConstructeur($Constructeur);
                         $serveur->setSP($ServicePack);
                         //nouv fonctionnalite
                         $em->persist($serveur);
                         $em->flush();
                         $precedent = $hostname;
                         $maj++;
                         echo "Serveur MAJ : " . $hostname . " <br>";
                     } else {
                         // numero de serie non trouvé
                         // Si Hostname existe et numero de serie différent ; MAJ
                         if ($em->getRepository('DeveloppementCartopliBundle:Serveur')->getNumServeurByHostname($hostname) != NULL) {
                             $serveur = $em->getRepository('DeveloppementCartopliBundle:Serveur')->find($em->getRepository('DeveloppementCartopliBundle:Serveur')->getNumServeurByHostname($hostname));
                             if ($Tcpu != NULL) {
                                 $serveur->setTypecpu($Tcpu);
                             } else {
                                 $serveur->setTypecpu('Serveur Pas ou Plus dans Referentiel');
                             }
                             $serveur->setNser($Nser);
                             $serveur->setOs($os);
                             $serveur->setNbcpu($NbCpu);
                             $serveur->setModele($Model);
                             $serveur->setRam($Ram);
                             $serveur->setConstructeur($Constructeur);
                             $serveur->setSP($ServicePack);
                             $em->persist($serveur);
                             $em->flush();
                             $precedent = $hostname;
                             $maj++;
                             echo "Serveur MAJ par Hostname (NSerie posant pb): " . $hostname . " <br>";
                         } else {
                             // Sinon Nouveau serveur
                             // Si Nser et Hostname alors nouvreau serveur
                             $RackLocal = 128;
                             $nouveauServeur = true;
                             $serveur = new Serveur();
                             $serveur->setPerimetreCST($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(870));
                             $serveur->setcriticite($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(833));
                             $serveur->setcomplexite($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(829));
                             $serveur->setplageService($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(823));
                             $serveur->setCycledevie($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(371));
                             $serveur->setLocalisation($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(369));
                             $serveur->setType($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(366));
                             $serveur->setRackLocal($em->getRepository('DeveloppementCartopliBundle:Rack')->find(128));
                             $serveur->setOs($os);
                             $serveur->setNbcpu($NbCpu);
                             $serveur->setModele($Model);
                             $serveur->setRam($Ram);
                             $serveur->setConstructeur($Constructeur);
                             $serveur->setNser($Nser);
                             $serveur->setHostname($hostname);
                             $serveur->setSP($ServicePack);
                             //nouv fonctionnalite
                             $serveur->setHost($em->getRepository('DeveloppementCartopliBundle:ListesNew')->find(805));
                             // nouv SM
                             $em->persist($serveur);
                             $em->flush();
                             $nouveau++;
                             echo "Nouveau Serveur : " . $Hostname . " <br>";
                             $stringListeNouveauServeur = $stringListeNouveauServeur . $hostname . ", ";
                         }
                     }
                 }
                 // Row >2
             } else {
                 // Pas de Hostname ou Ner dans le fichier
                 // if ($data[2]==''){ echo "Serveur sans numero de série  : " . $hostname." <br>" ; }
                 if ($data[$eNser] != '') {
                     //// pas nser
                     echo "Serveur sans Numéro de serie : " . $data[$eHostname] . "<br>";
                     $sanserial++;
                 } else {
                     // pas de Hostname ?!
                 }
             }
         }
         // var_dump("Fichier imcomplet : Serveur ". $data[0] . " num ser ". $data[2] . " non trouvé <br>");
     }
     // foreach ligne du fichier
     $row = $row - 2;
     // enlever entete et dernière ligne
     echo "<br>Fin de Fichier. ligne:" . abs($row) . " , dernier serveur traité :" . $precedent . "<br>";
     echo $nouveau . " Nouveaux serveurs <br>";
     echo $maj . " Serveurs traités <br> dont " . $sanserial . " sans numémro de série <br>";
     ///RETOUR A LA POPUP/////
     return $this->render('DeveloppementCartopliBundle:Default:resultatImport.html.twig', array('resultat' => $resultat));
     ///FIN RETOUR/////
 }