|
|
|
|
@ -4,10 +4,12 @@ import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:mc_common_app/classes/consts.dart';
|
|
|
|
|
import 'package:mc_common_app/extensions/int_extensions.dart';
|
|
|
|
|
import 'package:mc_common_app/extensions/string_extensions.dart';
|
|
|
|
|
import 'package:mc_common_app/main.dart';
|
|
|
|
|
import 'package:mc_common_app/models/appointments_models/schedule_model.dart';
|
|
|
|
|
import 'package:mc_common_app/theme/colors.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/date_helper.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/navigator.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/common_widgets/app_bar.dart';
|
|
|
|
|
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
|
|
|
|
|
@ -26,7 +28,6 @@ class SchedulesListPage extends StatefulWidget {
|
|
|
|
|
class _SchedulesListPageState extends State<SchedulesListPage> {
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
// TODO: implement initState
|
|
|
|
|
super.initState();
|
|
|
|
|
context.read<ScheduleVM>().getSchedules(widget.branchId ?? "");
|
|
|
|
|
}
|
|
|
|
|
@ -56,16 +57,30 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: value.schedule!.data![index]
|
|
|
|
|
.scheduleName
|
|
|
|
|
.toString()
|
|
|
|
|
.toText(
|
|
|
|
|
child: value.schedule!.data![index].scheduleName.toString().toText(
|
|
|
|
|
fontSize: 16,
|
|
|
|
|
isBold: true,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
IconButton(
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
value.setScheduleInactive(value.schedule!.data![index].id!, value.schedule!.data![index].serviceProviderBranchId!);
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
// if (res.messageStatus == 1) {
|
|
|
|
|
// Utils.showToast(
|
|
|
|
|
// LocaleKeys.branch_deleted.tr());
|
|
|
|
|
// model.setState(ViewState.idle);
|
|
|
|
|
// } else {
|
|
|
|
|
// Utils.showToast(res.message ?? "");
|
|
|
|
|
// }
|
|
|
|
|
},
|
|
|
|
|
icon: const Icon(Icons.delete),
|
|
|
|
|
color: Colors.red,
|
|
|
|
|
),
|
|
|
|
|
Padding(
|
|
|
|
|
padding: const EdgeInsets.all(4.0),
|
|
|
|
|
child: SvgPicture.asset(
|
|
|
|
|
@ -74,68 +89,28 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
|
|
|
|
|
height: 16,
|
|
|
|
|
),
|
|
|
|
|
).onPress(() {
|
|
|
|
|
value.schedule!.data![index]
|
|
|
|
|
.branchId = widget.branchId ?? "";
|
|
|
|
|
navigateWithName(context,
|
|
|
|
|
ProviderAppRoutes.addSchedule,
|
|
|
|
|
arguments:
|
|
|
|
|
value.schedule!.data![index]);
|
|
|
|
|
value.schedule!.data![index].branchId = widget.branchId ?? "";
|
|
|
|
|
navigateWithName(context, ProviderAppRoutes.addSchedule, arguments: value.schedule!.data![index]);
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
crossAxisAlignment:
|
|
|
|
|
CrossAxisAlignment.center,
|
|
|
|
|
),
|
|
|
|
|
12.height,
|
|
|
|
|
showItem(
|
|
|
|
|
"Start Date:",
|
|
|
|
|
DateHelper.formatAsDayMonthYear(value
|
|
|
|
|
.schedule!.data![index].fromDate)),
|
|
|
|
|
showItem(
|
|
|
|
|
"End Date:",
|
|
|
|
|
DateHelper.formatAsDayMonthYear(value
|
|
|
|
|
.schedule!.data![index].toDate)),
|
|
|
|
|
showItem(
|
|
|
|
|
"Off Days:",
|
|
|
|
|
DateHelper.formatAsDayMonthYear(value
|
|
|
|
|
.schedule!.data![index].fromDate)),
|
|
|
|
|
showItem(
|
|
|
|
|
"Shift Start Time:",
|
|
|
|
|
value.schedule!.data![index]
|
|
|
|
|
.startTime ??
|
|
|
|
|
""),
|
|
|
|
|
showItem(
|
|
|
|
|
"Shift End Time:",
|
|
|
|
|
value.schedule!.data![index]
|
|
|
|
|
.startTime ??
|
|
|
|
|
""),
|
|
|
|
|
showItem(
|
|
|
|
|
"Slots Time:",
|
|
|
|
|
value.schedule!.data![index]
|
|
|
|
|
.slotDurationMinute
|
|
|
|
|
.toString() +
|
|
|
|
|
" Mins"),
|
|
|
|
|
showItem(
|
|
|
|
|
"Appointments Per Slot:",
|
|
|
|
|
value.schedule!.data![index]
|
|
|
|
|
.perSlotAppointment
|
|
|
|
|
.toString()),
|
|
|
|
|
showItem("Off Days",
|
|
|
|
|
offDays(value.schedule!.data![index])),
|
|
|
|
|
showItem("Start Date:", DateHelper.formatAsDayMonthYear(value.schedule!.data![index].fromDate)),
|
|
|
|
|
showItem("End Date:", DateHelper.formatAsDayMonthYear(value.schedule!.data![index].toDate)),
|
|
|
|
|
showItem("Off Days:", DateHelper.formatAsDayMonthYear(value.schedule!.data![index].fromDate)),
|
|
|
|
|
showItem("Shift Start Time:", value.schedule!.data![index].startTime ?? ""),
|
|
|
|
|
showItem("Shift End Time:", value.schedule!.data![index].startTime ?? ""),
|
|
|
|
|
showItem("Slots Time:", value.schedule!.data![index].slotDurationMinute.toString() + " Mins"),
|
|
|
|
|
showItem("Appointments Per Slot:", value.schedule!.data![index].perSlotAppointment.toString()),
|
|
|
|
|
showItem("Off Days", offDays(value.schedule!.data![index])),
|
|
|
|
|
12.height,
|
|
|
|
|
"Services:".toText(
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
isBold: true,
|
|
|
|
|
color: MyColors.lightTextColor),
|
|
|
|
|
"Services:".toText(fontSize: 12, isBold: true, color: MyColors.lightTextColor),
|
|
|
|
|
Column(
|
|
|
|
|
crossAxisAlignment:
|
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
|
children: value.schedule!.data![index]
|
|
|
|
|
.scheduleServices!
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: value.schedule!.data![index].scheduleServices!
|
|
|
|
|
.map(
|
|
|
|
|
(element) => Container(
|
|
|
|
|
child: element.serviceDescription
|
|
|
|
|
.toString()
|
|
|
|
|
.toText(
|
|
|
|
|
child: element.serviceDescription.toString().toText(
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
isBold: true,
|
|
|
|
|
),
|
|
|
|
|
@ -144,11 +119,9 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
|
|
|
|
|
.toList(),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
).toWhiteContainer(
|
|
|
|
|
width: double.infinity, allPading: 12);
|
|
|
|
|
).toWhiteContainer(width: double.infinity, allPading: 12);
|
|
|
|
|
},
|
|
|
|
|
separatorBuilder:
|
|
|
|
|
(BuildContext context, int index) {
|
|
|
|
|
separatorBuilder: (BuildContext context, int index) {
|
|
|
|
|
return 12.height;
|
|
|
|
|
},
|
|
|
|
|
padding: const EdgeInsets.all(20),
|
|
|
|
|
@ -162,8 +135,7 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
|
|
|
|
|
maxWidth: double.infinity,
|
|
|
|
|
margin: const EdgeInsets.all(20),
|
|
|
|
|
onPressed: () {
|
|
|
|
|
navigateWithName(context, ProviderAppRoutes.addSchedule,
|
|
|
|
|
arguments: ScheduleData(branchId: widget.branchId ?? ""));
|
|
|
|
|
navigateWithName(context, ProviderAppRoutes.addSchedule, arguments: ScheduleData(branchId: widget.branchId ?? ""));
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
@ -175,8 +147,7 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
|
|
|
|
|
String offDays(ScheduleData scheduleData) {
|
|
|
|
|
String offDays = "";
|
|
|
|
|
for (int i = 0; i < scheduleData.weeklyOffDays!.length; i++) {
|
|
|
|
|
offDays = offDays +
|
|
|
|
|
initDaysList[scheduleData.weeklyOffDays![i].dayNumber! - 1].title;
|
|
|
|
|
offDays = offDays + initDaysList[scheduleData.weeklyOffDays![i].dayNumber! - 1].title;
|
|
|
|
|
if (i != scheduleData.weeklyOffDays!.length - 1) {
|
|
|
|
|
offDays = offDays + " , ";
|
|
|
|
|
}
|
|
|
|
|
@ -187,8 +158,7 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
|
|
|
|
|
Widget showItem(String title, String value) {
|
|
|
|
|
return Row(
|
|
|
|
|
children: [
|
|
|
|
|
title.toText(
|
|
|
|
|
fontSize: 12, isBold: true, color: MyColors.lightTextColor),
|
|
|
|
|
title.toText(fontSize: 12, isBold: true, color: MyColors.lightTextColor),
|
|
|
|
|
4.width,
|
|
|
|
|
value.toText(fontSize: 12, isBold: true),
|
|
|
|
|
],
|
|
|
|
|
|