|
...
|
...
|
@@ -32,13 +32,15 @@ class OrderAdvanceEidtPage extends StatefulWidget { |
|
|
|
final String rid;
|
|
|
|
final PlanCookByRidSunModel planCookByRidSunModel;
|
|
|
|
final NotebookDetail detailEntity;
|
|
|
|
OrderAdvanceEidtPage({
|
|
|
|
Key key,
|
|
|
|
this.planId,
|
|
|
|
this.rid,
|
|
|
|
this.planCookByRidSunModel,
|
|
|
|
this.detailEntity,
|
|
|
|
}) : super(key: key);
|
|
|
|
final String pnum;
|
|
|
|
OrderAdvanceEidtPage(
|
|
|
|
{Key key,
|
|
|
|
this.planId,
|
|
|
|
this.rid,
|
|
|
|
this.planCookByRidSunModel,
|
|
|
|
this.detailEntity,
|
|
|
|
this.pnum})
|
|
|
|
: super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
_OrderAdvanceEidtPageState createState() => _OrderAdvanceEidtPageState();
|
|
...
|
...
|
@@ -113,11 +115,13 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
}
|
|
|
|
|
|
|
|
_getPageMenuData() async {
|
|
|
|
Future.wait<bool>(
|
|
|
|
[_getCookbookByClass(showLoading: true), _getPlanCookList()])
|
|
|
|
.then((results) {
|
|
|
|
Future.wait<bool>([
|
|
|
|
_getCookbookByClass(showLoading: true),
|
|
|
|
_getPlanCookList(),
|
|
|
|
_getSellerOften()
|
|
|
|
]).then((results) {
|
|
|
|
print(results[0]);
|
|
|
|
if (results[0] && results[1]) {
|
|
|
|
if (results[0] && results[1] && results[2]) {
|
|
|
|
_planDishProvider.menuModelForManager =
|
|
|
|
List.from(_planDishProvider.menuModel);
|
|
|
|
//单个菜品
|
|
...
|
...
|
@@ -196,6 +200,63 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
_planDishProvider.menuModelForManager
|
|
|
|
.insert(0, menuModelSetMeal); //添加套餐
|
|
|
|
|
|
|
|
//店内常点数据
|
|
|
|
MenuModel menuModelStoreOften = MenuModel();
|
|
|
|
menuModelStoreOften.className = '店内常点';
|
|
|
|
menuModelStoreOften.isChange = false;
|
|
|
|
// List<MenuSunModel> cookListStoreOften = [];
|
|
|
|
|
|
|
|
List<MenuSunModel> sellerOftendata =
|
|
|
|
_planDishProvider.sellerOftendataTemp;
|
|
|
|
|
|
|
|
sellerOftendata.forEach((element) {
|
|
|
|
// if (element.status == '1') {
|
|
|
|
// MenuSunModel menuSunModel = MenuSunModel();
|
|
|
|
// menuSunModel.id = element.id;
|
|
|
|
// menuSunModel.name = element.name;
|
|
|
|
// // menuSunModel.price = element.menuPrice;
|
|
|
|
// menuSunModel.price = element.price;
|
|
|
|
// menuSunModel.member_price = element.member_price ?? "";
|
|
|
|
// menuSunModel.unit = '份';
|
|
|
|
// menuSunModel.amount = element.amount;
|
|
|
|
// menuSunModel.cookList = element.cookList;
|
|
|
|
|
|
|
|
// if (widget.planCookByRidSunModel != null &&
|
|
|
|
// widget.planCookByRidSunModel.packageList != null &&
|
|
|
|
// widget.planCookByRidSunModel.packageList.length > 0) {
|
|
|
|
// //套餐数据对应
|
|
|
|
// widget.planCookByRidSunModel.packageList.forEach((package) {
|
|
|
|
// if (package.id == menuSunModel.id) {
|
|
|
|
// //同一个套餐
|
|
|
|
// menuSunModel.amount = package.amount;
|
|
|
|
// menuSunModel.cookList.forEach((oldcooklist) {
|
|
|
|
// package.cookList.forEach((newcooklist) {
|
|
|
|
// if (oldcooklist.id == newcooklist.id) {
|
|
|
|
// //同一菜品分类
|
|
|
|
// oldcooklist.cookbooklist.forEach((oldcook) {
|
|
|
|
// newcooklist.cookbooklist.forEach((newcook) {
|
|
|
|
// if (oldcook.id == newcook.id) {
|
|
|
|
// oldcook.amount = newcook.amount;
|
|
|
|
// carSum += newcook.amount;
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
|
|
|
|
// cookListStoreOften.add(menuSunModel);
|
|
|
|
// }
|
|
|
|
});
|
|
|
|
menuModelStoreOften.cookbooklist = sellerOftendata;
|
|
|
|
|
|
|
|
_planDishProvider.menuModelForManager
|
|
|
|
.insert(1, menuModelStoreOften); //店内常点数据
|
|
|
|
//排菜数据
|
|
|
|
|
|
|
|
MenuModel menuModelPlanDish = MenuModel();
|
|
|
|
menuModelPlanDish.className = '我的排菜';
|
|
|
|
menuModelPlanDish.isChange = false;
|
|
...
|
...
|
@@ -245,7 +306,7 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
menuModelPlanDish.cookbooklist = cookListPlanDish;
|
|
|
|
|
|
|
|
_planDishProvider.menuModelForManager
|
|
|
|
.insert(1, menuModelPlanDish); //添加排菜
|
|
|
|
.insert(2, menuModelPlanDish); //添加排菜
|
|
|
|
|
|
|
|
MenuModel menuModelShort = MenuModel();
|
|
|
|
menuModelShort.className = '临时加菜';
|
|
...
|
...
|
@@ -345,6 +406,47 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else if (element.className == '店内常点') {
|
|
|
|
List<MenuSunModel> olddata = _planDishProvider.sellerOftendata;
|
|
|
|
element.cookbooklist.forEach((newdata) {
|
|
|
|
olddata.forEach((store) {
|
|
|
|
if (store.id == newdata.id) {
|
|
|
|
if (newdata.amount == 0) {
|
|
|
|
//同一个套餐
|
|
|
|
if (newdata.cookList.length == 0) {
|
|
|
|
newdata.cookList = store.cookList;
|
|
|
|
} else {
|
|
|
|
store.cookList.forEach((storeCook) {
|
|
|
|
String id = storeCook.id;
|
|
|
|
newdata.cookList.forEach((cooklist) {
|
|
|
|
if (cooklist.id == storeCook.id) {
|
|
|
|
id = '';
|
|
|
|
//同一分类
|
|
|
|
if (cooklist.cookbooklist.length == 0) {
|
|
|
|
cooklist.cookbooklist = storeCook.cookbooklist;
|
|
|
|
} else {
|
|
|
|
cooklist.cookbooklist.forEach((value1) {
|
|
|
|
storeCook.cookbooklist.forEach((value2) {
|
|
|
|
//同一菜品
|
|
|
|
if (value1.id == value2.id) {
|
|
|
|
value1.amount = value2.amount;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
if (id != '') {
|
|
|
|
//该菜品分类已经不存在
|
|
|
|
// 还原数据
|
|
|
|
newdata.cookList.add(storeCook);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else if (element.className == '临时加菜') {
|
|
|
|
} else {
|
|
|
|
//单菜
|
|
...
|
...
|
@@ -427,6 +529,28 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
///获取商家店内常点
|
|
|
|
|
|
|
|
Future<bool> _getSellerOften({bool isShowLoading = true}) async {
|
|
|
|
if (widget.pnum == '' || widget.pnum == null) {
|
|
|
|
//没有人数,数据为空
|
|
|
|
_planDishProvider.sellerOftendata = [];
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
Map<String, String> params = {
|
|
|
|
"pnum": widget.pnum,
|
|
|
|
"sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
|
|
|
|
};
|
|
|
|
bool success = await _planDishProvider.getSellerOften(context, params,
|
|
|
|
showLoading: isShowLoading);
|
|
|
|
if (success) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Widget list(List data) => ScrollablePositionedList.builder(
|
|
|
|
// itemCount: data.length,
|
|
|
|
itemCount: 10,
|
|
...
|
...
|
@@ -513,7 +637,9 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
//把数量置空
|
|
|
|
_clearAmount() {
|
|
|
|
_planDishProvider.menuModelForManager.forEach((element) {
|
|
|
|
if (element.className == '套餐' || element.className == '我的排菜') {
|
|
|
|
if (element.className == '套餐' ||
|
|
|
|
element.className == '我的排菜' ||
|
|
|
|
element.className == '店内常点') {
|
|
|
|
element.cookbooklist.forEach((newdata) {
|
|
|
|
newdata.amount = 0;
|
|
|
|
|
|
...
|
...
|
@@ -578,6 +704,18 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
} else {
|
|
|
|
params['plan_list'] = null;
|
|
|
|
}
|
|
|
|
} else if (element.className == '店内常点') {
|
|
|
|
List<MenuSunModel> oftenlist = [];
|
|
|
|
element.cookbooklist.forEach((cooklist) {
|
|
|
|
if (cooklist.amount > 0) {
|
|
|
|
oftenlist.add(cooklist);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
if (oftenlist.length > 0) {
|
|
|
|
params['often_list'] = json.encode(oftenlist);
|
|
|
|
} else {
|
|
|
|
params['often_list'] = null;
|
|
|
|
}
|
|
|
|
} else if (element.className == '临时加菜') {
|
|
|
|
//临时加菜
|
|
|
|
|
|
...
|
...
|
@@ -686,6 +824,53 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else if (element.className == '店内常点') {
|
|
|
|
List<MenuSunModel> olddata = _planDishProvider.sellerOftendata;
|
|
|
|
element.cookbooklist.forEach((newdata) {
|
|
|
|
olddata.forEach((store) {
|
|
|
|
if (store.id == newdata.id) {
|
|
|
|
if (newdata.amount > 0) {
|
|
|
|
bool isChange = false; //套餐数量是否发生变化
|
|
|
|
//同一个套餐
|
|
|
|
newdata.cookList.forEach((cooklist) {
|
|
|
|
store.cookList.forEach((storeCook) {
|
|
|
|
if (cooklist.id == storeCook.id) {
|
|
|
|
//同一分类
|
|
|
|
cooklist.cookbooklist.forEach((value1) {
|
|
|
|
storeCook.cookbooklist.forEach((value2) {
|
|
|
|
if (value1.id == value2.id) {
|
|
|
|
if (value1.amount != value2.amount) {
|
|
|
|
isChange = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
//当前套餐/排菜数量已经发生变化
|
|
|
|
if (!isChange) {
|
|
|
|
priceSum += double.parse(store.price) * newdata.amount;
|
|
|
|
memberPriceSum +=
|
|
|
|
double.parse(store.member_price) * newdata.amount;
|
|
|
|
} else {
|
|
|
|
//单品
|
|
|
|
newdata.cookList.forEach((cooklist) {
|
|
|
|
//同一分类
|
|
|
|
cooklist.cookbooklist.forEach((value1) {
|
|
|
|
priceSum += double.parse(value1.price) *
|
|
|
|
value1.amount *
|
|
|
|
newdata.amount;
|
|
|
|
memberPriceSum += double.parse(value1.member_price) *
|
|
|
|
value1.amount *
|
|
|
|
newdata.amount;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else if (element.className == '临时加菜') {
|
|
|
|
//临时加菜
|
|
|
|
bool hasmMenu = element.cookbooklist.any(((value) => value.amount > 0));
|
|
...
|
...
|
@@ -983,7 +1168,11 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
_planDishProvider
|
|
|
|
.menuModelForManager[
|
|
|
|
_selectIndex] ==
|
|
|
|
'我的排菜') {
|
|
|
|
'我的排菜' ||
|
|
|
|
_planDishProvider
|
|
|
|
.menuModelForManager[
|
|
|
|
_selectIndex] ==
|
|
|
|
'店内常点') {
|
|
|
|
// _calculatePrice();
|
|
|
|
//套餐菜品总个数
|
|
|
|
//遍历套餐下的菜品分类
|
|
...
|
...
|
@@ -1134,7 +1323,11 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
_planDishProvider
|
|
|
|
.menuModelForManager[
|
|
|
|
_selectIndex] ==
|
|
|
|
'我的排菜') {
|
|
|
|
'我的排菜' ||
|
|
|
|
_planDishProvider
|
|
|
|
.menuModelForManager[
|
|
|
|
_selectIndex] ==
|
|
|
|
'店内常点') {
|
|
|
|
//套餐菜品总个数
|
|
|
|
//遍历套餐下的菜品分类
|
|
|
|
menuSunModel.cookList
|
|
...
|
...
|
@@ -1363,6 +1556,10 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
object2: {
|
|
|
|
'object2': _planDishProvider.mineList
|
|
|
|
},
|
|
|
|
object3: {
|
|
|
|
'object3':
|
|
|
|
_planDishProvider.sellerOftendata
|
|
|
|
},
|
|
|
|
planPrice: planDishC.text,
|
|
|
|
planCookByRidSunModel:
|
|
|
|
widget.planCookByRidSunModel,
|
|
...
|
...
|
@@ -1396,7 +1593,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
_planDishProvider.menuModelForManager
|
|
|
|
.forEach((element) {
|
|
|
|
if (element.className == '套餐' ||
|
|
|
|
element.className == '我的排菜') {
|
|
|
|
element.className == '我的排菜' ||
|
|
|
|
element.className == '店内常点') {
|
|
|
|
dataLocalShowMore.forEach((value) {
|
|
|
|
element.cookbooklist.forEach((elementCook) {
|
|
|
|
if (value.id == elementCook.id) {
|
|
...
|
...
|
@@ -1503,7 +1701,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
_planDishProvider.menuModelForManager
|
|
|
|
.forEach((element) {
|
|
|
|
if (element.className == '套餐' ||
|
|
|
|
element.className == '我的排菜') {
|
|
|
|
element.className == '我的排菜' ||
|
|
|
|
element.className == '店内常点') {
|
|
|
|
// //如果是套餐,则看cooklist有没有选中的
|
|
|
|
// bool isChange = false; //套餐或者排菜数量是否选中
|
|
|
|
// if (element.className == '套餐') {
|
|
...
|
...
|
@@ -1558,20 +1757,23 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { |
|
|
|
value.moreSum = value.amount;
|
|
|
|
value.channel = element.className == '套餐'
|
|
|
|
? '1'
|
|
|
|
: '2'; // 1套餐----2排菜
|
|
|
|
: element.className == '我的排菜'
|
|
|
|
? '2'
|
|
|
|
: '3'; // 1套餐----2排菜
|
|
|
|
dataLocalShowMore.add(value);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} else if (element.className == '店内常点') {
|
|
|
|
// //如果是我的排菜,则看cooklist有没有选中的
|
|
|
|
|
|
|
|
// bool hasmMine =
|
|
|
|
// element.cookbooklist.any(((value) => value.amount > 0));
|
|
|
|
// if (hasmMine) {
|
|
|
|
// //套餐中有被选中
|
|
|
|
// maxIndex++;
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// else if (element.className == '店内常点') {
|
|
|
|
// // //如果是我的排菜,则看cooklist有没有选中的
|
|
|
|
|
|
|
|
// // bool hasmMine =
|
|
|
|
// // element.cookbooklist.any(((value) => value.amount > 0));
|
|
|
|
// // if (hasmMine) {
|
|
|
|
// // //套餐中有被选中
|
|
|
|
// // maxIndex++;
|
|
|
|
// // }
|
|
|
|
// }
|
|
|
|
// else if (element.className == '临时加菜') {
|
|
|
|
// }
|
|
|
|
else {
|
...
|
...
|
|