merge-update-with-lab-changes
mosazaid 4 years ago
parent acdd19eeed
commit c1f3d3cc1c

@ -62,6 +62,8 @@ class OrderPreviewService extends BaseService {
Future<Map> getShoppingCart() async { Future<Map> getShoppingCart() async {
var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID); var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
if (customerId == null) return null;
Map<String, String> queryParams = {'shopping_cart_type': '1'}; Map<String, String> queryParams = {'shopping_cart_type': '1'};
dynamic localRes; dynamic localRes;
hasError = false; hasError = false;
@ -94,8 +96,8 @@ class OrderPreviewService extends BaseService {
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
body["shopping_cart_item"] = choppingCartObject; body["shopping_cart_item"] = choppingCartObject;
await baseAppClient.pharmacyPost("$GET_SHOPPING_CART$productId", isExternal: false, await baseAppClient.pharmacyPost("$GET_SHOPPING_CART$productId",
onSuccess: (response, statusCode) async { isExternal: false, onSuccess: (response, statusCode) async {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
@ -112,8 +114,8 @@ class OrderPreviewService extends BaseService {
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
await baseAppClient.pharmacyPost("$DELETE_SHOPPING_CART$productId", isExternal: false, await baseAppClient.pharmacyPost("$DELETE_SHOPPING_CART$productId",
onSuccess: (response, statusCode) async { isExternal: false, onSuccess: (response, statusCode) async {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
@ -225,8 +227,9 @@ class OrderPreviewService extends BaseService {
body['order'] = orderBody; body['order'] = orderBody;
try { try {
await baseAppClient.pharmacyPost(ORDER_SHOPPING_CART, isExternal: false, isAllowAny: true, await baseAppClient.pharmacyPost(ORDER_SHOPPING_CART,
onSuccess: (response, statusCode) async { isExternal: false,
isAllowAny: true, onSuccess: (response, statusCode) async {
orderList.clear(); orderList.clear();
response['orders'].forEach((item) { response['orders'].forEach((item) {
orderList.add(OrderDetailModel.fromJson(item)); orderList.add(OrderDetailModel.fromJson(item));
@ -263,24 +266,22 @@ class OrderPreviewService extends BaseService {
} }
} }
Future<LatLng> getDriverLocation(dynamic driverId) async{ Future<LatLng> getDriverLocation(dynamic driverId) async {
Map<String, dynamic> jsonBody = Map(); Map<String, dynamic> jsonBody = Map();
jsonBody['DriverID'] = driverId; jsonBody['DriverID'] = driverId;
LatLng coordinates; LatLng coordinates;
await baseAppClient.post(DRIVER_LOCATION, await baseAppClient.post(DRIVER_LOCATION,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {
if(statusCode == 200){ if (statusCode == 200) {
dynamic locationObject = response['PatientER_GetDriverLocationList'][0]; dynamic locationObject = response['PatientER_GetDriverLocationList'][0];
double lat = locationObject['Latitude']; double lat = locationObject['Latitude'];
double lon = locationObject['Longitude']; double lon = locationObject['Longitude'];
if(lat != null && lon != null){ if (lat != null && lon != null) {
coordinates = LatLng(lat,lon); coordinates = LatLng(lat, lon);
} }
} }
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {}, body: jsonBody);
}, body: jsonBody);
return coordinates; return coordinates;
} }

@ -9,6 +9,8 @@ import 'package:diplomaticquarterapp/core/model/pharmacies/order_detail.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/payment-checkout-data.dart'; import 'package:diplomaticquarterapp/core/model/pharmacies/payment-checkout-data.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/order-preview-service.dart'; import 'package:diplomaticquarterapp/core/service/parmacyModule/order-preview-service.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
import '../../../locator.dart'; import '../../../locator.dart';
import '../base_view_model.dart'; import '../base_view_model.dart';
@ -17,12 +19,14 @@ class OrderPreviewViewModel extends BaseViewModel {
OrderPreviewService _orderService = locator<OrderPreviewService>(); OrderPreviewService _orderService = locator<OrderPreviewService>();
List<Addresses> get addresses => _orderService.addresses; List<Addresses> get addresses => _orderService.addresses;
LacumAccountInformation get lacumInformation => LacumAccountInformation get lacumInformation =>
_orderService.lacumInformation; _orderService.lacumInformation;
List<OrderDetailModel> get orderListModel => _orderService.orderList; List<OrderDetailModel> get orderListModel => _orderService.orderList;
PharmacyModuleViewModel pharmacyModuleViewModel = PharmacyModuleViewModel pharmacyModuleViewModel =
locator<PharmacyModuleViewModel>(); locator<PharmacyModuleViewModel>();
ShoppingCartResponse cartResponse = ShoppingCartResponse(); ShoppingCartResponse cartResponse = ShoppingCartResponse();
PaymentCheckoutData paymentCheckoutData = PaymentCheckoutData(); PaymentCheckoutData paymentCheckoutData = PaymentCheckoutData();
@ -38,24 +42,31 @@ class OrderPreviewViewModel extends BaseViewModel {
getShoppingCart(); getShoppingCart();
} }
} }
void update(){
notifyListeners();
}
Future getShoppingCart() async { Future getShoppingCart() async {
setState(ViewState.Busy); // setState(ViewState.Busy);
// GifLoaderDialogUtils.showMyDialog(
// locator<NavigationService>().navigatorKey.currentContext);
await _orderService.getShoppingCart().then((res) { await _orderService.getShoppingCart().then((res) {
_handleGetShoppingCartResponse(res); if (res != null) _handleGetShoppingCartResponse(res);
}); });
if (_orderService.hasError) { if (_orderService.hasError) {
error = _orderService.error; error = _orderService.error;
setState(ViewState.Error); // setState(ViewState.Error);
} else { } else {
if (paymentCheckoutData != null) { if (paymentCheckoutData != null) {
paymentCheckoutData.cartDataVisible = true; paymentCheckoutData.cartDataVisible = true;
} }
setState(ViewState.Idle); // GifLoaderDialogUtils.hideDialog(
// locator<NavigationService>().navigatorKey.currentContext);
setState(ViewState.Idle);
} }
} }
Future <ShoppingCartResponse> changeProductQuantity(ShoppingCart product) async { Future<ShoppingCartResponse> changeProductQuantity(
ShoppingCart product) async {
setState(ViewState.Busy); setState(ViewState.Busy);
var resp = await _orderService.changeProductQuantity(product.id, product); var resp = await _orderService.changeProductQuantity(product.id, product);
var object = _handleGetShoppingCartResponse(resp); var object = _handleGetShoppingCartResponse(resp);
@ -112,7 +123,8 @@ class OrderPreviewViewModel extends BaseViewModel {
res["shopping_carts"].forEach((item) { res["shopping_carts"].forEach((item) {
ShoppingCart shoppingCart = ShoppingCart.fromJson(item); ShoppingCart shoppingCart = ShoppingCart.fromJson(item);
cartResponse.shoppingCarts.add(shoppingCart); cartResponse.shoppingCarts.add(shoppingCart);
totalAdditionalShippingCharge += shoppingCart.product.additionalShippingCharge; totalAdditionalShippingCharge +=
shoppingCart.product.additionalShippingCharge;
}); });
return cartResponse; return cartResponse;
} }
@ -164,7 +176,8 @@ class OrderPreviewViewModel extends BaseViewModel {
setState(ViewState.Busy); setState(ViewState.Busy);
await _orderService.getLacumGroupInformation(); await _orderService.getLacumGroupInformation();
paymentCheckoutData.lacumInformation = _orderService.lacumGroupInformation; paymentCheckoutData.lacumInformation = _orderService.lacumGroupInformation;
paymentCheckoutData.usedLakumPoints = paymentCheckoutData.lacumInformation.lakumInquiryInformationObjVersion.pointsBalanceAmount; paymentCheckoutData.usedLakumPoints = paymentCheckoutData
.lacumInformation.lakumInquiryInformationObjVersion.pointsBalanceAmount;
if (_orderService.hasError) { if (_orderService.hasError) {
error = _orderService.error; error = _orderService.error;
setState(ViewState.Error); setState(ViewState.Error);
@ -175,8 +188,10 @@ class OrderPreviewViewModel extends BaseViewModel {
getShippingOption() async { getShippingOption() async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _orderService.getShippingOption(paymentCheckoutData.address).then((res) { await _orderService
paymentCheckoutData.shippingOption = ShippingOption.fromJson(res); .getShippingOption(paymentCheckoutData.address)
.then((res) {
paymentCheckoutData.shippingOption = ShippingOption.fromJson(res);
paymentCheckoutData.updateData(); paymentCheckoutData.updateData();
}); });
if (_orderService.hasError) { if (_orderService.hasError) {
@ -191,7 +206,8 @@ class OrderPreviewViewModel extends BaseViewModel {
setState(ViewState.Busy); setState(ViewState.Busy);
await pharmacyModuleViewModel.generatePharmacyToken(); await pharmacyModuleViewModel.generatePharmacyToken();
await _orderService.makeOrder(paymentCheckoutData, cartResponse.shoppingCarts); await _orderService.makeOrder(
paymentCheckoutData, cartResponse.shoppingCarts);
if (_orderService.hasError) { if (_orderService.hasError) {
error = _orderService.error; error = _orderService.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);

@ -69,7 +69,6 @@ class _Login extends State<Login> {
nationalIDorFile.text = "2001273"; nationalIDorFile.text = "2001273";
mobileNumberController.text = mobileNo = "0555416043"; mobileNumberController.text = mobileNo = "0555416043";
}/* else { }/* else {
// TODO Mousa Sheeeloh
nationalIDorFile.text = "3376044"; nationalIDorFile.text = "3376044";
mobileNumberController.text = mobileNo = "0555416575"; mobileNumberController.text = mobileNo = "0555416575";
}*/ }*/

@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-preview.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-preview.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy-terms-conditions-page.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy-terms-conditions-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/ProductOrderItem.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/ProductOrderItem.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/GestureIconButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/GestureIconButton.dart';
@ -15,6 +16,7 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart'; import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class CartOrderPage extends StatefulWidget { class CartOrderPage extends StatefulWidget {
@ -25,13 +27,14 @@ class CartOrderPage extends StatefulWidget {
class _CartOrderPageState extends State<CartOrderPage> { class _CartOrderPageState extends State<CartOrderPage> {
bool isLoading = true;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
Provider.of<OrderPreviewViewModel>(context, listen: false).getShoppingCart(); getData();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context); final mediaQuery = MediaQuery.of(context);
@ -40,7 +43,9 @@ class _CartOrderPageState extends State<CartOrderPage> {
final height = mediaQuery.size.height - 60 - mediaQuery.padding.top; final height = mediaQuery.size.height - 60 - mediaQuery.padding.top;
AppScaffold appScaffold; AppScaffold appScaffold;
return NetworkBaseView( return NetworkBaseView(
baseViewModel: model, // baseViewModel: model,
isLoading: isLoading,
isLocalLoader: true,
child: AppScaffold( child: AppScaffold(
appBarTitle: TranslationBase.of(context).shoppingCart, appBarTitle: TranslationBase.of(context).shoppingCart,
isShowAppBar: true, isShowAppBar: true,
@ -245,6 +250,15 @@ class _CartOrderPageState extends State<CartOrderPage> {
), ),
); );
} }
void getData()async {
await Provider.of<OrderPreviewViewModel>(context, listen: false).getShoppingCart();
setState(() {
isLoading= false;
});
}
} }
class OrderBottomWidget extends StatefulWidget { class OrderBottomWidget extends StatefulWidget {

File diff suppressed because it is too large Load Diff

@ -57,6 +57,7 @@ class _PharmacyPageState extends State<PharmacyPage> {
onModelReady: (model) async { onModelReady: (model) async {
await model.getSavedLanguage(); await model.getSavedLanguage();
await model.getBannerList(); await model.getBannerList();
if(model.isLogin)
await orderPreviewViewModel.getShoppingCart(); await orderPreviewViewModel.getShoppingCart();
}, },
allowAny: true, allowAny: true,

@ -58,6 +58,7 @@ class AppScaffold extends StatelessWidget {
final List<Widget> appBarIcons; final List<Widget> appBarIcons;
final List<ImagesInfo> imagesInfo; final List<ImagesInfo> imagesInfo;
final bool isHelp; final bool isHelp;
final bool isLocalLoader;
AuthenticatedUserObject authenticatedUserObject = AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>(); locator<AuthenticatedUserObject>();
@ -89,7 +90,7 @@ class AppScaffold extends StatelessWidget {
this.showHomeAppBarIcon = true, this.showHomeAppBarIcon = true,
this.imagesInfo, this.imagesInfo,
appBar, appBar,
this.customAppBar}); this.customAppBar, this.isLocalLoader= false});
AppScaffold setOnAppBarCartClick(VoidCallback onClick) { AppScaffold setOnAppBarCartClick(VoidCallback onClick) {
_onCartClick = onClick; _onCartClick = onClick;
@ -146,7 +147,17 @@ class AppScaffold extends StatelessWidget {
buildBodyWidget(context) { buildBodyWidget(context) {
return Stack( return Stack(
children: <Widget>[body, isHelp == true ? RobotIcon() : Container()]); children: <Widget>[
Center(
child:isLoading? CircularProgressIndicator(
backgroundColor: Colors.white,
valueColor: AlwaysStoppedAnimation<Color>(
Colors.grey[500],
),
):body),
isHelp == true ? RobotIcon() : Container()]);
} }
} }

@ -10,8 +10,9 @@ class NetworkBaseView extends StatefulWidget {
final BaseViewModel baseViewModel; final BaseViewModel baseViewModel;
final Widget child; final Widget child;
final bool isLocalLoader; final bool isLocalLoader;
final bool isLoading;
NetworkBaseView({Key key, this.baseViewModel, this.child, this.isLocalLoader = false}); NetworkBaseView({Key key, this.baseViewModel, this.child, this.isLocalLoader = false, this.isLoading});
@override @override
_NetworkBaseViewState createState() => _NetworkBaseViewState(); _NetworkBaseViewState createState() => _NetworkBaseViewState();
@ -31,7 +32,14 @@ class _NetworkBaseViewState extends State<NetworkBaseView>{
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
child: buildBaseViewWidget(), child: (widget.baseViewModel!=null ) ?buildBaseViewWidget():Center(
child:widget.isLoading? CircularProgressIndicator(
backgroundColor: Colors.white,
valueColor: AlwaysStoppedAnimation<Color>(
Colors.grey[500],
),
):widget.child,
) ,
); );
} }

Loading…
Cancel
Save