container = $container; $this->em = $em; } protected function configure() { $this ->setName('app:AppInit') ->setDescription('Init Data for App') ->setHelp('This command Init Data App') ; } protected function execute(InputInterface $input, OutputInterface $output) { $this->output = $output; $this->filesystem = new Filesystem(); $this->rootlog = $this->container->get('kernel')->getProjectDir()."/../var/log/"; $output->writeln('APP = Default Data'); // Création des natures par défaut $this->insertNature(-200,"Congés",true); $this->insertNature(-190,"Temps Partiel",false); $this->insertNature(-100,"Non Travaillé",false); $this->insertNature(-90,"Non Facturable",false); $this->insertNature(-80,"Prestation",false); // Création domaine par défaut $this->insertDomaine(-100,"Administratif","Administratif"); // Création du compte admin si non existant $this->insertUser("admin","admin"); $output->writeln(''); $this->em->flush(); return 0; } protected function insertNature($id,$name,$isvacation) { $metadata = $this->em->getClassMetaData('App:Nature'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); $metadata->setIdGenerator(new AssignedGenerator()); $entity = $this->em->getRepository('App:Nature')->find($id); if(!$entity) { $entity = new Nature; $entity->setId($id); $entity->setName($name); $entity->setIsvacation($isvacation); $this->em->persist($entity); $this->em->flush(); } } protected function insertDomaine($id,$category,$name) { $metadata = $this->em->getClassMetaData('App:Domaine'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); $metadata->setIdGenerator(new AssignedGenerator()); $entity = $this->em->getRepository('App:Domaine')->find($id); if(!$entity) { $entity = new Domaine; $entity->setId($id); $entity->setName($name); $entity->setCategory($category); $this->em->persist($entity); $this->em->flush(); } } protected function insertUser() { $metadata = $this->em->getClassMetaData('App:User'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); $metadata->setIdGenerator(new AssignedGenerator()); // Job Récupératoin la table de référence des articles // Toute les 1mn $entity = $this->em->getRepository('App:User')->findOneBy(["username"=>"admin"]); if(!$entity) { $this->writelnred('Création du compte admin par défaut avec password admin - Veuillez modifier votre password admin après connexion'); $entity = new User; $entity->setId(0); $entity->setUsername("admin"); $entity->setPassword("admin"); $entity->setFirstname("schedule"); $entity->setLastname("admin"); $entity->setEmail("admin@noreply@com"); $entity->setRoles(["ROLE_ADMIN"]); $entity->setAvatar("admin.jpg"); $this->em->persist($entity); } // On flush $this->em->flush(); } private function writelnred($string) { $this->output->writeln(''.$string.''); $this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n"); } private function writeln($string) { $this->output->writeln($string); $this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n"); } }