/** * @Route("/societe/modification/{id}", defaults={"id" = null}, name="societe_modification") */ public function modificationAction(Request $request, $id) { $dm = $this->get('doctrine_mongodb')->getManager(); $isNew = $id ? false : true; $societe = !$isNew ? $this->get('societe.manager')->getRepository()->find($id) : new Societe(); $form = $this->createForm(new SocieteType($this->container, $dm, $isNew), $societe, array('action' => $this->generateUrl('societe_modification', array('id' => $id)), 'method' => 'POST')); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $societe = $form->getData(); $dm->persist($societe); $dm->flush(); if ($isNew && $form->get("generer")->getData()) { $etablissement = new Etablissement(); $etablissement->setSociete($societe); $etablissement->setNom($societe->getRaisonSociale()); $etablissement->setType($societe->getType()); $etablissement->setCommentaire($societe->getCommentaire()); $dm->persist($etablissement); $dm->flush(); } return $this->redirectToRoute('societe_visualisation', array('id' => $societe->getId())); } return $this->render('societe/modification.html.twig', array('form' => $form->createView(), 'societe' => $societe, 'isNew' => $isNew)); }
public function createFromImport($ligne, $output) { $societe = $this->sm->getRepository()->findOneBy(array('identifiantReprise' => $ligne[self::CSV_ID_SOCIETE])); if (!$societe) { $output->writeln(sprintf("<error>La société %s n'existe pas</error>", $ligne[self::CSV_ID_SOCIETE])); return; } $etablissement = $this->em->getRepository()->findOneBy(array('identifiantReprise', $ligne[self::CSV_ID_ADRESSE])); if (!$etablissement) { $etablissement = new Etablissement(); } $etablissement->setSociete($societe); $etablissement->setIdentifiant($societe->getIdentifiant()); $etablissement->setIdentifiantReprise($ligne[self::CSV_ID_ADRESSE]); $etablissement->setNom($ligne[self::CSV_NOM_ETB]); $adresse_str = $ligne[self::CSV_ADRESS_1]; if ($ligne[self::CSV_ADRESS_2]) { $adresse_str .= ', ' . $ligne[self::CSV_ADRESS_2]; } $etablissement->setCommentaire(str_replace('#', "\n", $ligne[self::CSV_CMT])); $etablissement->setRaisonSociale($ligne[self::CSV_RAISON_SOCIALE]); $adresse = new Adresse(); $adresse->setAdresse($adresse_str); $adresse->setCodePostal($ligne[self::CSV_CP]); $adresse->setCommune($ligne[self::CSV_VILLE]); $adresse->setCoordonnees(new Coordonnees()); if (isset($ligne[self::CSV_COORD_LAT]) && isset($ligne[self::CSV_COORD_LON]) && $ligne[self::CSV_COORD_LAT] && $ligne[self::CSV_COORD_LON]) { $lat = $ligne[self::CSV_COORD_LAT]; $lon = $ligne[self::CSV_COORD_LON]; $adresse->getCoordonnees()->setLat($lat); $adresse->getCoordonnees()->setLon($lon); //echo "lat=$lat lon=$lon déjà enregistré \n"; } else { $msg = $this->em->getOSMAdresse()->calculCoordonnees($adresse); sleep(0.5); if ($msg && is_string($msg)) { //echo $msg . "\n"; } } $etablissement->setAdresse($adresse); $contactCoordonnee = new ContactCoordonnee(); $contactCoordonnee->setTelephoneFixe($ligne[self::CSV_TEL_FIXE]); $contactCoordonnee->setTelephoneMobile($ligne[self::CSV_TEL_MOBILE]); $contactCoordonnee->setFax($ligne[self::CSV_FAX]); $contactCoordonnee->setSiteInternet($ligne[self::CSV_SITE_WEB]); $contactCoordonnee->setEmail($ligne[self::CSV_EMAIL]); $etablissement->setContactCoordonnee($contactCoordonnee); if ($ligne[self::CSV_TYPE_ETABLISSEMENT] == "") { $etablissement->setType(EtablissementManager::TYPE_ETB_NON_SPECIFIE); } else { $types_etablissements = EtablissementManager::$type_libelles; $types_etb_keys = array_keys($types_etablissements); $etablissement->setType($types_etb_keys[intval($ligne[self::CSV_TYPE_ETABLISSEMENT]) - 1]); } return $etablissement; }