Example #1
0
 public function getPopulateRate(Base $base)
 {
     $em = $this->container->get('doctrine')->getManager();
     $results = $em->getRepository('ApplicationSonataUserBundle:BaseDetail')->countBaseDetailByIdBase($base->getId());
     $uploadRate = $results * 100 / $base->getRowCount();
     return round($uploadRate, 2);
 }
Example #2
0
 public function upload(Base $base, $randomize = true)
 {
     $file = $base->getFile();
     if (!$file instanceof UploadedFile) {
         throw new \InvalidArgumentException('There is no file to upload!');
     }
     $fileName = $this->generateFilename($file, $randomize);
     $fs = new Filesystem();
     try {
         $fs->mkdir($this->directory, 0777);
         $file->move($this->directory, $fileName);
     } catch (IOExceptionInterface $e) {
         throw new IOException($e->getMessage());
     } catch (FileException $e) {
         throw new FileException($e->getMessage());
     } catch (\Exception $e) {
         throw new Exception($e->getMessage());
     }
     $base->setPath($fileName);
     return $fileName;
 }
Example #3
0
 protected function sendMatching(Base $base)
 {
     // Apres la persistance/update d'une campagne
     $idArray = array();
     // On recupere l'ensemble des bases actives
     $em = $this->getDoctrine();
     $campaigns = $em->getRepository('ApplicationSonataUserBundle:Campaign')->findActiveCampaign();
     if (null == $campaigns) {
         return;
     } else {
         // Pour chaque base on recupere son id
         foreach ($campaigns as $campaign) {
             $id = $campaign['id'];
             array_push($idArray, $id);
         }
         // On récupère le service qui va envoyer le match
         $sendMatching = $this->container->get('match_exchange_sender');
         $sendMatching->sendDB($base->getId(), $idArray, 'campaign');
     }
 }
Example #4
0
 /**
  * @param boolean $updateAction
  * @param Base $base
  */
 protected function populateBaseDetail($base)
 {
     $file = $base->getPath();
     $em = $this->getConfigurationPool()->getContainer()->get('doctrine')->getEntityManager();
     // Si un fichier à été soumis durant le formulaire
     if (null !== $file) {
         // On récupère le service qui va envoyer le populate
         $sendMatching = $this->getConfigurationPool()->getContainer()->get('populate_exchange_sender');
         $responsePopulate = $sendMatching->send($file, $base->getId());
         // Si le service renvoi une valeur null
         if (null !== $responsePopulate) {
             // Sinon on incremente le nombre de ligne par le nombre de ligne du fichier
             $base->setRowCount($responsePopulate);
             // Et on envoi les données
             $em->flush();
         } else {
             $em->remove($base);
             $em->flush();
             $this->setFlash('sonata_user_error', 'upload.flash.error');
             //throw new AdminException("Problème dans l'import du fichier CSV: $file, veuillez enregistrer un fichier valide");
         }
     }
 }
Example #5
0
 public function addBase(Base $base)
 {
     $base->setUser($this);
     $this->base->add($base);
 }