From e2763a5bd592a40d64aa5e4d1741b2412a278ebb Mon Sep 17 00:00:00 2001 From: Fatimah Alshammari Date: Sun, 17 Oct 2021 09:37:24 +0300 Subject: [PATCH] fixed cart shopping issues --- .../pharmacyModule/OrderPreviewViewModel.dart | 11 +++++++ lib/pages/final_products_page.dart | 18 ++++++++++- lib/pages/parent_categorise_page.dart | 32 ++++++++++++++----- .../pharmacies/screens/cart-order-page.dart | 14 ++++++-- .../pharmacies/widgets/ProductOrderItem.dart | 17 ++++++++-- lib/pages/sub_categorise_page.dart | 17 +++++++++- 6 files changed, 94 insertions(+), 15 deletions(-) diff --git a/lib/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart b/lib/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart index 7c86f6b7..48241bf3 100644 --- a/lib/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart +++ b/lib/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart @@ -215,6 +215,17 @@ class OrderPreviewViewModel extends BaseViewModel { setState(ViewState.Idle); } } + + // bool outOfStock = false; + bool checkCardQuantity(){ + bool outOfStock = false; + for (int i = 0; i (); FinalProductsPage({this.id, this.productType = 1}); @@ -606,19 +612,24 @@ class _FinalProductsPageState extends State { ], ), ), + + widget.authenticatedUserObject.isLogin? Container( child: IconButton( icon: Icon(Icons.shopping_cart, size: 15, color: Colors.blue,), onPressed: () async { + GifLoaderDialogUtils.showMyDialog(context); + await addToCartFunction(1, model.finalProducts[index].id); + GifLoaderDialogUtils.hideDialog(context); Navigator.push( context, FadePage(page: CartOrderPage()), ); }, ), - ), + ):Container(), ], ), ), @@ -665,4 +676,9 @@ class _FinalProductsPageState extends State { ), )); } + + addToCartFunction(quantity, itemID) async { + ProductDetailViewModel x = new ProductDetailViewModel(); + await x.addToCartData(quantity, itemID); + } } diff --git a/lib/pages/parent_categorise_page.dart b/lib/pages/parent_categorise_page.dart index 07bd20fa..5c37c837 100644 --- a/lib/pages/parent_categorise_page.dart +++ b/lib/pages/parent_categorise_page.dart @@ -1,8 +1,11 @@ import 'package:diplomaticquarterapp/config/size_config.dart'; +import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart'; import 'package:diplomaticquarterapp/core/model/pharmacy/categorise_parent_model.dart'; +import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; +import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-page.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/product-detail.dart'; import 'package:diplomaticquarterapp/pages/sub_categorise_page.dart'; @@ -22,10 +25,14 @@ import 'package:provider/provider.dart'; import 'package:diplomaticquarterapp/pages/sub_categories_modalsheet.dart'; import 'base/base_view.dart'; + class ParentCategorisePage extends StatefulWidget { String id; String titleName; + AuthenticatedUserObject authenticatedUserObject = + locator(); + ParentCategorisePage({this.id, this.titleName}); @override @@ -38,7 +45,9 @@ class _ParentCategorisePageState extends State { String titleName; final dynamic productID; - _ParentCategorisePageState({this.id, this.titleName, this.productID}); + + + _ParentCategorisePageState({this.id, this.titleName, this.productID,}); Map values = {'huusam': false, 'ali': false, 'noor': false}; bool checkedBrands = false; @@ -1157,6 +1166,8 @@ class _ParentCategorisePageState extends State { ], ), ), + + widget.authenticatedUserObject.isLogin ? Container( child: IconButton( icon: Icon(Icons.shopping_cart, @@ -1164,15 +1175,15 @@ class _ParentCategorisePageState extends State { color: Colors.blue,), onPressed: () async { GifLoaderDialogUtils.showMyDialog(context); - await addToCartFunction(1, productID); + await addToCartFunction(1, model.parentProducts[index].id); GifLoaderDialogUtils.hideDialog(context); Navigator.push( context, FadePage(page: CartOrderPage()), ); }, - ), - ), + ) + ): Container(), ], ), ), @@ -1220,6 +1231,13 @@ class _ParentCategorisePageState extends State { ), ), )); + + + } + + addToCartFunction(quantity, itemID) async { + ProductDetailViewModel x = new ProductDetailViewModel(); + await x.addToCartData(quantity, itemID); } bool isEntityListSelected(CategoriseParentModel masterKey) { @@ -1240,8 +1258,6 @@ class _ParentCategorisePageState extends State { return false; } - addToCartFunction(quantity, itemID) async { - ProductDetailViewModel x = new ProductDetailViewModel(); - await x.addToCartData(quantity, itemID); - } + + } diff --git a/lib/pages/pharmacies/screens/cart-order-page.dart b/lib/pages/pharmacies/screens/cart-order-page.dart index 6fde76ae..63b72511 100644 --- a/lib/pages/pharmacies/screens/cart-order-page.dart +++ b/lib/pages/pharmacies/screens/cart-order-page.dart @@ -21,17 +21,24 @@ import 'package:provider/provider.dart'; import 'cart-page/cart-order-preview.dart'; class CartOrderPage extends StatefulWidget { - const CartOrderPage({Key key}) : super(key: key); + + + const CartOrderPage({ Key key}) + : super(key: key); + + @override _CartOrderPageState createState() => _CartOrderPageState(); } class _CartOrderPageState extends State { bool isLoading = true; + @override void initState() { super.initState(); getData(); + } @override @@ -269,7 +276,7 @@ class OrderBottomWidget extends StatefulWidget { class _OrderBottomWidgetState extends State { bool isAgree = false; - + bool outOfStock = false; @override Widget build(BuildContext context) { ProjectViewModel projectProvider = Provider.of(context); @@ -391,6 +398,7 @@ class _OrderBottomWidgetState extends State { ), RaisedButton( onPressed: isAgree +// && cart.cartResponse.shoppingCarts[1].product.stockQuantity ==0 ? () => { Navigator.push( context, @@ -398,7 +406,7 @@ class _OrderBottomWidgetState extends State { page: OrderPreviewPage(widget.addresses))) } - : null, + : Text("remove item " ), child: new Text( "${TranslationBase.of(context).checkOut}", style: new TextStyle( diff --git a/lib/pages/pharmacies/widgets/ProductOrderItem.dart b/lib/pages/pharmacies/widgets/ProductOrderItem.dart index d7a82cc6..cb7c59fd 100644 --- a/lib/pages/pharmacies/widgets/ProductOrderItem.dart +++ b/lib/pages/pharmacies/widgets/ProductOrderItem.dart @@ -45,6 +45,7 @@ class _ProductOrderItemState extends State { ), title: Container( child: Row( +// widget.item.product.stock_quantity===0 crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: [ @@ -166,10 +167,22 @@ class _ProductOrderItemState extends State { "$_totalPrice ${projectProvider.isArabic ? widget.item.currencyn : widget.item.currency}", fontSize: 12, fontWeight: FontWeight.bold, - ) + ), + widget.item.product.stockQuantity == 0 ? + Texts( + projectProvider.isArabic + ? widget.item.product.stockAvailabilityn + : widget.item.product.stockAvailability, + fontWeight: FontWeight.normal, + fontSize: 13, + color:Colors.red, + + ): Texts(""), ], ), - ) + ), + + ], ), ) diff --git a/lib/pages/sub_categorise_page.dart b/lib/pages/sub_categorise_page.dart index 92115cd3..cc8db925 100644 --- a/lib/pages/sub_categorise_page.dart +++ b/lib/pages/sub_categorise_page.dart @@ -1,5 +1,8 @@ import 'package:diplomaticquarterapp/core/model/pharmacy/categorise_parent_model.dart'; +import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; +import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart'; +import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-page.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/product-detail.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; @@ -21,6 +24,9 @@ class SubCategorisePage extends StatefulWidget { String title; String parentId; + AuthenticatedUserObject authenticatedUserObject = + locator(); + SubCategorisePage({this.id, this.parentId, this.title}); @override @@ -861,19 +867,24 @@ class _SubCategorisePageState extends State { ], ), ), + + widget.authenticatedUserObject.isLogin? Container( child: IconButton( icon: Icon(Icons.shopping_cart, size: 15, color: Colors.blue,), onPressed: () async { + GifLoaderDialogUtils.showMyDialog(context); + await addToCartFunction(1, model.subProducts[index].id); + GifLoaderDialogUtils.hideDialog(context); Navigator.push( context, FadePage(page: CartOrderPage()), ); }, ), - ), + ):Container(), ], ), ), @@ -1137,4 +1148,8 @@ class _SubCategorisePageState extends State { } return false; } + addToCartFunction(quantity, itemID) async { + ProductDetailViewModel x = new ProductDetailViewModel(); + await x.addToCartData(quantity, itemID); + } }