fix bugs pharmacy home

merge-requests/402/head
mosazaid 5 years ago
parent a398ede172
commit fdb61c78c5

@ -1,5 +1,26 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import '../../../locator.dart';
class BestSellerViewModel extends BaseViewModel {
PharmacyModuleService _pharmacyService = locator<PharmacyModuleService>();
List<PharmacyProduct> get bestSellerProduct =>
_pharmacyService.bestSellerProducts;
getBestSellerProducts() async {
setState(ViewState.Busy);
await _pharmacyService.getBestSellerProducts();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
}
}
}

@ -2,10 +2,8 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/Prescriptions.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/prescription_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:provider/provider.dart';
import '../../../locator.dart';
import '../project_view_model.dart';
class PrescriptionViewModel extends BaseViewModel {
@ -15,16 +13,15 @@ class PrescriptionViewModel extends BaseViewModel {
_prescriptionService.prescriptionsList;
getPrescription() async {
await getSavedLanguage();
/*
setState(ViewState.Busy);
await getSavedLanguage();
await _prescriptionService.getPrescription();
if (_prescriptionService.hasError) {
error = _prescriptionService.error;
setState(ViewState.Error);
} else {
setState(ViewState.Idle);
}*/
}
}
}

@ -11,6 +11,8 @@ import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_s
import 'package:diplomaticquarterapp/core/service/parmacyModule/prescription_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/recommendedProduct_service.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
import '../../../locator.dart';
@ -23,19 +25,21 @@ class PharmacyModuleViewModel extends BaseViewModel {
List<PharmacyImageObject> get bannerList => _pharmacyService.bannerItems;
List<PharmacyProduct> get bestSellerProduct =>
_pharmacyService.bestSellerProducts;
List <RecommendedProductModel> get recommendedProductList =>
_recommendedProductService.recommendedList;
Future getBannerList() async {
setState(ViewState.BusyLocal);
_pharmacyService.bannerItems.clear();
// setState(ViewState.BusyLocal);
GifLoaderDialogUtils.showMyDialog(
locator<NavigationService>().navigatorKey.currentContext);
await _pharmacyService.getBannerListList();
if (_pharmacyService.hasError)
GifLoaderDialogUtils.hideDialog(
locator<NavigationService>().navigatorKey.currentContext);
// if (_pharmacyService.hasError)
// {
error = _pharmacyService.error;
// error = _pharmacyService.error;
// setState(ViewState.Error);
// } else
// setState(ViewState.Idle);
@ -90,17 +94,6 @@ class PharmacyModuleViewModel extends BaseViewModel {
return images;
}
getBestSellerProducts() async {
await _pharmacyService.getBestSellerProducts();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;
setState(ViewState.Error);
} else {
}
}
getRecommendedProducts(productId) async {
setState(ViewState.Busy);
await _recommendedProductService.getRecommendedProducts(productId);
@ -126,19 +119,4 @@ class PharmacyModuleViewModel extends BaseViewModel {
}
}
///////////////////////or
// getPrescriptions() async {
// setState(ViewState.Busy);
// await _prescriptionsService.getPrescriptions();
// if (_prescriptionsService.hasError) {
// error = _prescriptionsService.error;
// setState(ViewState.Error);
// } else {
// _filterList();
// await _getPrescriptionsOrders();
// setState(ViewState.Idle);
// }
// }
}

