Merge branch 'pharmacy_fix_bugs' into 'development'

Pharmacy fix bugs

See merge request Cloud_Solution/diplomatic-quarter!430
merge-requests/434/merge
Mohammad Aljammal 5 years ago
commit 26c83cd93d

@ -494,8 +494,7 @@ class BaseAppClient {
if (statusCode < 200 || statusCode >= 400 || json == null) { if (statusCode < 200 || statusCode >= 400 || json == null) {
if (statusCode == 401) { if (statusCode == 401) {
AppToast.showErrorToast( onFailure(TranslationBase.of(AppGlobal.context).pharmacyRelogin, statusCode);
message: TranslationBase.of(AppGlobal.context).pharmacyRelogin);
Navigator.of(AppGlobal.context).pushNamed(HOME); Navigator.of(AppGlobal.context).pushNamed(HOME);
} else { } else {
onFailure('Error While Fetching data', statusCode); onFailure('Error While Fetching data', statusCode);

@ -129,7 +129,7 @@ class _LandingPagePharmacyState extends State<LandingPagePharmacy> {
PharmacyPage(), PharmacyPage(),
PharmacyCategorisePage(), PharmacyCategorisePage(),
PharmacyProfilePage(), PharmacyProfilePage(),
CartOrderPage(), CartOrderPage(changeTab: _changeCurrentTab),
], ],
), ),
bottomNavigationBar: BottomNavPharmacyBar( bottomNavigationBar: BottomNavPharmacyBar(

@ -20,21 +20,23 @@ import 'package:http/http.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class CartOrderPage extends StatefulWidget { class CartOrderPage extends StatefulWidget {
const CartOrderPage({Key key}) : super(key: key); final Function(int) changeTab;
const CartOrderPage({Key key, this.changeTab}) : super(key: key);
@override @override
_CartOrderPageState createState() => _CartOrderPageState(); _CartOrderPageState createState() => _CartOrderPageState();
} }
class _CartOrderPageState extends State<CartOrderPage> { class _CartOrderPageState extends State<CartOrderPage> {
bool isLoading = true; bool isLoading = true;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
getData(); getData();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context); final mediaQuery = MediaQuery.of(context);
@ -53,6 +55,7 @@ class _CartOrderPageState extends State<CartOrderPage> {
showHomeAppBarIcon: false, showHomeAppBarIcon: false,
isShowDecPage: true, isShowDecPage: true,
baseViewModel: model, baseViewModel: model,
backButtonTab: widget.changeTab != null ? () => widget.changeTab(0) : null,
backgroundColor: Colors.white, backgroundColor: Colors.white,
body: !(model.cartResponse.shoppingCarts == null || body: !(model.cartResponse.shoppingCarts == null ||
model.cartResponse.shoppingCarts.length == 0) model.cartResponse.shoppingCarts.length == 0)
@ -88,31 +91,30 @@ class _CartOrderPageState extends State<CartOrderPage> {
? model.cartResponse.shoppingCarts.length ? model.cartResponse.shoppingCarts.length
: 0, : 0,
(index) => ProductOrderItem( (index) => ProductOrderItem(
model.cartResponse.shoppingCarts[index], () { model.cartResponse
print(model.cartResponse.shoppingCarts[index] .shoppingCarts[index], () {
.quantity); print(model.cartResponse
.shoppingCarts[index].quantity);
model model
.changeProductQuantity( .changeProductQuantity(model
model.cartResponse.shoppingCarts[index]) .cartResponse
.shoppingCarts[index])
.then((value) { .then((value) {
if (model.state != if (model.state != ViewState.Error) {
ViewState.Error) {
appScaffold.appBar.badgeUpdater( appScaffold.appBar.badgeUpdater(
'${value.quantityCount ?? 0}'); '${value.quantityCount ?? 0}');
} }
if (model.state == if (model.state ==
ViewState.ErrorLocal) { ViewState.ErrorLocal) {
Utils.showErrorToast( Utils.showErrorToast(model.error);
model.error);
} }
}); });
}, () { }, () {
model model
.deleteProduct( .deleteProduct(model.cartResponse
model.cartResponse.shoppingCarts[index]) .shoppingCarts[index])
.then((value) { .then((value) {
if (model.state != if (model.state != ViewState.Error) {
ViewState.Error) {
appScaffold.appBar.badgeUpdater( appScaffold.appBar.badgeUpdater(
'${value.quantityCount ?? 0}'); '${value.quantityCount ?? 0}');
} }
@ -129,8 +131,7 @@ class _CartOrderPageState extends State<CartOrderPage> {
endIndent: 0, endIndent: 0,
), ),
Row( Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.spaceBetween,
MainAxisAlignment.spaceBetween,
children: [ children: [
Texts( Texts(
TranslationBase.of(context).subtotal, TranslationBase.of(context).subtotal,
@ -154,8 +155,7 @@ class _CartOrderPageState extends State<CartOrderPage> {
endIndent: 0, endIndent: 0,
), ),
Row( Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.spaceBetween,
MainAxisAlignment.spaceBetween,
children: [ children: [
Texts( Texts(
"${TranslationBase.of(context).vat}", "${TranslationBase.of(context).vat}",
@ -179,8 +179,7 @@ class _CartOrderPageState extends State<CartOrderPage> {
endIndent: 0, endIndent: 0,
), ),
Row( Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.spaceBetween,
MainAxisAlignment.spaceBetween,
children: [ children: [
Texts( Texts(
TranslationBase.of(context).total, TranslationBase.of(context).total,
@ -209,7 +208,9 @@ class _CartOrderPageState extends State<CartOrderPage> {
height: 30.0, height: 30.0,
fit: BoxFit.scaleDown, fit: BoxFit.scaleDown,
), ),
SizedBox(height: 120,) SizedBox(
height: 120,
)
], ],
), ),
), ),
@ -251,13 +252,12 @@ class _CartOrderPageState extends State<CartOrderPage> {
); );
} }
void getData()async { void getData() async {
await Provider.of<OrderPreviewViewModel>(context, listen: false)
await Provider.of<OrderPreviewViewModel>(context, listen: false).getShoppingCart(); .getShoppingCart();
setState(() { setState(() {
isLoading= false; isLoading = false;
}); });
} }
} }
@ -306,8 +306,7 @@ class _OrderBottomWidgetState extends State<OrderBottomWidget> {
width: 25.0, width: 25.0,
height: widget.height * 0.070, height: widget.height * 0.070,
decoration: new BoxDecoration( decoration: new BoxDecoration(
color: color: !isAgree ? Color(0xffeeeeee) : Colors.green,
!isAgree ? Color(0xffeeeeee) : Colors.green,
shape: BoxShape.circle, shape: BoxShape.circle,
), ),
child: !isAgree child: !isAgree
@ -337,8 +336,8 @@ class _OrderBottomWidgetState extends State<OrderBottomWidget> {
), ),
InkWell( InkWell(
onTap: () => { onTap: () => {
Navigator.push(context, Navigator.push(
FadePage(page: PharmacyTermsConditions())) context, FadePage(page: PharmacyTermsConditions()))
}, },
child: Container( child: Container(
child: Icon( child: Icon(
@ -369,13 +368,12 @@ class _OrderBottomWidgetState extends State<OrderBottomWidget> {
children: [ children: [
Texts( Texts(
"${TranslationBase.of(context).sar} ${(cart.cartResponse.subtotal).toStringAsFixed(2)}", "${TranslationBase.of(context).sar} ${(cart.cartResponse.subtotal).toStringAsFixed(2)}",
fontSize: fontSize: projectProvider.isArabic ? 12 : 14,
projectProvider.isArabic ? 12 : 14,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
), ),
Padding( Padding(
padding: const EdgeInsets.symmetric( padding:
horizontal: 4), const EdgeInsets.symmetric(horizontal: 4),
child: Texts( child: Texts(
"${TranslationBase.of(context).inclusiveVat}", "${TranslationBase.of(context).inclusiveVat}",
fontSize: 8, fontSize: 8,
@ -401,16 +399,15 @@ class _OrderBottomWidgetState extends State<OrderBottomWidget> {
Navigator.push( Navigator.push(
context, context,
FadePage( FadePage(
page: OrderPreviewPage( page:
widget.addresses))) OrderPreviewPage(widget.addresses)))
} }
: null, : null,
child: new Text( child: new Text(
"${TranslationBase.of(context).checkOut}", "${TranslationBase.of(context).checkOut}",
style: new TextStyle( style: new TextStyle(
color: isAgree color:
? Colors.white isAgree ? Colors.white : Colors.grey.shade300,
: Colors.grey.shade300,
fontSize: 14), fontSize: 14),
), ),
color: Color(0xff005aff), color: Color(0xff005aff),

@ -1,44 +1,15 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/service/parmacyModule/order-preview-service.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/OrderPreviewViewModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/PrescriptionViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/landing/home_page.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart';
import 'package:diplomaticquarterapp/pages/offers_categorise_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/product-brands.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/product-detail.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/lacum-activitaion-vida-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/lakum-main-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/recommended-product-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/BannerPager.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/BannerPager.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/ProductTileItem.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/BestSellerWidget.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/BestSellerWidget.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/GridViewButtons.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/GridViewButtons.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/PrescriptionsWidget.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/PrescriptionsWidget.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/RecentlyViewedWidget.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/ShopByBrandWidget.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/ShopByBrandWidget.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/manufacturerItem.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:rating_bar/rating_bar.dart';
import '../../../locator.dart';
import '../../final_products_page.dart';
class PharmacyPage extends StatefulWidget { class PharmacyPage extends StatefulWidget {
@override @override

@ -154,6 +154,7 @@ class ProductDetailService extends BaseService {
super.error = error; super.error = error;
}); });
} }
Future deleteItemFromWishlist(itemID) async { Future deleteItemFromWishlist(itemID) async {
var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID); var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
hasError = false; hasError = false;
@ -163,9 +164,11 @@ class ProductDetailService extends BaseService {
response['shopping_carts'].forEach((item) { response['shopping_carts'].forEach((item) {
_wishListProducts.add(Wishlist.fromJson(item)); _wishListProducts.add(Wishlist.fromJson(item));
}); });
AppToast.showSuccessToast(message: 'You have removed a product from the Wishlist');
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
super.error = error; super.error = error;
AppToast.showErrorToast(message: error??Utils.generateContactAdminMessage());
}); });
} }

@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart'; import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
@ -29,8 +30,6 @@ import '../progress_indicator/app_loader_widget.dart';
import 'arrow_back.dart'; import 'arrow_back.dart';
import 'network_base_view.dart'; import 'network_base_view.dart';
import 'not_auh_page.dart'; import 'not_auh_page.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
VoidCallback _onCartClick; VoidCallback _onCartClick;
@ -59,6 +58,8 @@ class AppScaffold extends StatelessWidget {
final List<ImagesInfo> imagesInfo; final List<ImagesInfo> imagesInfo;
final bool isHelp; final bool isHelp;
final bool isLocalLoader; final bool isLocalLoader;
final Function backButtonTab;
AuthenticatedUserObject authenticatedUserObject = AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>(); locator<AuthenticatedUserObject>();
@ -90,7 +91,9 @@ class AppScaffold extends StatelessWidget {
this.showHomeAppBarIcon = true, this.showHomeAppBarIcon = true,
this.imagesInfo, this.imagesInfo,
appBar, appBar,
this.customAppBar, this.isLocalLoader= false}); this.customAppBar,
this.isLocalLoader = false,
this.backButtonTab});
AppScaffold setOnAppBarCartClick(VoidCallback onClick) { AppScaffold setOnAppBarCartClick(VoidCallback onClick) {
_onCartClick = onClick; _onCartClick = onClick;
@ -115,6 +118,7 @@ class AppScaffold extends StatelessWidget {
isOfferPackages: isOfferPackages, isOfferPackages: isOfferPackages,
showOfferPackagesCart: showOfferPackagesCart, showOfferPackagesCart: showOfferPackagesCart,
isShowDecPage: isShowDecPage, isShowDecPage: isShowDecPage,
backButtonTab: backButtonTab,
) )
: null, : null,
bottomSheet: bottomSheet, bottomSheet: bottomSheet,
@ -146,18 +150,18 @@ class AppScaffold extends StatelessWidget {
} }
buildBodyWidget(context) { buildBodyWidget(context) {
return Stack( return Stack(children: <Widget>[
children: <Widget>[
Center( Center(
child:isLoading? CircularProgressIndicator( child: isLoading
? CircularProgressIndicator(
backgroundColor: Colors.white, backgroundColor: Colors.white,
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(
Colors.grey[500], Colors.grey[500],
), ),
):body), )
: body),
isHelp == true ? RobotIcon() : Container()
isHelp == true ? RobotIcon() : Container()]); ]);
} }
} }
@ -174,6 +178,7 @@ class AppBarWidget extends StatefulWidget with PreferredSizeWidget {
final bool showOfferPackagesCart; final bool showOfferPackagesCart;
final bool isShowDecPage; final bool isShowDecPage;
final Function backButtonTab;
Function(String) badgeUpdater; Function(String) badgeUpdater;
AppBarWidget( AppBarWidget(
@ -184,6 +189,7 @@ class AppBarWidget extends StatefulWidget with PreferredSizeWidget {
this.showPharmacyCart = true, this.showPharmacyCart = true,
this.isOfferPackages = false, this.isOfferPackages = false,
this.showOfferPackagesCart = false, this.showOfferPackagesCart = false,
this.backButtonTab,
this.isShowDecPage = true}); this.isShowDecPage = true});
@override @override
@ -210,6 +216,8 @@ class AppBarWidgetState extends State<AppBarWidget> {
Widget buildAppBar(BuildContext context) { Widget buildAppBar(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
OrderPreviewViewModel orderPreviewViewModel = Provider.of(context);
return AppBar( return AppBar(
elevation: 0, elevation: 0,
backgroundColor: widget.isPharmacy backgroundColor: widget.isPharmacy
@ -230,7 +238,9 @@ class AppBarWidgetState extends State<AppBarWidget> {
fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')), fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')),
leading: Builder( leading: Builder(
builder: (BuildContext context) { builder: (BuildContext context) {
return ArrowBack(); return ArrowBack(
onTap: widget.backButtonTab,
);
}, },
), ),
centerTitle: true, centerTitle: true,
@ -253,7 +263,7 @@ class AppBarWidgetState extends State<AppBarWidget> {
icon: Badge( icon: Badge(
position: BadgePosition.topStart(top: -15, start: -10), position: BadgePosition.topStart(top: -15, start: -10),
badgeContent: Text( badgeContent: Text(
_badgeText, orderPreviewViewModel.cartResponse.quantityCount.toString() /*_badgeText*/,
style: TextStyle( style: TextStyle(
fontSize: 9, fontSize: 9,
color: Colors.white, color: Colors.white,
@ -385,10 +395,10 @@ class _RobotIcon extends State<RobotIcon> {
bottom: -15); bottom: -15);
} }
// setAnimation() async { // setAnimation() async {
// /// await sharedPref.getBool(IS_ROBOT_VISIBLE) || // /// await sharedPref.getBool(IS_ROBOT_VISIBLE) ||
// // var animation = // // var animation =
// // IS_TEXT_COMPLETED == ? true : false; // // IS_TEXT_COMPLETED == ? true : false;
// } // }
} }

@ -34,6 +34,9 @@ class BottomNavPharmacyItem extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
OrderPreviewViewModel orderPreviewViewModel = Provider.of(context);
ProjectViewModel projectViewModel = Provider.of(context);
return Expanded( return Expanded(
child: SizedBox( child: SizedBox(
// height: 72.0, // height: 72.0,
@ -97,7 +100,7 @@ class BottomNavPharmacyItem extends StatelessWidget {
), ),
), ),
), ),
if(currentIndex == 3 &&Provider.of<OrderPreviewViewModel>(context, listen: false).cartResponse.quantityCount !=0) if(projectViewModel.isLogin && currentIndex == 3 && orderPreviewViewModel.cartResponse.quantityCount !=0)
Positioned( Positioned(
top: 5, right: -3.5, top: 5, right: -3.5,
child: Container( child: Container(
@ -108,7 +111,7 @@ class BottomNavPharmacyItem extends StatelessWidget {
), ),
padding: EdgeInsets.only(left: 5, right: 4.5), padding: EdgeInsets.only(left: 5, right: 4.5),
height: 18, height: 18,
child: Center(child: Texts(Provider.of<OrderPreviewViewModel>(context, listen: false).cartResponse.quantityCount.toString(), style: "caption", medium: true, color: Colors.white,)), child: Center(child: Texts(orderPreviewViewModel.cartResponse.quantityCount.toString(), style: "caption", medium: true, color: Colors.white,)),
), ),
) )
], ],

Loading…
Cancel
Save