/** * Returns the Create Delivery Form */ public function executeCreate() { $errors = array(); $validator = new DeliveryValidator(); $fromAddress = $this->getRequest()->get('from'); $toAddress = $this->getRequest()->get('to'); $errors = $validator->validateAddress($fromAddress, 'from-', '', $this->app); $errors = array_merge($errors, $validator->validateAddress($toAddress, 'to-', '', $this->app)); $delivery = new Delivery(); $delivery->setFromAddress(new Address($fromAddress)); $delivery->setToAddress(new Address($toAddress)); $createItemList = explode(',',$this->app->escape($this->getRequest()->get('create-item-list'))); $nrOfCreations = count($createItemList); for ($i=0; $i < $nrOfCreations; $i++) { if (!empty($createItemList[$i])) { $properties = explode('|', $createItemList[$i]); $name = $properties[0]; $mintemp = $properties[1]; $maxtemp = $properties[2]; $newItem = new Item(); $newItem->setName($name); $newItem->setTempMin((int)$mintemp); $newItem->setTempMax((int)$maxtemp); $errors = array_merge($errors, $validator->validateItem( $name, $mintemp, $maxtemp, $i)); $delivery->addItem($newItem); } } if (count($errors) == 0) { $delivery->save(); return $this->redirect('/delivery/view/' . $delivery->getId()); } return $this->render('delivery.add.twig', array( 'delivery' => $delivery, 'errors' => $errors, 'form_action' => '/delivery/create', )); }