Merge branch 'haroon-new-design' into 'development_new_design_2.0'

Pharmacy fixes

See merge request Cloud_Solution/diplomatic-quarter!517
merge-requests/520/merge
haroon amjad 4 years ago
commit a7dccb76bf

@ -704,6 +704,7 @@ class BaseAppClient {
body['PatientTypeID'] = body.containsKey('PatientTypeID') body['PatientTypeID'] = body.containsKey('PatientTypeID')
? body['PatientTypeID'] != null ? body['PatientTypeID'] != null
? body['PatientTypeID'] ? body['PatientTypeID']
: user['PatientType'] != null : user['PatientType'] != null
? user['PatientType'] ? user['PatientType']
@ -738,7 +739,7 @@ class BaseAppClient {
print("statusCode :$statusCode"); print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) { if (statusCode < 200 || statusCode >= 400 || json == null) {
var parsed = json.decode(utf8.decode(response.bodyBytes)); var parsed = json.decode(utf8.decode(response.bodyBytes));
onFailure(parsed['error']['ErrorEndUserMsg'] ?? 'Error While Fetching data', statusCode); onFailure(parsed['error']['ErrorEndUserMsgN'] ?? 'Error While Fetching data', statusCode);
} else { } else {
// var parsed = json.decode(response.body.toString()); // var parsed = json.decode(response.body.toString());
var parsed = json.decode(utf8.decode(response.bodyBytes)); var parsed = json.decode(utf8.decode(response.bodyBytes));

@ -7,7 +7,6 @@ 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/base_service.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart';
import 'package:flutter/cupertino.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
class OrderPreviewService extends BaseService { class OrderPreviewService extends BaseService {
@ -25,8 +24,7 @@ class OrderPreviewService extends BaseService {
Map<String, String> queryParams = {'fields': 'addresses'}; Map<String, String> queryParams = {'fields': 'addresses'};
hasError = false; hasError = false;
try { try {
await baseAppClient.getPharmacy("$GET_CUSTOMERS_ADDRESSES$customerId", await baseAppClient.getPharmacy("$GET_CUSTOMERS_ADDRESSES$customerId", onSuccess: (dynamic response, int statusCode) {
onSuccess: (dynamic response, int statusCode) {
addresses.clear(); addresses.clear();
response['customers'][0]['addresses'].forEach((item) { response['customers'][0]['addresses'].forEach((item) {
addresses.add(Addresses.fromJson(item)); addresses.add(Addresses.fromJson(item));
@ -46,9 +44,7 @@ class OrderPreviewService extends BaseService {
dynamic localRes; dynamic localRes;
hasError = false; hasError = false;
try { try {
await baseAppClient await baseAppClient.getPharmacy("$GET_SHIPPING_OPTIONS$customerId/${selectedAddress.id}", onSuccess: (dynamic response, int statusCode) {
.getPharmacy("$GET_SHIPPING_OPTIONS$customerId/${selectedAddress.id}",
onSuccess: (dynamic response, int statusCode) {
localRes = response['shipping_option'][0]; localRes = response['shipping_option'][0];
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
@ -68,8 +64,7 @@ class OrderPreviewService extends BaseService {
dynamic localRes; dynamic localRes;
hasError = false; hasError = false;
try { try {
await baseAppClient.getPharmacy("$GET_SHOPPING_CART$customerId", await baseAppClient.getPharmacy("$GET_SHOPPING_CART$customerId", onSuccess: (dynamic response, int statusCode) {
onSuccess: (dynamic response, int statusCode) {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
@ -81,8 +76,7 @@ class OrderPreviewService extends BaseService {
return Future.value(localRes); return Future.value(localRes);
} }
Future<Map> changeProductQuantity( Future<Map> changeProductQuantity(String productId, ShoppingCart product) async {
String productId, ShoppingCart product) async {
hasError = false; hasError = false;
super.error = ""; super.error = "";
dynamic localRes; dynamic localRes;
@ -96,8 +90,7 @@ 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", await baseAppClient.pharmacyPost("$GET_SHOPPING_CART$productId", isExternal: false, 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;
@ -114,8 +107,7 @@ class OrderPreviewService extends BaseService {
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
await baseAppClient.pharmacyPost("$DELETE_SHOPPING_CART$productId", await baseAppClient.pharmacyPost("$DELETE_SHOPPING_CART$productId", isExternal: false, 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;
@ -132,9 +124,7 @@ class OrderPreviewService extends BaseService {
super.error = ""; super.error = "";
dynamic localRes; dynamic localRes;
await baseAppClient await baseAppClient.getPharmacy("$DELETE_SHOPPING_CART_ALL$customerId/ShoppingCart", onSuccess: (response, statusCode) async {
.getPharmacy("$DELETE_SHOPPING_CART_ALL$customerId/ShoppingCart",
onSuccess: (response, statusCode) async {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
@ -152,8 +142,7 @@ class OrderPreviewService extends BaseService {
body['IdentificationNo'] = identificationNo; body['IdentificationNo'] = identificationNo;
try { try {
await baseAppClient.post(GET_LACUM_ACCOUNT_INFORMATION, await baseAppClient.post(GET_LACUM_ACCOUNT_INFORMATION, onSuccess: (response, statusCode) async {
onSuccess: (response, statusCode) async {
lacumInformation = LacumAccountInformation.fromJson(response); lacumInformation = LacumAccountInformation.fromJson(response);
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
@ -173,8 +162,7 @@ class OrderPreviewService extends BaseService {
body['AccountNumber'] = "${lacumInformation.yahalaAccountNo}"; body['AccountNumber'] = "${lacumInformation.yahalaAccountNo}";
try { try {
await baseAppClient.post(GET_LACUM_GROUP_INFORMATION, await baseAppClient.post(GET_LACUM_GROUP_INFORMATION, onSuccess: (response, statusCode) async {
onSuccess: (response, statusCode) async {
lacumGroupInformation = LacumAccountInformation.fromJson(response); lacumGroupInformation = LacumAccountInformation.fromJson(response);
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
@ -185,31 +173,29 @@ class OrderPreviewService extends BaseService {
} }
} }
Future makeOrder(PaymentCheckoutData paymentCheckoutData, Future makeOrder(PaymentCheckoutData paymentCheckoutData, List<ShoppingCart> shoppingCarts) async {
List<ShoppingCart> shoppingCarts) async {
paymentCheckoutData.address.isChecked = true; paymentCheckoutData.address.isChecked = true;
hasError = false; hasError = false;
super.error = ""; super.error = "";
var languageID = var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'en');
await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'en');
var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID); var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
Map<String, dynamic> orderBody = Map(); Map<String, dynamic> orderBody = Map();
orderBody['rx_attachments'] = ""; orderBody['rx_attachments'] = "";
orderBody['customer_language_id'] = languageID == 'ar' ? 1 : 2; orderBody['customer_language_id'] = languageID == 'ar' ? 2 : 1;
orderBody['billing_address'] = paymentCheckoutData.address; orderBody['billing_address'] = paymentCheckoutData.address;
orderBody['pick_up_in_store'] = false; orderBody['pick_up_in_store'] = false;
orderBody['payment_method_system_name'] = "Payments.PayFort"; orderBody['payment_method_system_name'] = "Payments.PayFort";
orderBody['shipping_method'] = languageID == 'ar'
? paymentCheckoutData.shippingOption.namen if (paymentCheckoutData.shippingOption.shippingRateComputationMethodSystemName == "Shipping.Aramex")
: paymentCheckoutData.shippingOption.name; orderBody['shipping_method'] = "Aramex Domestic";
orderBody['shipping_rate_computation_method_system_name'] = else
paymentCheckoutData orderBody['shipping_method'] = "Fixed Price";
.shippingOption.shippingRateComputationMethodSystemName;
orderBody['shipping_rate_computation_method_system_name'] = paymentCheckoutData.shippingOption.shippingRateComputationMethodSystemName;
orderBody['customer_id'] = int.parse(customerId); orderBody['customer_id'] = int.parse(customerId);
orderBody['custom_values_xml'] = orderBody['custom_values_xml'] = "PaymentOption:${getPaymentOptionName(paymentCheckoutData.paymentOption)}";
"PaymentOption:${getPaymentOptionName(paymentCheckoutData.paymentOption)}";
orderBody['shippingOption'] = paymentCheckoutData.shippingOption; orderBody['shippingOption'] = paymentCheckoutData.shippingOption;
orderBody['shipping_address'] = paymentCheckoutData.address; orderBody['shipping_address'] = paymentCheckoutData.address;
orderBody['lakum_amount'] = paymentCheckoutData.usedLakumPoints; orderBody['lakum_amount'] = paymentCheckoutData.usedLakumPoints;
@ -227,9 +213,7 @@ class OrderPreviewService extends BaseService {
body['order'] = orderBody; body['order'] = orderBody;
try { try {
await baseAppClient.pharmacyPost(ORDER_SHOPPING_CART, await baseAppClient.pharmacyPost(ORDER_SHOPPING_CART, isExternal: false, isAllowAny: true, 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));
@ -271,8 +255,7 @@ class OrderPreviewService extends BaseService {
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'];

@ -5,7 +5,6 @@ import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.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/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/alert_dialog.dart';
import 'package:fit_kit/fit_kit.dart'; import 'package:fit_kit/fit_kit.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
@ -85,7 +84,7 @@ class _syncHealthDataButtonState extends State<syncHealthDataButton> {
type, type,
dateFrom: firstDayOfTheYear, dateFrom: firstDayOfTheYear,
dateTo: DateTime.now(), dateTo: DateTime.now(),
limit: 1000500, limit: 1000,
); );
if (type == DataType.DISTANCE) { if (type == DataType.DISTANCE) {
@ -241,30 +240,33 @@ class _syncHealthDataButtonState extends State<syncHealthDataButton> {
new healthData(MedCategoryID: 7, MedSubCategoryID: 0, MachineDate: DateUtil.convertDateToString(date), Value: totalDistance, TransactionsListID: TransactionsListID++, Notes: "")); new healthData(MedCategoryID: 7, MedSubCategoryID: 0, MachineDate: DateUtil.convertDateToString(date), Value: totalDistance, TransactionsListID: TransactionsListID++, Notes: ""));
Med_InsertTransactionsInputsList2.add( Med_InsertTransactionsInputsList2.add(
new healthData(MedCategoryID: 3, MedSubCategoryID: 0, MachineDate: DateUtil.convertDateToString(date), Value: avgTotalHeartRate, TransactionsListID: TransactionsListID++, Notes: "")); new healthData(MedCategoryID: 3, MedSubCategoryID: 0, MachineDate: DateUtil.convertDateToString(date), Value: avgTotalHeartRate, TransactionsListID: TransactionsListID++, Notes: ""));
// Med_InsertTransactionsInputsList2.add(new healthData(MedCategoryID: 8 , MedSubCategoryID: 0 , MachineDate: DateUtil.convertDateToStringWithBackSlash(date) , Value: totalCalories , TransactionsListID: TransactionsListID++ , Notes: ""));
}); });
addInsertTransactionsInputsList();
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
AlertDialogBox dialog = new AlertDialogBox( // AlertDialogBox dialog = new AlertDialogBox(
context: context, // context: context,
confirmMessage: TranslationBase.of(context).alreadySynced, // confirmMessage: TranslationBase.of(context).alreadySynced,
okText: TranslationBase.of(context).ok, // okText: TranslationBase.of(context).ok,
okFunction: () => { // okFunction: () => {
AlertDialogBox.closeAlertDialog(context), // AlertDialogBox.closeAlertDialog(context),
}, // },
); // );
dialog.showAlertDialog(context); // dialog.showAlertDialog(context);
} }
addInsertTransactionsInputsList() { addInsertTransactionsInputsList() {
if (Med_InsertTransactionsInputsList2.isNotEmpty) { if (Med_InsertTransactionsInputsList2.isNotEmpty) {
GifLoaderDialogUtils.showMyDialog(context);
SmartWatchIntegrationService service = new SmartWatchIntegrationService(); SmartWatchIntegrationService service = new SmartWatchIntegrationService();
service.insertPatientHealthData(Med_InsertTransactionsInputsList2, context).then((res) { service.insertPatientHealthData(Med_InsertTransactionsInputsList2, context).then((res) {
GifLoaderDialogUtils.hideDialog(context);
print(res); print(res);
}).catchError((err) { }).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
print(err); print(err);
}); });
} else { } else {

@ -192,6 +192,8 @@ class PaymentBottomWidget extends StatelessWidget {
AppToast.showErrorToast( AppToast.showErrorToast(
message: message:
"Transaction Failed!\Your transaction is field to some reason please try again or contact to the administration"); "Transaction Failed!\Your transaction is field to some reason please try again or contact to the administration");
Navigator.pop(context);
Navigator.pop(context);
} }
} }
} }

@ -114,7 +114,7 @@ class _OrderPageState extends State<OrderPage>
} }
return Container( return Container(
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
child: model.orders.length != 0 child: deliveredOrderList.length != 0
? SingleChildScrollView( ? SingleChildScrollView(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
@ -381,7 +381,7 @@ class _OrderPageState extends State<OrderPage>
} }
return Container( return Container(
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
child: model.orders.length != 0 child: processingOrderList.length != 0
? SingleChildScrollView( ? SingleChildScrollView(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
@ -823,7 +823,7 @@ class _OrderPageState extends State<OrderPage>
} }
} }
return Container( return Container(
child: model.orders.length != 0 child: pendingOrderList.length != 0
? SingleChildScrollView( ? SingleChildScrollView(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
@ -1092,7 +1092,7 @@ class _OrderPageState extends State<OrderPage>
} }
} }
return Container( return Container(
child: model.orders.length != 0 child: cancelledOrderList.length != 0
? SingleChildScrollView( ? SingleChildScrollView(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[

@ -72,8 +72,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
onModelReady: (model) { onModelReady: (model) {
model.getOrderDetails(widget.orderModel.id).then((value) { model.getOrderDetails(widget.orderModel.id).then((value) {
setState(() { setState(() {
isActiveDelivery = (value.orderStatusId == 995 && isActiveDelivery = (value.orderStatusId == 995 && (value.driverID != null && value.driverID.isNotEmpty));
(value.driverID != null && value.driverID.isNotEmpty));
}); });
}); });
}, },
@ -111,39 +110,35 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
), ),
), ),
Container( Container(
margin: EdgeInsets.only(top: 15.0, right: 10.0), margin: EdgeInsets.only(top: 15.0, right: 10.0),
padding: EdgeInsets.only(left: 11.0, right: 11.0), padding: EdgeInsets.only(left: 11.0, right: 11.0),
decoration: BoxDecoration( decoration: BoxDecoration(
border: Border.all( border: Border.all(
color: getStatusBackgroundColor(),
style: BorderStyle.solid,
width: 5.0,
),
color: getStatusBackgroundColor(), color: getStatusBackgroundColor(),
style: BorderStyle.solid, borderRadius: BorderRadius.circular(30.0)),
width: 5.0, child: model.orderListModel[0].orderStatusId == 30 || model.orderListModel[0].orderStatusId == 997 || model.orderListModel[0].orderStatusId == 994
),
color: getStatusBackgroundColor(),
borderRadius: BorderRadius.circular(30.0)),
child: model.orderListModel[0].orderStatusId == 30 ||
model.orderListModel[0].orderStatusId == 997 ||
model.orderListModel[0].orderStatusId == 994
// deliveredOrderList[index].orderStatusId == 30 // deliveredOrderList[index].orderStatusId == 30
? Text( ? Text(
// deliveredOrderList[0].orderStatus.toString().substring(12), // deliveredOrderList[0].orderStatus.toString().substring(12),
TranslationBase.of(context).deliveredOrder, TranslationBase.of(context).deliveredOrder,
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 15.0, fontSize: 15.0,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
) )
: Text( : Text(
languageID == "ar" languageID == "ar" ? model.orderListModel[0].orderStatusn.toString() : model.orderListModel[0].orderStatus.toString(),
? model.orderListModel[0].orderStatusn.toString() style: TextStyle(
: model.orderListModel[0].orderStatus.toString(), color: Colors.white,
style: TextStyle( fontSize: 13.0,
color: Colors.white, fontWeight: FontWeight.bold,
fontSize: 13.0, ),
fontWeight: FontWeight.bold, )
),
)
// Text( // Text(
// languageID == "ar" // languageID == "ar"
// ? model.orderListModel[0].orderStatusn // ? model.orderListModel[0].orderStatusn
@ -155,64 +150,50 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
// fontWeight: FontWeight.bold, // fontWeight: FontWeight.bold,
// ), // ),
// ), // ),
), ),
], ],
), ),
Container( Container(
margin: EdgeInsets.only(left: 10.0, top: 13.0), margin: EdgeInsets.only(left: 10.0, top: 13.0),
child: Row( child: Row(crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
crossAxisAlignment: CrossAxisAlignment.start, Text(
children: <Widget>[ "${model.orderListModel[0].shippingAddress.firstName} ${model.orderListModel[0].shippingAddress.lastName}",
Text( style: TextStyle(
"${model.orderListModel[0].shippingAddress.firstName} ${model.orderListModel[0].shippingAddress.lastName}", fontSize: 15.0,
style: TextStyle( fontWeight: FontWeight.bold,
fontSize: 15.0, ),
fontWeight: FontWeight.bold, ),
), ]),
),
]),
), ),
Container( Container(
margin: EdgeInsets.fromLTRB(10.0, 5.0, 1.0, 5.0), margin: EdgeInsets.fromLTRB(10.0, 5.0, 1.0, 5.0),
child: Row( child: Row(crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
crossAxisAlignment: CrossAxisAlignment.start, Text(
children: <Widget>[ model.orderListModel[0].shippingAddress.address1.toString(),
Text( style: TextStyle(
model.orderListModel[0].shippingAddress.address1 fontSize: 10.0,
.toString() fontWeight: FontWeight.bold,
, color: Colors.grey,
style: TextStyle( ),
fontSize: 10.0, ),
fontWeight: FontWeight.bold, ]),
color: Colors.grey,
),
),
]),
), ),
Container( Container(
margin: EdgeInsets.fromLTRB(10.0, 5.0, 1.0, 5.0), margin: EdgeInsets.fromLTRB(10.0, 5.0, 1.0, 5.0),
child: Row( child: Row(crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
crossAxisAlignment: CrossAxisAlignment.start, Text(
children: <Widget>[ model.orderListModel[0].shippingAddress.address2.toString() +
Text( ' ' +
model.orderListModel[0].shippingAddress.address2 model.orderListModel[0].shippingAddress.country.toString() +
.toString() ' ' +
+ model.orderListModel[0].shippingAddress.zipPostalCode.toString(),
' ' + style: TextStyle(
model.orderListModel[0].shippingAddress fontSize: 10.0,
.country fontWeight: FontWeight.bold,
.toString() + color: Colors.grey,
' ' + ),
model.orderListModel[0].shippingAddress ),
.zipPostalCode ]),
.toString(),
style: TextStyle(
fontSize: 10.0,
fontWeight: FontWeight.bold,
color: Colors.grey,
),
),
]),
), ),
Container( Container(
child: Row( child: Row(
@ -227,9 +208,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
Container( Container(
margin: EdgeInsets.only(top: 5.0, bottom: 5.0), margin: EdgeInsets.only(top: 5.0, bottom: 5.0),
child: Text( child: Text(
model.orderListModel[0].shippingAddress model.orderListModel[0].shippingAddress.phoneNumber.toString(),
.phoneNumber
.toString(),
style: TextStyle( style: TextStyle(
fontSize: 15.0, fontSize: 15.0,
), ),
@ -267,9 +246,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
), ),
Container( Container(
child: flutterImage.Image.asset( child: flutterImage.Image.asset(
model.orderListModel[0] model.orderListModel[0].shippingRateComputationMethodSystemName != "Shipping.Aramex"
.shippingRateComputationMethodSystemName !=
"Shipping.Aramex"
? "assets/images/pharmacy_module/payment/LogoParmacyGreen.png" ? "assets/images/pharmacy_module/payment/LogoParmacyGreen.png"
: "assets/images/pharmacy_module/payment/aramex_shipping_logo.png", : "assets/images/pharmacy_module/payment/aramex_shipping_logo.png",
fit: BoxFit.contain, fit: BoxFit.contain,
@ -320,8 +297,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
Container( Container(
margin: EdgeInsets.only(bottom: 10.0, top: 10.0), margin: EdgeInsets.only(bottom: 10.0, top: 10.0),
child: Text( child: Text(
model.orderListModel[0].paymentName model.orderListModel[0].paymentName.toString(),
.toString(),
style: TextStyle( style: TextStyle(
fontSize: 13.0, fontSize: 13.0,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
@ -368,9 +344,9 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
totalPrice: "${(model.orderListModel[0].orderItems[index].product.price * model.orderListModel[0].orderItems[index].quantity).toStringAsFixed(2)}", totalPrice: "${(model.orderListModel[0].orderItems[index].product.price * model.orderListModel[0].orderItems[index].quantity).toStringAsFixed(2)}",
qyt: model.orderListModel[0].orderItems[index].quantity.toString(), qyt: model.orderListModel[0].orderItems[index].quantity.toString(),
isOrderDetails: true, isOrderDetails: true,
imgs: model.orderListModel[0].orderItems[index].product.images != null && imgs: model.orderListModel[0].orderItems[index].product.images != null && model.orderListModel[0].orderItems[index].product.images.length != 0
model.orderListModel[0].orderItems[index].product.images.length != 0 ? model.orderListModel[0].orderItems[index].product.images[0].src.toString()
? model.orderListModel[0].orderItems[index].product.images[0].src.toString() : null, : null,
status: model.orderListModel[0].orderStatusId, status: model.orderListModel[0].orderStatusId,
product: model.orderListModel[0].orderItems[index].product, product: model.orderListModel[0].orderItems[index].product,
), ),
@ -421,8 +397,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
), ),
), ),
Text( Text(
model.orderListModel[0].orderSubtotalExclTax model.orderListModel[0].orderSubtotalExclTax.toString(),
.toString(),
style: TextStyle( style: TextStyle(
fontSize: 13.0, fontSize: 13.0,
), ),
@ -460,8 +435,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
), ),
), ),
Text( Text(
model.orderListModel[0].orderShippingExclTax model.orderListModel[0].orderShippingExclTax.toString(),
.toString(),
style: TextStyle( style: TextStyle(
fontSize: 13.0, fontSize: 13.0,
), ),
@ -555,23 +529,16 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
print(model.orderListModel.toString()); print(model.orderListModel.toString());
print("calc = ${5.9 * 3}"); print("calc = ${5.9 * 3}");
// TODO MOSA // TODO MOSA
openPayment( openPayment(model.orderListModel[0], model.user);
model.orderListModel[0], model.user);
}, },
child: Container( child: Container(
// margin: EdgeInsets.only(top: 20.0), padding: EdgeInsets.only(left: 10.0, right: 10.0),
height: 50.0, height: 50.0,
color: Colors.transparent, color: Colors.transparent,
child: Container( child: Container(
padding: EdgeInsets.only( padding: EdgeInsets.only(left: 130.0, right: 130.0),
left: 130.0, right: 130.0), decoration:
decoration: BoxDecoration( BoxDecoration(border: Border.all(color: Colors.green, style: BorderStyle.solid, width: 4.0), color: Colors.green, borderRadius: BorderRadius.circular(5.0)),
border: Border.all(
color: Colors.green,
style: BorderStyle.solid,
width: 4.0),
color: Colors.green,
borderRadius: BorderRadius.circular(5.0)),
child: Center( child: Center(
child: Text( child: Text(
TranslationBase.of(context).payOnline, TranslationBase.of(context).payOnline,
@ -589,8 +556,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
isCancel isCancel
? InkWell( ? InkWell(
onTap: () { onTap: () {
presentConfirmDialog( presentConfirmDialog(model, widget.orderModel.id);
model, widget.orderModel.id);
// model.orderListModel[0].id//(widget.orderModel.id)); // model.orderListModel[0].id//(widget.orderModel.id));
// //
}, },
@ -601,10 +567,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
child: Center( child: Center(
child: Text( child: Text(
TranslationBase.of(context).cancelOrder, TranslationBase.of(context).cancelOrder,
style: TextStyle( style: TextStyle(color: Colors.red[900], fontWeight: FontWeight.bold, decoration: TextDecoration.underline),
color: Colors.red[900],
fontWeight: FontWeight.bold,
decoration: TextDecoration.underline),
), ),
), ),
), ),
@ -623,12 +586,8 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
color: Colors.transparent, color: Colors.transparent,
child: Center( child: Center(
child: Text( child: Text(
TranslationBase.of(context) TranslationBase.of(context).trackDeliveryDriver,
.trackDeliveryDriver, style: TextStyle(color: Colors.green[900], fontWeight: FontWeight.normal, decoration: TextDecoration.none),
style: TextStyle(
color: Colors.green[900],
fontWeight: FontWeight.normal,
decoration: TextDecoration.none),
), ),
), ),
), ),
@ -646,20 +605,13 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
Color getStatusBackgroundColor() { Color getStatusBackgroundColor() {
print(widget.orderModel.orderStatusId); print(widget.orderModel.orderStatusId);
// if(orderStatus == 'delivered') // if(orderStatus == 'delivered')
if (widget.orderModel.orderStatusId == 30 || if (widget.orderModel.orderStatusId == 30 || widget.orderModel.orderStatusId == 997 || widget.orderModel.orderStatusId == 994)
widget.orderModel.orderStatusId == 997 ||
widget.orderModel.orderStatusId == 994)
return Colors.blue[700]; return Colors.blue[700];
else if (widget.orderModel.orderStatusId == 20 || else if (widget.orderModel.orderStatusId == 20 || widget.orderModel.orderStatusId == 995 || widget.orderModel.orderStatusId == 998 || widget.orderModel.orderStatusId == 999)
widget.orderModel.orderStatusId == 995 ||
widget.orderModel.orderStatusId == 998 ||
widget.orderModel.orderStatusId == 999)
return Colors.green; return Colors.green;
else if (widget.orderModel.orderStatusId == 10) else if (widget.orderModel.orderStatusId == 10)
return Colors.orange[300]; return Colors.orange[300];
else if (widget.orderModel.orderStatusId == 40 || else if (widget.orderModel.orderStatusId == 40 || widget.orderModel.orderStatusId == 996 || widget.orderModel.orderStatusId == 200) return Colors.red[900];
widget.orderModel.orderStatusId == 996 ||
widget.orderModel.orderStatusId == 200) return Colors.red[900];
} }
getCancelOrder(dataIsCancel) { getCancelOrder(dataIsCancel) {
@ -693,8 +645,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
confirmMessage: TranslationBase.of(context).confirmCancellation, confirmMessage: TranslationBase.of(context).confirmCancellation,
okText: TranslationBase.of(context).confirm, okText: TranslationBase.of(context).confirm,
cancelText: TranslationBase.of(context).cancel_nocaps, cancelText: TranslationBase.of(context).cancel_nocaps,
okFunction: () => okFunction: () => cancelFunction.getCanceledOrder(id, context).then((value) {
cancelFunction.getCanceledOrder(id, context).then((value) {
print(":D"); print(":D");
print(value); print(value);
// Navigator.pop(context); // Navigator.pop(context);
@ -730,20 +681,10 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
OrderDetailModel order, OrderDetailModel order,
AuthenticatedUser authenticatedUser, AuthenticatedUser authenticatedUser,
) { ) {
browser = new MyInAppBrowser( browser = new MyInAppBrowser(onExitCallback: onBrowserExit, onLoadStartCallback: onBrowserLoadStart);
onExitCallback: onBrowserExit, onLoadStartCallback: onBrowserLoadStart);
browser.openPharmacyPaymentBrowser( browser.openPharmacyPaymentBrowser(order, order.orderTotal, 'ePharmacy Order', order.id, order.billingAddress.email, order.customValuesXml,
order, "${authenticatedUser.firstName} ${authenticatedUser.middleName} ${authenticatedUser.lastName}", authenticatedUser.patientID, authenticatedUser, browser);
order.orderTotal,
'ePharmacy Order',
order.id,
order.billingAddress.email,
order.customValuesXml,
"${authenticatedUser.firstName} ${authenticatedUser.middleName} ${authenticatedUser.lastName}",
authenticatedUser.patientID,
authenticatedUser,
browser);
} }
onBrowserLoadStart(String url) { onBrowserLoadStart(String url) {
@ -770,14 +711,11 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) { onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!"); print("onBrowserExit Called!!!!");
if (isPaymentMade) { if (isPaymentMade) {
AppToast.showSuccessToast( AppToast.showSuccessToast(message: "شكراً\nPayment status for your order is Paid");
message: "شكراً\nPayment status for your order is Paid");
Navigator.pop(context); Navigator.pop(context);
Navigator.pop(context); Navigator.pop(context);
} else { } else {
AppToast.showErrorToast( AppToast.showErrorToast(message: "Transaction Failed!\Your transaction is field to some reason please try again or contact to the administration");
message:
"Transaction Failed!\Your transaction is field to some reason please try again or contact to the administration");
} }
} }
} }

@ -23,17 +23,14 @@ class PharmacyAddressesPage extends StatefulWidget {
final bool isUpdate; final bool isUpdate;
const PharmacyAddressesPage( const PharmacyAddressesPage({Key key, this.orderPreviewViewModel, this.isUpdate = false, this.changeMainState}) : super(key: key);
{Key key, this.orderPreviewViewModel, this.isUpdate = false, this.changeMainState})
: super(key: key);
@override @override
_PharmacyAddressesState createState() => _PharmacyAddressesState(); _PharmacyAddressesState createState() => _PharmacyAddressesState();
} }
class _PharmacyAddressesState extends State<PharmacyAddressesPage> { class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
void navigateToAddressPage( void navigateToAddressPage(BuildContext ctx, PharmacyAddressesViewModel model, AddressInfo address) {
BuildContext ctx, PharmacyAddressesViewModel model, AddressInfo address) {
Navigator.push( Navigator.push(
ctx, ctx,
FadePage( FadePage(
@ -49,7 +46,7 @@ class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
return BaseView<PharmacyAddressesViewModel>( return BaseView<PharmacyAddressesViewModel>(
onModelReady: (model) => model.getAddressesList(), onModelReady: (model) => model.getAddressesList(),
builder: (_, model, wi) => AppScaffold( builder: (_, model, wi) => AppScaffold(
appBarTitle: widget.isUpdate?TranslationBase.of(context).changeAddress:"Add Address", appBarTitle: widget.isUpdate ? TranslationBase.of(context).changeAddress : TranslationBase.of(context).addAddress,
isShowAppBar: true, isShowAppBar: true,
isPharmacy: true, isPharmacy: true,
baseViewModel: model, baseViewModel: model,
@ -124,20 +121,15 @@ class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
vPadding: 8, vPadding: 8,
handler: () async { handler: () async {
//TODO Elham* //TODO Elham*
widget.orderPreviewViewModel.paymentCheckoutData widget.orderPreviewViewModel.paymentCheckoutData.address = Addresses.fromJson(model.addresses[model.selectedAddressIndex].toJson());
.address =
Addresses.fromJson(
model.addresses[model.selectedAddressIndex].toJson());
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
await widget.orderPreviewViewModel.getInformationsByAddress(widget.orderPreviewViewModel.user.patientIdentificationNo); await widget.orderPreviewViewModel.getInformationsByAddress(widget.orderPreviewViewModel.user.patientIdentificationNo);
await widget.orderPreviewViewModel.getShoppingCart(); await widget.orderPreviewViewModel.getShoppingCart();
// widget.changeMainState(); // widget.changeMainState();
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
model.saveSelectedAddressLocally( model.saveSelectedAddressLocally(model.addresses[model.selectedAddressIndex]);
model.addresses[model.selectedAddressIndex]);
_navigateToPaymentOption(model); _navigateToPaymentOption(model);
}, },
), ),
@ -150,7 +142,7 @@ class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
} }
_navigateToPaymentOption(model) { _navigateToPaymentOption(model) {
if(widget.isUpdate) { if (widget.isUpdate) {
print("sfsf"); print("sfsf");
widget.orderPreviewViewModel.paymentCheckoutData.address = Addresses.fromJson(model.addresses[model.selectedAddressIndex].toJson()); widget.orderPreviewViewModel.paymentCheckoutData.address = Addresses.fromJson(model.addresses[model.selectedAddressIndex].toJson());
@ -168,8 +160,7 @@ class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
setState(() { setState(() {
if (result != null) { if (result != null) {
var paymentOption = result; var paymentOption = result;
widget.orderPreviewViewModel.paymentCheckoutData.paymentOption = widget.orderPreviewViewModel.paymentCheckoutData.paymentOption = paymentOption;
paymentOption;
} }
// widget.changeMainState(); // widget.changeMainState();
}) })
@ -184,8 +175,7 @@ class AddressItemWidget extends StatelessWidget {
final bool isSelected; final bool isSelected;
final Function(AddressInfo) onTabEditAddress; final Function(AddressInfo) onTabEditAddress;
AddressItemWidget(this.model, this.address, this.selectAddress, AddressItemWidget(this.model, this.address, this.selectAddress, this.isSelected, this.onTabEditAddress);
this.isSelected, this.onTabEditAddress);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -211,18 +201,13 @@ class AddressItemWidget extends StatelessWidget {
decoration: new BoxDecoration( decoration: new BoxDecoration(
color: !isSelected ? Colors.white : Colors.green, color: !isSelected ? Colors.white : Colors.green,
shape: BoxShape.circle, shape: BoxShape.circle,
border: Border.all( border: Border.all(color: Colors.grey, style: BorderStyle.solid, width: 1.0),
color: Colors.grey,
style: BorderStyle.solid,
width: 1.0),
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.all(0.0), padding: const EdgeInsets.all(0.0),
child: Icon( child: Icon(
Icons.check, Icons.check,
color: isSelected color: isSelected ? Colors.white : Colors.transparent,
? Colors.white
: Colors.transparent,
size: 25, size: 25,
), ),
), ),
@ -235,8 +220,7 @@ class AddressItemWidget extends StatelessWidget {
Expanded( Expanded(
child: Container( child: Container(
child: Container( child: Container(
margin: margin: EdgeInsets.symmetric(vertical: 12, horizontal: 12),
EdgeInsets.symmetric(vertical: 12, horizontal: 12),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -299,8 +283,7 @@ class AddressItemWidget extends StatelessWidget {
), ),
), ),
Padding( Padding(
padding: padding: const EdgeInsets.symmetric(horizontal: 8),
const EdgeInsets.symmetric(horizontal: 8),
child: SizedBox( child: SizedBox(
child: Container( child: Container(
width: 1, width: 1,
@ -318,21 +301,13 @@ class AddressItemWidget extends StatelessWidget {
ConfirmDialog dialog = new ConfirmDialog( ConfirmDialog dialog = new ConfirmDialog(
context: context, context: context,
title: "Are you sure want to delete", title: "Are you sure want to delete",
confirmMessage: confirmMessage: "${address.address1} ${address.address2}",
"${address.address1} ${address.address2}", okText: TranslationBase.of(context).delete,
okText: cancelText: TranslationBase.of(context).cancel_nocaps,
TranslationBase.of(context).delete,
cancelText: TranslationBase.of(context)
.cancel_nocaps,
okFunction: () => { okFunction: () => {
model model.deleteAddresses(address).then((_) {
.deleteAddresses(address) ConfirmDialog.closeAlertDialog(context);
.then((_) { AppToast.showErrorToast(message: "Address has been deleted");
ConfirmDialog.closeAlertDialog(
context);
AppToast.showErrorToast(
message:
"Address has been deleted");
}) })
}, },
cancelFunction: () => {}); cancelFunction: () => {});

Loading…
Cancel
Save