fix recommended for you

merge-update-with-lab-changes
Fatimah Alshammari 5 years ago
parent 42bf76f712
commit e5829d8513

@ -33,13 +33,14 @@ import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_
bool isInWishlist = false; bool isInWishlist = false;
int price = 0; int price = 0;
dynamic itemID; var itemID;
var product; var product;
var customerId; var customerId;
var item; var item;
dynamic languageID; dynamic languageID;
List wishlistData; List wishlistData;
class PharmacyPage extends StatefulWidget { class PharmacyPage extends StatefulWidget {
// final PharmacyProduct product; // final PharmacyProduct product;
// PharmacyPage(this.product); // PharmacyPage(this.product);
@ -49,7 +50,7 @@ class PharmacyPage extends StatefulWidget {
} }
class _PharmacyPageState extends State<PharmacyPage> { class _PharmacyPageState extends State<PharmacyPage> {
dynamic wishlistVar; // dynamic wishlistVar;
getLanguageID() async { getLanguageID() async {
languageID = await sharedPref.getString(APP_LANGUAGE); languageID = await sharedPref.getString(APP_LANGUAGE);
@ -61,7 +62,7 @@ class _PharmacyPageState extends State<PharmacyPage> {
var model; var model;
// String ProductId="4561"; // String ProductId="4561";
//String id ="3608"; //String id ="3608";
String ProductId = ""; String productId = "";
String id = ""; String id = "";
@override @override
void initState() { void initState() {
@ -123,7 +124,7 @@ class _PharmacyPageState extends State<PharmacyPage> {
? MediaQuery.of(context).size.height * 0.28 ? MediaQuery.of(context).size.height * 0.28
: 0, : 0,
padding: padding:
EdgeInsets.symmetric(horizontal: 18.0, vertical: 18.0), EdgeInsets.symmetric(horizontal: 18.0, vertical: 14.0),
// height: MediaQuery.of(context).size.height * 0.28, // height: MediaQuery.of(context).size.height * 0.28,
// width: 200.0, // width: 200.0,
// height: MediaQuery.of(context).size.height / 4 + 20, // height: MediaQuery.of(context).size.height / 4 + 20,
@ -221,11 +222,9 @@ class _PharmacyPageState extends State<PharmacyPage> {
BorderRadius.circular( BorderRadius.circular(
30.0)), 30.0)),
child: Text( child: Text(
model languageID == "ar"
.prescriptionsList[ ? model.prescriptionsList[index].isInOutPatientDescriptionN.toString()
index] : model.prescriptionsList[index].isInOutPatientDescription.toString(),
.isInOutPatientDescription
.toString(),
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 15.0, fontSize: 15.0,
@ -341,257 +340,238 @@ class _PharmacyPageState extends State<PharmacyPage> {
: Container(), : Container(),
), ),
), ),
Container( // Container(
margin: EdgeInsets.fromLTRB(10, 10, 10, 10), // margin: EdgeInsets.fromLTRB(10, 10, 10, 10),
child: Row( // child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, // mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ // children: [
Texts( // Texts(
TranslationBase.of(context).recommended, // TranslationBase.of(context).recommended,
bold: true,
),
BorderedButton(
TranslationBase.of(context).viewAll,
hasBorder: true,
borderColor: Colors.green,
textColor: Colors.green,
vPadding: 6,
hPadding: 4,
handler: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
RecommendedProductPage()));
},
),
],
),
),
Container(
height: model.recommendedProductList.length > 0
? MediaQuery.of(context).size.height * 0.30
: 0,
margin: EdgeInsets.symmetric(horizontal: 6, vertical: 4),
// padding: EdgeInsets.symmetric(horizontal: 5.0, vertical: 22.0),
// margin: EdgeInsets.only(left: 10),
child: BaseView<PharmacyModuleViewModel>(
onModelReady: (model) =>
model.getRecommendedProducts(ProductId),
builder: (_, model, wi) => model
.recommendedProductList.length !=
null
? ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
physics: ScrollPhysics(),
// physics: NeverScrollableScrollPhysics(),
itemCount: model.recommendedProductList.length,
itemBuilder: (context, index) {
return Card(
elevation: 2,
shape: RoundedRectangleBorder(
side: BorderSide(
color: Colors.grey[300], width: 2),
borderRadius: BorderRadius.circular(10)),
//
margin: EdgeInsets.symmetric(
horizontal: 8,
vertical: 4,
),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(15),
),
),
padding: EdgeInsets.symmetric(horizontal: 4),
width: MediaQuery.of(context).size.width / 3,
//
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Stack(children: [
Container(
child: Align(
alignment: Alignment.topRight,
child: //true
itemID.contains(model
.recommendedProductList[
index]
.id)
// !isInWishlist
? IconButton(
icon: Icon(Icons
.favorite_border),
color: Colors.grey,
iconSize: 30,
onPressed: () {
setState(() {
addToWishlistFunction(
itemID);
});
},
)
: IconButton(
icon: Icon(
Icons.favorite),
color: Colors.red,
iconSize: 30,
onPressed: () {
setState(() {
deleteFromWishlistFunction(
itemID);
});
},
)
//
),
),
Container(
margin: EdgeInsets.fromLTRB(
0, 16, 10, 16),
alignment: Alignment.center,
// padding: EdgeInsets.only(left: 25, bottom: 20),
child: (model
.recommendedProductList[
index]
.images !=
null &&
model
.recommendedProductList[
index]
.images
.length >
0)
? Image.network(
model
.recommendedProductList[
index]
.images[0]
.src
.toString(),
// item.images[0].src,
fit: BoxFit.cover,
height: 60,
)
: Image.asset(
"assets/images/no_image.png",
fit: BoxFit.cover,
height: 60,
),
),
Container(
width: model
.recommendedProductList[
index]
.rxMessage !=
null
? MediaQuery.of(context)
.size
.width /
5
: 0,
padding: EdgeInsets.all(4),
decoration: BoxDecoration(
color: Color(0xffb23838),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(6)),
),
child: Texts(
model.recommendedProductList[index]
.rxMessage !=
null
? model
.recommendedProductList[
index]
.rxMessage
: "",
color: Colors.white,
regular: true,
fontSize: 10,
fontWeight: FontWeight.w400,
),
),
]),
Container(
margin: EdgeInsets.symmetric(
horizontal: 6,
vertical: 0,
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
model
.recommendedProductList[index]
.name,
style: TextStyle(
color: Colors.black,
fontSize: 13.0,
// fontWeight: FontWeight.bold,
),
),
Padding(
// padding: const EdgeInsets.only(top: 15, bottom: 10),
padding: const EdgeInsets.only(
top: 10, bottom: 5),
child: Texts(
"SAR ${model.recommendedProductList[index].price}",
bold: true,
fontSize: 14,
),
),
],
),
),
Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Container(
padding:
EdgeInsets.only(right: 10),
// margin: EdgeInsets.only(left: 5),
child: Align(
alignment: Alignment.topLeft,
child: RatingBar.readOnly(
initialRating: model
.recommendedProductList[
index]
.approvedRatingSum
.toDouble(),
// initialRating: productRate,
size: 13.0,
filledColor:
Colors.yellow[700],
emptyColor: Colors.grey[500],
isHalfAllowed: true,
halfFilledIcon:
Icons.star_half,
filledIcon: Icons.star,
emptyIcon: Icons.star,
),
),
),
Texts(
"(${model.recommendedProductList[index].approvedTotalReviews.toString()})",
// bold: true, // bold: true,
fontSize: 12, // ),
), // BorderedButton(
]), // TranslationBase.of(context).viewAll,
], // hasBorder: true,
), // borderColor: Colors.green,
), // textColor: Colors.green,
); // vPadding: 6,
}) // hPadding: 4,
: Container( // handler: () {
// child: Text("NO DATA"), // Navigator.push(
), // context,
), // MaterialPageRoute(
), // builder: (context) =>
// RecommendedProductPage(productId : "2316")));
// },
// ),
// ],
// ),
// ),
// Container(
// height: model.recommendedProductList.length > 0
// ? MediaQuery.of(context).size.height * 0.32
// : 0,
// margin: EdgeInsets.symmetric(horizontal: 6, vertical: 4),
//// padding: EdgeInsets.symmetric(horizontal: 5.0, vertical: 22.0),
//// margin: EdgeInsets.only(left: 10),
// child: BaseView<PharmacyModuleViewModel>(
// onModelReady: (model) =>
// model.getRecommendedProducts(productId),
// builder: (_, model, wi) => model
// .recommendedProductList.length !=
// null
// ? ListView.builder(
// scrollDirection: Axis.horizontal,
// shrinkWrap: true,
// physics: ScrollPhysics(),
// // physics: NeverScrollableScrollPhysics(),
// itemCount: model.recommendedProductList.length,
// itemBuilder: (context, index) {
// return Card(
// elevation: 2,
// shape: RoundedRectangleBorder(
// side: BorderSide(
// color: Colors.grey[300], width: 2),
// borderRadius: BorderRadius.circular(10)),
// margin: EdgeInsets.symmetric(
// horizontal: 8,
// vertical: 0,
// ),
// child: Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.all(
// Radius.circular(15),
// ),
// ),
// padding: EdgeInsets.symmetric(horizontal: 4),
// width: MediaQuery.of(context).size.width / 3,
// child: Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: [
// Stack(children: [
// Container(
// child: Align(
// alignment: Alignment.topRight,
// child: //true
// itemID.contains(model.recommendedProductList[index].id)
// // !isInWishlist
// ? IconButton(
// icon: Icon(Icons
// .favorite_border),
// color: Colors.grey,
// iconSize: 30,
// onPressed: () {
// setState(() {
// addToWishlistFunction(
// itemID);
// });
// },
// )
// : IconButton(
// icon: Icon(
// Icons.favorite),
// color: Colors.red,
// iconSize: 30,
// onPressed: () {
// setState(() {
// deleteFromWishlistFunction(
// itemID);
// });
// },
// )
////
// ),
// ),
// Container(
// margin: EdgeInsets.fromLTRB(
// 0, 16, 10, 16),
// alignment: Alignment.center,
//// padding: EdgeInsets.only(left: 25, bottom: 20),
// child: (model.recommendedProductList[index].images != null &&
// model.recommendedProductList[index].images.length > 0)
// ? Image.network(
// model.recommendedProductList[index].images[0].src.toString(),
//// item.images[0].src,
// fit: BoxFit.cover,
// height: 60,
// )
// : Image.asset(
// "assets/images/no_image.png",
// fit: BoxFit.cover,
// height: 60,
// ),
// ),
// Container(
// width: model
// .recommendedProductList[
// index]
// .rxMessage !=
// null
// ? MediaQuery.of(context)
// .size
// .width /
// 5
// : 0,
// padding: EdgeInsets.all(4),
// decoration: BoxDecoration(
// color: Color(0xffb23838),
// borderRadius: BorderRadius.only(
// topLeft: Radius.circular(6)),
// ),
// child: Texts(
// model.recommendedProductList[index]
// .rxMessage !=
// null
// ? model
// .recommendedProductList[
// index]
// .rxMessage
// : "",
// color: Colors.white,
// regular: true,
// fontSize: 10,
// fontWeight: FontWeight.w400,
// ),
// ),
// ]),
// Container(
// margin: EdgeInsets.symmetric(
// horizontal: 6,
// vertical: 0,
// ),
// child: Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: [
// Text(
// languageID == "ar"
// ? model.recommendedProductList[index].namen
// : model.recommendedProductList[index].name,
// style: TextStyle(
// color: Colors.black,
// fontSize: 13.0,
//// fontWeight: FontWeight.bold,
// ),
// ),
// Padding(
//// padding: const EdgeInsets.only(top: 15, bottom: 10),
// padding: const EdgeInsets.only(
// top: 10, bottom: 5),
// child: Texts(
// "SAR ${model.recommendedProductList[index].price}",
// bold: true,
// fontSize: 14,
// ),
// ),
// ],
// ),
// ),
// Row(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: <Widget>[
// Container(
// padding:
// EdgeInsets.only(right: 10),
//// margin: EdgeInsets.only(left: 5),
// child: Align(
// alignment: Alignment.topLeft,
// child: RatingBar.readOnly(
// initialRating: model
// .recommendedProductList[
// index]
// .approvedRatingSum
// .toDouble(),
//// initialRating: productRate,
// size: 13.0,
// filledColor:
// Colors.yellow[700],
// emptyColor: Colors.grey[500],
// isHalfAllowed: true,
// halfFilledIcon:
// Icons.star_half,
// filledIcon: Icons.star,
// emptyIcon: Icons.star,
// ),
// ),
// ),
// Texts(
// "(${model.recommendedProductList[index].approvedTotalReviews.toString()})",
//// bold: true,
// fontSize: 12,
// ),
// ]),
// ],
// ),
// ),
// );
// })
// : Container(
//// child: Text("NO DATA"),
// ),
// ),
// ),
Container( Container(
margin: EdgeInsets.fromLTRB(10, 10, 10, 0), margin: EdgeInsets.fromLTRB(10, 10, 10, 0),
child: Row( child: Row(

@ -12,17 +12,25 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
dynamic languageID; dynamic languageID;
bool isInWishlist = false; bool isInWishlist = false;
int price = 0;
var itemID; var itemID;
var product;
var customerId;
class RecommendedProductPage extends StatefulWidget { class RecommendedProductPage extends StatefulWidget {
String productId ;
RecommendedProductPage({this.productId});
@override @override
_RecommendedProductPageState createState() => _RecommendedProductPageState(); _RecommendedProductPageState createState() => _RecommendedProductPageState(productId: productId);
} }
class _RecommendedProductPageState extends State<RecommendedProductPage> class _RecommendedProductPageState extends State<RecommendedProductPage>
with SingleTickerProviderStateMixin { with SingleTickerProviderStateMixin {
List<RecommendedProductModel> recommendedProductList = []; List<RecommendedProductModel> recommendedProductList = [];
String ProductId = "4561"; String productId;
_RecommendedProductPageState({this.productId});
String id = "";
bool styleOne = true; bool styleOne = true;
bool styleTwo = false; bool styleTwo = false;
Icon styleIcon = Icon( Icon styleIcon = Icon(
@ -35,9 +43,15 @@ class _RecommendedProductPageState extends State<RecommendedProductPage>
languageID = await sharedPref.getString(APP_LANGUAGE); languageID = await sharedPref.getString(APP_LANGUAGE);
} }
// String productId = "4561";
// String productId = "";
@override @override
void initState() { void initState() {
super.initState(); checkWishlist();
userInfo(id, product);
print("-------------this--------------");
print(itemID);
} }
@override @override
@ -46,14 +60,15 @@ class _RecommendedProductPageState extends State<RecommendedProductPage>
final double itemHeight = ((size.height - kToolbarHeight - 24) * 0.80) / 2; final double itemHeight = ((size.height - kToolbarHeight - 24) * 0.80) / 2;
final double itemWidth = size.width / 2; final double itemWidth = size.width / 2;
return BaseView<PharmacyModuleViewModel>( return BaseView<PharmacyModuleViewModel>(
onModelReady: (model) => model.getRecommendedProducts(ProductId), onModelReady: (model) => model.getRecommendedProducts(productId),
builder: (_, model, wi) => AppScaffold( builder: (_, model, wi) => AppScaffold(
appBarTitle: TranslationBase.of(context).recommended, appBarTitle: TranslationBase.of(context).recommended,
baseViewModel: model, baseViewModel: model,
isShowAppBar: true, isShowAppBar: true,
isPharmacy: true, isPharmacy: true,
backgroundColor: Colors.white, backgroundColor: Colors.white,
body: Column(children: [ body: SingleChildScrollView(
child: Column(children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
@ -194,7 +209,7 @@ class _RecommendedProductPageState extends State<RecommendedProductPage>
10)), 10)),
margin: EdgeInsets.symmetric( margin: EdgeInsets.symmetric(
horizontal: 8, horizontal: 8,
vertical: 4, vertical: 11,
), ),
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
@ -206,9 +221,7 @@ class _RecommendedProductPageState extends State<RecommendedProductPage>
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
horizontal: 4), horizontal: 4),
width: MediaQuery.of(context) width: MediaQuery.of(context)
.size .size.width / 3,
.width /
3,
// //
child: Column( child: Column(
crossAxisAlignment: crossAxisAlignment:
@ -221,9 +234,9 @@ class _RecommendedProductPageState extends State<RecommendedProductPage>
alignment: alignment:
Alignment Alignment
.topRight, .topRight,
child: //true child:
//wishlistVar[index].id.contains(model.recommendedProductList[index].id) itemID.contains(e.id)
!isInWishlist // !isInWishlist
? IconButton( ? IconButton(
icon: icon:
Icon(Icons.favorite_border), Icon(Icons.favorite_border),
@ -238,7 +251,8 @@ class _RecommendedProductPageState extends State<RecommendedProductPage>
}); });
}, },
) )
: IconButton( :
IconButton(
icon: icon:
Icon(Icons.favorite), Icon(Icons.favorite),
color: color:
@ -327,7 +341,9 @@ class _RecommendedProductPageState extends State<RecommendedProductPage>
.start, .start,
children: [ children: [
Text( Text(
e.name, languageID == "ar"
? e.namen
: e.name,
style: TextStyle( style: TextStyle(
color: Colors color: Colors
.black, .black,
@ -931,18 +947,51 @@ class _RecommendedProductPageState extends State<RecommendedProductPage>
), ),
]), ]),
), ),
),
); );
} }
} checkWishlist() async {
ProductDetailViewModel x = new ProductDetailViewModel();
await x.checkWishlistData();
for (int i = 0; i < x.wishListItems.length; i++) {
// itemID = x.wishListItems[i].id;
print("-------------wishlist---------------");
print(itemID);
// print(product.id);
print(x.wishListItems[i].productId);
if (itemID == x.wishListItems[i].productId) {
isInWishlist = true;
// print('in wishlist');
break;
} else {
isInWishlist = false;
// print('not in wishlist');
}
}
}
addToWishlistFunction(itemID) async { Future userInfo(id, product) async {
customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
if (customerId != null) {
itemID = id;
product = product;
checkWishlist();
}
print("customerId:$customerId");
return customerId;
}
addToWishlistFunction(itemID) async {
ProductDetailViewModel x = new ProductDetailViewModel(); ProductDetailViewModel x = new ProductDetailViewModel();
isInWishlist = true; isInWishlist = true;
await x.addToWishlistData(itemID); await x.addToWishlistData(itemID);
} }
deleteFromWishlistFunction(itemID) async { deleteFromWishlistFunction(itemID) async {
ProductDetailViewModel x = new ProductDetailViewModel(); ProductDetailViewModel x = new ProductDetailViewModel();
isInWishlist = false; isInWishlist = false;
await x.addToWishlistData(itemID); await x.addToWishlistData(itemID);
}
} }

