diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 9ffb102a..ba375b03 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -456,7 +456,8 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface } else { - //$old_rider = $jo->getRider(); + // need to get old values of rider and status to see if we need to change JO status or not + $old_rider = $jo->getRider(); $old_jo_status = $jo->getStatus(); } @@ -639,10 +640,19 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface // and JO is already in_transit or in_progress? // retain old jo status if it's an update JO - if ($old_jo_status != null) - $jo->setStatus($old_jo_status); - else + // check old rider if it is also a reassignment + // old_rider should be null if JO has been rejected + $new_rider = $jo->getRider(); + if ($new_rider != $old_rider) + { + // reassignment $jo->setStatus(JOStatus::ASSIGNED); + } + else + { + if ($old_jo_status != null) + $jo->setStatus($old_jo_status); + } // check if user is null, meaning call to create came from API if ($user != null) @@ -702,8 +712,8 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $em->flush(); // check if JO has been reassigned - //if ($old_rider != $rider) - if ($old_jo_status != $jo->getStatus()) + if ($old_rider != $jo->getRider()) + //if ($old_jo_status != $jo->getStatus()) { error_log('JO has been reassigned'); // TODO: refactor later