product detail page updates

merge-requests/498/head
haroon amjad 3 years ago
parent 70304427f9
commit 3ec2f990b1

@ -31,6 +31,8 @@ class ProductDetailViewModel extends BaseViewModel {
String get stockAvailability => _productDetailService.stockAvailability;
String get stockAvailabilityn => _productDetailService.stockAvailabilityn;
bool get isStockAvailable => _productDetailService.isStockAvailable;
Future getProductReviewsData(productID) async {

@ -241,14 +241,14 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
pageController = PageController(keepPage: true);
_firebaseMessaging.setAutoInitEnabled(true);
signalRUtil = new SignalRUtil(hubName: "https://VCallApi.hmg.com/WebRTCHub?source=mobile&username=2001273", context: context);
// signalRUtil = new SignalRUtil(hubName: "https://VCallApi.hmg.com/WebRTCHub?source=mobile&username=2001273", context: context);
locationUtils = new LocationUtils(isShowConfirmDialog: false, context: context);
WidgetsBinding.instance.addPostFrameCallback((_) {
if (projectViewModel.isLogin && !projectViewModel.isLoginChild) {
familyFileProvider.getSharedRecordByStatus();
}
if (!signalRUtil.getConnectionState()) signalRUtil.startSignalRConnection();
// if (!signalRUtil.getConnectionState()) signalRUtil.startSignalRConnection();
});
// HMG (Guest/Internet) Wifi Access [Zohaib Kambrani]
//for now commented to reduce this call will enable it when needed

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.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/pharmacies/screens/product-details/product-name-and-price.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/recommended_products.dart';
@ -14,6 +15,7 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'availability_info.dart';
import 'details_info.dart';
@ -87,6 +89,7 @@ class __ProductDetailPageState extends State<ProductDetailPage> {
}
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<ProductDetailViewModel>(
allowAny: true,
onModelReady: (model) async {
@ -153,6 +156,7 @@ class __ProductDetailPageState extends State<ProductDetailPage> {
},
isInWishList: isInWishList,
isStockAvailable: model.isStockAvailable,
stockAvailability: projectViewModel.isArabic ? model.stockAvailabilityn : model.stockAvailability,
),
),
SizedBox(

@ -20,11 +20,12 @@ class ProductNameAndPrice extends StatefulWidget {
final Function addToWishlistFunction;
final Function deleteFromWishlistFunction;
final bool isStockAvailable;
final String stockAvailability;
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
ProductNameAndPrice(this.context, this.item,
{this.customerId, this.isInWishList, this.notifyMeWhenAvailable, this.addToWishlistFunction, this.deleteFromWishlistFunction, this.isStockAvailable = false});
{this.customerId, this.isInWishList, this.notifyMeWhenAvailable, this.addToWishlistFunction, this.deleteFromWishlistFunction, this.isStockAvailable, this.stockAvailability});
@override
_ProductNameAndPriceState createState() => _ProductNameAndPriceState();
@ -48,7 +49,7 @@ class _ProductNameAndPriceState extends State<ProductNameAndPrice> {
children: [
Texts(widget.item.price.toString() + " " + TranslationBase.of(context).sar, fontWeight: FontWeight.bold, fontSize: 20),
Texts(
projectViewModel.isArabic ? widget.item.stockAvailabilityn : widget.item.stockAvailability,
widget.stockAvailability,
fontWeight: FontWeight.bold,
fontSize: 15,
color: widget.isStockAvailable ? Colors.green : Colors.red,

@ -16,8 +16,10 @@ class ProductDetailService extends BaseService {
num get stockQuantity => _stockQuantity;
String _stockAvailability;
String _stockAvailabilityn;
String get stockAvailability => _stockAvailability;
String get stockAvailabilityn => _stockAvailabilityn;
bool _isStockAvailable;
@ -45,7 +47,7 @@ class ProductDetailService extends BaseService {
Future getProductReviews(productID) async {
hasError = false;
await baseAppClient.getPharmacy(GET_PRODUCT_DETAIL + productID + "?fields=reviews,stock_quantity,stock_availability,IsStockAvailable", onSuccess: (dynamic response, int statusCode) {
await baseAppClient.getPharmacy(GET_PRODUCT_DETAIL + productID + "?fields=reviews,stock_quantity,stock_availability,stock_availabilityn,IsStockAvailable", onSuccess: (dynamic response, int statusCode) {
_productDetailList.clear();
response['products'].forEach((item) {
_productDetailList.add(ProductDetail.fromJson(item));
@ -53,6 +55,7 @@ class ProductDetailService extends BaseService {
});
_stockQuantity = response['products'][0]['stock_quantity'];
_stockAvailability = response['products'][0]['stock_availability'];
_stockAvailabilityn = response['products'][0]['stock_availabilityn'];
// _isStockAvailable = response['products'][0]['IsStockAvailable'];
_isStockAvailable = _stockAvailability == "In stock" ? true : false;

Loading…
Cancel
Save