@ -332,17 +332,14 @@ class _OrderDetailsPageState extends State<OrderDetailsPage> {
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Container( return Container(
child: productTile( child: productTile(
productName: model productName: languageID == "ar"
.orderListModel[0].orderItems[index].product.name ? model.orderListModel[0].orderItems[index].product.namen.toString()
: model.orderListModel[0].orderItems[index].product.name.toString(),
productPrice: model.orderListModel[0].orderItems[index].product.price
.toString(), .toString(),
productPrice: model productRate: model.orderListModel[0].orderItems[index].product.approvedRatingSum
.orderListModel[0].orderItems[index].product.price
.toString(),
productRate: model.orderListModel[0].orderItems[index]
.product.approvedRatingSum
.toDouble(), .toDouble(),
productReviews: model.orderListModel[0] productReviews: model.orderListModel[0].orderItems[index].product.approvedTotalReviews,
.orderItems[index].product.approvedTotalReviews,
totalPrice: totalPrice:
"${(model.orderListModel[0].orderItems[index].product.price * model.orderListModel[0].orderItems[index].quantity).toStringAsFixed(2)}", "${(model.orderListModel[0].orderItems[index].product.price * model.orderListModel[0].orderItems[index].quantity).toStringAsFixed(2)}",
qyt: model qyt: model

Loading…
Cancel
Save