Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.84 KB | None | 0 0
  1.  
  2.     public function addAction(Carrier $carrier, Request $request)
  3.     {
  4.         $em = $this->getDoctrine()->getManager();
  5.  
  6.         /** @var CarrierRange[] $carrierRanges */
  7.         $carrierRanges = $em->getRepository(CarrierRange::class)->findAll();
  8.  
  9.         if ($request->getMethod() == "POST") {
  10.             //var_dump($request->request->all());
  11.  
  12.             $nbRange = count($carrierRanges);
  13.             $count = 0;
  14.  
  15.  
  16.             foreach ($request->get('val_department') as $department) {
  17.  
  18.                 $ranges = array_slice($request->get('val_range'), $count, 6);
  19.                 $prices = array_slice($request->get('val_range_department'), $count, 6);
  20.  
  21.  
  22.                 foreach ($ranges as $key => $range) {
  23.                     $department = $em->getRepository('AdminAdminBundle:Department')->findOneById($department);
  24.  
  25.                     $carrierRange = $em->getRepository('AdminCarrierBundle:CarrierRange')->findOneById($range);
  26.  
  27.                     if (!is_null($department) && !is_null($carrierRange) ){
  28.                         $carrierRangeDepartment = $em->getRepository(CarrierRangeDepartment::class)->findOneBy([
  29.                             'department' => $department,
  30.                             'carrierRange' => $carrierRange,
  31.                             'carrier' => $carrier
  32.                         ]);
  33.                         if (!empty($prices[$key])) {
  34.  
  35.  
  36.                             if (is_null($carrierRangeDepartment)) {
  37.                                 $carrierRangeDepartment = new CarrierRangeDepartment();
  38.                             }
  39.  
  40.                             $carrierRangeDepartment->setDepartment($department);
  41.                             $carrierRangeDepartment->setCarrierRange($carrierRange);
  42.                             $carrierRangeDepartment->setPrice($prices[$key]);
  43.                             $carrierRangeDepartment->setCarrier($carrier);
  44.  
  45.                             $em->persist($carrierRangeDepartment);
  46.                         }
  47.  
  48.                         else{
  49.  
  50.  
  51.                             if (!is_null($carrierRangeDepartment)){
  52.                                 $em->remove($carrierRangeDepartment);
  53.                             }
  54.                         }
  55.                     }
  56.  
  57.                 }
  58.  
  59.  
  60.                 $count += $nbRange;
  61.             }
  62.  
  63.             $em->flush();
  64.             return $this->redirectToRoute('admin_carrier_index');
  65.         }
  66.  
  67.         /** @var Department[] $departments */
  68.         $departments = $em->getRepository(Department::class)->findAll();
  69.  
  70.  
  71.         $datas = [];
  72.         foreach ($departments as $department) {
  73.  
  74.             $ranges = [];
  75.             foreach ($carrierRanges as $carrierRange) {
  76.  
  77.                 $price = null;
  78.  
  79.                 /** @var CarrierRangeDepartment $carrierRangeDepartment */
  80.                 $carrierRangeDepartment = $em->getRepository(CarrierRangeDepartment::class)->findOneBy(
  81.                     [
  82.                         'department' => $department->getId(),
  83.                         'carrier' => $carrier->getId(),
  84.                         'carrierRange' => $carrierRange->getId()
  85.                     ]
  86.                 );
  87.  
  88.                 if (!is_null($carrierRangeDepartment)) {
  89.                     $price = $carrierRangeDepartment->getPrice();
  90.                 }
  91.  
  92.                 $ranges[$carrierRange->getId()] = [
  93.                     'id' => $carrierRange->getId(),
  94.                     'price' => $price
  95.                 ];
  96.             }
  97.  
  98.             $datas[$department->getId()] = [
  99.                 'name' => $department->getName(),
  100.                 'id' => $department->getId(),
  101.                 'ranges' => $ranges
  102.             ];
  103.         }
  104.  
  105.         return $this->render('@AdminCarrier/CarrierRange/editRange.html.twig', ['datas' => $datas, 'carrier' => $carrier, 'carrierRanges' => $carrierRanges]);
  106.  
  107.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement