/** * @Route("", name="tixiapi_export_month") * @Method({"GET","POST"}) * @param Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function getMonthPlanAction(Request $request) { $form = $this->createForm(new MonthPlanType($this->menuId)); $form->handleRequest($request); $content = $this->get('request')->request->all(); $tr = $this->get('translator'); if ($content != array()) { /* OK: received data from user */ if ($form->isValid()) { $formdata = reset($content); $workingMonthId = $formdata['ctrlWorkingMonthId']; if ($workingMonthId != '') { /** @var DocumentManagement $docManagement */ $docManagement = $this->get('tixi_app.documentmanagement'); $result = $docManagement->createMonthPlanDocument($workingMonthId); if (array_key_exists('path', $result)) { /* OK: redirect to download page */ return $this->redirect($this->generateUrl('tixiapi_export_download', array('filename' => urlencode($result['path'])))); } else { $form->addError(new FormError($result['error'])); } } else { $form->addError(new FormError($tr->trans('monthplan.error.pleaseChoose'))); } } else { $form->addError(new FormError($tr->trans('drivingconfig.message.software'))); } } else { /* OK: no user data present yet */ } $rootPanel = new RootPanel($this->menuId, 'export.month.panel.fullname'); $rootPanel->add(new ExportFormTile($form, true)); $tileRenderer = $this->get('tixi_api.tilerenderer'); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/edit", name="tixiapi_user_profile_get") * @Method({"GET","POST"}) * @param Request $request * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * @internal param bool $embeddedState * @return Response */ public function editUserProfileAction(Request $request) { $user = $this->get('security.context')->getToken()->getUser(); if (null === $user) { throw $this->createNotFoundException('This user does not exist'); } $tileRenderer = $this->get('tixi_api.tilerenderer'); $userAssembler = $this->get('tixi_api.assembleruser'); $userDTO = $userAssembler->userToUserProfileDTO($user); $form = $this->getForm($userDTO); $form->handleRequest($request); if ($form->isValid()) { $userDTO = $form->getData(); $this->get('tixi_api.assembleruser')->registerProfileDTOtoUser($userDTO, $user); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixi_logout')); } $rootPanel = new RootPanel($this->menuId, 'user.profile.panel.name', $user->getUserName()); $rootPanel->add(new FormTile($form, true)); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{servicePlanId}/edit", name="tixiapi_serviceplan_edit") * @Method({"GET","POST"}) * @Breadcrumb("{vehicleId}", route={"name"="tixiapi_vehicle_get", "parameters"={"vehicleId"}}) * @Breadcrumb("serviceplan.panel.edit") * @param Request $request * @param $vehicleId * @param $servicePlanId * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ public function editServiceplanAction(Request $request, $vehicleId, $servicePlanId) { $tileRenderer = $this->get('tixi_api.tilerenderer'); $servicePlanAssembler = $this->get('tixi_api.assemblerserviceplan'); $servicePlan = $this->getServicePlan($servicePlanId); $vehicle = $this->getVehicle($vehicleId); $servicePlanDTO = $servicePlanAssembler->toServicePlanRegisterDTO($servicePlan); $form = $this->getForm($servicePlanDTO); $form->handleRequest($request); if ($form->isValid()) { $servicePlanDTO = $form->getData(); $this->registerOrUpdateServicePlanToVehicle($servicePlanDTO, $vehicle); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_vehicle_get', array('vehicleId' => $vehicleId))); } $rootPanel = new RootPanel('tixiapi_vehicles_get', 'serviceplan.panel.edit'); $rootPanel->add(new FormTile($form, true)); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_serviceplan_delete', array('vehicleId' => $vehicleId, 'servicePlanId' => $servicePlanId)), 'serviceplan.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("",name="tixiapi_export_download") * @Method({"GET","POST"}) * @param string $filename * @param Request $request * @param bool $embeddedState * @throws AccessDeniedException * @return \Symfony\Component\HttpFoundation\Response */ public function getDownloadAction($filename, Request $request, $embeddedState = false) { /** * download the file to user workstation */ $form = $this->createForm(new DownloadType($this->menuId)); $form->handleRequest($request); $content = $this->get('request')->request->all(); $tr = $this->get('translator'); $this->errorMessage = ''; $filenameDecoded = urldecode($filename); if ($content != array()) { /* OK: received data from user (at least submit action) */ if (file_exists($filenameDecoded)) { /* safe to download the file */ return $this->downloadFile($filenameDecoded); } else { $this->errorMessage = $tr->trans('export.message.software') . '(' . $filenameDecoded . ')'; } } else { /* OK: no user data present yet */ } $rootPanel = new RootPanel($this->menuId, 'download.panel.name'); $rootPanel->add(new ExportFormTile($form, true)); $rootPanel->add(new DownloadTile($this->errorMessage, '', basename($filenameDecoded))); $tileRenderer = $this->get('tixi_api.tilerenderer'); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{personCategoryId}/delete",name="tixiapi_management_personcategory_delete") * @Method({"GET","POST"}) * @param Request $request * @param $personCategoryId * @throws AccessDeniedException * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function deletePersonCategoryAction(Request $request, $personCategoryId) { if (false === $this->get('security.context')->isGranted('ROLE_MANAGER')) { throw new AccessDeniedException(); } $personCategory = $this->getPersonCategory($personCategoryId); $tileRenderer = $this->get('tixi_api.tilerenderer'); $personRepository = $this->get('person_repository'); $usageAmount = $personRepository->getAmountByPersonCategory($personCategory); if ($usageAmount > 0) { $rootPanel = new RootPanel($this->menuId, 'error.refintegrity.header.name'); $rootPanel->add(new ReferentialConstraintErrorTile($usageAmount)); return new Response($tileRenderer->render($rootPanel)); } else { $personCategory->deleteLogically(); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_management_personcategories_get')); } }
/** Part 2, display one day (basic editing screen) ------------------------- * @Route("/edit/{swissDate}", name="tixiapi_dispo_dailyplan_edit_swissdate") * @Route("/edit", name="tixiapi_dispo_dailyplan_edit") * @Method({"GET","POST"}) * @Breadcrumb("{swissDate}", route={"name"="tixiapi_dispo_dailyplan_get", "parameters"={"swissDate"}}) * @param Request $request * @param mixed $swissDate * @return \Symfony\Component\HttpFoundation\Response */ public function getDailyPlanEditAction(Request $request, $swissDate) { $date = $this->swissDateToDate($swissDate); $date->setTime(0, 0, 0); $tileRenderer = $this->get('tixi_api.tilerenderer'); $errorMessage = urldecode($request->query->get('errorMessage')); /** @var DailyPlanAssembler $assembler */ $assembler = $this->get('tixi_api.assemblerDailyPlan'); $assembler->setConcurrentUser($swissDate); $getDTO = $assembler->getDailyPlanEditDTO($date, $errorMessage); $yesterday = new \DateTime('yesterday'); $header = $date <= $yesterday ? 'dailyplan.panel.show' : 'dailyplan.panel.edit'; $helper = null; $tr = $this->get('translator'); if ($date == new \DateTime('today')) { $helper = $tr->trans('dailyplan.field.helper.today') . " "; } elseif ($date == new \DateTime('tomorrow')) { $helper = $tr->trans('dailyplan.field.helper.tomorrow') . " "; } $rootPanel = new RootPanel(MenuService::$menuDispositionDailyPlanId, $header, $helper . $this->dateToLocalWeekday($date) . ' ' . $swissDate); $rootPanel->add(new DailyPlanEditTile($getDTO, $errorMessage)); return new Response($tileRenderer->render($rootPanel)); }
/** ------------------------- * Controller for a new driving order * * @Route("/new", name="tixiapi_passenger_drivingorder_new") * @Method({"GET","POST"}) * @param Request $request * @param $passengerId * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Tixi\ApiBundle\Controller\Dispo\Response */ public function newDrivingOrderAction(Request $request, $passengerId) { $tileRenderer = $this->get('tixi_api.tilerenderer'); /** @var Passenger $passenger */ $passenger = $this->getPassenger($passengerId); $drivingOrderRegisterDTO = new DrivingOrderRegisterDTO(); $drivingOrderRegisterDTO->isRepeated = false; $drivingOrderRegisterDTO->notice = $this->constructNotice($passenger); $form = $this->createForm(new DrivingOrderCreateType($this->menuId), $drivingOrderRegisterDTO); $form->handleRequest($request); if ($form->isValid()) { $registerDto = $form->getData(); try { $validationErrors = $this->registerDrivingOrder($registerDto, $passenger); if (count($validationErrors) < 1) { $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_passenger_get', array('passengerId' => $passengerId))); } else { $this->setErrorsInForm($validationErrors, $form); $this->get('entity_manager')->close(); } } catch (Exception $e) { $this->get('entity_manager')->rollback(); $validationErrors[] = 'drivingorder.form.error.store'; $this->setErrorsInForm($validationErrors, $form); $form->addError(new FormError('Exception Message: ' . $e->getMessage())); } } $rootPanel = new RootPanel($this->menuId, 'drivingorder.panel.new', $passenger->getNameString()); $rootPanel->add(new DrivingOrderCreateTile($form, $passengerId, $this->constructServiceUrls())); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{bankHolidayId}/edit", name="tixiapi_management_bankholiday_edit") * @Method({"GET","POST"}) * @Breadcrumb("{bankHolidayId}", route={"name"="tixiapi_management_bankholiday_edit", "parameters"={"bankHolidayId"}}) * @param Request $request * @param $bankHolidayId * @throws AccessDeniedException * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response */ public function editBankHolidayAction(Request $request, $bankHolidayId) { if (false === $this->get('security.context')->isGranted('ROLE_MANAGER')) { throw new AccessDeniedException(); } $tileRenderer = $this->get('tixi_api.tilerenderer'); $bankHolidayAssembler = $this->get('tixi_api.assemblerBankHoliday'); $bankHoliday = $this->get('bankholiday_repository')->find($bankHolidayId); if (null === $bankHoliday) { throw $this->createNotFoundException('This bankHoliday does not exist'); } $bankHolidayDTO = $bankHolidayAssembler->bankHolidayToBankHolidayRegisterDTO($bankHoliday); $form = $this->getForm($bankHolidayDTO); $form->handleRequest($request); if ($form->isValid()) { $bankHolidayDTO = $form->getData(); $this->registerOrUpdateBankHoliday($bankHolidayDTO); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_management_bankholidays_get', array('bankHolidayId' => $bankHolidayId))); } $rootPanel = new RootPanel($this->menuId, 'bankholiday.panel.edit'); $rootPanel->add(new FormTile($form, true)); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_management_bankholiday_delete', array('bankHolidayId' => $bankHolidayId)), 'bankholiday.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{vehicleCategoryId}/edit", name="tixiapi_management_vehiclecategory_edit") * @Method({"GET","POST"}) * @Breadcrumb("{vehicleCategoryId}", route={"name"="tixiapi_management_vehiclecategory_edit", "parameters"={"vehicleCategoryId"}}) * @param Request $request * @param $vehicleCategoryId * @throws \Symfony\Component\Security\Core\Exception\AccessDeniedException * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response */ public function editVehicleCategoryAction(Request $request, $vehicleCategoryId) { if (false === $this->get('security.context')->isGranted('ROLE_MANAGER')) { throw new AccessDeniedException(); } $tileRenderer = $this->get('tixi_api.tilerenderer'); /** @var VehicleCategoryAssembler $assembler */ $assembler = $this->get('tixi_api.assemblervehiclecategory'); $vehicleCategory = $this->getVehicleCategory($vehicleCategoryId); $vehicleCategoryDTO = $assembler->toVehicleCategoryRegisterDTO($vehicleCategory); $form = $this->getForm($vehicleCategoryDTO); $form->handleRequest($request); if ($form->isValid()) { $vehicleCategoryDTO = $form->getData(); if ($this->nameAlreadyExist($vehicleCategoryDTO->name) && $vehicleCategory->getName() != $vehicleCategoryDTO->name) { $errorMsg = $this->get('translator')->trans('form.error.valid.unique'); $error = new FormError($errorMsg); $form->addError($error); $form->get('name')->addError($error); } else { $this->registerOrUpdateVehicleCategory($vehicleCategoryDTO); $this->get('entity_manager')->flush(); } //if no errors/invalids in form if (count($form->getErrors()) < 1) { return $this->redirect($this->generateUrl('tixiapi_management_vehiclecategories_get')); } } $rootPanel = new RootPanel($this->menuId, 'vehiclecategory.panel.edit'); $rootPanel->add(new FormTile($form, true)); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_management_vehiclecategory_delete', array('vehicleCategoryId' => $vehicleCategoryId)), 'vehiclecategory.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * Controller for editing a persisted repeated driving assertion plan * * @Route("/{assertionPlanId}/edit", name="tixiapi_driver_repeatedassertionplan_edit") * @Method({"GET","POST"}) * @Breadcrumb("{driverId}", route={"name"="tixiapi_driver_get", "parameters"={"driverId"}}) * @Breadcrumb("repeateddrivingassertion.panel.edit") * @param Request $request * @param $driverId * @param $assertionPlanId * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ public function editRepeatedAssertionPlanAction(Request $request, $driverId, $assertionPlanId) { $tileRenderer = $this->get('tixi_api.tilerenderer'); $driver = $this->getDriver($driverId); /** @var RepeatedDrivingAssertionAssembler $assembler*/ $assembler = $this->get('tixi_api.repeateddrivingassertionplanassembler'); /** @var RepeatedDrivingAssertionPlan $assertionPlan */ $assertionPlan = $this->getAssertionPlan($assertionPlanId); $assertionDTO = $assembler->toRepeatedRegisterDTO($assertionPlan); $form = $this->createForm(new RepeatedDrivingAssertionType($this->menuId), $assertionDTO); $form->handleRequest($request); if ($form->isValid()) { $tr = $this->get('translator'); $assertionDTO = $form->getData(); $validationErrors = $this->registerOrUpdateAssertionPlan($assertionDTO, $driver); if (count($validationErrors) == 0) { $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_driver_get', array('driverId' => $driverId))); } else { /* failed: display errors in GUI */ $this->get('entity_manager')->close(); $form->addError(new FormError($tr->trans('repeateddrivingassertion.error.notsaved'))); foreach ($validationErrors as $error) { $form->addError(new FormError($error)); } } } $rootPanel = new RootPanel($this->menuId, 'repeateddrivingassertion.panel.edit', '(' . $driver->getFirstname() . ' ' . $driver->getLastname() . ')'); $rootPanel->add(new RepeatedAssertionTile($form, $assertionPlan->getFrequency())); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_driver_repeatedassertionplan_delete', array('driverId' => $driverId, 'assertionPlanId' => $assertionPlanId)), 'repeateddrivingassertion.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{shiftTypeId}/edit", name="tixiapi_management_shifttype_edit") * @Method({"GET","POST"}) * @Breadcrumb("{shiftTypeId}", route={"name"="tixiapi_management_shifttype_edit", "parameters"={"shiftTypeId"}}) * @param Request $request * @param $shiftTypeId * @throws \Symfony\Component\Security\Core\Exception\AccessDeniedException * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response */ public function editShiftTypeAction(Request $request, $shiftTypeId) { if (false === $this->get('security.context')->isGranted('ROLE_ADMIN')) { throw new AccessDeniedException(); } $tileRenderer = $this->get('tixi_api.tilerenderer'); $shiftTypeAssembler = $this->get('tixi_api.assemblerShiftType'); $shiftType = $this->get('shifttype_repository')->find($shiftTypeId); if (null === $shiftType) { throw $this->createNotFoundException('This shiftType does not exist'); } $shiftTypeDTO = $shiftTypeAssembler->shiftTypeToShiftTypeRegisterDTO($shiftType); $form = $this->getForm($shiftTypeDTO); $form->handleRequest($request); if ($form->isValid()) { $shiftTypeDTO = $form->getData(); if ($this->nameAlreadyExist($shiftTypeDTO->name) && $shiftType->getName() != $shiftTypeDTO->name) { $errorMsg = $this->get('translator')->trans('form.error.valid.unique'); $error = new FormError($errorMsg); $form->addError($error); $form->get('name')->addError($error); } else { $this->registerOrUpdateShiftType($shiftTypeDTO); $this->get('entity_manager')->flush(); } //if no errors/invalids in form if (count($form->getErrors()) < 1) { return $this->redirect($this->generateUrl('tixiapi_management_shifttypes_get', array('shiftTypeId' => $shiftTypeId))); } } $rootPanel = new RootPanel($this->menuId, 'shifttype.panel.edit'); $rootPanel->add(new FormTile($form, true)); return new Response($tileRenderer->render($rootPanel)); }
/** Part 3, edit the selected day of the month ----------------------------- * Note: Swap requests (see part 4) are redirected to this controller, * if applicable an error message is also passed. * * @Route("/month/{workingMonthId}/day/{workingDayId}/edit", name="tixiapi_dispo_monthlyplan_edit") * @Method({"GET","POST"}) * @Breadcrumb("{workingMonthId}", route={"name"="tixiapi_dispo_monthlyplan_workingdays_get", "parameters"={"workingMonthId"}}) * @Breadcrumb("monthlyplan.workingday.list.name", route={"name"="tixiapi_dispo_monthlyplan_edit", "parameters"={"workingMonthId","workingDayId"}}) * @param Request $request * @param $workingMonthId * @param $workingDayId * @return \Symfony\Component\HttpFoundation\Response */ public function editMonthlyPlanAction(Request $request, $workingMonthId, $workingDayId) { $tileRenderer = $this->get('tixi_api.tilerenderer'); /** @var MonthlyPlanAssembler $assembler */ $assembler = $this->get('tixi_api.assemblermonthlyplan'); /** @var WorkingDay $workingDay */ $workingDay = $this->getWorkingDayById($workingDayId); $editDTO = $assembler->workingDayToEditDTO($workingDay, $workingMonthId); $tr = $this->get('translator'); $today = new \DateTime(); $today->setTime(0, 0, 0); $errorMessage = urldecode($request->query->get('errorMessage')); /* build monthly view edit page ----- */ $rootPanel = new RootPanel(MenuService::$menuDispositionMonthlyPlanDaysId . $workingMonthId, $workingDay->getDate() >= $today ? 'monthlyplan.panel.edit' : 'monthlyplan.panel.show', $tr->trans($editDTO->workingDayWeekdayString) . ' ' . $editDTO->workingDayDateString); $editDTO->closeUrl = $this->generateUrl('tixiapi_dispo_monthlyplan_workingdays_get', array('workingMonthId' => $workingMonthId), true); $editDTO->swapUrl = $this->generateUrl('tixiapi_dispo_monthlyplan_edit_swap', array('workingMonthId' => $workingMonthId, 'workingDayId' => $workingDayId, 'swapParams' => 'swap'), true); $rootPanel->add(new MonthlyPlanEditTile($editDTO, $errorMessage)); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{zonePlanId}/edit", name="tixiapi_management_zoneplan_edit") * @Method({"GET","POST"}) * @Breadcrumb("{zonePlanId}", route={"name"="tixiapi_management_zoneplan_edit", "parameters"={"zonePlanId"}}) * @param Request $request * @param $zonePlanId * @throws AccessDeniedException * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response */ public function editZonePlanAction(Request $request, $zonePlanId) { if (false === $this->get('security.context')->isGranted('ROLE_MANAGER')) { throw new AccessDeniedException(); } $tileRenderer = $this->get('tixi_api.tilerenderer'); /** @var ZonePlanAssembler $assembler */ $assembler = $this->get('tixi_api.assemblerzoneplan'); $zonePlan = $this->getZonePlan($zonePlanId); $zonePlanDTO = $assembler->toZonePlanRegisterDTO($zonePlan); $form = $this->getForm($zonePlanDTO); $form->handleRequest($request); if ($form->isValid()) { $zonePlanDTO = $form->getData(); if ($this->cityAlreadyExist($zonePlanDTO->city) && $zonePlan->getCity() != $zonePlanDTO->city) { $errorMsg = $this->get('translator')->trans('form.error.valid.unique'); $error = new FormError($errorMsg); $form->addError($error); $form->get('name')->addError($error); } else { $this->registerOrUpdateZonePlan($zonePlanDTO); $this->get('entity_manager')->flush(); } //if no errors/invalids in form if (count($form->getErrors()) < 1) { return $this->redirect($this->generateUrl('tixiapi_management_zoneplans_get')); } } $rootPanel = new RootPanel($this->menuId, 'zoneplan.panel.edit'); $rootPanel->add(new FormTile($form, true)); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_management_zoneplan_delete', array('zonePlanId' => $zonePlanId)), 'zoneplan.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{custodianId}/delete",name="tixiapi_management_custodian_delete") * @Method({"GET","POST"}) * @param Request $request * @param $custodianId * @throws AccessDeniedException * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function deleteCustodianAction(Request $request, $custodianId) { if (false === $this->get('security.context')->isGranted('ROLE_MANAGER')) { throw new AccessDeniedException(); } $custodian = $this->getCustodian($custodianId); $tileRenderer = $this->get('tixi_api.tilerenderer'); $passengers = $custodian->getPassengers(); if (count($passengers) > 0) { $rootPanel = new RootPanel($this->menuId, 'error.refintegrity.header.name'); $passengerList = ''; foreach ($passengers as $passenger) { $passengerList .= $passenger->getNameStringWithID() . '<br>'; } $rootPanel->add(new ReferentialConstraintErrorTile(count($passengers), '<i>' . $passengerList . '</i>')); return new Response($tileRenderer->render($rootPanel)); } else { $custodian->deleteLogically(); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_management_custodians_get')); } }
/** * @Route("",name="tixiapi_export_drivingconfigs") * @Method({"GET","POST"}) * @param Request $request * @param bool $embeddedState * @throws AccessDeniedException * @return \Symfony\Component\HttpFoundation\Response */ public function getDrivingConfigAction(Request $request, $embeddedState = false) { $recordcount = 0; $form = $this->createForm(new DrivingConfigType($this->menuId)); $form->handleRequest($request); $content = $this->get('request')->request->all(); $tr = $this->get('translator'); if ($content != array()) { /* received data from user */ if ($form->isValid()) { if ($this->setConfig($content) == '') { /* Now do your thing, go for it baby, yeah! */ $recordcount = $this->buildConfig(); if ($recordcount == 0) { $this->message = $tr->trans('drivingconfig.message.empty'); } else { $this->message = ''; } } } else { /* received invalid data from user */ $this->message = $tr->trans('export.message.error'); } } else { /* no user data present yet */ $this->message = ''; } $rootPanel = new RootPanel($this->menuId, 'drivingconfig.panel.name'); $rootPanel->add(new ExportFormTile($form, true)); if ($this->message != '') { /* print error message */ $detailsPanel = $rootPanel->add(new PanelTile('drivingconfig.panel.details')); $detailsPanel->add(new DrivingConfigTile(array(), $this->message)); } else { /* print reports */ if ($this->printerDTO->getNumberOfReports() > 0) { /* print one report per vehicle/driver with missions */ $reports = $this->printerDTO->getForminfos(); foreach ($reports as $report) { $detailsPanel = $rootPanel->add(new PanelTile('drivingconfig.panel.details')); $detailsPanel->add(new DrivingConfigTile($report, '')); } } if ($this->printerDTO->hasErrorMessages()) { $fms = $this->get('tixi_app.flashmessageservice'); $fms->handleMessages($this->printerDTO->getErrorMessages()); } } $tileRenderer = $this->get('tixi_api.tilerenderer'); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{driverId}/edit", name="tixiapi_driver_edit") * @Method({"GET","POST"}) * @Breadcrumb("{driverId}", route={"name"="tixiapi_driver_edit", "parameters"={"driverId"}}) * @param Request $request * @param $driverId * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ public function editDriverAction(Request $request, $driverId) { /* [updates] * 31.07.2014, martin jonasse, [issue#63] removed contents in PanelSplitterTile (right) * 05.08.2014, martin jonasse, [issue#85] harmonize inconsistent views ... */ $tileRenderer = $this->get('tixi_api.tilerenderer'); $driverAssembler = $this->get('tixi_api.assemblerdriver'); /**@var $driver \Tixi\CoreDomain\Driver */ $driver = $this->getDriver($driverId); $driverDTO = $driverAssembler->driverToDriverRegisterDTO($driver); $form = $this->getForm($driverDTO); $form->handleRequest($request); if ($form->isValid()) { $driverDTO = $form->getData(); $this->registerOrUpdateDriver($driverDTO); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_driver_get', array('driverId' => $driverId))); } $rootPanel = new RootPanel($this->menuId, 'driver.panel.edit'); $rootPanel->add(new FormTile($form, true)); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_driver_delete', array('driverId' => $driverId)), 'driver.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("",name="tixiapi_export_billing") * @Method({"GET","POST"}) * @param Request $request * @param bool $embeddedState * @throws AccessDeniedException * @return \Symfony\Component\HttpFoundation\RedirectResponse | Response */ public function getBillingAction(Request $request, $embeddedState = false) { /** * select the billing information to download * create an Excel file with billing information */ $form = $this->createForm(new BillingType($this->menuId)); $form->handleRequest($request); $content = $this->get('request')->request->all(); $tr = $this->get('translator'); if ($content != array()) { /* OK: received data from user */ if ($form->isValid()) { $formdata = reset($content); if ($formdata['ctrlWorkingMonthId'] != '') { /* OK: create fully qualified filename */ $subFolder = 'download'; $tenant = $this->container->getParameter('tixi_parameter_client'); $tenant = ucwords(strtolower($tenant)); $filename = $tr->trans('billing.panel.name'); $extension = $formdata['ctrlFileType']; $path = $this->getPath($subFolder); $path .= '/' . $tenant . '.' . $filename . $this->getPostfix() . '.' . $extension; /* OK: create download file */ $download = new BillingWrapperDTO(); $download->setContainer($this->container); $download->setProperties($formdata); $download->createFile($path); /* OK: redirect to download page */ return $this->redirect($this->generateUrl('tixiapi_export_download', array('filename' => urlencode($path)))); } else { $form->addError(new FormError($tr->trans('billing.error.pleaseChoose'))); } } else { $form->addError(new FormError($tr->trans('drivingconfig.message.software'))); } } else { /* OK: no user data present yet */ } $rootPanel = new RootPanel($this->menuId, 'billing.panel.fullname'); $rootPanel->add(new ExportFormTile($form, true)); $tileRenderer = $this->get('tixi_api.tilerenderer'); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{vehicleId}/edit",name="tixiapi_vehicle_edit") * @Method({"GET","POST"}) * @Breadcrumb("{vehicleId}", route={"name"="tixiapi_vehicle_edit", "parameters"={"vehicleId"}}) * @param Request $request * @param $vehicleId * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response */ public function editVehicleAction(Request $request, $vehicleId) { $tileRenderer = $this->get('tixi_api.tilerenderer'); /** @var VehicleAssembler $assembler */ $assembler = $this->get('tixi_api.assemblervehicle'); $vehicle = $this->getVehicle($vehicleId); $vehicleDTO = $assembler->toVehicleRegisterDTO($vehicle); $form = $this->getForm($vehicleDTO); $form->handleRequest($request); if ($form->isValid()) { $vehicleDTO = $form->getData(); $this->registerOrUpdateVehicle($vehicleDTO); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_vehicle_get', array('vehicleId' => $vehicleId))); } $rootPanel = new RootPanel($this->menuId, 'vehicle.panel.edit'); $rootPanel->add(new FormTile($form, true)); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_vehicle_delete', array('vehicleId' => $vehicleId)), 'vehicle.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{absentId}/edit", name="tixiapi_driver_absent_edit") * @Method({"GET","POST"}) * @Breadcrumb(" {driverId}", route={"name"="tixiapi_driver_get", "parameters"={"driverId"}}) * @Breadcrumb("absent.panel.edit") * @param Request $request * @param $driverId * @param $absentId * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response */ public function editAbsentAction(Request $request, $driverId, $absentId) { $tileRenderer = $this->get('tixi_api.tilerenderer'); $absentAssembler = $this->get('tixi_api.assemblerabsent'); /**@var $driver \Tixi\CoreDomain\Absent */ $absent = $this->getAbsent($absentId); $driver = $this->getDriver($driverId); $absentDTO = $absentAssembler->absentToAbsentRegisterDTO($absent); $form = $this->getForm($absentDTO); $form->handleRequest($request); if ($form->isValid()) { $absentDTO = $form->getData(); $this->registerOrUpdateAbsentToDriver($absentDTO, $driver); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_driver_get', array('driverId' => $driverId))); } $rootPanel = new RootPanel($this->menuId, 'absent.panel.edit'); $rootPanel->add(new FormTile($form, true)); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_driver_absent_delete', array('driverId' => $driverId, 'absentId' => $absentId)), 'absent.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{poiId}/edit", name="tixiapi_poi_edit") * @Method({"GET","POST"}) * @Breadcrumb("{poiId}", route={"name"="tixiapi_poi_edit", "parameters"={"poiId"}}) * @param Request $request * @param $poiId * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response */ public function editPOIAction(Request $request, $poiId) { $tileRenderer = $this->get('tixi_api.tilerenderer'); $assembler = $this->get('tixi_api.assemblerpoi'); $poi = $this->getPoi($poiId); $poiDTO = $assembler->poiToPOIRegisterDTO($poi); $form = $this->getForm($poiDTO); $form->handleRequest($request); if ($form->isValid()) { $poiDTO = $form->getData(); $this->registerOrUpdatePOI($poiDTO); $this->get('entity_manager')->flush(); return $this->redirect($this->generateUrl('tixiapi_poi_get', array('poiId' => $poiId))); } $rootPanel = new RootPanel($this->menuId, 'poi.panel.edit'); $rootPanel->add(new FormTile($form, true)); $rootPanel->add(new PanelDeleteFooterTile($this->generateUrl('tixiapi_poi_delete', array('poiId' => $poiId)), 'poi.button.delete')); return new Response($tileRenderer->render($rootPanel)); }
/** * @Route("/{assertionId}/edit", name="tixiapi_driver_drivingassertion_edit") * @param Request $request * @param $driverId * @param $assertionId * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ public function editDrivingAssertionAction(Request $request, $driverId, $assertionId) { $drivingAssertion = $this->getDrivingAssertionById($assertionId); $editDto = $this->getDrivingAssertionDTO($drivingAssertion); $form = $this->createForm(new DrivingAssertionEditType($this->menuId), $editDto); $form->handleRequest($request); if ($form->isValid()) { // do not save any data, the form is read-only return $this->redirect($this->generateUrl('tixiapi_driver_get', array('driverId' => $driverId))); } $rootpanel = new RootPanel($this->menuId, 'drivingassertion.panel.edit'); /** @var PanelSplitterTile $panelSplitter */ $panelSplitter = $rootpanel->add(new PanelSplitterTile('1:1')); /** @var PanelTile $formPanel */ $formPanel = $panelSplitter->addLeft(new PanelTile('drivingassertion.panel.edit', PanelTile::$primaryType)); $formPanel->add(new FormTile($form)); $tileRenderer = $this->get('tixi_api.tilerenderer'); return new Response($tileRenderer->render($rootpanel)); }
/** * Create a new production plan for one month: step 4 * * @Route("/new/end/{planId}", name="tixiapi_dispo_productionplan_new_end") * @Method({"GET","POST"}) * @param Request $request * @param string $planId * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response * @throws \Exception */ public function newProductionPlanActionEnd(Request $request, $planId) { if (false === $this->get('security.context')->isGranted('ROLE_MANAGER')) { throw new AccessDeniedException(); } $tileRenderer = $this->get('tixi_api.tilerenderer'); /** @var \DateTime $scope */ $scope = $this->convertToDateTime($planId); $scopeSwiss = $planId; /** @var QueueService $queueService */ $queueService = $this->get('tixi_app.queueservice'); /* build form */ $form = $this->createForm(new ProductionPlanCreateType($this->menuId)); $form->get('state')->setData(self::END); $memos = $queueService->allValues($this->getQueueTag($scope)); $form->get('memo')->setData($memos); /* manage request ------------------------- */ $form->handleRequest($request); if ($form->isValid()) { return $this->redirect($this->generateUrl('tixiapi_dispo_productionplans_get')); } $rootPanel = new RootPanel($this->menuId, 'productionplan.panel.new', $scopeSwiss . ' - ' . $scope->format('t.m.Y')); $rootPanel->add(new ProductionPlanCreateTile($form, true)); return new Response($tileRenderer->render($rootPanel)); }