Merge branch 'development' of https://gitlab.com/Cloud_Solution/diplomatic-quarter into sultan-patientapp

merge-requests/285/head
Sultan Khan 5 years ago
commit 35c940a209

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CLIENT_ID</key>
<string>864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r.apps.googleusercontent.com</string>
<key>REVERSED_CLIENT_ID</key>
<string>com.googleusercontent.apps.864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r</string>
<key>API_KEY</key>
<string>AIzaSyA_6ayGCk4fly7o7eTVBrj9kuHBYHMAOfs</string>
<key>GCM_SENDER_ID</key>
<string>864393916058</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.cloud.diplomaticquarterapp</string>
<key>PROJECT_ID</key>
<string>diplomaticquarter-d2385</string>
<key>STORAGE_BUCKET</key>
<string>diplomaticquarter-d2385.appspot.com</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:864393916058:ios:13f787bbfe6051f8b97923</string>
<key>DATABASE_URL</key>
<string>https://diplomaticquarter-d2385.firebaseio.com</string>
</dict>
</plist>

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CLIENT_ID</key>
<string>815750722565-da8p56le8bd6apsbm9eft0jjl1rtpgkt.apps.googleusercontent.com</string>
<key>REVERSED_CLIENT_ID</key>
<string>com.googleusercontent.apps.815750722565-da8p56le8bd6apsbm9eft0jjl1rtpgkt</string>
<key>ANDROID_CLIENT_ID</key>
<string>815750722565-m14h8mkosm7cnq6uh6rhqr54dn02d705.apps.googleusercontent.com</string>
<key>API_KEY</key>
<string>AIzaSyDiXnCO00li4V7Ioa2YZ_M4ECxRsu_P9tA</string>
<key>GCM_SENDER_ID</key>
<string>815750722565</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.HMG.Smartphone</string>
<key>PROJECT_ID</key>
<string>api-project-815750722565</string>
<key>STORAGE_BUCKET</key>
<string>api-project-815750722565.appspot.com</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:815750722565:ios:328ec247a81a2ca23c186c</string>
<key>DATABASE_URL</key>
<string>https://api-project-815750722565.firebaseio.com</string>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
key

Binary file not shown.

@ -1,9 +1,7 @@
import 'dart:io'; import 'dart:io';
import 'package:diplomaticquarterapp/core/service/geofencing/GeofencingServices.dart';
import 'package:diplomaticquarterapp/models/Request.dart'; import 'package:diplomaticquarterapp/models/Request.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
const MAX_SMALL_SCREEN = 660; const MAX_SMALL_SCREEN = 660;
@ -13,12 +11,16 @@ const PACKAGES_CATEGORIES = '/api/categories';
const PACKAGES_PRODUCTS = '/api/products'; const PACKAGES_PRODUCTS = '/api/products';
const BASE_URL = 'https://uat.hmgwebservices.com/'; const BASE_URL = 'https://uat.hmgwebservices.com/';
//const BASE_URL = 'https://hmgwebservices.com/'; // const BASE_URL = 'https://hmgwebservices.com/';
//const BASE_URL = 'https://.hmgwebservices.com/';
// Pharmacy UAT URLs
// const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';
// const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';
// Pharmacy Production URLs
const BASE_PHARMACY_URL = 'https://mdlaboratories.com/exacartapi/api/';
const PHARMACY_BASE_URL = 'https://mdlaboratories.com/exacartapi/api/';
//const BASE_PHARMACY_URL = 'http://swd-pharapp-01:7200/api/';
const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';
const PHARMACY_BASE_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';
const PING_SERVICE = 'Services/Weather.svc/REST/CheckConnectivity'; const PING_SERVICE = 'Services/Weather.svc/REST/CheckConnectivity';
const GET_PROJECT = 'Services/Lists.svc/REST/GetProject'; const GET_PROJECT = 'Services/Lists.svc/REST/GetProject';
@ -93,12 +95,9 @@ const GET_NEAREST_HOSPITAL =
'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime';
///ED Online ///ED Online
const ER_GET_VISUAL_TRIAGE_QUESTIONS = const ER_GET_VISUAL_TRIAGE_QUESTIONS = "services/Doctors.svc/REST/ER_GetVisualTriageQuestions";
"services/Doctors.svc/REST/ER_GetVisualTriageQuestions"; const ER_SAVE_TRIAGE_INFORMATION = "services/Doctors.svc/REST/ER_SaveTriageInformation";
const ER_SAVE_TRIAGE_INFORMATION = const ER_GetPatientPaymentInformationForERClinic = "services/Doctors.svc/REST/ER_GetPatientPaymentInformationForERClinic";
"services/Doctors.svc/REST/ER_SaveTriageInformation";
const ER_GetPatientPaymentInformationForERClinic =
"services/Doctors.svc/REST/ER_GetPatientPaymentInformationForERClinic";
///Er Nearest ///Er Nearest
const GET_AMBULANCE_REQUEST = const GET_AMBULANCE_REQUEST =
@ -456,7 +455,7 @@ const GET_ANCILLARY_ORDERS_DETAILS =
// const GET_WISHLIST = "http://swd-pharapp-01:7200/api/shopping_cart_items/"; // const GET_WISHLIST = "http://swd-pharapp-01:7200/api/shopping_cart_items/";
// pharmacy // pharmacy
const PHARMACY_AUTORZIE_CUSTOMER = "epharmacy/api/AutorizeCustomer"; const PHARMACY_AUTORZIE_CUSTOMER = "AutorizeCustomer";
const PHARMACY_VERIFY_CUSTOMER = "VerifyCustomer"; const PHARMACY_VERIFY_CUSTOMER = "VerifyCustomer";
const PHARMACY_GET_COUNTRY = "countries"; const PHARMACY_GET_COUNTRY = "countries";
const PHARMACY_CREATE_CUSTOMER = "epharmacy/api/CreateCustomer"; const PHARMACY_CREATE_CUSTOMER = "epharmacy/api/CreateCustomer";
@ -477,9 +476,9 @@ const GET_Cancel_ORDER = "cancelorder/";
const WRITE_REVIEW = "Content-Type" + "text/plain; charset=utf-8"; const WRITE_REVIEW = "Content-Type" + "text/plain; charset=utf-8";
const GET_SHOPPING_CART = "shopping_cart_items/"; const GET_SHOPPING_CART = "shopping_cart_items/";
const GET_SHIPPING_OPTIONS = "get_shipping_option/"; const GET_SHIPPING_OPTIONS = "get_shipping_option/";
const DELETE_SHOPPING_CART = "epharmacy/api/delete_shopping_cart_items/"; const DELETE_SHOPPING_CART = "delete_shopping_cart_items/";
const DELETE_SHOPPING_CART_ALL = "delete_shopping_cart_item_by_customer/"; const DELETE_SHOPPING_CART_ALL = "delete_shopping_cart_item_by_customer/";
const ORDER_SHOPPING_CART = "epharmacy/api/orders"; const ORDER_SHOPPING_CART = "orders";
const GET_LACUM_ACCOUNT_INFORMATION = const GET_LACUM_ACCOUNT_INFORMATION =
"Services/Patients.svc/REST/GetLakumAccountInformation"; "Services/Patients.svc/REST/GetLakumAccountInformation";
const GET_LACUM_GROUP_INFORMATION = const GET_LACUM_GROUP_INFORMATION =
@ -536,11 +535,11 @@ const GET_BRAND_ITEMS = "products";
// External API // External API
const ADD_ADDRESS_INFO = const ADD_ADDRESS_INFO =
"https://mdlaboratories.com/exacartapi/api/addcustomeraddress"; "addcustomeraddress";
const GET_CUSTOMER_ADDRESSES = const GET_CUSTOMER_ADDRESSES =
"https://mdlaboratories.com/exacartapi/api/Customers/"; "Customers/";
const GET_CUSTOMER_INFO = const GET_CUSTOMER_INFO =
"https://mdlaboratories.com/exacartapi/api/VerifyCustomer"; "VerifyCustomer";
//Pharmacy //Pharmacy

