Merge branch 'nov_fixes' of https://gitlab.com/Cloud_Solution/diplomatic-quarter into hussam_pharmacy_fix

 Conflicts:
	lib/pages/pharmacies/screens/cart-page/cart-order-page.dart
	lib/pages/pharmacies/widgets/ProductOrderItem.dart
merge-update-with-lab-changes
hussam al-habibeh 4 years ago
commit c0e86721f6

@ -91,46 +91,47 @@ class _CartOrderPageState extends State<CartOrderPage> {
endIndent: 0, endIndent: 0,
), ),
Container( Container(
child: Column( child: ListView.builder(
children: [ itemCount:
...List.generate( model.cartResponse.shoppingCarts.length,
model.cartResponse.shoppingCarts != null scrollDirection: Axis.vertical,
? model.cartResponse.shoppingCarts.length shrinkWrap: true,
: 0, physics: const AlwaysScrollableScrollPhysics (),
(index) => ProductOrderItem( itemBuilder: (context, index) {
model.cartResponse return ProductOrderItem(
.shoppingCarts[index], () async { item:model.cartResponse
GifLoaderDialogUtils.showMyDialog( .shoppingCarts[index],
context); changeCartItems:() async {
await model.changeProductQuantity(model GifLoaderDialogUtils.showMyDialog(
.cartResponse.shoppingCarts[index]); context);
if (model.state != ViewState.Error) { await model.changeProductQuantity(model
// appScaffold.appBar.badgeUpdater( .cartResponse.shoppingCarts[index]);
// '${value.quantityCount ?? 0}'); if (model.state != ViewState.Error) {
} }
if (model.state == if (model.state ==
ViewState.ErrorLocal) { ViewState.ErrorLocal) {
Utils.showErrorToast(model.error); Utils.showErrorToast(model.error);
} }
GifLoaderDialogUtils.hideDialog( GifLoaderDialogUtils.hideDialog(
context); context);
}, () async { },
GifLoaderDialogUtils.showMyDialog(
context); deleteCartItems:() async {
await model GifLoaderDialogUtils.showMyDialog(
.deleteProduct(model.cartResponse context);
.shoppingCarts[index]) await model
.then((value) { .deleteProduct(model.cartResponse
if (model.state == .shoppingCarts[index])
ViewState.ErrorLocal) { .then((value) {
Utils.showErrorToast(model.error); if (model.state ==
} ViewState.ErrorLocal) {
GifLoaderDialogUtils.hideDialog( Utils.showErrorToast(model.error);
context); }
}); GifLoaderDialogUtils.hideDialog(
}, model)) context);
], });
), },model: model,);
}),
), ),
const Divider( const Divider(
color: Color(0xFFD6D6D6), color: Color(0xFFD6D6D6),

@ -3,7 +3,6 @@ import 'package:diplomaticquarterapp/core/model/pharmacies/ShoppingCart.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/OrderPreviewViewModel.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/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -16,8 +15,8 @@ class ProductOrderItem extends StatefulWidget {
final VoidCallback deleteCartItems; final VoidCallback deleteCartItems;
final OrderPreviewViewModel model; final OrderPreviewViewModel model;
ProductOrderItem( ProductOrderItem({this.item, this.changeCartItems, this.deleteCartItems,
this.item, this.changeCartItems, this.deleteCartItems, this.model); this.model});
@override @override
_ProductOrderItemState createState() => _ProductOrderItemState(); _ProductOrderItemState createState() => _ProductOrderItemState();
@ -29,14 +28,15 @@ class _ProductOrderItemState extends State<ProductOrderItem> {
@override @override
void initState() { void initState() {
_quantityController.text = "${widget.item.quantity}";
_totalPrice =
"${(widget.item.product.price * widget.item.quantity).toStringAsFixed(2)}";
super.initState(); super.initState();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
_quantityController.text = "${widget.item.quantity}";
_totalPrice =
"${(widget.item.product.price * widget.item.quantity).toStringAsFixed(2)}";
ProjectViewModel projectProvider = Provider.of(context); ProjectViewModel projectProvider = Provider.of(context);
return Column( return Column(
@ -102,10 +102,8 @@ class _ProductOrderItemState extends State<ProductOrderItem> {
child: Row( child: Row(
children: [ children: [
InkWell( InkWell(
onTap: () => widget.model.error.isEmpty onTap: () =>
? {_quantityOnChangeClick(Operation.dec)} {_quantityOnChangeClick(Operation.dec)},
: Utils.showErrorToast(
widget.model.error),
child: Container( child: Container(
width: 25, width: 25,
height: 25, height: 25,
@ -150,10 +148,8 @@ class _ProductOrderItemState extends State<ProductOrderItem> {
)), )),
), ),
InkWell( InkWell(
onTap: () => widget.model.error == null onTap: () =>
? {_quantityOnChangeClick(Operation.inc)} {_quantityOnChangeClick(Operation.inc)},
: Utils.showErrorToast(
widget.model.error),
child: Container( child: Container(
width: 25, width: 25,
height: 25, height: 25,
@ -225,8 +221,7 @@ class _ProductOrderItemState extends State<ProductOrderItem> {
_quantityOnChangeClick(Operation operation) { _quantityOnChangeClick(Operation operation) {
int newValue = 0; int newValue = 0;
setState(() async {
setState(() {
switch (operation) { switch (operation) {
case Operation.inc: case Operation.inc:
{ {
@ -247,14 +242,20 @@ class _ProductOrderItemState extends State<ProductOrderItem> {
} }
if (newValue > 0) { if (newValue > 0) {
widget.item.quantity = newValue; widget.item.quantity = newValue;
_quantityController.text = "${widget.item.quantity}"; await widget.changeCartItems();
_totalPrice = if (widget.model.state == ViewState.ErrorLocal) {
"${(widget.item.product.price * widget.item.quantity).toStringAsFixed(2)}"; if (operation == Operation.dec) {
newValue = widget.item.quantity + 1;
} else {
newValue = widget.item.quantity - 1;
}
} else {
_quantityController.text = "${widget.item.quantity}";
_totalPrice =
"${(widget.item.product.price * widget.item.quantity).toStringAsFixed(2)}";
}
} }
}); });
if (newValue > 0) {
widget.changeCartItems();
}
} }
@override @override

Loading…
Cancel
Save