Merge branch 'pharmacy_fix_bugs' into 'development'

fix bugs pharmacy home

See merge request Cloud_Solution/diplomatic-quarter!411
merge-update-with-lab-changes
Mohammad Aljammal 4 years ago
commit 76eef8625d

@ -108,10 +108,10 @@ class PharmacyProduct {
List<int> manufacturerIds;
List<Reviews> reviews;
List<PharmacyImageObject> images;
List<String> attributes;
List<dynamic> attributes;
List<Specifications> specifications;
List<String> associatedProductIds;
List<String> tags;
List<dynamic> associatedProductIds;
List<dynamic> tags;
int vendorId;
String seName;
@ -367,7 +367,7 @@ class PharmacyProduct {
});
}
if (json['attributes'] != null) {
attributes = new List<String>();
attributes = new List<dynamic>();
json['attributes'].forEach((v) {
attributes.add(v);
});

@ -785,7 +785,8 @@ class BaseAppClient {
final int statusCode = response.statusCode;
print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) {
onFailure('Error While Fetching data', statusCode);
var parsed = json.decode(utf8.decode(response.bodyBytes));
onFailure(parsed['error']['ErrorEndUserMsg'] ??'Error While Fetching data', statusCode);
} else {
// var parsed = json.decode(response.body.toString());
var parsed = json.decode(utf8.decode(response.bodyBytes));

@ -113,7 +113,6 @@ class PharmacyModuleService extends BaseService {
}
Future getTopManufacturerList() async {
hasError = false;
Map<String, String> queryParams = {'page': '1', 'limit': '8'};
try {
await baseAppClient.getPharmacy(GET_PHARMACY_TOP_MANUFACTURER,
@ -125,6 +124,7 @@ class PharmacyModuleService extends BaseService {
manufacturerList.add(Manufacturer.fromJson(item));
// }
});
hasError = false;
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
@ -146,6 +146,7 @@ class PharmacyModuleService extends BaseService {
response['products'].forEach((item) {
bestSellerProducts.add(PharmacyProduct.fromJson(item));
});
hasError = false;
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
@ -161,6 +162,7 @@ class PharmacyModuleService extends BaseService {
null) {
lastVisited =
await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS);
// lastVisited = "2458,4561";
try {
await baseAppClient
.getPharmacy("$GET_PHARMACY_PRODUCTs_BY_IDS$lastVisited",
@ -169,8 +171,9 @@ class PharmacyModuleService extends BaseService {
response['products'].forEach((item) {
lastVisitedProducts.add(PharmacyProduct.fromJson(item));
});
hasError = false;
}, onFailure: (String error, int statusCode) {
hasError = true;
hasError = true; // sharedPref.setString(PHARMACY_LAST_VISITED_PRODUCTS, "");
super.error = error;
});
} catch (error) {

@ -13,7 +13,7 @@ class LastVisitedViewModel extends BaseViewModel {
_pharmacyService.lastVisitedProducts;
getLastVisitedProducts() async {
setState(ViewState.Busy);
setState(ViewState.BusyLocal);
await _pharmacyService.getLastVisitedProducts();
if (_pharmacyService.hasError) {
error = _pharmacyService.error;

@ -825,15 +825,10 @@ class _HomePageState extends State<HomePage> {
} else {
GifLoaderDialogUtils.showMyDialog(context);
await pharmacyModuleViewModel.generatePharmacyToken().then((value) async {
if (pharmacyModuleViewModel.error.isNotEmpty) {
await pharmacyModuleViewModel.verifyCustomer().then((value) {
GifLoaderDialogUtils.hideDialog(context);
Navigator.push(context, FadePage(page: LandingPagePharmacy()));
});
} else {
await pharmacyModuleViewModel.verifyCustomer().then((value) {
GifLoaderDialogUtils.hideDialog(context);
Navigator.push(context, FadePage(page: LandingPagePharmacy()));
}
});
});
}
}

@ -48,10 +48,8 @@ class _PharmacyPageState extends State<PharmacyPage> {
return BaseView<PharmacyModuleViewModel>(
onModelReady: (model) async {
// GifLoaderDialogUtils.showMyDialog(context);
await model.getSavedLanguage();
await model.getBannerList();
// GifLoaderDialogUtils.hideDialog(context);
},
allowAny: true,
builder: (_, model, wi) => AppScaffold(

@ -24,6 +24,7 @@ class ProductTileItem extends StatelessWidget {
void _saveLastVisitProducts() async {
String lastVisited = "";
bool isIdExist = false;
List items = [];
if (await this.sharedPref.getString(PHARMACY_LAST_VISITED_PRODUCTS) !=
null) {
lastVisited =
@ -32,8 +33,27 @@ class ProductTileItem extends StatelessWidget {
if (id == item.id) {
isIdExist = true;
}
items.add(id);
});
}
if(items.length >= 15){
items.removeAt(0);
// lastVisited = lastVisited.replaceFirst(RegExp('$itemToRemove'), '');
}
lastVisited = "";
for(int i = items.length - 1; i >= 0; i--){
if (lastVisited == "") {
// it means there is no lastVisited yet
lastVisited = "${items[i]}";
} else {
// there is lastVisited id's and this product id is not found
lastVisited += ",${items[i]}";
}
}
if (!isIdExist) {
if (lastVisited == "") {
// it means there is no lastVisited yet
@ -42,8 +62,8 @@ class ProductTileItem extends StatelessWidget {
// there is lastVisited id's and this product id is not found
lastVisited += ",${item.id}";
}
sharedPref.setString(PHARMACY_LAST_VISITED_PRODUCTS, lastVisited);
}
sharedPref.setString(PHARMACY_LAST_VISITED_PRODUCTS, lastVisited);
}
@override

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/LastVisitedViewModel.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -15,31 +16,44 @@ class RecentlyViewedWidget extends StatelessWidget {
onModelReady: (model) => model.getLastVisitedProducts(),
allowAny: true,
builder: (_, model, wi) => NetworkBaseView(
isLocalLoader: true,
baseViewModel: model,
child: Container(
child: Column(
children: [
ViewAllHomeWidget(
TranslationBase.of(context).recentlyViewed,
FinalProductsPage(
id: "",
productType: 3,
)),
Container(
height: model.lastVisitedProducts.length > 0
? MediaQuery.of(context).size.height / 4 + 20
: 0,
child: ListView.builder(
itemBuilder: (ctx, i) =>
ProductTileItem(model.lastVisitedProducts[i]),
scrollDirection: Axis.horizontal,
itemCount: model.lastVisitedProducts.length,
),
isLocalLoader: true,
baseViewModel: model,
child: Container(
child: Column(
children: [
ViewAllHomeWidget(
TranslationBase.of(context).recentlyViewed,
FinalProductsPage(
id: "",
productType: 3,
)),
if (model.state != ViewState.BusyLocal)
Container(
height: model.lastVisitedProducts.length > 0
? MediaQuery.of(context).size.height / 4 + 20
: 0,
child: ListView.builder(
itemBuilder: (ctx, i) =>
ProductTileItem(model.lastVisitedProducts[i]),
scrollDirection: Axis.horizontal,
itemCount: model.lastVisitedProducts.length,
),
)
else
Container(
height: 80,
child: Center(
child:CircularProgressIndicator(
backgroundColor: Colors.white,
valueColor: AlwaysStoppedAnimation<Color>(
Colors.grey[500],
),
),
),
),
],
),
],
),
),
));
),
));
}
}
}

@ -14,7 +14,7 @@ class ViewAllHomeWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
margin: EdgeInsets.fromLTRB(16, 10, 16, 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
@ -28,7 +28,7 @@ class ViewAllHomeWidget extends StatelessWidget {
borderColor: Colors.green,
textColor: Colors.green,
vPadding: 6,
hPadding: 4,
hPadding: 8,
handler: () {
Navigator.push(
context,

@ -98,7 +98,7 @@ class ProductDetailService extends BaseService {
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
AppToast.showErrorToast(message: 'something went wrong please try again');
AppToast.showErrorToast(message: super.error??'something went wrong please try again');
}, body: request);
}

Loading…
Cancel
Save