|
...
|
...
|
@@ -30,6 +30,8 @@ import 'package:one_key/widgets/v_empty_view.dart'; |
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'dart:convert' as convert;
|
|
|
|
|
|
|
|
import '../../models/get_board_model.dart';
|
|
|
|
|
|
|
|
class SelectTableFPage extends StatefulWidget {
|
|
|
|
final String rid; //预订id
|
|
|
|
final DateTime dateTime; //日期
|
|
...
|
...
|
@@ -68,6 +70,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { |
|
|
|
bool isSelected = true; //全部按钮
|
|
|
|
int _selectNumber;
|
|
|
|
Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟
|
|
|
|
List<Notebook> noteBooks;
|
|
|
|
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
...
|
...
|
@@ -208,6 +211,61 @@ class SelectTableFPageState extends State<SelectTableFPage> { |
|
|
|
// }
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取预订(原来普通预订和宴会预订)
|
|
|
|
_getReserveListAndFeastData(context, params, showloading) async {
|
|
|
|
UserModel userModel = Provider.of<UserModel>(context, listen: false);
|
|
|
|
String timeStrStart = widget.dateTime.year.toString() +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(widget.dateTime.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(widget.dateTime.day) +
|
|
|
|
" 00:00:00";
|
|
|
|
String timeStrEnd = widget.dateTime.year.toString() +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(widget.dateTime.month) +
|
|
|
|
"-" +
|
|
|
|
Utils.addZeroNumber(widget.dateTime.day) +
|
|
|
|
" 23:59:59";
|
|
|
|
String start =
|
|
|
|
(DateUtil.getDateMsByTimeStr(timeStrStart) / 1000).floor().toString();
|
|
|
|
String end =
|
|
|
|
(DateUtil.getDateMsByTimeStr(timeStrEnd) / 1000).floor().toString();
|
|
|
|
|
|
|
|
Map<String, String> banquetmap = {
|
|
|
|
'sid': userModel.user.sellerid,
|
|
|
|
'rdate': '${start}',
|
|
|
|
'edate': '${end}',
|
|
|
|
'ddate_interval': widget.ddate_slot
|
|
|
|
};
|
|
|
|
return await Future.wait<bool>([
|
|
|
|
_getOldReserve(context, params, showloading),
|
|
|
|
_chooseTableModel.getBanquetByDate(context, banquetmap,
|
|
|
|
showLoading: showloading)
|
|
|
|
]).then((results) {
|
|
|
|
if (results[0] && results[1]) {
|
|
|
|
//成功
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
if (!results[0]) {
|
|
|
|
// Utils.showToast('');
|
|
|
|
} else {
|
|
|
|
// Utils.showToast('');
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}).catchError((e) {
|
|
|
|
print(e);
|
|
|
|
return false;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<bool> _getOldReserve(context, params, showloading) async {
|
|
|
|
NoteBookModel model = new NoteBookModel();
|
|
|
|
noteBooks =
|
|
|
|
await model.getReserveList(context, params, needLoading: showloading);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取已预订列表
|
|
|
|
_getReserveList(String sid, {needLoading = true}) async {
|
|
|
|
NoteBookModel model = new NoteBookModel();
|
|
...
|
...
|
@@ -220,20 +278,104 @@ class SelectTableFPageState extends State<SelectTableFPage> { |
|
|
|
"keywords": "",
|
|
|
|
"sort": "1"
|
|
|
|
};
|
|
|
|
List<Notebook> noteBooks =
|
|
|
|
await model.getReserveList(context, params, needLoading: needLoading);
|
|
|
|
for (Notebook notebook in noteBooks) {
|
|
|
|
if (notebook.tid.isEmpty) continue;
|
|
|
|
if (notebook.status == "1" ||
|
|
|
|
notebook.status == "2" ||
|
|
|
|
notebook.status == "5") {
|
|
|
|
//已预订,用餐中,已安排
|
|
|
|
List<String> tids = notebook.tid.split(",");
|
|
|
|
for (String tid in tids) {
|
|
|
|
tableMap["$tid"] = notebook;
|
|
|
|
// List<Notebook> noteBooks =
|
|
|
|
// await model.getReserveList(context, params, needLoading: needLoading);
|
|
|
|
bool success =
|
|
|
|
await _getReserveListAndFeastData(context, params, needLoading);
|
|
|
|
if (success) {
|
|
|
|
List<FeastBoardModel> banquetByDateDataTemp = []; //转换为桌子id为key,data为value
|
|
|
|
_chooseTableModel.banquetByDateData.forEach((element) {
|
|
|
|
_chooseTableModel.tablesAll.forEach((table) {
|
|
|
|
if (table.name == element.title) {
|
|
|
|
FeastBoardModel feastBoardModel = FeastBoardModel();
|
|
|
|
feastBoardModel.title = table.id;
|
|
|
|
feastBoardModel.data = element.data;
|
|
|
|
banquetByDateDataTemp.add(feastBoardModel);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
// banquetByDateData.map((e) => null)
|
|
|
|
String banquetKey = '';
|
|
|
|
if (widget.ddate_slot == '1') {
|
|
|
|
banquetKey = '早餐';
|
|
|
|
} else if (widget.ddate_slot == '2') {
|
|
|
|
banquetKey = '午餐';
|
|
|
|
} else if (widget.ddate_slot == '3') {
|
|
|
|
banquetKey = '晚餐';
|
|
|
|
}
|
|
|
|
banquetByDateDataTemp.forEach((element) {
|
|
|
|
FeastBoardSunModel feastBoardSunModel = element.data[banquetKey][0];
|
|
|
|
Notebook notebook = Notebook();
|
|
|
|
notebook.tid = element.title;
|
|
|
|
notebook.status = '10'; //宴会类型
|
|
|
|
notebook.className = feastBoardSunModel.className;
|
|
|
|
notebook.id = feastBoardSunModel.rid;
|
|
|
|
notebook.rname = feastBoardSunModel.rname;
|
|
|
|
notebook.nick_name =
|
|
|
|
feastBoardSunModel.nickName ?? feastBoardSunModel.account;
|
|
|
|
noteBooks.add(notebook);
|
|
|
|
});
|
|
|
|
for (Notebook notebook in noteBooks) {
|
|
|
|
if (notebook.tid.isEmpty) continue;
|
|
|
|
if (notebook.status == "1" ||
|
|
|
|
notebook.status == "2" ||
|
|
|
|
notebook.status == "5" ||
|
|
|
|
notebook.status == "10") {
|
|
|
|
//已预订,用餐中,已安排
|
|
|
|
List<String> tids = notebook.tid.split(",");
|
|
|
|
for (String tid in tids) {
|
|
|
|
tableMap["$tid"] = notebook;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// List<Notebook> noteBooks =
|
|
|
|
// await newGetReserveList(context, params, showLoading: showloading);
|
|
|
|
// List<t.Table> tempSelectTables = [];
|
|
|
|
// tempSelectTables.addAll(selectTables);
|
|
|
|
// String msg = '';
|
|
|
|
// for (Notebook notebook in noteBooks) {
|
|
|
|
// if (notebook.tid.isEmpty) continue;
|
|
|
|
|
|
|
|
// //已预订,用餐中,已安排
|
|
|
|
// List<String> tids = notebook.tid.split(",");
|
|
|
|
// for (String tid in tids) {
|
|
|
|
// if (notebook.status == "1" ||
|
|
|
|
// notebook.status == "2" ||
|
|
|
|
// notebook.status == "5" ||
|
|
|
|
// notebook.status == "10") {
|
|
|
|
// tableMap["$tid"] = notebook;
|
|
|
|
|
|
|
|
// ///预订按钮点击的时候提醒已经被预订的桌子
|
|
|
|
// ///
|
|
|
|
// if (showMsg && selectTables.length > 0) {
|
|
|
|
// for (t.Table item in selectTables) {
|
|
|
|
// if (item.id == tid) {
|
|
|
|
// msg += '${item.name},';
|
|
|
|
// tempSelectTables.remove(item);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// if (showMsg && msg != '' && selectTables.length > 0) {
|
|
|
|
// if (msg.endsWith(',')) {
|
|
|
|
// msg = msg.substring(0, msg.length - 1);
|
|
|
|
// }
|
|
|
|
// selectTables = tempSelectTables;
|
|
|
|
// Utils.showToast('${msg}已被预订,请选择其他桌位!');
|
|
|
|
// print(tableMap);
|
|
|
|
// initData(needKeep: needKeep);
|
|
|
|
// // notifyListeners();
|
|
|
|
// return false;
|
|
|
|
// }
|
|
|
|
|
|
|
|
// print(tableMap);
|
|
|
|
// initData(needKeep: needKeep);
|
|
|
|
// return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
print(tableMap);
|
|
|
|
if (needLoading) {
|
|
|
|
initData();
|
|
...
|
...
|
@@ -268,6 +410,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { |
|
|
|
table.pnum = notebook.actual_pnum;
|
|
|
|
table.nickName = notebook.nick_name;
|
|
|
|
table.noteName = notebook.note_name;
|
|
|
|
table.label = notebook.className;
|
|
|
|
//(不能移除自己定的桌子)
|
|
|
|
String idNow = '';
|
|
|
|
if (tableMap.containsKey('${table.id}')) {
|
|
...
|
...
|
@@ -484,8 +627,9 @@ class SelectTableFPageState extends State<SelectTableFPage> { |
|
|
|
shouldRebuild: (pre, next) => true,
|
|
|
|
selector: (context, model) => data[index],
|
|
|
|
builder: (context, table, _) {
|
|
|
|
return FTableItem(table, canSelected: true,
|
|
|
|
onSelected: (t.Table table) {
|
|
|
|
return FTableItem(table,
|
|
|
|
canSelected: true,
|
|
|
|
selectTables: selectTables, onSelected: (t.Table table) {
|
|
|
|
if (widget.fromPage == 'tablePhoto') {
|
|
|
|
for (String item in areaTableMap.keys) {
|
|
|
|
for (t.Table item in areaTableMap[item]) {
|
|
...
|
...
|
@@ -503,15 +647,11 @@ class SelectTableFPageState extends State<SelectTableFPage> { |
|
|
|
} else {
|
|
|
|
if ((table as t.Table).selected) {
|
|
|
|
selectTables.add(table);
|
|
|
|
|
|
|
|
selectNum++;
|
|
|
|
|
|
|
|
widget.tableList.add(tableToTableList(table));
|
|
|
|
} else {
|
|
|
|
widget.tableList.removeWhere((t) => t.id == table.id);
|
|
|
|
|
|
|
|
selectNum--;
|
|
|
|
|
|
|
|
selectTables.removeWhere((t) => t.id == table.id);
|
|
|
|
}
|
|
|
|
setState(() {});
|
|
...
|
...
|
@@ -718,7 +858,7 @@ class SelectTableFPageState extends State<SelectTableFPage> { |
|
|
|
model.tablesShow =
|
|
|
|
_chooseTableModel.tablesCanNote;
|
|
|
|
} else {
|
|
|
|
model.areaTableMapShow = model.areaTableMap;
|
|
|
|
model.areaTableMapShow = areaTableMap;
|
|
|
|
model.tablesShow = model.tablesAll;
|
|
|
|
}
|
|
|
|
});
|
...
|
...
|
|