diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 1cbdd343..b5bc3c47 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -1055,7 +1055,7 @@ class APIController extends Controller $item_batt = $item->getBattery(); if ($item_batt != null) { - $my_data['image_url'] = $this->getBatteryImageURL($req, $batt); + $my_data['image_url'] = $this->getBatteryImageURL($req, $item_batt); } $items_data[] = $my_data; @@ -1098,6 +1098,10 @@ class APIController extends Controller // return $res->getReturnResponse(); if (count($ongoing_jos) <= 0) { + // TODO: check if the latest jo they have needs rider rating + // $query = $em->createQuery('select + + // no pending $res->setData([ 'status' => APIRiderStatus::NO_PENDING_JO ]); @@ -1143,6 +1147,7 @@ class APIController extends Controller $data['status'] = APIRiderStatus::RIDER_PICK_UP; // TODO: fix this to actual location of rider + // default rider location to hub $data['rider'] = [ 'id' => $rider->getID(), 'name' => $rider->getFullName(), @@ -1322,8 +1327,42 @@ class APIController extends Controller return $res->getReturnResponse(); } - $inv = $jo->getInvoice(); + $invoice = $jo->getInvoice(); + // make invoice json data + $data = [ + 'total_price' => $invoice->getTotalPrice(), + 'vat_ex_price' => $invoice->getVATExclusivePrice(), + 'vat' => $invoice->getVAT(), + 'discount' => $invoice->getDiscount(), + 'trade_in' => $invoice->getTradeIn(), + ]; + $items = $invoice->getItems(); + $items_data = []; + foreach ($items as $item) + { + $my_data = [ + 'title' => $item->getTitle(), + 'qty' => $item->getQuantity() + 0, + 'price' => $item->getPrice() + 0.0, + ]; + + $item_batt = $item->getBattery(); + if ($item_batt != null) + { + $my_data['image_url'] = $this->getBatteryImageURL($req, $item_batt); + } + + $items_data[] = $my_data; + } + + $data['items'] = $items_data; + + // set data + $res->setData($data); + + + /* // invoice items $inv_items = []; foreach ($inv->getItems() as $item) @@ -1355,6 +1394,7 @@ class APIController extends Controller $res->setData($data); + */ return $res->getReturnResponse(); } diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index e3e69688..0e9d34e4 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -237,6 +237,12 @@ class JobOrder */ protected $trade_in_type; + // if the user has left a rating for the rider + /** + * @ORM\Column(type="boolean", nullable=true) + */ + protected $flag_rider_rating; + public function __construct() { $this->date_create = new DateTime(); @@ -252,6 +258,7 @@ class JobOrder $this->events = new ArrayCollection(); $this->trade_in_type = null; + $this->flag_rider_rating = false; } public function getID() @@ -686,4 +693,18 @@ class JobOrder $this->makeRiderAvailable(); } + + public function setHasRiderRating($flag = true) + { + $this->flag_rider_rating = $flag; + return $this; + } + + public function HasRiderRating() + { + if ($this->flag_rider_rating == null) + return false; + + return $this->flag_rider_rating; + } } diff --git a/src/Ramcar/APIRiderStatus.php b/src/Ramcar/APIRiderStatus.php index a6f28c27..3c178cff 100644 --- a/src/Ramcar/APIRiderStatus.php +++ b/src/Ramcar/APIRiderStatus.php @@ -10,6 +10,7 @@ class APIRiderStatus extends NameValue const RIDER_PICK_UP = 'rider_pick_up'; const RIDER_OTW = 'rider_otw'; const RIDER_UNAVAIL = 'rider_unavail'; + const RIDER_RATING = 'rider_rating'; const COLLECTION = [ 'no_pending_jo' => 'No pending job order', @@ -18,5 +19,6 @@ class APIRiderStatus extends NameValue 'rider_pick_up' => 'Rider is picking up item from outlet', 'rider_otw' => 'Rider is on the way to customer', 'rider_unavail' => 'No available rider for delivery', + 'rider_rating' => 'Rider waiting for rating from customer', ]; }