/** * @Route("/provider/equipment-add-1/{subcategoryId}", name="equipment-add-1") */ public function equipmentAdd1Action(Request $request, $subcategoryId) { // build form //<editor-fold> $ageArr = $this->getDoctrineRepo('AppBundle:EquipmentAge')->getAllForDropdown(); $form = $this->createFormBuilder()->add('name', 'text', array('constraints' => array(new NotBlank(), new Length(array('max' => 22)))))->add('price', 'integer', array('constraints' => array(new NotBlank(), new Range(array('min' => 10, 'max' => 2500)))))->add('deposit', 'integer', array('constraints' => array(new NotBlank(), new Range(array('min' => 0, 'max' => 1000)))))->add('value', 'integer', array('constraints' => array(new NotBlank(), new Range(array('min' => 50, 'max' => 2000)))))->add('priceBuy', 'integer', array('required' => false, 'constraints' => array(new Range(array('min' => 0, 'max' => 20000)))))->add('ageId', 'choice', array('choices' => $ageArr, 'choices_as_values' => false, 'constraints' => array(new NotBlank())))->add('invoice', 'checkbox', array('required' => false))->add('industrial', 'checkbox', array('required' => false))->getForm(); //</editor-fold> $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); // get subcategory $subcat = $this->getDoctrineRepo('AppBundle:Subcategory')->find($subcategoryId); $user = $this->getUser(); // map fields, TODO: consider moving to Equipment's method //<editor-fold> map fields $age = $this->getDoctrineRepo('AppBundle:EquipmentAge')->find($data['ageId']); $eq = new Equipment(); $eq->setName($data['name']); $eq->setUser($user); $eq->setSubcategory($subcat); $eq->setPrice($data['price']); $eq->setValue($data['value']); $eq->setDeposit($data['deposit']); $eq->setPriceBuy($data['priceBuy']); $eq->setInvoice($data['invoice']); $eq->setIndustrial($data['industrial']); $eq->setAge($age); //</editor-fold> // save to db $em = $this->getDoctrine()->getManager(); if ($eq->checkStatusOnSave()) { $this->sendNewModifiedEquipmentInfoMessage($request, $eq); } $em->persist($eq); $em->flush(); $session = $request->getSession(); $session->set('EquipmentEditId', $eq->getId()); return $this->redirectToRoute('equipment-edit-2', array('id' => $eq->getId())); } return $this->render('provider\\equipment_edit_step1.html.twig', array('form' => $form->createView())); }