|
|
|
@ -1,5 +1,4 @@
|
|
|
|
import 'dart:async';
|
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
|
|
|
|
import 'package:car_provider_app/view_models/schedule_view_model.dart';
|
|
|
|
import 'package:car_provider_app/view_models/schedule_view_model.dart';
|
|
|
|
import 'package:car_provider_app/views/branch_management/schedule/widgets/chips_picker_item.dart';
|
|
|
|
import 'package:car_provider_app/views/branch_management/schedule/widgets/chips_picker_item.dart';
|
|
|
|
import 'package:car_provider_app/views/branch_management/schedule/widgets/select_days_sheet.dart';
|
|
|
|
import 'package:car_provider_app/views/branch_management/schedule/widgets/select_days_sheet.dart';
|
|
|
|
@ -8,7 +7,6 @@ import 'package:flutter/material.dart';
|
|
|
|
import 'package:mc_common_app/extensions/int_extensions.dart';
|
|
|
|
import 'package:mc_common_app/extensions/int_extensions.dart';
|
|
|
|
import 'package:mc_common_app/extensions/string_extensions.dart';
|
|
|
|
import 'package:mc_common_app/extensions/string_extensions.dart';
|
|
|
|
import 'package:mc_common_app/generated/locale_keys.g.dart';
|
|
|
|
import 'package:mc_common_app/generated/locale_keys.g.dart';
|
|
|
|
import 'package:mc_common_app/main.dart';
|
|
|
|
|
|
|
|
import 'package:mc_common_app/models/appointments_models/schedule_model.dart';
|
|
|
|
import 'package:mc_common_app/models/appointments_models/schedule_model.dart';
|
|
|
|
import 'package:mc_common_app/models/general_models/generic_resp_model.dart';
|
|
|
|
import 'package:mc_common_app/models/general_models/generic_resp_model.dart';
|
|
|
|
import 'package:mc_common_app/theme/colors.dart';
|
|
|
|
import 'package:mc_common_app/theme/colors.dart';
|
|
|
|
@ -17,6 +15,7 @@ import 'package:mc_common_app/utils/navigator.dart';
|
|
|
|
import 'package:mc_common_app/utils/utils.dart';
|
|
|
|
import 'package:mc_common_app/utils/utils.dart';
|
|
|
|
import 'package:mc_common_app/widgets/button/show_fill_button.dart';
|
|
|
|
import 'package:mc_common_app/widgets/button/show_fill_button.dart';
|
|
|
|
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
|
|
|
|
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
|
|
|
|
|
|
|
|
import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
|
|
|
|
import 'package:mc_common_app/widgets/txt_field.dart';
|
|
|
|
import 'package:mc_common_app/widgets/txt_field.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:mc_common_app/widgets/bottom_sheet.dart';
|
|
|
|
import 'package:mc_common_app/widgets/bottom_sheet.dart';
|
|
|
|
@ -30,7 +29,7 @@ class AddSchedulesPage extends StatefulWidget {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
late ScheduleVM mModel;
|
|
|
|
late ScheduleVM schedulevm;
|
|
|
|
|
|
|
|
|
|
|
|
String name = "", startDate = "", endDate = "", startTime = "", endTime = "", slotsTime = "", appointmentPerSlot = "", servicesGroupID = "";
|
|
|
|
String name = "", startDate = "", endDate = "", startTime = "", endTime = "", slotsTime = "", appointmentPerSlot = "", servicesGroupID = "";
|
|
|
|
|
|
|
|
|
|
|
|
@ -42,36 +41,71 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
endDate = DateHelper.formatAsYearMonthDay(scheduleData.toDate ?? DateTime.now());
|
|
|
|
endDate = DateHelper.formatAsYearMonthDay(scheduleData.toDate ?? DateTime.now());
|
|
|
|
startTime = scheduleData.startTime ?? "";
|
|
|
|
startTime = scheduleData.startTime ?? "";
|
|
|
|
endTime = scheduleData.endTime ?? "";
|
|
|
|
endTime = scheduleData.endTime ?? "";
|
|
|
|
slotsTime = scheduleData.slotDurationMinute.toString();
|
|
|
|
if (scheduleData.slotDurationMinute != null) {
|
|
|
|
|
|
|
|
int temp = scheduleData.slotDurationMinute!;
|
|
|
|
|
|
|
|
int index = minutesDrop.indexWhere((element) => element.id == temp);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (index != -1) {
|
|
|
|
|
|
|
|
slotTimeId = temp;
|
|
|
|
|
|
|
|
slotsTime = "$temp Minutes";
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
temp = 20;
|
|
|
|
|
|
|
|
slotTimeId = temp;
|
|
|
|
|
|
|
|
slotsTime = "$temp Minutes";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
appointmentPerSlot = scheduleData.perSlotAppointment.toString();
|
|
|
|
appointmentPerSlot = scheduleData.perSlotAppointment.toString();
|
|
|
|
|
|
|
|
|
|
|
|
// mModel.selectedServicesItems.clear();
|
|
|
|
// mModel.selectedServicesItems.clear();
|
|
|
|
scheduleData.scheduleServices?.forEach((element) {
|
|
|
|
scheduleData.scheduleServices?.forEach((element) {
|
|
|
|
print("Services Elements");
|
|
|
|
schedulevm.selectedServicesItems.add(PickerItem(id: element.serviceProviderServiceId ?? 0, title: element.serviceDescription ?? ""));
|
|
|
|
print(element);
|
|
|
|
|
|
|
|
mModel.selectedServicesItems.add(PickerItem(id: element.serviceProviderServiceId ?? 0, title: element.serviceDescription ?? ""));
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
logger.d(mModel.selectedServicesItems.first.id);
|
|
|
|
schedulevm.selectedDaysItems.clear();
|
|
|
|
mModel.selectedDaysItems.clear();
|
|
|
|
|
|
|
|
scheduleData.weeklyOffDays?.forEach((element) {
|
|
|
|
scheduleData.weeklyOffDays?.forEach((element) {
|
|
|
|
for (var daysElement in initDaysList) {
|
|
|
|
for (var daysElement in initDaysList) {
|
|
|
|
if (element.dayNumber == daysElement.id) {
|
|
|
|
if (element.dayNumber == daysElement.id) {
|
|
|
|
daysElement.isSelected = true;
|
|
|
|
daysElement.isSelected = true;
|
|
|
|
mModel.selectedDaysItems.add(daysElement);
|
|
|
|
schedulevm.selectedDaysItems.add(daysElement);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (scheduleData.appointmentType != null) {
|
|
|
|
|
|
|
|
if (scheduleData.appointmentType == 1) {
|
|
|
|
|
|
|
|
selectedScheduleLocationDrop = DropValue(1, 'Company Location', '');
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
selectedScheduleLocationDrop = DropValue(1, 'Company Location', '');
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int slotTimeId = 10;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DropValue> minutesDrop = [
|
|
|
|
|
|
|
|
DropValue(10, '10 Minutes', ''),
|
|
|
|
|
|
|
|
DropValue(15, '15 Minutes', ''),
|
|
|
|
|
|
|
|
DropValue(20, '20 Minutes', ''),
|
|
|
|
|
|
|
|
DropValue(25, '25 Minutes', ''),
|
|
|
|
|
|
|
|
DropValue(30, '30 Minutes', ''),
|
|
|
|
|
|
|
|
DropValue(50, '50 Minutes', ''),
|
|
|
|
|
|
|
|
DropValue(60, '60 Minutes', ''),
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
DropValue selectedScheduleLocationDrop = DropValue(-1, '', '');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<DropValue> scheduleLocationIdDrop = [
|
|
|
|
|
|
|
|
DropValue(1, 'Company Location', ''),
|
|
|
|
|
|
|
|
DropValue(2, 'Customer Location', ''),
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
|
|
|
super.initState();
|
|
|
|
scheduleMicrotask(() {
|
|
|
|
scheduleMicrotask(() {
|
|
|
|
mModel = context.read<ScheduleVM>();
|
|
|
|
schedulevm = context.read<ScheduleVM>();
|
|
|
|
scheduleData = ModalRoute.of(context)!.settings.arguments as ScheduleData;
|
|
|
|
scheduleData = ModalRoute.of(context)!.settings.arguments as ScheduleData;
|
|
|
|
mModel.getAllServices(scheduleData.branchId, scheduleData);
|
|
|
|
schedulevm.getAllServices(scheduleData.branchId, scheduleData);
|
|
|
|
mModel.selectedServicesItems = [];
|
|
|
|
schedulevm.selectedServicesItems = [];
|
|
|
|
mModel.selectedDaysItems = [];
|
|
|
|
schedulevm.selectedDaysItems = [];
|
|
|
|
if (scheduleData.id != null) {
|
|
|
|
if (scheduleData.id != null) {
|
|
|
|
setEditData();
|
|
|
|
setEditData();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -81,13 +115,11 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return Scaffold(
|
|
|
|
return Scaffold(
|
|
|
|
appBar: const CustomAppBar(
|
|
|
|
appBar: CustomAppBar(title: LocaleKeys.createGroupServices.tr()),
|
|
|
|
title: "Create Schedules",
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
body: SizedBox(
|
|
|
|
body: SizedBox(
|
|
|
|
width: double.infinity,
|
|
|
|
width: double.infinity,
|
|
|
|
child: Consumer<ScheduleVM>(
|
|
|
|
child: Consumer<ScheduleVM>(
|
|
|
|
builder: (_, ScheduleVM model, child) {
|
|
|
|
builder: (_, ScheduleVM scheduleVM, child) {
|
|
|
|
return Column(
|
|
|
|
return Column(
|
|
|
|
children: [
|
|
|
|
children: [
|
|
|
|
Expanded(
|
|
|
|
Expanded(
|
|
|
|
@ -95,6 +127,16 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
padding: const EdgeInsets.all(20),
|
|
|
|
padding: const EdgeInsets.all(20),
|
|
|
|
child: Column(
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
children: [
|
|
|
|
|
|
|
|
if (scheduleVM.currentSelectedBranchName.isNotEmpty) ...[
|
|
|
|
|
|
|
|
TxtField(
|
|
|
|
|
|
|
|
isBackgroundEnabled: true,
|
|
|
|
|
|
|
|
isNeedClickAll: true,
|
|
|
|
|
|
|
|
hint: '',
|
|
|
|
|
|
|
|
value: scheduleVM.currentSelectedBranchName,
|
|
|
|
|
|
|
|
onTap: () {},
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
8.height,
|
|
|
|
|
|
|
|
],
|
|
|
|
TxtField(
|
|
|
|
TxtField(
|
|
|
|
hint: LocaleKeys.nameofSchedule.tr(),
|
|
|
|
hint: LocaleKeys.nameofSchedule.tr(),
|
|
|
|
value: name,
|
|
|
|
value: name,
|
|
|
|
@ -105,13 +147,13 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
8.height,
|
|
|
|
8.height,
|
|
|
|
ChipsPickerItem(
|
|
|
|
ChipsPickerItem(
|
|
|
|
hint: LocaleKeys.select_Services.tr(),
|
|
|
|
hint: LocaleKeys.select_Services.tr(),
|
|
|
|
itemsList: [...model.selectedServicesItems],
|
|
|
|
itemsList: [...scheduleVM.selectedServicesItems],
|
|
|
|
onClick: () {
|
|
|
|
onClick: () {
|
|
|
|
showMyBottomSheet(
|
|
|
|
showMyBottomSheet(
|
|
|
|
context,
|
|
|
|
context,
|
|
|
|
child: SelectServicesSheet(
|
|
|
|
child: SelectServicesSheet(
|
|
|
|
onSelectServices: () {
|
|
|
|
onSelectServices: () {
|
|
|
|
model.filterSelectedServices();
|
|
|
|
scheduleVM.filterSelectedServices();
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
@ -133,7 +175,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
firstDate: DateTime.now(),
|
|
|
|
firstDate: DateTime.now(),
|
|
|
|
);
|
|
|
|
);
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
model.refresh();
|
|
|
|
scheduleVM.refresh();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
8.height,
|
|
|
|
8.height,
|
|
|
|
@ -151,19 +193,19 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
firstDate: DateTime.now(),
|
|
|
|
firstDate: DateTime.now(),
|
|
|
|
);
|
|
|
|
);
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
model.refresh();
|
|
|
|
scheduleVM.refresh();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
8.height,
|
|
|
|
8.height,
|
|
|
|
ChipsPickerItem(
|
|
|
|
ChipsPickerItem(
|
|
|
|
hint: LocaleKeys.offDays.tr(),
|
|
|
|
hint: LocaleKeys.offDays.tr(),
|
|
|
|
itemsList: [...model.selectedDaysItems],
|
|
|
|
itemsList: [...scheduleVM.selectedDaysItems],
|
|
|
|
onClick: () {
|
|
|
|
onClick: () {
|
|
|
|
showMyBottomSheet(
|
|
|
|
showMyBottomSheet(
|
|
|
|
context,
|
|
|
|
context,
|
|
|
|
child: SelectDaysSheet(
|
|
|
|
child: SelectDaysSheet(
|
|
|
|
onSelected: (List<PickerItem> picked) {
|
|
|
|
onSelected: (List<PickerItem> picked) {
|
|
|
|
model.filterDays(picked);
|
|
|
|
scheduleVM.filterDays(picked);
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
@ -185,7 +227,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
onTap: () async {
|
|
|
|
onTap: () async {
|
|
|
|
startTime = await Utils.pickTime(context);
|
|
|
|
startTime = await Utils.pickTime(context);
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
model.refresh();
|
|
|
|
scheduleVM.refresh();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
@ -207,27 +249,25 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
initialTime: _startTime,
|
|
|
|
initialTime: _startTime,
|
|
|
|
);
|
|
|
|
);
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
|
|
model.refresh();
|
|
|
|
scheduleVM.refresh();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
8.height,
|
|
|
|
8.height,
|
|
|
|
TxtField(
|
|
|
|
Builder(
|
|
|
|
hint: LocaleKeys.slotsTime.tr(),
|
|
|
|
builder: (context) {
|
|
|
|
postfixWidget: Row(
|
|
|
|
return DropdownField(
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
(DropValue value) {
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
slotsTime = value.value;
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
slotTimeId = value.id;
|
|
|
|
children: [
|
|
|
|
},
|
|
|
|
"Min".toText(color: MyColors.lightTextColor),
|
|
|
|
list: minutesDrop,
|
|
|
|
],
|
|
|
|
dropdownValue: slotsTime.isNotEmpty ? DropValue(slotTimeId, slotsTime, "") : null,
|
|
|
|
),
|
|
|
|
hint: LocaleKeys.slotsTime.tr(),
|
|
|
|
keyboardType: TextInputType.number,
|
|
|
|
errorValue: '',
|
|
|
|
value: slotsTime,
|
|
|
|
);
|
|
|
|
onChanged: (v) {
|
|
|
|
|
|
|
|
slotsTime = v;
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
8.height,
|
|
|
|
8.height,
|
|
|
|
@ -239,6 +279,20 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
appointmentPerSlot = v;
|
|
|
|
appointmentPerSlot = v;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
|
|
|
|
8.height,
|
|
|
|
|
|
|
|
Builder(
|
|
|
|
|
|
|
|
builder: (context) {
|
|
|
|
|
|
|
|
return DropdownField(
|
|
|
|
|
|
|
|
(DropValue value) {
|
|
|
|
|
|
|
|
selectedScheduleLocationDrop = value;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
list: scheduleLocationIdDrop,
|
|
|
|
|
|
|
|
dropdownValue: selectedScheduleLocationDrop.id != -1 ? selectedScheduleLocationDrop : null,
|
|
|
|
|
|
|
|
hint: LocaleKeys.selectServiceLocation.tr(),
|
|
|
|
|
|
|
|
errorValue: '',
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
),
|
|
|
|
],
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
@ -248,11 +302,11 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
maxWidth: double.infinity,
|
|
|
|
maxWidth: double.infinity,
|
|
|
|
margin: const EdgeInsets.all(20),
|
|
|
|
margin: const EdgeInsets.all(20),
|
|
|
|
onPressed: () {
|
|
|
|
onPressed: () {
|
|
|
|
if (validation(model)) {
|
|
|
|
if (validation(scheduleVM)) {
|
|
|
|
if (scheduleData.id != null) {
|
|
|
|
if (scheduleData.id != null) {
|
|
|
|
updateSchedule(context, model);
|
|
|
|
updateSchedule(context, scheduleVM);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
createSchedule(context, model);
|
|
|
|
createSchedule(context, scheduleVM);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
@ -298,9 +352,9 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
return valid;
|
|
|
|
return valid;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
createSchedule(BuildContext context, ScheduleVM model) async {
|
|
|
|
createSchedule(BuildContext context, ScheduleVM scheduleVM) async {
|
|
|
|
List<int> days = [];
|
|
|
|
List<int> days = [];
|
|
|
|
for (var element in model.selectedDaysItems) {
|
|
|
|
for (var element in scheduleVM.selectedDaysItems) {
|
|
|
|
days.add(element.id);
|
|
|
|
days.add(element.id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -312,19 +366,19 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
"toDate": endDate,
|
|
|
|
"toDate": endDate,
|
|
|
|
"startTime": startTime,
|
|
|
|
"startTime": startTime,
|
|
|
|
"endTime": endTime,
|
|
|
|
"endTime": endTime,
|
|
|
|
"slotDurationMinute": slotsTime,
|
|
|
|
"slotDurationMinute": slotsTime.replaceFirst(' Minutes', ''),
|
|
|
|
"perSlotAppointment": appointmentPerSlot,
|
|
|
|
"perSlotAppointment": appointmentPerSlot,
|
|
|
|
"deliveryServiceType": 1,
|
|
|
|
"deliveryServiceType": 1,
|
|
|
|
"appointmentType": 1,
|
|
|
|
"appointmentType": selectedScheduleLocationDrop.id,
|
|
|
|
"weeklyOffDays": days
|
|
|
|
"weeklyOffDays": days
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
Utils.showLoading(context);
|
|
|
|
GenericRespModel scheduleResponse = await model.createSchedule(map);
|
|
|
|
GenericRespModel scheduleResponse = await scheduleVM.createSchedule(map);
|
|
|
|
|
|
|
|
|
|
|
|
if (scheduleResponse.messageStatus == 1) {
|
|
|
|
if (scheduleResponse.messageStatus == 1) {
|
|
|
|
List<int> services = [];
|
|
|
|
List<int> services = [];
|
|
|
|
for (var element in model.selectedServicesItems) {
|
|
|
|
for (var element in scheduleVM.selectedServicesItems) {
|
|
|
|
services.add(element.id);
|
|
|
|
services.add(element.id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var map1 = {
|
|
|
|
var map1 = {
|
|
|
|
@ -333,7 +387,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
"serviceGroupDescription": "string",
|
|
|
|
"serviceGroupDescription": "string",
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
GenericRespModel servicesResponse = await model.addServicesInSchedule(map1);
|
|
|
|
GenericRespModel servicesResponse = await scheduleVM.addServicesInSchedule(map1);
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
if (servicesResponse.messageStatus == 1) {
|
|
|
|
if (servicesResponse.messageStatus == 1) {
|
|
|
|
Utils.showToast("Successfully schedule created");
|
|
|
|
Utils.showToast("Successfully schedule created");
|
|
|
|
@ -363,11 +417,11 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
"toDate": endDate,
|
|
|
|
"toDate": endDate,
|
|
|
|
"startTime": startTime,
|
|
|
|
"startTime": startTime,
|
|
|
|
"endTime": endTime,
|
|
|
|
"endTime": endTime,
|
|
|
|
"slotDurationMinute": slotsTime,
|
|
|
|
"slotDurationMinute": slotsTime.replaceFirst(' Minutes', ''),
|
|
|
|
"perSlotAppointment": appointmentPerSlot,
|
|
|
|
"perSlotAppointment": appointmentPerSlot,
|
|
|
|
"deliveryServiceType": 1,
|
|
|
|
"deliveryServiceType": 1,
|
|
|
|
"weeklyOffDays": days,
|
|
|
|
"weeklyOffDays": days,
|
|
|
|
"appointmentType": scheduleData.appointmentType
|
|
|
|
"appointmentType": selectedScheduleLocationDrop.id,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|