Merge branch 'development' of https://gitlab.com/Cloud_Solution/diplomatic-quarter into fatima-new

# Conflicts:
#	lib/pages/parent_categorise_page.dart
#	lib/pages/sub_categorise_page.dart
merge-update-with-lab-changes
Fatimah Alshammari 4 years ago
commit 7ebeb8cb4b

@ -95,9 +95,8 @@ class PharmacyCategoriseService extends BaseService {
Future searchProducts({String productName}) async {
hasError = false;
_searchList.clear();
String endPoint = productName != null
? GET_SEARCH_PRODUCTS + "$productName" + '&language_id=1'
: GET_SEARCH_PRODUCTS + "";
String endPoint =
productName != null ? GET_SEARCH_PRODUCTS + "$productName" + '&language_id=1' : GET_SEARCH_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -132,8 +131,7 @@ class PharmacyCategoriseService extends BaseService {
Future getCategoriseParent({String id}) async {
hasError = false;
_parentCategoriseList.clear();
String endPoint =
id != null ? GET_CATEGORISE_PARENT + "$id" : GET_CATEGORISE_PARENT + "";
String endPoint = id != null ? GET_CATEGORISE_PARENT + "$id" : GET_CATEGORISE_PARENT + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -151,9 +149,7 @@ class PharmacyCategoriseService extends BaseService {
Future getParentProducts({String id}) async {
hasError = false;
_parentProductsList.clear();
String endPoint = id != null
? GET_PARENT_PRODUCTS + "$id" + '&page=1&limit=50'
: GET_PARENT_PRODUCTS + "";
String endPoint = id != null ? GET_PARENT_PRODUCTS + "$id" + '&page=1&limit=50' : GET_PARENT_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -172,8 +168,7 @@ class PharmacyCategoriseService extends BaseService {
hasError = false;
_subCategoriseList.clear();
String endPoint =
id != null ? GET_SUB_CATEGORISE + "$id" : GET_SUB_CATEGORISE + "";
String endPoint = id != null ? GET_SUB_CATEGORISE + "$id" : GET_SUB_CATEGORISE + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -191,9 +186,7 @@ class PharmacyCategoriseService extends BaseService {
Future getSubProducts({String id}) async {
hasError = false;
_subProductsList.clear();
String endPoint = id != null
? GET_SUB_PRODUCTS + "$id" + '&page=1&limit=50'
: GET_SUB_PRODUCTS + "";
String endPoint = id != null ? GET_SUB_PRODUCTS + "$id" + '&page=1&limit=50' : GET_SUB_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -211,8 +204,7 @@ class PharmacyCategoriseService extends BaseService {
Future getFinalProducts({String id}) async {
hasError = false;
_finalProducts.clear();
String endPoint =
id != null ? GET_FINAL_PRODUCTS + "$id" : GET_FINAL_PRODUCTS + "";
String endPoint = id != null ? GET_FINAL_PRODUCTS + "$id" : GET_FINAL_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
@ -249,14 +241,11 @@ class PharmacyCategoriseService extends BaseService {
Future getLastVisitedProducts() async {
String lastVisited = "";
if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) !=
null) {
lastVisited =
await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS);
if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) != null) {
lastVisited = await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS);
try {
await baseAppClient
.getPharmacy("$GET_PHARMACY_PRODUCTs_BY_IDS$lastVisited",
onSuccess: (dynamic response, int statusCode) {
await baseAppClient.getPharmacy("$GET_PHARMACY_PRODUCTs_BY_IDS$lastVisited",
onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
@ -277,8 +266,7 @@ class PharmacyCategoriseService extends BaseService {
'id,discount_ids,name,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage,reviews',
};
try {
await baseAppClient.getPharmacy(GET_PHARMACY_BEST_SELLER_PRODUCT,
onSuccess: (dynamic response, int statusCode) {
await baseAppClient.getPharmacy(GET_PHARMACY_BEST_SELLER_PRODUCT, onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
@ -292,8 +280,7 @@ class PharmacyCategoriseService extends BaseService {
}
}
Future getFilteredProducts(
{String categoryId, String brandId, String min, String max}) async {
Future getFilteredProducts({String categoryId, String brandId, String min, String max}) async {
hasError = false;
String endPoint;
@ -317,24 +304,47 @@ class PharmacyCategoriseService extends BaseService {
);
}
Future getFilteredSubProducts({String categoryId, String brandId, String min, String max}) async {
hasError = false;
String endPoint;
_subProductsList.clear();
endPoint = FILTERED_PRODUCTS +
"$categoryId" +
"&manufacturerids=$brandId" +
"&price_min=$min" +
"&price_max=$max&page=1&limit=50";
await baseAppClient.getPharmacy(
endPoint,
onSuccess: (dynamic response, int statusCode) {
response['products'].forEach((item) {
_subProductsList.add(PharmacyProduct.fromJson(item));
});
},
onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
},
);
}
Future getMostViewedProducts() async {
Map<String, String> queryParams = {
'fields':
'id,discount_ids,name,reviews,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage',
'id,discount_ids,name,reviews,namen,localized_names,display_order,short_description,full_description,full_descriptionn,sku,order_minimum_quantity,order_maximum_quantity,price,old_price,images,is_rx,rx_message,rx_messagen,discount_name,discount_namen,approved_rating_sum,approved_total_reviews,allow_back_in_stock_subscriptions,stock_quantity,stock_availability,stock_availabilityn,discount_percentage',
};
try {
await baseAppClient.getPharmacy(GET_MOST_VIEWED_PRODUCTS,
onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
});
print("most viewed products ---------");
print(response);
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, queryParams: queryParams);
await baseAppClient.getPharmacy(GET_MOST_VIEWED_PRODUCTS, onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
});
print("most viewed products ---------");
print(response);
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, queryParams: queryParams);
} catch (error) {
throw error;
}
@ -342,22 +352,20 @@ class PharmacyCategoriseService extends BaseService {
Future getNewProducts() async {
Map<String, String> queryParams = {
'fields':
'Id,name,namen,localized_names,price,images,sku,stock_availability,published',
'fields': 'Id,name,namen,localized_names,price,images,sku,stock_availability,published',
};
try {
await baseAppClient.getPharmacy(GET_NEW_PRODUCTS,
onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
});
print("new products ---------");
print(response);
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, queryParams: queryParams);
await baseAppClient.getPharmacy(GET_NEW_PRODUCTS, onSuccess: (dynamic response, int statusCode) {
_finalProducts.clear();
response['products'].forEach((item) {
_finalProducts.add(PharmacyProduct.fromJson(item));
});
print("new products ---------");
print(response);
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, queryParams: queryParams);
} catch (error) {
throw error;
}

@ -17,28 +17,20 @@ import 'base_view_model.dart';
class PharmacyCategoriseViewModel extends BaseViewModel {
bool hasError = false;
PharmacyCategoriseService _pharmacyCategoriseService =
locator<PharmacyCategoriseService>();
PharmacyCategoriseService _pharmacyCategoriseService = locator<PharmacyCategoriseService>();
List<PharmacyCategorise> get categorise =>
_pharmacyCategoriseService.categoriseList;
List<PharmacyCategorise> get categorise => _pharmacyCategoriseService.categoriseList;
List<CategoriseParentModel> get categoriseParent =>
_pharmacyCategoriseService.parentCategoriseList;
List<CategoriseParentModel> get categoriseParent => _pharmacyCategoriseService.parentCategoriseList;
List<PharmacyProduct> get parentProducts =>
_pharmacyCategoriseService.parentProductsList;
List<PharmacyProduct> get parentProducts => _pharmacyCategoriseService.parentProductsList;
List<CategoriseParentModel> get subCategorise =>
_pharmacyCategoriseService.subCategoriseList;
List<CategoriseParentModel> get subCategorise => _pharmacyCategoriseService.subCategoriseList;
List<PharmacyProduct> get subProducts =>
_pharmacyCategoriseService.subProductsList;
List<PharmacyProduct> get subProducts => _pharmacyCategoriseService.subProductsList;
List<PharmacyProduct> get finalProducts =>
_pharmacyCategoriseService.finalProducts;
List<CategoriseParentModel> get brandsList =>
_pharmacyCategoriseService.brandsList;
List<PharmacyProduct> get finalProducts => _pharmacyCategoriseService.finalProducts;
List<CategoriseParentModel> get brandsList => _pharmacyCategoriseService.brandsList;
List<PharmacyProduct> get searchList => _pharmacyCategoriseService.searchList;
@ -157,12 +149,23 @@ class PharmacyCategoriseViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future getFilteredProducts(
{String categoryId, String brandId, String min, String max}) async {
Future getFilteredProducts({String categoryId, String brandId, String min, String max}) async {
hasError = false;
// _insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _pharmacyCategoriseService.getFilteredProducts(
await _pharmacyCategoriseService.getFilteredProducts(categoryId: categoryId, brandId: brandId, max: max, min: min);
if (_pharmacyCategoriseService.hasError) {
error = _pharmacyCategoriseService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
Future getFilteredSubProducts({String categoryId, String brandId, String min, String max}) async {
hasError = false;
// _insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _pharmacyCategoriseService.getFilteredSubProducts(
categoryId: categoryId, brandId: brandId, max: max, min: min);
if (_pharmacyCategoriseService.hasError) {
error = _pharmacyCategoriseService.error;

@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/product_detail.dart';
import 'package:diplomaticquarterapp/pages/sub_categorise_page.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';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/StarRating.dart';
@ -109,7 +110,9 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
padding: EdgeInsets.all(10.0),
child: InkWell(
child: Container(
child: Texts(TranslationBase.of(context).viewCategorise,
child: Texts(
TranslationBase.of(context)
.viewCategorise,
// 'View All Categories',
fontWeight: FontWeight.w300,
),
@ -144,8 +147,16 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
CrossAxisAlignment
.start,
children: [
Texts( projectViewModel.isArabic ? model.categoriseParent[index].namen
:model.categoriseParent[index].name),
Texts(projectViewModel
.isArabic
? model
.categoriseParent[
index]
.namen
: model
.categoriseParent[
index]
.name),
Divider(
thickness: 0.6,
color: Colors
@ -545,7 +556,8 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
Container(
width: 200,
child: Button(
onTap: () {
onTap:
() async {
String
categoriesId =
"";
@ -577,7 +589,11 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
}
}
model.getFilteredProducts(
GifLoaderDialogUtils
.showMyDialog(
context);
await model.getFilteredProducts(
min: minField
.text
.toString(),
@ -588,6 +604,12 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
categoriesId,
brandId:
brandIds);
GifLoaderDialogUtils
.hideDialog(
context);
Navigator.pop(
context);
},
label: 'Apply',
backgroundColor:
@ -723,7 +745,10 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
children: [
Stack(
children: [
if (model.parentProducts[index].discountName !=
if (model
.parentProducts[
index]
.discountName !=
null)
RotatedBox(
quarterTurns: 4,
@ -843,7 +868,10 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
),
child: Center(
child: Texts(
model.parentProducts[index].discountName,
model
.parentProducts[
index]
.discountName,
regular: true,
color:
Colors.white,
@ -851,9 +879,17 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
),
),
),
Texts( projectViewModel.isArabic ?
model.parentProducts[index].namen
: model.parentProducts[index].name,
Texts(
projectViewModel
.isArabic
? model
.parentProducts[
index]
.namen
: model
.parentProducts[
index]
.name,
regular: true,
fontSize: 12,
fontWeight:
@ -1038,8 +1074,15 @@ class _ParentCategorisePageState extends State<ParentCategorisePage> {
.width *
0.65,
child: Texts(
projectViewModel.isArabic ? model.parentProducts[index].namen
: model.parentProducts[index].name ,
projectViewModel.isArabic
? model
.parentProducts[
index]
.namen
: model
.parentProducts[
index]
.name,
regular: true,
fontSize: 13.2,
fontWeight:

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/core/model/pharmacy/categorise_parent_model
import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/product_detail.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';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/StarRating.dart';
@ -104,7 +105,8 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
Padding(
padding: EdgeInsets.all(10.0),
child: Container(
child: Texts(TranslationBase.of(context).viewCategorise),
child: Texts(TranslationBase.of(context)
.viewCategorise),
),
),
Icon(Icons.arrow_forward)
@ -267,7 +269,8 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
SizedBox(
width: 10.0,
),
Texts(TranslationBase.of(context).refine,
Texts(
TranslationBase.of(context).refine,
// 'Refine',
fontWeight: FontWeight.w600,
),
@ -305,7 +308,10 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
SizedBox(
width: 10.0,
),
Texts(TranslationBase.of(context).refine,
Texts(
TranslationBase.of(
context)
.refine,
// 'Refine',
fontWeight:
FontWeight.w600,
@ -314,7 +320,10 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
width: 250.0,
),
InkWell(
child: Texts(TranslationBase.of(context).closeIt,
child: Texts(
TranslationBase.of(
context)
.closeIt,
// 'Close',
color: Colors.red,
fontWeight:
@ -336,8 +345,10 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
Column(
children: [
ExpansionTile(
title:
Texts(TranslationBase.of(context).categorise),
title: Texts(
TranslationBase.of(
context)
.categorise),
children: [
ProcedureListWidget(
model: model,
@ -375,7 +386,10 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
color: Colors.black12,
),
ExpansionTile(
title: Texts(TranslationBase.of(context).brands),
title: Texts(
TranslationBase.of(
context)
.brands),
children: [
ProcedureListWidget(
model: model,
@ -414,7 +428,10 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
color: Colors.black12,
),
ExpansionTile(
title: Texts(TranslationBase.of(context).price),
title: Texts(
TranslationBase.of(
context)
.price),
children: [
Container(
color: Color(
@ -506,10 +523,13 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
child: Container(
width: 100,
child: Button(
label: TranslationBase.of(context).reset,
label: TranslationBase.of(
context)
.reset,
// 'Reset',
backgroundColor:
Colors.red,
Colors
.red,
),
),
),
@ -519,7 +539,8 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
Container(
width: 200,
child: Button(
onTap: () {
onTap:
() async {
String
categoriesId =
"";
@ -550,8 +571,11 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
"$brandIds,${brand.id}";
}
}
GifLoaderDialogUtils
.showMyDialog(
context);
model.getFilteredProducts(
await model.getFilteredSubProducts(
min: minField
.text
.toString(),
@ -562,8 +586,15 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
categoriesId,
brandId:
brandIds);
GifLoaderDialogUtils
.hideDialog(
context);
Navigator.pop(
context);
},
label: TranslationBase.of(context).apply,
label: TranslationBase.of(
context)
.apply,
// 'Apply',
backgroundColor:
Colors
@ -993,7 +1024,7 @@ class _SubCategorisePageState extends State<SubCategorisePage> {
.approvedRatingSum
.toDouble() /
model
.parentProducts[
.subProducts[
index]
.approvedRatingSum
.toDouble())

Loading…
Cancel
Save