|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/pharmacy/Wishlist.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/pharmacy/locationModel.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/pharmacy/productDetailModel.dart';
|
|
|
|
|
@ -7,7 +8,10 @@ import 'package:diplomaticquarterapp/services/pharmacy_services/product_detail_s
|
|
|
|
|
import 'package:diplomaticquarterapp/models/pharmacy/specification.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/navigation_service.dart';
|
|
|
|
|
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/pharmacies/ShoppingCart.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/pharmacies/ShoppingCartResponse.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
import '../../../locator.dart';
|
|
|
|
|
|
|
|
|
|
@ -61,12 +65,39 @@ class ProductDetailViewModel extends BaseViewModel{
|
|
|
|
|
Future addToCartData(quantity, itemID) async {
|
|
|
|
|
hasError = false;
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
await _productDetailService.addToCart(quantity, itemID);
|
|
|
|
|
var resp = await _productDetailService.addToCart(quantity, itemID);
|
|
|
|
|
ShoppingCartResponse object = _handleGetShoppingCartResponse(resp);
|
|
|
|
|
if (_productDetailService.hasError) {
|
|
|
|
|
error = _productDetailService.error;
|
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
|
} else
|
|
|
|
|
} else {
|
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
|
Provider.of<OrderPreviewViewModel>(locator<NavigationService>().navigatorKey.currentContext, listen: false)
|
|
|
|
|
.setShoppingCartResponse( object);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ShoppingCartResponse _handleGetShoppingCartResponse(Map res) {
|
|
|
|
|
ShoppingCartResponse cartResponse = ShoppingCartResponse();
|
|
|
|
|
|
|
|
|
|
if (res == null) {
|
|
|
|
|
error = "response is null";
|
|
|
|
|
setState(ViewState.Error);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
print(res);
|
|
|
|
|
cartResponse.itemCount = res["item_count"];
|
|
|
|
|
cartResponse.quantityCount = res["quantity_count"];
|
|
|
|
|
cartResponse.subtotal = res["subtotal"];
|
|
|
|
|
cartResponse.subtotalWithVat = res["subtotal_with_vat"];
|
|
|
|
|
cartResponse.subtotalVatAmount = res["subtotal_vat_amount"];
|
|
|
|
|
cartResponse.subtotalVatRate = res["subtotal_vat_rate"];
|
|
|
|
|
cartResponse.shoppingCarts = List();
|
|
|
|
|
res["shopping_carts"].forEach((item) {
|
|
|
|
|
ShoppingCart shoppingCart = ShoppingCart.fromJson(item);
|
|
|
|
|
cartResponse.shoppingCarts.add(shoppingCart);
|
|
|
|
|
});
|
|
|
|
|
return cartResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future addToWishlistData(itemID) async {
|
|
|
|
|
|