Example #1
0
 /**
  * Delete unit
  * @param Request $request
  * @param $id
  * @return \Symfony\Component\HttpFoundation\RedirectResponse
  */
 public function deleteAction(Request $request, Unit $unit)
 {
     $em = $this->getDoctrine()->getManager();
     $session = $request->getSession();
     # If user isn't owner -> 403
     if ($this->getUser()->getId() != $unit->getAccommodation()->getUser()->getId()) {
         return $this->redirect($this->generateUrl('user_403'));
     }
     if (count($em->getRepository('AppBundle:Booking')->getBookingUnit($unit)) == 0) {
         $em->remove($unit);
         $em->flush();
         $session->getFlashBag()->add('msgSuccess', $this->get('translator')->trans('delete_success'));
     } else {
         $session->getFlashBag()->add('msgError', $this->get('translator')->trans('unit_has_bookings'));
     }
     return $this->redirect($this->generateUrl('app_accommodation_edit', array('id' => $unit->getAccommodation()->getId())));
 }
Example #2
0
 /**
  * Step4 - Unit Data
  * @param Request       $request
  * @param Accommodation $accommodation
  * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response
  */
 public function step4Action(Request $request, Accommodation $accommodation)
 {
     $em = $this->getDoctrine()->getManager();
     $unit = new Unit();
     $priceExtraRep = $em->getRepository('AppBundle:PriceExtra');
     $priceExtra = $priceExtraRep->findAll();
     if (!$this->get("accommodationService")->moreUnitAllowedSteps($accommodation)) {
         $request->getSession()->getFlashBag()->add('msgError', $this->get('translator')->trans('max_unit_exceeded'));
         return $this->redirect($this->generateUrl('app_profile_step_4a', array('id' => $accommodation->getId())));
     }
     // price for form
     foreach ($unit->getUnitPriceExtra() as $pe) {
         if (!is_null($pe->getPrice())) {
             $newPrice = $this->get("currencyService")->fromEuro($pe->getPrice());
             $pe->setPrice(round($newPrice, 2));
         }
     }
     $form = $this->createForm(new UnitType(), $unit);
     $form->handleRequest($request);
     # All POST data
     $postData = $request->request->all();
     if ($form->isValid()) {
         $unit->setAccommodation($accommodation);
         $unit->setBasicPrice($this->get("currencyService")->toEuro($postData['unit']['basicPrice']));
         $em->persist($unit);
         $em->flush();
         # Add price extra to join table with unit
         foreach ($postData['priceExtra'] as $priceExtra) {
             $unitPriceExtra = new UnitPriceExtra();
             $pExtra = $priceExtraRep->find($priceExtra['priceExtraId']);
             $unitPriceExtra->setUnit($unit);
             $unitPriceExtra->setPriceExtra($pExtra);
             $price = $this->get("currencyService")->toEuro($priceExtra['price']);
             $unitPriceExtra->setPrice($price);
             $unitPriceExtra->setAvailability($priceExtra['availability']);
             $em->persist($unitPriceExtra);
             $em->flush();
         }
         return $this->redirect($this->generateUrl('app_profile_step_4a', array('id' => $accommodation->getId())));
     }
     return $this->render('AppBundle:Profile/Steps:step4.html.twig', array('form' => $form->createView(), 'unit' => $unit, 'currencies' => $this->get("currencyService")->getCurrencies(), 'priceExtra' => $priceExtra));
 }