@ -1957,28 +1957,24 @@ const Map localizedValues = {
}, },
"order-overview": {"en": "Order Overview", "ar": "ملخص الطلب"}, "order-overview": {"en": "Order Overview", "ar": "ملخص الطلب"},
"shipping-address": {"en": "Delivery Address", "ar": "عنوان التوصيل"}, "shipping-address": {"en": "Delivery Address", "ar": "عنوان التوصيل"},
"ancillary-orders": {"en": "Ancillary Orders", "ar": "الأوامر التبعية"}, "pharmacy-relogin": {
"en": "Your session has timed out, Please try again",
"ar": "انتهت مهلة جلسة الخاص بها. يرجى المحاولة مرة أخرى"
},
"ancillary-orders": {"en": "Ancillary Orders", "ar": "الأوامر التبعية"},
"onlineCheckInAgreement": {"en": "The online check-in is for non-life threatening situationCall the red crescent (number) or go to the nearest emergency department if there are:signs of stroke or heart attack history of seizure or syncope there is limb or life threatening injury picture of severe injuries",
"ar": "تسجيل الذهاب الى الطوارئ عبر الإنترنت هو فقط للحالات  التي لا تهدد الحياة يجب الاتصل بالهلال الأحمر (رقم) أو الذهاب إلى أقرب قسم طوارئ إذا كان هناك علامات السكتة الدماغية أو النوبة القلبية او هناك نوبة تشنج او حالة فقدان الوعي او وجود إصابة تهدد أحد الأطراف او تهدد الحياة او وجود إصابات خطيرة"},
"MRN": {"en": "MRN", "ar": "ایم آر این"}, "MRN": {"en": "MRN", "ar": "ایم آر این"},
"appointment-date": {"en": "Appointment Date", "ar": "تقرری کی تاریخ"}, "appointment-date": {"en": "Appointment Date", "ar": "تقرری کی تاریخ"},
"appointment-no": {"en": "Appointment No", "ar": "تقرری نمبر"}, "appointment-no": {"en": "Appointment No", "ar": "تقرری نمبر"},
"insurance-id": {"en": "Insurance ID", "ar": "انشورنس ID"}, "insurance-id": {"en": "Insurance ID", "ar": "انشورنس ID"},
"onlineCheckInAgreement": {
"en":
"The online check-in is for non-life threatening situationCall the red crescent (number) or go to the nearest emergency department if there are:signs of stroke or heart attack history of seizure or syncope there is limb or life threatening injury picture of severe injuries",
"ar":
"تسجيل الذهاب الى الطوارئ عبر الإنترنت هو فقط للحالات  التي لا تهدد الحياة يجب الاتصل بالهلال الأحمر (رقم) أو الذهاب إلى أقرب قسم طوارئ إذا كان هناك علامات السكتة الدماغية أو النوبة القلبية او هناك نوبة تشنج او حالة فقدان الوعي او وجود إصابة تهدد أحد الأطراف او تهدد الحياة او وجود إصابات خطيرة"
},
"chiefComplaints": {"en": "Chief Complaints", "ar": "الشكوى الرئيسة"}, "chiefComplaints": {"en": "Chief Complaints", "ar": "الشكوى الرئيسة"},
"errorChiefComplaints": { "errorChiefComplaints": {"en": "Please Chief Complaints", "ar": "يرجى ادخال الشكوى الرئيسة"},
"en": "Please Chief Complaints", "errorExpectedArrivalTimes": {"en": "Please Expected arrival time", "ar": "يرجى ادخال الوقت المتوقع للوصول"},
"ar": "يرجى ادخال الشكوى الرئيسة" "expectedArrivalTime": {"en": "Expected arrival time", "ar": "الوقت المتوقع للوصول"},
}, "add-address": {
"errorExpectedArrivalTimes": { "en": "Add new address",
"en": "Please Expected arrival time", "ar": "اضف عنوان جديد"
"ar": "يرجى ادخال الوقت المتوقع للوصول" }
},
"expectedArrivalTime": {
"en": "Expected arrival time",
"ar": "الوقت المتوقع للوصول"
},
}; };

