1) When creating an account as a driver, it should automatically add notifications using their phone number (assume they have a smart phone) and email 2) It should text them their username 3) I never received an email to nickhunter1991@gmail.com 4) When I accessed order 16844, I couldn't see the customer price total or subtotal
104 lines
2.6 KiB
PHP
104 lines
2.6 KiB
PHP
<?php
|
|
|
|
class Controller_api_driver_orders extends Crunchbutton_Controller_RestAccount {
|
|
|
|
public function init() {
|
|
|
|
$lastHours = 12; // last 12 hours
|
|
|
|
if( c::getPagePiece( 3 ) ){
|
|
|
|
switch ( c::getPagePiece( 3 ) ) {
|
|
case 'count':
|
|
$count = 0;
|
|
$orders = Order::deliveryOrders( $lastHours );
|
|
foreach ( $orders as $order ) {
|
|
$status = $order->deliveryLastStatus();
|
|
if( $status[ 'status' ] == 'new' ){
|
|
$count++;
|
|
}
|
|
}
|
|
echo json_encode( [ 'total' => $count ] );
|
|
break;
|
|
|
|
default:
|
|
|
|
$order = Order::o(c::getPagePiece( 3 ) );
|
|
// Test order #2969 - step 3
|
|
if( $order->id_order == Cockpit_Driver_Notify::ORDER_TEST ){
|
|
$last = Crunchbutton_Order_Action::byOrder( $order->id_order );
|
|
// delete last actions so the driver could play with
|
|
if( $last->id_order_action && c::user()->id_admin != $last->id_admin && $last->type != Crunchbutton_Order_Action::DELIVERY_REJECTED ){
|
|
c::db()->query( 'DELETE FROM order_action WHERE id_order = "' . $order->id_order . '"' );
|
|
}
|
|
}
|
|
|
|
|
|
if ( $this->method() == 'post' ) {
|
|
|
|
$res = [];
|
|
|
|
switch ( c::getPagePiece(4) ) {
|
|
case 'delivery-pickedup':
|
|
$res['status'] = $order->deliveryPickedup(c::user());
|
|
break;
|
|
|
|
case 'delivery-delivered':
|
|
$res['status'] = $order->deliveryDelivered(c::user());
|
|
break;
|
|
|
|
case 'delivery-accept':
|
|
$res['status'] = $order->deliveryAccept(c::user());
|
|
break;
|
|
|
|
case 'delivery-reject':
|
|
$order->deliveryReject(c::user());
|
|
$res['status'] = true;
|
|
break;
|
|
}
|
|
|
|
if ( $order->deliveryStatus() ){
|
|
$ret = $order->deliveryExports();
|
|
}
|
|
$ret[ 'status' ] = $res[ 'status' ];
|
|
|
|
echo json_encode( $ret );
|
|
exit;
|
|
} else {
|
|
if( $order->id_order ) {
|
|
echo $order->json();
|
|
} else {
|
|
echo json_encode(['error' => 'invalid object']);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
} else {
|
|
|
|
$exports = [];
|
|
|
|
$orders = Order::deliveryOrders( $lastHours );
|
|
|
|
foreach ( $orders as $order ) {
|
|
$exports[] = Model::toModel( [
|
|
'id_order' => $order->id_order,
|
|
'lastStatus' => $order->deliveryLastStatus(),
|
|
'name' => $order->name,
|
|
'phone' => $order->phone,
|
|
'date' => $order->date(),
|
|
'restaurant' => $order->restaurant()->name,
|
|
] );
|
|
}
|
|
|
|
usort( $exports, function( $a, $b ){
|
|
if( $a->lastStatus->status == $b->lastStatus->status ){
|
|
return $a->id_order < $b->id_order;
|
|
}
|
|
return ( $a->lastStatus->order > $b->lastStatus->order );
|
|
} );
|
|
|
|
echo json_encode($exports);
|
|
}
|
|
}
|
|
} |