product pagination

merge-requests/506/head
hussam al-habibeh 3 years ago
parent b2b786d157
commit a35e149088

@ -143,11 +143,14 @@ class PharmacyCategoriseService extends BaseService {
);
}
Future getParentProducts({String id}) async {
Future getParentProducts(
{String id, int pageNumber, bool isLoading = false}) async {
hasError = false;
_parentProductsList.clear();
if (isLoading == false) {
_parentProductsList.clear();
}
String endPoint = id != null
? GET_PARENT_PRODUCTS + "$id" + '&page=1&limit=50'
? GET_PARENT_PRODUCTS + "$id" + '&page=' + '$pageNumber' + '&limit=24'
: GET_PARENT_PRODUCTS + "";
await baseAppClient.getPharmacy(
endPoint,
@ -155,6 +158,7 @@ class PharmacyCategoriseService extends BaseService {
response['products'].forEach((item) {
_parentProductsList.add(PharmacyProduct.fromJson(item));
});
//pageNumber++;
},
onFailure: (String error, int statusCode) {
hasError = true;

@ -10,20 +10,36 @@ import 'base_view_model.dart';
class PharmacyCategoriseViewModel extends BaseViewModel {
bool hasError = false;
PharmacyCategoriseService _pharmacyCategoriseService = locator<PharmacyCategoriseService>();
List<PharmacyCategorise> get categorise => _pharmacyCategoriseService.categoriseList;
int firstSubsetIndex = 0;
int inPatientPageSize = 20;
int lastSubsetIndex = 20;
List<CategoriseParentModel> get categoriseParent => _pharmacyCategoriseService.parentCategoriseList;
List<PharmacyProduct> filteredInPatientItems = List();
List<PharmacyProduct> filteredMyInPatientItems = List();
List<PharmacyProduct> get parentProducts => _pharmacyCategoriseService.parentProductsList;
PharmacyCategoriseService _pharmacyCategoriseService =
locator<PharmacyCategoriseService>();
List<CategoriseParentModel> get subCategorise => _pharmacyCategoriseService.subCategoriseList;
List<PharmacyCategorise> get categorise =>
_pharmacyCategoriseService.categoriseList;
List<PharmacyProduct> get subProducts => _pharmacyCategoriseService.subProductsList;
List<CategoriseParentModel> get categoriseParent =>
_pharmacyCategoriseService.parentCategoriseList;
List<PharmacyProduct> get finalProducts => _pharmacyCategoriseService.finalProducts;
List<CategoriseParentModel> get brandsList => _pharmacyCategoriseService.brandsList;
List<PharmacyProduct> get parentProducts =>
_pharmacyCategoriseService.parentProductsList;
List<CategoriseParentModel> get subCategorise =>
_pharmacyCategoriseService.subCategoriseList;
List<PharmacyProduct> get subProducts =>
_pharmacyCategoriseService.subProductsList;
List<PharmacyProduct> get finalProducts =>
_pharmacyCategoriseService.finalProducts;
List<CategoriseParentModel> get brandsList =>
_pharmacyCategoriseService.brandsList;
List<PharmacyProduct> get searchList => _pharmacyCategoriseService.searchList;
@ -81,7 +97,7 @@ class PharmacyCategoriseViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future getCategoriseParent({String i}) async {
Future getCategoriseParent({String i, int pageIndex, bool isLoading}) async {
hasError = false;
// _insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
@ -90,15 +106,16 @@ class PharmacyCategoriseViewModel extends BaseViewModel {
error = _pharmacyCategoriseService.error;
setState(ViewState.ErrorLocal);
} else
await getParentProducts(i: i);
await getBrands(id: i);
await getBrands(id: i);
await getParentProducts(i: i, pageIndex: pageIndex, isLoading: isLoading);
}
Future getParentProducts({String i}) async {
Future getParentProducts({String i, int pageIndex, bool isLoading}) async {
hasError = false;
// _insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _pharmacyCategoriseService.getParentProducts(id: i);
setState(ViewState.BusyLocal);
await _pharmacyCategoriseService.getParentProducts(
id: i, pageNumber: pageIndex, isLoading: isLoading);
if (_pharmacyCategoriseService.hasError) {
error = _pharmacyCategoriseService.error;
setState(ViewState.ErrorLocal);
@ -142,11 +159,13 @@ 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(categoryId: categoryId, brandId: brandId, max: max, min: min);
await _pharmacyCategoriseService.getFilteredProducts(
categoryId: categoryId, brandId: brandId, max: max, min: min);
if (_pharmacyCategoriseService.hasError) {
error = _pharmacyCategoriseService.error;
setState(ViewState.ErrorLocal);
@ -154,7 +173,8 @@ class PharmacyCategoriseViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
Future getFilteredSubProducts({String categoryId, String brandId, String min, String max}) async {
Future getFilteredSubProducts(
{String categoryId, String brandId, String min, String max}) async {
hasError = false;
// _insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
@ -221,4 +241,27 @@ class PharmacyCategoriseViewModel extends BaseViewModel {
setState(ViewState.Idle);
}
}
addOnFilteredList() {
if (lastSubsetIndex < parentProducts.length) {
firstSubsetIndex = firstSubsetIndex +
(parentProducts.length - lastSubsetIndex < inPatientPageSize - 1
? parentProducts.length - lastSubsetIndex
: inPatientPageSize - 1);
lastSubsetIndex = lastSubsetIndex +
(parentProducts.length - lastSubsetIndex < inPatientPageSize - 1
? parentProducts.length - lastSubsetIndex
: inPatientPageSize - 1);
filteredInPatientItems
.addAll(parentProducts.sublist(firstSubsetIndex, lastSubsetIndex));
setState(ViewState.Idle);
}
}
removeOnFilteredList() {
if (lastSubsetIndex - inPatientPageSize - 1 > 0) {
filteredInPatientItems.removeAt(lastSubsetIndex - inPatientPageSize - 1);
setState(ViewState.Idle);
}
}
}

File diff suppressed because it is too large Load Diff

@ -56,7 +56,7 @@ class _CartOrderPageState extends State<CartOrderPage> {
showHomeAppBarIcon: false,
isShowDecPage: false,
isMainPharmacyPages: true,
//isBottomBar: true,
isBottomBar: true,
showPharmacyCart: true,
baseViewModel: model,
backgroundColor: Colors.white,

@ -42,6 +42,9 @@ dependencies:
# Flutter Html View
flutter_html: ^1.2.0
# Pagnation
pull_to_refresh: ^1.6.2
# Native
flutter_device_type: ^0.2.0
local_auth: ^0.6.2+3

Loading…
Cancel
Save