Exemplo n.º 1
0
 /**
  * 
  * @param unknown $id
  * @param unknown $slug
  * @return boolean
  */
 public function updatePrestation(Prestation $prestation, $slug)
 {
     switch ($slug) {
         case 2:
             if ($prestation->getStatus()->getId() == self::PRESTATION_ENCOURS) {
                 $status = $this->em->getRepository('MainCommonBundle:Status\\PrestationStatus')->findOneById(self::PHOTOGRAPHER_OK);
                 $flashMessage = 'flash.message.prestation.status.pre_approved';
             }
             break;
         case 3:
             //Cancel-photographer
             if ($prestation->getStatus()->getId() == self::PRESTATION_ENCOURS || $prestation->getStatus()->getId() == self::PHOTOGRAPHER_OK) {
                 $status = $this->em->getRepository('MainCommonBundle:Status\\PrestationStatus')->findOneById(self::PHOTOGRAPHER_KO);
                 $flashMessage = 'flash.message.prestation.status.index';
             }
             break;
         case 4:
             //Cancel-Client
             if ($prestation->getStatus()->getId() == self::PRESTATION_ENCOURS || $prestation->getStatus()->getId() == self::PHOTOGRAPHER_OK) {
                 $status = $this->em->getRepository('MainCommonBundle:Status\\PrestationStatus')->findOneById(self::CLIENT_KO);
                 $flashMessage = 'flash.message.prestation.status.index';
             }
             break;
         case 5:
             //Valide
             if ($prestation->getStatus()->getId() == self::PHOTOGRAPHER_OK) {
                 $status = $this->em->getRepository('MainCommonBundle:Status\\PrestationStatus')->findOneById(self::PRESTATION_OK);
                 $flashMessage = 'flash.message.prestation.status.index';
             }
             break;
         case 6:
             if ($prestation->getStatus()->getId() == self::PRESTATION_OK) {
                 $status = $this->em->getRepository('MainCommonBundle:Status\\PrestationStatus')->findOneById(self::OLD_PRESTATION);
                 $flashMessage = 'flash.message.prestation.status.index';
             }
             break;
         case 7:
             if ($prestation->getStatus()->getId() == self::OLD_PRESTATION) {
                 $status = $this->em->getRepository('MainCommonBundle:Status\\PrestationStatus')->findOneById(self::PHOTOS_DELIVERED);
                 $flashMessage = 'flash.message.prestation.status.index';
             }
             break;
         case 8:
             if ($prestation->getStatus()->getId() == self::PHOTOS_DELIVERED || $prestation->getStatus()->getId() == self::LITIGE_PHOTOGRAPHER || $prestation->getStatus()->getId() == self::LITIGE_CLIENT || $prestation->getStatus()->getId() == self::CANCELED_CLIENT || $prestation->getStatus()->getId() == self::CANCELED_PHOTOGRAPHER) {
                 $status = $this->em->getRepository('MainCommonBundle:Status\\PrestationStatus')->findOneById(self::CLOSED_PRESTATION);
                 $flashMessage = 'flash.message.prestation.status.index';
             }
             break;
     }
     $prestation->setStatus($status);
     $prestation->setUpdatedAt(new \DateTime('now'));
     try {
         $this->em->flush();
         //Envoi du mail
         $this->mailer->prestationUpdateEmail($prestation);
         $this->notification->createPrestationNotification($prestation);
         $this->session->successFlashMessage($flashMessage);
         return true;
     } catch (\Exception $e) {
         $this->session->errorFlashMessage();
         $this->logger->error($e->getMessage());
         return false;
     }
 }