|
|
|
@ -1,4 +1,5 @@
|
|
|
|
import 'dart:async';
|
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
import 'dart:developer';
|
|
|
|
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';
|
|
|
|
@ -35,6 +36,8 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
|
|
|
|
|
|
|
|
late ScheduleData scheduleData;
|
|
|
|
late ScheduleData scheduleData;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int? scheduleID;
|
|
|
|
|
|
|
|
|
|
|
|
setEditData() {
|
|
|
|
setEditData() {
|
|
|
|
name = scheduleData.scheduleName ?? "";
|
|
|
|
name = scheduleData.scheduleName ?? "";
|
|
|
|
startDate = DateHelper.formatAsYearMonthDay(scheduleData.fromDate ?? DateTime.now());
|
|
|
|
startDate = DateHelper.formatAsYearMonthDay(scheduleData.fromDate ?? DateTime.now());
|
|
|
|
@ -107,7 +110,9 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
schedulevm.selectedServicesItems = [];
|
|
|
|
schedulevm.selectedServicesItems = [];
|
|
|
|
schedulevm.selectedDaysItems = [];
|
|
|
|
schedulevm.selectedDaysItems = [];
|
|
|
|
if (scheduleData.id != null) {
|
|
|
|
if (scheduleData.id != null) {
|
|
|
|
|
|
|
|
scheduleID = scheduleData.id;
|
|
|
|
setEditData();
|
|
|
|
setEditData();
|
|
|
|
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -115,7 +120,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return Scaffold(
|
|
|
|
return Scaffold(
|
|
|
|
appBar: CustomAppBar(title: LocaleKeys.createGroupServices.tr()),
|
|
|
|
appBar: CustomAppBar(title: scheduleID == null ? LocaleKeys.createGroupServices.tr() : LocaleKeys.updateGroupServices.tr()),
|
|
|
|
body: SizedBox(
|
|
|
|
body: SizedBox(
|
|
|
|
width: double.infinity,
|
|
|
|
width: double.infinity,
|
|
|
|
child: Consumer<ScheduleVM>(
|
|
|
|
child: Consumer<ScheduleVM>(
|
|
|
|
@ -298,7 +303,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
ShowFillButton(
|
|
|
|
ShowFillButton(
|
|
|
|
title: LocaleKeys.create.tr(),
|
|
|
|
title: scheduleID == null ? LocaleKeys.create.tr() : LocaleKeys.update.tr(),
|
|
|
|
maxWidth: double.infinity,
|
|
|
|
maxWidth: double.infinity,
|
|
|
|
margin: const EdgeInsets.all(20),
|
|
|
|
margin: const EdgeInsets.all(20),
|
|
|
|
onPressed: () {
|
|
|
|
onPressed: () {
|
|
|
|
@ -353,12 +358,33 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
createSchedule(BuildContext context, ScheduleVM scheduleVM) async {
|
|
|
|
createSchedule(BuildContext context, ScheduleVM scheduleVM) async {
|
|
|
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
List<int> services = [];
|
|
|
|
|
|
|
|
for (var element in scheduleVM.selectedServicesItems) {
|
|
|
|
|
|
|
|
services.add(element.id);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var map1 = {
|
|
|
|
|
|
|
|
"serviceProviderServiceID": services,
|
|
|
|
|
|
|
|
"appointmentType": selectedScheduleLocationDrop.id,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GenericRespModel respModel = await scheduleVM.checkServiceGroupInBranchSchedule(map1);
|
|
|
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log("respModel: ${respModel.data}");
|
|
|
|
|
|
|
|
if (respModel.messageStatus == 2) {
|
|
|
|
|
|
|
|
Utils.showToast(respModel.message ?? "");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
List<int> days = [];
|
|
|
|
List<int> days = [];
|
|
|
|
for (var element in scheduleVM.selectedDaysItems) {
|
|
|
|
for (var element in scheduleVM.selectedDaysItems) {
|
|
|
|
days.add(element.id);
|
|
|
|
days.add(element.id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//TODO: needs to verify with Zahoor about appointment type while creating Schedule
|
|
|
|
|
|
|
|
var map = {
|
|
|
|
var map = {
|
|
|
|
"scheduleName": name,
|
|
|
|
"scheduleName": name,
|
|
|
|
"serviceProviderBranchID": scheduleData.branchId,
|
|
|
|
"serviceProviderBranchID": scheduleData.branchId,
|
|
|
|
@ -377,10 +403,6 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
GenericRespModel scheduleResponse = await scheduleVM.createSchedule(map);
|
|
|
|
GenericRespModel scheduleResponse = await scheduleVM.createSchedule(map);
|
|
|
|
|
|
|
|
|
|
|
|
if (scheduleResponse.messageStatus == 1) {
|
|
|
|
if (scheduleResponse.messageStatus == 1) {
|
|
|
|
List<int> services = [];
|
|
|
|
|
|
|
|
for (var element in scheduleVM.selectedServicesItems) {
|
|
|
|
|
|
|
|
services.add(element.id);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var map1 = {
|
|
|
|
var map1 = {
|
|
|
|
"branchAppointmentScheduleID": scheduleResponse.data,
|
|
|
|
"branchAppointmentScheduleID": scheduleResponse.data,
|
|
|
|
"serviceProviderServiceID": services,
|
|
|
|
"serviceProviderServiceID": services,
|
|
|
|
@ -402,11 +424,16 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
Utils.showToast(scheduleResponse.message ?? "");
|
|
|
|
Utils.showToast(scheduleResponse.message ?? "");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
|
|
Utils.showToast(e.toString());
|
|
|
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
updateSchedule(BuildContext context, ScheduleVM model) async {
|
|
|
|
updateSchedule(BuildContext context, ScheduleVM scheduleVM) async {
|
|
|
|
|
|
|
|
try {
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var map = {
|
|
|
|
var map = {
|
|
|
|
@ -425,19 +452,20 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
Utils.showLoading(context);
|
|
|
|
GenericRespModel scheduleResponse = await model.updateSchedule(map);
|
|
|
|
GenericRespModel scheduleResponse = await scheduleVM.updateSchedule(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 = {
|
|
|
|
"branchAppointmentScheduleID": scheduleData.id,
|
|
|
|
"branchAppointmentScheduleID": scheduleData.id,
|
|
|
|
"serviceProviderServiceID": services,
|
|
|
|
"serviceProviderServiceID": services,
|
|
|
|
"serviceGroupDescription": "string",
|
|
|
|
"serviceGroupDescription": "string",
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
GenericRespModel servicesResponse = await model.updateServicesInSchedule(map1);
|
|
|
|
GenericRespModel servicesResponse = await scheduleVM.updateServicesInSchedule(map1);
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
if (servicesResponse.messageStatus == 1) {
|
|
|
|
if (servicesResponse.messageStatus == 1) {
|
|
|
|
Utils.showToast(servicesResponse.message ?? "Schedule Successfully Updated");
|
|
|
|
Utils.showToast(servicesResponse.message ?? "Schedule Successfully Updated");
|
|
|
|
@ -450,5 +478,9 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
Utils.showToast(scheduleResponse.message ?? LocaleKeys.somethingWrong.tr());
|
|
|
|
Utils.showToast(scheduleResponse.message ?? LocaleKeys.somethingWrong.tr());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
|
|
Utils.showToast(e.toString());
|
|
|
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|