Merge branch 'development' into pharmacy-Fatima

# Conflicts:
#	lib/pages/pharmacy/profile/profile.dart
merge-requests/249/head
Fatimah Alshammari 4 years ago
commit 0f22a50a5d

@ -27,7 +27,7 @@ apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 28
compileSdkVersion 30
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@ -41,7 +41,7 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.cloud.diplomaticquarterapp"
minSdkVersion 21
targetSdkVersion 28
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true

@ -68,12 +68,12 @@ class HMGUtils {
}
}
fun getGeoZonesFromPreference(context: Context):List<GeoZoneModel>{
fun getGeoZonesFromPreference(context: Context): List<GeoZoneModel> {
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
val json = pref.getString(PREF_KEY_HMG_ZONES,"[]")
val geoZones = GeoZoneModel().listFrom(json)
return geoZones
val geoZones = json?.let { GeoZoneModel().listFrom(it) }
return geoZones!!
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@ -329,7 +329,7 @@ const GET_PHARMACY_BEST_SELLER_PRODUCT = "epharmacy/api/bestsellerproducts";
const GET_PHARMACY_PRODUCTs_BY_IDS = "epharmacy/api/productsbyids/";
const GET_CUSTOMERS_ADDRESSES = "epharmacy/api/Customers/";
const GET_ORDER = "orders?";
const GET_ORDER_DETAILS = "epharmacy/api/orders/";
const GET_ORDER_DETAILS = "orders/";
const ADD_CUSTOMER_ADDRESS = "epharmacy/api/addcustomeraddress";
const EDIT_CUSTOMER_ADDRESS = "epharmacy/api/editcustomeraddress";
const DELETE_CUSTOMER_ADDRESS = "epharmacy/api/deletecustomeraddress";

@ -177,6 +177,7 @@ const Map localizedValues = {
'ar': 'ابحث عن الدواء هنا'
},
'description': {'en': 'Description', 'ar': 'الوصف'},
'howToUse': {'en': 'How to Use', 'ar': 'طريقة الأستخدام'},
'price': {'en': 'Price', 'ar': 'السعر'},
'youCanFindItIn': {'en': 'You can find it in', 'ar': 'يمكنكة ان تجده في'},
'pleaseEnterMedicineName': {

@ -29,6 +29,9 @@ class Orders {
int orderStatusId;
String orderStatus;
String orderStatusn;
bool canCancel;
bool canRefund;
dynamic customerId;
Orders(
{this.id,
@ -37,7 +40,10 @@ class Orders {
this.createdOnUtc,
this.orderStatusId,
this.orderStatus,
this.orderStatusn});
this.orderStatusn,
this.canCancel,
this.canRefund,
this.customerId,});
Orders.fromJson(Map<String, dynamic> json) {
try {
@ -48,6 +54,9 @@ class Orders {
orderStatusId = json['order_status_id'];
orderStatus = json['order_status'];
orderStatusn = json['order_statusn'];
canCancel = json['can_cancel'];
canRefund = json['can_refund'];
customerId = json['customer_id'];
}catch(e){
print(e);
}

@ -21,7 +21,7 @@ class PrescriptionService extends BaseService {
hasError = false;
url = PRESCRIPTION;
print("Print PRESCRIPTION url" + url);
await baseAppClient.getPharmacy(url,
await baseAppClient.get(url,
onSuccess: (dynamic response, int statusCode) {
_prescriptionsList.clear();
response['PatientPrescriptionList'].forEach((item) {

@ -18,15 +18,12 @@ import '../base_view_model.dart';
class OrderModelViewModel extends BaseViewModel {
OrderService _orderService = locator<OrderService>();
List<Orders> get orders => _orderService.orderList;
OrderDetailsService _orderDetailsService = locator<OrderDetailsService>();
List<OrderModel> get orderDetails => _orderDetailsService.orderDetails;
List<OrderModel> get orderListModel => _orderDetailsService.orderList;
CancelOrderService _cancelOrderService = locator<CancelOrderService>();
List<OrderModel> get cancelOrder => _cancelOrderService.cancelOrderList;
@ -53,9 +50,9 @@ class OrderModelViewModel extends BaseViewModel {
}
}
Future getOrderDetails(orderId) async {
Future getOrderDetails(OrderId) async {
setState(ViewState.Busy);
await _orderDetailsService.getOrderDetails(orderId);
await _orderDetailsService.getOrderDetails(OrderId);
if (_orderDetailsService.hasError) {
error = _orderDetailsService.error;
setState(ViewState.Error);

@ -78,11 +78,19 @@ class _LandingPagePharmacyState extends State<LandingPagePharmacy> {
),
leading: Builder(
builder: (BuildContext context) {
return Container(
height: 2.0,
width: 10.0,
child: Image.asset(
'assets/images/pharmacy_logo.png',
return InkWell(
onTap: (){
setState(() {
currentTab = 0;
pageController.jumpToPage(0);
});
},
child: Container(
height: 2.0,
width: 10.0,
child: Image.asset(
'assets/images/pharmacy_logo.png',
),
),
);
},
@ -135,6 +143,7 @@ class _LandingPagePharmacyState extends State<LandingPagePharmacy> {
physics: NeverScrollableScrollPhysics(),
controller: pageController,
children: [
// TODO mosa_comeback
PharmacyPage(),
PharmacyCategorisePage(),
// OffersCategorisePage(),

@ -32,7 +32,7 @@ class LoginType extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Image.asset(
'assets/images/DQ/dq_logo_icon.png',
'assets/images/DQ/logo.png',
height: 90,
width: 90,
),

@ -3,6 +3,7 @@ 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:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -36,7 +37,7 @@ class _WelcomeLogin extends State<WelcomeLogin> {
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Image.asset('assets/images/DQ/dq_logo_icon.png',
Image.asset('assets/images/DQ/logo.png',
height: 90, width: 90),
Text(
TranslationBase.of(context).welcome,
@ -75,7 +76,7 @@ class _WelcomeLogin extends State<WelcomeLogin> {
LOGIN_TYPE,
),
},
color: Color(0xFF40ACC9),
color: Color(0xFFc5272c),
textColor: Colors.white,
))
],

@ -279,6 +279,31 @@ class __ProductDetailPageState extends State<ProductDetailPage> {
SizedBox(
height: 10,
),
Container(
child: Text(
languageID == 'ar'
? widget.product.shortDescriptionn
: widget.product.shortDescription,
style: TextStyle(
fontSize: 16,
fontFamily: 'WorkSans-Regular'),
),
),
SizedBox(
height: 10,
),
Container(
child: Text(
TranslationBase.of(context).howToUse,
style: TextStyle(
fontSize: 17,
color: Colors.grey,
fontWeight: FontWeight.w600),
),
),
SizedBox(
height: 10,
),
Container(
child: Text(
languageID == 'ar'

@ -19,26 +19,21 @@ class CartOrderPage extends StatelessWidget {
Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context);
PreferredSizeWidget appBarWidget =
AppBarWidget(TranslationBase.of(context).shoppingCart, null, true);
final height = mediaQuery.size.height -
appBarWidget.preferredSize.height -
mediaQuery.padding.top;
final height = mediaQuery.size.height - 60 - mediaQuery.padding.top;
return BaseView<OrderPreviewViewModel>(
onModelReady: (model) => model.getOrderPreviewData(),
builder: (_, model, wi) => ChangeNotifierProvider.value(
value: model.cartResponse,
child: AppScaffold(
title: TranslationBase.of(context).shoppingCart,
appBarTitle: TranslationBase.of(context).shoppingCart,
isShowAppBar: true,
isShowDecPage: false,
isPharmacy: true,
baseViewModel: model,
appBarWidget: appBarWidget,
backgroundColor: Colors.white,
body: !(model.cartResponse.shoppingCarts == null ||
model.cartResponse.shoppingCarts.length == 0)
model.cartResponse.shoppingCarts.length == 0)
? Container(
height: height * 0.85,
width: double.infinity,
@ -179,7 +174,29 @@ class CartOrderPage extends StatelessWidget {
),
),
)
: Container(),
: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Image.asset(
'assets/images/new-design/empty_box.png',
width: 100,
height: 100,
fit: BoxFit.cover,
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'There is no data',
style: TextStyle(fontSize: 30),
),
)
],
),
),
bottomSheet: Container(
height: !(model.cartResponse.shoppingCarts == null ||
model.cartResponse.shoppingCarts.length == 0)

@ -24,11 +24,9 @@ class OrderPreviewPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
PreferredSizeWidget appBarWidget =
AppBarWidget("${TranslationBase.of(context).checkOut}", null, true);
final mediaQuery = MediaQuery.of(context);
final height = mediaQuery.size.height -
appBarWidget.preferredSize.height -
60 -
mediaQuery.padding.top;
return BaseView<OrderPreviewViewModel>(
@ -36,11 +34,10 @@ class OrderPreviewPage extends StatelessWidget {
builder: (_, model, wi) => ChangeNotifierProvider.value(
value: model.paymentCheckoutData,
child: AppScaffold(
title: "${TranslationBase.of(context).checkOut}",
appBarTitle: "${TranslationBase.of(context).checkOut}",
isShowAppBar: true,
isPharmacy: true,
isShowDecPage: false,
appBarWidget: appBarWidget,
backgroundColor: Colors.white,
baseViewModel: model,
body: Container(

@ -34,7 +34,6 @@ class _LakumRegistrationPageState extends State<LakumRegistrationPage> {
@override
Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context);
PreferredSizeWidget appBarWidget = AppBarWidget("Lakum", null, true);
languages.clear();
languages.add(IdNamePair(1, TranslationBase.of(context).arabic));
languages.add(IdNamePair(2, TranslationBase.of(context).english));
@ -49,19 +48,18 @@ class _LakumRegistrationPageState extends State<LakumRegistrationPage> {
return BaseView<LacumRegistrationViewModel>(
builder: (_, model, wi) => AppScaffold(
title: "Register Lakum",
appBarTitle:
"${TranslationBase.of(context).register} ${TranslationBase.of(context).lakum}",
isShowAppBar: true,
isShowDecPage: false,
backgroundColor: Colors.white,
appBarWidget: appBarWidget,
baseViewModel: model,
body: Container(
width: double.infinity,
child: SingleChildScrollView(
child: SizedBox(
height: mediaQuery.size.height -
appBarWidget.preferredSize.height -
mediaQuery.padding.top,
height:
mediaQuery.size.height - 60 - mediaQuery.padding.top,
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.spaceBetween,

@ -36,24 +36,22 @@ class _LakumSettingPageState extends State<LakumSettingPage> {
@override
Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context);
PreferredSizeWidget appBarWidget = AppBarWidget("Lakum", null, true);
return BaseView<LacumViewModel>(
onModelReady: (model) => model.setLakumData(
widget.lacumInformation, widget.lacumGroupInformation),
builder: (_, model, wi) => AppScaffold(
title: "Lakum",
appBarTitle: "${TranslationBase.of(context).lakum}",
isShowAppBar: true,
isShowDecPage: false,
backgroundColor: Colors.white,
appBarWidget: appBarWidget,
baseViewModel: model,
body: Container(
width: double.infinity,
child: SingleChildScrollView(
child: SizedBox(
height: mediaQuery.size.height -
appBarWidget.preferredSize.height -
60 -
mediaQuery.padding.top,
child: _buildSettingScreen(mediaQuery, model),
),

@ -32,17 +32,15 @@ class _LacumTransferPageState extends State<LacumTransferPage> {
@override
Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context);
PreferredSizeWidget appBarWidget = AppBarWidget("Lakum", null, true);
return BaseView<LacumTranferViewModel>(
onModelReady: (model) => model.setLakumData(
widget.lacumInformation, widget.lacumGroupInformation),
builder: (_, model, wi) => AppScaffold(
title: "Lakum",
appBarTitle: "${TranslationBase.of(context).lakum}",
isShowAppBar: true,
isShowDecPage: false,
backgroundColor: Colors.white,
appBarWidget: appBarWidget,
baseViewModel: model,
body: Container(
width: double.infinity,

@ -19,21 +19,14 @@ class LakumTermsConditions extends StatelessWidget {
Widget build(BuildContext context) {
ProjectViewModel projectProvider = Provider.of(context);
final mediaQuery = MediaQuery.of(context);
PreferredSizeWidget appBarWidget = AppBarWidget("Lakum", null, true);
double height = mediaQuery.size.height -
appBarWidget.preferredSize.height -
mediaQuery.padding.top;
return BaseView<LacumRegistrationViewModel>(
onModelReady: (model) => model.getUserTermsAndConditionsForEPharmcy(),
builder: (_, model, wi) => AppScaffold(
appBarTitle: "Register Lakum",
appBarTitle: "${TranslationBase.of(context).register} ${TranslationBase.of(context).lakum}",
isShowAppBar: true,
isShowDecPage: false,
backgroundColor: Colors.white,
baseViewModel: model,
appBarWidget: appBarWidget,
body: Container(
margin: EdgeInsets.all(8),
width: double.infinity,

@ -28,7 +28,6 @@ class PharmacyPage extends StatelessWidget {
@override
void initState() {
// print("model prescription " + model.prescriptionsList.length);
// cancelOrderDetail(order)
}
@ -49,8 +48,8 @@ class PharmacyPage extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
BannerPager(model),
GridViewButtons(model),
BannerPager(model),
// GridViewButtons(model),
Container(
margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
child: Row(
@ -78,179 +77,182 @@ class PharmacyPage extends StatelessWidget {
],
),
),
// model.getPrescription(),
Container(
padding:
EdgeInsets.symmetric(horizontal: 16.0, vertical: 24.0),
padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 24.0),
height: MediaQuery.of(context).size.height * 0.30,
// width: 200.0,
// height: MediaQuery.of(context).size.height / 4 + 20,
// width: 200.0,
// height: MediaQuery.of(context).size.height / 4 + 20,
margin: EdgeInsets.only(left: 10),
child: BaseView<PharmacyModuleViewModel>(
onModelReady: (model) => model.getPrescription(),
builder: (_, model, wi) => model.prescriptionsList.length != 0
// model.getPrescription();
child: ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
physics: ScrollPhysics(),
// physics: NeverScrollableScrollPhysics(),
// itemCount: 4,
itemCount: model.prescriptionsList.length,
itemBuilder: (context, index) {
return Container(
? ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
physics: ScrollPhysics(),
// physics: NeverScrollableScrollPhysics(),
// itemCount: 4,
itemCount: model.prescriptionsList.length,
itemBuilder: (context, index) {
return Container(
// width: 160.0,
height: MediaQuery.of(context).size.height * 0.6,
padding: EdgeInsets.only(bottom: 5.0, left: 5.0),
margin: EdgeInsets.only(right: 10.0),
decoration: BoxDecoration(
border: Border.all(
color: Colors.grey,
style: BorderStyle.solid,
width: 1.0,
),
color: Colors.white,
borderRadius: BorderRadius.circular(10.0)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Row(
children: <Widget>[
Column(children: [
Container(
padding: EdgeInsets.only(
top: 10.0,
left: 10.0,
right: 3.0,
bottom: 15.0,
),
child: Image.network(
model.prescriptionsList[index]
.doctorImageURL,
width: 60,
height: 60,
height: MediaQuery.of(context).size.height * 0.6,
padding: EdgeInsets.only(bottom: 5.0, left: 5.0),
margin: EdgeInsets.only(right: 10.0),
decoration: BoxDecoration(
border: Border.all(
color: Colors.grey,
style: BorderStyle.solid,
width: 1.0,
),
color: Colors.white,
borderRadius: BorderRadius.circular(10.0)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Row(
children: <Widget>[
Column(children: [
Container(
padding: EdgeInsets.only(
top: 10.0,
left: 10.0,
right: 3.0,
bottom: 15.0,
),
child: Image.network(
model.prescriptionsList[index]
.doctorImageURL,
width: 60,
height: 60,
),
),
),
]),
Column(
]),
Column(
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
margin: EdgeInsets.only(left: 1),
padding: EdgeInsets.only(
left: 15.0, right: 15.0),
decoration: BoxDecoration(
border: Border.all(
children: [
Container(
margin: EdgeInsets.only(left: 1),
padding: EdgeInsets.only(
left: 15.0, right: 15.0),
decoration: BoxDecoration(
border: Border.all(
color: Colors.green,
style: BorderStyle.solid,
width: 4.0,
),
color: Colors.green,
style: BorderStyle.solid,
width: 4.0,
borderRadius:
BorderRadius.circular(
30.0)),
child: Text(
model.prescriptionsList[index]
.isInOutPatientDescription
.toString(),
style: TextStyle(
color: Colors.white,
fontSize: 15.0,
// fontWeight: FontWeight.bold,
),
color: Colors.green,
borderRadius:
BorderRadius.circular(
30.0)),
child: Text(
)),
Row(children: <Widget>[
Image.asset(
'assets/images/Icon-awesome-calendar.png',
width: 30,
height: 30,
),
Text(
model.prescriptionsList[index]
.isInOutPatientDescription
.appointmentDate
.toString(),
style: TextStyle(
color: Colors.white,
color: Colors.black,
fontSize: 15.0,
// fontWeight: FontWeight.bold,
// fontWeight: FontWeight.bold,
),
)),
Row(children: <Widget>[
Image.asset(
'assets/images/Icon-awesome-calendar.png',
width: 30,
height: 30,
)
]),
],
),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 5),
child: Row(children: <Widget>[
Text(
model.prescriptionsList[index]
.doctorTitle
.toString(),
style: TextStyle(
color: Colors.black,
fontSize: 15.0,
fontWeight: FontWeight.bold,
),
),
Text(
model.prescriptionsList[index]
.appointmentDate
.doctorName
.toString(),
style: TextStyle(
color: Colors.black,
fontSize: 15.0,
// fontWeight: FontWeight.bold,
fontWeight: FontWeight.bold,
),
)
]),
],
),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 5),
child: Row(children: <Widget>[
Text(
model.prescriptionsList[index]
.doctorTitle
.toString(),
style: TextStyle(
color: Colors.black,
fontSize: 15.0,
fontWeight: FontWeight.bold,
),
),
Text(
]),
),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 5),
child: Text(
model.prescriptionsList[index]
.doctorName
.clinicDescription
.toString(),
style: TextStyle(
color: Colors.black,
color: Colors.green,
fontSize: 15.0,
fontWeight: FontWeight.bold,
),
),
]),
),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 5),
child: Text(
model.prescriptionsList[index]
.clinicDescription
.toString(),
style: TextStyle(
color: Colors.green,
fontSize: 15.0,
// fontWeight: FontWeight.bold,
),
),
),
),
],
),
Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 5),
child: Align(
alignment: Alignment.topLeft,
child: RatingBar.readOnly(
],
),
Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 5),
child: Align(
alignment: Alignment.topLeft,
child: RatingBar.readOnly(
// initialRating: productRate,
size: 15.0,
filledColor: Colors.yellow[700],
emptyColor: Colors.grey[500],
isHalfAllowed: true,
halfFilledIcon: Icons.star_half,
filledIcon: Icons.star,
emptyIcon: Icons.star,
size: 15.0,
filledColor: Colors.yellow[700],
emptyColor: Colors.grey[500],
isHalfAllowed: true,
halfFilledIcon: Icons.star_half,
filledIcon: Icons.star,
emptyIcon: Icons.star,
),
),
),
)
]),
]),
);
}),
)
]),
]),
);
})
: Container(),
),
),
Container(
margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
child: Row(

@ -165,7 +165,7 @@ class _OrderPageState extends State<OrderPage> with SingleTickerProviderStateMix
),
),
Container(
child: Text(deliveredOrderList[index].createdOnUtc.toString().substring(0,11),
child: Text(deliveredOrderList[index].createdOnUtc.toString().substring(0,10),
style: TextStyle(fontSize: 14.0,
),
),
@ -378,7 +378,7 @@ class _OrderPageState extends State<OrderPage> with SingleTickerProviderStateMix
),
),
Container(
child: Text(processingOrderList[index].createdOnUtc.toString().substring(0,11),
child: Text(processingOrderList[index].createdOnUtc.toString().substring(0,10),
style: TextStyle(fontSize: 14.0,
),
),
@ -770,7 +770,7 @@ class _OrderPageState extends State<OrderPage> with SingleTickerProviderStateMix
),
),
Container(
child: Text(pendingOrderList[index].createdOnUtc.toString().substring(0,11),
child: Text(pendingOrderList[index].createdOnUtc.toString().substring(0,10),
style: TextStyle(fontSize: 14.0,
),
),
@ -987,7 +987,7 @@ class _OrderPageState extends State<OrderPage> with SingleTickerProviderStateMix
),
),
Container(
child: Text(cancelledOrderList[index].createdOnUtc.toString().substring(0,11),
child: Text(cancelledOrderList[index].createdOnUtc.toString().substring(0,10),
style: TextStyle(fontSize: 14.0,
),
),

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/core/model/pharmacies/orders_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/order_model_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
@ -19,15 +20,15 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:provider/provider.dart';
dynamic languageID;
class OrderDetailsPage extends StatefulWidget {
Orders orderModel;
OrderModel orderDetails;
OrderDetailsPage({@required this.orderModel, this.orderDetails});
Orders orderModel;
OrderDetailsPage({@required this.orderModel});
// Orders orderModel;
// OrderModel orderModelDetails;
// OrderDetailsPage({@required this.orderModel, this.orderModelDetails});
@override
_OrderDetailsPageState createState() => _OrderDetailsPageState();
@ -39,9 +40,8 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
}
// AppSharedPreferences sharedPref = AppSharedPreferences();
String orderId = "";
String customerId;
List<OrderModel> orderList = [];
List<OrderModel> ordersList = [];
List<OrderModel> cancelledOrderList = [];
@ -59,6 +59,8 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
super.initState();
// print(widget.orderModel.orderItems.length);
getCancelOrder(widget.orderModel.id);
print("ID is"+widget.orderModel.id);
// cancelOrderDetail(order)
}
@ -110,8 +112,8 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
borderRadius: BorderRadius.circular(30.0)),
child: Text(
languageID == "ar"
? widget.orderModel.orderStatusn.toString():
widget.orderModel.orderStatus.toString().substring(12) ,
? model.orderListModel[0].orderStatusn.toString():
model.orderListModel[0].orderStatus.toString().substring(12) ,
// TranslationBase.of(context).delivered,
style: TextStyle(
color: Colors.white,
@ -128,11 +130,11 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
widget.orderDetails.shippingAddress.firstName
model.orderListModel[0].shippingAddress.firstName
.toString()
.substring(10) +
' ' +
widget.orderDetails.shippingAddress.lastName
model.orderListModel[0].shippingAddress.lastName
.toString()
.substring(9),
style: TextStyle(
@ -148,7 +150,8 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
widget.orderDetails.shippingAddress.address1
model.orderListModel[0].shippingAddress.address1
.toString()
.substring(9),
style: TextStyle(
@ -165,14 +168,14 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
widget.orderDetails.shippingAddress.address2
model.orderListModel[0].shippingAddress.address2
.toString()
.substring(9) +
' ' +
widget.orderDetails.shippingAddress.country
model.orderListModel[0].shippingAddress.country
.toString() +
' ' +
widget.orderDetails.shippingAddress.zipPostalCode
model.orderListModel[0].shippingAddress.zipPostalCode
.toString(),
style: TextStyle(
fontSize: 10.0,
@ -195,7 +198,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
Container(
margin: EdgeInsets.only(top: 5.0, bottom: 5.0),
child: Text(
widget.orderDetails.shippingAddress.phoneNumber
model.orderListModel[0].shippingAddress.phoneNumber
.toString(),
style: TextStyle(
fontSize: 15.0,
@ -234,7 +237,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
),
Container(
child: flutterImage.Image.asset(
widget.orderDetails.shippingRateComputationMethodSystemName !=
model.orderListModel[0].shippingRateComputationMethodSystemName !=
"Shipping.Aramex"
? "assets/images/pharmacy_module/payment/LogoParmacyGreen.png"
: "assets/images/pharmacy_module/payment/aramex_shipping_logo.png",
@ -286,7 +289,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
Container(
margin: EdgeInsets.only(bottom: 10.0, top: 10.0),
child: Text(
widget.orderDetails.paymentName.toString().substring(12),
model.orderListModel[0].paymentName.toString().substring(12),
style: TextStyle(
fontSize: 13.0,
fontWeight: FontWeight.bold,
@ -322,23 +325,23 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: ScrollPhysics(),
itemCount:widget.orderDetails.orderItems.length,
itemCount:model.orderListModel[0].orderItems.length,
itemBuilder: (context, index){
return Container(
child: productTile(productName: widget.orderDetails.orderItems[index].product.name.toString(),
productPrice: widget.orderDetails.orderItems[index].product.price.toString(),
productRate: widget.orderDetails.orderItems[index].product.approvedRatingSum.toDouble(),
productReviews:widget.orderDetails.orderItems[index].product.approvedTotalReviews,
totalPrice: "${(widget.orderDetails.orderItems[index].product.price
* widget.orderDetails.orderItems[index].quantity).toStringAsFixed(2)}",
qyt: widget.orderDetails.orderItems[index].quantity.toString(),
child: productTile(productName: model.orderListModel[0].orderItems[index].product.name.toString(),
productPrice: model.orderListModel[0].orderItems[index].product.price.toString(),
productRate: model.orderListModel[0].orderItems[index].product.approvedRatingSum.toDouble(),
productReviews:model.orderListModel[0].orderItems[index].product.approvedTotalReviews,
totalPrice: "${(model.orderListModel[0].orderItems[index].product.price
* model.orderListModel[0].orderItems[index].quantity).toStringAsFixed(2)}",
qyt: model.orderListModel[0].orderItems[index].quantity.toString(),
isOrderDetails:true,
imgs: widget.orderDetails.orderItems[index].product.images != null &&
widget.orderDetails.orderItems[index].product.images.length != 0
? widget.orderDetails.orderItems[index].product.images [0].src.toString()
imgs: model.orderListModel[0].orderItems[index].product.images != null &&
model.orderListModel[0].orderItems[index].product.images.length != 0
? model.orderListModel[0].orderItems[index].product.images [0].src.toString()
: null,
status: widget.orderDetails.orderStatusId,
product: widget.orderDetails.orderItems[index].product,
status: model.orderListModel[0].orderStatusId,
product: model.orderListModel[0].orderItems[index].product,
),
);
}),
@ -387,7 +390,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
),
),
Text(
widget.orderDetails.orderSubtotalExclTax.toString(),
model.orderListModel[0].orderSubtotalExclTax.toString(),
style: TextStyle(
fontSize: 13.0,
),
@ -425,7 +428,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
),
),
Text(
widget.orderDetails.orderShippingExclTax.toString(),
model.orderListModel[0].orderShippingExclTax.toString(),
style: TextStyle(
fontSize: 13.0,
),
@ -463,7 +466,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
),
),
Text(
widget.orderDetails.orderTax.toString(),
model.orderListModel[0].orderTax.toString(),
style: TextStyle(
fontSize: 13.0,
),
@ -501,7 +504,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
),
),
Text(
widget.orderModel.orderTotal.toString(),
model.orderListModel[0].orderTotal.toString(),
style: TextStyle(
fontSize: 15.0,
fontWeight: FontWeight.bold,
@ -512,7 +515,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
),
],
),
widget.orderModel.orderStatusId == 10
model.orderListModel[0].orderStatusId == 10
? InkWell(
onTap: () {
model.makeOrder();
@ -548,7 +551,8 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
? InkWell(
onTap: () {
presentConfirmDialog(model,
widget.orderModel.id); //(widget.orderModel.id));
widget.orderModel.id);
// model.orderListModel[0].id//(widget.orderModel.id));
//
},
child: Container(
@ -595,17 +599,17 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
}
getCancelOrder(dataIsCancel) {
if (widget.orderDetails.canCancel && widget.orderDetails.canRefund) {
if (widget.orderModel.canCancel && widget.orderModel.canRefund) {
setState(() {
isCancel = true;
isRefund = false;
});
} else if (widget.orderDetails.canCancel) {
} else if (widget.orderModel.canCancel) {
setState(() {
isCancel = true;
isRefund = false;
});
} else if (widget.orderDetails.canRefund) {
} else if (widget.orderModel.canRefund) {
setState(() {
isCancel = false;
isRefund = true;
@ -634,7 +638,8 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
context,
MaterialPageRoute(
builder: (context) => OrderPage(
customerID: widget.orderDetails.customerId.toString())),
// customerID: model.ordersList[0].customerId.toString()
customerID: widget.orderModel.customerId.toString())),
);
}),
cancelFunction: () => {});
@ -643,7 +648,7 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
getCanceledOrder(order) {
Navigator.pop(context);
if (widget.orderDetails.canCancel && widget.orderDetails.canRefund == false) {
if (widget.orderModel.canCancel && widget.orderModel.canRefund == false) {
// getCanceledOrder(order);
// AppToast.showSuccessToast(message: "Request Sent Successfully");
// Navigator.push(context,
@ -651,4 +656,4 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
}
}
}
}

@ -49,11 +49,9 @@ class _AddAddressPageState extends State<AddAddressPage> {
@override
Widget build(BuildContext context) {
PreferredSizeWidget appBarWidget = AppBarWidget(
"${TranslationBase.of(context).changeAddress}", null, true);
final mediaQuery = MediaQuery.of(context);
final height = mediaQuery.size.height -
appBarWidget.preferredSize.height -
60 -
mediaQuery.padding.top;
return BaseView<PharmacyAddressesViewModel>(
@ -62,7 +60,6 @@ class _AddAddressPageState extends State<AddAddressPage> {
isShowAppBar: true,
isPharmacy: true,
backgroundColor: Colors.white,
appBarWidget: appBarWidget,
body: Container(
height: height * 1,
child: PickupLocationFromMap(

@ -12,14 +12,12 @@ import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/pharmacyAddresses/AddAddress.dart';
class PharmacyAddressesPage extends StatefulWidget {
@override
_PharmacyAddressesState createState() => _PharmacyAddressesState();
}
class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
void navigateToAddressPage(
BuildContext ctx, PharmacyAddressesViewModel model, Addresses address) {
Navigator.push(
@ -31,12 +29,8 @@ class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
}
Widget build(BuildContext context) {
PreferredSizeWidget appBarWidget = AppBarWidget(
"${TranslationBase.of(context).changeAddress}", null, true);
final mediaQuery = MediaQuery.of(context);
final height = mediaQuery.size.height -
appBarWidget.preferredSize.height -
mediaQuery.padding.top;
final height = mediaQuery.size.height - 60 - mediaQuery.padding.top;
return BaseView<PharmacyAddressesViewModel>(
onModelReady: (model) => model.getAddressesList(),
@ -46,7 +40,6 @@ class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
isPharmacy: true,
baseViewModel: model,
backgroundColor: Colors.white,
appBarWidget: appBarWidget,
body: Container(
height: height * 0.90,
child: SingleChildScrollView(
@ -115,8 +108,8 @@ class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
handler: () {
model.saveSelectedAddressLocally(
model.addresses[model.selectedAddressIndex]);
Navigator.pop(context,
model.addresses[model.selectedAddressIndex]);
Navigator.pop(
context, model.addresses[model.selectedAddressIndex]);
},
),
),

File diff suppressed because it is too large Load Diff

@ -16,21 +16,20 @@ class OrderDetailsService extends BaseService{
AuthenticatedUser authUser = new AuthenticatedUser();
AuthProvider authProvider = new AuthProvider();
List<OrderModel> get orderDetails => orderDetails;
// String url ="";
// List<OrderModel> get orderDetails => ordeDetails;
List<OrderModel> _orderList = List();
List<OrderModel> get orderList => _orderList;
Future getOrderDetails(orderId) async {
print("step 2" + orderId);
print("this is what i need"+GET_ORDER_DETAILS + orderId);
Future getOrderDetails(OrderId) async {
hasError = false;
await baseAppClient.getPharmacy(GET_ORDER_DETAILS+orderId,
await baseAppClient.getPharmacy(GET_ORDER_DETAILS+OrderId,
onSuccess: (dynamic response, int statusCode) {
_orderList.clear();
response['orders'].forEach((item) {
_orderList.add(OrderModel.fromJson(item));
print(response);
});
}, onFailure: (String error, int statusCode) {
hasError = true;

@ -22,7 +22,7 @@ class OrderService extends BaseService{
hasError = false;
// url =GET_ORDER+"customer=1,fields=id,order_total,order_status,order_statusn,order_status_id,created_on_utc&page=1&limit=200&customer_id=1367368";
// url =GET_ORDER+"customer=1,fields=id,order_total,order_status,order_statusn,order_status_id,created_on_utc&page=$pageId&limit=200&customer_id=$customerId";
url =GET_ORDER+"customer=1&fields=id,order_total,order_status,order_statusn,order_status_id,created_on_utc,product_count&page=$pageId&limit=200&customer_id=$customerId";
url =GET_ORDER+"customer=1&fields=id,order_total,order_status,order_statusn,order_status_id,created_on_utc,product_count,can_cancel,can_refund&page=$pageId&limit=200&customer_id=$customerId";
print(url);
await baseAppClient.getPharmacy(url,

@ -264,6 +264,7 @@ class TranslationBase {
localizedValues['pharmaciesList'][locale.languageCode];
String get description => localizedValues['description'][locale.languageCode];
String get howToUse => localizedValues['howToUse'][locale.languageCode];
String get price => localizedValues['price'][locale.languageCode];

@ -168,20 +168,28 @@ class LineChartCurvedState extends State<LineChartCurved> {
double getMaxY() {
double max = 0;
widget.labResult.forEach((element) {
try{
double resultValueDouble = double.parse(element.resultValue);
if (resultValueDouble > max) max = resultValueDouble;
if (resultValueDouble > max) max = resultValueDouble;}
catch(e){
print(e);
}
});
return max.roundToDouble();
}
double getMinY() {
double min = double.parse(widget.labResult[0].resultValue);
double min = 0;
try{
min = double.parse(widget.labResult[0].resultValue);
widget.labResult.forEach((element) {
double resultValueDouble = double.parse(element.resultValue);
if (resultValueDouble < min) min = resultValueDouble;
});
});}catch(e){
print(e);
}
int value = min.toInt();
return value.toDouble();
@ -190,8 +198,14 @@ class LineChartCurvedState extends State<LineChartCurved> {
List<LineChartBarData> getData() {
List<FlSpot> spots = List();
for (int index = 0; index < widget.labResult.length; index++) {
try{
var resultValueDouble = double.parse(widget.labResult[index].resultValue);
spots.add(FlSpot(index.toDouble(), resultValueDouble));
}catch(e){
print(e);
spots.add(FlSpot(index.toDouble(), 0.0));
}
}
final LineChartBarData lineChartBarData1 = LineChartBarData(

@ -77,7 +77,7 @@ class _AppDrawerState extends State<AppDrawer> {
children: <Widget>[
Container(
child:
Image.asset('assets/images/DQ/DQ_logo.png'),
Image.asset('assets/images/DQ/logo_big.png'),
margin: EdgeInsets.all(
SizeConfig.imageSizeMultiplier * 4),
),
@ -95,7 +95,7 @@ class _AppDrawerState extends State<AppDrawer> {
EdgeInsets.only(right: 0),
child: Icon(
Icons.account_circle,
color: Color(0xFF40ACC9),
color: Color(0xFFc5272c),
size: 28,
)),
Padding(
@ -105,7 +105,7 @@ class _AppDrawerState extends State<AppDrawer> {
user.firstName +
' ' +
user.lastName,
color: Color(0xFF40ACC9),
color: Color(0xFFc5272c),
))
],
),
@ -124,7 +124,7 @@ class _AppDrawerState extends State<AppDrawer> {
": " +
user.patientID
.toString(),
color: Color(0xFF40ACC9),
color: Color(0xFFc5272c),
fontSize: SizeConfig
.textMultiplier *
1.5,
@ -161,8 +161,8 @@ class _AppDrawerState extends State<AppDrawer> {
child: DrawerItem(
TranslationBase.of(context).family,
Icons.group,
textColor: Color(0xFF40ACC9),
iconColor: Color(0xFF40ACC9),
textColor: Color(0xFFc5272c),
iconColor: Color(0xFFc5272c),
bottomLine: false,
sideArrow: true,
),
@ -225,7 +225,7 @@ class _AppDrawerState extends State<AppDrawer> {
Icons
.account_circle,
color: Color(
0xFF40ACC9),
0xFFc5272c),
size:
24,
),
@ -273,15 +273,15 @@ class _AppDrawerState extends State<AppDrawer> {
CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: Icon(Icons.account_circle, color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black),
child: Icon(Icons.account_circle, color: result.responseID == user.patientID ? Color(0xFFc5272c) : Colors.black),
),
Expanded(
flex: 7,
child: Padding(
padding: EdgeInsets.only(left: 5, right: 5),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
AppText(result.patientName, color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black),
AppText(TranslationBase.of(context).fileno + ": " + result.responseID.toString(), color: result.responseID == user.patientID ? Color(0xFF40ACC9) : Colors.black),
AppText(result.patientName, color: result.responseID == user.patientID ? Color(0xFFc5272c) : Colors.black),
AppText(TranslationBase.of(context).fileno + ": " + result.responseID.toString(), color: result.responseID == user.patientID ? Color(0xFFc5272c) : Colors.black),
]))),
],
))))

@ -46,7 +46,6 @@ class AppScaffold extends StatelessWidget {
final Color backgroundColor;
final double preferredSize;
final List<Widget> appBarIcons;
final PreferredSizeWidget appBarWidget;
final List<ImagesInfo> imagesInfo;
AuthenticatedUserObject authenticatedUserObject =
@ -69,25 +68,18 @@ class AppScaffold extends StatelessWidget {
this.backgroundColor,
this.preferredSize = 0.0,
this.appBarIcons,
this.appBarWidget,
this.image,
this.infoList, this.imagesInfo});
@override
Widget build(BuildContext context) {
AppGlobal.context = context;
ProjectViewModel projectViewModel = Provider.of<ProjectViewModel>(context);
AppGlobal.context = context;
PreferredSizeWidget appBar;
return Scaffold(
backgroundColor:
backgroundColor ?? Theme.of(context).scaffoldBackgroundColor,
appBar: isShowAppBar? AppBarWidget(
appBarTitle,
appBarIcons,
isShowAppBar,
appBarTitle:appBarTitle,
appBarIcons:appBarIcons,
isPharmacy: isPharmacy,
isShowDecPage: isShowDecPage,
image: image,
@ -95,22 +87,17 @@ class AppScaffold extends StatelessWidget {
body: (!Provider.of<ProjectViewModel>(context, listen: false).isLogin &&
isShowDecPage)
? NotAutPage(
title: appBarTitle,
title: title ?? appBarTitle,
description: description,
infoList: infoList,
imagesInfo: imagesInfo,
)
: baseViewModel != null
? NetworkBaseView(
child: buildBodyWidget(),
child: body,
baseViewModel: baseViewModel,
)
: buildBodyWidget(),
bottomSheet: bottomSheet,
//floatingActionButton: floatingActionButton ?? floatingActionButton,
// bottomNavigationBar:
// this.isBottomBar == true ? BottomBarSearch() : SizedBox()
// floatingActionButton: FloatingSearchButton(),
: body,
);
}
@ -118,12 +105,6 @@ class AppScaffold extends StatelessWidget {
return isLoading ? AppLoaderWidget() : Container();
}
buildBodyWidget() {
// return body; //Stack(children: <Widget>[body, buildAppLoaderWidget(isLoading)]);
return Stack(children: <Widget>[
body, /*FloatingSearchButton()*/
]);
}
}
class AppBarWidget extends StatelessWidget with PreferredSizeWidget {
@ -132,13 +113,12 @@ class AppBarWidget extends StatelessWidget with PreferredSizeWidget {
final String appBarTitle;
final List<Widget> appBarIcons;
final bool isShowAppBar;
final bool isPharmacy;
final bool isShowDecPage;
final String image;
AppBarWidget(this.appBarTitle, this.appBarIcons, this.isShowAppBar,
{this.isPharmacy = true, this.isShowDecPage = true, this.image});
AppBarWidget({this.appBarTitle, this.appBarIcons,
this.isPharmacy = true, this.isShowDecPage = true, this.image});
@override
Widget build(BuildContext context) {
@ -147,8 +127,7 @@ class AppBarWidget extends StatelessWidget with PreferredSizeWidget {
Widget buildAppBar(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return isShowAppBar
? AppBar(
return AppBar(
elevation: 0,
backgroundColor:
isPharmacy ? Colors.green : Theme.of(context).appBarTheme.color,
@ -194,10 +173,7 @@ class AppBarWidget extends StatelessWidget with PreferredSizeWidget {
),
if (appBarIcons != null) ...appBarIcons
],
)
: Container(
height: 0,
width: 0,
);
}

Loading…
Cancel
Save