src/Controller/OnlineBookingController.php line 99
<?php
namespace App\Controller;
use App\Entity\Shipment;
use App\Entity\TrackingUpdate;
use App\Entity\AddressBook;
use App\Form\ShipmentType;
use App\Repository\ShipmentRepository;
use App\Repository\TrackingStatusRepository;
use App\Repository\TrackingUpdateRepository;
use App\Repository\AddressBookRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class OnlineBookingController extends AbstractController
{
// #[Route('/online-booking', name: 'app_online_booking')]
// public function index(): Response
// {
// return $this->render('online_booking/index.html.twig', [
// 'controller_name' => 'OnlineBookingController',
// ]);
// }
#[Route('/online-booking', name: 'app_online_booking_new', methods: ['GET', 'POST'])]
public function new(Request $request, ShipmentRepository $shipmentRepository, TrackingStatusRepository $trackingStatusRepository, TrackingUpdateRepository $trackingUpdateRepository, AddressBookRepository $addressBookRepository): Response
{
$shipment = new Shipment();
$shipment->setShipmentDate(new \DateTime("now", new \DateTimeZone("Asia/Dhaka")));
$shipment->setPickupDate(new \DateTime("now", new \DateTimeZone("Asia/Dhaka")));
$form = $this->createForm(ShipmentType::class, $shipment);
$form->remove('fromAddressBook');
$form->remove('toAddressBook');
$form->remove('saveFromAb');
$form->remove('saveToAb');
$form->remove('customer');
$form->remove('dutyPayer');
$form->remove('dutyAccountno');
$form->remove('paymentOptions');
$form->remove('mawbNo');
$form->remove('hawbNo');
$form->remove('courierHawbno');
$form->remove('expedite');
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
if($shipment -> getHawbno() === null )
{
if($shipment->getShipmentType() == 1)
{
$hawbNo = "2016".rand(100000,999999);
}
else
{
$hawbNo = "2023".rand(100000,999999);
}
$shipment -> setHawbno($hawbNo);
}
$shipment->setAccepted(0);
$shipmentRepository->save($shipment, true);
$shipmentId = $shipment->getId();
// Start Shipment Tracking Update 1st Entry
$trackingUpdate = new TrackingUpdate();
$shipment = $shipmentRepository->find($shipmentId);
$trackingUpdate->setShipment($shipment);
$trackingStatus = $trackingStatusRepository->find(1);
$trackingUpdate->setTrackingStatus($trackingStatus);
$trackingUpdate->setTrackingDate($shipment->getShipmentDate());
$trackingUpdate->setCountry($shipment->getFromCountry());
$trackingUpdate->setCity($shipment->getFromCity());
$trackingUpdate->setPieces($shipment->getShipmentPackagingTotalPieces());
$trackingUpdateRepository->save($trackingUpdate, true);
// End Shipment Tracking Update 1st Entry
$this->addFlash('notice', 'Shipment Created successfully!');
return $this->redirectToRoute('app_online_booking_new');
}
return $this->renderForm('online_booking/new.html.twig', [
'shipment' => $shipment,
'form' => $form,
]);
}
}