public function itemCreate(Request $request, $typeStr, $responceTo) { $type = Item::typeToInt($typeStr); $user = $this->get('security.token_storage')->getToken()->getUser(); if ($request->isMethod('POST')) { dump("ukladani"); $name = $request->request->get('name'); $public = $request->request->get('public'); $note = $request->request->get('note'); $category = $request->request->get('category'); $price = $request->request->get('price'); $parameters = $request->request->get('parameter'); $parameters = $request->request->get('parameter') == null ? [] : $request->request->get('parameter'); dump($parameters); $validUntil = date("Y-m-d", strtotime($request->request->get('validUntil'))); $public = $public === null ? false : true; dump($request); $categoryObj = $this->getDoctrine()->getRepository('AppBundle:Category')->find($category); $item = new Item(); $item->setName($name); $item->setOwner($user); $item->setType($type); dump($type); $item->setResponceTo($responceTo); $item->setPublic($public); $item->setPrice($price); $item->setCategory($categoryObj); dump($validUntil); $item->setValidUntil(new \DateTime($validUntil)); $item->setNote($note); $item->setDeleted(0); $em = $this->getDoctrine()->getManager(); foreach ($parameters as $definitionId => $value) { $definition = $this->getDoctrine()->getRepository("AppBundle:Definition")->find($definitionId); $parameter = new Param(); $parameter->setDefinition($definition); $parameter->setItem($item); $parameter->setValue($value); $em->persist($parameter); $item->addParam($parameter); } $em->persist($item); $em->flush(); if ($type === Item::TYPE_DEMAND) { $this->addFlash('success', 'Poptávka úspěšně vytvořena'); return $this->redirect($this->generateUrl('main_demand')); } else { $this->addFlash('success', 'Nabídka úspěšně vytvořena'); return $this->redirect($this->generateUrl('main_offer')); } } $categories = $this->getDoctrine()->getRepository('AppBundle:Category')->findAll(); return ['categories' => $categories, 'type' => Item::intToType($type), 'responceTo' => $responceTo]; }
/** * @param Item $item Item * * @return Response * * @Method("GET") * @Route("item/{id}/delete", name="item_delete", options={"i18n"=false}))) * @ParamConverter("item", class="AppBundle\Entity\Item") */ public function itemDeleteAction(Item $item) { if ($item->getCreatedBy()->getId() != $this->getUser()->getId()) { throw $this->createAccessDeniedException(); } $item->setDeleted(true); $em = $this->getDoctrine()->getManager(); $em->persist($item); $em->flush(); $count = $this->get('app.user_items_count'); $count = $count->getCount($this->getUser()); $itemRepository = $this->getDoctrine()->getRepository('AppBundle:Item'); $items = $itemRepository->getDeactivatedItems($this->getUser(), false, false); $this->get('session')->getFlashBag()->add('notice', 'Item ' . $item->getTitle() . ' was deleted!'); return $this->render('frontend/user/show_deactivated_items.html.twig', ['items' => $items, 'count' => $count]); }