diff --git a/src/Service/HubFilter/BaseHubFilter.php b/src/Service/HubFilter/BaseHubFilter.php index 81d1f87c..3ca4bf85 100644 --- a/src/Service/HubFilter/BaseHubFilter.php +++ b/src/Service/HubFilter/BaseHubFilter.php @@ -63,11 +63,26 @@ class BaseHubFilter public function log(Hub $hub): void { $this->hub_filter_logger->logFilteredHub($hub, $this->getID(), $this->getJOID(), $this->getCustomerID()); + + // log to file + $filename = '/../../../var/log/hub_rejection.log'; + $date = date("Y-m-d H:i:s"); + + // build log entry + $entry = implode("", [ + "[JO: " . $this->getJOID() . "]", + "[" . $date . "]", + "[" . $this->getID() . "]", + " " . $hub->getName() . " (ID: " . $hub->getID() . ")", + "\r\n", + ]); + + @file_put_contents(__DIR__ . $filename, $entry, FILE_APPEND); } - protected function createRejectionEntry($jo_id, $hub, $reason, $remarks = ""): JORejection + protected function createRejectionEntry($hub, $reason, $remarks = ""): JORejection { - $jo = $this->em->getRepository(JobOrder::class)->find($jo_id); + $jo = $this->em->getRepository(JobOrder::class)->find($this->getJOID()); $robj = new JORejection(); $robj->setDateCreate(new DateTime()) @@ -79,26 +94,13 @@ class BaseHubFilter $this->em->persist($robj); $this->em->flush(); - // log to file - $filename = '/../../../var/log/hub_rejection.log'; - $date = date("Y-m-d H:i:s"); - - // build log entry - $entry = implode("", [ - "[JO: " . $jo_id . "]", - "[HUB:" . $hub->getID() . "]", - "[" . $date . "]", - $reason, - $remarks ? " - " . $remarks : "", - ]); - - @file_put_contents(__DIR__ . $filename, $entry, FILE_APPEND); - return $robj; } - protected function sendSMSMessage($hub, $jo_id, $order_date, $service_type, $rejection, $reason = "", $remarks = ""): void + protected function sendSMSMessage($hub, $order_date, $service_type, $rejection, $reason = "", $remarks = ""): void { + $jo_id = $this->getJOID(); + // check if we already have a rejection record for this hub and JO. this also means an SMS was already sent $rejection_count = $this->em->createQueryBuilder() ->select('count(r)') @@ -126,7 +128,7 @@ class BaseHubFilter 'Remarks: ' . $remarks . "\n" . 'Type of Service: ' . ServiceType::getName($service_type); - error_log("SENDING SMS MESsAGE:\r\n" . $message); + error_log("SENDING SMS MESSAGE:\r\n" . $message); // send SMS message to hub $this->rt->sendSMS( diff --git a/src/Service/HubFilter/Filters/InventoryHubFilter.php b/src/Service/HubFilter/Filters/InventoryHubFilter.php index 2a23e346..b01b7ff0 100644 --- a/src/Service/HubFilter/Filters/InventoryHubFilter.php +++ b/src/Service/HubFilter/Filters/InventoryHubFilter.php @@ -121,10 +121,11 @@ class InventoryHubFilter extends BaseHubFilter implements HubFilterInterface // check if we are filtering this hub if (isset($hubs_to_filter[$branch_code]) || empty($branch_code) || !isset($qtys[$branch_code])) { // if we have a JO, create rejection record and notify + $jo_id = $this->getJOID(); + if (!empty($jo_id)) { // create rejection report entry $robj = $this->createRejectionEntry( - $jo_id, $hub, JORejectionReason::NO_STOCK_SALES, "SKU(s): " . $battery_string, @@ -133,7 +134,6 @@ class InventoryHubFilter extends BaseHubFilter implements HubFilterInterface // build SMS message $this->sendSMSMessage( $hub, - $jo_id, $params['order_date'], $params['service_type'], $robj, diff --git a/src/Service/HubFilter/Filters/RiderAvailabilityHubFilter.php b/src/Service/HubFilter/Filters/RiderAvailabilityHubFilter.php index e969dcb2..d2697feb 100644 --- a/src/Service/HubFilter/Filters/RiderAvailabilityHubFilter.php +++ b/src/Service/HubFilter/Filters/RiderAvailabilityHubFilter.php @@ -45,14 +45,15 @@ class RiderAvailabilityHubFilter extends BaseHubFilter implements HubFilterInter error_log("TOTAL RIDERS: " . $available_riders); if ($available_riders === 0) { // if we have a JO, create rejection record and notify + $jo_id = $this->getJOID(); + if (!empty($jo_id)) { // create rejection report entry - $robj = $this->createRejectionEntry($jo_id, $hub, JORejectionReason::NO_RIDER_AVAILABLE); + $robj = $this->createRejectionEntry($hub, JORejectionReason::NO_RIDER_AVAILABLE); // build SMS message $this->sendSMSMessage( $hub, - $jo_id, $params['order_date'], $params['service_type'], $robj,