@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/services/robo_search/search_provider.dart';
import 'package:diplomaticquarterapp/theme/theme_value.dart';
import 'package:diplomaticquarterapp/uitl/LocalNotification.dart';
import 'package:diplomaticquarterapp/uitl/PlatformBridge.dart';
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
@ -84,6 +85,7 @@ class _MyApp extends State<MyApp> {
navigatorObservers: [
GAnalytics.shared.navObserver()
],
navigatorKey: locator<NavigationService>().navigatorKey,
showSemanticsDebugger: false,
title: 'Diplomatic Quarter App',
locale: projectProvider.appLocal,

@ -1,4 +1,6 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/BestSellerViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/BrandViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/LastVisitedViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/PrescriptionViewModel.dart';
@ -35,6 +37,7 @@ class PharmacyPage extends StatefulWidget {
class _PharmacyPageState extends State<PharmacyPage> {
@override
Widget build(BuildContext context) {
return BaseView<PharmacyModuleViewModel>(
onModelReady: (model) async {
// GifLoaderDialogUtils.showMyDialog(context);
@ -49,7 +52,7 @@ class _PharmacyPageState extends State<PharmacyPage> {
isShowDecPage: false,
baseViewModel: model,
backgroundColor: Colors.white,
body: Container(
body: model.state != ViewState.BusyLocal ? Container(
width: double.infinity,
child: SingleChildScrollView(
child: Column(
@ -57,54 +60,16 @@ class _PharmacyPageState extends State<PharmacyPage> {
children: <Widget>[
BannerPager(model),
GridViewButtons(model),
//PrescriptionsWidget(),
PrescriptionsWidget(),
ShopByBrandWidget(),
RecentlyViewedWidget(),
// TODO MOUSA
Container(
margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(
TranslationBase.of(context).bestSellers,
bold: true,
),
BorderedButton(
TranslationBase.of(context).viewAll,
hasBorder: true,
borderColor: Colors.green,
textColor: Colors.green,
vPadding: 6,
hPadding: 4,
handler: () => {
Navigator.push(
context,
FadePage(
page: FinalProductsPage(
id: "",
//TODO Elham* handel this to understans form where the number comming
productType: 20,
),
),
),
},
),
],
),
),
Container(
height: MediaQuery.of(context).size.height / 4 + 20,
child: ListView.builder(
itemBuilder: (ctx, i) =>
ProductTileItem(model.bestSellerProduct[i]),
scrollDirection: Axis.horizontal,
itemCount: model.bestSellerProduct.length,
),
),
BestSellerWidget(),
],
),
),
) : Container(
height: 200,
color: Colors.red,
),
),
);
@ -265,8 +230,11 @@ class PrescriptionsWidget extends StatelessWidget {
}
},
allowAny: true,
builder: (_, model, wi) => model.prescriptionsList.length != 0
? Container(
builder: (_, model, wi) => model.prescriptionsList.length > 0
? NetworkBaseView(
isLocalLoader: true,
baseViewModel: model,
child: Container(
height: model.prescriptionsList.length > 0
? MediaQuery.of(context).size.height * 0.28
: 0,
@ -300,8 +268,8 @@ class PrescriptionsWidget extends StatelessWidget {
),
),
Container(
padding:
EdgeInsets.symmetric(horizontal: 18.0, vertical: 14.0),
padding: EdgeInsets.symmetric(
horizontal: 18.0, vertical: 14.0),
margin: EdgeInsets.only(left: 10),
child: ListView.builder(
scrollDirection: Axis.horizontal,
@ -338,7 +306,8 @@ class PrescriptionsWidget extends StatelessWidget {
),
child: CircleAvatar(
radius: 30,
backgroundColor: Colors.transparent,
backgroundColor:
Colors.transparent,
child: Image.network(
model.prescriptionsList[index]
.doctorImageURL,
@ -351,7 +320,8 @@ class PrescriptionsWidget extends StatelessWidget {
Column(
children: [
Container(
margin: EdgeInsets.only(left: 1),
margin:
EdgeInsets.only(left: 1),
padding: EdgeInsets.only(
left: 15.0, right: 15.0),
decoration: BoxDecoration(
@ -388,8 +358,10 @@ class PrescriptionsWidget extends StatelessWidget {
height: 30,
),
Text(
DateUtil.convertStringToDate(model
.prescriptionsList[index]
DateUtil.convertStringToDate(
model
.prescriptionsList[
index]
.appointmentDate
.toString())
.toString()
@ -485,6 +457,7 @@ class PrescriptionsWidget extends StatelessWidget {
),
],
),
),
)
: Container(),
);
@ -604,6 +577,65 @@ class RecentlyViewedWidget extends StatelessWidget {
}
}
class BestSellerWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BaseView<BestSellerViewModel>(
onModelReady: (model) => model.getBestSellerProducts(),
allowAny: true,
builder: (_, model, wi) => NetworkBaseView(
isLocalLoader: true,
baseViewModel: model,
child: Container(
child: Column(
children: [
Container(
margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(
TranslationBase.of(context).bestSellers,
bold: true,
),
BorderedButton(
TranslationBase.of(context).viewAll,
hasBorder: true,
borderColor: Colors.green,
textColor: Colors.green,
vPadding: 6,
hPadding: 4,
handler: () => {
Navigator.push(
context,
FadePage(
page: FinalProductsPage(
id: "",
productType: 20,
),
),
),
},
),
],
),
),
Container(
height: MediaQuery.of(context).size.height / 4 + 20,
child: ListView.builder(
itemBuilder: (ctx, i) =>
ProductTileItem(model.bestSellerProduct[i]),
scrollDirection: Axis.horizontal,
itemCount: model.bestSellerProduct.length,
),
),
],
),
),
));
}
}
// Container(
// margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
// child: Row(

@ -50,7 +50,7 @@ class _NetworkBaseViewState extends State<NetworkBaseView>{
child:CircularProgressIndicator(
backgroundColor: Colors.white,
valueColor: AlwaysStoppedAnimation<Color>(
Colors.red,
Colors.grey[500],
),
),
),

Loading…
Cancel
Save