Example #1
0
 public function indexAction()
 {
     try {
         /**
          * @var \DDD\Service\Apartel\Type $typeService
          * @var Request $request
          */
         $typeId = $this->params()->fromRoute('type_id', 0);
         $typeService = $this->getServiceLocator()->get('service_apartel_type');
         $typesRates = $typeService->getApartelTypesWithRates($this->apartelId, true);
         $request = $this->getRequest();
         // set Type From
         $typeDetails = $typeService->getTypeDetails($this->apartelId, $typeId);
         $form = new TypeForm($typeDetails['all_apartment_list']);
         $form->prepare();
         // edit mode
         if ($typeId) {
             $form->populateValues($typeDetails);
         }
         // submit data
         if ($request->isPost()) {
             $form->setInputFilter(new TypeFilter());
             $filter = $form->getInputFilter();
             $form->setInputFilter($filter);
             $data = $request->getPost();
             $form->setData($data);
             if ($form->isValid()) {
                 $vData = $form->getData();
                 $flash = ['success' => $typeId ? TextConstants::SUCCESS_UPDATE : TextConstants::SUCCESS_ADD];
                 $responseTypeId = $typeService->saveType($vData, $this->apartelId);
                 Helper::setFlashMessage($flash);
                 return $this->redirect()->toRoute('apartel/type-rate/type', ['type_id' => $responseTypeId, 'apartel_id' => $this->apartelId], [], true);
             } else {
                 $messages = Helper::parsFormInvalidMessages($form->getMessages());
                 $flash = ['error' => $messages];
                 Helper::setFlashMessage($flash);
             }
         }
         return ['typeRates' => $typesRates, 'form' => $form, 'typeId' => $typeId];
     } catch (\Exception $e) {
         Helper::setFlashMessage(['error' => TextConstants::ERROR]);
         return $this->redirect()->toRoute('apartel/type-rate/home', ['apartel_id' => $this->apartelId], [], true);
     }
 }