Merge branch 'development' into pharmacy-Fatima

# Conflicts:
#	lib/core/model/pharmacies/order_model.dart
#	lib/pages/pharmacies/product-brands.dart
#	lib/pages/pharmacies/screens/pharmacy_module_page.dart
#	lib/pages/pharmacy/order/Order.dart
#	lib/pages/pharmacy/order/OrderDetails.dart
#	lib/pages/pharmacy/profile/profile.dart
merge-requests/277/head
Fatimah Alshammari 5 years ago
commit a46dddea9a

@ -1,3 +1,5 @@
import 'package:google_maps_flutter/google_maps_flutter.dart';
class BillingAddress {
String id;
String firstName;
@ -81,4 +83,19 @@ class BillingAddress {
data['lat_long'] = this.latLong;
return data;
}
LatLng getLocation(){
if(latLong.contains(',')){
var parts = latLong.trim().split(',');
if(parts.length == 2){
var lat = double.tryParse(parts.first);
var lng = double.tryParse(parts.last);
if(lat != null || lng != null) {
var location = LatLng(lat, lng);
return location;
}
}
}
return null;
}
}

@ -32,6 +32,7 @@ class Customer {
String lastLoginDateUtc;
String lastActivityDateUtc;
int registeredInStoreId;
List<int> roleIds;
Customer(
{this.billingAddress,
@ -63,7 +64,8 @@ class Customer {
this.createdOnUtc,
this.lastLoginDateUtc,
this.lastActivityDateUtc,
this.registeredInStoreId});
this.registeredInStoreId,
this.roleIds});
Customer.fromJson(Map<String, dynamic> json) {
billingAddress = json['billing_address'] != null
@ -105,6 +107,7 @@ class Customer {
lastLoginDateUtc = json['last_login_date_utc'];
lastActivityDateUtc = json['last_activity_date_utc'];
registeredInStoreId = json['registered_in_store_id'];
roleIds = json['role_ids'].cast<int>();
}
Map<String, dynamic> toJson() {
@ -145,6 +148,7 @@ class Customer {
data['last_login_date_utc'] = this.lastLoginDateUtc;
data['last_activity_date_utc'] = this.lastActivityDateUtc;
data['registered_in_store_id'] = this.registeredInStoreId;
data['role_ids'] = this.roleIds;
return data;
}
}

@ -7,22 +7,33 @@ class ShoppingCart {
// List<Null> productAttributes;
double customerEnteredPrice;
int quantity;
String discountAmountInclTax;
String subtotal;
String subtotalWithVat;
String subtotalVatAmount;
String subtotalVatRate;
String currency;
String currencyn;
String rentalStartDateUtc;
String rentalEndDateUtc;
String createdOnUtc;
String updatedOnUtc;
String shoppingCartType;
dynamic discountAmountInclTax;
dynamic subtotal;
dynamic subtotalWithVat;
dynamic subtotalVatAmount;
dynamic subtotalVatRate;
dynamic currency;
dynamic currencyn;
dynamic rentalStartDateUtc;
dynamic rentalEndDateUtc;
dynamic createdOnUtc;
dynamic updatedOnUtc;
dynamic shoppingCartType;
int productId;
PharmacyProduct product;
int customerId;
Customer customer;
double unitPriceInclTax;
double unitPriceExclTax;
double priceInclTax;
double priceExclTax;
dynamic discountAmountExclTax;
double originalProductCost;
String attributeDescription;
int downloadCount;
bool isDownloadActivated;
int licenseDownloadId;
double itemWeight;
ShoppingCart(
{this.languageId,
@ -45,7 +56,19 @@ class ShoppingCart {
this.productId,
this.product,
this.customerId,
this.customer});
this.customer,
this.unitPriceInclTax,
this.unitPriceExclTax,
this.priceInclTax,
this.priceExclTax,
this.discountAmountExclTax,
this.originalProductCost,
this.attributeDescription,
this.downloadCount,
this.isDownloadActivated,
this.licenseDownloadId,
this.itemWeight,
});
ShoppingCart.fromJson(Map<String, dynamic> json) {
languageId = json['language_id'];
@ -78,6 +101,18 @@ class ShoppingCart {
customer = json['customer'] != null
? new Customer.fromJson(json['customer'])
: null;
unitPriceInclTax = json['unit_price_incl_tax'];
unitPriceExclTax = json['unit_price_excl_tax'];
priceInclTax = json['price_incl_tax'];
priceExclTax = json['price_excl_tax'];
discountAmountExclTax = json['discount_amount_excl_tax'];
originalProductCost = json['original_product_cost'];
attributeDescription = json['attribute_description'];
downloadCount = json['download_count'];
isDownloadActivated = json['isDownload_activated'];
licenseDownloadId = json['license_download_id'];
itemWeight = json['item_weight'];
}
Map<String, dynamic> toJson() {
@ -110,6 +145,18 @@ class ShoppingCart {
if (this.customer != null) {
data['customer'] = this.customer.toJson();
}
data['unit_price_incl_tax'] = this.unitPriceInclTax;
data['unit_price_excl_tax'] = this.unitPriceExclTax;
data['price_incl_tax'] = this.priceInclTax;
data['price_excl_tax'] = this.priceExclTax;
data['discount_amount_excl_tax'] = this.discountAmountExclTax;
data['original_product_cost'] = this.originalProductCost;
data['attribute_description'] = this.attributeDescription;
data['download_count'] = this.downloadCount;
data['isDownload_activated'] = this.isDownloadActivated;
data['license_download_id'] = this.licenseDownloadId;
data['item_weight'] = this.itemWeight;
return data;
}
}

@ -0,0 +1,297 @@
import 'package:diplomaticquarterapp/core/model/pharmacies/BillingAddress.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/Customer.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/ShoppingCart.dart';
class OrderDetailModel {
String id;
int storeId;
String orderGuid;
bool pickUpInStore;
String paymentMethodSystemName;
String paymentName;
String paymentNamen;
String customerCurrencyCode;
dynamic currencyRate;
dynamic customerTaxDisplayTypeId;
dynamic vatNumber;
double orderSubtotalInclTax;
double orderSubtotalExclTax;
dynamic orderSubTotalDiscountInclTax;
dynamic orderSubTotalDiscountExclTax;
double orderShippingInclTax;
dynamic orderShippingExclTax;
dynamic paymentMethodAdditionalFeeInclTax;
dynamic paymentMethodAdditionalFeeExclTax;
String taxRates;
double orderTax;
dynamic orderDiscount;
dynamic productCount;
dynamic orderTotal;
dynamic refundedAmount;
dynamic rewardPointsWereAdded;
dynamic rxAttachments;
String checkoutAttributeDescription;
int customerLanguageId;
int affiliateId;
String customerIp;
dynamic authorizationTransactionId;
dynamic authorizationTransactionCode;
dynamic authorizationTransactionResult;
dynamic captureTransactionId;
dynamic captureTransactionResult;
dynamic subscriptionTransactionId;
dynamic paidDateUtc;
String shippingMethod;
String shippingRateComputationMethodSystemName;
String customValuesXml;
bool deleted;
String createdOnUtc;
Customer customer;
int customerId;
BillingAddress billingAddress;
BillingAddress shippingAddress;
List<ShoppingCart> orderItems;
int orderStatusId;
String orderStatus;
String orderStatusn;
int paymentStatusId;
String paymentStatus;
String paymentStatusn;
String shippingStatus;
String shippingStatusn;
String customerTaxDisplayType;
bool canCancel;
bool canRefund;
dynamic lakumAmount;
String preferDeliveryDate;
String preferDeliveryTime;
String preferDeliveryTimen;
OrderDetailModel(
{this.id,
this.storeId,
this.orderGuid,
this.pickUpInStore,
this.paymentMethodSystemName,
this.paymentName,
this.paymentNamen,
this.customerCurrencyCode,
this.currencyRate,
this.customerTaxDisplayTypeId,
this.vatNumber,
this.orderSubtotalInclTax,
this.orderSubtotalExclTax,
this.orderSubTotalDiscountInclTax,
this.orderSubTotalDiscountExclTax,
this.orderShippingInclTax,
this.orderShippingExclTax,
this.paymentMethodAdditionalFeeInclTax,
this.paymentMethodAdditionalFeeExclTax,
this.taxRates,
this.orderTax,
this.orderDiscount,
this.productCount,
this.orderTotal,
this.refundedAmount,
this.rewardPointsWereAdded,
this.rxAttachments,
this.checkoutAttributeDescription,
this.customerLanguageId,
this.affiliateId,
this.customerIp,
this.authorizationTransactionId,
this.authorizationTransactionCode,
this.authorizationTransactionResult,
this.captureTransactionId,
this.captureTransactionResult,
this.subscriptionTransactionId,
this.paidDateUtc,
this.shippingMethod,
this.shippingRateComputationMethodSystemName,
this.customValuesXml,
this.deleted,
this.createdOnUtc,
this.customer,
this.customerId,
this.billingAddress,
this.shippingAddress,
this.orderItems,
this.orderStatusId,
this.orderStatus,
this.orderStatusn,
this.paymentStatusId,
this.paymentStatus,
this.paymentStatusn,
this.shippingStatus,
this.shippingStatusn,
this.customerTaxDisplayType,
this.canCancel,
this.canRefund,
this.lakumAmount,
this.preferDeliveryDate,
this.preferDeliveryTime,
this.preferDeliveryTimen});
OrderDetailModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
storeId = json['store_id'];
orderGuid = json['order_guid'];
pickUpInStore = json['pick_up_in_store'];
paymentMethodSystemName = json['payment_method_system_name'];
paymentName = json['payment_name'];
paymentNamen = json['payment_namen'];
customerCurrencyCode = json['customer_currency_code'];
currencyRate = json['currency_rate'];
customerTaxDisplayTypeId = json['customer_tax_display_type_id'];
vatNumber = json['vat_number'];
orderSubtotalInclTax = json['order_subtotal_incl_tax'];
orderSubtotalExclTax = json['order_subtotal_excl_tax'];
orderSubTotalDiscountInclTax = json['order_sub_total_discount_incl_tax'];
orderSubTotalDiscountExclTax = json['order_sub_total_discount_excl_tax'];
orderShippingInclTax = json['order_shipping_incl_tax'];
orderShippingExclTax = json['order_shipping_excl_tax'];
paymentMethodAdditionalFeeInclTax =
json['payment_method_additional_fee_incl_tax'];
paymentMethodAdditionalFeeExclTax =
json['payment_method_additional_fee_excl_tax'];
taxRates = json['tax_rates'];
orderTax = json['order_tax'];
orderDiscount = json['order_discount'];
productCount = json['product_count'];
orderTotal = json['order_total'];
refundedAmount = json['refunded_amount'];
rewardPointsWereAdded = json['reward_points_were_added'];
rxAttachments = json['rx_attachments'];
checkoutAttributeDescription = json['checkout_attribute_description'];
customerLanguageId = json['customer_language_id'];
affiliateId = json['affiliate_id'];
customerIp = json['customer_ip'];
authorizationTransactionId = json['authorization_transaction_id'];
authorizationTransactionCode = json['authorization_transaction_code'];
authorizationTransactionResult = json['authorization_transaction_result'];
captureTransactionId = json['capture_transaction_id'];
captureTransactionResult = json['capture_transaction_result'];
subscriptionTransactionId = json['subscription_transaction_id'];
paidDateUtc = json['paid_date_utc'];
shippingMethod = json['shipping_method'];
shippingRateComputationMethodSystemName =
json['shipping_rate_computation_method_system_name'];
customValuesXml = json['custom_values_xml'];
deleted = json['deleted'];
createdOnUtc = json['created_on_utc'];
customer = json['customer'] != null
? new Customer.fromJson(json['customer'])
: null;
customerId = json['customer_id'];
billingAddress = json['billing_address'] != null
? new BillingAddress.fromJson(json['billing_address'])
: null;
shippingAddress = json['shipping_address'] != null
? new BillingAddress.fromJson(json['shipping_address'])
: null;
if (json['order_items'] != null) {
orderItems = new List<ShoppingCart>();
json['order_items'].forEach((v) {
orderItems.add(new ShoppingCart.fromJson(v));
});
}
orderStatusId = json['order_status_id'];
orderStatus = json['order_status'];
orderStatusn = json['order_statusn'];
paymentStatusId = json['payment_status_id'];
paymentStatus = json['payment_status'];
paymentStatusn = json['payment_statusn'];
shippingStatus = json['shipping_status'];
shippingStatusn = json['shipping_statusn'];
customerTaxDisplayType = json['customer_tax_display_type'];
canCancel = json['can_cancel'];
canRefund = json['can_refund'];
lakumAmount = json['lakum_amount'];
preferDeliveryDate = json['prefer_delivery_date'];
preferDeliveryTime = json['prefer_delivery_time'];
preferDeliveryTimen = json['prefer_delivery_timen'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['store_id'] = this.storeId;
data['order_guid'] = this.orderGuid;
data['pick_up_in_store'] = this.pickUpInStore;
data['payment_method_system_name'] = this.paymentMethodSystemName;
data['payment_name'] = this.paymentName;
data['payment_namen'] = this.paymentNamen;
data['customer_currency_code'] = this.customerCurrencyCode;
data['currency_rate'] = this.currencyRate;
data['customer_tax_display_type_id'] = this.customerTaxDisplayTypeId;
data['vat_number'] = this.vatNumber;
data['order_subtotal_incl_tax'] = this.orderSubtotalInclTax;
data['order_subtotal_excl_tax'] = this.orderSubtotalExclTax;
data['order_sub_total_discount_incl_tax'] =
this.orderSubTotalDiscountInclTax;
data['order_sub_total_discount_excl_tax'] =
this.orderSubTotalDiscountExclTax;
data['order_shipping_incl_tax'] = this.orderShippingInclTax;
data['order_shipping_excl_tax'] = this.orderShippingExclTax;
data['payment_method_additional_fee_incl_tax'] =
this.paymentMethodAdditionalFeeInclTax;
data['payment_method_additional_fee_excl_tax'] =
this.paymentMethodAdditionalFeeExclTax;
data['tax_rates'] = this.taxRates;
data['order_tax'] = this.orderTax;
data['order_discount'] = this.orderDiscount;
data['product_count'] = this.productCount;
data['order_total'] = this.orderTotal;
data['refunded_amount'] = this.refundedAmount;
data['reward_points_were_added'] = this.rewardPointsWereAdded;
data['rx_attachments'] = this.rxAttachments;
data['checkout_attribute_description'] = this.checkoutAttributeDescription;
data['customer_language_id'] = this.customerLanguageId;
data['affiliate_id'] = this.affiliateId;
data['customer_ip'] = this.customerIp;
data['authorization_transaction_id'] = this.authorizationTransactionId;
data['authorization_transaction_code'] = this.authorizationTransactionCode;
data['authorization_transaction_result'] =
this.authorizationTransactionResult;
data['capture_transaction_id'] = this.captureTransactionId;
data['capture_transaction_result'] = this.captureTransactionResult;
data['subscription_transaction_id'] = this.subscriptionTransactionId;
data['paid_date_utc'] = this.paidDateUtc;
data['shipping_method'] = this.shippingMethod;
data['shipping_rate_computation_method_system_name'] =
this.shippingRateComputationMethodSystemName;
data['custom_values_xml'] = this.customValuesXml;
data['deleted'] = this.deleted;
data['created_on_utc'] = this.createdOnUtc;
if (this.customer != null) {
data['customer'] = this.customer.toJson();
}
data['customer_id'] = this.customerId;
if (this.billingAddress != null) {
data['billing_address'] = this.billingAddress.toJson();
}
if (this.shippingAddress != null) {
data['shipping_address'] = this.shippingAddress.toJson();
}
if (this.orderItems != null) {
data['order_items'] = this.orderItems.map((v) => v.toJson()).toList();
}
data['order_status_id'] = this.orderStatusId;
data['order_status'] = this.orderStatus;
data['order_statusn'] = this.orderStatusn;
data['payment_status_id'] = this.paymentStatusId;
data['payment_status'] = this.paymentStatus;
data['payment_statusn'] = this.paymentStatusn;
data['shipping_status'] = this.shippingStatus;
data['shipping_statusn'] = this.shippingStatusn;
data['customer_tax_display_type'] = this.customerTaxDisplayType;
data['can_cancel'] = this.canCancel;
data['can_refund'] = this.canRefund;
data['lakum_amount'] = this.lakumAmount;
data['prefer_delivery_date'] = this.preferDeliveryDate;
data['prefer_delivery_time'] = this.preferDeliveryTime;
data['prefer_delivery_timen'] = this.preferDeliveryTimen;
return data;
}
}

@ -9,6 +9,71 @@ List<OrderModel> orderModelFromJson(String str) => List<OrderModel>.from(json.de
String orderModelToJson(List<OrderModel> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class OrderModel {
String id;
dynamic storeId;
String orderGuid;
bool pickUpInStore;
PaymentMethodSystemName paymentMethodSystemName;
PaymentName paymentName;
PaymentName paymentNamen;
CustomerCurrencyCode customerCurrencyCode;
dynamic currencyRate;
dynamic customerTaxDisplayTypeId;
dynamic vatNumber;
double orderSubtotalInclTax;
double orderSubtotalExclTax;
dynamic orderSubTotalDiscountInclTax;
dynamic orderSubTotalDiscountExclTax;
double orderShippingInclTax;
dynamic orderShippingExclTax;
dynamic paymentMethodAdditionalFeeInclTax;
dynamic paymentMethodAdditionalFeeExclTax;
String taxRates;
double orderTax;
dynamic orderDiscount;
dynamic productCount;
double orderTotal;
dynamic refundedAmount;
dynamic rewardPointsWereAdded;
String rxAttachments;
CheckoutAttributeDescription checkoutAttributeDescription;
dynamic customerLanguageId;
dynamic affiliateId;
CustomerIp customerIp;
String authorizationTransactionId;
dynamic authorizationTransactionCode;
dynamic authorizationTransactionResult;
dynamic captureTransactionId;
dynamic captureTransactionResult;
dynamic subscriptionTransactionId;
DateTime paidDateUtc;
ShippingMethod shippingMethod;
ShippingRateComputationMethodSystemName shippingRateComputationMethodSystemName;
String customValuesXml;
bool deleted;
DateTime createdOnUtc;
OrderModelCustomer customer;
dynamic customerId;
IngAddress billingAddress;
IngAddress shippingAddress;
List<OrderItem> orderItems;
dynamic orderStatusId;
OrderStatus orderStatus;
OrderStatusn orderStatusn;
dynamic paymentStatusId;
PaymentStatus paymentStatus;
PaymentStatusn paymentStatusn;
ShippingStatus shippingStatus;
ShippingStatusn shippingStatusn;
CustomerTaxDisplayType customerTaxDisplayType;
bool canCancel;
bool canRefund;
dynamic lakumAmount;
DateTime preferDeliveryDate;
PreferDeliveryTime preferDeliveryTime;
PreferDeliveryTimen preferDeliveryTimen;
OrderModel({
this.id,
this.storeId,
@ -75,70 +140,6 @@ class OrderModel {
this.preferDeliveryTimen,
});
String id;
dynamic storeId;
String orderGuid;
bool pickUpInStore;
dynamic paymentMethodSystemName;
dynamic paymentName;
dynamic paymentNamen;
dynamic customerCurrencyCode;
dynamic currencyRate;
dynamic customerTaxDisplayTypeId;
dynamic vatNumber;
double orderSubtotalInclTax;
double orderSubtotalExclTax;
dynamic orderSubTotalDiscountInclTax;
dynamic orderSubTotalDiscountExclTax;
double orderShippingInclTax;
dynamic orderShippingExclTax;
dynamic paymentMethodAdditionalFeeInclTax;
dynamic paymentMethodAdditionalFeeExclTax;
String taxRates;
double orderTax;
dynamic orderDiscount;
dynamic productCount;
double orderTotal;
dynamic refundedAmount;
dynamic rewardPointsWereAdded;
String rxAttachments;
dynamic checkoutAttributeDescription;
dynamic customerLanguageId;
dynamic affiliateId;
dynamic customerIp;
String authorizationTransactionId;
dynamic authorizationTransactionCode;
dynamic authorizationTransactionResult;
dynamic captureTransactionId;
dynamic captureTransactionResult;
dynamic subscriptionTransactionId;
dynamic paidDateUtc;
dynamic shippingMethod;
dynamic shippingRateComputationMethodSystemName;
String customValuesXml;
bool deleted;
dynamic createdOnUtc;
dynamic customer;
dynamic customerId;
dynamic billingAddress;
dynamic shippingAddress;
List<OrderItem> orderItems;
dynamic orderStatusId;
dynamic orderStatus;
dynamic orderStatusn;
dynamic paymentStatusId;
dynamic paymentStatus;
dynamic paymentStatusn;
dynamic shippingStatus;
dynamic shippingStatusn;
dynamic customerTaxDisplayType;
bool canCancel;
bool canRefund;
dynamic lakumAmount;
dynamic preferDeliveryDate;
dynamic preferDeliveryTime;
dynamic preferDeliveryTimen;
factory OrderModel.fromJson(Map<String, dynamic> json) => OrderModel(
id: json["id"],
storeId: json["store_id"],
@ -1470,7 +1471,4 @@ class EnumValues<T> {
}
return reverseMap;
}
}
}

@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.
import 'package:diplomaticquarterapp/pages/appUpdatePage/app_update_page.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
@ -213,8 +214,8 @@ class BaseAppClient {
Future navigateToAppUpdate(context, String text) async {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => AppUpdatePage(appUpdateText: text)));
FadePage(
page: AppUpdatePage(appUpdateText: text)));
}
get(String endPoint,

@ -185,7 +185,7 @@ class OrderPreviewViewModel extends BaseViewModel {
await _orderService.makeOrder(paymentCheckoutData, cartResponse.shoppingCarts);
if (_orderService.hasError) {
error = _orderService.error;
setState(ViewState.Error);
setState(ViewState.ErrorLocal);
} else {
setState(ViewState.Idle);
}

@ -1,18 +1,17 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/Addresses.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/LacumAccountInformation.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/ShoppingCartResponse.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_detail.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/payment-checkout-data.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/order-preview-service.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/order/Order.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/order/OrderDetails.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/cancelOrder_service.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/orderDetails_service.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/order_service.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_model.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/orders_model.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:flutter/material.dart';
import '../../../locator.dart';
import '../base_view_model.dart';
@ -21,10 +20,10 @@ class OrderModelViewModel extends BaseViewModel {
List<Orders> get orders => _orderService.orderList;
OrderDetailsService _orderDetailsService = locator<OrderDetailsService>();
List<OrderModel> get orderListModel => _orderDetailsService.orderList;
List<OrderDetailModel> get orderListModel => _orderDetailsService.orderList;
CancelOrderService _cancelOrderService = locator<CancelOrderService>();
List<OrderModel> get cancelOrder => _cancelOrderService.cancelOrderList;
List<OrderDetailModel> get cancelOrder => _cancelOrderService.cancelOrderList;
OrderPreviewService _orderServices = locator<OrderPreviewService>();
@ -98,7 +97,7 @@ class OrderModelViewModel extends BaseViewModel {
return res;
}
Future makeReview(Product product, double rating, String reviewText) async {
Future makeReview(PharmacyProduct product, double rating, String reviewText) async {
setState(ViewState.Busy);
await _orderDetailsService.makeReview(product, rating, reviewText);
if (_orderDetailsService.hasError) {

@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
@ -111,8 +112,8 @@ class _NewCMCStepTowPageState
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) =>
FadePage(
page:
CMCLocationPage(
latitude: latitude,
longitude: longitude,

@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/widgets/dialogs/select_location_dialog.dart
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
@ -112,8 +113,8 @@ class _NewHomeHealthCareStepTowPageState
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) =>
FadePage(
page:
LocationPage(
latitude: latitude,
longitude: longitude,

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'dart:math';
@ -508,8 +509,8 @@ class _BMICalculatorState extends State<BMICalculator> {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ResultPage(
FadePage(
page: ResultPage(
finalResult: bmiResult,
textResult: textResult,
msg: msg,

@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:percent_indicator/percent_indicator.dart';
@ -114,8 +115,8 @@ class ResultPage extends StatelessWidget {
handler: (){
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BariatricsPage(1, 1, finalResult)),
FadePage(
page: BariatricsPage(1, 1, finalResult)),
);
},
),

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'dart:math';
@ -701,8 +702,8 @@ class _BmrCalculatorState extends State<BmrCalculator> {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BmrResultPage(
FadePage(
page: BmrResultPage(
bmrResult: bmrResult,
calories: calories,
)),

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'dart:math';
@ -1001,8 +1002,8 @@ class _BodyFatState extends State<BodyFat> {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => FatResult(
FadePage(
page: FatResult(
bodyFat: bodyFat,
fat: fat,
textResult: textResult,

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'calorie_result_page.dart';
@ -678,8 +679,8 @@ class _CalorieCalculatorState extends State<CalorieCalculator> {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CalorieResultPage(
FadePage(
page: CalorieResultPage(
calorie: calories,
)),
);

@ -1,10 +1,10 @@
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'dart:math';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart';
import 'package:flutter/services.dart';
import 'carbs_result_page.dart';
@ -207,8 +207,7 @@ class _CarbsState extends State<Carbs> {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CalorieCalculator()),
FadePage(page: CalorieCalculator()),
);
}
});
@ -340,8 +339,8 @@ class _CarbsState extends State<Carbs> {
calculate();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CarbsResult(
FadePage(
page: CarbsResult(
cCal: cCal,
pCal: pCal,
fCal: fCal,

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
import 'package:intl/intl.dart';
@ -121,8 +122,8 @@ class _DeliveryDueState extends State<DeliveryDue> {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DeliveryDueResult(
FadePage(
page: DeliveryDueResult(
conceivedDate: conceivedDate,
dateFrom: dateFrom,
dateTo: dateTo,

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'dart:math';
@ -532,8 +533,8 @@ class _IdealBodyState extends State<IdealBody> {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => IdealBodyResult(
FadePage(
page: IdealBodyResult(
idealBodyWeight: idealWeight,
minRange: minRange,
mixRange: maxRange,

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
import 'package:intl/intl.dart';
@ -329,8 +330,8 @@ class _OvulationPeriodState extends State<OvulationPeriod> {
{
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => OvulationResult(
FadePage(
page: OvulationResult(
conceivedDate: conceivedDate,
dateFrom: dateFrom,
dateTo: dateTo,

@ -6,21 +6,16 @@ import 'package:diplomaticquarterapp/core/model/blooddonation/get_all_cities.dar
//import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info.dart';
import 'package:diplomaticquarterapp/core/service/blood/blood_details_servies.dart';
import 'package:diplomaticquarterapp/core/viewModels/blooddonation/blood_details_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/pages/Blood/user_agreement_page.dart';
import 'package:diplomaticquarterapp/pages/ToDoList/payment_method_select.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/balance/dialogs/SelectCiteisDialog.dart';
import 'package:diplomaticquarterapp/pages/medical/balance/dialogs/SelectHospitalDialog.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/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -30,14 +25,11 @@ import 'package:flutter/material.dart';
import 'package:giffy_dialog/giffy_dialog.dart';
import 'package:provider/provider.dart';
//import '../../../core/model/my_balance/AdvanceModel.dart';
import 'confirm_payment_page.dart';
import 'dialogs/SelectBeneficiaryDialog.dart';
import 'dialogs/SelectBloodDialog.dart';
import 'dialogs/SelectGenderDialog.dart';
import 'dialogs/SelectPatientFamilyDialog.dart';
import 'dialogs/SelectPatientInfoDialog.dart';
import 'new_text_Field.dart';
enum BeneficiaryType { MyAccount, MyFamilyFiles, OtherAccount, NON }
enum Gender { Male, Female, NON }
@ -63,7 +55,8 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
AuthenticatedUser authenticatedUser;
GetAllSharedRecordsByStatusList selectedPatientFamily;
AdvanceModel advanceModel = AdvanceModel();
List_BloodGroupDetailsModel bloodDetails = List_BloodGroupDetailsModel(bloodGroup: "A-");
List_BloodGroupDetailsModel bloodDetails =
List_BloodGroupDetailsModel(bloodGroup: "A-");
AppSharedPreferences sharedPref = AppSharedPreferences();
AuthenticatedUser authUser;
var checkedValue = false;
@ -180,9 +173,8 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
),
InkWell(
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) =>
UserAgreementPage()));
Navigator.of(context)
.push(FadePage(page: UserAgreementPage()));
},
child: Container(
child: Texts(
@ -267,7 +259,6 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
),
],
),
SizedBox(
height: MediaQuery.of(context).size.height * 0.15,
)
@ -291,8 +282,9 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
),
label: TranslationBase.of(context).save,
onTap: () async {
if(_selectedHospital == null){
AppToast.showErrorToast(message: TranslationBase.of(context).selectCity);
if (_selectedHospital == null) {
AppToast.showErrorToast(
message: TranslationBase.of(context).selectCity);
return;
}
bloodDetails.city = projectProvider.isArabic
@ -536,7 +528,8 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
return "Select Blood Type"; //TranslationBase.of(context).selectBeneficiary;
}
String getHospitalName(ProjectViewModel projectProvider, BuildContext context) {
String getHospitalName(
ProjectViewModel projectProvider, BuildContext context) {
if (_selectedHospital != null)
return projectProvider.isArabic
? _selectedHospital.descriptionN

@ -14,6 +14,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
@ -628,8 +629,8 @@ class _BookConfirmState extends State<BookConfirm> {
GifLoaderDialogUtils.hideDialog(context);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BookSuccess(
FadePage(
page: BookSuccess(
docObject: docObject,
patientShareResponse: patientShareResponse,
appoDateFormatted: widget.appoDateFormatted,

@ -12,6 +12,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
@ -592,7 +593,7 @@ class _BookSuccessState extends State<BookSuccess> {
appo.appointmentNo = widget.patientShareResponse.appointmentNo;
Navigator.push(
context, MaterialPageRoute(builder: (context) => PaymentMethod()))
context, FadePage(page: PaymentMethod()))
.then((value) {
print(value);
if (value != null) {
@ -920,11 +921,11 @@ class _BookSuccessState extends State<BookSuccess> {
Future navigateToQR(context, String appoQR) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => QRCode(
patientShareResponse: widget.patientShareResponse,
appoQR: appoQR,
)));
FadePage(
page: QRCode(
patientShareResponse: widget.patientShareResponse,
appoQR: appoQR,
)));
}
_getNormalText(text) {

@ -12,6 +12,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:rating_bar/rating_bar.dart';
@ -153,7 +154,8 @@ class _DoctorProfileState extends State<DoctorProfile>
alignment: Alignment.center,
child: Text(
"(" +
widget.docProfileList.noOfPatientsRate.toString() +
widget.docProfileList.noOfPatientsRate
.toString() +
" " +
TranslationBase.of(context).reviews +
")",
@ -279,7 +281,8 @@ class _DoctorProfileState extends State<DoctorProfile>
color: Theme.of(context).primaryColor,
margin: EdgeInsets.only(bottom: 5.0),
padding: EdgeInsets.all(10.0),
child: Text(TranslationBase.of(context).doctorRating,
child: Text(
TranslationBase.of(context).doctorRating,
style: TextStyle(
fontSize: 22.0, color: Colors.white))),
Container(
@ -297,8 +300,11 @@ class _DoctorProfileState extends State<DoctorProfile>
margin: EdgeInsets.only(top: 5.0),
alignment: Alignment.center,
child: RatingBar.readOnly(
initialRating:
this.widget.doctor.actualDoctorRate.toDouble(),
initialRating: this
.widget
.doctor
.actualDoctorRate
.toDouble(),
size: 35.0,
filledColor: Colors.yellow[700],
emptyColor: Colors.grey[500],
@ -311,7 +317,11 @@ class _DoctorProfileState extends State<DoctorProfile>
Container(
margin: EdgeInsets.only(top: 10.0),
child: Text(
this.widget.doctor.noOfPatientsRate.toString() +
this
.widget
.doctor
.noOfPatientsRate
.toString() +
" " +
TranslationBase.of(context).reviews,
style: TextStyle(
@ -327,7 +337,8 @@ class _DoctorProfileState extends State<DoctorProfile>
child: Text(
TranslationBase.of(context).excellent,
style: TextStyle(
fontSize: 13.0, color: Colors.black))),
fontSize: 13.0,
color: Colors.black))),
Container(
margin: EdgeInsets.only(top: 10.0),
child: SizedBox(
@ -349,9 +360,11 @@ class _DoctorProfileState extends State<DoctorProfile>
width: 100.0,
margin: EdgeInsets.only(
top: 10.0, left: 15.0, right: 15.0),
child: Text(TranslationBase.of(context).v_good,
child: Text(
TranslationBase.of(context).v_good,
style: TextStyle(
fontSize: 13.0, color: Colors.black))),
fontSize: 13.0,
color: Colors.black))),
Container(
margin: EdgeInsets.only(top: 10.0),
child: SizedBox(
@ -373,9 +386,11 @@ class _DoctorProfileState extends State<DoctorProfile>
width: 100.0,
margin: EdgeInsets.only(
top: 10.0, left: 15.0, right: 15.0),
child: Text(TranslationBase.of(context).good,
child: Text(
TranslationBase.of(context).good,
style: TextStyle(
fontSize: 13.0, color: Colors.black))),
fontSize: 13.0,
color: Colors.black))),
Container(
margin: EdgeInsets.only(top: 10.0),
child: SizedBox(
@ -397,9 +412,11 @@ class _DoctorProfileState extends State<DoctorProfile>
width: 100.0,
margin: EdgeInsets.only(
top: 10.0, left: 15.0, right: 15.0),
child: Text(TranslationBase.of(context).average,
child: Text(
TranslationBase.of(context).average,
style: TextStyle(
fontSize: 13.0, color: Colors.black))),
fontSize: 13.0,
color: Colors.black))),
Container(
margin: EdgeInsets.only(top: 10.0),
child: SizedBox(
@ -422,9 +439,11 @@ class _DoctorProfileState extends State<DoctorProfile>
margin: EdgeInsets.only(
top: 10.0, left: 15.0, right: 15.0),
child: Text(
TranslationBase.of(context).below_average,
TranslationBase.of(context)
.below_average,
style: TextStyle(
fontSize: 13.0, color: Colors.black))),
fontSize: 13.0,
color: Colors.black))),
Container(
margin: EdgeInsets.only(top: 10.0),
child: SizedBox(
@ -440,7 +459,8 @@ class _DoctorProfileState extends State<DoctorProfile>
),
),
Container(
margin: EdgeInsets.only(top: 40.0), child: Divider()),
margin: EdgeInsets.only(top: 40.0),
child: Divider()),
Container(
margin: EdgeInsets.only(top: 0.0),
child: Align(
@ -462,7 +482,8 @@ class _DoctorProfileState extends State<DoctorProfile>
onPressed: () {
Navigator.of(context).pop();
},
child: Text(TranslationBase.of(context).cancel,
child: Text(
TranslationBase.of(context).cancel,
style: TextStyle(fontSize: 18.0)),
),
),
@ -485,7 +506,8 @@ class _DoctorProfileState extends State<DoctorProfile>
}
double getRatingWidth(int patientNumber) {
var width = (patientNumber / this.widget.docProfileList.noOfPatientsRate) * 100;
var width =
(patientNumber / this.widget.docProfileList.noOfPatientsRate) * 100;
return width;
}
@ -528,8 +550,8 @@ class _DoctorProfileState extends State<DoctorProfile>
Future navigateToBookConfirm(context) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BookConfirm(
FadePage(
page: BookConfirm(
doctor: widget.doctor,
isLiveCareAppointment: widget.isLiveCareAppointment,
selectedDate: DocAvailableAppointments.selectedDate,

@ -1,21 +1,18 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/components/SearchByClinic.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/components/SearchByDoctor.dart';
import 'package:diplomaticquarterapp/uitl/location_util.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/arrow_back.dart';
import 'package:diplomaticquarterapp/widgets/others/bottom_bar.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'components/SearchByClinic.dart';
class Search extends StatefulWidget {
final int type;
final List clnicIds;
Search({this.type = 0, this.clnicIds});
@override
_SearchState createState() => _SearchState();
}
@ -43,9 +40,12 @@ class _SearchState extends State<Search> with TickerProviderStateMixin {
children: [
TabBar(
tabs: [
Tab(text: TranslationBase.of(context).clinicName),
Tab(
text: TranslationBase.of(context).doctorName,
child: Text(TranslationBase.of(context).clinicName,
style: TextStyle(color: Colors.black))),
Tab(
child: Text(TranslationBase.of(context).doctorName,
style: TextStyle(color: Colors.black)),
)
],
controller: _tabController,

@ -16,6 +16,7 @@ import '../../../uitl/date_uitl.dart';
class DocAvailableAppointments extends StatefulWidget {
DoctorList doctor;
static bool areSlotsAvailable = false;
static bool areAppointmentsAvailable = false;
static DateTime selectedAppoDateTime;
static String selectedDate;
static String selectedTime;
@ -137,7 +138,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5.0),
side: BorderSide(
color: Colors.blue[400], //Color of the border
color: Color(0xff76cfb7), //Color of the border
style: BorderStyle.solid, //Style of the border
width: 1.5, //width of the border
),
@ -209,8 +210,8 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
color: _calendarController.isSelected(date)
? Colors.green[400]
: _calendarController.isToday(date)
? Colors.brown[300]
: Colors.blue[400],
? Colors.transparent
: Color(0xff76cfb7),
),
width: 40.0,
height: 40.0,
@ -321,7 +322,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
Widget getSelectedButton(int index) {
return RaisedButton(
color: Colors.blue[400],
color: Color(0xff76cfb7), //Color of the border
textColor: Colors.white,
onPressed: () {
setState(() {
@ -345,17 +346,22 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
GifLoaderDialogUtils.hideDialog(context);
if (res['MessageStatus'] == 1) {
if (res['FreeTimeSlots'].length != 0) {
DocAvailableAppointments.areAppointmentsAvailable = true;
freeSlotsResponse = res['FreeTimeSlots'];
print("res['FreeTimeSlots']");
print(res['FreeTimeSlots'].length);
_getJSONSlots().then((value) => {
setState(() => {_events.clear(), _events = value})
});
} else {}
} else {
DocAvailableAppointments.areAppointmentsAvailable = false;
}
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
}
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: err);
print(err);
});
}
@ -370,18 +376,22 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
GifLoaderDialogUtils.hideDialog(context);
if (res['MessageStatus'] == 1) {
if (res['PatientER_DoctorFreeSlots'].length != 0) {
DocAvailableAppointments.areAppointmentsAvailable = true;
freeSlotsResponse = res['PatientER_DoctorFreeSlots'];
print("res['PatientER_DoctorFreeSlots']");
print(res['PatientER_DoctorFreeSlots'].length);
_getJSONSlots().then((value) => {
setState(() => {_events.clear(), _events = value})
});
} else {}
} else {
DocAvailableAppointments.areAppointmentsAvailable = false;
}
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
}
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: err);
print(err);
});
}
@ -399,10 +409,10 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
decoration: BoxDecoration(
shape: BoxShape.circle,
color: _calendarController.isSelected(date)
? Colors.green[400]
? Color(0xffB8382C)
: _calendarController.isToday(date)
? Colors.brown[300]
: Colors.blue[400],
: Color(0xff76cfb7),
),
width: 40.0,
height: 40.0,

@ -12,6 +12,7 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
class SearchByClinic extends StatefulWidget {
@ -295,8 +296,8 @@ class _SearchByClinicState extends State<SearchByClinic> {
BuildContext context, SearchInfo searchInfo) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DentalComplaints(searchInfo: searchInfo),
FadePage(
page: DentalComplaints(searchInfo: searchInfo),
),
);
}
@ -309,8 +310,8 @@ class _SearchByClinicState extends State<SearchByClinic> {
isProjectLoaded = false;
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SearchResults(
FadePage(
page: SearchResults(
isLiveCareAppointment: false,
doctorsList: docList,
patientDoctorAppointmentListHospital:

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsLis
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import '../SearchResults.dart';
@ -160,8 +161,8 @@ class _SearchByDoctorState extends State<SearchByDoctor> {
patientDoctorAppointmentListHospital) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SearchResults(
FadePage(
page: SearchResults(
isLiveCareAppointment: false,
doctorsList: docList,
patientDoctorAppointmentListHospital:

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import '../../../Constants.dart';
@ -8,6 +9,7 @@ class CardCommon extends StatelessWidget {
final text;
final subText;
final type;
const CardCommon(
{@required this.image,
@required this.text,
@ -58,9 +60,9 @@ class CardCommon extends StatelessWidget {
Future navigateToSearch(context, type) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Search(
type: type,
)));
FadePage(
page: Search(
type: type,
)));
}
}

@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
// ignore: must_be_immutable
@ -128,8 +129,8 @@ class _DentalComplaintCardState extends State<DentalComplaintCard> {
patientDoctorAppointmentListHospital) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SearchResults(
FadePage(
page: SearchResults(
doctorsList: docList,
patientDoctorAppointmentListHospital:
patientDoctorAppointmentListHospital)));

@ -4,16 +4,15 @@ import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsLis
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:rating_bar/rating_bar.dart';
import '../DoctorProfile.dart';
class DoctorView extends StatelessWidget {
final DoctorList doctor;
bool isLiveCareAppointment;
final DoctorList doctor;
bool isLiveCareAppointment;
DoctorView({@required this.doctor, @required this.isLiveCareAppointment});
@ -52,48 +51,53 @@ class DoctorView extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
if(doctor.doctorTitle!=null)
Text(this.doctor.doctorTitle + " " + this.doctor.name,
style: TextStyle(
fontSize: 14.0,
color: Colors.grey[700],
letterSpacing: 1.0)),
Container(
margin: EdgeInsets.only(top: 3.0),
child: Text(this.doctor.clinicName != null ? this.doctor.clinicName : "",
if (doctor.doctorTitle != null)
Text(this.doctor.doctorTitle + " " + this.doctor.name,
style: TextStyle(
fontSize: 12.0,
color: Colors.grey[600],
fontSize: 14.0,
color: Colors.grey[700],
letterSpacing: 1.0)),
),
Container(
margin: EdgeInsets.only(top: 3.0),
child: Text(this.doctor.projectName,
child: Text(
this.doctor.clinicName != null
? this.doctor.clinicName
: "",
style: TextStyle(
fontSize: 12.0,
color: Colors.grey[600],
letterSpacing: 1.0)),
),
if(doctor.speciality!=null)
Container(
margin: EdgeInsets.only(top: 3.0, bottom: 3.0),
child: Text(
getDoctorSpeciality(this.doctor.speciality).trim(),
margin: EdgeInsets.only(top: 3.0),
child: Text(this.doctor.projectName,
style: TextStyle(
fontSize: 12.0,
color: Colors.grey[600],
letterSpacing: 1.0)),
),
this.doctor.nearestFreeSlot != null ? Container(
margin: EdgeInsets.only(top: 3.0, bottom: 3.0),
child: Text(
getDate(this.doctor.nearestFreeSlot),
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold,
color: Colors.green[600],
letterSpacing: 1.0)),
) : Container(),
if (doctor.speciality != null)
Container(
margin: EdgeInsets.only(top: 3.0, bottom: 3.0),
child: Text(
getDoctorSpeciality(this.doctor.speciality)
.trim(),
style: TextStyle(
fontSize: 12.0,
color: Colors.grey[600],
letterSpacing: 1.0)),
),
this.doctor.nearestFreeSlot != null
? Container(
margin: EdgeInsets.only(top: 3.0, bottom: 3.0),
child: Text(getDate(this.doctor.nearestFreeSlot),
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold,
color: Colors.green[600],
letterSpacing: 1.0)),
)
: Container(),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,
@ -175,7 +179,7 @@ class DoctorView extends StatelessWidget {
}
String getMinute(DateTime dateObj) {
if(dateObj.minute == 0) {
if (dateObj.minute == 0) {
return dateObj.minute.toString() + "0";
} else {
return dateObj.minute.toString();
@ -186,12 +190,12 @@ class DoctorView extends StatelessWidget {
{isAppo}) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DoctorProfile(
doctor: docObject,
isLiveCareAppointment: isLiveCareAppointment,
docProfileList: docProfile,
isOpenAppt: isAppo,
)));
FadePage(
page: DoctorProfile(
doctor: docObject,
isLiveCareAppointment: isLiveCareAppointment,
docProfileList: docProfile,
isOpenAppt: isAppo,
)));
}
}

@ -1,10 +1,10 @@
import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart';
import 'package:diplomaticquarterapp/core/model/childvaccines/delete_baby_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/child_vaccines_view_model.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/add_newchild_page.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/vaccinationtable_page.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
@ -12,9 +12,6 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'dialogs/delete_child.dart';
class ChildPage extends StatefulWidget {
@override
@ -60,7 +57,8 @@ class _ChildPageState extends State<ChildPage>
Navigator.push(
context,
FadePage(
page: VaccinationTablePage(model.babyInformationModelList[index]),
page: VaccinationTablePage(model
.babyInformationModelList[index]),
),
);
},
@ -119,7 +117,9 @@ class _ChildPageState extends State<ChildPage>
Navigator.push(
context,
FadePage(
page: VaccinationTablePage(model.babyInformationModelList[index]),
page: VaccinationTablePage(model
.babyInformationModelList[
index]),
),
);
},
@ -159,9 +159,9 @@ class _ChildPageState extends State<ChildPage>
newChild: deleteBaby);
if (model.isDeleted) {
AppToast.showSuccessToast(
message:
TranslationBase.of(context)
.recordDeleted);
message: TranslationBase.of(
context)
.recordDeleted);
Navigator.pop(
context, model.isDeleted);
} else {
@ -183,34 +183,34 @@ class _ChildPageState extends State<ChildPage>
],
))),
),
bottomSheet: Container(
height: height * 0.15,
width: double.infinity,
padding: EdgeInsets.all(16),
child: SecondaryButton(
textColor: Colors.white,
color: checkedValue == false
? Colors.white24
: Color.fromRGBO(
63,
72,
74,
1,
bottomSheet: Container(
height: height * 0.15,
width: double.infinity,
padding: EdgeInsets.all(16),
child: SecondaryButton(
textColor: Colors.white,
color: checkedValue == false
? Colors.white24
: Color.fromRGBO(
63,
72,
74,
1,
),
label: TranslationBase.of(context).addNewChild,
//
onTap: () {
Navigator.push(
context,
FadePage(
page: AddNewChildPage(),
),
).then((value) {
if (value) model.getNewUserOrders();
});
},
),
),
label: TranslationBase.of(context).addNewChild,
//
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddNewChildPage(),
),
).then((value) {
if (value) model.getNewUserOrders();
});
},
),
),
));
}
}

@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:maps_launcher/maps_launcher.dart';
import 'package:provider/provider.dart';
@ -285,8 +286,8 @@ class _CovidDrivethruLocationState extends State<CovidDrivethruLocation> {
});
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CovidPaymentDetails(
FadePage(
page: CovidPaymentDetails(
covidPaymentInfoResponse: covidPaymentInfoResponse,
projectID: int.parse(projectID),
)));

@ -296,7 +296,7 @@ class _CovidPaymentAlertState extends State<CovidPaymentAlert> {
}
Navigator.push(
context, MaterialPageRoute(builder: (context) => PaymentMethod()))
context, FadePage(page: PaymentMethod()))
.then((value) {
print(value);
if (value != null) {

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/pages/Covid-DriveThru/Covid-TimeSlots.dart'
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@ -17,7 +18,7 @@ class CovidPaymentDetails extends StatefulWidget {
_CovidPaymentDetailsState createState() => _CovidPaymentDetailsState();
}
class _CovidPaymentDetailsState extends State<CovidPaymentDetails> {
class _CovidPaymentDetailsState extends State<CovidPaymentDetails> {
bool isAgree = false;
@override
@ -197,7 +198,8 @@ class _CovidPaymentDetailsState extends State<CovidPaymentDetails> {
onPressed: () {
cancel();
},
child: Text(TranslationBase.of(context).cancel, style: TextStyle(fontSize: 18.0)),
child: Text(TranslationBase.of(context).cancel,
style: TextStyle(fontSize: 18.0)),
),
),
),
@ -218,7 +220,8 @@ class _CovidPaymentDetailsState extends State<CovidPaymentDetails> {
disabledTextColor: Colors.white,
disabledColor: Colors.grey[500],
onPressed: isAgree ? next : null,
child: Text(TranslationBase.of(context).next, style: TextStyle(fontSize: 18.0)),
child: Text(TranslationBase.of(context).next,
style: TextStyle(fontSize: 18.0)),
),
),
),
@ -232,10 +235,10 @@ class _CovidPaymentDetailsState extends State<CovidPaymentDetails> {
void next() {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CovidTimeSlots(
projectID: widget.projectID,
)));
FadePage(
page: CovidTimeSlots(
projectID: widget.projectID,
)));
}
cancel() {

@ -14,6 +14,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@ -67,7 +68,8 @@ class _CovidPaymentSummaryState extends State<CovidPaymentSummary> {
Image.asset(getImagePath(widget.selectedPaymentMethod)),
),
Texts(
'${widget.patientShareResponse.patientShareWithTax} ' + TranslationBase.of(context).sar,
'${widget.patientShareResponse.patientShareWithTax} ' +
TranslationBase.of(context).sar,
fontSize: 26,
bold: true,
)
@ -300,11 +302,11 @@ class _CovidPaymentSummaryState extends State<CovidPaymentSummary> {
Future navigateToQR(context, String appoQR) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => QRCode(
patientShareResponse: widget.patientShareResponse,
appoQR: appoQR,
)));
FadePage(
page: QRCode(
patientShareResponse: widget.patientShareResponse,
appoQR: appoQR,
)));
}
String getImagePath(String paymentMethod) {

@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@ -57,15 +58,14 @@ class NotificationsPage extends StatelessWidget {
.map(
(notification) => InkWell(
onTap: () async {
if(!notification.isRead)
if (!notification.isRead)
model.markAsRead(notification.id);
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) =>
NotificationsDetailsPage(
notification: notification,
)));
FadePage(
page: NotificationsDetailsPage(
notification: notification,
)));
},
child: Container(
width: double.infinity,
@ -122,8 +122,7 @@ class NotificationsPage extends StatelessWidget {
..add(
InkWell(
onTap: () async {
GifLoaderDialogUtils.showMyDialog(
context);
GifLoaderDialogUtils.showMyDialog(context);
currentIndex++;
GetNotificationsRequestModel
getNotificationsRequestModel =
@ -132,10 +131,9 @@ class NotificationsPage extends StatelessWidget {
pagingSize: 14,
notificationStatusID: 2);
await model.getNotifications(getNotificationsRequestModel,context);
GifLoaderDialogUtils.hideDialog(
context);
await model.getNotifications(
getNotificationsRequestModel, context);
GifLoaderDialogUtils.hideDialog(context);
},
child: Center(
child: Image.asset('assets/images/notf.png'),

@ -14,11 +14,13 @@ import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/pickupLocation/PickupLocationFromMap.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart';
import '../AvailableAppointmentsPage.dart';
enum HaveAppointment { YES, NO }
@ -87,17 +89,16 @@ class _PickupLocationState extends State<PickupLocation> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PickupLocationFromMap(
latitude: _latitude,
longitude: _longitude,
onPick: (value) {
setState(() {
_result = value;
});
},
),
),
FadePage(
page: PickupLocationFromMap(
latitude: _latitude,
longitude: _longitude,
onPick: (value) {
setState(() {
_result = value;
});
},
)),
);
},
child: Container(
@ -111,7 +112,8 @@ class _PickupLocationState extends State<PickupLocation> {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(child: Texts(getSelectFromMapName(context))),
Expanded(
child: Texts(getSelectFromMapName(context))),
Icon(
FontAwesomeIcons.mapMarkerAlt,
size: 24,
@ -327,8 +329,8 @@ class _PickupLocationState extends State<PickupLocation> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PickupLocationFromMap(
FadePage(
page: PickupLocationFromMap(
latitude: _latitude,
longitude: _longitude,
onPick: (value) {
@ -351,7 +353,8 @@ class _PickupLocationState extends State<PickupLocation> {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(child: Texts(getSelectFromMapName(context))),
Expanded(
child: Texts(getSelectFromMapName(context))),
Icon(
FontAwesomeIcons.mapMarkerAlt,
size: 24,
@ -366,7 +369,6 @@ class _PickupLocationState extends State<PickupLocation> {
SizedBox(
height: 45,
),
],
),
),
@ -409,18 +411,16 @@ class _PickupLocationState extends State<PickupLocation> {
widget.patientER.pickupLocationLattitude;
widget.patientER.longitude =
widget.patientER.pickupLocationLongitude;
widget.patientER.dropoffLocationName =
_selectedHospital.name;
widget.patientER.dropoffLocationName = _selectedHospital.name;
widget.patientER.createdBy =
widget.amRequestViewModel.user.patientID;
widget.patientER.isOutPatient =
widget.amRequestViewModel.user.outSA;
widget.patientER.patientIdentificationID = widget
.amRequestViewModel.user.patientIdentificationNo;
widget.patientER.patientIdentificationID =
widget.amRequestViewModel.user.patientIdentificationNo;
widget.patientER.pickupDateTime =
DateUtil.convertDateToStringLocation(DateTime.now());
widget.patientER.pickupLocationName =
_result.formattedAddress;
widget.patientER.pickupLocationName = _result.formattedAddress;
widget.patientER.projectID =
widget.amRequestViewModel.user.projectID;
widget.patientER.requesterFileNo =
@ -498,8 +498,8 @@ class _PickupLocationState extends State<PickupLocation> {
GifLoaderDialogUtils.hideDialog(context);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AvailableAppointmentsPage(
FadePage(
page: AvailableAppointmentsPage(
appointmentsAllHistoryList:
widget.amRequestViewModel.appoitmentAllHistoryResultList,
),

@ -10,6 +10,7 @@ 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/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:rating_bar/rating_bar.dart';
@ -236,9 +237,10 @@ class _AppointmentDetailsState extends State<AppointmentDetails>
Future navigateToBookConfirm(context) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BookConfirm(
FadePage(
page: BookConfirm(
doctor: getDoctorObject(),
isLiveCareAppointment: widget.appo.isLiveCareAppointment,
selectedDate: DocAvailableAppointments.selectedDate,
selectedTime: DocAvailableAppointments.selectedTime)));
}

@ -82,9 +82,17 @@ class _MyAppointmentsState extends State<MyAppointments>
child: Column(children: [
TabBar(
tabs: [
Tab(text: TranslationBase.of(context).booked),
Tab(text: TranslationBase.of(context).confirmed),
Tab(text: TranslationBase.of(context).arrived),
Tab(
child: Text(TranslationBase.of(context).booked,
style: TextStyle(color: Colors.black))),
Tab(
child: Text(TranslationBase.of(context).confirmed,
style: TextStyle(color: Colors.black)),
),
Tab(
child: Text(TranslationBase.of(context).arrived,
style: TextStyle(color: Colors.black)),
)
],
controller: _tabController,
),
@ -103,7 +111,7 @@ class _MyAppointmentsState extends State<MyAppointments>
leading: Radio(
value: FilterType.Clinic,
groupValue: filterType,
activeColor: Theme.of(context).primaryColor,
activeColor: Color(0xffB8382C),
onChanged: (FilterType value) {
setFilterType(value);
},
@ -120,7 +128,7 @@ class _MyAppointmentsState extends State<MyAppointments>
leading: Radio(
value: FilterType.Hospital,
groupValue: filterType,
activeColor: Theme.of(context).primaryColor,
activeColor: Color(0xffB8382C),
onChanged: (FilterType value) => setFilterType(value),
),
),

@ -110,7 +110,7 @@ class _AppointmentActionsState extends State<AppointmentActions> {
child: Text(e.title,
overflow: TextOverflow.clip,
style: TextStyle(
color: new Color(0xFF40ACC9),
color: new Color(0xffB8382C),
letterSpacing: 1.0,
fontSize: 18.0)),
),
@ -498,8 +498,8 @@ class _AppointmentActionsState extends State<AppointmentActions> {
dynamic listPres) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PrescriptionReportPage(
FadePage(
page: PrescriptionReportPage(
prescriptionReportEnhList: prescriptionReportEnhList,
listPres: listPres,
appo: widget.appo)));
@ -508,8 +508,8 @@ class _AppointmentActionsState extends State<AppointmentActions> {
Future navigateToLabResults(PatientLabOrders patientLabOrders) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
FadePage(
page:
LaboratoryResultPage(patientLabOrders: patientLabOrders)))
.then((value) {});
}
@ -517,8 +517,8 @@ class _AppointmentActionsState extends State<AppointmentActions> {
Future navigateToRadiologyDetails(FinalRadiology finalRadiology) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
FadePage(
page:
RadiologyDetailsPage(finalRadiology: finalRadiology)))
.then((value) {});
}

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResu
import 'package:diplomaticquarterapp/pages/MyAppointments/models/AppointmentType.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_countdown_timer/countdown_timer_controller.dart';
import 'package:flutter_countdown_timer/current_remaining_time.dart';
@ -57,14 +58,14 @@ class _ApointmentCardState extends State<AppointmentCard> {
children: <Widget>[
Container(
width: projectViewModel.isArabic ? 27 : 20,
height: projectViewModel.isArabic ? 165 : 140,
height: projectViewModel.isArabic ? 165 : 140,
decoration: BoxDecoration(
//Colors.red[900] Color(0xff404545)
color: widget.appo.isLiveCareAppointment
? Color(0xff404545)
: !widget.appo.isInOutPatient
? Colors.red[900]
: Theme.of(context).primaryColor,
? Colors.red[900]
: Theme.of(context).primaryColor,
borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic
? Radius.circular(0)
@ -85,21 +86,21 @@ class _ApointmentCardState extends State<AppointmentCard> {
child: Center(
child: Text(
widget.appo.isLiveCareAppointment
? TranslationBase.of(context)
.liveCare
.toUpperCase()
? TranslationBase.of(context).liveCare.toUpperCase()
: !widget.appo.isInOutPatient
? TranslationBase.of(context)
.inPatient
.toUpperCase()
: TranslationBase.of(context)
.outpatient
.toUpperCase(),
? TranslationBase.of(context)
.inPatient
.toUpperCase()
: TranslationBase.of(context)
.outpatient
.toUpperCase(),
style: TextStyle(color: Colors.white),
),
)),
),
SizedBox(width: 8,),
SizedBox(
width: 8,
),
ClipRRect(
borderRadius: BorderRadius.circular(100.0),
child: Image.network(widget.appo.doctorImageURL,
@ -166,7 +167,7 @@ class _ApointmentCardState extends State<AppointmentCard> {
),
Container(
transform:
Matrix4.translationValues(15.0, -40.0, 0.0),
Matrix4.translationValues(15.0, -40.0, 0.0),
child: projectViewModel.isArabic
? Image.asset(
"assets/images/new-design/arrow_menu_black-ar.png",
@ -179,17 +180,18 @@ class _ApointmentCardState extends State<AppointmentCard> {
),
],
),
(widget.appo.patientStatusType == AppointmentType.BOOKED ||
(widget.appo.patientStatusType ==
AppointmentType.BOOKED ||
widget.appo.patientStatusType ==
AppointmentType.CONFIRMED)
? Container(
child: CountdownTimer(
controller: new CountdownTimerController(
endTime:
DateTime.now().millisecondsSinceEpoch +
(widget.appo.remaniningHoursTocanPay *
1000) *
60),
endTime: DateTime.now()
.millisecondsSinceEpoch +
(widget.appo.remaniningHoursTocanPay *
1000) *
60),
widgetBuilder: (_, CurrentRemainingTime time) {
return time != null
? Text(
@ -235,10 +237,7 @@ class _ApointmentCardState extends State<AppointmentCard> {
}
Future navigateToAppointmentDetails(context, appo) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AppointmentDetails(appo: appo)))
Navigator.push(context, FadePage(page: AppointmentDetails(appo: appo)))
.then((value) {
widget.onReloadAppointmentHistory();
});

@ -21,6 +21,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_countdown_timer/countdown_timer_controller.dart';
import 'package:flutter_countdown_timer/current_remaining_time.dart';
@ -600,8 +601,8 @@ class _ToDoState extends State<ToDo> {
Future navigateToAppointmentDetails(context, appo) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AppointmentDetails(appo: appo)))
FadePage(
page: AppointmentDetails(appo: appo)))
.then((value) {
getPatientAppointmentHistory();
});
@ -702,8 +703,8 @@ class _ToDoState extends State<ToDo> {
context, String appoQR, PatientShareResponse patientShareResponse) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => QRCode(
FadePage(
page: QRCode(
patientShareResponse: patientShareResponse,
appoQR: appoQR,
))).then((value) {
@ -907,7 +908,7 @@ class _ToDoState extends State<ToDo> {
}
Navigator.push(
context, MaterialPageRoute(builder: (context) => PaymentMethod()))
context, FadePage(page: PaymentMethod()))
.then((value) {
print(value);
getPatientAppointmentHistory();

@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/pages/MyAppointments/AppointmentDetails.dar
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:rating_bar/rating_bar.dart';
@ -351,6 +352,6 @@ class _TodoListCardState extends State<TodoListCard> {
Future navigateToAppointmentDetails(context) async {
Navigator.push(
context, MaterialPageRoute(builder: (context) => AppointmentDetails()));
context, FadePage(page: AppointmentDetails()));
}
}

@ -2,7 +2,6 @@ import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_page.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/home_health_care_index_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/ContactUs/contact_us_page.dart';
@ -11,7 +10,6 @@ import 'package:diplomaticquarterapp/pages/ErService/ErOptions.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy_module_page.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
@ -69,7 +67,7 @@ class _HomePageState extends State<HomePage> {
right: 5,
child: Container(
width:
MediaQuery.of(context).size.width * 0.8,
MediaQuery.of(context).size.width * 0.8,
child: Row(
children: <Widget>[
Expanded(
@ -84,54 +82,82 @@ class _HomePageState extends State<HomePage> {
fit: BoxFit.fill,
),
color:
Colors.white.withOpacity(0.3),
Colors.white.withOpacity(0.3),
borderRadius: BorderRadius.all(
Radius.circular(5))),
child: Container(
child: Column(
children: <Widget>[
Texts(TranslationBase.of(context).covidTest,
color: Colors.white,
fontWeight: FontWeight.w700,
),
Texts(
TranslationBase.of(context)
.covidTest,
color: Colors.white,
fontWeight: FontWeight.w700,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
mainAxisAlignment:
MainAxisAlignment
.spaceAround,
children: <Widget>[
Container(
margin: EdgeInsets.only(
top: 15.0,),
top: 15.0,
),
child: SvgPicture.asset(
'assets/images/new-design/covid-19-car.svg',
width: 45.0,
height: 45.0),
),
Container(
margin: EdgeInsets.only(top: 5.0),
margin: EdgeInsets.only(
top: 5.0),
child: Column(
children: <Widget>[
Texts(TranslationBase.of(context).driveThru,
fontWeight: FontWeight.w700,
color: Colors.white,),
Texts(
TranslationBase.of(
context)
.driveThru,
fontWeight:
FontWeight.w700,
color: Colors.white,
),
ButtonTheme(
shape: RoundedRectangleBorder(
shape:
RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(5.0),),
minWidth: MediaQuery.of(context).size.width * 0.15,
BorderRadius
.circular(
5.0),
),
minWidth: MediaQuery.of(
context)
.size
.width *
0.15,
height: 25.0,
child: RaisedButton(
color: Colors.red[800],
textColor: Colors.white,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
color: Colors
.red[800],
textColor:
Colors.white,
disabledTextColor:
Colors.white,
disabledColor:
new Color(
0xFFbcc2c4),
onPressed: () {
navigateToCovidDriveThru();
},
child: Texts(
TranslationBase.of(context).bookNow,
fontWeight: FontWeight.w700,
color: Colors.white,
),
TranslationBase.of(
context)
.bookNow,
fontWeight:
FontWeight
.w700,
color: Colors
.white,
),
),
),
],
@ -172,260 +198,274 @@ class _HomePageState extends State<HomePage> {
],
),
),
Container(width: double.infinity, height:projectViewModel.isArabic ?110: 80)
Container(
width: double.infinity,
height: projectViewModel.isArabic ? 110 : 80)
],
),
Positioned(
top: 155,
left: MediaQuery.of(context).size.width *
(MediaQuery.of(context).orientation ==
Orientation.landscape
Orientation.landscape
? 0.02
: 0.03),
right: MediaQuery.of(context).size.width *
(MediaQuery.of(context).orientation ==
Orientation.landscape
Orientation.landscape
? 0.02
: 0.03),
child: (!model.isLogin)
? Container(
width: double.infinity,
height: 125,
decoration: BoxDecoration(
color: HexColor('#A59E9E'),
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent, width: 0.5),
borderRadius:
BorderRadius.all(Radius.circular(9)),
image: DecorationImage(
image: ExactAssetImage(
'assets/images/bg_graphic.png'),
fit: BoxFit.cover)),
child: Container(
margin: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 2,
),
Texts(
TranslationBase.of(context).myMedicalFile,
color: Colors.black87,
fontWeight: FontWeight.w700,
fontSize: 23,
),
Texts(
TranslationBase.of(context)
.myMedicalFileSubTitle,
color: Colors.black,
fontSize: 16,
),
Align(
alignment: projectViewModel.isArabic
? Alignment.bottomLeft
: Alignment.bottomRight,
child: InkWell(
onTap: () {
widget.goToMyProfile();
},
child: Container(
margin: EdgeInsets.only(left: 15,right: 15),
width: 90,
height: 30,
decoration: BoxDecoration(
color: HexColor('#D81A2E'),
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent,
width: 0.5),
borderRadius: BorderRadius.all(
Radius.circular(0)),
width: double.infinity,
height: 125,
decoration: BoxDecoration(
color: HexColor('#A59E9E'),
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent, width: 0.5),
borderRadius:
BorderRadius.all(Radius.circular(9)),
image: DecorationImage(
image: ExactAssetImage(
'assets/images/bg_graphic.png'),
fit: BoxFit.cover)),
child: Container(
margin: EdgeInsets.all(5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 2,
),
child: Center(
child: Texts(
TranslationBase.of(context).viewMore,
color: Colors.white,
fontWeight: FontWeight.w700,
fontSize: 12,
),
Texts(
TranslationBase.of(context).myMedicalFile,
color: Colors.black87,
fontWeight: FontWeight.w700,
fontSize: 23,
),
),
),
)
],
),
),
)
: Container(
width: double.infinity,
height: projectViewModel.isArabic ? 160:130,
decoration: BoxDecoration(
color: HexColor('#A59E9E'),
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent, width: 0.5),
borderRadius:
BorderRadius.all(Radius.circular(9)),
image: DecorationImage(
image: ExactAssetImage(
'assets/images/bg_graphic.png'),
fit: BoxFit.cover),
),
child: Container(
margin: EdgeInsets.all(5),
child: Column(
children: <Widget>[
Row(
children: <Widget>[
if (projectViewModel.user != null && model.isLogin)
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 8,
Texts(
TranslationBase.of(context)
.myMedicalFileSubTitle,
color: Colors.black,
fontSize: 16,
),
Align(
alignment: projectViewModel.isArabic
? Alignment.bottomLeft
: Alignment.bottomRight,
child: InkWell(
onTap: () {
widget.goToMyProfile();
},
child: Container(
margin: EdgeInsets.only(
left: 15, right: 15),
width: 90,
height: 30,
decoration: BoxDecoration(
color: HexColor('#D81A2E'),
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent,
width: 0.5),
borderRadius: BorderRadius.all(
Radius.circular(0)),
),
Row(
children: [
Texts(
model.user.firstName +
" " +
model.user.lastName,
color: Colors.grey[100],
bold: true,
fontSize: 15,
child: Center(
child: InkWell(
// onTap: () {
// openBrowser();
// },
child: Texts(
TranslationBase.of(context)
.viewMore,
color: Colors.white,
fontWeight: FontWeight.w700,
fontSize: 12,
),
Container(
margin: EdgeInsets.fromLTRB(8.0, 0.0, 8.0, 0.0),
child: SvgPicture.asset(
"assets/images/new-design/verification_check.svg"),
),
],
),
Texts(
'${model.user.patientID}',
color: Colors.white,
fontSize: 14,
),
SizedBox(
height: 5,
),
Texts(
'${DateUtil.getMonthDayYearDateFormatted(model.user.dateofBirthDataTime)} ,${model.user.genderDescription} ${model.user.ageDesc}',
color: Colors.grey[100],
fontWeight: FontWeight.normal,
fontSize: 14,
),
),
],
),
),
InkWell(
onTap: () {
widget.goToMyProfile();
},
child: Container(
margin: EdgeInsets.all(2),
width: 90,
height: 30,
decoration: BoxDecoration(
color: HexColor('#D81A2E'),
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent,
width: 0.5),
borderRadius: BorderRadius.all(
Radius.circular(5),
),
),
child: Center(
child: Texts(
TranslationBase.of(context)
.viewMore,
color: Colors.white,
fontSize: 12,
),
),
),
)
],
)
],
),
),
Row(
children: <Widget>[
Expanded(
child: Row(
)
: Container(
width: double.infinity,
height: projectViewModel.isArabic ? 160 : 130,
decoration: BoxDecoration(
color: HexColor('#A59E9E'),
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent, width: 0.5),
borderRadius:
BorderRadius.all(Radius.circular(9)),
image: DecorationImage(
image: ExactAssetImage(
'assets/images/bg_graphic.png'),
fit: BoxFit.cover),
),
child: Container(
margin: EdgeInsets.all(5),
child: Column(
children: <Widget>[
Row(
children: <Widget>[
Image.asset(
'assets/images/height_icon.png',
width: 35,
height: 40,
),
Texts(
"${model.heightCm}",
color: Colors.white,
fontSize: 17,
if (projectViewModel.user != null &&
model.isLogin)
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: 8,
),
Row(
children: [
Texts(
model.user.firstName +
" " +
model.user.lastName,
color: Colors.grey[100],
bold: true,
fontSize: 15,
),
Container(
margin:
EdgeInsets.fromLTRB(
8.0,
0.0,
8.0,
0.0),
child: SvgPicture.asset(
"assets/images/new-design/verification_check.svg"),
),
],
),
Texts(
'${model.user.patientID}',
color: Colors.white,
fontSize: 14,
),
SizedBox(
height: 5,
),
Texts(
'${DateUtil.getMonthDayYearDateFormatted(model.user.dateofBirthDataTime)} ,${model.user.genderDescription} ${model.user.ageDesc}',
color: Colors.grey[100],
fontWeight: FontWeight.normal,
fontSize: 14,
),
],
),
),
InkWell(
onTap: () {
widget.goToMyProfile();
},
child: Container(
margin: EdgeInsets.all(2),
width: 90,
height: 30,
decoration: BoxDecoration(
color: HexColor('#D81A2E'),
shape: BoxShape.rectangle,
border: Border.all(
color: Colors.transparent,
width: 0.5),
borderRadius: BorderRadius.all(
Radius.circular(5),
),
),
child: Center(
child: Texts(
TranslationBase.of(context)
.viewMore,
color: Colors.white,
fontSize: 12,
),
),
),
)
],
),
),
SizedBox(
width: 3,
),
Expanded(
child: Row(
Row(
children: <Widget>[
Image.asset(
'assets/images/weight_icon.png',
width: 25,
height: 40,
Expanded(
child: Row(
children: <Widget>[
Image.asset(
'assets/images/height_icon.png',
width: 35,
height: 40,
),
Texts(
"${model.heightCm}",
color: Colors.white,
fontSize: 17,
)
],
),
),
Texts(
'${model.weightKg}',
color: Colors.white,
fontSize: 17
)
],
),
),
SizedBox(
width: 3,
),
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Image.asset(
'assets/images/blood_icon.png',
width: 35,
height: 40,
SizedBox(
width: 3,
),
Expanded(
child: Row(
children: <Widget>[
Image.asset(
'assets/images/weight_icon.png',
width: 25,
height: 40,
),
Texts('${model.weightKg}',
color: Colors.white,
fontSize: 17)
],
),
),
SizedBox(
width: 3,
),
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Image.asset(
'assets/images/blood_icon.png',
width: 35,
height: 40,
),
Texts(
'${model.booldType}',
color: Colors.white,
)
],
),
),
Texts(
'${model.booldType}',
color: Colors.white,
)
],
),
),
],
)
],
),
),
),
)
],
),
),
),
),
],
),
if(projectViewModel.havePrivilege(64)||projectViewModel.havePrivilege(65)||projectViewModel.havePrivilege(67))
if (projectViewModel.havePrivilege(64) ||
projectViewModel.havePrivilege(65) ||
projectViewModel.havePrivilege(67))
Container(
margin: EdgeInsets.only(left: 15, right: 15),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
if(projectViewModel.havePrivilege(64))
if (projectViewModel.havePrivilege(64))
DashboardItem(
onTap: () {
Navigator.push(
@ -449,11 +489,13 @@ class _HomePageState extends State<HomePage> {
height: 10,
),
Texts(
TranslationBase.of(context).homeHealthCare,
TranslationBase.of(context)
.homeHealthCare,
textAlign: TextAlign.center,
color: Colors.white,
fontWeight: FontWeight.w700,
fontSize: SizeConfig.textMultiplier * 1.55,
fontSize:
SizeConfig.textMultiplier * 1.55,
)
],
),
@ -463,10 +505,10 @@ class _HomePageState extends State<HomePage> {
imageName: 'home_healthcare_service_bg.png',
opacity: 0.5,
),
if(projectViewModel.havePrivilege(65))
if (projectViewModel.havePrivilege(65))
DashboardItem(
onTap: () => Navigator.push(context, FadePage(page: LandingPagePharmacy())),
onTap: () => Navigator.push(
context, FadePage(page: LandingPagePharmacy())),
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
@ -481,11 +523,13 @@ class _HomePageState extends State<HomePage> {
height: 20,
),
Texts(
TranslationBase.of(context).onlinePharmacy,
TranslationBase.of(context)
.onlinePharmacy,
textAlign: TextAlign.center,
color: Colors.white,
fontWeight: FontWeight.w700,
fontSize: SizeConfig.textMultiplier * 1.55,
fontSize:
SizeConfig.textMultiplier * 1.55,
)
],
),
@ -494,9 +538,9 @@ class _HomePageState extends State<HomePage> {
height: MediaQuery.of(context).size.width * 0.4,
imageName: 'al-habib_onlne_pharmacy_bg.png',
),
if(projectViewModel.havePrivilege(67))
if (projectViewModel.havePrivilege(67))
DashboardItem(
onTap: (){
onTap: () {
Navigator.push(
context,
FadePage(
@ -515,14 +559,15 @@ class _HomePageState extends State<HomePage> {
height: 50,
),
SizedBox(
height:10,
height: 10,
),
Texts(
TranslationBase.of(context).cmcHeading,
textAlign: TextAlign.center,
color: Colors.white,
fontWeight: FontWeight.w700,
fontSize: SizeConfig.textMultiplier * 1.55,
fontSize:
SizeConfig.textMultiplier * 1.55,
)
],
),
@ -610,7 +655,7 @@ class _HomePageState extends State<HomePage> {
borderRadius: BorderRadius.circular(6.0),
color: Colors.white,
)),
if(projectViewModel.havePrivilege(60))
if (projectViewModel.havePrivilege(60))
Container(
width: MediaQuery.of(context).size.width * 0.29,
child: InkWell(
@ -618,8 +663,8 @@ class _HomePageState extends State<HomePage> {
context,
FadePage(
page: ErOptions(
isAppbar: true,
))),
isAppbar: true,
))),
child: Center(
child: Padding(
padding: const EdgeInsets.all(15.0),
@ -639,7 +684,8 @@ class _HomePageState extends State<HomePage> {
textAlign: TextAlign.center,
color: Colors.black87,
bold: false,
fontSize: SizeConfig.textMultiplier * 1.7,
fontSize:
SizeConfig.textMultiplier * 1.7,
)
],
),
@ -757,24 +803,28 @@ class _HomePageState extends State<HomePage> {
);
}
// openBrowser() {
// InAppBrowser browser = new InAppBrowser();
// browser.openUrl(url: "https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID=ca9dd276-0a20-4924-a768-fafa9a855ef1&&CustomerId=1367368");
// }
navigateToCovidDriveThru() {
Navigator.push(context,
MaterialPageRoute(builder: (context) => CovidDrivethruLocation()));
Navigator.push(context, FadePage(page: CovidDrivethruLocation()));
}
}
class DashboardItem extends StatelessWidget {
const DashboardItem(
{this.hasBorder = false,
this.imageName,
@required this.child,
this.onTap,
Key key,
this.width,
this.height,
this.color,
this.opacity = 0.4,
this.hasColorFilter = true})
this.imageName,
@required this.child,
this.onTap,
Key key,
this.width,
this.height,
this.color,
this.opacity = 0.4,
this.hasColorFilter = true})
: super(key: key);
final bool hasBorder;
final String imageName;
@ -792,14 +842,16 @@ class DashboardItem extends StatelessWidget {
onTap: onTap,
child: Container(
width: width != null ? width : MediaQuery.of(context).size.width * 0.29,
height: height != null ? height : MediaQuery.of(context).orientation == Orientation.portrait
? MediaQuery.of(context).size.height * 0.17
: MediaQuery.of(context).size.height * 0.35,
height: height != null
? height
: MediaQuery.of(context).orientation == Orientation.portrait
? MediaQuery.of(context).size.height * 0.17
: MediaQuery.of(context).size.height * 0.35,
decoration: BoxDecoration(
color: !hasBorder
? color != null
? color
: HexColor('#050705').withOpacity(opacity)
? color
: HexColor('#050705').withOpacity(opacity)
: Colors.white,
borderRadius: BorderRadius.circular(6.0),
border: hasBorder
@ -807,11 +859,13 @@ class DashboardItem extends StatelessWidget {
: Border.all(width: 0.0, color: Colors.transparent),
image: imageName != null
? DecorationImage(
image: ExactAssetImage('assets/images/$imageName'),
fit: BoxFit.cover,
colorFilter: hasColorFilter ? new ColorFilter.mode(
Colors.black.withOpacity(0.2), BlendMode.dstIn) : null,
)
image: ExactAssetImage('assets/images/$imageName'),
fit: BoxFit.cover,
colorFilter: hasColorFilter
? new ColorFilter.mode(
Colors.black.withOpacity(0.2), BlendMode.dstIn)
: null,
)
: null,
),
child: Center(

@ -1,28 +1,22 @@
import 'dart:convert';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:barcode_scan_fix/barcode_scan.dart';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/parent_categorise_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/product_detail.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy_module_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/medicine_search_screen.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/wishlist.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/profile/profile.dart';
import 'package:diplomaticquarterapp/pages/pharmacy_categorise.dart';
import 'package:diplomaticquarterapp/pages/search_products_page.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/widgets/pharmacy/bottom_nav_pharmacy_bar.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/wishlist.dart';
class LandingPagePharmacy extends StatefulWidget {
@override
@ -80,8 +74,7 @@ class _LandingPagePharmacyState extends State<LandingPagePharmacy> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SearchProductsPage()),
FadePage(page: SearchProductsPage()),
);
},
),

@ -22,6 +22,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -256,9 +257,7 @@ class _clinic_listState extends State<ClinicList> {
});
}
Navigator.push(
context, MaterialPageRoute(builder: (context) => PaymentMethod()))
.then((value) {
Navigator.push(context, FadePage(page: PaymentMethod())).then((value) {
print(value);
if (value != null) {
openPayment(value, authUser,
@ -669,8 +668,8 @@ class _clinic_listState extends State<ClinicList> {
patientDoctorAppointmentListHospital) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SearchResults(
FadePage(
page: SearchResults(
doctorsList: docList,
isLiveCareAppointment: true,
patientDoctorAppointmentListHospital:

@ -1,10 +1,14 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/pages/login/forgot-password.dart';
import 'package:diplomaticquarterapp/pages/login/login.dart';
import 'package:diplomaticquarterapp/pages/login/register.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -50,8 +54,8 @@ class LoginType extends StatelessWidget {
child: InkWell(
onTap: () => {
LoginType.loginType = 1,
Navigator.of(context)
.pushNamed(LOGIN_PAGE)
Navigator.of(context)
.push(FadePage(page: Login())),
},
child: RoundedContainer(
borderColor: Colors.grey,
@ -90,8 +94,8 @@ class LoginType extends StatelessWidget {
child: InkWell(
onTap: () => {
LoginType.loginType = 2,
Navigator.of(context)
.pushNamed(LOGIN_PAGE)
Navigator.of(context)
.push(FadePage(page: Login())),
},
child: RoundedContainer(
borderColor: Colors.grey,
@ -136,8 +140,8 @@ class LoginType extends StatelessWidget {
Center(
child: InkWell(
onTap: () => {
Navigator.of(context)
.pushNamed(FORGOT_PASSWORD)
Navigator.of(context)
.push(FadePage(page: ForgotPassword())),
},
child: AppText(
TranslationBase.of(context)
@ -166,9 +170,8 @@ class LoginType extends StatelessWidget {
child: DefaultButton(
TranslationBase.of(context).registerNow,
() => {
Navigator.of(context).pushNamed(
REGISTER,
)
Navigator.of(context)
.push(FadePage(page: Register())),
},
)),
],

@ -9,9 +9,10 @@ import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/pages/login/confirm-login.dart';
import 'package:diplomaticquarterapp/pages/login/login-type.dart';
import 'package:diplomaticquarterapp/pages/login/register.dart';
import 'package:diplomaticquarterapp/pages/rateAppointment/rate_appointment_doctor.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
@ -24,8 +25,6 @@ import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/input/text_field.dart';
import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -48,10 +47,13 @@ class _Login extends State<Login> {
final authService = new AuthProvider();
var sharedPref = new AppSharedPreferences();
bool isLoading = false;
AppointmentRateViewModel appointmentRateViewModel = locator<AppointmentRateViewModel>();
PharmacyModuleViewModel pharmacyModuleViewModel = locator<PharmacyModuleViewModel>();
AppointmentRateViewModel appointmentRateViewModel =
locator<AppointmentRateViewModel>();
PharmacyModuleViewModel pharmacyModuleViewModel =
locator<PharmacyModuleViewModel>();
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>();
ProjectViewModel projectViewModel;
ToDoCountProviderModel toDoProvider;
@ -97,7 +99,10 @@ class _Login extends State<Login> {
children: <Widget>[
Directionality(
textDirection: TextDirection.ltr,
child: MobileNo(onNumberChange: (value) => {mobileNo = value, validateForm()}, onCountryChange: (value) => countryCode = value)),
child: MobileNo(
onNumberChange: (value) =>
{mobileNo = value, validateForm()},
onCountryChange: (value) => countryCode = value)),
Directionality(
textDirection: TextDirection.ltr,
child: Container(
@ -138,7 +143,9 @@ class _Login extends State<Login> {
child: DefaultButton(
TranslationBase.of(context).login,
() => {this.startLogin()},
color: isButtonDisabled == true ? Colors.grey : Colors.grey[900],
color: isButtonDisabled == true
? Colors.grey
: Colors.grey[900],
textColor: Colors.white,
))
],
@ -159,7 +166,8 @@ class _Login extends State<Login> {
}
void validateForm() {
if (util.validateIDBox(nationalIDorFile.text, loginType) == true && util.isSAUDIIDValid(nationalIDorFile.text, loginType) == true) {
if (util.validateIDBox(nationalIDorFile.text, loginType) == true &&
util.isSAUDIIDValid(nationalIDorFile.text, loginType) == true) {
setState(() {
isButtonDisabled = false;
});
@ -196,7 +204,7 @@ class _Login extends State<Login> {
sharedPref.setString(LOGIN_TOKEN_ID, value['LogInTokenID']),
sharedPref.setObject(REGISTER_DATA_FOR_LOGIIN, request),
GifLoaderDialogUtils.hideDialog(context),
Navigator.of(context).pushNamed(CONFIRM_LOGIN)
Navigator.of(context).push(FadePage(page: ConfirmLogin())),
}
else
{
@ -212,9 +220,7 @@ class _Login extends State<Login> {
cancelText: TranslationBase.of(context).cancel_nocaps,
okFunction: () => {
ConfirmDialog.closeAlertDialog(context),
Navigator.of(context).pushNamed(
REGISTER,
),
Navigator.of(context).push(FadePage(page: Register())),
},
cancelFunction: () => {ConfirmDialog.closeAlertDialog(context)});
dialog.showAlertDialog(context);
@ -259,9 +265,9 @@ class _Login extends State<Login> {
projectViewModel.isLogin = true;
projectViewModel.user = authenticatedUserObject.user;
await pharmacyModuleViewModel.generatePharmacyToken().then((value) async {
if(pharmacyModuleViewModel.error.isNotEmpty)
await pharmacyModuleViewModel.createUser();
await pharmacyModuleViewModel.generatePharmacyToken().then((value) async {
if (pharmacyModuleViewModel.error.isNotEmpty)
await pharmacyModuleViewModel.createUser();
});
appointmentRateViewModel

@ -3,24 +3,22 @@ import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_user_status_reponse.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_user_status_req.dart';
import 'package:diplomaticquarterapp/models/Authentication/checkpatient_for_registration.dart';
import 'package:diplomaticquarterapp/pages/login/confirm-login.dart';
import 'package:diplomaticquarterapp/pages/login/login-type.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/alert_dialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/input/text_field.dart';
import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -43,6 +41,7 @@ class _Register extends State<Register> {
final sharedPref = new AppSharedPreferences();
bool isLoading;
@override
Widget build(BuildContext context) {
return AppScaffold(
@ -50,39 +49,38 @@ class _Register extends State<Register> {
isShowAppBar: true,
isShowDecPage: false,
body: SingleChildScrollView(
child: Container(
padding:
EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30),
height: SizeConfig.realScreenHeight * .9,
width: SizeConfig.realScreenWidth,
child: Column(children: <Widget>[
Expanded(
flex: 1,
child: AppText(
TranslationBase.of(context).enterNationalId,
fontSize: SizeConfig.textMultiplier * 3,
textAlign: TextAlign.left,
)),
Expanded(
flex: 4,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
MobileNo(
onNumberChange: (value) =>
{mobileNo = value, validateForm()},
onCountryChange: (value) => countryCode = value),
Container(
child: TextFields(
controller: nationalIDorFile,
onChanged: (value) => validateForm(),
keyboardType: TextInputType.number,
prefixIcon: Icon(Icons.chrome_reader_mode,
color: Color(0xFF40ACC9)),
padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10),
hintText: TranslationBase.of(context).nationalID,
)),
child: Container(
padding: EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30),
height: SizeConfig.realScreenHeight * .9,
width: SizeConfig.realScreenWidth,
child: Column(children: <Widget>[
Expanded(
flex: 1,
child: AppText(
TranslationBase.of(context).enterNationalId,
fontSize: SizeConfig.textMultiplier * 3,
textAlign: TextAlign.left,
)),
Expanded(
flex: 4,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
MobileNo(
onNumberChange: (value) =>
{mobileNo = value, validateForm()},
onCountryChange: (value) => countryCode = value),
Container(
child: TextFields(
controller: nationalIDorFile,
onChanged: (value) => validateForm(),
keyboardType: TextInputType.number,
prefixIcon: Icon(Icons.chrome_reader_mode,
color: Color(0xFF40ACC9)),
padding: EdgeInsets.only(
top: 20, bottom: 20, left: 10, right: 10),
hintText: TranslationBase.of(context).nationalID,
)),
Row(
children: <Widget>[
Expanded(
@ -226,9 +224,7 @@ class _Register extends State<Register> {
cancelText: TranslationBase.of(context).cancel_nocaps,
okFunction: () => {
ConfirmDialog.closeAlertDialog(context),
Navigator.of(context).pushNamed(
REGISTER,
),
Navigator.of(context).push(FadePage(page: Register())),
},
cancelFunction: () => {ConfirmDialog.closeAlertDialog(context)});
dialog.showAlertDialog(context);
@ -312,16 +308,10 @@ class _Register extends State<Register> {
{
result = CheckUserStatusResponse.fromJson(result),
sharedPref.setObject(NHIC_DATA, result),
Navigator.of(context).pushNamed(
CONFIRM_LOGIN,
)
// Navigator.of(context).pushNamed(
// REGISTER_INFO,
// )
Navigator.of(context).push(FadePage(page: ConfirmLogin())),
}
else
{AppToast.showErrorToast(message: result)}
//this.onRegister();
});
}

@ -1,9 +1,11 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/pages/login/login-type.dart';
import 'package:diplomaticquarterapp/pages/login/register.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -72,9 +74,8 @@ class _WelcomeLogin extends State<WelcomeLogin> {
child: DefaultButton(
TranslationBase.of(context).yes,
() => {
Navigator.of(context).pushNamed(
LOGIN_TYPE,
),
Navigator.of(context)
.push(FadePage(page: LoginType())),
},
color: Color(0xFFc5272c),
textColor: Colors.white,
@ -87,9 +88,8 @@ class _WelcomeLogin extends State<WelcomeLogin> {
child: DefaultButton(
TranslationBase.of(context).no,
() => {
Navigator.of(context).pushNamed(
REGISTER,
)
Navigator.of(context)
.push(FadePage(page: Register())),
},
))
],

@ -214,14 +214,14 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
SizedBox(
height: 12,
),
if(model.user!=null)
NewTextFields(
hintText: TranslationBase.of(context).depositorEmail,
initialValue: model.user.emailAddress,
onChanged: (value) {
email = value;
},
),
if (model.user != null)
NewTextFields(
hintText: TranslationBase.of(context).depositorEmail,
initialValue: model.user.emailAddress,
onChanged: (value) {
email = value;
},
),
SizedBox(
height: 12,
),
@ -243,7 +243,9 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
child: SecondaryButton(
textColor: Colors.white,
label: TranslationBase.of(context).submit,
disabled: amount.isEmpty || _fileTextController.text.isEmpty || _selectedHospital == null,
disabled: amount.isEmpty ||
_fileTextController.text.isEmpty ||
_selectedHospital == null,
onTap: () {
var mobileNum;
var patientName;
@ -278,10 +280,8 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
if (model.state != ViewState.Error &&
model.state != ViewState.ErrorLocal) {
Utils.hideKeyboard(context);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PaymentMethod())).then(
Navigator.push(context, FadePage(page: PaymentMethod()))
.then(
(value) {
Navigator.push(
context,

@ -1,4 +1,6 @@
import 'dart:async';
import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_enh.dart';
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart';
@ -11,12 +13,12 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/select_location_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart';
import 'PrescriptionOrderOverveiw.dart';
@ -24,7 +26,12 @@ class PrescriptionDeliveryAddressPage extends StatefulWidget {
final Prescriptions prescriptions;
final List<PrescriptionReport> prescriptionReportList;
final List<PrescriptionReportEnh> prescriptionReportEnhList;
const PrescriptionDeliveryAddressPage({Key key, this.prescriptions, this.prescriptionReportList, this.prescriptionReportEnhList})
const PrescriptionDeliveryAddressPage(
{Key key,
this.prescriptions,
this.prescriptionReportList,
this.prescriptionReportEnhList})
: super(key: key);
@override
@ -37,7 +44,7 @@ class _PrescriptionDeliveryAddressPageState
AddressInfo _selectedAddress;
Completer<GoogleMapController> _controller = Completer();
CameraPosition _kGooglePlex = CameraPosition(
CameraPosition _kGooglePlex = CameraPosition(
target: LatLng(24.665011045779107, 46.73502189439707),
zoom: 14.4746,
);
@ -46,10 +53,11 @@ class _PrescriptionDeliveryAddressPageState
double longitude = 0;
@override
void initState(){
void initState() {
super.initState();
_getCurrentLocation();
}
_getCurrentLocation() async {
await Geolocator.getLastKnownPosition().then((value) {
latitude = value.latitude;
@ -63,6 +71,7 @@ class _PrescriptionDeliveryAddressPageState
latitude = 46.73502189439707;
});
}
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
@ -73,7 +82,7 @@ class _PrescriptionDeliveryAddressPageState
appBarTitle: TranslationBase.of(context).shippingAddresss,
baseViewModel: model,
body: Container(
height: MediaQuery.of(context).size.height* 0.65,
height: MediaQuery.of(context).size.height * 0.65,
child: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Column(
@ -131,40 +140,54 @@ class _PrescriptionDeliveryAddressPageState
),
)
: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
decoration: BoxDecoration(
border: Border.all(color: Colors.grey)
),
border: Border.all(color: Colors.grey)),
height: 200,
child: GoogleMap(
mapType: MapType.normal,
markers: markers,
initialCameraPosition: _kGooglePlex,
onMapCreated: (GoogleMapController controller) {
onMapCreated:
(GoogleMapController controller) {
_controller.complete(controller);
},
),
),
),
SizedBox(height: 10,),
Texts(TranslationBase.of(context).shippingAddresss),
SizedBox(height: 10,),
Texts('${model.user.firstName} ${model.user.lastName}'),
SizedBox(height: 10,),
SizedBox(
height: 10,
),
Texts(
TranslationBase.of(context).shippingAddresss),
SizedBox(
height: 10,
),
Texts(
'${model.user.firstName} ${model.user.lastName}'),
SizedBox(
height: 10,
),
Texts(_selectedAddress.address1),
SizedBox(height: 10,),
SizedBox(
height: 10,
),
Texts(_selectedAddress.address2),
SizedBox(height: 10,),
Texts(_selectedAddress.city+" "+_selectedAddress.country),
SizedBox(
height: 10,
),
Texts(_selectedAddress.city +
" " +
_selectedAddress.country),
],
),
)
)
],
),
),
@ -179,33 +202,43 @@ class _PrescriptionDeliveryAddressPageState
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
label: TranslationBase.of(context).addNewAddress.toUpperCase(),
label:
TranslationBase.of(context).addNewAddress.toUpperCase(),
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) => LocationPage(latitude: latitude, longitude: longitude,),),
Navigator.push(
context,
FadePage(
page: LocationPage(
latitude: latitude,
longitude: longitude,
)),
);
},
),
),
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
label: TranslationBase.of(context).continues.toUpperCase(),
disabled: _selectedAddress==null,
backgroundColor: _selectedAddress==null?Colors.green[300]: Colors.green[700],
label:
TranslationBase.of(context).continues.toUpperCase(),
disabled: _selectedAddress == null,
backgroundColor: _selectedAddress == null
? Colors.green[300]
: Colors.green[700],
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) =>
PrescriptionOrderOverview(latitude: latitude,
longitude: longitude,
prescriptionReportEnhList: widget.prescriptionReportEnhList,
prescriptionReportList:widget.prescriptionReportList,
prescriptions: widget.prescriptions,
selectedAddress: _selectedAddress,
),
FadePage(
page: PrescriptionOrderOverview(
latitude: latitude,
longitude: longitude,
prescriptionReportEnhList:
widget.prescriptionReportEnhList,
prescriptionReportList:
widget.prescriptionReportList,
prescriptions: widget.prescriptions,
selectedAddress: _selectedAddress,
),
),
);
},
@ -216,8 +249,9 @@ class _PrescriptionDeliveryAddressPageState
);
}
void confirmSelectLocationDialog(List<AddressInfo> addresses,) {
void confirmSelectLocationDialog(
List<AddressInfo> addresses,
) {
showDialog(
context: context,
child: SelectLocationDialog(
@ -248,6 +282,7 @@ class _PrescriptionDeliveryAddressPageState
),
);
}
String getAddressName() {
if (_selectedAddress != null)
return _selectedAddress.address1;

@ -7,20 +7,19 @@ import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/StarRating.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_pharmacy_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:giffy_dialog/giffy_dialog.dart';
import 'base/base_view.dart';
import 'final_products_page.dart';
class ParentCategorisePage extends StatefulWidget {
String id;
String titleName;
ParentCategorisePage({this.id, this.titleName});
@override
_ParentCategorisePageState createState() =>
_ParentCategorisePageState(id: id, titleName: titleName);
@ -29,7 +28,9 @@ class ParentCategorisePage extends StatefulWidget {
class _ParentCategorisePageState extends State<ParentCategorisePage> {
String id;
String titleName;
_ParentCategorisePageState({this.id, this.titleName});
Map<String, bool> values = {'huusam': false, 'ali': false, 'noor': false};
bool checkedBrands = false;
bool checkedCategorise = false;
@ -41,6 +42,7 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
color: Colors.blue,
size: 29.0,
);
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
@ -154,14 +156,20 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
SubCategorisePage(
title: model.categoriseParent[index].name,
id: model.categoriseParent[index].id,
parentId: id,
)),
FadePage(
page:
SubCategorisePage(
title: model
.categoriseParent[
index]
.name,
id: model
.categoriseParent[
index]
.id,
parentId:
id,
)),
);
},
),
@ -257,19 +265,15 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
SubCategorisePage(
title: model
.categoriseParent[
index]
.name,
id: model
.categoriseParent[
index]
.id,
parentId: id,
)),
FadePage(
page: SubCategorisePage(
title: model
.categoriseParent[index]
.name,
id: model
.categoriseParent[index].id,
parentId: id,
)),
);
print(id);
},

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/pharmacies_model.dart';
@ -121,8 +122,8 @@ class MedicineSearch extends StatelessWidget {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PharmaciesList(
FadePage(
page: PharmaciesList(
medicineID:
model.pharmacy[index].itemID,
imageURL: model

@ -1,15 +1,15 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/pages/final_products_page.dart';
import 'package:diplomaticquarterapp/pages/login/register-info.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/brand_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/search_brands_page.dart';
import 'package:diplomaticquarterapp/pages/search_products_page.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/brand_view_model.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
class ProductBrandsPage extends StatefulWidget {
@override
@ -17,8 +17,8 @@ class ProductBrandsPage extends StatefulWidget {
}
var languageID;
class _ProductBrandsPageState extends State<ProductBrandsPage> {
class _ProductBrandsPageState extends State<ProductBrandsPage> {
@override
void initState() {
super.initState();
@ -39,18 +39,11 @@ class _ProductBrandsPageState extends State<ProductBrandsPage> {
children: [
Container(
color: Colors.white,
alignment: languageID == 'ar'?
Alignment.topRight :
Alignment.topLeft,
padding: languageID == 'ar' ?
EdgeInsets.only(
right: 10.0,
top: 10.0
):
EdgeInsets.only(
left: 10.0,
top: 10.0
),
alignment:
languageID == 'ar' ? Alignment.topRight : Alignment.topLeft,
padding: languageID == 'ar'
? EdgeInsets.only(right: 10.0, top: 10.0)
: EdgeInsets.only(left: 10.0, top: 10.0),
child: Text(
TranslationBase.of(context).topBrands,
style: TextStyle(
@ -94,8 +87,7 @@ class _ProductBrandsPageState extends State<ProductBrandsPage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SearchBrandsPage()),
FadePage(page: SearchBrandsPage()),
);
},
),
@ -117,7 +109,9 @@ class _ProductBrandsPageState extends State<ProductBrandsPage> {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
languageID == 'ar' ? Text(model.brandsListList[index].namen):Text(model.brandsListList[index].name),
languageID == 'ar'
? Text(model.brandsListList[index].namen)
: Text(model.brandsListList[index].name),
SizedBox(
height: 3,
),
@ -125,11 +119,14 @@ class _ProductBrandsPageState extends State<ProductBrandsPage> {
],
),
),
onTap: (){
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => FinalProductsPage(id: model.brandsListList[index].id.toString(),)),
builder: (context) => FinalProductsPage(
id: model.brandsListList[index].id
.toString(),
)),
);
},
);
@ -143,7 +140,6 @@ class _ProductBrandsPageState extends State<ProductBrandsPage> {
}
}
topBrand(BuildContext context) {
return BaseView<BrandsViewModel>(
onModelReady: (model) => model.getTopBrandsData(),
@ -161,34 +157,38 @@ topBrand(BuildContext context) {
child: Container(
// padding: EdgeInsets.only(left: 5),
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 10.0, vertical: 10.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
border: Border(
top: BorderSide(width: 1.0, color: Colors.grey),
left: BorderSide(width: 1.0, color: Colors.grey),
right: BorderSide(width: 1.0, color: Colors.grey),
bottom: BorderSide(width: 1.0, color: Colors.grey),
padding: EdgeInsets.symmetric(
horizontal: 10.0, vertical: 10.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
border: Border(
top: BorderSide(width: 1.0, color: Colors.grey),
left: BorderSide(width: 1.0, color: Colors.grey),
right: BorderSide(width: 1.0, color: Colors.grey),
bottom:
BorderSide(width: 1.0, color: Colors.grey),
),
color: Colors.white,
),
color: Colors.white,
),
child: model.topBrandsListList[index].image != null ?Image.network(
model.topBrandsListList[index].image.src,
fit: BoxFit.cover,
width: 60,
height: 40,
): Text(model.topBrandsListList[index].name)
),
child: model.topBrandsListList[index].image != null
? Image.network(
model.topBrandsListList[index].image.src,
fit: BoxFit.cover,
width: 60,
height: 40,
)
: Text(model.topBrandsListList[index].name)),
),
),
),
),
onTap: (){
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => FinalProductsPage(id: model.topBrandsListList[index].id.toString(),)),
builder: (context) => FinalProductsPage(
id: model.topBrandsListList[index].id.toString(),
)),
);
},
),

@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.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';
@ -1794,8 +1795,8 @@ class _footerWidgetState extends State<footerWidget> {
addToCartFunction(price, widget.item.id);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CartOrderPage()),
FadePage(page:
CartOrderPage()),
);
},
child: Container(

@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/pages/pharmacies/screens/payment-method-sel
import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy_module_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/ProductOrderPreviewItem.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/pharmacyAddresses/PharmacyAddresses.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -25,9 +26,7 @@ class OrderPreviewPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context);
final height = mediaQuery.size.height -
60 -
mediaQuery.padding.top;
final height = mediaQuery.size.height - 60 - mediaQuery.padding.top;
return BaseView<OrderPreviewViewModel>(
onModelReady: (model) => model.getShoppingCart(),
@ -781,23 +780,16 @@ class PaymentBottomWidget extends StatelessWidget {
),
onPressed: (paymentData.address != null &&
paymentData.paymentOption != null)
? () => {
model.makeOrder().then((_) {
if (model.state != ViewState.Idle) {
SnackBar snackBar = SnackBar(
content: Text(
'Order has been placed successfully!!'));
scaffold.showSnackBar(snackBar);
}
// Navigator.pushAndRemoveUntil(
// context,
// MaterialPageRoute(
// builder: (context) =>
// PharmacyPage()),
// (Route<dynamic> r) => false);
})
? () async {
await model.makeOrder();
if (model.state != ViewState.Idle) {
AppToast.showSuccessToast(message: "Order has been placed successfully!!");
} else {
AppToast.showErrorToast(message: model.error);
}
Navigator.pop(context);
Navigator.pop(context);
}
: null,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 16),

@ -28,8 +28,6 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:rating_bar/rating_bar.dart';
import '../../final_products_page.dart';
import 'lacum-activitaion-vida-page.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart';
bool isInWishlist = false;
int price = 0;
@ -40,7 +38,6 @@ var item;
dynamic languageID;
List wishlistData;
class PharmacyPage extends StatefulWidget {
// final PharmacyProduct product;
// PharmacyPage(this.product);
@ -91,7 +88,7 @@ class _PharmacyPageState extends State<PharmacyPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
BannerPager(model),
// GridViewButtons(model),
// GridViewButtons(model),
Container(
margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
child: Row(
@ -110,10 +107,7 @@ class _PharmacyPageState extends State<PharmacyPage> {
hPadding: 4,
handler: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
HomePrescriptionsPage()));
context, FadePage(page: HomePrescriptionsPage()));
},
),
],
@ -222,9 +216,17 @@ class _PharmacyPageState extends State<PharmacyPage> {
BorderRadius.circular(
30.0)),
child: Text(
languageID == "ar"
? model.prescriptionsList[index].isInOutPatientDescriptionN.toString()
: model.prescriptionsList[index].isInOutPatientDescription.toString(),
languageID == "ar"
? model
.prescriptionsList[
index]
.isInOutPatientDescriptionN
.toString()
: model
.prescriptionsList[
index]
.isInOutPatientDescription
.toString(),
style: TextStyle(
color: Colors.white,
fontSize: 15.0,
@ -624,8 +626,8 @@ class _PharmacyPageState extends State<PharmacyPage> {
handler: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => FinalProductsPage(
FadePage(
page: FinalProductsPage(
id: "",
productType: 3,
),
@ -666,8 +668,8 @@ class _PharmacyPageState extends State<PharmacyPage> {
handler: () => {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => FinalProductsPage(
FadePage(
page: FinalProductsPage(
id: "",
productType: 4,
),

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/model/pharmacies/Manufacturer.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import '../../final_products_page.dart';
@ -14,9 +15,10 @@ class ManufacturerItem extends StatelessWidget {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => FinalProductsPage(
id: item.id, productType: 2,
FadePage(
page: FinalProductsPage(
id: item.id,
productType: 2,
),
),
);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/order_model_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/profile/profile.dart';
@ -12,7 +13,7 @@ import 'package:rating_bar/rating_bar.dart';
import 'package:flutter/src/widgets/image.dart' as flutterImage;
class ProductReviewPage extends StatefulWidget {
final Product product;
final PharmacyProduct product;
ProductReviewPage(this.product);

@ -1,6 +1,7 @@
import 'dart:async';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_detail.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter_polyline_points/flutter_polyline_points.dart';
@ -9,7 +10,7 @@ import 'package:location/location.dart';
class TrackDriver extends StatefulWidget {
final OrderModel order;
final OrderDetailModel order;
TrackDriver({this.order});
@override
@ -17,7 +18,7 @@ class TrackDriver extends StatefulWidget {
}
class _TrackDriverState extends State<TrackDriver> {
OrderModel _order;
OrderDetailModel _order;
Completer<GoogleMapController> _controller = Completer();

@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.da
import 'package:diplomaticquarterapp/pages/ContactUs/LiveChat/livechat_page.dart';
import 'package:diplomaticquarterapp/pages/ContactUs/findus/findus_page.dart';
import 'package:diplomaticquarterapp/pages/DrawerPages/family/my-family.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/login/welcome.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/compare.dart';
@ -14,20 +15,14 @@ import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy-terms-con
import 'package:diplomaticquarterapp/pages/pharmacies/wishlist.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/order/Order.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/pharmacyAddresses/PharmacyAddresses.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/widgets/avatar/large_avatar.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_model.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/my_reviews.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/compare.dart';
dynamic languageID;
@ -74,7 +69,7 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
if (userData == null) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => WelcomeLogin()),
FadePage(page: WelcomeLogin()),
);
}
}
@ -124,38 +119,35 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
url: '',
),
),
Column(
children: <Widget>[
Row(
children: <Widget>[
Text(
TranslationBase.of(context).welcome,
Column(children: <Widget>[
Row(children: <Widget>[
Text(
TranslationBase.of(context)
.welcome,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold,
color: Colors.grey),
color: Colors.grey),
),
] ),
SizedBox(
height: 10,
),
Row(
children: <Widget>[
Text(
languageID == "ar"
? user.firstNameN.toString() +
" " +
user.lastNameN.toString()
: user.firstName.toString() +
" " +
user.lastName.toString(),
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold),
),
] ),
] ),
]),
SizedBox(
height: 10,
),
Row(children: <Widget>[
Text(
languageID == "ar"
? user.firstNameN.toString() +
" " +
user.lastNameN.toString()
: user.firstName.toString() +
" " +
user.lastName.toString(),
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold),
),
]),
]),
],
),
)
@ -185,8 +177,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
}
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => OrderPage(
FadePage(
page: OrderPage(
customerID: customerId)));
},
child: Column(
@ -214,11 +206,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
Expanded(
child: InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
LakumMainPage()));
Navigator.push(context,
FadePage(page: LakumMainPage()));
},
child: Column(
children: <Widget>[
@ -273,11 +262,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
Expanded(
child: InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
MyReviewsPage()));
Navigator.push(context,
FadePage(page: MyReviewsPage()));
},
child: Column(
children: <Widget>[
@ -337,9 +323,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
HomePrescriptionsPage()));
FadePage(
page: HomePrescriptionsPage()));
},
child: Row(
children: <Widget>[
@ -370,11 +355,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
),
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
ComparePage()));
Navigator.push(context,
FadePage(page: ComparePage()));
},
child: Row(
children: <Widget>[
@ -405,9 +387,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
HomePrescriptionsPage()));
FadePage(
page: HomePrescriptionsPage()));
},
child: Row(
children: <Widget>[
@ -439,10 +420,7 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
MyFamily()));
context, FadePage(page: MyFamily()));
},
child: Row(
children: <Widget>[
@ -474,9 +452,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
PharmacyAddressesPage()));
FadePage(
page: PharmacyAddressesPage()));
},
child: Row(
children: <Widget>[
@ -509,9 +486,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
PharmacyTermsConditions()));
FadePage(
page: PharmacyTermsConditions()));
},
child: Row(
children: <Widget>[
@ -544,14 +520,13 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
LakumTermsConditions(
this.identificationNo,
this.firstName,
this.lastName,
this.mobileNo,
this.languageId)));
FadePage(
page: LakumTermsConditions(
this.identificationNo,
this.firstName,
this.lastName,
this.mobileNo,
this.languageId)));
},
child: Row(
children: <Widget>[
@ -611,11 +586,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
),
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
LiveChatPage()));
Navigator.push(context,
FadePage(page: LiveChatPage()));
},
child: Row(
children: <Widget>[
@ -643,11 +615,8 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
),
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
FindUsPage()));
Navigator.push(context,
FadePage(page: FindUsPage()));
},
child: Row(
children: <Widget>[

@ -1,7 +1,6 @@
import 'dart:convert';
import 'package:barcode_scan_fix/barcode_scan.dart';
import 'package:charts_flutter/flutter.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
@ -11,8 +10,10 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'base/base_view.dart';
import 'final_products_page.dart';
@ -29,7 +30,9 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<PharmacyCategoriseViewModel>(
onModelReady: (model) => model.getCategorise(),
builder: (BuildContext context, PharmacyCategoriseViewModel model, Widget child) => AppScaffold(
builder: (BuildContext context, PharmacyCategoriseViewModel model,
Widget child) =>
AppScaffold(
isShowDecPage: false,
baseViewModel: model,
body: Column(
@ -57,7 +60,9 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Texts(
projectViewModel.isArabic ? model.categorise[index].namen : model.categorise[index].name,
projectViewModel.isArabic
? model.categorise[index].namen
: model.categorise[index].name,
fontWeight: FontWeight.w600,
),
),
@ -65,8 +70,8 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
onTap: () => {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => model.categorise[index].id != '12'
FadePage(
page: model.categorise[index].id != '12'
? ParentCategorisePage(
id: model.categorise[index].id,
titleName: model.categorise[index].name,
@ -86,7 +91,10 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
height: 140,
child: Column(
children: [
Divider(height: 2.0, thickness: 1.0, color: Colors.black12.withOpacity(0.14)),
Divider(
height: 2.0,
thickness: 1.0,
color: Colors.black12.withOpacity(0.14)),
SizedBox(
height: 10.0,
),
@ -102,12 +110,16 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
width: 55.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5.0),
color: Colors.green.shade300.withOpacity(0.34),
color:
Colors.green.shade300.withOpacity(0.34),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
padding:
EdgeInsets.symmetric(horizontal: 10.0),
child: Texts(
projectViewModel.isArabic ? 'الاكثر مبيعا' : 'Best Sellers',
projectViewModel.isArabic
? 'الاكثر مبيعا'
: 'Best Sellers',
fontWeight: FontWeight.w600,
),
),
@ -122,13 +134,16 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
height: 50.0,
width: 55.0,
decoration: BoxDecoration(
color: Colors.orangeAccent.shade200.withOpacity(0.34),
color: Colors.orangeAccent.shade200
.withOpacity(0.34),
borderRadius: BorderRadius.circular(5.0),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Texts(
projectViewModel.isArabic ? 'الاكثر مشاهدة' : 'Most Viewed',
projectViewModel.isArabic
? 'الاكثر مشاهدة'
: 'Most Viewed',
fontWeight: FontWeight.w600,
),
),
@ -152,7 +167,9 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Texts(
projectViewModel.isArabic ? 'منتجات جديدة' : 'New Products',
projectViewModel.isArabic
? 'منتجات جديدة'
: 'New Products',
fontWeight: FontWeight.w600,
),
),
@ -170,13 +187,17 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
height: 50.0,
width: 55.0,
decoration: BoxDecoration(
color: Colors.purple.shade200.withOpacity(0.34),
color:
Colors.purple.shade200.withOpacity(0.34),
borderRadius: BorderRadius.circular(5.0),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
padding:
EdgeInsets.symmetric(horizontal: 10.0),
child: Texts(
projectViewModel.isArabic ? 'شوهد مؤخرا' : 'Recently Viewed',
projectViewModel.isArabic
? 'شوهد مؤخرا'
: 'Recently Viewed',
fontWeight: FontWeight.w600,
),
),
@ -214,7 +235,7 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
{
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LandingPagePharmacy()),
FadePage(page: LandingPagePharmacy()),
);
}
}

@ -1,5 +1,4 @@
import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/product_detail.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
@ -8,7 +7,6 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_pharmacy_widget
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'base/base_view.dart';
import 'final_products_page.dart';
@ -19,6 +17,7 @@ class SubCategorisePage extends StatefulWidget {
String parentId;
SubCategorisePage({this.id, this.parentId, this.title});
@override
_SubCategorisePageState createState() =>
_SubCategorisePageState(id: id, title: title, parentId: parentId);
@ -30,7 +29,9 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
String id;
String title;
String parentId;
_SubCategorisePageState({this.title, this.parentId, this.id});
String categoriseName = "Personal Care";
bool styleOne = true;
bool styleTwo = false;
@ -39,6 +40,7 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
color: Colors.blue,
size: 29.0,
);
@override
Widget build(BuildContext context) {
return BaseView<PharmacyCategoriseViewModel>(
@ -142,8 +144,8 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
FadePage(
page:
FinalProductsPage(
id: model
.subCategorise[
@ -230,9 +232,8 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
FinalProductsPage(
FadePage(
page: FinalProductsPage(
id: model.subCategorise[index].id,
),
),

@ -1,6 +1,7 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_detail.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_model.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
@ -16,8 +17,8 @@ class CancelOrderService extends BaseService{
AuthenticatedUser authUser = new AuthenticatedUser();
AuthProvider authProvider = new AuthProvider();
List<OrderModel> _cancelOrderList = List();
List<OrderModel> get cancelOrderList => _cancelOrderList;
List<OrderDetailModel> _cancelOrderList = List();
List<OrderDetailModel> get cancelOrderList => _cancelOrderList;
String url ="";

@ -1,12 +1,13 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_detail.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_model.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:flutter/material.dart';
class OrderDetailsService extends BaseService{
@ -16,10 +17,8 @@ class OrderDetailsService extends BaseService{
AuthenticatedUser authUser = new AuthenticatedUser();
AuthProvider authProvider = new AuthProvider();
// String url ="";
// List<OrderModel> get orderDetails => ordeDetails;
List<OrderModel> _orderList = List();
List<OrderModel> get orderList => _orderList;
List<OrderDetailModel> _orderList = List();
List<OrderDetailModel> get orderList => _orderList;
Future getOrderDetails(OrderId) async {
@ -28,7 +27,7 @@ class OrderDetailsService extends BaseService{
onSuccess: (dynamic response, int statusCode) {
_orderList.clear();
response['orders'].forEach((item) {
_orderList.add(OrderModel.fromJson(item));
_orderList.add(OrderDetailModel.fromJson(item));
print(response);
});
}, onFailure: (String error, int statusCode) {
@ -37,7 +36,7 @@ class OrderDetailsService extends BaseService{
});
}
Future makeReview(Product product, double rating, String reviewText) async {
Future makeReview(PharmacyProduct product, double rating, String reviewText) async {
hasError = false;
super.error = "";

@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/pages/BookAppointment/BookingOptions.dart';
import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -16,8 +17,9 @@ import 'bottom_navigation_item.dart';
class BottomNavBar extends StatefulWidget {
final ValueChanged<int> changeIndex;
final int index ;
BottomNavBar({Key key, this.changeIndex,this.index}) : super(key: key);
final int index;
BottomNavBar({Key key, this.changeIndex, this.index}) : super(key: key);
@override
_BottomNavBarState createState() => _BottomNavBarState();
@ -77,29 +79,28 @@ class _BottomNavBarState extends State<BottomNavBar> {
currentIndex: 1,
name: TranslationBase.of(context).medicalProfile,
),
if(widget.index == 0 && projectViewModel.havePrivilege(34))
Expanded(
child: SizedBox(
height: 50,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(height: 22),
],
),
),
),
if(widget.index != 0 && projectViewModel.havePrivilege(34))
BottomNavigationItem(
icon: EvaIcons.calendar,
activeIcon: EvaIcons.calendar,
changeIndex: _changeIndex,
index: widget.index,
currentIndex: 2,
name: TranslationBase.of(context).bookAppo,
),
if (widget.index == 0 && projectViewModel.havePrivilege(34))
Expanded(
child: SizedBox(
height: 50,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
SizedBox(height: 22),
],
),
),
),
if (widget.index != 0 && projectViewModel.havePrivilege(34))
BottomNavigationItem(
icon: EvaIcons.calendar,
activeIcon: EvaIcons.calendar,
changeIndex: _changeIndex,
index: widget.index,
currentIndex: 2,
name: TranslationBase.of(context).bookAppo,
),
BottomNavigationItem(
icon: DQIcons.family,
activeIcon: DQIcons.family,
@ -108,15 +109,15 @@ class _BottomNavBarState extends State<BottomNavBar> {
currentIndex: 3,
name: TranslationBase.of(context).myFamily,
),
if(projectViewModel.havePrivilege(51))
BottomNavigationItem(
icon: EvaIcons.calendar,
activeIcon: EvaIcons.calendar,
changeIndex: _changeIndex,
index: widget.index,
currentIndex: 4,
name: TranslationBase.of(context).todoList,
)
if (projectViewModel.havePrivilege(51))
BottomNavigationItem(
icon: EvaIcons.calendar,
activeIcon: EvaIcons.calendar,
changeIndex: _changeIndex,
index: widget.index,
currentIndex: 4,
name: TranslationBase.of(context).todoList,
)
],
),
),
@ -124,12 +125,10 @@ class _BottomNavBarState extends State<BottomNavBar> {
}
Future navigateToBookingOptions(context) async {
Navigator.push(
context, MaterialPageRoute(builder: (context) => BookingOptions()));
Navigator.push(context, FadePage(page: BookingOptions()));
}
Future navigateToToDoList(context) async {
Navigator.push(context,
MaterialPageRoute(builder: (context) => ToDo(isShowAppBar: false)));
Navigator.push(context, FadePage(page: ToDo(isShowAppBar: false)));
}
}

@ -1,4 +1,5 @@
import 'dart:io';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart';
@ -18,7 +19,6 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
@ -44,7 +44,8 @@ class _AppDrawerState extends State<AppDrawer> {
ProjectViewModel projectProvider;
var sharedPref = new AppSharedPreferences();
var familyFileProvider = FamilyFilesProvider();
PharmacyModuleViewModel pharmacyModuleViewModel = locator<PharmacyModuleViewModel>();
PharmacyModuleViewModel pharmacyModuleViewModel =
locator<PharmacyModuleViewModel>();
AuthenticatedUser user;
AuthenticatedUser mainUser;
AuthenticatedUserObject authenticatedUserObject =
@ -55,6 +56,7 @@ class _AppDrawerState extends State<AppDrawer> {
ToDoCountProviderModel toDoProvider;
String booldType;
String notificationCount;
@override
Widget build(BuildContext context) {
toDoProvider = Provider.of<ToDoCountProviderModel>(context);
@ -158,7 +160,8 @@ class _AppDrawerState extends State<AppDrawer> {
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
(user.isFamily == null ||
user.isFamily == false)&& projectProvider.havePrivilege(2)
user.isFamily == false) &&
projectProvider.havePrivilege(2)
? InkWell(
child: DrawerItem(
TranslationBase.of(context).family,
@ -294,21 +297,20 @@ class _AppDrawerState extends State<AppDrawer> {
}
},
),
if(projectProvider.havePrivilege(1))
if (projectProvider.havePrivilege(1))
InkWell(
child: DrawerItem(
TranslationBase.of(context)
.arabicChange,
Icons.translate),
onTap: () {
if (projectProvider.isArabic) {
projectProvider.changeLanguage('en');
} else {
projectProvider.changeLanguage('ar');
}
},
),
child: DrawerItem(
TranslationBase.of(context)
.arabicChange,
Icons.translate),
onTap: () {
if (projectProvider.isArabic) {
projectProvider.changeLanguage('en');
} else {
projectProvider.changeLanguage('ar');
}
},
),
InkWell(
child: Stack(
children: [
@ -350,24 +352,22 @@ class _AppDrawerState extends State<AppDrawer> {
onTap: () {
//NotificationsPage
Navigator.of(context).pop();
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) =>
NotificationsPage()));
},
),
if(projectProvider.havePrivilege(3))
InkWell(
child: DrawerItem(
TranslationBase.of(context).appsetting,
Icons.settings_input_composite),
onTap: () {
Navigator.of(context).pushNamed(
SETTINGS,
);
Navigator.push(context,
FadePage(page: NotificationsPage()));
},
),
if (projectProvider.havePrivilege(3))
InkWell(
child: DrawerItem(
TranslationBase.of(context)
.appsetting,
Icons.settings_input_composite),
onTap: () {
Navigator.of(context).pushNamed(
SETTINGS,
);
},
),
InkWell(
child: DrawerItem(
TranslationBase.of(context).rateApp,
@ -573,7 +573,8 @@ class _AppDrawerState extends State<AppDrawer> {
loginAfter(result, context) async {
result = CheckActivationCode.fromJson(result);
Provider.of<ProjectViewModel>(context, listen: false).setPrivilege(privilegeList: result,isLoginChild: true);
Provider.of<ProjectViewModel>(context, listen: false)
.setPrivilege(privilegeList: result, isLoginChild: true);
var familyFile = await sharedPref.getObject(FAMILY_FILE);
var currentLang = await sharedPref.getString(APP_LANGUAGE);
var mainUser = await sharedPref.getObject(MAIN_USER);
@ -595,8 +596,8 @@ class _AppDrawerState extends State<AppDrawer> {
authenticatedUserObject.user;
Provider.of<ProjectViewModel>(context, listen: false)
.setUser(authenticatedUserObject.user);
await pharmacyModuleViewModel.generatePharmacyToken().then((value) async {
if(pharmacyModuleViewModel.error.isNotEmpty)
await pharmacyModuleViewModel.generatePharmacyToken().then((value) async {
if (pharmacyModuleViewModel.error.isNotEmpty)
await pharmacyModuleViewModel.createUser();
});

@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/order_detail.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
@ -20,13 +21,17 @@ class MyInAppBrowser extends InAppBrowser {
// static String PREAUTH_SERVICE_URL =
// 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort PreAuth Payment Gateway URL Live Store
static String PRESCRIPTION_PAYMENT_WITH_ORDERID =
'https://uat.hmgwebservices.com/epharmacy/checkout/OpcCompleteRedirectionPaymentClientbyOrder?orderID=';
static List<String> successURLS = [
'success',
'PayFortResponse',
'PayFortSucess'
'PayFortSucess',
'mobilepaymentcomplete'
];
static List<String> errorURLS = ['PayfortCancel'];
static List<String> errorURLS = ['PayfortCancel', 'errorpage', 'Failed'];
final Function onExitCallback;
final Function onLoadStartCallback;
@ -146,6 +151,26 @@ class MyInAppBrowser extends InAppBrowser {
});
}
openPharmacyPaymentBrowser(
OrderDetailModel order,
double amount,
String orderDesc,
String transactionID,
String emailId,
String paymentMethod,
String patientName,
dynamic patientID,
AuthenticatedUser authenticatedUser,
InAppBrowser browser) {
this.browser = browser;
getPatientData();
generatePharmacyURL(order, amount, orderDesc, transactionID, emailId,
paymentMethod, patientName, patientID, authenticatedUser)
.then((value) {
this.browser.openUrl(url: value);
});
}
openBrowser(String url) {
this.browser = browser;
this.browser.openUrl(url: url);
@ -225,6 +250,25 @@ class MyInAppBrowser extends InAppBrowser {
return 'data:text/html;base64,' + base64Str;
}
Future<String> generatePharmacyURL(
OrderDetailModel order,
double amount,
String orderDesc,
String transactionID,
String emailId,
String paymentMethod,
String patientName,
dynamic patientID,
AuthenticatedUser authUser) async {
String pharmacyURL = PRESCRIPTION_PAYMENT_WITH_ORDERID +
order.orderGuid +
'&&CustomerId=' +
"${order.customerId}";
print(pharmacyURL);
return pharmacyURL;
}
String getForm() {
return '<html> ' +
'<head></head>' +
@ -292,6 +336,36 @@ class MyInAppBrowser extends InAppBrowser {
'</body>' +
'</html>';
}
String getPharmacyForm() {
return '<html> ' +
'<head></head>' +
'<body>' +
'<form id="paymentForm" action="SERVICE_URL_VALUE" method="post">' +
'<input type="hidden" name="Amount" value="AMOUNT_VALUE">' +
'<input type="hidden" name="Order_Desc" value="ORDER_DESCRIPTION_VALUE">' +
'<input type="hidden" name="OrderID" value="ORDER_ID_VALUE">' +
'<input type="hidden" name="PaymentOption" value="PAYMENT_OPTION_VALUE">' +
'<input type="hidden" name="Email" value="EMAIL_VALUE">' +
'<input type="hidden" name="ServID" value="SERV_ID" >' +
'<input type="hidden" name="ChannelID" value="2" >' +
'<input type="hidden" name="Lang" value="LANG_VALUE" >' +
'<input type="hidden" name="ReturnURL" value="" >' +
'<input type="hidden" name="CustName" value="CUSTNAME_VALUE" >' +
'<input type="hidden" name="PatientOutSA" value="PATIENT_OUT_SA" >' +
'<input type="hidden" name="PatientTypeID" value="PATIENT_TYPE_ID" >' +
'<input type="hidden" name="DeviceToken" value="DEVICE_TOKEN" >' +
'<input type="hidden" name="Longitude" value="LONGITUDE_VALUE" >' +
'<input type="hidden" name="Latitude" value="LATITUDE_VALUE" >' +
'<input type="hidden" name="Live_ServiceID" value="LIVE_SERVICE_ID" >' +
'<input type="hidden" name="CustID" value="CUSTID_VALUE" >' +
'<input type="hidden" name="ResponseContinueURL" value="http://hmg.com/Documents/success.html" >' +
'<input type="hidden" name="BackClickUrl" value="http://hmg.com/Documents/success.html" >' +
'</form>' +
'<script type="text/javascript"> document.getElementById("paymentForm").submit(); </script>' +
'</body>' +
'</html>';
}
}
class MyChromeSafariBrowser extends ChromeSafariBrowser {

@ -194,7 +194,7 @@ class AppBarWidget extends StatelessWidget with PreferredSizeWidget {
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => CartOrderPage()),
FadePage(page: CartOrderPage()),
);
// Navigator.of(context)
// .popUntil(ModalRoute.withName('/'));

@ -483,25 +483,21 @@ class _SearchBot extends State<BottomBarSearch> {
{isAppo}) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DoctorProfile(
doctor: docObject,
docProfileList: docProfile,
isOpenAppt: isAppo,
)));
FadePage(
page: DoctorProfile(
doctor: docObject,
docProfileList: docProfile,
isOpenAppt: isAppo,
)));
}
Future navigateToSearchResults(context, docList, arr, arrDistance) async {
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) => SearchResults(doctorsList: docList)));
var result = LinkedHashSet<String>.from(arr).toList();
var numAll = result.length;
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BranchView(
FadePage(
page: BranchView(
doctorsList: docList,
result: result,
num: numAll,
@ -524,11 +520,11 @@ class _SearchBot extends State<BottomBarSearch> {
goToClinic(List ids) {
Navigator.push(
AppGlobal.context,
MaterialPageRoute(
builder: (context) => Search(
type: 0,
clnicIds: ids,
)));
FadePage(
page: Search(
type: 0,
clnicIds: ids,
)));
speak();
}

@ -1,6 +1,7 @@
import 'dart:collection';
import 'dart:io';
import 'dart:math';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
@ -11,6 +12,8 @@ import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/my_web_view.dar
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/parking_page.dart';
import 'package:diplomaticquarterapp/pages/Blood/blood_donation.dart';
import 'package:diplomaticquarterapp/pages/Blood/my_balance_page.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/DoctorProfile.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
import 'package:diplomaticquarterapp/pages/ContactUs/findus/findus_page.dart';
import 'package:diplomaticquarterapp/pages/DrawerPages/family/my-family.dart';
@ -44,17 +47,14 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/robo-search/robosearch.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:flutter_tts/flutter_tts.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart';
import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_recognition_result.dart';
import 'package:speech_to_text/speech_to_text.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/DoctorProfile.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
import 'package:flutter/cupertino.dart';
import 'package:url_launcher/url_launcher.dart';
class FloatingSearchButton extends StatefulWidget {
@ -795,25 +795,21 @@ class _FloatingSearchButton extends State<FloatingSearchButton>
{isAppo}) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DoctorProfile(
doctor: docObject,
docProfileList: docProfile,
isOpenAppt: isAppo,
)));
FadePage(
page: DoctorProfile(
doctor: docObject,
docProfileList: docProfile,
isOpenAppt: isAppo,
)));
}
Future navigateToSearchResults(context, docList, arr, arrDistance) async {
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) => SearchResults(doctorsList: docList)));
var result = LinkedHashSet<String>.from(arr).toList();
var numAll = result.length;
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BranchView(
FadePage(
page: BranchView(
doctorsList: docList,
result: result,
num: numAll,

@ -1,6 +1,5 @@
import 'package:diplomaticquarterapp/pages/landing/home_page.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
class BottomNavHomeItem extends StatelessWidget {
@ -35,7 +34,7 @@ class BottomNavHomeItem extends StatelessWidget {
onTap: () => {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LandingPage()),
FadePage(page: LandingPage()),
),
},
child: Column(

@ -1,10 +1,10 @@
import 'package:diplomaticquarterapp/core/model/pharmacies/order_model.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/order/ProductReview.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/image.dart' as flutterImage;
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:rating_bar/rating_bar.dart';
@ -21,25 +21,25 @@ class productTile extends StatelessWidget {
final String img;
final String imgs;
final int status;
final Product product;
final PharmacyProduct product;
final dynamic productID;
productTile(
{this.productName,
this.productPrice,
this.productRate,
this.productReviews,
this.qyt,
this.totalPrice,
this.isOrderDetails = false,
this.productImage,
this.showLine = true,
this.img,
this.imgs,
this.status,
this.product,
this.productID,
});
productTile({
this.productName,
this.productPrice,
this.productRate,
this.productReviews,
this.qyt,
this.totalPrice,
this.isOrderDetails = false,
this.productImage,
this.showLine = true,
this.img,
this.imgs,
this.status,
this.product,
this.productID,
});
@override
Widget build(BuildContext context) {
@ -134,11 +134,8 @@ class productTile extends StatelessWidget {
child: Column(
children: [
IconButton(
icon: Icon(
FontAwesomeIcons.trashAlt,
size: 15
),
onPressed: (){
icon: Icon(FontAwesomeIcons.trashAlt, size: 15),
onPressed: () {
deleteFromWishlistFunction(productID);
},
),
@ -146,16 +143,12 @@ class productTile extends StatelessWidget {
height: 50,
),
IconButton(
icon: Icon(
FontAwesomeIcons.shoppingCart,
size: 15
),
onPressed: () async{
icon: Icon(FontAwesomeIcons.shoppingCart, size: 15),
onPressed: () async {
await addToCartFunction(1, productID);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CartOrderPage()),
FadePage(page: CartOrderPage()),
);
},
),
@ -261,10 +254,7 @@ class productTile extends StatelessWidget {
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
ProductReviewPage(product)));
context, FadePage(page: ProductReviewPage(product)));
},
child: Container(
padding:
@ -296,17 +286,14 @@ class productTile extends StatelessWidget {
),
);
}
deleteFromWishlistFunction(itemID) async {
ProductDetailViewModel x = new ProductDetailViewModel();
await x.deletWishlistData(itemID);
}
addToCartFunction(quantity, itemID) async {
ProductDetailViewModel x = new ProductDetailViewModel();
await x.addToCartData(quantity, itemID);
}
}

@ -1,27 +1,18 @@
import 'dart:math';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/BookingOptions.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
import 'package:diplomaticquarterapp/pages/medical/my_admissions_page.dart';
import 'package:diplomaticquarterapp/services/robo_search/search_provider.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:speech_to_text/speech_recognition_error.dart';
import 'package:speech_to_text/speech_recognition_result.dart';
import 'package:speech_to_text/speech_to_text.dart';
import 'package:diplomaticquarterapp/widgets/robo-search/robosearch.dart';
import 'dart:math';
import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
class SearchBot with ChangeNotifier {
SearchBot() {
@ -30,6 +21,7 @@ class SearchBot with ChangeNotifier {
}
SearchProvider searchProvider = new SearchProvider();
// RobotProvider eventProvider = RobotProvider();
bool isLoading = false;
bool isError = false;
@ -190,18 +182,18 @@ class SearchBot with ChangeNotifier {
case '101':
Navigator.push(
AppGlobal.context,
MaterialPageRoute(
builder: (context) => Search(
type: 0,
)));
FadePage(
page: Search(
type: 0,
)));
break;
case '102':
Navigator.push(
AppGlobal.context,
MaterialPageRoute(
builder: (context) => Search(
type: 1,
)));
FadePage(
page: Search(
type: 1,
)));
break;
// case '103':
// eventProvider.setValue({"clinic_id": understand});

Loading…
Cancel
Save