Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function addAction(Carrier $carrier, Request $request)
- {
- $em = $this->getDoctrine()->getManager();
- /** @var CarrierRange[] $carrierRanges */
- $carrierRanges = $em->getRepository(CarrierRange::class)->findAll();
- if ($request->getMethod() == "POST") {
- //var_dump($request->request->all());
- $nbRange = count($carrierRanges);
- $count = 0;
- foreach ($request->get('val_department') as $department) {
- $ranges = array_slice($request->get('val_range'), $count, 6);
- $prices = array_slice($request->get('val_range_department'), $count, 6);
- foreach ($ranges as $key => $range) {
- $department = $em->getRepository('AdminAdminBundle:Department')->findOneById($department);
- $carrierRange = $em->getRepository('AdminCarrierBundle:CarrierRange')->findOneById($range);
- if (!is_null($department) && !is_null($carrierRange) ){
- $carrierRangeDepartment = $em->getRepository(CarrierRangeDepartment::class)->findOneBy([
- 'department' => $department,
- 'carrierRange' => $carrierRange,
- 'carrier' => $carrier
- ]);
- if (!empty($prices[$key])) {
- if (is_null($carrierRangeDepartment)) {
- $carrierRangeDepartment = new CarrierRangeDepartment();
- }
- $carrierRangeDepartment->setDepartment($department);
- $carrierRangeDepartment->setCarrierRange($carrierRange);
- $carrierRangeDepartment->setPrice($prices[$key]);
- $carrierRangeDepartment->setCarrier($carrier);
- $em->persist($carrierRangeDepartment);
- }
- else{
- if (!is_null($carrierRangeDepartment)){
- $em->remove($carrierRangeDepartment);
- }
- }
- }
- }
- $count += $nbRange;
- }
- $em->flush();
- return $this->redirectToRoute('admin_carrier_index');
- }
- /** @var Department[] $departments */
- $departments = $em->getRepository(Department::class)->findAll();
- $datas = [];
- foreach ($departments as $department) {
- $ranges = [];
- foreach ($carrierRanges as $carrierRange) {
- $price = null;
- /** @var CarrierRangeDepartment $carrierRangeDepartment */
- $carrierRangeDepartment = $em->getRepository(CarrierRangeDepartment::class)->findOneBy(
- [
- 'department' => $department->getId(),
- 'carrier' => $carrier->getId(),
- 'carrierRange' => $carrierRange->getId()
- ]
- );
- if (!is_null($carrierRangeDepartment)) {
- $price = $carrierRangeDepartment->getPrice();
- }
- $ranges[$carrierRange->getId()] = [
- 'id' => $carrierRange->getId(),
- 'price' => $price
- ];
- }
- $datas[$department->getId()] = [
- 'name' => $department->getName(),
- 'id' => $department->getId(),
- 'ranges' => $ranges
- ];
- }
- return $this->render('@AdminCarrier/CarrierRange/editRange.html.twig', ['datas' => $datas, 'carrier' => $carrier, 'carrierRanges' => $carrierRanges]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement