Showing
10 changed files
with
642 additions
and
87 deletions
lib/models/seller_often_model.dart
0 → 100644
| 1 | +class SellerOftenModel { | ||
| 2 | + int ret; | ||
| 3 | + List<SellerOftenSunModel> data; | ||
| 4 | + String msg; | ||
| 5 | + | ||
| 6 | + SellerOftenModel({this.ret, this.data, this.msg}); | ||
| 7 | + | ||
| 8 | + SellerOftenModel.fromJson(Map<String, dynamic> json) { | ||
| 9 | + ret = json['ret']; | ||
| 10 | + if (json['data'] != null) { | ||
| 11 | + data = <SellerOftenSunModel>[]; | ||
| 12 | + json['data'].forEach((v) { | ||
| 13 | + data.add(new SellerOftenSunModel.fromJson(v)); | ||
| 14 | + }); | ||
| 15 | + } | ||
| 16 | + msg = json['msg']; | ||
| 17 | + } | ||
| 18 | + | ||
| 19 | + Map<String, dynamic> toJson() { | ||
| 20 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 21 | + data['ret'] = this.ret; | ||
| 22 | + if (this.data != null) { | ||
| 23 | + data['data'] = this.data.map((v) => v.toJson()).toList(); | ||
| 24 | + } | ||
| 25 | + data['msg'] = this.msg; | ||
| 26 | + return data; | ||
| 27 | + } | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +class SellerOftenSunModel { | ||
| 31 | + String pnum; | ||
| 32 | + String sellerid; | ||
| 33 | + String price; | ||
| 34 | + String memberPrice; | ||
| 35 | + String id; | ||
| 36 | + List<SellerOftenCooklist> cooklist; | ||
| 37 | + | ||
| 38 | + SellerOftenSunModel( | ||
| 39 | + {this.pnum, | ||
| 40 | + this.sellerid, | ||
| 41 | + this.price, | ||
| 42 | + this.memberPrice, | ||
| 43 | + this.id, | ||
| 44 | + this.cooklist}); | ||
| 45 | + | ||
| 46 | + SellerOftenSunModel.fromJson(Map<String, dynamic> json) { | ||
| 47 | + pnum = json['pnum']; | ||
| 48 | + sellerid = json['sellerid']; | ||
| 49 | + price = json['price']; | ||
| 50 | + memberPrice = json['member_price']; | ||
| 51 | + id = json['id']; | ||
| 52 | + if (json['cooklist'] != null) { | ||
| 53 | + cooklist = <SellerOftenCooklist>[]; | ||
| 54 | + json['cooklist'].forEach((v) { | ||
| 55 | + cooklist.add(new SellerOftenCooklist.fromJson(v)); | ||
| 56 | + }); | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + Map<String, dynamic> toJson() { | ||
| 61 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 62 | + data['pnum'] = this.pnum; | ||
| 63 | + data['sellerid'] = this.sellerid; | ||
| 64 | + data['price'] = this.price; | ||
| 65 | + data['member_price'] = this.memberPrice; | ||
| 66 | + data['id'] = this.id; | ||
| 67 | + if (this.cooklist != null) { | ||
| 68 | + data['cooklist'] = this.cooklist.map((v) => v.toJson()).toList(); | ||
| 69 | + } | ||
| 70 | + return data; | ||
| 71 | + } | ||
| 72 | +} | ||
| 73 | + | ||
| 74 | +class SellerOftenCooklist { | ||
| 75 | + String classid; | ||
| 76 | + String className; | ||
| 77 | + List<SellerOftenSunCooklist> cooklist; | ||
| 78 | + | ||
| 79 | + SellerOftenCooklist({this.classid, this.className, this.cooklist}); | ||
| 80 | + | ||
| 81 | + SellerOftenCooklist.fromJson(Map<String, dynamic> json) { | ||
| 82 | + classid = json['classid']; | ||
| 83 | + className = json['class_name']; | ||
| 84 | + if (json['cooklist'] != null) { | ||
| 85 | + cooklist = <SellerOftenSunCooklist>[]; | ||
| 86 | + json['cooklist'].forEach((v) { | ||
| 87 | + cooklist.add(new SellerOftenSunCooklist.fromJson(v)); | ||
| 88 | + }); | ||
| 89 | + } | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + Map<String, dynamic> toJson() { | ||
| 93 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 94 | + data['classid'] = this.classid; | ||
| 95 | + data['class_name'] = this.className; | ||
| 96 | + if (this.cooklist != null) { | ||
| 97 | + data['cooklist'] = this.cooklist.map((v) => v.toJson()).toList(); | ||
| 98 | + } | ||
| 99 | + return data; | ||
| 100 | + } | ||
| 101 | +} | ||
| 102 | + | ||
| 103 | +class SellerOftenSunCooklist { | ||
| 104 | + int amount; | ||
| 105 | + String sid; | ||
| 106 | + String cookbookid; | ||
| 107 | + String specid; | ||
| 108 | + String practiceid; | ||
| 109 | + String price; | ||
| 110 | + String memberPrice; | ||
| 111 | + String name; | ||
| 112 | + String unit; | ||
| 113 | + String image; | ||
| 114 | + String className; | ||
| 115 | + String classid; | ||
| 116 | + String classOrder; | ||
| 117 | + | ||
| 118 | + SellerOftenSunCooklist( | ||
| 119 | + {this.amount, | ||
| 120 | + this.sid, | ||
| 121 | + this.cookbookid, | ||
| 122 | + this.specid, | ||
| 123 | + this.practiceid, | ||
| 124 | + this.price, | ||
| 125 | + this.memberPrice, | ||
| 126 | + this.name, | ||
| 127 | + this.unit, | ||
| 128 | + this.image, | ||
| 129 | + this.className, | ||
| 130 | + this.classid, | ||
| 131 | + this.classOrder}); | ||
| 132 | + | ||
| 133 | + SellerOftenSunCooklist.fromJson(Map<String, dynamic> json) { | ||
| 134 | + amount = json['amount'] == null || json['amount'] == '' | ||
| 135 | + ? 0 | ||
| 136 | + : int.parse(json['amount']); | ||
| 137 | + sid = json['sid']; | ||
| 138 | + cookbookid = json['cookbookid']; | ||
| 139 | + specid = json['specid']; | ||
| 140 | + practiceid = json['practiceid']; | ||
| 141 | + price = json['price']; | ||
| 142 | + memberPrice = json['member_price']; | ||
| 143 | + name = json['name']; | ||
| 144 | + unit = json['unit']; | ||
| 145 | + image = json['image']; | ||
| 146 | + className = json['class_name']; | ||
| 147 | + classid = json['classid']; | ||
| 148 | + classOrder = json['class_order']; | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + Map<String, dynamic> toJson() { | ||
| 152 | + final Map<String, dynamic> data = new Map<String, dynamic>(); | ||
| 153 | + data['amount'] = this.amount; | ||
| 154 | + data['sid'] = this.sid; | ||
| 155 | + data['cookbookid'] = this.cookbookid; | ||
| 156 | + data['specid'] = this.specid; | ||
| 157 | + data['practiceid'] = this.practiceid; | ||
| 158 | + data['price'] = this.price; | ||
| 159 | + data['member_price'] = this.memberPrice; | ||
| 160 | + data['name'] = this.name; | ||
| 161 | + data['unit'] = this.unit; | ||
| 162 | + data['image'] = this.image; | ||
| 163 | + data['class_name'] = this.className; | ||
| 164 | + data['classid'] = this.classid; | ||
| 165 | + data['class_order'] = this.classOrder; | ||
| 166 | + return data; | ||
| 167 | + } | ||
| 168 | +} |
| @@ -352,8 +352,10 @@ class HttpUrl { | @@ -352,8 +352,10 @@ class HttpUrl { | ||
| 352 | static const String get_plan_cook_by_rid = | 352 | static const String get_plan_cook_by_rid = |
| 353 | "?service=App.PlanCook.GetPlanCookByRid"; // 根据预定ID获取排菜 | 353 | "?service=App.PlanCook.GetPlanCookByRid"; // 根据预定ID获取排菜 |
| 354 | 354 | ||
| 355 | - static const String create_order = | 355 | + static const String create_order = |
| 356 | "?service=App.Advance.CreateOrder"; // 跳转小程序提前点餐调用该接口生成oid | 356 | "?service=App.Advance.CreateOrder"; // 跳转小程序提前点餐调用该接口生成oid |
| 357 | - | 357 | + |
| 358 | + static const String get_seller_often = | ||
| 359 | + "?service=App.PlanCook.SellerOften"; // 获取商家店内常点 | ||
| 358 | 360 | ||
| 359 | } | 361 | } |
| @@ -52,34 +52,35 @@ class _OrderCustomerDetailPageState extends State<OrderCustomerDetailPage> { | @@ -52,34 +52,35 @@ class _OrderCustomerDetailPageState extends State<OrderCustomerDetailPage> { | ||
| 52 | @override | 52 | @override |
| 53 | void initState() { | 53 | void initState() { |
| 54 | super.initState(); | 54 | super.initState(); |
| 55 | - if ((widget.detailEntity.rnameStr == '' || | ||
| 56 | - widget.detailEntity.rnameStr == null) && | ||
| 57 | - (widget.detailEntity.phone == '' || | ||
| 58 | - widget.detailEntity.phone == null) && | ||
| 59 | - widget.detailEntity.status != "4") { | 55 | + if (((widget.detailEntity.rnameStr == '' || |
| 56 | + widget.detailEntity.rnameStr == null) && | ||
| 57 | + (widget.detailEntity.phone == '' || | ||
| 58 | + widget.detailEntity.phone == null) && | ||
| 59 | + widget.detailEntity.status != "4") || | ||
| 60 | + widget.detailEntity.gid == null) { | ||
| 60 | //没有联系人 | 61 | //没有联系人 |
| 61 | WidgetsBinding.instance.addPostFrameCallback((_) { | 62 | WidgetsBinding.instance.addPostFrameCallback((_) { |
| 62 | customerProvider.pageStateGuestInfo = PageState.Empty; | 63 | customerProvider.pageStateGuestInfo = PageState.Empty; |
| 63 | customerProvider.notifyListeners(); | 64 | customerProvider.notifyListeners(); |
| 64 | }); | 65 | }); |
| 65 | } else { | 66 | } else { |
| 66 | - _initSexList(); | ||
| 67 | - nameFocus.addListener(() { | ||
| 68 | - if (nameFocus.hasFocus) { | ||
| 69 | - print('得到焦点'); | ||
| 70 | - } else { | ||
| 71 | - print('失去焦点'); | ||
| 72 | - // _homeEnterModel.nameController.text = nameStr + _nameSuffix(); | ||
| 73 | - _addNameSuffix(nameStr, _nameSuffix()); | ||
| 74 | - } | ||
| 75 | - setState(() {}); | ||
| 76 | - }); | ||
| 77 | - WidgetsBinding.instance.addPostFrameCallback((_) { | ||
| 78 | - _getGuestInfo(); | 67 | + _initSexList(); |
| 68 | + nameFocus.addListener(() { | ||
| 69 | + if (nameFocus.hasFocus) { | ||
| 70 | + print('得到焦点'); | ||
| 71 | + } else { | ||
| 72 | + print('失去焦点'); | ||
| 73 | + // _homeEnterModel.nameController.text = nameStr + _nameSuffix(); | ||
| 74 | + _addNameSuffix(nameStr, _nameSuffix()); | ||
| 75 | + } | ||
| 76 | + setState(() {}); | ||
| 77 | + }); | ||
| 78 | + WidgetsBinding.instance.addPostFrameCallback((_) { | ||
| 79 | + _getGuestInfo(); | ||
| 79 | 80 | ||
| 80 | - _getLabelBySellerid(); | ||
| 81 | - // scrollController.jumpTo(scrollController.position.minScrollExtent); | ||
| 82 | - }); | 81 | + _getLabelBySellerid(); |
| 82 | + // scrollController.jumpTo(scrollController.position.minScrollExtent); | ||
| 83 | + }); | ||
| 83 | } | 84 | } |
| 84 | } | 85 | } |
| 85 | 86 |
| @@ -32,13 +32,15 @@ class OrderAdvanceEidtPage extends StatefulWidget { | @@ -32,13 +32,15 @@ class OrderAdvanceEidtPage extends StatefulWidget { | ||
| 32 | final String rid; | 32 | final String rid; |
| 33 | final PlanCookByRidSunModel planCookByRidSunModel; | 33 | final PlanCookByRidSunModel planCookByRidSunModel; |
| 34 | final NotebookDetail detailEntity; | 34 | final NotebookDetail detailEntity; |
| 35 | - OrderAdvanceEidtPage({ | ||
| 36 | - Key key, | ||
| 37 | - this.planId, | ||
| 38 | - this.rid, | ||
| 39 | - this.planCookByRidSunModel, | ||
| 40 | - this.detailEntity, | ||
| 41 | - }) : super(key: key); | 35 | + final String pnum; |
| 36 | + OrderAdvanceEidtPage( | ||
| 37 | + {Key key, | ||
| 38 | + this.planId, | ||
| 39 | + this.rid, | ||
| 40 | + this.planCookByRidSunModel, | ||
| 41 | + this.detailEntity, | ||
| 42 | + this.pnum}) | ||
| 43 | + : super(key: key); | ||
| 42 | 44 | ||
| 43 | @override | 45 | @override |
| 44 | _OrderAdvanceEidtPageState createState() => _OrderAdvanceEidtPageState(); | 46 | _OrderAdvanceEidtPageState createState() => _OrderAdvanceEidtPageState(); |
| @@ -113,11 +115,13 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -113,11 +115,13 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 113 | } | 115 | } |
| 114 | 116 | ||
| 115 | _getPageMenuData() async { | 117 | _getPageMenuData() async { |
| 116 | - Future.wait<bool>( | ||
| 117 | - [_getCookbookByClass(showLoading: true), _getPlanCookList()]) | ||
| 118 | - .then((results) { | 118 | + Future.wait<bool>([ |
| 119 | + _getCookbookByClass(showLoading: true), | ||
| 120 | + _getPlanCookList(), | ||
| 121 | + _getSellerOften() | ||
| 122 | + ]).then((results) { | ||
| 119 | print(results[0]); | 123 | print(results[0]); |
| 120 | - if (results[0] && results[1]) { | 124 | + if (results[0] && results[1] && results[2]) { |
| 121 | _planDishProvider.menuModelForManager = | 125 | _planDishProvider.menuModelForManager = |
| 122 | List.from(_planDishProvider.menuModel); | 126 | List.from(_planDishProvider.menuModel); |
| 123 | //单个菜品 | 127 | //单个菜品 |
| @@ -196,6 +200,63 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -196,6 +200,63 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 196 | _planDishProvider.menuModelForManager | 200 | _planDishProvider.menuModelForManager |
| 197 | .insert(0, menuModelSetMeal); //添加套餐 | 201 | .insert(0, menuModelSetMeal); //添加套餐 |
| 198 | 202 | ||
| 203 | + //店内常点数据 | ||
| 204 | + MenuModel menuModelStoreOften = MenuModel(); | ||
| 205 | + menuModelStoreOften.className = '店内常点'; | ||
| 206 | + menuModelStoreOften.isChange = false; | ||
| 207 | + // List<MenuSunModel> cookListStoreOften = []; | ||
| 208 | + | ||
| 209 | + List<MenuSunModel> sellerOftendata = | ||
| 210 | + _planDishProvider.sellerOftendataTemp; | ||
| 211 | + | ||
| 212 | + sellerOftendata.forEach((element) { | ||
| 213 | + // if (element.status == '1') { | ||
| 214 | + // MenuSunModel menuSunModel = MenuSunModel(); | ||
| 215 | + // menuSunModel.id = element.id; | ||
| 216 | + // menuSunModel.name = element.name; | ||
| 217 | + // // menuSunModel.price = element.menuPrice; | ||
| 218 | + // menuSunModel.price = element.price; | ||
| 219 | + // menuSunModel.member_price = element.member_price ?? ""; | ||
| 220 | + // menuSunModel.unit = '份'; | ||
| 221 | + // menuSunModel.amount = element.amount; | ||
| 222 | + // menuSunModel.cookList = element.cookList; | ||
| 223 | + | ||
| 224 | + // if (widget.planCookByRidSunModel != null && | ||
| 225 | + // widget.planCookByRidSunModel.packageList != null && | ||
| 226 | + // widget.planCookByRidSunModel.packageList.length > 0) { | ||
| 227 | + // //套餐数据对应 | ||
| 228 | + // widget.planCookByRidSunModel.packageList.forEach((package) { | ||
| 229 | + // if (package.id == menuSunModel.id) { | ||
| 230 | + // //同一个套餐 | ||
| 231 | + // menuSunModel.amount = package.amount; | ||
| 232 | + // menuSunModel.cookList.forEach((oldcooklist) { | ||
| 233 | + // package.cookList.forEach((newcooklist) { | ||
| 234 | + // if (oldcooklist.id == newcooklist.id) { | ||
| 235 | + // //同一菜品分类 | ||
| 236 | + // oldcooklist.cookbooklist.forEach((oldcook) { | ||
| 237 | + // newcooklist.cookbooklist.forEach((newcook) { | ||
| 238 | + // if (oldcook.id == newcook.id) { | ||
| 239 | + // oldcook.amount = newcook.amount; | ||
| 240 | + // carSum += newcook.amount; | ||
| 241 | + // } | ||
| 242 | + // }); | ||
| 243 | + // }); | ||
| 244 | + // } | ||
| 245 | + // }); | ||
| 246 | + // }); | ||
| 247 | + // } | ||
| 248 | + // }); | ||
| 249 | + // } | ||
| 250 | + | ||
| 251 | + // cookListStoreOften.add(menuSunModel); | ||
| 252 | + // } | ||
| 253 | + }); | ||
| 254 | + menuModelStoreOften.cookbooklist = sellerOftendata; | ||
| 255 | + | ||
| 256 | + _planDishProvider.menuModelForManager | ||
| 257 | + .insert(1, menuModelStoreOften); //店内常点数据 | ||
| 258 | + //排菜数据 | ||
| 259 | + | ||
| 199 | MenuModel menuModelPlanDish = MenuModel(); | 260 | MenuModel menuModelPlanDish = MenuModel(); |
| 200 | menuModelPlanDish.className = '我的排菜'; | 261 | menuModelPlanDish.className = '我的排菜'; |
| 201 | menuModelPlanDish.isChange = false; | 262 | menuModelPlanDish.isChange = false; |
| @@ -245,7 +306,7 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -245,7 +306,7 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 245 | menuModelPlanDish.cookbooklist = cookListPlanDish; | 306 | menuModelPlanDish.cookbooklist = cookListPlanDish; |
| 246 | 307 | ||
| 247 | _planDishProvider.menuModelForManager | 308 | _planDishProvider.menuModelForManager |
| 248 | - .insert(1, menuModelPlanDish); //添加排菜 | 309 | + .insert(2, menuModelPlanDish); //添加排菜 |
| 249 | 310 | ||
| 250 | MenuModel menuModelShort = MenuModel(); | 311 | MenuModel menuModelShort = MenuModel(); |
| 251 | menuModelShort.className = '临时加菜'; | 312 | menuModelShort.className = '临时加菜'; |
| @@ -345,6 +406,47 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -345,6 +406,47 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 345 | } | 406 | } |
| 346 | }); | 407 | }); |
| 347 | }); | 408 | }); |
| 409 | + } else if (element.className == '店内常点') { | ||
| 410 | + List<MenuSunModel> olddata = _planDishProvider.sellerOftendata; | ||
| 411 | + element.cookbooklist.forEach((newdata) { | ||
| 412 | + olddata.forEach((store) { | ||
| 413 | + if (store.id == newdata.id) { | ||
| 414 | + if (newdata.amount == 0) { | ||
| 415 | + //同一个套餐 | ||
| 416 | + if (newdata.cookList.length == 0) { | ||
| 417 | + newdata.cookList = store.cookList; | ||
| 418 | + } else { | ||
| 419 | + store.cookList.forEach((storeCook) { | ||
| 420 | + String id = storeCook.id; | ||
| 421 | + newdata.cookList.forEach((cooklist) { | ||
| 422 | + if (cooklist.id == storeCook.id) { | ||
| 423 | + id = ''; | ||
| 424 | + //同一分类 | ||
| 425 | + if (cooklist.cookbooklist.length == 0) { | ||
| 426 | + cooklist.cookbooklist = storeCook.cookbooklist; | ||
| 427 | + } else { | ||
| 428 | + cooklist.cookbooklist.forEach((value1) { | ||
| 429 | + storeCook.cookbooklist.forEach((value2) { | ||
| 430 | + //同一菜品 | ||
| 431 | + if (value1.id == value2.id) { | ||
| 432 | + value1.amount = value2.amount; | ||
| 433 | + } | ||
| 434 | + }); | ||
| 435 | + }); | ||
| 436 | + } | ||
| 437 | + } | ||
| 438 | + }); | ||
| 439 | + if (id != '') { | ||
| 440 | + //该菜品分类已经不存在 | ||
| 441 | + // 还原数据 | ||
| 442 | + newdata.cookList.add(storeCook); | ||
| 443 | + } | ||
| 444 | + }); | ||
| 445 | + } | ||
| 446 | + } | ||
| 447 | + } | ||
| 448 | + }); | ||
| 449 | + }); | ||
| 348 | } else if (element.className == '临时加菜') { | 450 | } else if (element.className == '临时加菜') { |
| 349 | } else { | 451 | } else { |
| 350 | //单菜 | 452 | //单菜 |
| @@ -427,6 +529,28 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -427,6 +529,28 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 427 | } | 529 | } |
| 428 | } | 530 | } |
| 429 | 531 | ||
| 532 | + ///获取商家店内常点 | ||
| 533 | + | ||
| 534 | + Future<bool> _getSellerOften({bool isShowLoading = true}) async { | ||
| 535 | + if (widget.pnum == '' || widget.pnum == null) { | ||
| 536 | + //没有人数,数据为空 | ||
| 537 | + _planDishProvider.sellerOftendata = []; | ||
| 538 | + return true; | ||
| 539 | + } else { | ||
| 540 | + Map<String, String> params = { | ||
| 541 | + "pnum": widget.pnum, | ||
| 542 | + "sid": Provider.of<UserModel>(context, listen: false).user.sellerid, | ||
| 543 | + }; | ||
| 544 | + bool success = await _planDishProvider.getSellerOften(context, params, | ||
| 545 | + showLoading: isShowLoading); | ||
| 546 | + if (success) { | ||
| 547 | + return true; | ||
| 548 | + } else { | ||
| 549 | + return false; | ||
| 550 | + } | ||
| 551 | + } | ||
| 552 | + } | ||
| 553 | + | ||
| 430 | Widget list(List data) => ScrollablePositionedList.builder( | 554 | Widget list(List data) => ScrollablePositionedList.builder( |
| 431 | // itemCount: data.length, | 555 | // itemCount: data.length, |
| 432 | itemCount: 10, | 556 | itemCount: 10, |
| @@ -513,7 +637,9 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -513,7 +637,9 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 513 | //把数量置空 | 637 | //把数量置空 |
| 514 | _clearAmount() { | 638 | _clearAmount() { |
| 515 | _planDishProvider.menuModelForManager.forEach((element) { | 639 | _planDishProvider.menuModelForManager.forEach((element) { |
| 516 | - if (element.className == '套餐' || element.className == '我的排菜') { | 640 | + if (element.className == '套餐' || |
| 641 | + element.className == '我的排菜' || | ||
| 642 | + element.className == '店内常点') { | ||
| 517 | element.cookbooklist.forEach((newdata) { | 643 | element.cookbooklist.forEach((newdata) { |
| 518 | newdata.amount = 0; | 644 | newdata.amount = 0; |
| 519 | 645 | ||
| @@ -578,6 +704,18 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -578,6 +704,18 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 578 | } else { | 704 | } else { |
| 579 | params['plan_list'] = null; | 705 | params['plan_list'] = null; |
| 580 | } | 706 | } |
| 707 | + } else if (element.className == '店内常点') { | ||
| 708 | + List<MenuSunModel> oftenlist = []; | ||
| 709 | + element.cookbooklist.forEach((cooklist) { | ||
| 710 | + if (cooklist.amount > 0) { | ||
| 711 | + oftenlist.add(cooklist); | ||
| 712 | + } | ||
| 713 | + }); | ||
| 714 | + if (oftenlist.length > 0) { | ||
| 715 | + params['often_list'] = json.encode(oftenlist); | ||
| 716 | + } else { | ||
| 717 | + params['often_list'] = null; | ||
| 718 | + } | ||
| 581 | } else if (element.className == '临时加菜') { | 719 | } else if (element.className == '临时加菜') { |
| 582 | //临时加菜 | 720 | //临时加菜 |
| 583 | 721 | ||
| @@ -686,6 +824,53 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -686,6 +824,53 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 686 | } | 824 | } |
| 687 | }); | 825 | }); |
| 688 | }); | 826 | }); |
| 827 | + } else if (element.className == '店内常点') { | ||
| 828 | + List<MenuSunModel> olddata = _planDishProvider.sellerOftendata; | ||
| 829 | + element.cookbooklist.forEach((newdata) { | ||
| 830 | + olddata.forEach((store) { | ||
| 831 | + if (store.id == newdata.id) { | ||
| 832 | + if (newdata.amount > 0) { | ||
| 833 | + bool isChange = false; //套餐数量是否发生变化 | ||
| 834 | + //同一个套餐 | ||
| 835 | + newdata.cookList.forEach((cooklist) { | ||
| 836 | + store.cookList.forEach((storeCook) { | ||
| 837 | + if (cooklist.id == storeCook.id) { | ||
| 838 | + //同一分类 | ||
| 839 | + cooklist.cookbooklist.forEach((value1) { | ||
| 840 | + storeCook.cookbooklist.forEach((value2) { | ||
| 841 | + if (value1.id == value2.id) { | ||
| 842 | + if (value1.amount != value2.amount) { | ||
| 843 | + isChange = true; | ||
| 844 | + } | ||
| 845 | + } | ||
| 846 | + }); | ||
| 847 | + }); | ||
| 848 | + } | ||
| 849 | + }); | ||
| 850 | + }); | ||
| 851 | + //当前套餐/排菜数量已经发生变化 | ||
| 852 | + if (!isChange) { | ||
| 853 | + priceSum += double.parse(store.price) * newdata.amount; | ||
| 854 | + memberPriceSum += | ||
| 855 | + double.parse(store.member_price) * newdata.amount; | ||
| 856 | + } else { | ||
| 857 | + //单品 | ||
| 858 | + newdata.cookList.forEach((cooklist) { | ||
| 859 | + //同一分类 | ||
| 860 | + cooklist.cookbooklist.forEach((value1) { | ||
| 861 | + priceSum += double.parse(value1.price) * | ||
| 862 | + value1.amount * | ||
| 863 | + newdata.amount; | ||
| 864 | + memberPriceSum += double.parse(value1.member_price) * | ||
| 865 | + value1.amount * | ||
| 866 | + newdata.amount; | ||
| 867 | + }); | ||
| 868 | + }); | ||
| 869 | + } | ||
| 870 | + } | ||
| 871 | + } | ||
| 872 | + }); | ||
| 873 | + }); | ||
| 689 | } else if (element.className == '临时加菜') { | 874 | } else if (element.className == '临时加菜') { |
| 690 | //临时加菜 | 875 | //临时加菜 |
| 691 | bool hasmMenu = element.cookbooklist.any(((value) => value.amount > 0)); | 876 | bool hasmMenu = element.cookbooklist.any(((value) => value.amount > 0)); |
| @@ -983,7 +1168,11 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -983,7 +1168,11 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 983 | _planDishProvider | 1168 | _planDishProvider |
| 984 | .menuModelForManager[ | 1169 | .menuModelForManager[ |
| 985 | _selectIndex] == | 1170 | _selectIndex] == |
| 986 | - '我的排菜') { | 1171 | + '我的排菜' || |
| 1172 | + _planDishProvider | ||
| 1173 | + .menuModelForManager[ | ||
| 1174 | + _selectIndex] == | ||
| 1175 | + '店内常点') { | ||
| 987 | // _calculatePrice(); | 1176 | // _calculatePrice(); |
| 988 | //套餐菜品总个数 | 1177 | //套餐菜品总个数 |
| 989 | //遍历套餐下的菜品分类 | 1178 | //遍历套餐下的菜品分类 |
| @@ -1134,7 +1323,11 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1134,7 +1323,11 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1134 | _planDishProvider | 1323 | _planDishProvider |
| 1135 | .menuModelForManager[ | 1324 | .menuModelForManager[ |
| 1136 | _selectIndex] == | 1325 | _selectIndex] == |
| 1137 | - '我的排菜') { | 1326 | + '我的排菜' || |
| 1327 | + _planDishProvider | ||
| 1328 | + .menuModelForManager[ | ||
| 1329 | + _selectIndex] == | ||
| 1330 | + '店内常点') { | ||
| 1138 | //套餐菜品总个数 | 1331 | //套餐菜品总个数 |
| 1139 | //遍历套餐下的菜品分类 | 1332 | //遍历套餐下的菜品分类 |
| 1140 | menuSunModel.cookList | 1333 | menuSunModel.cookList |
| @@ -1363,6 +1556,10 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1363,6 +1556,10 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1363 | object2: { | 1556 | object2: { |
| 1364 | 'object2': _planDishProvider.mineList | 1557 | 'object2': _planDishProvider.mineList |
| 1365 | }, | 1558 | }, |
| 1559 | + object3: { | ||
| 1560 | + 'object3': | ||
| 1561 | + _planDishProvider.sellerOftendata | ||
| 1562 | + }, | ||
| 1366 | planPrice: planDishC.text, | 1563 | planPrice: planDishC.text, |
| 1367 | planCookByRidSunModel: | 1564 | planCookByRidSunModel: |
| 1368 | widget.planCookByRidSunModel, | 1565 | widget.planCookByRidSunModel, |
| @@ -1396,7 +1593,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1396,7 +1593,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1396 | _planDishProvider.menuModelForManager | 1593 | _planDishProvider.menuModelForManager |
| 1397 | .forEach((element) { | 1594 | .forEach((element) { |
| 1398 | if (element.className == '套餐' || | 1595 | if (element.className == '套餐' || |
| 1399 | - element.className == '我的排菜') { | 1596 | + element.className == '我的排菜' || |
| 1597 | + element.className == '店内常点') { | ||
| 1400 | dataLocalShowMore.forEach((value) { | 1598 | dataLocalShowMore.forEach((value) { |
| 1401 | element.cookbooklist.forEach((elementCook) { | 1599 | element.cookbooklist.forEach((elementCook) { |
| 1402 | if (value.id == elementCook.id) { | 1600 | if (value.id == elementCook.id) { |
| @@ -1503,7 +1701,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1503,7 +1701,8 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1503 | _planDishProvider.menuModelForManager | 1701 | _planDishProvider.menuModelForManager |
| 1504 | .forEach((element) { | 1702 | .forEach((element) { |
| 1505 | if (element.className == '套餐' || | 1703 | if (element.className == '套餐' || |
| 1506 | - element.className == '我的排菜') { | 1704 | + element.className == '我的排菜' || |
| 1705 | + element.className == '店内常点') { | ||
| 1507 | // //如果是套餐,则看cooklist有没有选中的 | 1706 | // //如果是套餐,则看cooklist有没有选中的 |
| 1508 | // bool isChange = false; //套餐或者排菜数量是否选中 | 1707 | // bool isChange = false; //套餐或者排菜数量是否选中 |
| 1509 | // if (element.className == '套餐') { | 1708 | // if (element.className == '套餐') { |
| @@ -1558,20 +1757,23 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | @@ -1558,20 +1757,23 @@ class _OrderAdvanceEidtPageState extends State<OrderAdvanceEidtPage> { | ||
| 1558 | value.moreSum = value.amount; | 1757 | value.moreSum = value.amount; |
| 1559 | value.channel = element.className == '套餐' | 1758 | value.channel = element.className == '套餐' |
| 1560 | ? '1' | 1759 | ? '1' |
| 1561 | - : '2'; // 1套餐----2排菜 | 1760 | + : element.className == '我的排菜' |
| 1761 | + ? '2' | ||
| 1762 | + : '3'; // 1套餐----2排菜 | ||
| 1562 | dataLocalShowMore.add(value); | 1763 | dataLocalShowMore.add(value); |
| 1563 | } | 1764 | } |
| 1564 | }); | 1765 | }); |
| 1565 | - } else if (element.className == '店内常点') { | ||
| 1566 | - // //如果是我的排菜,则看cooklist有没有选中的 | ||
| 1567 | - | ||
| 1568 | - // bool hasmMine = | ||
| 1569 | - // element.cookbooklist.any(((value) => value.amount > 0)); | ||
| 1570 | - // if (hasmMine) { | ||
| 1571 | - // //套餐中有被选中 | ||
| 1572 | - // maxIndex++; | ||
| 1573 | - // } | ||
| 1574 | } | 1766 | } |
| 1767 | + // else if (element.className == '店内常点') { | ||
| 1768 | + // // //如果是我的排菜,则看cooklist有没有选中的 | ||
| 1769 | + | ||
| 1770 | + // // bool hasmMine = | ||
| 1771 | + // // element.cookbooklist.any(((value) => value.amount > 0)); | ||
| 1772 | + // // if (hasmMine) { | ||
| 1773 | + // // //套餐中有被选中 | ||
| 1774 | + // // maxIndex++; | ||
| 1775 | + // // } | ||
| 1776 | + // } | ||
| 1575 | // else if (element.className == '临时加菜') { | 1777 | // else if (element.className == '临时加菜') { |
| 1576 | // } | 1778 | // } |
| 1577 | else { | 1779 | else { |
| @@ -803,17 +803,18 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -803,17 +803,18 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 803 | // context, params, | 803 | // context, params, |
| 804 | // showLoading: true); | 804 | // showLoading: true); |
| 805 | // if (oid != null) { | 805 | // if (oid != null) { |
| 806 | - //获取成功 | ||
| 807 | - Utils.goShareOrderPageToWeChat(context, | ||
| 808 | - title: '菜品已点好,快来看看都点了什么~', | ||
| 809 | - img: | ||
| 810 | - 'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg', | ||
| 811 | - rid: widget.rid, | ||
| 812 | - // oid: oid, | ||
| 813 | - sid: Provider.of<UserModel>(context, | ||
| 814 | - listen: false) | ||
| 815 | - .user | ||
| 816 | - .sellerid); | 806 | + //获取成功 |
| 807 | + Utils.goShareOrderPageToWeChat(context, | ||
| 808 | + title: | ||
| 809 | + '张红经理邀请您点餐了', | ||
| 810 | + img: | ||
| 811 | + 'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg', | ||
| 812 | + rid: widget.rid, | ||
| 813 | + // oid: oid, | ||
| 814 | + sid: | ||
| 815 | + Provider.of<UserModel>(context, listen: false) | ||
| 816 | + .user | ||
| 817 | + .sellerid); | ||
| 817 | // } | 818 | // } |
| 818 | }, | 819 | }, |
| 819 | child: Container( | 820 | child: Container( |
| @@ -906,7 +907,8 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | @@ -906,7 +907,8 @@ class _OrderAdvanceHomePageState extends State<OrderAdvanceHomePage> { | ||
| 906 | rid: widget.rid, | 907 | rid: widget.rid, |
| 907 | planCookByRidSunModel: | 908 | planCookByRidSunModel: |
| 908 | _planDishProvider.planCookByRidSunModel, | 909 | _planDishProvider.planCookByRidSunModel, |
| 909 | - detailEntity: widget.detailEntity); | 910 | + detailEntity: widget.detailEntity, |
| 911 | + pnum: pnumController.text); | ||
| 910 | } else { | 912 | } else { |
| 911 | Utils.showToast('信息提交失败,请重试'); | 913 | Utils.showToast('信息提交失败,请重试'); |
| 912 | } | 914 | } |
| @@ -26,6 +26,8 @@ import '../../utils/event_bus.dart'; | @@ -26,6 +26,8 @@ import '../../utils/event_bus.dart'; | ||
| 26 | class OrderEditListShowPage extends StatefulWidget { | 26 | class OrderEditListShowPage extends StatefulWidget { |
| 27 | final List<SunListPlan> storeList; //套餐元数据 | 27 | final List<SunListPlan> storeList; //套餐元数据 |
| 28 | final List<SunListPlan> mineList; //我的排菜元数据 | 28 | final List<SunListPlan> mineList; //我的排菜元数据 |
| 29 | + final List<MenuSunModel> oftenList; //店内常点元数据 | ||
| 30 | + | ||
| 29 | final List<MenuModel> data; | 31 | final List<MenuModel> data; |
| 30 | final String planPrice; | 32 | final String planPrice; |
| 31 | final PlanCookByRidSunModel planCookByRidSunModel; | 33 | final PlanCookByRidSunModel planCookByRidSunModel; |
| @@ -45,7 +47,8 @@ class OrderEditListShowPage extends StatefulWidget { | @@ -45,7 +47,8 @@ class OrderEditListShowPage extends StatefulWidget { | ||
| 45 | this.needSubmmit = false, | 47 | this.needSubmmit = false, |
| 46 | this.planId, | 48 | this.planId, |
| 47 | this.rid, | 49 | this.rid, |
| 48 | - this.datatemp}) | 50 | + this.datatemp, |
| 51 | + this.oftenList}) | ||
| 49 | : super(key: key); | 52 | : super(key: key); |
| 50 | 53 | ||
| 51 | @override | 54 | @override |
| @@ -64,6 +67,7 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -64,6 +67,7 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 64 | 67 | ||
| 65 | List<SunListPlan> storeListLocal = []; //把amount = 0 的筛选出去 | 68 | List<SunListPlan> storeListLocal = []; //把amount = 0 的筛选出去 |
| 66 | List<SunListPlan> mineListLocal = []; //把amount = 0 的筛选出去 | 69 | List<SunListPlan> mineListLocal = []; //把amount = 0 的筛选出去 |
| 70 | + List<MenuSunModel> oftenListLocal = []; //把amount = 0 的筛选出去 | ||
| 67 | 71 | ||
| 68 | TextEditingController planDishName = TextEditingController(); //排菜名称 | 72 | TextEditingController planDishName = TextEditingController(); //排菜名称 |
| 69 | TextEditingController planDishRemark = TextEditingController(); //排菜备注 | 73 | TextEditingController planDishRemark = TextEditingController(); //排菜备注 |
| @@ -101,7 +105,9 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -101,7 +105,9 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 101 | 105 | ||
| 102 | if (widget.data != null) { | 106 | if (widget.data != null) { |
| 103 | widget.data.forEach((element) { | 107 | widget.data.forEach((element) { |
| 104 | - if (element.className == '套餐' || element.className == '我的排菜') { | 108 | + if (element.className == '套餐' || |
| 109 | + element.className == '我的排菜' || | ||
| 110 | + element.className == '店内常点') { | ||
| 105 | // //如果是套餐,则看cooklist有没有选中的 | 111 | // //如果是套餐,则看cooklist有没有选中的 |
| 106 | // bool isChange = false; //套餐或者排菜数量是否选中 | 112 | // bool isChange = false; //套餐或者排菜数量是否选中 |
| 107 | // if (element.className == '套餐') { | 113 | // if (element.className == '套餐') { |
| @@ -153,22 +159,27 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -153,22 +159,27 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 153 | } | 159 | } |
| 154 | }); | 160 | }); |
| 155 | value.moreSum = value.amount; | 161 | value.moreSum = value.amount; |
| 156 | - value.channel = | ||
| 157 | - element.className == '套餐' ? '1' : '2'; // 1套餐----2排菜 | 162 | + value.channel = element.className == '套餐' |
| 163 | + ? '1' | ||
| 164 | + : element.className == '我的排菜' | ||
| 165 | + ? '2' | ||
| 166 | + : '3'; // 1套餐----2排菜----3店内常点 | ||
| 158 | dataLocalShowMore.add(value); | 167 | dataLocalShowMore.add(value); |
| 159 | // dataLocalShowMore.add(MenuSunModel.fromJson3(value.toJson())); | 168 | // dataLocalShowMore.add(MenuSunModel.fromJson3(value.toJson())); |
| 160 | } | 169 | } |
| 161 | }); | 170 | }); |
| 162 | - } else if (element.className == '店内常点') { | ||
| 163 | - // //如果是我的排菜,则看cooklist有没有选中的 | ||
| 164 | - | ||
| 165 | - // bool hasmMine = | ||
| 166 | - // element.cookbooklist.any(((value) => value.amount > 0)); | ||
| 167 | - // if (hasmMine) { | ||
| 168 | - // //套餐中有被选中 | ||
| 169 | - // maxIndex++; | ||
| 170 | - // } | ||
| 171 | - } else if (element.className == '临时加菜') { | 171 | + } |
| 172 | + // else if (element.className == '店内常点') { | ||
| 173 | + // // //如果是我的排菜,则看cooklist有没有选中的 | ||
| 174 | + | ||
| 175 | + // // bool hasmMine = | ||
| 176 | + // // element.cookbooklist.any(((value) => value.amount > 0)); | ||
| 177 | + // // if (hasmMine) { | ||
| 178 | + // // //套餐中有被选中 | ||
| 179 | + // // maxIndex++; | ||
| 180 | + // // } | ||
| 181 | + // } | ||
| 182 | + else if (element.className == '临时加菜') { | ||
| 172 | //临时加菜 | 183 | //临时加菜 |
| 173 | bool hasmMenu = | 184 | bool hasmMenu = |
| 174 | element.cookbooklist.any(((value) => value.amount > 0)); | 185 | element.cookbooklist.any(((value) => value.amount > 0)); |
| @@ -259,6 +270,19 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -259,6 +270,19 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 259 | mineListLocal.add(sunListPlanTempMine); | 270 | mineListLocal.add(sunListPlanTempMine); |
| 260 | }); | 271 | }); |
| 261 | } | 272 | } |
| 273 | + if (widget.oftenList != null) { | ||
| 274 | + MenuSunModel oftenListTemp = MenuSunModel(); | ||
| 275 | + widget.oftenList.forEach((sunListPlan) { | ||
| 276 | + oftenListTemp = sunListPlan; | ||
| 277 | + oftenListTemp.cookList.forEach((menuModel) { | ||
| 278 | + menuModel.cookbooklist.removeWhere((element) => element.amount == 0); | ||
| 279 | + }); | ||
| 280 | + oftenListTemp.cookList | ||
| 281 | + .removeWhere((element) => element.cookbooklist.length == 0); | ||
| 282 | + print(oftenListTemp); | ||
| 283 | + oftenListLocal.add(oftenListTemp); | ||
| 284 | + }); | ||
| 285 | + } | ||
| 262 | _calculatePrice(); | 286 | _calculatePrice(); |
| 263 | if (widget.planPrice != null) { | 287 | if (widget.planPrice != null) { |
| 264 | planDishC.text = widget.planPrice; | 288 | planDishC.text = widget.planPrice; |
| @@ -329,6 +353,59 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | @@ -329,6 +353,59 @@ class _OrderEditListShowPageState extends State<OrderEditListShowPage> { | ||
| 329 | }); | 353 | }); |
| 330 | } else if (element.channel == '3') { | 354 | } else if (element.channel == '3') { |
| 331 | //店内常点 | 355 | //店内常点 |
| 356 | + List<MenuSunModel> olddata = oftenListLocal; | ||
| 357 | + olddata.forEach((store) { | ||
| 358 | + if (element.amount > 0) { | ||
| 359 | + if (store.id == element.id) { | ||
| 360 | + bool isChange = false; //套餐数量是否发生变化 | ||
| 361 | + //同一个套餐 | ||
| 362 | + | ||
| 363 | + store.cookList.forEach((storeCook) { | ||
| 364 | + if (store.cookList.length > element.cookList.length) { | ||
| 365 | + //删除了整个菜品分类 | ||
| 366 | + isChange = true; | ||
| 367 | + } | ||
| 368 | + element.cookList.forEach((cooklist) { | ||
| 369 | + if (cooklist.id == storeCook.id) { | ||
| 370 | + // if (cooklist.cookbooklist.length != | ||
| 371 | + // storeCook.cookbooklist.length) { | ||
| 372 | + // isChange = true; | ||
| 373 | + // } | ||
| 374 | + //同一分类 | ||
| 375 | + cooklist.cookbooklist.forEach((value1) { | ||
| 376 | + storeCook.cookbooklist.forEach((value2) { | ||
| 377 | + if (value1.id == value2.id) { | ||
| 378 | + if (value1.amount != value2.amount) { | ||
| 379 | + isChange = true; | ||
| 380 | + } | ||
| 381 | + } | ||
| 382 | + }); | ||
| 383 | + }); | ||
| 384 | + } | ||
| 385 | + }); | ||
| 386 | + }); | ||
| 387 | + //当前套餐/排菜数量已经发生变化 | ||
| 388 | + if (!isChange) { | ||
| 389 | + priceSum += double.parse(store.price) * element.amount; | ||
| 390 | + memberPriceSum += | ||
| 391 | + double.parse(store.member_price) * element.amount; | ||
| 392 | + } else { | ||
| 393 | + //单品 | ||
| 394 | + element.cookList.forEach((cooklist) { | ||
| 395 | + //同一分类 | ||
| 396 | + cooklist.cookbooklist.forEach((value1) { | ||
| 397 | + priceSum += double.parse(value1.price) * | ||
| 398 | + value1.amount * | ||
| 399 | + element.amount; | ||
| 400 | + memberPriceSum += double.parse(value1.member_price) * | ||
| 401 | + value1.amount * | ||
| 402 | + element.amount; | ||
| 403 | + }); | ||
| 404 | + }); | ||
| 405 | + } | ||
| 406 | + } | ||
| 407 | + } | ||
| 408 | + }); | ||
| 332 | } else { | 409 | } else { |
| 333 | // //单菜 | 410 | // //单菜 |
| 334 | // bool hasmMenu = element.cookbooklist.any(((value) => value.amount > 0)); | 411 | // bool hasmMenu = element.cookbooklist.any(((value) => value.amount > 0)); |
| @@ -11,6 +11,7 @@ import 'package:one_key/utils/utils.dart'; | @@ -11,6 +11,7 @@ import 'package:one_key/utils/utils.dart'; | ||
| 11 | import '../constant/constant.dart'; | 11 | import '../constant/constant.dart'; |
| 12 | import '../constant/error.dart'; | 12 | import '../constant/error.dart'; |
| 13 | import '../models/cookbook_model.dart'; | 13 | import '../models/cookbook_model.dart'; |
| 14 | +import '../models/seller_often_model.dart'; | ||
| 14 | import '../net/http_url.dart'; | 15 | import '../net/http_url.dart'; |
| 15 | 16 | ||
| 16 | /** | 17 | /** |
| @@ -36,6 +37,8 @@ class PlanDishProvider extends ChangeNotifier { | @@ -36,6 +37,8 @@ class PlanDishProvider extends ChangeNotifier { | ||
| 36 | List<SunListPlan> mineListTemp = []; //排菜套餐列表--我的 | 37 | List<SunListPlan> mineListTemp = []; //排菜套餐列表--我的 |
| 37 | String planId; | 38 | String planId; |
| 38 | PlanCookByRidSunModel planCookByRidSunModel; //订单排菜的数据 | 39 | PlanCookByRidSunModel planCookByRidSunModel; //订单排菜的数据 |
| 40 | + List<MenuSunModel> sellerOftendata; //店内常点 | ||
| 41 | + List<MenuSunModel> sellerOftendataTemp = []; //店内常点 | ||
| 39 | // List<CookbookCategorySunModel> categorySunModel; //菜品分类数据 | 42 | // List<CookbookCategorySunModel> categorySunModel; //菜品分类数据 |
| 40 | // List<CookbookSpecSunModel> specSunModel; //计价单位 | 43 | // List<CookbookSpecSunModel> specSunModel; //计价单位 |
| 41 | 44 | ||
| @@ -304,4 +307,85 @@ class PlanDishProvider extends ChangeNotifier { | @@ -304,4 +307,85 @@ class PlanDishProvider extends ChangeNotifier { | ||
| 304 | return false; | 307 | return false; |
| 305 | } | 308 | } |
| 306 | } | 309 | } |
| 310 | + | ||
| 311 | + Future<bool> getSellerOften(BuildContext context, Map<String, String> params, | ||
| 312 | + {showLoading = false}) async { | ||
| 313 | + BaseResp<dynamic> baseResp = await DioUtil() | ||
| 314 | + .request<dynamic>(context, Method.get, HttpUrl.get_seller_often, | ||
| 315 | + data: params, showLoading: showLoading) | ||
| 316 | + .catchError((error) { | ||
| 317 | + print(error.toString()); | ||
| 318 | + if (error is MyError) {} | ||
| 319 | + return false; | ||
| 320 | + }); | ||
| 321 | + | ||
| 322 | + if (baseResp != null && baseResp.code == Constant.status_success) { | ||
| 323 | + List<SellerOftenSunModel> sellerOftenSunModel = | ||
| 324 | + SellerOftenModel.fromJson(baseResp.responseData).data; | ||
| 325 | + List<MenuSunModel> data = []; | ||
| 326 | + List<MenuSunModel> datatemp = []; | ||
| 327 | + sellerOftenSunModel.forEach((element) { | ||
| 328 | + // SellerOftenSunModel | ||
| 329 | + MenuSunModel menuSunModel = MenuSunModel(); | ||
| 330 | + menuSunModel.id = element.id; | ||
| 331 | + menuSunModel.name = '${element.pnum}人'; | ||
| 332 | + // menuSunModel.price = element.menuPrice; | ||
| 333 | + menuSunModel.price = element.price; | ||
| 334 | + menuSunModel.member_price = element.memberPrice ?? element.price; | ||
| 335 | + menuSunModel.unit = '份'; | ||
| 336 | + // | ||
| 337 | + | ||
| 338 | + List<MenuModel> cookF = []; | ||
| 339 | + element.cooklist.forEach((value) { | ||
| 340 | + MenuModel menuModel = MenuModel(); | ||
| 341 | + menuModel.id = value.classid; | ||
| 342 | + menuModel.sellerid = element.sellerid; | ||
| 343 | + menuModel.className = value.className; | ||
| 344 | + menuModel.classLabel = null; | ||
| 345 | + menuModel.order = null; | ||
| 346 | + menuModel.status = '1'; | ||
| 347 | + menuModel.classType = null; | ||
| 348 | + menuModel.cookbooklist = []; | ||
| 349 | + value.cooklist.forEach((cook) { | ||
| 350 | + MenuSunModel cookData = MenuSunModel(); | ||
| 351 | + cookData.id = cook.cookbookid; | ||
| 352 | + cookData.sellerid = cook.sid; | ||
| 353 | + cookData.cid = cook.classid; | ||
| 354 | + cookData.price = cook.price; | ||
| 355 | + cookData.member_price = cook.memberPrice ?? cook.price; | ||
| 356 | + cookData.name = cook.name; | ||
| 357 | + cookData.unit = cook.unit; | ||
| 358 | + cookData.image = cook.image; | ||
| 359 | + cookData.amount = cook.amount; | ||
| 360 | + | ||
| 361 | + // "specid": null, | ||
| 362 | + // "practiceid": null, | ||
| 363 | + // "class_name": "炒菜12", | ||
| 364 | + // "class_order": "2" | ||
| 365 | + menuModel.cookbooklist.add(cookData); | ||
| 366 | + }); | ||
| 367 | + | ||
| 368 | + cookF.add(menuModel); | ||
| 369 | + }); | ||
| 370 | + | ||
| 371 | + menuSunModel.cookList = cookF; | ||
| 372 | + | ||
| 373 | + data.add(menuSunModel); | ||
| 374 | + datatemp.add(menuSunModel); | ||
| 375 | + }); | ||
| 376 | + print(data); | ||
| 377 | + | ||
| 378 | + sellerOftendata = data; | ||
| 379 | + | ||
| 380 | + sellerOftendataTemp = datatemp; | ||
| 381 | + | ||
| 382 | + // sellerOftendata | ||
| 383 | + | ||
| 384 | + notifyListeners(); | ||
| 385 | + return true; | ||
| 386 | + } else { | ||
| 387 | + Utils.showToast(baseResp.msg ?? ""); | ||
| 388 | + return false; | ||
| 389 | + } | ||
| 390 | + } | ||
| 307 | } | 391 | } |
| @@ -1236,7 +1236,8 @@ class NavigatorUtil { | @@ -1236,7 +1236,8 @@ class NavigatorUtil { | ||
| 1236 | String planId, | 1236 | String planId, |
| 1237 | String rid, | 1237 | String rid, |
| 1238 | PlanCookByRidSunModel planCookByRidSunModel, | 1238 | PlanCookByRidSunModel planCookByRidSunModel, |
| 1239 | - NotebookDetail detailEntity}) { | 1239 | + NotebookDetail detailEntity, |
| 1240 | + String pnum}) { | ||
| 1240 | // if (invoice != null) { | 1241 | // if (invoice != null) { |
| 1241 | // return _navigateTo(context, | 1242 | // return _navigateTo(context, |
| 1242 | // "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}", | 1243 | // "${Routes.order_advance_home_page}?invoice=${FluroConvertUtils.object2string(invoice)}", |
| @@ -1244,11 +1245,11 @@ class NavigatorUtil { | @@ -1244,11 +1245,11 @@ class NavigatorUtil { | ||
| 1244 | // } | 1245 | // } |
| 1245 | if (planCookByRidSunModel != null) { | 1246 | if (planCookByRidSunModel != null) { |
| 1246 | return _navigateTo(context, | 1247 | return _navigateTo(context, |
| 1247 | - "${Routes.order_advance_edit_page}?planId=$planId&rid=$rid&planCookByRidSunModel=${FluroConvertUtils.object2string(planCookByRidSunModel)}&detail=${FluroConvertUtils.object2string(detailEntity)}", | 1248 | + "${Routes.order_advance_edit_page}?planId=$planId&rid=$rid&planCookByRidSunModel=${FluroConvertUtils.object2string(planCookByRidSunModel)}&detail=${FluroConvertUtils.object2string(detailEntity)}&pnum=$pnum", |
| 1248 | replace: replace); | 1249 | replace: replace); |
| 1249 | } | 1250 | } |
| 1250 | return _navigateTo(context, | 1251 | return _navigateTo(context, |
| 1251 | - "${Routes.order_advance_edit_page}?planId=$planId&rid=$rid&detail=${FluroConvertUtils.object2string(detailEntity)}", | 1252 | + "${Routes.order_advance_edit_page}?planId=$planId&rid=$rid&detail=${FluroConvertUtils.object2string(detailEntity)}&pnum=$pnum", |
| 1252 | replace: replace); | 1253 | replace: replace); |
| 1253 | } | 1254 | } |
| 1254 | 1255 | ||
| @@ -1284,6 +1285,7 @@ class NavigatorUtil { | @@ -1284,6 +1285,7 @@ class NavigatorUtil { | ||
| 1284 | Map object, | 1285 | Map object, |
| 1285 | Map object1, | 1286 | Map object1, |
| 1286 | Map object2, | 1287 | Map object2, |
| 1288 | + Map object3, | ||
| 1287 | String planPrice, | 1289 | String planPrice, |
| 1288 | PlanCookByRidSunModel planCookByRidSunModel, | 1290 | PlanCookByRidSunModel planCookByRidSunModel, |
| 1289 | NotebookDetail detailEntity, | 1291 | NotebookDetail detailEntity, |
| @@ -1297,11 +1299,11 @@ class NavigatorUtil { | @@ -1297,11 +1299,11 @@ class NavigatorUtil { | ||
| 1297 | // } | 1299 | // } |
| 1298 | if (object != null && planCookByRidSunModel != null) { | 1300 | if (object != null && planCookByRidSunModel != null) { |
| 1299 | return _navigateTo(context, | 1301 | return _navigateTo(context, |
| 1300 | - "${Routes.order_edit_list_show_page}?object=${FluroConvertUtils.object2string(object)}&object1=${FluroConvertUtils.object2string(object1)}&object2=${FluroConvertUtils.object2string(object2)}&planPrice=$planPrice&planCookByRidSunModel=${FluroConvertUtils.object2string(planCookByRidSunModel)}&detail=${FluroConvertUtils.object2string(detailEntity)}&needSubmmit=$needSubmmit&planId=$planId&rid=$rid"); | 1302 | + "${Routes.order_edit_list_show_page}?object=${FluroConvertUtils.object2string(object)}&object1=${FluroConvertUtils.object2string(object1)}&object2=${FluroConvertUtils.object2string(object2)}&object3=${FluroConvertUtils.object2string(object3)}&planPrice=$planPrice&planCookByRidSunModel=${FluroConvertUtils.object2string(planCookByRidSunModel)}&detail=${FluroConvertUtils.object2string(detailEntity)}&needSubmmit=$needSubmmit&planId=$planId&rid=$rid"); |
| 1301 | } | 1303 | } |
| 1302 | if (object != null) { | 1304 | if (object != null) { |
| 1303 | return _navigateTo(context, | 1305 | return _navigateTo(context, |
| 1304 | - "${Routes.order_edit_list_show_page}?object=${FluroConvertUtils.object2string(object)}&object1=${FluroConvertUtils.object2string(object1)}&object2=${FluroConvertUtils.object2string(object2)}&planPrice=$planPrice&detail=${FluroConvertUtils.object2string(detailEntity)}&needSubmmit=$needSubmmit&planId=$planId&rid=$rid"); | 1306 | + "${Routes.order_edit_list_show_page}?object=${FluroConvertUtils.object2string(object)}&object1=${FluroConvertUtils.object2string(object1)}&object2=${FluroConvertUtils.object2string(object2)}&object3=${FluroConvertUtils.object2string(object3)}&planPrice=$planPrice&detail=${FluroConvertUtils.object2string(detailEntity)}&needSubmmit=$needSubmmit&planId=$planId&rid=$rid"); |
| 1305 | } | 1307 | } |
| 1306 | return _navigateTo(context, | 1308 | return _navigateTo(context, |
| 1307 | "${Routes.order_edit_list_show_page}?needSubmmit=$needSubmmit&planId=$planId&rid=$rid", | 1309 | "${Routes.order_edit_list_show_page}?needSubmmit=$needSubmmit&planId=$planId&rid=$rid", |
| @@ -1376,8 +1378,7 @@ class NavigatorUtil { | @@ -1376,8 +1378,7 @@ class NavigatorUtil { | ||
| 1376 | ///排菜----编辑客户详情 | 1378 | ///排菜----编辑客户详情 |
| 1377 | static Future<dynamic> goOrderCustomerDetailEditPage( | 1379 | static Future<dynamic> goOrderCustomerDetailEditPage( |
| 1378 | BuildContext context, | 1380 | BuildContext context, |
| 1379 | - NotebookDetail detailEntity, | ||
| 1380 | - { | 1381 | + NotebookDetail detailEntity, { |
| 1381 | replace = false, | 1382 | replace = false, |
| 1382 | }) { | 1383 | }) { |
| 1383 | return _navigateTo(context, | 1384 | return _navigateTo(context, |
| @@ -1953,8 +1953,8 @@ var orderAdvanceHomePageHandle = new Handler( | @@ -1953,8 +1953,8 @@ var orderAdvanceHomePageHandle = new Handler( | ||
| 1953 | return ChangeNotifierProvider<PlanDishProvider>( | 1953 | return ChangeNotifierProvider<PlanDishProvider>( |
| 1954 | create: (_) => PlanDishProvider(), | 1954 | create: (_) => PlanDishProvider(), |
| 1955 | child: ChangeNotifierProvider<CustomerProvider>( | 1955 | child: ChangeNotifierProvider<CustomerProvider>( |
| 1956 | - create: (_) => CustomerProvider(), | ||
| 1957 | - child:OrderAdvanceHomePage(detailEntity: detailEntity, rid: rid))); | 1956 | + create: (_) => CustomerProvider(), |
| 1957 | + child: OrderAdvanceHomePage(detailEntity: detailEntity, rid: rid))); | ||
| 1958 | }); | 1958 | }); |
| 1959 | 1959 | ||
| 1960 | ///经理排菜---编辑 | 1960 | ///经理排菜---编辑 |
| @@ -1962,6 +1962,7 @@ var orderAdvanceEidtPageHandle = new Handler( | @@ -1962,6 +1962,7 @@ var orderAdvanceEidtPageHandle = new Handler( | ||
| 1962 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { | 1962 | handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) { |
| 1963 | String planId = params["planId"].first; | 1963 | String planId = params["planId"].first; |
| 1964 | String rid = params["rid"].first; | 1964 | String rid = params["rid"].first; |
| 1965 | + String pnum = params["pnum"].first; | ||
| 1965 | NotebookDetail detailEntity = NotebookDetail.fromJson(json | 1966 | NotebookDetail detailEntity = NotebookDetail.fromJson(json |
| 1966 | .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first))); | 1967 | .decode(FluroConvertUtils.fluroCnParamsDecode(params["detail"].first))); |
| 1967 | PlanCookByRidSunModel planCookByRidSunModel; | 1968 | PlanCookByRidSunModel planCookByRidSunModel; |
| @@ -1995,7 +1996,8 @@ var orderAdvanceEidtPageHandle = new Handler( | @@ -1995,7 +1996,8 @@ var orderAdvanceEidtPageHandle = new Handler( | ||
| 1995 | planId: planId, | 1996 | planId: planId, |
| 1996 | rid: rid, | 1997 | rid: rid, |
| 1997 | planCookByRidSunModel: planCookByRidSunModel, | 1998 | planCookByRidSunModel: planCookByRidSunModel, |
| 1998 | - detailEntity: detailEntity)); | 1999 | + detailEntity: detailEntity, |
| 2000 | + pnum: pnum)); | ||
| 1999 | }); | 2001 | }); |
| 2000 | 2002 | ||
| 2001 | ///经理排菜---预览页 | 2003 | ///经理排菜---预览页 |
| @@ -2125,6 +2127,22 @@ var orderEditListShowPageHandle = new Handler( | @@ -2125,6 +2127,22 @@ var orderEditListShowPageHandle = new Handler( | ||
| 2125 | } | 2127 | } |
| 2126 | } | 2128 | } |
| 2127 | 2129 | ||
| 2130 | + List<MenuSunModel> oftenList = []; | ||
| 2131 | + if (params.keys.contains('object3')) { | ||
| 2132 | + Map object = FluroConvertUtils.string2map(params["object3"].first); | ||
| 2133 | + List temp = object['object3']; | ||
| 2134 | + // SunListPlan plan = SunListPlan(); | ||
| 2135 | + // plan. | ||
| 2136 | + // planDishPrice = params["planDishPrice"].first; | ||
| 2137 | + | ||
| 2138 | + for (var item in temp) { | ||
| 2139 | + // MenuModel menuModel = MenuModel.fromJson2(item); | ||
| 2140 | + // res.add(menuModel); | ||
| 2141 | + // print(res); | ||
| 2142 | + oftenList.add(MenuSunModel.fromJson2(item)); | ||
| 2143 | + } | ||
| 2144 | + } | ||
| 2145 | + | ||
| 2128 | String planPrice = params["planPrice"].first; | 2146 | String planPrice = params["planPrice"].first; |
| 2129 | 2147 | ||
| 2130 | String rid = params["rid"].first; | 2148 | String rid = params["rid"].first; |
| @@ -2136,6 +2154,7 @@ var orderEditListShowPageHandle = new Handler( | @@ -2136,6 +2154,7 @@ var orderEditListShowPageHandle = new Handler( | ||
| 2136 | data: res, | 2154 | data: res, |
| 2137 | storeList: storeList, | 2155 | storeList: storeList, |
| 2138 | mineList: mineList, | 2156 | mineList: mineList, |
| 2157 | + oftenList:oftenList, | ||
| 2139 | planPrice: planPrice, | 2158 | planPrice: planPrice, |
| 2140 | planCookByRidSunModel: planCookByRidSunModel, | 2159 | planCookByRidSunModel: planCookByRidSunModel, |
| 2141 | detailEntity: detailEntity, | 2160 | detailEntity: detailEntity, |
| @@ -2260,5 +2279,4 @@ var orderCustomerDetailPageHandle = new Handler( | @@ -2260,5 +2279,4 @@ var orderCustomerDetailPageHandle = new Handler( | ||
| 2260 | return ChangeNotifierProvider<CustomerProvider>( | 2279 | return ChangeNotifierProvider<CustomerProvider>( |
| 2261 | create: (_) => CustomerProvider(), | 2280 | create: (_) => CustomerProvider(), |
| 2262 | child: OrderCustomerDetailPage(detailEntity: detailEntity)); | 2281 | child: OrderCustomerDetailPage(detailEntity: detailEntity)); |
| 2263 | - | ||
| 2264 | }); | 2282 | }); |
-
Please register or login to post a comment