src/Controller/OnlineBookingController.php line 99

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Shipment;
  4. use App\Entity\TrackingUpdate;
  5. use App\Entity\AddressBook;
  6. use App\Form\ShipmentType;
  7. use App\Repository\ShipmentRepository;
  8. use App\Repository\TrackingStatusRepository;
  9. use App\Repository\TrackingUpdateRepository;
  10. use App\Repository\AddressBookRepository;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. class OnlineBookingController extends AbstractController
  16. {
  17.     // #[Route('/online-booking', name: 'app_online_booking')]
  18.     // public function index(): Response
  19.     // {
  20.     //     return $this->render('online_booking/index.html.twig', [
  21.     //         'controller_name' => 'OnlineBookingController',
  22.     //     ]);
  23.     // }
  24.  
  25.     #[Route('/online-booking'name'app_online_booking_new'methods: ['GET''POST'])]
  26.     public function new(Request $requestShipmentRepository $shipmentRepositoryTrackingStatusRepository $trackingStatusRepositoryTrackingUpdateRepository $trackingUpdateRepositoryAddressBookRepository $addressBookRepository): Response
  27.     {
  28.         $shipment = new Shipment();
  29.         $shipment->setShipmentDate(new \DateTime("now", new \DateTimeZone("Asia/Dhaka")));
  30.         $shipment->setPickupDate(new \DateTime("now", new \DateTimeZone("Asia/Dhaka")));
  31.         $form $this->createForm(ShipmentType::class, $shipment);
  32.         $form->remove('fromAddressBook');
  33.         $form->remove('toAddressBook');
  34.         $form->remove('saveFromAb');
  35.         $form->remove('saveToAb');
  36.         $form->remove('customer');
  37.         $form->remove('dutyPayer');
  38.         $form->remove('dutyAccountno');
  39.         $form->remove('paymentOptions');
  40.         $form->remove('mawbNo');
  41.         $form->remove('hawbNo');        
  42.         $form->remove('courierHawbno');
  43.         $form->remove('expedite');
  44.         $form->handleRequest($request);
  45.         if ($form->isSubmitted() && $form->isValid()) {
  46.             
  47.             if($shipment -> getHawbno() === null )
  48.             {                
  49.                 if($shipment->getShipmentType() == 1)
  50.                 {
  51.                     $hawbNo "2016".rand(100000,999999);
  52.                 }
  53.                 else
  54.                 {
  55.                     $hawbNo "2023".rand(100000,999999);
  56.                 }
  57.                
  58.                 $shipment -> setHawbno($hawbNo);
  59.             }
  60.             
  61.             $shipment->setAccepted(0);
  62.             $shipmentRepository->save($shipmenttrue);
  63.             $shipmentId $shipment->getId();
  64.             // Start Shipment Tracking Update 1st Entry            
  65.             $trackingUpdate = new TrackingUpdate();
  66.             $shipment $shipmentRepository->find($shipmentId);
  67.             $trackingUpdate->setShipment($shipment);
  68.             $trackingStatus $trackingStatusRepository->find(1);
  69.             $trackingUpdate->setTrackingStatus($trackingStatus);
  70.             
  71.             $trackingUpdate->setTrackingDate($shipment->getShipmentDate());
  72.            
  73.             $trackingUpdate->setCountry($shipment->getFromCountry());
  74.             $trackingUpdate->setCity($shipment->getFromCity());
  75.             $trackingUpdate->setPieces($shipment->getShipmentPackagingTotalPieces());
  76.  
  77.             $trackingUpdateRepository->save($trackingUpdatetrue);
  78.             // End Shipment Tracking Update 1st Entry 
  79.             $this->addFlash('notice''Shipment Created successfully!');
  80.  
  81.             return  $this->redirectToRoute('app_online_booking_new');
  82.             
  83.         }
  84.         return $this->renderForm('online_booking/new.html.twig', [
  85.             'shipment' => $shipment,
  86.             'form' => $form,
  87.         ]);
  88.     }
  89. }