finish update order status function

logut
Elham Rababah 5 years ago
parent 04f31aae21
commit c9461bfef8

@ -6,15 +6,15 @@ const GET_PROJECT = '/Lists.svc/REST/GetProject';
const LOGIN = "/Authentication.svc/REST/CheckDriverAuthentication";
const GET_ALL_ORDERS = '/Patients.svc/REST/PatientER_Delivery_GetAllOrder';
const SCAN_QR = '/Patients.svc/REST/PatientER_Delivery_OrderInsert';
const UPDATE_ORDER_STATUS =
'/Patients.svc/REST/PatientER_Delivery_UpdateOrderStatus';
/// Body Constant
const CHANNEL = 9;
/// design constant
const MAX_SMALL_SCREEN = 660;
class AppGlobal {
static BuildContext context;
}

@ -1,6 +1,7 @@
import 'package:driverapp/config/config.dart';
import 'package:driverapp/core/model/orders/pending_orders_req_model.dart';
import 'package:driverapp/core/model/orders/pending_orders_res_model.dart';
import 'package:driverapp/core/model/orders/update_order_status_request_model.dart';
import 'package:driverapp/core/model/scan_qr/scan_qr_request_model.dart';
import 'package:driverapp/core/service/base_service.dart';
@ -9,15 +10,12 @@ class OrdersService extends BaseService {
List<PendingOrdersRes> get orders => _orders;
bool isOrderInserted;
bool isOrderStatusUpdated;
PendingOrders _requestGetPendingOrders = PendingOrders(
driverID: 1111,
searchKey: "",
pageSize: 0,
pageIndex: 0,
tokenID: "@dm!n",
userID: "1111",
mobileNo: "0541710575",
);
Future getPendingOrders() async {
@ -59,4 +57,22 @@ class OrdersService extends BaseService {
throw e;
}
}
Future updateOrderStatus(
UpdateOrderStatusRequestModel updateOrderStatusRequestModel) async {
hasError = false;
try {
await baseAppClient.post(UPDATE_ORDER_STATUS,
onSuccess: (dynamic response, int statusCode) {
isOrderStatusUpdated = response["PatientER_Delivery_IsOrderUpdated"];
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: updateOrderStatusRequestModel.toJson());
} catch (e) {
hasError = true;
super.error = error;
throw e;
}
}
}

@ -1,21 +1,22 @@
import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/model/orders/pending_orders_res_model.dart';
import 'package:driverapp/core/model/orders/update_order_status_request_model.dart';
import 'package:driverapp/core/service/orders_service.dart';
import '../../locator.dart';
import 'base_view_model.dart';
class OrdersViewModel extends BaseViewModel {
OrdersService _pendingOrdersService = locator<OrdersService>();
OrdersService _OrdersService = locator<OrdersService>();
List<PendingOrdersRes> get orders => _pendingOrdersService.orders;
List<PendingOrdersRes> get orders => _OrdersService.orders;
bool isBottomSheetAppear = false;
Future getPendingOrders() async {
setState(ViewState.Busy);
await _pendingOrdersService.getPendingOrders();
if (_pendingOrdersService.hasError) {
error = _pendingOrdersService.error;
await _OrdersService.getPendingOrders();
if (_OrdersService.hasError) {
error = _OrdersService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
@ -23,9 +24,21 @@ class OrdersViewModel extends BaseViewModel {
Future insertOrder() async {
setState(ViewState.ErrorLocal);
await _pendingOrdersService.insertOrder();
if (_pendingOrdersService.hasError) {
error = _pendingOrdersService.error;
await _OrdersService.insertOrder();
if (_OrdersService.hasError) {
error = _OrdersService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future updateOrderStatus(
UpdateOrderStatusRequestModel updateOrderStatusRequestModel) async {
setState(ViewState.BusyLocal);
await _OrdersService.updateOrderStatus(updateOrderStatusRequestModel);
if (_OrdersService.hasError) {
error = _OrdersService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);

File diff suppressed because one or more lines are too long

@ -1,25 +1,91 @@
import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/viewModels/orders_view_model.dart';
import 'package:driverapp/pages/base/base_view.dart';
import 'package:driverapp/widgets/buttons/secondary_button.dart';
import 'package:flutter/material.dart';
import '../text.dart';
class CustomDialog extends StatelessWidget {
final Widget child;
// final Widget child;
final String orderStatusText;
final Function callService;
final OrdersViewModel model;
CustomDialog({
@required this.child,
});
CustomDialog({this.orderStatusText, this.callService, this.model});
@override
Widget build(BuildContext context) {
return Center(
child: Container(
height: MediaQuery.of(context).size.height * 0.35,
width: MediaQuery.of(context).size.width * 0.95,
child: Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
return BaseView<OrdersViewModel>(
builder: (_, model, w) => Center(
child: Container(
height: MediaQuery.of(context).size.height * 0.35,
width: MediaQuery.of(context).size.width * 0.95,
child: Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
),
elevation: 0.0,
backgroundColor: Colors.white,
child: Container(
child: Column(
children: <Widget>[
SizedBox(
height: 30,
),
Text(
'you have selected:',
style: TextStyle(
fontWeight: FontWeight.w500,
color: Colors.black,
fontSize: 15.0),
),
Text(
orderStatusText,
style: TextStyle(
color: Theme.of(context).primaryColor, fontSize: 18.0),
),
SizedBox(
height: 40,
),
FractionallySizedBox(
widthFactor: 0.8,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Texts(
'Are you sure?',
color: Colors.black,
fontSize: 20,
),
SizedBox(
height: 10,
),
SecondaryButton(
label: "Confirm",
loading: model.state == ViewState.BusyLocal,
onTap: () {
model.setState(ViewState.BusyLocal);
callService();
},
),
SizedBox(
height: 10,
),
SecondaryButton(
label: "Cancel",
onTap: () {
model.hideBottomSheet();
Navigator.of(context).pop();
},
),
],
),
)
],
),
),
),
elevation: 0.0,
backgroundColor: Colors.white,
child: child,
),
),
);

Loading…
Cancel
Save