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 == 16844 ){ $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); } } }