/**
  * Creates a form to delete a Discount entity.
  *
  * @param Discount $discount The Discount entity
  *
  * @return Form The form
  */
 private function createDeleteForm(Discount $discount)
 {
     return $this->createFormBuilder()->setAction($this->generateUrl('admin_discount_delete', array('id' => $discount->getId())))->setMethod(Request::METHOD_DELETE)->getForm();
 }
 /**
  * @Route("/provider/saveStatus", name="equipment-saveStatus")
  */
 public function saveStatusAction(Request $request)
 {
     $id = $request->get('id');
     $text = $request->get('text');
     $errors = array();
     $discountType = $this->IsParamValidInt($errors, $request->get('discountType'), "discount type");
     $percent = $this->IsParamValidInt($errors, $request->get('percent'), "percent");
     $duration = $this->IsParamValidInt($errors, $request->get('duration'), "duration");
     //$discountType = (integer)$discountTypeStr;
     //$percent = (integer)$request->get('percent');
     //$duration = (integer)$request->get('duration');
     $equipment = $this->getDoctrineRepo('AppBundle:Equipment')->find($id);
     // security check
     if ($this->getUser()->getId() !== $equipment->getUser()->getId()) {
         //return new Response($status = Response::HTTP_FORBIDDEN);
         $errors[count($errors)] = "Access denied.";
     }
     if (count($errors) == 0 && $discountType != -1 && $discountType != 0 && $equipment->getActiveDiscount() != null) {
         $errors[count($errors)] = "There already is active discount!";
     } else {
         if (count($errors) == 0 && $discountType != -1 && $discountType != 0) {
             if ($discountType != 1 && $discountType != 2) {
                 $errors[count($errors)] = "Unknown discount selected.";
             }
             if ($percent < -1 || $percent > 6) {
                 $errors[count($errors)] = "Unknown percent selected.";
             }
             if ($discountType == 1 && ($duration < -1 || $duration > 5) || $discountType == 2 && ($duration < -1 || $duration > 24)) {
                 $errors[count($errors)] = "Unknown duration selected.";
             }
             if ($percent == -1 || $percent == 0) {
                 $errors[count($errors)] = "Please select discount percent.";
             }
             if ($duration == -1 || $duration == 0) {
                 $errors[count($errors)] = "Please select discount duration.";
             }
         }
     }
     if (count($errors) > 0) {
         $status = JsonResponse::HTTP_INTERNAL_SERVER_ERROR;
         $resp = new JsonResponse($errors, $status);
         return $resp;
     }
     $result = "OK";
     $status = JsonResponse::HTTP_OK;
     try {
         $equipment->setStatus($text);
         $em = $this->getDoctrine()->getManager();
         $em->persist($equipment);
         $em->flush();
         $activeDiscount = $equipment->getActiveDiscount();
         if ($discountType != -1 && $discountType != 0 && $activeDiscount == null) {
             $discount = new Discount();
             $discount->setType($discountType);
             $discount->setPercent($percent);
             $discount->setDuration($duration);
             $discount->setEquipment($equipment);
             $now = new DateTime();
             $endDate = new DateTime();
             $discount->setCreatedAt($now);
             $inverval = "";
             if ($discountType == 1) {
                 $inverval = "P" . $duration * 7 . "D";
             } else {
                 if ($discountType == 2) {
                     $inverval = "PT" . $duration . "H";
                 }
             }
             $endDate->add(new DateInterval($inverval));
             $discount->setExpiresAt($endDate);
             $em->persist($discount);
             $em->flush();
         } else {
             if (($discountType == -1 || $discountType == 0) && $activeDiscount != null) {
                 $now = new DateTime();
                 $activeDiscount->setExpiresAt($now);
                 $em->persist($activeDiscount);
                 $em->flush();
             }
         }
     } catch (Exception $ex) {
         $result = "Error.";
         $status = JsonResponse::HTTP_INTERNAL_SERVER_ERROR;
     }
     $resp = new JsonResponse($result, $status);
     return $resp;
 }