Merge branch 'master' of gitlab.com:Cloud_Solution/driver-app into delivery_confirmed

# Conflicts:
#	lib/pages/delivery/delivery_confirmed_page.dart
#	lib/pages/delivery/information_page.dart
setting_branch
enadhilal 5 years ago
commit 4096288fc6

@ -8,6 +8,7 @@ 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';
const NEXT_ORDER = "/Patients.svc/REST/PatientER_Delivery_NextOrder";
/// Body Constant
const CHANNEL = 9;
@ -18,5 +19,3 @@ const MAX_SMALL_SCREEN = 660;
class AppGlobal {
static BuildContext context;
}

@ -0,0 +1,48 @@
class NextOrderRequestModel {
int driverID;
String searchKey;
int pageSize;
int pageIndex;
String tokenID;
int userID;
String mobileNo;
String longitude;
String latitude;
NextOrderRequestModel(
{this.driverID,
this.searchKey,
this.pageSize,
this.pageIndex,
this.tokenID,
this.userID,
this.mobileNo,
this.longitude,
this.latitude});
NextOrderRequestModel.fromJson(Map<String, dynamic> json) {
driverID = json['DriverID'];
searchKey = json['SearchKey'];
pageSize = json['PageSize'];
pageIndex = json['PageIndex'];
tokenID = json['TokenID'];
userID = json['UserID'];
mobileNo = json['MobileNo'];
longitude = json['Longitude'];
latitude = json['Latitude'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DriverID'] = this.driverID;
data['SearchKey'] = this.searchKey;
data['PageSize'] = this.pageSize;
data['PageIndex'] = this.pageIndex;
data['TokenID'] = this.tokenID;
data['UserID'] = this.userID;
data['MobileNo'] = this.mobileNo;
data['Longitude'] = this.longitude;
data['Latitude'] = this.latitude;
return data;
}
}

@ -24,7 +24,7 @@ class PendingOrdersRes {
String dischargeID;
String patientID;
bool patientOutSA;
int distanceInKilometers;
dynamic distanceInKilometers;
List<ItemsQuantitiesList> itemsQuantitiesList;
PendingOrdersRes(

@ -1,4 +1,5 @@
import 'package:driverapp/config/config.dart';
import 'package:driverapp/core/model/orders/next_order_request_model.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';
@ -7,8 +8,11 @@ import 'package:driverapp/core/service/base_service.dart';
class OrdersService extends BaseService {
List<PendingOrdersRes> _orders = List();
List<PendingOrdersRes> _nextOrdersList = List();
List<PendingOrdersRes> get orders => _orders;
List<PendingOrdersRes> get nextOrdersList => _nextOrdersList;
bool isOrderInserted;
bool isOrderStatusUpdated;
@ -73,4 +77,23 @@ class OrdersService extends BaseService {
throw e;
}
}
Future nextOrder(NextOrderRequestModel nextOrderRequestModel) async {
hasError = false;
try {
await baseAppClient.post(NEXT_ORDER,
onSuccess: (dynamic response, int statusCode) {
response["PatientER_Delivery_NextOrder"].forEach((order) {
_nextOrdersList.add(PendingOrdersRes.fromJson(order));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: nextOrderRequestModel.toJson());
} catch (e) {
hasError = true;
super.error = error;
throw e;
}
}
}

@ -1,4 +1,5 @@
import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/model/orders/next_order_request_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';
@ -8,16 +9,18 @@ import '../../locator.dart';
import 'base_view_model.dart';
class OrdersViewModel extends BaseViewModel {
OrdersService _OrdersService = locator<OrdersService>();
OrdersService _ordersService = locator<OrdersService>();
List<PendingOrdersRes> get orders => _OrdersService.orders;
List<PendingOrdersRes> get orders => _ordersService.orders;
List<PendingOrdersRes> get nextOrdersList => _ordersService.nextOrdersList;
bool isBottomSheetAppear = false;
Future getPendingOrders() async {
setState(ViewState.Busy);
await _OrdersService.getPendingOrders();
if (_OrdersService.hasError) {
error = _OrdersService.error;
await _ordersService.getPendingOrders();
if (_ordersService.hasError) {
error = _ordersService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
@ -25,9 +28,9 @@ class OrdersViewModel extends BaseViewModel {
Future insertOrder(ScanQrRequestModel _scanQrRequestModel) async {
setState(ViewState.ErrorLocal);
await _OrdersService.insertOrder(_scanQrRequestModel);
if (_OrdersService.hasError) {
error = _OrdersService.error;
await _ordersService.insertOrder(_scanQrRequestModel);
if (_ordersService.hasError) {
error = _ordersService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
@ -36,9 +39,19 @@ class OrdersViewModel extends BaseViewModel {
Future updateOrderStatus(
UpdateOrderStatusRequestModel updateOrderStatusRequestModel) async {
setState(ViewState.BusyLocal);
await _OrdersService.updateOrderStatus(updateOrderStatusRequestModel);
if (_OrdersService.hasError) {
error = _OrdersService.error;
await _ordersService.updateOrderStatus(updateOrderStatusRequestModel);
if (_ordersService.hasError) {
error = _ordersService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future nextOrder(NextOrderRequestModel nextOrderRequestModel) async {
setState(ViewState.BusyLocal);
await _ordersService.nextOrder(nextOrderRequestModel);
if (_ordersService.hasError) {
error = _ordersService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);

@ -14,7 +14,7 @@ import 'package:driverapp/widgets/others/rounded_container.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:driverapp/config/size_config.dart';
import '../base/base_view.dart';
class DashboardScreen extends StatefulWidget {
@ -100,7 +100,10 @@ class _DashboardScreenState extends State<DashboardScreen> {
Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Container(
height: MediaQuery.of(context).size.height * 0.16,
height: MediaQuery.of(context).orientation ==
Orientation.portrait
? MediaQuery.of(context).size.height * 0.16
: MediaQuery.of(context).size.height * 0.30,
width: MediaQuery.of(context).size.width * 0.44,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0),
@ -122,21 +125,37 @@ class _DashboardScreenState extends State<DashboardScreen> {
Text(
TranslationBase.of(context).youHave,
style: TextStyle(
color: Colors.white,
fontSize: 10.0),
color: Colors.white,
fontSize: MediaQuery.of(context)
.orientation ==
Orientation.landscape
? SizeConfig.textMultiplier *
2.2
: SizeConfig.textMultiplier *
1.3,
),
),
Text(
'5',
style: TextStyle(
color: Colors.white,
fontSize: 25.0),
fontSize:
SizeConfig.textMultiplier *
3.0),
),
Text(
TranslationBase.of(context)
.undeliveredPackages,
style: TextStyle(
color: Colors.white,
fontSize: 9.5),
color: Colors.white,
fontSize: MediaQuery.of(context)
.orientation ==
Orientation.landscape
? SizeConfig.textMultiplier *
2.2
: SizeConfig.textMultiplier *
1.3,
),
)
],
),
@ -145,8 +164,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
Padding(
padding: EdgeInsets.only(right: 9.5),
child: Container(
width: 110,
height: 110,
width: 100,
height: 100,
decoration: BoxDecoration(
color: Colors.white10,
shape: BoxShape.circle),
@ -157,9 +176,16 @@ class _DashboardScreenState extends State<DashboardScreen> {
Image.asset(
'assets/images/closed_box.png',
height: MediaQuery.of(context)
.size
.height *
0.10,
.orientation ==
Orientation.portrait
? MediaQuery.of(context)
.size
.height *
0.09
: MediaQuery.of(context)
.size
.height *
0.20,
width: MediaQuery.of(context)
.size
.width *
@ -184,7 +210,10 @@ class _DashboardScreenState extends State<DashboardScreen> {
Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Container(
height: MediaQuery.of(context).size.height * 0.16,
height: MediaQuery.of(context).orientation ==
Orientation.portrait
? MediaQuery.of(context).size.height * 0.16
: MediaQuery.of(context).size.height * 0.30,
width: MediaQuery.of(context).size.width * 0.45,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0),
@ -206,21 +235,37 @@ class _DashboardScreenState extends State<DashboardScreen> {
Text(
TranslationBase.of(context).youHave,
style: TextStyle(
color: Colors.white,
fontSize: 10.0),
color: Colors.white,
fontSize: MediaQuery.of(context)
.orientation ==
Orientation.landscape
? SizeConfig.textMultiplier *
2.2
: SizeConfig.textMultiplier *
1.3,
),
),
Text(
'25',
'5',
style: TextStyle(
color: Colors.white,
fontSize: 25.0),
fontSize:
SizeConfig.textMultiplier *
3.0),
),
Text(
TranslationBase.of(context)
.deliveredPackages,
.undeliveredPackages,
style: TextStyle(
color: Colors.white,
fontSize: 10.0),
color: Colors.white,
fontSize: MediaQuery.of(context)
.orientation ==
Orientation.landscape
? SizeConfig.textMultiplier *
2.2
: SizeConfig.textMultiplier *
1.3,
),
)
],
),
@ -229,8 +274,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
Padding(
padding: EdgeInsets.only(right: 9.5),
child: Container(
width: 110,
height: 110,
width: 100,
height: 100,
decoration: BoxDecoration(
color: Colors.white10,
shape: BoxShape.circle),
@ -241,9 +286,16 @@ class _DashboardScreenState extends State<DashboardScreen> {
Image.asset(
'assets/images/opend_box.png',
height: MediaQuery.of(context)
.size
.height *
0.10,
.orientation ==
Orientation.portrait
? MediaQuery.of(context)
.size
.height *
0.09
: MediaQuery.of(context)
.size
.height *
0.20,
width: MediaQuery.of(context)
.size
.width *
@ -274,7 +326,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
height: MediaQuery.of(context).orientation ==
Orientation.portrait
? MediaQuery.of(context).size.height * 0.18
: MediaQuery.of(context).size.height * 0.28,
: MediaQuery.of(context).size.height * 0.30,
width: MediaQuery.of(context).size.width * 0.50,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0),
@ -295,8 +347,13 @@ class _DashboardScreenState extends State<DashboardScreen> {
'assets/images/qr_code.png',
width: MediaQuery.of(context).size.width *
0.26,
height: MediaQuery.of(context).size.height *
0.14,
height: MediaQuery.of(context)
.orientation ==
Orientation.portrait
? MediaQuery.of(context).size.height *
0.14
: MediaQuery.of(context).size.height *
0.28,
fit: BoxFit.contain,
)
],
@ -315,7 +372,11 @@ class _DashboardScreenState extends State<DashboardScreen> {
child: Text(
TranslationBase.of(context).scan,
style: TextStyle(
fontSize: 35.0,
fontSize: MediaQuery.of(context)
.orientation ==
Orientation.landscape
? SizeConfig.textMultiplier * 6.0
: SizeConfig.textMultiplier * 4.0,
color: Colors.white,
fontWeight: FontWeight.w400,
),
@ -328,7 +389,11 @@ class _DashboardScreenState extends State<DashboardScreen> {
TranslationBase.of(context)
.toAddPackageToQue,
style: TextStyle(
fontSize: 15.0,
fontSize: MediaQuery.of(context)
.orientation ==
Orientation.landscape
? SizeConfig.textMultiplier * 3.0
: SizeConfig.textMultiplier * 2.0,
color: Colors.white,
letterSpacing: 0.2,
wordSpacing: 0.5,
@ -478,13 +543,6 @@ class _DashboardScreenState extends State<DashboardScreen> {
fontSize: 15.0,
),
),
Expanded(
child: Text(
'Olaya ST, Behind kfc next to king , ',
style: TextStyle(
color: Color(0xff636363)),
),
),
],
),
),

@ -1,3 +1,10 @@
import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/model/orders/next_order_request_model.dart';
import 'package:driverapp/core/model/orders/pending_orders_res_model.dart';
import 'package:driverapp/core/viewModels/orders_view_model.dart';
import 'package:driverapp/pages/base/base_view.dart';
import 'package:driverapp/pages/delivery/information_page.dart';
import 'package:driverapp/uitl/utils.dart';
import 'package:driverapp/widgets/buttons/secondary_button.dart';
import 'package:driverapp/widgets/delivery/customer_brief_card.dart';
import 'package:flutter/cupertino.dart';
@ -7,14 +14,15 @@ import '../../uitl/translations_delegate_base.dart';
import '../../widgets/others/app_scaffold_widget.dart';
class DeliveryConfirmedPage extends StatelessWidget {
final dynamic item;
final PendingOrdersRes item;
DeliveryConfirmedPage(this.item);
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
return BaseView<OrdersViewModel>(
builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
appBarColor: Theme.of(context).primaryColor,
arrowColor: Colors.white,
titleColor: Colors.white,
@ -24,10 +32,10 @@ class DeliveryConfirmedPage extends StatelessWidget {
child: ListView(
children: <Widget>[
Stack(
children: <Widget>[
Column(
children: <Widget>[
Container(
children: <Widget>[
Column(
children: <Widget>[
Container(
child: Column(
children: <Widget>[
Container(
@ -48,15 +56,15 @@ class DeliveryConfirmedPage extends StatelessWidget {
SizedBox(
height:
MediaQuery.of(context).size.width * 0.03,
),
Text(
TranslationBase.of(context).deliveryInfo,
style: TextStyle(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.bold),
),
SizedBox(
),
Text(
TranslationBase.of(context).deliveryInfo,
style: TextStyle(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.bold),
),
SizedBox(
height:
MediaQuery.of(context).size.width * 0.03,
),
@ -125,8 +133,9 @@ class DeliveryConfirmedPage extends StatelessWidget {
margin: EdgeInsets.all(10),
child: SecondaryButton(
label: TranslationBase.of(context).nextDelivery,
onTap: () {},
),
onTap: () {
getNextOrder(context, model);
},),
),
],
),
@ -149,10 +158,34 @@ class DeliveryConfirmedPage extends StatelessWidget {
),
],
),
],
],),
),
),
),
);
}
getNextOrder(BuildContext context, OrdersViewModel model) async {
NextOrderRequestModel nextOrderRequestModel = NextOrderRequestModel(
pageIndex: 0,
pageSize: 0,
latitude: "46.621730",
longitude: "24.797682",
searchKey: "");
await model.nextOrder(nextOrderRequestModel);
if (model.state == ViewState.ErrorLocal) {
Utils.showErrorToast(model.error);
} else {
if (model.nextOrdersList != null && model.nextOrdersList.length == 0) {
Utils.showErrorToast("No Items in the list");
} else {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => InformationPage(model.nextOrdersList[0]),
),
);
}
}
}
}

File diff suppressed because one or more lines are too long

@ -96,13 +96,6 @@ class _OrdersListScreenState extends State<OrdersListScreen> {
fontSize: 15.0,
),
),
Expanded(
child: Text(
'Olaya ST, Behind kfc next to king',
style:
TextStyle(color: Color(0xff636363)),
),
),
],
),
),

@ -1,3 +1,4 @@
import 'package:driverapp/config/size_config.dart';
import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/viewModels/orders_view_model.dart';
import 'package:driverapp/pages/base/base_view.dart';
@ -20,7 +21,9 @@ class CustomDialog extends StatelessWidget {
return BaseView<OrdersViewModel>(
builder: (_, model, w) => Center(
child: Container(
height: MediaQuery.of(context).size.height * 0.50,
height: SizeConfig.isPortrait
? MediaQuery.of(context).size.height * 0.43
: MediaQuery.of(context).size.height * 0.90,
width: MediaQuery.of(context).size.width * 0.95,
child: Dialog(
shape: RoundedRectangleBorder(
@ -50,7 +53,7 @@ class CustomDialog extends StatelessWidget {
height: 40,
),
FractionallySizedBox(
widthFactor: 0.8,
widthFactor: SizeConfig.isPortrait ? 0.9 : 0.8,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
@ -64,28 +67,35 @@ class CustomDialog extends StatelessWidget {
SizedBox(
height: 10,
),
SecondaryButton(
label: TranslationBase
.of(context)
.confirm,
loading: model.state == ViewState.BusyLocal,
onTap: () {
model.setState(ViewState.BusyLocal);
callService();
},
),
SizedBox(
height: 10,
),
SecondaryButton(
label: TranslationBase
.of(context)
.canceled,
onTap: () {
model.hideBottomSheet();
Navigator.of(context).pop();
},
FractionallySizedBox(
widthFactor: 0.9,
child: Column(
children: <Widget>[
SecondaryButton(
label: TranslationBase
.of(context)
.confirm,
loading: model.state == ViewState.BusyLocal,
onTap: () {
model.setState(ViewState.BusyLocal);
callService();
},
), SizedBox(
height: 10,
),
SecondaryButton(
label: TranslationBase
.of(context)
.canceled,
onTap: () {
model.hideBottomSheet();
Navigator.of(context).pop();
},
),
],
),
),
],
),
)

Loading…
Cancel
Save