Fixed out of stuck items issues

merge-update-with-lab-changes
Fatimah Alshammari 4 years ago
parent e2763a5bd5
commit 9cf0794cf6

@ -1091,6 +1091,8 @@ const Map localizedValues = {
"camera-permission": {"en": "Camera", "ar": "الكاميرا"},
"location-permission": {"en": "Location", "ar": "تحديد المواقع"},
"needPrescription": {"en": "This product requires a prescription", "ar": " هذا المنتج يتطلب وصفة طبية"},
"outOfStockMsg": {"en": "You have added product which is out of stock now, Please remove that!", "ar": "لقد قمت بإضافة المنتج الذي نفذ من المخزون الآن. يرجى إزالة ذلك"},
"accessibility": {"en": "Accessibility Mode", "ar": "وضع امكانية الوصول"},
"orderStatus": {"en": "Order Status", "ar": "حالة الطلب"},
"CancelOrder": {"en": "Cancel Order", "ar": "الغاء الطلب"},

@ -42,9 +42,11 @@ class OrderPreviewViewModel extends BaseViewModel {
getShoppingCart();
}
}
void update(){
void update() {
notifyListeners();
}
Future getShoppingCart() async {
// setState(ViewState.Busy);
// GifLoaderDialogUtils.showMyDialog(
@ -61,7 +63,7 @@ class OrderPreviewViewModel extends BaseViewModel {
}
// GifLoaderDialogUtils.hideDialog(
// locator<NavigationService>().navigatorKey.currentContext);
setState(ViewState.Idle);
setState(ViewState.Idle);
}
}
@ -216,15 +218,15 @@ class OrderPreviewViewModel extends BaseViewModel {
}
}
// bool outOfStock = false;
bool checkCardQuantity(){
bool outOfStock = false;
for (int i = 0; i <cartResponse.shoppingCarts.length; i++) {
if(cartResponse.shoppingCarts[i].product.stockQuantity == 0){
bool isCartItemsOutOfStock() {
bool outOfStock = false;
for (int i = 0; i < cartResponse.shoppingCarts.length; i++) {
if (cartResponse.shoppingCarts[i].product.stockQuantity == 0) {
outOfStock = true;
break;
} return outOfStock;
}
}
return outOfStock;
}
}

@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_deta
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/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/product-detail.dart';
@ -495,7 +496,7 @@ class _FinalProductsPageState extends State<FinalProductsPage> {
context)
.size
.width /
3.5
5.3
: 0,
padding:
EdgeInsets.all(
@ -613,21 +614,28 @@ class _FinalProductsPageState extends State<FinalProductsPage> {
),
),
widget.authenticatedUserObject.isLogin?
Container(
widget.authenticatedUserObject.isLogin
? Container(
child: IconButton(
icon: Icon(Icons.shopping_cart,
size: 15,
size: 18,
color: Colors.blue,),
onPressed: () async {
GifLoaderDialogUtils.showMyDialog(context);
if(model.finalProducts[index].rxMessage == null){
await addToCartFunction(1, model.finalProducts[index].id);
GifLoaderDialogUtils.hideDialog(context);
// GifLoaderDialogUtils.hideDialog(context);
Navigator.push(
context,
FadePage(page: CartOrderPage()),
);
},
}
else{
AppToast.showErrorToast(message: TranslationBase.of(context).needPrescription);
}
GifLoaderDialogUtils.hideDialog(context);
}
),
):Container(),
],

@ -9,6 +9,7 @@ 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';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
@ -1047,7 +1048,7 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
context)
.size
.width /
5
5.3
: 0,
padding:
EdgeInsets.all(4),
@ -1169,20 +1170,26 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
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.parentProducts[index].id);
GifLoaderDialogUtils.hideDialog(context);
Navigator.push(
context,
FadePage(page: CartOrderPage()),
);
},
)
child: IconButton(
icon: Icon(Icons.shopping_cart,
size: 18,
color: Colors.blue,),
onPressed: () async {
GifLoaderDialogUtils.showMyDialog(context);
if(model.parentProducts[index].rxMessage == null){
await addToCartFunction(1, model.parentProducts[index].id);
Navigator.push(
context,
FadePage(page: CartOrderPage()),
);
}
else{
AppToast.showErrorToast(message: TranslationBase.of(context).needPrescription);
}
GifLoaderDialogUtils.hideDialog(context);
}
),
): Container(),
],
),

