Commit 236461183becaf51ba47e8d6404b106e67f2c7b5

Authored by wdn127929
1 parent 8d386753

宴会占用起始时间

... ... @@ -43,6 +43,7 @@ class SelectTableFPage extends StatefulWidget {
final String hmS;
final String hmE;
final String source;
final String ridFeast; //宴会id
SelectTableFPage(this.rid, this.dateTime, this.ddate_slot,
{this.canChoose = false,
this.tableList,
... ... @@ -50,7 +51,8 @@ class SelectTableFPage extends StatefulWidget {
this.tid,
this.hmS,
this.hmE,
this.source = '0'});
this.source = '0',
this.ridFeast});
@override
State<StatefulWidget> createState() {
... ... @@ -240,41 +242,65 @@ class SelectTableFPageState extends State<SelectTableFPage> {
//获取预订(原来普通预订和宴会预订)
_getReserveListAndFeastData(context, params, showloading) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
String timeStrStart = '';
String timeStrEnd = '';
String hmsS = " ${widget.hmS}:00"; //起始
String hmsE = " ${widget.hmE}:59"; //结束
// String keys = '';
// if (widget.ddate_slot == '1') {
// //早市
// keys = 'morning';
// } else if (widget.ddate_slot == '2') {
// //午市
// keys = 'noon';
// } else if (widget.ddate_slot == '3') {
// //晚市
// keys = 'night';
// }
// if (keys != '') {
// List temp = dailyMap[keys];
// hmsS = " ${temp.first}:00";
// hmsE = " ${temp.last}:59";
// } else {
// hmsS = " 00:00:00";
// hmsE = " 23:59:59";
// }
if (widget.hmS == 'null' || widget.hmE == 'null') {
//用餐段对应的时间段作为起始时间
String keys = '';
if (widget.ddate_slot == '1') {
//早市
keys = 'morning';
} else if (widget.ddate_slot == '2') {
//午市
keys = 'noon';
} else if (widget.ddate_slot == '3') {
//晚市
keys = 'night';
}
String ymd =
DateUtil.formatDate(widget.dateTime, format: DateFormats.y_mo_d);
if (keys != '') {
List temp = dailyMap[keys];
timeStrStart = ymd + ' ' + temp.first + ':00';
timeStrEnd = ymd + ' ' + temp.last + ':00';
} else {
hmsS = " 00:00:00";
hmsE = " 23:59:59";
timeStrStart = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsS;
timeStrEnd = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsE;
}
} else {
hmsS = " ${widget.hmS}:00"; //起始
hmsE = " ${widget.hmE}:59"; //结束
timeStrStart = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsS;
timeStrEnd = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsE;
}
String timeStrStart = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsS;
String timeStrEnd = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsE;
String start =
(DateUtil.getDateMsByTimeStr(timeStrStart) / 1000).floor().toString();
String end =
... ... @@ -359,6 +385,7 @@ class SelectTableFPageState extends State<SelectTableFPage> {
Map<String, List<FeastBoardSunModel>> banquetData = {};
banquetByDateDataTemp.forEach((element) {
List<FeastBoardSunModel> data = [];
if (element.data['其他'].length > 0) {
FeastBoardSunModel feastBoardSunModel = element.data['其他'][0];
if (feastBoardSunModel.lost == null ||
... ... @@ -387,7 +414,15 @@ class SelectTableFPageState extends State<SelectTableFPage> {
data.add(feastBoardSunModel); //未丢单宴会合集
}
}
if (!banquetData.containsKey(element.title)) {
// 不是丢单宴会&&不是当前宴会
// 移除当前宴会订单
if (widget.ridFeast != null) {
print(data);
data.removeWhere((element) => element.rid == widget.ridFeast);
print(data);
}
if (!banquetData.containsKey(element.title) && data.length > 0) {
banquetData[element.title] = data;
}
});
... ... @@ -586,45 +621,69 @@ class SelectTableFPageState extends State<SelectTableFPage> {
//获取一天开始-结束时间字符串
String _getRdate() {
// String keys = '';
// if (widget.ddate_slot == '1') {
// //早市
// keys = 'morning';
// } else if (widget.ddate_slot == '2') {
// //午市
// keys = 'noon';
// } else if (widget.ddate_slot == '3') {
// //晚市
// keys = 'night';
// }
// String ymd =
// DateUtil.formatDate(widget.dateTime, format: DateFormats.y_mo_d);
String timeStrStart = '';
String timeStrEnd = '';
//一天开始时间
double startDay;
//一天结束时间
double endDay;
// if (keys != '') {
// List temp = dailyMap[keys];
// timeStrStart = ymd + ' ' + temp.first + ':00';
// timeStrEnd = ymd + ' ' + temp.last + ':00';
// } else {
String hmsS = " ${widget.hmS}:00"; //起始
String hmsE = " ${widget.hmE}:59"; //结束
timeStrStart = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsS;
timeStrEnd = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsE;
if (widget.hmS == 'null' || widget.hmE == 'null') {
//用餐段对应的时间段作为起始时间
String keys = '';
if (widget.ddate_slot == '1') {
//早市
keys = 'morning';
} else if (widget.ddate_slot == '2') {
//午市
keys = 'noon';
} else if (widget.ddate_slot == '3') {
//晚市
keys = 'night';
}
String ymd =
DateUtil.formatDate(widget.dateTime, format: DateFormats.y_mo_d);
if (keys != '') {
List temp = dailyMap[keys];
timeStrStart = ymd + ' ' + temp.first + ':00';
timeStrEnd = ymd + ' ' + temp.last + ':00';
} else {
hmsS = " 00:00:00";
hmsE = " 23:59:59";
timeStrStart = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsS;
timeStrEnd = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsE;
}
} else {
hmsS = " ${widget.hmS}:00"; //起始
hmsE = " ${widget.hmE}:59"; //结束
timeStrStart = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsS;
timeStrEnd = widget.dateTime.year.toString() +
"-" +
Utils.addZeroNumber(widget.dateTime.month) +
"-" +
Utils.addZeroNumber(widget.dateTime.day) +
hmsE;
}
// }
startDay = (DateTime.parse(timeStrStart).millisecondsSinceEpoch) / 1000;
endDay = (DateTime.parse(timeStrEnd).millisecondsSinceEpoch) / 1000;
... ...
... ... @@ -16,6 +16,7 @@ import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import '../../app.dart';
import '../../constant/state.dart';
import '../../models/dsolt_xt.dart';
import '../../models/feast_menu_model.dart';
... ... @@ -24,6 +25,7 @@ import '../../models/get_board_model.dart';
import '../../models/notebook.dart';
import '../../models/set_xuan_tai_model.dart';
import '../../models/setmeal_by_id_model.dart';
import '../../models/tableOuter.dart';
import '../../models/upload_img_model.dart';
import '../../provider/choose_table_model.dart';
import '../../provider/feast_model.dart';
... ... @@ -108,6 +110,7 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
ChooseTableModel _chooseTableModel;
List<Notebook> noteBooks;
Map<String, Notebook> tableMap = {}; //记录已预订桌位对应的订单
List<TableOuter> tableOuterList = []; //区域-桌位列表
@override
void initState() {
... ... @@ -262,7 +265,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
setXuanTaiModel.endDate; //起始时间
setXuanTaiModel.tableList = element.tableList;
setXuanTaiModel.tableSum = int.parse('${element.tableNum}'); //桌位总数
setXuanTaiModel.tableSum =
element.tableNum == null || element.tableNum == ''
? 0
: int.parse('${element.tableNum}'); //桌位总数
setXuanTaiModel.customCxt.text = element.remark; //选台备注
setXuanTaiModel.feastRemarkXtImageList =
element.feastRemarkImages; //宴会备注图片信息列表----选台
... ... @@ -1326,6 +1332,60 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
return true;
}
List<TableOuter> getSpTableList() {
String tableList = App.sp.getString('table_list');
if (tableList == null) {
return [];
}
List<TableOuter> temp = [];
List list = json.decode(tableList);
if (list.length > 0) {
list.forEach((element) {
temp.add(TableOuter.fromJson2(element));
});
}
return temp;
}
//获取桌位列表
_getTableList({needLoading = true}) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
Map<String, String> params = {"sellerid": userModel.user.sellerid};
String tableSp = App.sp.getString('table_list');
if (tableSp == null) {
//接口请求桌位
tableOuterList = await _chooseTableModel.getTableList(context, params,
needLoading: needLoading);
} else {
tableOuterList = getSpTableList();
}
_chooseTableModel.tablesAll = [];
for (TableOuter item in tableOuterList) {
// if (item.name == "推荐") {
// itemModelList.remove(item);
// }
for (var item1 in item.list) {
item1.selected = false;
}
_chooseTableModel.tablesAll.addAll(item.list);
}
if (tableOuterList.isEmpty) {
// _chooseTableModel.pageState = PageState.Success;
// _chooseTableModel.notifyListeners();
} else {
_getReserveList(needLoading: needLoading);
}
// if (_chooseTableModel.pageState == PageState.Success) {
// }
}
//获取已预订列表
_getReserveList({needLoading = true}) async {
Map<String, String> params = {
... ... @@ -1354,15 +1414,6 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
}
});
});
// 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 = '晚餐';
// }
Map<String, List<FeastBoardSunModel>> banquetData = {};
banquetByDateDataTemp.forEach((element) {
... ... @@ -1400,26 +1451,26 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
}
});
List<String> tidsWidget = xuantaiData[xuantaiSelIndex]
.tableList
.map((element) => element.id)
.toList();
print(tidsWidget);
// List<String> tidsWidget = xuantaiData[xuantaiSelIndex]
// .tableList
// .map((element) => element.id)
// .toList();
// print(tidsWidget);
banquetData.forEach((key, value) {
value.forEach((element) {
//未丢单的宴会
if (!tidsWidget.contains(key)) {
//带过来的桌子,不能标记已预订,或者已经有宴会
Notebook notebook = Notebook();
notebook.tid = key;
notebook.status = '10'; //宴会类型
notebook.className = element.className;
notebook.id = element.rid;
notebook.rname = element.rname;
notebook.nick_name = element.nickName ?? element.account;
noteBooks.add(notebook);
}
// if (!tidsWidget.contains(key)) {
//带过来的桌子,不能标记已预订,或者已经有宴会
Notebook notebook = Notebook();
notebook.tid = key;
notebook.status = '10'; //宴会类型
notebook.className = element.className;
notebook.id = element.rid;
notebook.rname = element.rname;
notebook.nick_name = element.nickName ?? element.account;
noteBooks.add(notebook);
// }
print(noteBooks);
});
... ... @@ -1517,7 +1568,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
xuantaiData[xuantaiSelIndex].tableSum = 0;
xuantaiData[xuantaiSelIndex].tids.forEach((element) {
xuantaiData[xuantaiSelIndex].tableSum += element.numStr;
xuantaiData[xuantaiSelIndex].tableSum += int.parse(
element.numStr == '' || element.numStr == null
? '0'
: element.numStr);
});
setState(() {});
... ... @@ -1973,7 +2027,12 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
xuantaiData[xuantaiSelIndex].dateTimeShowxt =
createDateText(context, day);
});
_getReserveList();
if (xuantaiData[xuantaiSelIndex].startDate != '' &&
xuantaiData[xuantaiSelIndex].endDate != '' &&
xuantaiData[xuantaiSelIndex].tableList !=
null) {
_getTableList();
}
}
});
}),
... ... @@ -1986,9 +2045,9 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
return item.title;
}).toList(), (value) {
if (value != null) {
xuantaiData[xuantaiSelIndex].tids = [];
xuantaiData[xuantaiSelIndex].tableList = [];
xuantaiData[xuantaiSelIndex].tableSum = 0;
// xuantaiData[xuantaiSelIndex].tids = [];
// xuantaiData[xuantaiSelIndex].tableList = [];
// xuantaiData[xuantaiSelIndex].tableSum = 0;
setState(() {
xuantaiData[xuantaiSelIndex].cdSelIndex =
value.first;
... ... @@ -2038,6 +2097,14 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
'-' +
xuantaiData[xuantaiSelIndex].endDate;
setState(() {});
if (xuantaiData[xuantaiSelIndex].startDate != '' &&
xuantaiData[xuantaiSelIndex].endDate != '' &&
xuantaiData[xuantaiSelIndex].dateTimeShowxt !=
'请选择' &&
xuantaiData[xuantaiSelIndex].tableList !=
null) {
_getTableList();
}
}
});
// DialogUtil.showSelectCusmanDialog(
... ... @@ -2170,19 +2237,28 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
),
onChanged: (value) {
print('ggg');
print(value);
xuantaiData[xuantaiSelIndex]
.tableSum = 0;
for (Tids item
in xuantaiData[
xuantaiSelIndex]
.tids) {
item.numStr =
item.tableNumC.text;
xuantaiData[xuantaiSelIndex]
.tableSum +=
int.parse(item
.tableNumC.text);
.tableNumC
.text ==
''
? '0'
: item.tableNumC
.text);
setState(() {});
}
setState(() {});
},
onEditingComplete: () {
// print('fff');
... ... @@ -2221,23 +2297,42 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
.color_E6000000,
rTitle: "删除",
rCallback: () {
if (xuantaiData[
xuantaiSelIndex]
.tableSum >
0) {
if (xuantaiData[xuantaiSelIndex]
.tableSum >
0 &&
xuantaiData[xuantaiSelIndex]
.tids[index]
.tableNumC
.text !=
'') {
xuantaiData[xuantaiSelIndex]
.tableSum -=
int.parse(xuantaiData[
xuantaiSelIndex]
.tids[index]
.tableNumC
.text);
xuantaiSelIndex]
.tids[index]
.tableNumC
.text ==
''
? '0'
: xuantaiData[
xuantaiSelIndex]
.tids[index]
.tableNumC
.text);
}
xuantaiData[xuantaiSelIndex]
.tableList
.removeWhere((element) =>
element.id ==
xuantaiData[
xuantaiSelIndex]
.tids[index]
.tid);
xuantaiData[xuantaiSelIndex]
.tids
.removeAt(index);
print('eeeeeee');
setState(() {});
// _delGuestInfocDay(model.cday[index].id);
});
... ... @@ -2358,6 +2453,9 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
hmE: xuantaiData[xuantaiSelIndex]
.endDate,
source: '1',
ridFeast:
xuantaiData[xuantaiSelIndex]
.rid,
object: {
'object': xuantaiData[xuantaiSelIndex]
.tableList
... ... @@ -2373,28 +2471,58 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
.startDate,
hmE: xuantaiData[xuantaiSelIndex].endDate,
source: '1',
ridFeast:
xuantaiData[xuantaiSelIndex].rid,
canChoose: true,
);
}
if (temp == null) {
} else if (temp['object'].length == 0) {
} else {
print('----------');
xuantaiData[xuantaiSelIndex].tableList = [];
xuantaiData[xuantaiSelIndex].tids = [];
xuantaiData[xuantaiSelIndex].tableSum = 0;
setState(() {});
} else {
// xuantaiData[xuantaiSelIndex].tids = [];
xuantaiData[xuantaiSelIndex].tableList =
temp['object'];
xuantaiData[xuantaiSelIndex].tableSum = 0;
List<Tids> tidsTemp = [];
for (t.TableList item
in xuantaiData[xuantaiSelIndex]
.tableList) {
item.selected = true;
Tids tids = Tids();
tids.tid = item.id;
tids.name = item.name ?? "";
xuantaiData[xuantaiSelIndex]
.tids
.add(tids);
List<Tids> temp =
xuantaiData[xuantaiSelIndex]
.tids
.where((element) =>
element.tid == tids.tid)
.toList();
if (temp != null && temp.length > 0) {
tids.numStr = temp[0].tableNumC.text;
tids.tableNumC.text = temp[0].numStr;
}
tidsTemp.add(tids);
}
xuantaiData[xuantaiSelIndex].tids =
tidsTemp;
xuantaiData[xuantaiSelIndex]
.tids
.forEach((element) {
xuantaiData[xuantaiSelIndex].tableSum +=
int.parse(element.numStr == '' ||
element.numStr == null
? '0'
: element.numStr);
});
setState(() {});
}
// }
... ... @@ -3557,7 +3685,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
total = sum + double.parse(costInfoModel.serviceC.text);
} else {
//选中百分比
if (int.parse(costInfoModel.serviceC.text) > 100) {
if (int.parse(costInfoModel.serviceC.text == ''
? '0'
: costInfoModel.serviceC.text) >
100) {
Utils.showToast('请输入小于100的数字');
return;
... ... @@ -3584,7 +3715,10 @@ class _FeastCreatePageState extends State<FeastCreatePage> {
total -= double.parse(costInfoModel.discountC.text);
} else {
//选中百分比
if (int.parse(costInfoModel.discountC.text) > 100) {
if (int.parse(costInfoModel.discountC.text == ''
? '0'
: costInfoModel.discountC.text) >
100) {
Utils.showToast('请输入小于100的数字');
return;
... ...
... ... @@ -143,14 +143,15 @@ class NavigatorUtil {
String hmS,
String hmE,
String source,
String tid = ''}) {
String tid = '',
String ridFeast}) {
if (object != null) {
return _navigateTo(context,
"${Routes.select_table_f}?rid=$rid&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}&hmS=$hmS&hmE=$hmE&source=$source");
"${Routes.select_table_f}?rid=$rid&ridFeast=$ridFeast&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&object=${FluroConvertUtils.object2string(object)}&hmS=$hmS&hmE=$hmE&source=$source");
}
// object = {'object': [], "tid": ''};
return _navigateTo(context,
"${Routes.select_table_f}?rid=$rid&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&hmS=$hmS&hmE=$hmE&source=$source");
"${Routes.select_table_f}?rid=$rid&ridFeast=$ridFeast&tid=$tid&dateTime=$dateTime&fromPage=$fromPage&ddate_slot=$ddate_slot&canChoose=$canChoose&hmS=$hmS&hmE=$hmE&source=$source");
}
/// 邀请函
... ...
... ... @@ -390,6 +390,8 @@ var handleSelectTableFHandler = new Handler(
}
}
String ridFeast = params["ridFeast"].first;
// return SelectTablePage(rid, dateTime, ddate_slot,canChoose: canChoose);
return ChangeNotifierProvider<ChooseTableModel>(
create: (_) => ChooseTableModel(),
... ... @@ -400,7 +402,8 @@ var handleSelectTableFHandler = new Handler(
tid: tid,
hmS: hmS,
hmE: hmE,
source: source));
source: source,
ridFeast: ridFeast));
});
// 跳转到照片管理的选择桌位_方硕新修改的页面
... ... @@ -1545,15 +1548,16 @@ var feastCreatePageHandle = new Handler(
return ChangeNotifierProvider<FeastModel>(
create: (_) => FeastModel(),
child: ChangeNotifierProvider<ChooseTableModel>(
create: (_) => ChooseTableModel(),
child: FeastCreatePage(
banquetDetail: banquetDetail, isCreate: isCreate, rid: rid)));
create: (_) => ChooseTableModel(),
child: FeastCreatePage(
banquetDetail: banquetDetail, isCreate: isCreate, rid: rid)));
}
return ChangeNotifierProvider<FeastModel>(
create: (_) => FeastModel(),
child:ChangeNotifierProvider<ChooseTableModel>(
create: (_) => ChooseTableModel(),
child: FeastCreatePage(banquetDetail: banquetDetail, isCreate: isCreate)));
child: ChangeNotifierProvider<ChooseTableModel>(
create: (_) => ChooseTableModel(),
child: FeastCreatePage(
banquetDetail: banquetDetail, isCreate: isCreate)));
});
///宴会----添加定金
... ...
... ... @@ -5922,7 +5922,7 @@ class DialogUtil {
});
}
static showPickerDurationSelect(BuildContext context) async {
static showPickerDurationSelect(BuildContext context) async {
final range = <DateTime>[
DateTime(0, 1, 1, 8, 30),
DateTime(0, 1, 1, 14, 30)
... ... @@ -6011,6 +6011,7 @@ class DialogUtil {
String cancelText = '取消'}) {
return Picker(
// changeToFirst: true,
looping: true,
selecteds: selecteds,
adapter: PickerDataAdapter<String>(pickerdata: data),
height: ScreenUtil().setWidth(480),
... ... @@ -7150,7 +7151,9 @@ class DialogUtil {
color: MyColours.color_E6000000)),
onPressed: () {
Navigator.of(context).pop();
lCallback();
if (lCallback != null) {
lCallback();
}
},
),
CupertinoDialogAction(
... ...