Have rider api cancel job order requeue the job order for reassignment instead #162
This commit is contained in:
parent
7faaf403bf
commit
b4b18e5d3d
5 changed files with 42 additions and 11 deletions
|
|
@ -23,6 +23,7 @@ use App\Ramcar\TransactionOrigin;
|
||||||
use App\Ramcar\TradeInType;
|
use App\Ramcar\TradeInType;
|
||||||
use App\Ramcar\InvoiceStatus;
|
use App\Ramcar\InvoiceStatus;
|
||||||
use App\Ramcar\ModeOfPayment;
|
use App\Ramcar\ModeOfPayment;
|
||||||
|
use App\Ramcar\JOEventType;
|
||||||
|
|
||||||
use App\Service\InvoiceCreator;
|
use App\Service\InvoiceCreator;
|
||||||
use App\Service\MQTTClient;
|
use App\Service\MQTTClient;
|
||||||
|
|
@ -40,6 +41,7 @@ use App\Entity\BatterySize;
|
||||||
use App\Entity\RiderRating;
|
use App\Entity\RiderRating;
|
||||||
use App\Entity\Rider;
|
use App\Entity\Rider;
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
|
use App\Entity\JOEvent;
|
||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
|
|
||||||
|
|
@ -481,17 +483,19 @@ class RAPIController extends Controller
|
||||||
if ($res->isError())
|
if ($res->isError())
|
||||||
return $res->getReturnResponse();
|
return $res->getReturnResponse();
|
||||||
|
|
||||||
/*
|
$rider = $this->session->getRider();
|
||||||
// set jo status to cancelled
|
|
||||||
// TODO: set reason
|
|
||||||
$jo->setStatus(JOStatus::CANCELLED)
|
|
||||||
->setDateCancel(new DateTime());
|
|
||||||
|
|
||||||
// make rider available
|
// $jo->cancel("rider cancelled");
|
||||||
$this->session->getRider()->setAvailable(true);
|
// requeue it, instead of cancelling it
|
||||||
*/
|
$jo->requeue();
|
||||||
|
|
||||||
$jo->cancel("rider cancelled");
|
// add event
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::REQUEUE)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
$em->persist($event);
|
||||||
|
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
|
|
@ -504,7 +508,6 @@ class RAPIController extends Controller
|
||||||
$mclient->sendEvent($jo, $payload);
|
$mclient->sendEvent($jo, $payload);
|
||||||
|
|
||||||
|
|
||||||
// TODO: add event
|
|
||||||
|
|
||||||
return $res->getReturnResponse();
|
return $res->getReturnResponse();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,13 @@ class JOEvent
|
||||||
*/
|
*/
|
||||||
protected $job_order;
|
protected $job_order;
|
||||||
|
|
||||||
|
// rider related to the event
|
||||||
|
/**
|
||||||
|
* @ORM\ManyToOne(targetEntity="Rider", inversedBy="events")
|
||||||
|
* @ORM\JoinColumn(name="rider_id", referencedColumnName="id", nullable=true)
|
||||||
|
*/
|
||||||
|
protected $rider;
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->date_create = new DateTime();
|
$this->date_create = new DateTime();
|
||||||
|
|
@ -115,4 +122,15 @@ class JOEvent
|
||||||
{
|
{
|
||||||
return $this->job_order;
|
return $this->job_order;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setRider(Rider $rider)
|
||||||
|
{
|
||||||
|
$this->rider = $rider;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getRider()
|
||||||
|
{
|
||||||
|
return $this->rider;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -661,6 +661,14 @@ class JobOrder
|
||||||
$rider->setAvailable();
|
$rider->setAvailable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function requeue()
|
||||||
|
{
|
||||||
|
// set status back to 'for rider assignment'
|
||||||
|
$this->setStatus(JOStatus::RIDER_ASSIGN);
|
||||||
|
|
||||||
|
$this->makeRiderAvailable();
|
||||||
|
}
|
||||||
|
|
||||||
public function cancel($reason)
|
public function cancel($reason)
|
||||||
{
|
{
|
||||||
// set status to cancelled
|
// set status to cancelled
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ class JOEventType extends NameValue
|
||||||
const CANCEL = 'cancel';
|
const CANCEL = 'cancel';
|
||||||
const FULFILL = 'fulfill';
|
const FULFILL = 'fulfill';
|
||||||
const OPEN_EDIT = 'open_edit';
|
const OPEN_EDIT = 'open_edit';
|
||||||
|
const REQUEUE = 'requeue';
|
||||||
|
|
||||||
const COLLECTION = [
|
const COLLECTION = [
|
||||||
'create' => 'Created',
|
'create' => 'Created',
|
||||||
|
|
@ -18,5 +19,6 @@ class JOEventType extends NameValue
|
||||||
'cancel' => 'Cancelled',
|
'cancel' => 'Cancelled',
|
||||||
'fulfill' => 'Fulfilled',
|
'fulfill' => 'Fulfilled',
|
||||||
'open_edit' => 'Open Edit',
|
'open_edit' => 'Open Edit',
|
||||||
|
'requeue' => 'Requeue',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -739,7 +739,7 @@
|
||||||
<i class="fa fa-genderless" style="color: #f4516c;"></i>
|
<i class="fa fa-genderless" style="color: #f4516c;"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="m-timeline-2__item-text m--padding-top-5">
|
<div class="m-timeline-2__item-text m--padding-top-5">
|
||||||
{{ event.getTypeName }} by {{ event.getUser.getFullName|default('Application') }}
|
{{ event.getTypeName }} by {{ event.getUser.getFullName|default('Application') }} {% if event.getRider %} - Rider - {{ event.getRider.getFullName }}{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue