diff --git a/src/Command/TestJobOrderFulfillCommand.php b/src/Command/TestJobOrderFulfillCommand.php new file mode 100644 index 00000000..258fac01 --- /dev/null +++ b/src/Command/TestJobOrderFulfillCommand.php @@ -0,0 +1,40 @@ +setName('test:fulfilljoborder') + ->setDescription('Test fulfill job order service.') + ->setHelp('Test the fulfill job order service.') + ->addArgument('job_order_id', InputArgument::REQUIRED, 'Job Order ID'); + } + + public function __construct(JobOrderFulfill $fulfill_jo) + { + $this->fulfill_jo = $fulfill_jo; + + parent::__construct(); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $jo_id = $input->getArgument('job_order_id'); + + $result = $this->fulfill_jo->fulfillJobOrder($jo_id); + + if ($result) + echo "Job Order successfully updated" . "\n"; + else + echo "Job Order not updated" . "\n"; + } +} diff --git a/src/Service/JobOrderFulfill.php b/src/Service/JobOrderFulfill.php new file mode 100644 index 00000000..b73044a8 --- /dev/null +++ b/src/Service/JobOrderFulfill.php @@ -0,0 +1,53 @@ +em = $em; + } + + public function fulfillJobOrder($jo_id) + { + $results = $this->em->getRepository(JobOrder::class)->findby(array('id' => $jo_id, 'service_type' => ServiceType::BATTERY_REPLACEMENT_NEW)); + if (isset($results[0])) + { + $jo = $results[0]; + $jo->fulfill(); + + $cust_vehicle = $jo->getCustomerVehicle(); + $invoice = $jo->getInvoice(); + $this->updateCustomerVehicleBattery($cust_vehicle, $invoice); + + return true; + + } + + return false; + } + + protected function updateCustomerVehicleBattery($cust_vehicle, $invoice) + { + if (($cust_vehicle != null) && ($invoice != null)) + { + $items = $invoice->getItems(); + foreach ($items as $item) + { + $new_battery = $item->getBattery(); + $cust_vehicle->setCurrentBattery($new_battery); + } + + $this->em->flush(); + } + } +}