@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy-terms-conditions-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/ProductOrderItem.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';
@ -276,7 +277,7 @@ class OrderBottomWidget extends StatefulWidget {
class _OrderBottomWidgetState extends State<OrderBottomWidget> {
bool isAgree = false;
bool outOfStock = false;
@override
Widget build(BuildContext context) {
ProjectViewModel projectProvider = Provider.of(context);
@ -400,23 +401,49 @@ class _OrderBottomWidgetState extends State<OrderBottomWidget> {
onPressed: isAgree
// && cart.cartResponse.shoppingCarts[1].product.stockQuantity ==0
? () => {
Navigator.push(
context,
FadePage(
page:
OrderPreviewPage(widget.addresses)))
}
: Text("remove item " ),
if(cart.isCartItemsOutOfStock()){
// Toast msg
AppToast.showErrorToast(message: TranslationBase.of(context).outOfStockMsg)
}else {
Navigator.push(
context,
FadePage(
page:
OrderPreviewPage(widget.addresses)))
}
}
: null,
child: new Text(
"${TranslationBase.of(context).checkOut}",
style: new TextStyle(
color:
isAgree ? Colors.white : Colors.grey.shade300,
isAgree ? Colors.white : Colors.grey.shade300,
fontSize: 14),
),
color: Color(0xff005aff),
disabledColor: Color(0xff005aff),
),
)
// RaisedButton(
// onPressed: isAgree
//// && cart.cartResponse.shoppingCarts[1].product.stockQuantity ==0
// ? () => {
// Navigator.push(
// context,
// FadePage(
// page:
// OrderPreviewPage(widget.addresses)))
// }
// : null,
// child: new Text(
// "${TranslationBase.of(context).checkOut}",
// style: new TextStyle(
// color:
// isAgree ? Colors.white : Colors.grey.shade300,
// fontSize: 14),
// ),
// color: Color(0xff005aff),
// disabledColor: Color(0xff005aff),
// )
],
),
),

@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_mo
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/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
@ -867,24 +868,6 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
],
),
),
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(),
],
),
),
@ -967,7 +950,7 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
context)
.size
.width /
5
5.3
: 0,
padding:
EdgeInsets.all(4),
@ -1082,6 +1065,29 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
],
),
),
widget.authenticatedUserObject.isLogin?
Container(
child: IconButton(
icon: Icon(Icons.shopping_cart,
size: 18,
color: Colors.blue,),
onPressed: () async {
GifLoaderDialogUtils.showMyDialog(context);
if(model.subProducts[index].rxMessage == null){
await addToCartFunction(1, model.subProducts[index].id);
// GifLoaderDialogUtils.hideDialog(context);
Navigator.push(
context,
FadePage(page: CartOrderPage()),
);}
else{
AppToast.showErrorToast(message: TranslationBase.of(context).needPrescription);
}
GifLoaderDialogUtils.hideDialog(context);
}
),
):Container(),
],
),
),

@ -1365,6 +1365,8 @@ class TranslationBase {
String get referralNumber =>
localizedValues['referralNumber'][locale.languageCode];
String get needPrescription => localizedValues['needPrescription'][locale.languageCode];
String get outOfStockMsg => localizedValues['outOfStockMsg'][locale.languageCode];
String get requestID => localizedValues['requestID'][locale.languageCode];
String get OrderStatus => localizedValues['OrderStatus'][locale.languageCode];
String get pickupDate => localizedValues['pickupDate'][locale.languageCode];

Loading…
Cancel
Save