@ -7,6 +7,8 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
import 'package:diplomaticquarterapp/pages/appUpdatePage/app_update_page.dart'; import 'package:diplomaticquarterapp/pages/appUpdatePage/app_update_page.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.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/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@ -31,7 +33,6 @@ AuthenticatedUserObject authenticatedUserObject =
VitalSignService _vitalSignService = locator<VitalSignService>(); VitalSignService _vitalSignService = locator<VitalSignService>();
class BaseAppClient { class BaseAppClient {
post(String endPoint, post(String endPoint,
{Map<String, dynamic> body, {Map<String, dynamic> body,
Function(dynamic response, int statusCode) onSuccess, Function(dynamic response, int statusCode) onSuccess,
@ -486,7 +487,13 @@ class BaseAppClient {
print("statusCode :$statusCode"); print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) { if (statusCode < 200 || statusCode >= 400 || json == null) {
onFailure('Error While Fetching data', statusCode); if (statusCode == 401) {
AppToast.showErrorToast(
message: TranslationBase.of(AppGlobal.context).pharmacyRelogin);
Navigator.of(AppGlobal.context).pushNamed(HOME);
} else {
onFailure('Error While Fetching data', statusCode);
}
} else { } else {
// var parsed = json.decode(response.body.toString()); // var parsed = json.decode(response.body.toString());
var bodyUtf = json.decode(utf8.decode(response.bodyBytes)); var bodyUtf = json.decode(utf8.decode(response.bodyBytes));
@ -583,10 +590,12 @@ class BaseAppClient {
pharmacyPost(String endPoint, pharmacyPost(String endPoint,
{Map<String, dynamic> body, {Map<String, dynamic> body,
Function(dynamic response, int statusCode) onSuccess, Function(dynamic response, int statusCode) onSuccess,
Function(String error, int statusCode) onFailure, Function(String error, int statusCode) onFailure,
bool isAllowAny = false, bool isAllowAny = false,
bool isExternal = false}) async { bool isExternal = false}) async {
var token = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN);
var user = await sharedPref.getObject(USER_PROFILE);
String url; String url;
if (isExternal) { if (isExternal) {
url = endPoint; url = endPoint;
@ -594,17 +603,16 @@ class BaseAppClient {
url = BASE_PHARMACY_URL + endPoint; url = BASE_PHARMACY_URL + endPoint;
} }
try { try {
//Map profile = await sharedPref.getObj(DOCTOR_PROFILE); if (isExternal) {
if (!isExternal) {
String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
var languageID = var languageID =
await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
var user = await sharedPref.getObject(USER_PROFILE); var user = await sharedPref.getObject(USER_PROFILE);
if (body.containsKey('SetupID')) { if (body.containsKey('SetupID')) {
body['SetupID'] = body.containsKey('SetupID') body['SetupID'] = body.containsKey('SetupID')
? body['SetupID'] != null ? body['SetupID'] != null
? body['SetupID'] ? body['SetupID']
: SETUP_ID : SETUP_ID
: SETUP_ID; : SETUP_ID;
} }
@ -616,17 +624,17 @@ class BaseAppClient {
body['generalid'] = GENERAL_ID; body['generalid'] = GENERAL_ID;
body['PatientOutSA'] = body.containsKey('PatientOutSA') body['PatientOutSA'] = body.containsKey('PatientOutSA')
? body['PatientOutSA'] != null ? body['PatientOutSA'] != null
? body['PatientOutSA'] ? body['PatientOutSA']
: PATIENT_OUT_SA : PATIENT_OUT_SA
: PATIENT_OUT_SA; : PATIENT_OUT_SA;
if (body.containsKey('isDentalAllowedBackend')) { if (body.containsKey('isDentalAllowedBackend')) {
body['isDentalAllowedBackend'] = body['isDentalAllowedBackend'] =
body.containsKey('isDentalAllowedBackend') body.containsKey('isDentalAllowedBackend')
? body['isDentalAllowedBackend'] != null ? body['isDentalAllowedBackend'] != null
? body['isDentalAllowedBackend'] ? body['isDentalAllowedBackend']
: IS_DENTAL_ALLOWED_BACKEND : IS_DENTAL_ALLOWED_BACKEND
: IS_DENTAL_ALLOWED_BACKEND; : IS_DENTAL_ALLOWED_BACKEND;
} }
body['DeviceTypeID'] = DeviceTypeID; body['DeviceTypeID'] = DeviceTypeID;
@ -634,18 +642,18 @@ class BaseAppClient {
if (!body.containsKey('IsPublicRequest')) { if (!body.containsKey('IsPublicRequest')) {
body['PatientType'] = body.containsKey('PatientType') body['PatientType'] = body.containsKey('PatientType')
? body['PatientType'] != null ? body['PatientType'] != null
? body['PatientType'] ? body['PatientType']
: user['PatientType'] != null : user['PatientType'] != null
? user['PatientType'] ? user['PatientType']
: PATIENT_TYPE : PATIENT_TYPE
: PATIENT_TYPE; : PATIENT_TYPE;
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']
: PATIENT_TYPE_ID : PATIENT_TYPE_ID
: PATIENT_TYPE_ID; : PATIENT_TYPE_ID;
if (user != null) { if (user != null) {
body['TokenID'] = token; body['TokenID'] = token;
@ -663,13 +671,20 @@ class BaseAppClient {
var ss = json.encode(body); var ss = json.encode(body);
if (await Utils.checkConnection()) { if (await Utils.checkConnection()) {
final response = await http.post(url.trim(), final response =
body: json.encode(body), await http.post(url.trim(), body: json.encode(body), headers: {
headers: { // 'Content-Type': 'application/json',
'Content-Type': 'application/json', // 'Accept': 'application/json',
'Accept': 'application/json', // 'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9', 'Content-Type': 'application/json',
}); 'Accept': 'application/json',
'Authorization': token ?? '',
'Mobilenumber': user != null
? getPhoneNumberWithoutZero(user['MobileNumber'].toString())
: "",
'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
'Username': user != null ? user['PatientID'].toString() : "",
});
final int statusCode = response.statusCode; final int statusCode = response.statusCode;
print("statusCode :$statusCode"); print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) { if (statusCode < 200 || statusCode >= 400 || json == null) {
@ -710,12 +725,11 @@ class BaseAppClient {
parsed['IsAuthenticated']) { parsed['IsAuthenticated']) {
if (parsed['message'] == null && if (parsed['message'] == null &&
parsed['ErrorEndUserMessage'] == null) { parsed['ErrorEndUserMessage'] == null) {
if(parsed['ErrorSearchMsg'] == null ){ if (parsed['ErrorSearchMsg'] == null) {
onFailure("Server Error found with no available message", onFailure("Server Error found with no available message",
statusCode); statusCode);
}else { } else {
onFailure(parsed['ErrorSearchMsg'], onFailure(parsed['ErrorSearchMsg'], statusCode);
statusCode);
} }
} else { } else {
onFailure( onFailure(

@ -92,7 +92,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.postPharmacy("$GET_SHOPPING_CART$productId", await baseAppClient.pharmacyPost("$GET_SHOPPING_CART$productId", isExternal: false,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
@ -110,7 +110,7 @@ class OrderPreviewService extends BaseService {
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
await baseAppClient.post("$DELETE_SHOPPING_CART$productId", await baseAppClient.pharmacyPost("$DELETE_SHOPPING_CART$productId", isExternal: false,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
@ -223,7 +223,7 @@ class OrderPreviewService extends BaseService {
body['order'] = orderBody; body['order'] = orderBody;
try { try {
await baseAppClient.post(ORDER_SHOPPING_CART, await baseAppClient.pharmacyPost(ORDER_SHOPPING_CART, isExternal: false, isAllowAny: true,
onSuccess: (response, statusCode) async { onSuccess: (response, statusCode) async {
orderList.clear(); orderList.clear();
response['orders'].forEach((item) { response['orders'].forEach((item) {

@ -80,7 +80,7 @@ class PharmacyModuleService extends BaseService {
}; };
hasError = false; hasError = false;
try { try {
await baseAppClient.get(PHARMACY_AUTORZIE_CUSTOMER, await baseAppClient.getPharmacy(PHARMACY_AUTORZIE_CUSTOMER,
onSuccess: (dynamic response, int statusCode) async { onSuccess: (dynamic response, int statusCode) async {
if (response['Status'] == 200) { if (response['Status'] == 200) {
await sharedPref.setString( await sharedPref.setString(

@ -44,7 +44,8 @@ class PharmacyModuleViewModel extends BaseViewModel {
// List<PharmacyProduct> get pharmacyPrescriptionsList => PharmacyProduct.pharmacyPrescriptionsList ; // List<PharmacyProduct> get pharmacyPrescriptionsList => PharmacyProduct.pharmacyPrescriptionsList ;
Future getPharmacyHomeData() async { Future getPharmacyHomeData() async {
await generatePharmacyToken(); if(authenticatedUserObject.isLogin)
await generatePharmacyToken();
var data = await sharedPref.getObject(USER_PROFILE); var data = await sharedPref.getObject(USER_PROFILE);
var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID); var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);

@ -49,6 +49,7 @@ class _LocationPageState
return BaseView<HomeHealthCareViewModel>( return BaseView<HomeHealthCareViewModel>(
onModelReady: (model) {}, onModelReady: (model) {},
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
appBarTitle: TranslationBase.of(context).addAddress,
isShowDecPage: false, isShowDecPage: false,
isShowAppBar: true, isShowAppBar: true,
baseViewModel: model, baseViewModel: model,

@ -1,6 +1,8 @@
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_page.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_page.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/all_habib_medical_service_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/all_habib_medical_service_page.dart';
@ -11,6 +13,7 @@ import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart'; import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart'; import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.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/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -33,6 +36,9 @@ class HomePage extends StatefulWidget {
} }
class _HomePageState extends State<HomePage> { class _HomePageState extends State<HomePage> {
PharmacyModuleViewModel pharmacyModuleViewModel =
locator<PharmacyModuleViewModel>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
@ -503,8 +509,7 @@ class _HomePageState extends State<HomePage> {
), ),
if (projectViewModel.havePrivilege(65)) if (projectViewModel.havePrivilege(65))
DashboardItem( DashboardItem(
onTap: () => Navigator.push( onTap: () => getPharmacyToken(model),
context, FadePage(page: LandingPagePharmacy())),
child: Center( child: Center(
child: Padding( child: Padding(
padding: const EdgeInsets.all(15.0), padding: const EdgeInsets.all(15.0),
@ -799,10 +804,24 @@ class _HomePageState extends State<HomePage> {
); );
} }
// openBrowser() { getPharmacyToken(DashboardViewModel model) async {
// InAppBrowser browser = new InAppBrowser(); if(!model.isLogin) {
// browser.openUrl(url: "https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID=ca9dd276-0a20-4924-a768-fafa9a855ef1&&CustomerId=1367368"); Navigator.push(context, FadePage(page: LandingPagePharmacy()));
// } } else {
GifLoaderDialogUtils.showMyDialog(context);
await pharmacyModuleViewModel.generatePharmacyToken().then((value) async {
if (pharmacyModuleViewModel.error.isNotEmpty) {
await pharmacyModuleViewModel.createUser().then((value) {
GifLoaderDialogUtils.hideDialog(context);
Navigator.push(context, FadePage(page: LandingPagePharmacy()));
});
} else {
GifLoaderDialogUtils.hideDialog(context);
Navigator.push(context, FadePage(page: LandingPagePharmacy()));
}
});
}
}
navigateToCovidDriveThru() { navigateToCovidDriveThru() {
Navigator.push(context, FadePage(page: CovidDrivethruLocation())); Navigator.push(context, FadePage(page: CovidDrivethruLocation()));

@ -185,7 +185,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
if (results[Permission.camera].isGranted) ; if (results[Permission.camera].isGranted) ;
if (results[Permission.photos].isGranted) ; if (results[Permission.photos].isGranted) ;
if (results[Permission.accessMediaLocation].isGranted) ; if (results[Permission.accessMediaLocation].isGranted) ;
if (results[Permission.calendar].isGranted) ; // if (results[Permission.calendar].isGranted) ;
}); });
requestPermissions(); requestPermissions();
// }); // });
@ -327,15 +327,15 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
Permission.photos, Permission.photos,
Permission.notification, Permission.notification,
Permission.accessMediaLocation, Permission.accessMediaLocation,
Permission.calendar, // Permission.calendar,
Permission.activityRecognition Permission.activityRecognition
].request(); ].request();
var permissionsGranted = await deviceCalendarPlugin.hasPermissions(); // var permissionsGranted = await deviceCalendarPlugin.hasPermissions();
if (permissionsGranted.isSuccess && !permissionsGranted.data) { // if (permissionsGranted.isSuccess && !permissionsGranted.data) {
permissionsGranted = await deviceCalendarPlugin.requestPermissions(); // permissionsGranted = await deviceCalendarPlugin.requestPermissions();
if (!permissionsGranted.isSuccess || !permissionsGranted.data) {} // if (!permissionsGranted.isSuccess || !permissionsGranted.data) {}
} // }
return permissionResults; return permissionResults;
} }

@ -28,6 +28,7 @@ class _ProductBrandsPageState extends State<ProductBrandsPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<BrandsViewModel>( return BaseView<BrandsViewModel>(
allowAny: true,
onModelReady: (model) => model.getBrandsData(), onModelReady: (model) => model.getBrandsData(),
builder: (_, model, wi) => AppScaffold( builder: (_, model, wi) => AppScaffold(
appBarTitle: 'Brands page', appBarTitle: 'Brands page',
@ -142,6 +143,7 @@ class _ProductBrandsPageState extends State<ProductBrandsPage> {
topBrand(BuildContext context) { topBrand(BuildContext context) {
return BaseView<BrandsViewModel>( return BaseView<BrandsViewModel>(
allowAny: true,
onModelReady: (model) => model.getTopBrandsData(), onModelReady: (model) => model.getTopBrandsData(),
builder: (_, model, wi) => GridView.count( builder: (_, model, wi) => GridView.count(
crossAxisCount: 4, crossAxisCount: 4,

@ -1,23 +1,22 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart'; import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/recommendedProduct_model.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/core/viewModels/pharmacyModule/product_detail_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/login/welcome.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/compare-list.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.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/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scafold_detail_page.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:diplomaticquarterapp/widgets/others/app_scafold_detail_page.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:rating_bar/rating_bar.dart'; import 'package:rating_bar/rating_bar.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'screens/cart-order-page.dart'; import 'screens/cart-order-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/compare-list.dart';
int price = 0; int price = 0;
var languageID; var languageID;
@ -30,7 +29,9 @@ PharmacyProduct specificationData;
class ProductDetailPage extends StatefulWidget { class ProductDetailPage extends StatefulWidget {
final PharmacyProduct product; final PharmacyProduct product;
ProductDetailPage(this.product); ProductDetailPage(this.product);
@override @override
__ProductDetailPageState createState() => __ProductDetailPageState(); __ProductDetailPageState createState() => __ProductDetailPageState();
} }
@ -42,8 +43,10 @@ class __ProductDetailPageState extends State<ProductDetailPage> {
bool isAvailabilty = false; bool isAvailabilty = false;
dynamic wishlistItems; dynamic wishlistItems;
var model; var model;
// String ProductId="4561"; // String ProductId="4561";
String productId = ""; String productId = "";
checkWishlist() async { checkWishlist() async {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
ProductDetailViewModel x = new ProductDetailViewModel(); ProductDetailViewModel x = new ProductDetailViewModel();
@ -62,6 +65,7 @@ class __ProductDetailPageState extends State<ProductDetailPage> {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
setState(() {}); setState(() {});
} }
void initState() { void initState() {
price = 1; price = 1;
specificationData = widget.product; specificationData = widget.product;
@ -613,21 +617,20 @@ class __ProductDetailPageState extends State<ProductDetailPage> {
Container( Container(
width: 410, width: 410,
height: 50, height: 50,
// margin: EdgeInsets.only(bottom: 5), // margin: EdgeInsets.only(bottom: 5),
color: Colors.white, color: Colors.white,
child: Texts( child: Texts(
TranslationBase.of(context).recommended, TranslationBase.of(context).recommended,
bold: true, bold: true,
), ),
), ),
], ],
), ),
SingleChildScrollView( SingleChildScrollView(
child: Container( child: Container(
color: Colors.white, color: Colors.white,
child: Column( child: Column(
// crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
// mainAxisSize: MainAxisSize.min, // mainAxisSize: MainAxisSize.min,
children: [ children: [
@ -636,208 +639,252 @@ class __ProductDetailPageState extends State<ProductDetailPage> {
height: 210, height: 210,
margin: EdgeInsets.only(bottom: 75), margin: EdgeInsets.only(bottom: 75),
padding: EdgeInsets.only(bottom: 5), padding: EdgeInsets.only(bottom: 5),
// margin: EdgeInsets.symmetric(horizontal: 6, vertical: 4), // margin: EdgeInsets.symmetric(horizontal: 6, vertical: 4),
child: BaseView<PharmacyModuleViewModel>( child: BaseView<PharmacyModuleViewModel>(
onModelReady: (model) => onModelReady: (model) =>
model.getRecommendedProducts(widget.product.id.toString()), model.getRecommendedProducts(
builder: (_, model, wi) => widget.product.id.toString()),
Container( builder: (_, model, wi) => Container(
child: child:
// Text(model.recommendedProductList[0].id), // Text(model.recommendedProductList[0].id),
model.recommendedProductList.length != null model.recommendedProductList.length !=
? Expanded( null
child: ListView.builder( ? Expanded(
scrollDirection: Axis.horizontal, child: ListView.builder(
shrinkWrap: true, scrollDirection:
physics: ScrollPhysics(), Axis.horizontal,
// physics: NeverScrollableScrollPhysics(), shrinkWrap: true,
itemCount: model.recommendedProductList.length, physics: ScrollPhysics(),
itemBuilder: (context, index) { // physics: NeverScrollableScrollPhysics(),
return Card( itemCount: model
elevation: 2, .recommendedProductList
shape: RoundedRectangleBorder( .length,
side: BorderSide( itemBuilder:
color: Colors.grey[300], width: 2), (context, index) {
borderRadius: BorderRadius.circular(10)), return Card(
margin: EdgeInsets.symmetric( elevation: 2,
horizontal: 8, shape: RoundedRectangleBorder(
vertical: 0, side: BorderSide(
), color: Colors
child: Container( .grey[
decoration: BoxDecoration( 300],
borderRadius: BorderRadius.all( width: 2),
Radius.circular(15), borderRadius:
), BorderRadius
), .circular(
padding: EdgeInsets.symmetric(horizontal: 4), 10)),
width: MediaQuery.of(context).size.width / 3, margin: EdgeInsets
child: Column( .symmetric(
crossAxisAlignment: horizontal: 8,
CrossAxisAlignment.start, vertical: 0,
children: [
Stack(children: [
Container(
child: Align(
alignment: Alignment.topRight,
child: //true
itemID.contains(model.recommendedProductList[index].id)
// !isInWishlist
? IconButton(
icon: Icon(Icons
.favorite_border),
color: Colors.grey,
iconSize: 30,
onPressed: () {
setState(() {
addToWishlistFunction(itemID);
});
},
)
: IconButton(
icon: Icon(
Icons.favorite),
color: Colors.red,
iconSize: 30,
onPressed: () {
setState(() {
deleteFromWishlistFunction(itemID);
});
},
)
//
), ),
), child: Container(
Container( decoration:
margin: EdgeInsets.fromLTRB( BoxDecoration(
0, 16, 10, 16), borderRadius:
alignment: Alignment.center, BorderRadius
.all(
Radius.circular(
15),
),
),
padding: EdgeInsets
.symmetric(
horizontal:
4),
width: MediaQuery.of(
context)
.size
.width /
3,
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
Stack(
children: [
Container(
child: Align(
alignment: Alignment.topRight,
child: //true
itemID.contains(model.recommendedProductList[index].id)
// !isInWishlist
? IconButton(
icon: Icon(Icons.favorite_border),
color: Colors.grey,
iconSize: 30,
onPressed: () {
setState(() {
addToWishlistFunction(itemID);
});
},
)
: IconButton(
icon: Icon(Icons.favorite),
color: Colors.red,
iconSize: 30,
onPressed: () {
setState(() {
deleteFromWishlistFunction(itemID);
});
},
)
//
),
),
Container(
margin: EdgeInsets.fromLTRB(
0,
16,
10,
16),
alignment:
Alignment.center,
// padding: EdgeInsets.only(left: 25, bottom: 20), // padding: EdgeInsets.only(left: 25, bottom: 20),
child: (model.recommendedProductList[index].images != null && child: (model.recommendedProductList[index].images != null &&
model.recommendedProductList[index].images.length > 0) model.recommendedProductList[index].images.length > 0)
? Image.network( ? Image.network(
model.recommendedProductList[index].images[0].src.toString(), model.recommendedProductList[index].images[0].src.toString(),
// item.images[0].src, // item.images[0].src,
fit: BoxFit.cover, fit: BoxFit.cover,
height: 60, height: 60,
) )
: Image.asset( : Image.asset(
"assets/images/no_image.png", "assets/images/no_image.png",
fit: BoxFit.cover, fit: BoxFit.cover,
height: 60, height: 60,
), ),
), ),
Container( Container(
width: model width: model.recommendedProductList[index].rxMessage !=
.recommendedProductList[ null
index] ? MediaQuery.of(context).size.width /
.rxMessage != 5
null : 0,
? MediaQuery.of(context) padding:
.size EdgeInsets.all(4),
.width / decoration:
5 BoxDecoration(
: 0, color:
padding: EdgeInsets.all(4), Color(0xffb23838),
decoration: BoxDecoration( borderRadius:
color: Color(0xffb23838), BorderRadius.only(topLeft: Radius.circular(6)),
borderRadius: BorderRadius.only( ),
topLeft: Radius.circular(6)), child:
), Texts(
child: Texts( model.recommendedProductList[index].rxMessage != null
model.recommendedProductList[index] ? model.recommendedProductList[index].rxMessage
.rxMessage != : "",
null color:
? model Colors.white,
.recommendedProductList[ regular:
index] true,
.rxMessage fontSize:
: "", 10,
color: Colors.white, fontWeight:
regular: true, FontWeight.w400,
fontSize: 10, ),
fontWeight: FontWeight.w400, ),
), ]),
), Container(
]), margin: EdgeInsets
Container( .symmetric(
margin: EdgeInsets.symmetric( horizontal:
horizontal: 6, 6,
vertical: 0, vertical: 0,
), ),
child: Column( child: Column(
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.start, CrossAxisAlignment
children: [ .start,
Text( children: [
languageID == "ar" Text(
? model.recommendedProductList[index].namen languageID ==
: model.recommendedProductList[index].name, "ar"
style: TextStyle( ? model.recommendedProductList[index].namen
color: Colors.black, : model.recommendedProductList[index].name,
fontSize: 13.0, style:
TextStyle(
color:
Colors.black,
fontSize:
13.0,
// fontWeight: FontWeight.bold, // fontWeight: FontWeight.bold,
), ),
), ),
Padding( Padding(
// padding: const EdgeInsets.only(top: 15, bottom: 10), // padding: const EdgeInsets.only(top: 15, bottom: 10),
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
top: 10, bottom: 5), top:
child: Texts( 10,
"SAR ${model.recommendedProductList[index].price}", bottom:
bold: true, 5),
fontSize: 14, child:
), Texts(
), "SAR ${model.recommendedProductList[index].price}",
], bold:
), true,
), fontSize:
Row( 14,
crossAxisAlignment: ),
CrossAxisAlignment.start, ),
children: <Widget>[ ],
Container( ),
padding: ),
EdgeInsets.only(right: 10), Row(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: <
Widget>[
Container(
padding:
EdgeInsets.only(right: 10),
// margin: EdgeInsets.only(left: 5), // margin: EdgeInsets.only(left: 5),
child: Align( child:
alignment: Alignment.topLeft, Align(
child: RatingBar.readOnly( alignment:
initialRating: model Alignment.topLeft,
.recommendedProductList[ child:
index] RatingBar.readOnly(
.approvedRatingSum initialRating:
.toDouble(), model.recommendedProductList[index].approvedRatingSum.toDouble(),
// initialRating: productRate, // initialRating: productRate,
size: 13.0, size:
filledColor: 13.0,
Colors.yellow[700], filledColor:
emptyColor: Colors.grey[500], Colors.yellow[700],
isHalfAllowed: true, emptyColor:
halfFilledIcon: Colors.grey[500],
Icons.star_half, isHalfAllowed:
filledIcon: Icons.star, true,
emptyIcon: Icons.star, halfFilledIcon:
), Icons.star_half,
), filledIcon:
), Icons.star,
Texts( emptyIcon:
"(${model.recommendedProductList[index].approvedTotalReviews.toString()})", Icons.star,
),
),
),
Texts(
"(${model.recommendedProductList[index].approvedTotalReviews.toString()})",
// bold: true, // bold: true,
fontSize: 12, fontSize:
12,
),
]),
],
), ),
]), ),
], );
), }),
), )
); : Container(
}),
)
: Container(
// child: Text("NO DATA"), // child: Text("NO DATA"),
), ),
) )),
),
), ),
], ],
), ),
@ -1341,8 +1388,10 @@ class footerWidget extends StatefulWidget {
final int minQuantity; final int minQuantity;
final int quantityLimit; final int quantityLimit;
final PharmacyProduct item; final PharmacyProduct item;
footerWidget(this.isAvailble, this.maxQuantity, this.minQuantity, footerWidget(this.isAvailble, this.maxQuantity, this.minQuantity,
this.quantityLimit, this.item); this.quantityLimit, this.item);
@override @override
_footerWidgetState createState() => _footerWidgetState(); _footerWidgetState createState() => _footerWidgetState();
} }
@ -1350,6 +1399,7 @@ class footerWidget extends StatefulWidget {
class _footerWidgetState extends State<footerWidget> { class _footerWidgetState extends State<footerWidget> {
double quantityUI = 70; double quantityUI = 70;
bool showUI = false; bool showUI = false;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
@ -1752,7 +1802,7 @@ class _footerWidgetState extends State<footerWidget> {
) )
: InkWell( : InkWell(
onTap: () { onTap: () {
addToCartFunction(price, widget.item.id); addToCartFunction(price, widget.item.id, context);
}, },
child: Container( child: Container(
alignment: Alignment.center, alignment: Alignment.center,
@ -1792,11 +1842,10 @@ class _footerWidgetState extends State<footerWidget> {
: InkWell( : InkWell(
onTap: () { onTap: () {
print('buy now'); print('buy now');
addToCartFunction(price, widget.item.id); addToCartFunction(price, widget.item.id, context);
Navigator.push( Navigator.push(
context, context,
FadePage(page: FadePage(page: CartOrderPage()),
CartOrderPage()),
); );
}, },
child: Container( child: Container(
@ -1824,7 +1873,9 @@ class _footerWidgetState extends State<footerWidget> {
class productNameAndPrice extends StatefulWidget { class productNameAndPrice extends StatefulWidget {
BuildContext context; BuildContext context;
PharmacyProduct item; PharmacyProduct item;
productNameAndPrice(this.context, this.item); productNameAndPrice(this.context, this.item);
@override @override
_productNameAndPriceState createState() => _productNameAndPriceState(); _productNameAndPriceState createState() => _productNameAndPriceState();
} }
@ -2014,9 +2065,12 @@ getSpecificationData(itemID) async {
specificationData = await x.productSpecificationData(itemID); specificationData = await x.productSpecificationData(itemID);
} }
addToCartFunction(quantity, itemID) async { addToCartFunction(quantity, itemID, BuildContext context) async {
GifLoaderDialogUtils.showMyDialog(context);
ProductDetailViewModel x = new ProductDetailViewModel(); ProductDetailViewModel x = new ProductDetailViewModel();
await x.addToCartData(quantity, itemID); await x.addToCartData(quantity, itemID).then((value) {
GifLoaderDialogUtils.hideDialog(context);
});
} }
notifyMeWhenAvailable(context, itemId) async { notifyMeWhenAvailable(context, itemId) async {
@ -2071,7 +2125,7 @@ settingModalBottomSheet(context) {
title: Text('Add to cart'), title: Text('Add to cart'),
onTap: () => { onTap: () => {
if (price > 0) if (price > 0)
{addToCartFunction(price, itemID)} {addToCartFunction(price, itemID, context)}
else else
{ {
AppToast.showErrorToast( AppToast.showErrorToast(

@ -7,9 +7,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/address-select-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/payment-method-select-page.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/payment-method-select-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy_module_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/ProductOrderPreviewItem.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/ProductOrderPreviewItem.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/pharmacyAddresses/PharmacyAddresses.dart'; import 'package:diplomaticquarterapp/pages/pharmacy/pharmacyAddresses/PharmacyAddresses.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
@ -20,13 +18,14 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.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:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:flutter/scheduler.dart';
class OrderPreviewPage extends StatelessWidget { class OrderPreviewPage extends StatelessWidget {
final List<Addresses> addresses; final List<Addresses> addresses;
OrderPreviewPage(this.addresses); OrderPreviewPage(this.addresses);
MyInAppBrowser browser;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context); final mediaQuery = MediaQuery.of(context);
@ -34,13 +33,10 @@ class OrderPreviewPage extends StatelessWidget {
return BaseView<OrderPreviewViewModel>( return BaseView<OrderPreviewViewModel>(
onModelReady: (model) => model.getShoppingCart(), onModelReady: (model) => model.getShoppingCart(),
builder: (_, model, wi) => builder: (_, model, wi) => ChangeNotifierProvider.value(
ChangeNotifierProvider.value(
value: model.paymentCheckoutData, value: model.paymentCheckoutData,
child: AppScaffold( child: AppScaffold(
appBarTitle: "${TranslationBase appBarTitle: "${TranslationBase.of(context).checkOut}",
.of(context)
.checkOut}",
isShowAppBar: true, isShowAppBar: true,
isPharmacy: true, isPharmacy: true,
isShowDecPage: false, isShowDecPage: false,

@ -88,7 +88,7 @@ class ProductDetailService extends BaseService {
"language_id": 1 "language_id": 1
} }
}; };
await baseAppClient.pharmacyPost(GET_SHOPPING_CART, await baseAppClient.pharmacyPost(GET_SHOPPING_CART, isExternal: false,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
_addToCartModel.clear(); _addToCartModel.clear();
response['shopping_carts'].forEach((item) { response['shopping_carts'].forEach((item) {

@ -1573,6 +1573,7 @@ class TranslationBase {
String get shippingAddresss => String get shippingAddresss =>
localizedValues["shipping-address"][locale.languageCode]; localizedValues["shipping-address"][locale.languageCode];
String get covidAlert => localizedValues["covid-alert"][locale.languageCode]; String get covidAlert => localizedValues["covid-alert"][locale.languageCode];
String get pharmacyRelogin => localizedValues["pharmacy-relogin"][locale.languageCode];
String get onlineCheckInAgreement => localizedValues["onlineCheckInAgreement"][locale.languageCode]; String get onlineCheckInAgreement => localizedValues["onlineCheckInAgreement"][locale.languageCode];
String get chiefComplaints => localizedValues["chiefComplaints"][locale.languageCode]; String get chiefComplaints => localizedValues["chiefComplaints"][locale.languageCode];
String get errorChiefComplaints => localizedValues["errorChiefComplaints"][locale.languageCode]; String get errorChiefComplaints => localizedValues["errorChiefComplaints"][locale.languageCode];

@ -81,7 +81,7 @@ class _AppDrawerState extends State<AppDrawer> {
children: <Widget>[ children: <Widget>[
Container( Container(
child: child:
Image.asset('assets/images/DQ/DQ_logo.png'), Image.asset('assets/images/logo_HMG.png'),
margin: EdgeInsets.all( margin: EdgeInsets.all(
SizeConfig.imageSizeMultiplier * 4), SizeConfig.imageSizeMultiplier * 4),
), ),

@ -9,20 +9,23 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart';
class MyInAppBrowser extends InAppBrowser { class MyInAppBrowser extends InAppBrowser {
// static String SERVICE_URL =
// 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT
static String SERVICE_URL = static String SERVICE_URL =
'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE
// static String SERVICE_URL = // static String PREAUTH_SERVICE_URL =
// 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE // 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort PreAuth Payment Gateway URL UAT
static String PREAUTH_SERVICE_URL = static String PREAUTH_SERVICE_URL =
'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort PreAuth Payment Gateway URL UAT 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store
// static String PREAUTH_SERVICE_URL = // static String PRESCRIPTION_PAYMENT_WITH_ORDERID =
// 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store // 'https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID=';
static String PRESCRIPTION_PAYMENT_WITH_ORDERID = static String PRESCRIPTION_PAYMENT_WITH_ORDERID =
'https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; 'https://mdlaboratories.com/exacartapi/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID='; //Live
static List<String> successURLS = [ static List<String> successURLS = [
'success', 'success',
@ -260,7 +263,6 @@ class MyInAppBrowser extends InAppBrowser {
String patientName, String patientName,
dynamic patientID, dynamic patientID,
AuthenticatedUser authUser) async { AuthenticatedUser authUser) async {
String pharmacyURL = PRESCRIPTION_PAYMENT_WITH_ORDERID + String pharmacyURL = PRESCRIPTION_PAYMENT_WITH_ORDERID +
order.orderGuid + order.orderGuid +
'&&CustomerId=' + '&&CustomerId=' +
@ -336,7 +338,6 @@ class MyInAppBrowser extends InAppBrowser {
'</body>' + '</body>' +
'</html>'; '</html>';
} }
} }
class MyChromeSafariBrowser extends ChromeSafariBrowser { class MyChromeSafariBrowser extends ChromeSafariBrowser {

Loading…
Cancel
Save