@feedmepos/mf-hrm-portal 2.3.0-dev.9 → 2.3.1-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ApprovalCodeList-BDpxEJpC.js → ApprovalCodeList-CDU3yUHy.js} +7 -7
- package/dist/AuditLogList-BU11Q5sF.js +1950 -0
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BBK2gl7r.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BjHwyaXu.js} +2 -2
- package/dist/{EmployeeList-C8cbVcmY.js → EmployeeList-BqzXg3uA.js} +255 -266
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-Clh43Y-8.js} +6 -6
- package/dist/{GrantUserList-zul0_Dlm.js → GrantUserList-Cw8RkFqf.js} +8 -8
- package/dist/{Main-Cjo4FMZZ.js → Main-BxcRbcce.js} +5 -5
- package/dist/{Main-5TsFTFpc.js → Main-CL-ysWRu.js} +8 -8
- package/dist/{Main-DSr9KbjT.js → Main-Dlar77Zq.js} +11 -11
- package/dist/{PermissionSetList-CDhiiu37.js → PermissionSetList-_8aBzGy7.js} +19 -18
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DoK944l0.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CNgtAtYH.js} +896 -896
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-BVz6q3HE.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js} +1 -1
- package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
- package/dist/{RoleList-DEbOPQD_.js → RoleList-C3n_zOB3.js} +21 -20
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CnrbCggg.js +544 -0
- package/dist/ScheduleGeneralPage-DGHKW_ww.js +811 -0
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-AfTAGsh1.js +2556 -0
- package/dist/SchedulePage-UzDPRldO.js +19458 -0
- package/dist/SchedulePositionPage-RHETW36P.js +282 -0
- package/dist/{SelectFilter-CG13h83-.js → SelectFilter-CeBV_Kug.js} +1 -1
- package/dist/{TeamMemberList-DpCGqHCk.js → TeamMemberList-B-qR7VS3.js} +27 -27
- package/dist/{TimesheetList-B7HAC5zS.js → TimesheetList-BqRIZBt1.js} +52 -53
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BGD6m5M-.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-oIBUAjtv.js} +3 -3
- package/dist/{app-Lh0cqgHy.js → app-DFL6Nv_p.js} +10822 -3893
- package/dist/app.js +1 -1
- package/dist/{approval-code-DHsUgc4K.js → approval-code-BXUiojPH.js} +1 -1
- package/dist/{dayjs.min-joq4stsa.js → dayjs.min-CH-gVmsz.js} +1 -1
- package/dist/{employee-BPmp9c6i.js → employee-3xpIjR6i.js} +51 -47
- package/dist/{grant-user-qzKHFTro.js → grant-user-CBJ3gEgW.js} +1 -1
- package/dist/{iteration-jvdTHQUx.js → iteration-D6wutq5U.js} +1 -1
- package/dist/{lodash-CIAEpr9s.js → lodash-D5kU1nPN.js} +1 -1
- package/dist/object-Dwyg2LgX.js +16 -0
- package/dist/{restaurant-BbYRA_IT.js → restaurant-D2mfKHaH.js} +44 -45
- package/dist/{role-Dd1TUMhn.js → role-B7nu6hH1.js} +2 -2
- package/dist/{rule-DmxI7qEY.js → rule-CMd6SL3n.js} +3 -3
- package/dist/src/api/audit-log/index.d.ts +4 -0
- package/dist/src/api/employee/index.d.ts +2 -2
- package/dist/src/api/schedule/index.d.ts +11 -1
- package/dist/src/components/layout/SchedulePromoBanner.vue.d.ts +2 -0
- package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
- package/dist/src/stores/employee.d.ts +12 -12
- package/dist/src/types/schedule.d.ts +1 -1
- package/dist/src/views/audit-log/constants.d.ts +9 -30
- package/dist/src/views/audit-log/locales/index.d.ts +488 -0
- package/dist/src/views/audit-log/pos-row.d.ts +27 -0
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +6 -2
- package/dist/src/views/scheduling/components/ScheduleAutoScheduleDoneArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +5 -0
- package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +1 -0
- package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +0 -1
- package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +1 -1
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +4 -3
- package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +5 -0
- package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +0 -1
- package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +1 -1
- package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +7 -5
- package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +2 -0
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +2 -1
- package/dist/src/views/scheduling/composables/remyPrompt.d.ts +4 -2
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +1 -1
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +4 -0
- package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +10 -0
- package/dist/src/views/scheduling/composables/schedule-cost.d.ts +5 -0
- package/dist/src/views/scheduling/composables/schedule-currency.d.ts +22 -0
- package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
- package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +13 -1
- package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
- package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +1 -1
- package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +9 -0
- package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +23 -0
- package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +3 -0
- package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +3 -1
- package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +30 -7
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +5 -11
- package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +0 -1
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +22 -13
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +58 -7
- package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +3 -10
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +13 -1
- package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +0 -1
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +16 -2
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +9 -2
- package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +14 -6
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +26 -4
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +3 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +0 -2
- package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +13 -12
- package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +28 -2
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +210 -14
- package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +11 -8
- package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +3 -1
- package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +6 -0
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -1
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +46 -0
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +29 -1
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +33 -4
- package/dist/src/views/scheduling/country-rules/index.d.ts +13 -4
- package/dist/src/views/scheduling/data.d.ts +17 -0
- package/dist/src/views/scheduling/locales/index.d.ts +6300 -0
- package/dist/src/views/scheduling/schedule-state.d.ts +236 -236
- package/dist/src/views/scheduling/schedule-store.d.ts +29 -7
- package/dist/src/views/scheduling/types.d.ts +8 -0
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-BoLkvkE2.js → useAppStore-DZCdxlCd.js} +1 -1
- package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
- package/dist/{useLoading-Ch1AUYT1.js → useLoading-Nygx2zn8.js} +1 -1
- package/dist/{useReportPermissions-DM3GOFCC.js → useReportPermissions-BcxIKxlF.js} +3 -3
- package/package.json +2 -2
- package/dist/AuditLogList-Dgwj1gz8.js +0 -1779
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Cx9jFgBS.js +0 -492
- package/dist/ScheduleGeneralPage-B8PWNsc2.js +0 -776
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-V1sZ_xhO.js +0 -2253
- package/dist/SchedulePage-ndLByVBl.js +0 -17785
- package/dist/SchedulePositionPage-Cuv4ydOK.js +0 -264
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
- package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
|
@@ -12,8 +12,8 @@ export declare const scheduleState: {
|
|
|
12
12
|
timeOff: {
|
|
13
13
|
type: "OFF_DAY" | "LEAVE";
|
|
14
14
|
status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
|
|
15
|
-
id: string;
|
|
16
15
|
employeeId: string;
|
|
16
|
+
id: string;
|
|
17
17
|
leaveType: "UNPAID" | "ANNUAL" | "MEDICAL" | "EMERGENCY" | null;
|
|
18
18
|
startDate: string;
|
|
19
19
|
endDate: string;
|
|
@@ -56,6 +56,64 @@ export declare const scheduleState: {
|
|
|
56
56
|
} | null;
|
|
57
57
|
headcount: number;
|
|
58
58
|
}[];
|
|
59
|
+
assignments: {
|
|
60
|
+
status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
|
|
61
|
+
date: string;
|
|
62
|
+
startTime: string;
|
|
63
|
+
endTime: string;
|
|
64
|
+
employeeId: string;
|
|
65
|
+
id: string;
|
|
66
|
+
position: {
|
|
67
|
+
positionId: string;
|
|
68
|
+
positionName: string;
|
|
69
|
+
} | null;
|
|
70
|
+
breaks: ({
|
|
71
|
+
type: "DURATION";
|
|
72
|
+
minutes: number;
|
|
73
|
+
breakPayType: "PAID" | "UNPAID";
|
|
74
|
+
} | {
|
|
75
|
+
type: "TIME_RANGE";
|
|
76
|
+
breakPayType: "PAID" | "UNPAID";
|
|
77
|
+
startTime: string;
|
|
78
|
+
endTime: string;
|
|
79
|
+
})[];
|
|
80
|
+
updatedAt: string;
|
|
81
|
+
}[];
|
|
82
|
+
positions: {
|
|
83
|
+
id: string;
|
|
84
|
+
name: string;
|
|
85
|
+
}[];
|
|
86
|
+
employees: {
|
|
87
|
+
minHoursPerDay?: number | null | undefined;
|
|
88
|
+
overtime?: {
|
|
89
|
+
maxHoursPerMonth: number | null;
|
|
90
|
+
} | undefined;
|
|
91
|
+
workingHours?: {
|
|
92
|
+
minHoursPerDay: number | null;
|
|
93
|
+
maxHoursPerDay: number | null;
|
|
94
|
+
maxHoursPerWeek: number | null;
|
|
95
|
+
} | undefined;
|
|
96
|
+
employeeId: string;
|
|
97
|
+
name: string;
|
|
98
|
+
employmentType: "FULLTIME" | "PARTTIME";
|
|
99
|
+
wage: {
|
|
100
|
+
type: "HOURLY" | "MONTHLY";
|
|
101
|
+
amount: number;
|
|
102
|
+
};
|
|
103
|
+
primaryPosition: {
|
|
104
|
+
positionId: string;
|
|
105
|
+
positionName: string;
|
|
106
|
+
} | null;
|
|
107
|
+
secondaryPositions: {
|
|
108
|
+
positionId: string;
|
|
109
|
+
positionName: string;
|
|
110
|
+
}[];
|
|
111
|
+
availability: {
|
|
112
|
+
dayOfWeek: number;
|
|
113
|
+
start: string;
|
|
114
|
+
end: string;
|
|
115
|
+
}[];
|
|
116
|
+
}[];
|
|
59
117
|
settings: {
|
|
60
118
|
settingsConfigured?: boolean | undefined;
|
|
61
119
|
overtime: {
|
|
@@ -91,70 +149,12 @@ export declare const scheduleState: {
|
|
|
91
149
|
closed: boolean;
|
|
92
150
|
}[];
|
|
93
151
|
};
|
|
94
|
-
positions: {
|
|
95
|
-
id: string;
|
|
96
|
-
name: string;
|
|
97
|
-
}[];
|
|
98
|
-
employees: {
|
|
99
|
-
overtime?: {
|
|
100
|
-
maxHoursPerMonth: number | null;
|
|
101
|
-
} | undefined;
|
|
102
|
-
minHoursPerDay?: number | null | undefined;
|
|
103
|
-
workingHours?: {
|
|
104
|
-
minHoursPerDay: number | null;
|
|
105
|
-
maxHoursPerDay: number | null;
|
|
106
|
-
maxHoursPerWeek: number | null;
|
|
107
|
-
} | undefined;
|
|
108
|
-
name: string;
|
|
109
|
-
employeeId: string;
|
|
110
|
-
employmentType: "FULLTIME" | "PARTTIME";
|
|
111
|
-
wage: {
|
|
112
|
-
type: "HOURLY" | "MONTHLY";
|
|
113
|
-
amount: number;
|
|
114
|
-
};
|
|
115
|
-
primaryPosition: {
|
|
116
|
-
positionId: string;
|
|
117
|
-
positionName: string;
|
|
118
|
-
} | null;
|
|
119
|
-
secondaryPositions: {
|
|
120
|
-
positionId: string;
|
|
121
|
-
positionName: string;
|
|
122
|
-
}[];
|
|
123
|
-
availability: {
|
|
124
|
-
dayOfWeek: number;
|
|
125
|
-
start: string;
|
|
126
|
-
end: string;
|
|
127
|
-
}[];
|
|
128
|
-
}[];
|
|
129
|
-
assignments: {
|
|
130
|
-
status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
|
|
131
|
-
date: string;
|
|
132
|
-
startTime: string;
|
|
133
|
-
endTime: string;
|
|
134
|
-
id: string;
|
|
135
|
-
employeeId: string;
|
|
136
|
-
position: {
|
|
137
|
-
positionId: string;
|
|
138
|
-
positionName: string;
|
|
139
|
-
} | null;
|
|
140
|
-
breaks: ({
|
|
141
|
-
type: "DURATION";
|
|
142
|
-
minutes: number;
|
|
143
|
-
breakPayType: "PAID" | "UNPAID";
|
|
144
|
-
} | {
|
|
145
|
-
type: "TIME_RANGE";
|
|
146
|
-
breakPayType: "PAID" | "UNPAID";
|
|
147
|
-
startTime: string;
|
|
148
|
-
endTime: string;
|
|
149
|
-
})[];
|
|
150
|
-
updatedAt: string;
|
|
151
|
-
}[];
|
|
152
152
|
} | null, {
|
|
153
153
|
timeOff: {
|
|
154
154
|
type: "OFF_DAY" | "LEAVE";
|
|
155
155
|
status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
|
|
156
|
-
id: string;
|
|
157
156
|
employeeId: string;
|
|
157
|
+
id: string;
|
|
158
158
|
leaveType: "UNPAID" | "ANNUAL" | "MEDICAL" | "EMERGENCY" | null;
|
|
159
159
|
startDate: string;
|
|
160
160
|
endDate: string;
|
|
@@ -197,6 +197,64 @@ export declare const scheduleState: {
|
|
|
197
197
|
} | null;
|
|
198
198
|
headcount: number;
|
|
199
199
|
}[];
|
|
200
|
+
assignments: {
|
|
201
|
+
status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
|
|
202
|
+
date: string;
|
|
203
|
+
startTime: string;
|
|
204
|
+
endTime: string;
|
|
205
|
+
employeeId: string;
|
|
206
|
+
id: string;
|
|
207
|
+
position: {
|
|
208
|
+
positionId: string;
|
|
209
|
+
positionName: string;
|
|
210
|
+
} | null;
|
|
211
|
+
breaks: ({
|
|
212
|
+
type: "DURATION";
|
|
213
|
+
minutes: number;
|
|
214
|
+
breakPayType: "PAID" | "UNPAID";
|
|
215
|
+
} | {
|
|
216
|
+
type: "TIME_RANGE";
|
|
217
|
+
breakPayType: "PAID" | "UNPAID";
|
|
218
|
+
startTime: string;
|
|
219
|
+
endTime: string;
|
|
220
|
+
})[];
|
|
221
|
+
updatedAt: string;
|
|
222
|
+
}[];
|
|
223
|
+
positions: {
|
|
224
|
+
id: string;
|
|
225
|
+
name: string;
|
|
226
|
+
}[];
|
|
227
|
+
employees: {
|
|
228
|
+
minHoursPerDay?: number | null | undefined;
|
|
229
|
+
overtime?: {
|
|
230
|
+
maxHoursPerMonth: number | null;
|
|
231
|
+
} | undefined;
|
|
232
|
+
workingHours?: {
|
|
233
|
+
minHoursPerDay: number | null;
|
|
234
|
+
maxHoursPerDay: number | null;
|
|
235
|
+
maxHoursPerWeek: number | null;
|
|
236
|
+
} | undefined;
|
|
237
|
+
employeeId: string;
|
|
238
|
+
name: string;
|
|
239
|
+
employmentType: "FULLTIME" | "PARTTIME";
|
|
240
|
+
wage: {
|
|
241
|
+
type: "HOURLY" | "MONTHLY";
|
|
242
|
+
amount: number;
|
|
243
|
+
};
|
|
244
|
+
primaryPosition: {
|
|
245
|
+
positionId: string;
|
|
246
|
+
positionName: string;
|
|
247
|
+
} | null;
|
|
248
|
+
secondaryPositions: {
|
|
249
|
+
positionId: string;
|
|
250
|
+
positionName: string;
|
|
251
|
+
}[];
|
|
252
|
+
availability: {
|
|
253
|
+
dayOfWeek: number;
|
|
254
|
+
start: string;
|
|
255
|
+
end: string;
|
|
256
|
+
}[];
|
|
257
|
+
}[];
|
|
200
258
|
settings: {
|
|
201
259
|
settingsConfigured?: boolean | undefined;
|
|
202
260
|
overtime: {
|
|
@@ -232,64 +290,6 @@ export declare const scheduleState: {
|
|
|
232
290
|
closed: boolean;
|
|
233
291
|
}[];
|
|
234
292
|
};
|
|
235
|
-
positions: {
|
|
236
|
-
id: string;
|
|
237
|
-
name: string;
|
|
238
|
-
}[];
|
|
239
|
-
employees: {
|
|
240
|
-
overtime?: {
|
|
241
|
-
maxHoursPerMonth: number | null;
|
|
242
|
-
} | undefined;
|
|
243
|
-
minHoursPerDay?: number | null | undefined;
|
|
244
|
-
workingHours?: {
|
|
245
|
-
minHoursPerDay: number | null;
|
|
246
|
-
maxHoursPerDay: number | null;
|
|
247
|
-
maxHoursPerWeek: number | null;
|
|
248
|
-
} | undefined;
|
|
249
|
-
name: string;
|
|
250
|
-
employeeId: string;
|
|
251
|
-
employmentType: "FULLTIME" | "PARTTIME";
|
|
252
|
-
wage: {
|
|
253
|
-
type: "HOURLY" | "MONTHLY";
|
|
254
|
-
amount: number;
|
|
255
|
-
};
|
|
256
|
-
primaryPosition: {
|
|
257
|
-
positionId: string;
|
|
258
|
-
positionName: string;
|
|
259
|
-
} | null;
|
|
260
|
-
secondaryPositions: {
|
|
261
|
-
positionId: string;
|
|
262
|
-
positionName: string;
|
|
263
|
-
}[];
|
|
264
|
-
availability: {
|
|
265
|
-
dayOfWeek: number;
|
|
266
|
-
start: string;
|
|
267
|
-
end: string;
|
|
268
|
-
}[];
|
|
269
|
-
}[];
|
|
270
|
-
assignments: {
|
|
271
|
-
status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
|
|
272
|
-
date: string;
|
|
273
|
-
startTime: string;
|
|
274
|
-
endTime: string;
|
|
275
|
-
id: string;
|
|
276
|
-
employeeId: string;
|
|
277
|
-
position: {
|
|
278
|
-
positionId: string;
|
|
279
|
-
positionName: string;
|
|
280
|
-
} | null;
|
|
281
|
-
breaks: ({
|
|
282
|
-
type: "DURATION";
|
|
283
|
-
minutes: number;
|
|
284
|
-
breakPayType: "PAID" | "UNPAID";
|
|
285
|
-
} | {
|
|
286
|
-
type: "TIME_RANGE";
|
|
287
|
-
breakPayType: "PAID" | "UNPAID";
|
|
288
|
-
startTime: string;
|
|
289
|
-
endTime: string;
|
|
290
|
-
})[];
|
|
291
|
-
updatedAt: string;
|
|
292
|
-
}[];
|
|
293
293
|
} | null>;
|
|
294
294
|
loading: import("vue").Ref<boolean, boolean>;
|
|
295
295
|
rosterLoading: import("vue").Ref<boolean, boolean>;
|
|
@@ -400,8 +400,8 @@ export declare const payload: import("vue").ShallowRef<{
|
|
|
400
400
|
timeOff: {
|
|
401
401
|
type: "OFF_DAY" | "LEAVE";
|
|
402
402
|
status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
|
|
403
|
-
id: string;
|
|
404
403
|
employeeId: string;
|
|
404
|
+
id: string;
|
|
405
405
|
leaveType: "UNPAID" | "ANNUAL" | "MEDICAL" | "EMERGENCY" | null;
|
|
406
406
|
startDate: string;
|
|
407
407
|
endDate: string;
|
|
@@ -444,6 +444,64 @@ export declare const payload: import("vue").ShallowRef<{
|
|
|
444
444
|
} | null;
|
|
445
445
|
headcount: number;
|
|
446
446
|
}[];
|
|
447
|
+
assignments: {
|
|
448
|
+
status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
|
|
449
|
+
date: string;
|
|
450
|
+
startTime: string;
|
|
451
|
+
endTime: string;
|
|
452
|
+
employeeId: string;
|
|
453
|
+
id: string;
|
|
454
|
+
position: {
|
|
455
|
+
positionId: string;
|
|
456
|
+
positionName: string;
|
|
457
|
+
} | null;
|
|
458
|
+
breaks: ({
|
|
459
|
+
type: "DURATION";
|
|
460
|
+
minutes: number;
|
|
461
|
+
breakPayType: "PAID" | "UNPAID";
|
|
462
|
+
} | {
|
|
463
|
+
type: "TIME_RANGE";
|
|
464
|
+
breakPayType: "PAID" | "UNPAID";
|
|
465
|
+
startTime: string;
|
|
466
|
+
endTime: string;
|
|
467
|
+
})[];
|
|
468
|
+
updatedAt: string;
|
|
469
|
+
}[];
|
|
470
|
+
positions: {
|
|
471
|
+
id: string;
|
|
472
|
+
name: string;
|
|
473
|
+
}[];
|
|
474
|
+
employees: {
|
|
475
|
+
minHoursPerDay?: number | null | undefined;
|
|
476
|
+
overtime?: {
|
|
477
|
+
maxHoursPerMonth: number | null;
|
|
478
|
+
} | undefined;
|
|
479
|
+
workingHours?: {
|
|
480
|
+
minHoursPerDay: number | null;
|
|
481
|
+
maxHoursPerDay: number | null;
|
|
482
|
+
maxHoursPerWeek: number | null;
|
|
483
|
+
} | undefined;
|
|
484
|
+
employeeId: string;
|
|
485
|
+
name: string;
|
|
486
|
+
employmentType: "FULLTIME" | "PARTTIME";
|
|
487
|
+
wage: {
|
|
488
|
+
type: "HOURLY" | "MONTHLY";
|
|
489
|
+
amount: number;
|
|
490
|
+
};
|
|
491
|
+
primaryPosition: {
|
|
492
|
+
positionId: string;
|
|
493
|
+
positionName: string;
|
|
494
|
+
} | null;
|
|
495
|
+
secondaryPositions: {
|
|
496
|
+
positionId: string;
|
|
497
|
+
positionName: string;
|
|
498
|
+
}[];
|
|
499
|
+
availability: {
|
|
500
|
+
dayOfWeek: number;
|
|
501
|
+
start: string;
|
|
502
|
+
end: string;
|
|
503
|
+
}[];
|
|
504
|
+
}[];
|
|
447
505
|
settings: {
|
|
448
506
|
settingsConfigured?: boolean | undefined;
|
|
449
507
|
overtime: {
|
|
@@ -479,70 +537,12 @@ export declare const payload: import("vue").ShallowRef<{
|
|
|
479
537
|
closed: boolean;
|
|
480
538
|
}[];
|
|
481
539
|
};
|
|
482
|
-
positions: {
|
|
483
|
-
id: string;
|
|
484
|
-
name: string;
|
|
485
|
-
}[];
|
|
486
|
-
employees: {
|
|
487
|
-
overtime?: {
|
|
488
|
-
maxHoursPerMonth: number | null;
|
|
489
|
-
} | undefined;
|
|
490
|
-
minHoursPerDay?: number | null | undefined;
|
|
491
|
-
workingHours?: {
|
|
492
|
-
minHoursPerDay: number | null;
|
|
493
|
-
maxHoursPerDay: number | null;
|
|
494
|
-
maxHoursPerWeek: number | null;
|
|
495
|
-
} | undefined;
|
|
496
|
-
name: string;
|
|
497
|
-
employeeId: string;
|
|
498
|
-
employmentType: "FULLTIME" | "PARTTIME";
|
|
499
|
-
wage: {
|
|
500
|
-
type: "HOURLY" | "MONTHLY";
|
|
501
|
-
amount: number;
|
|
502
|
-
};
|
|
503
|
-
primaryPosition: {
|
|
504
|
-
positionId: string;
|
|
505
|
-
positionName: string;
|
|
506
|
-
} | null;
|
|
507
|
-
secondaryPositions: {
|
|
508
|
-
positionId: string;
|
|
509
|
-
positionName: string;
|
|
510
|
-
}[];
|
|
511
|
-
availability: {
|
|
512
|
-
dayOfWeek: number;
|
|
513
|
-
start: string;
|
|
514
|
-
end: string;
|
|
515
|
-
}[];
|
|
516
|
-
}[];
|
|
517
|
-
assignments: {
|
|
518
|
-
status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
|
|
519
|
-
date: string;
|
|
520
|
-
startTime: string;
|
|
521
|
-
endTime: string;
|
|
522
|
-
id: string;
|
|
523
|
-
employeeId: string;
|
|
524
|
-
position: {
|
|
525
|
-
positionId: string;
|
|
526
|
-
positionName: string;
|
|
527
|
-
} | null;
|
|
528
|
-
breaks: ({
|
|
529
|
-
type: "DURATION";
|
|
530
|
-
minutes: number;
|
|
531
|
-
breakPayType: "PAID" | "UNPAID";
|
|
532
|
-
} | {
|
|
533
|
-
type: "TIME_RANGE";
|
|
534
|
-
breakPayType: "PAID" | "UNPAID";
|
|
535
|
-
startTime: string;
|
|
536
|
-
endTime: string;
|
|
537
|
-
})[];
|
|
538
|
-
updatedAt: string;
|
|
539
|
-
}[];
|
|
540
540
|
} | null, {
|
|
541
541
|
timeOff: {
|
|
542
542
|
type: "OFF_DAY" | "LEAVE";
|
|
543
543
|
status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
|
|
544
|
-
id: string;
|
|
545
544
|
employeeId: string;
|
|
545
|
+
id: string;
|
|
546
546
|
leaveType: "UNPAID" | "ANNUAL" | "MEDICAL" | "EMERGENCY" | null;
|
|
547
547
|
startDate: string;
|
|
548
548
|
endDate: string;
|
|
@@ -585,6 +585,64 @@ export declare const payload: import("vue").ShallowRef<{
|
|
|
585
585
|
} | null;
|
|
586
586
|
headcount: number;
|
|
587
587
|
}[];
|
|
588
|
+
assignments: {
|
|
589
|
+
status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
|
|
590
|
+
date: string;
|
|
591
|
+
startTime: string;
|
|
592
|
+
endTime: string;
|
|
593
|
+
employeeId: string;
|
|
594
|
+
id: string;
|
|
595
|
+
position: {
|
|
596
|
+
positionId: string;
|
|
597
|
+
positionName: string;
|
|
598
|
+
} | null;
|
|
599
|
+
breaks: ({
|
|
600
|
+
type: "DURATION";
|
|
601
|
+
minutes: number;
|
|
602
|
+
breakPayType: "PAID" | "UNPAID";
|
|
603
|
+
} | {
|
|
604
|
+
type: "TIME_RANGE";
|
|
605
|
+
breakPayType: "PAID" | "UNPAID";
|
|
606
|
+
startTime: string;
|
|
607
|
+
endTime: string;
|
|
608
|
+
})[];
|
|
609
|
+
updatedAt: string;
|
|
610
|
+
}[];
|
|
611
|
+
positions: {
|
|
612
|
+
id: string;
|
|
613
|
+
name: string;
|
|
614
|
+
}[];
|
|
615
|
+
employees: {
|
|
616
|
+
minHoursPerDay?: number | null | undefined;
|
|
617
|
+
overtime?: {
|
|
618
|
+
maxHoursPerMonth: number | null;
|
|
619
|
+
} | undefined;
|
|
620
|
+
workingHours?: {
|
|
621
|
+
minHoursPerDay: number | null;
|
|
622
|
+
maxHoursPerDay: number | null;
|
|
623
|
+
maxHoursPerWeek: number | null;
|
|
624
|
+
} | undefined;
|
|
625
|
+
employeeId: string;
|
|
626
|
+
name: string;
|
|
627
|
+
employmentType: "FULLTIME" | "PARTTIME";
|
|
628
|
+
wage: {
|
|
629
|
+
type: "HOURLY" | "MONTHLY";
|
|
630
|
+
amount: number;
|
|
631
|
+
};
|
|
632
|
+
primaryPosition: {
|
|
633
|
+
positionId: string;
|
|
634
|
+
positionName: string;
|
|
635
|
+
} | null;
|
|
636
|
+
secondaryPositions: {
|
|
637
|
+
positionId: string;
|
|
638
|
+
positionName: string;
|
|
639
|
+
}[];
|
|
640
|
+
availability: {
|
|
641
|
+
dayOfWeek: number;
|
|
642
|
+
start: string;
|
|
643
|
+
end: string;
|
|
644
|
+
}[];
|
|
645
|
+
}[];
|
|
588
646
|
settings: {
|
|
589
647
|
settingsConfigured?: boolean | undefined;
|
|
590
648
|
overtime: {
|
|
@@ -620,64 +678,6 @@ export declare const payload: import("vue").ShallowRef<{
|
|
|
620
678
|
closed: boolean;
|
|
621
679
|
}[];
|
|
622
680
|
};
|
|
623
|
-
positions: {
|
|
624
|
-
id: string;
|
|
625
|
-
name: string;
|
|
626
|
-
}[];
|
|
627
|
-
employees: {
|
|
628
|
-
overtime?: {
|
|
629
|
-
maxHoursPerMonth: number | null;
|
|
630
|
-
} | undefined;
|
|
631
|
-
minHoursPerDay?: number | null | undefined;
|
|
632
|
-
workingHours?: {
|
|
633
|
-
minHoursPerDay: number | null;
|
|
634
|
-
maxHoursPerDay: number | null;
|
|
635
|
-
maxHoursPerWeek: number | null;
|
|
636
|
-
} | undefined;
|
|
637
|
-
name: string;
|
|
638
|
-
employeeId: string;
|
|
639
|
-
employmentType: "FULLTIME" | "PARTTIME";
|
|
640
|
-
wage: {
|
|
641
|
-
type: "HOURLY" | "MONTHLY";
|
|
642
|
-
amount: number;
|
|
643
|
-
};
|
|
644
|
-
primaryPosition: {
|
|
645
|
-
positionId: string;
|
|
646
|
-
positionName: string;
|
|
647
|
-
} | null;
|
|
648
|
-
secondaryPositions: {
|
|
649
|
-
positionId: string;
|
|
650
|
-
positionName: string;
|
|
651
|
-
}[];
|
|
652
|
-
availability: {
|
|
653
|
-
dayOfWeek: number;
|
|
654
|
-
start: string;
|
|
655
|
-
end: string;
|
|
656
|
-
}[];
|
|
657
|
-
}[];
|
|
658
|
-
assignments: {
|
|
659
|
-
status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
|
|
660
|
-
date: string;
|
|
661
|
-
startTime: string;
|
|
662
|
-
endTime: string;
|
|
663
|
-
id: string;
|
|
664
|
-
employeeId: string;
|
|
665
|
-
position: {
|
|
666
|
-
positionId: string;
|
|
667
|
-
positionName: string;
|
|
668
|
-
} | null;
|
|
669
|
-
breaks: ({
|
|
670
|
-
type: "DURATION";
|
|
671
|
-
minutes: number;
|
|
672
|
-
breakPayType: "PAID" | "UNPAID";
|
|
673
|
-
} | {
|
|
674
|
-
type: "TIME_RANGE";
|
|
675
|
-
breakPayType: "PAID" | "UNPAID";
|
|
676
|
-
startTime: string;
|
|
677
|
-
endTime: string;
|
|
678
|
-
})[];
|
|
679
|
-
updatedAt: string;
|
|
680
|
-
}[];
|
|
681
681
|
} | null>, loading: import("vue").Ref<boolean, boolean>, rosterLoading: import("vue").Ref<boolean, boolean>, loadError: import("vue").Ref<string | null, string | null>, scheduleSetupCompleted: import("vue").Ref<boolean, boolean>, dataVersion: import("vue").Ref<number, number>, outletId: import("vue").Ref<string, string>, restaurantEmployees: import("vue").Ref<{
|
|
682
682
|
_id: string;
|
|
683
683
|
name: string;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import ScheduleAPI from '@/api/schedule';
|
|
2
2
|
import type { IFdtoPosUserSummary } from '@/types/employee';
|
|
3
|
-
import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleSaveAssignmentReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq, FdtoScheduleSaveEmployeeConfigsReq, ScheduleReplaceDemandReq } from '@/types/schedule';
|
|
3
|
+
import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleSaveAssignmentReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq, FdtoScheduleSaveEmployeeConfigsReq, ScheduleReplaceDemandReq } from '@/types/schedule';
|
|
4
4
|
import { isoDateKey } from './composables/schedule-calendar';
|
|
5
5
|
export { businessEmployees, dataVersion, employeeOutletIds, loadError, loading, outletId, payload, restaurantEmployees, employeeConfigs, rosterLoading, scheduleSetupCompleted, } from './schedule-state';
|
|
6
6
|
/** dayjs-free local-date key — the board's own isoDateKey, repeated here so the store does not
|
|
7
7
|
* have to import a composable. Local Y/M/D, never UTC: a BSON-free 'YYYY-MM-DD' that survives
|
|
8
8
|
* a timezone west of Greenwich. */
|
|
9
9
|
export declare const isoDate: typeof isoDateKey;
|
|
10
|
+
/** Called from the scheduling page's setup with `useI18n().t`, so the store's errors follow
|
|
11
|
+
* the portal locale. Pass `null` to fall back to English. */
|
|
12
|
+
export declare function setScheduleStoreTranslator(t: ((key: string) => string) | null): void;
|
|
10
13
|
/** Points the board at an outlet. Switching throws the held window away rather than widening
|
|
11
14
|
* it — two outlets' rosters are not one dataset, and half of each is not a schedule.
|
|
12
15
|
*
|
|
@@ -21,7 +24,11 @@ export declare function setOutlet(restaurantId: string): boolean;
|
|
|
21
24
|
* headcounts sit nowhere near it. */
|
|
22
25
|
export declare function ensureRestaurantEmployeesLoaded(restaurantId: string): Promise<void>;
|
|
23
26
|
export declare function saveEmployeeConfigs(configs: FdtoScheduleSaveEmployeeConfigsReq['configs']): Promise<void>;
|
|
27
|
+
/** Saves outlet settings and keeps the board payload authoritative for any later cache rebuild. */
|
|
28
|
+
export declare function saveScheduleSettings(req: FdtoScheduleSaveSettingsReq): Promise<FdtoScheduleSettings>;
|
|
24
29
|
export declare function setEmployeeSchedulingEnabled(employeeId: string, enabled: boolean): Promise<void>;
|
|
30
|
+
/** Removes this employee's future shifts before disabling their scheduling row. */
|
|
31
|
+
export declare function deleteEmployeeFutureAssignments(employeeId: string, from?: string): Promise<void>;
|
|
25
32
|
/** Re-reads this outlet's POS roster. The roster is what the board's rows are built from and is
|
|
26
33
|
* otherwise fetched once per outlet, so any write that changes who works here (add, remove)
|
|
27
34
|
* has to call this for the grid to show it. */
|
|
@@ -30,7 +37,7 @@ export declare function refreshRestaurantEmployees(): Promise<void>;
|
|
|
30
37
|
export declare function addEmployeeToOutlet(employeeId: string, roleId: string): Promise<void>;
|
|
31
38
|
/** Adds an employee to several outlets at once. Scheduling does not require a POS role, so the
|
|
32
39
|
* caller may pass an empty role id and assign the POS role later from Employee. */
|
|
33
|
-
export declare function addEmployeeToOutlets(employeeId: string, restaurantIds: string[], roleId?: string): Promise<void>;
|
|
40
|
+
export declare function addEmployeeToOutlets(employeeId: string, restaurantIds: string[], roleId?: string, enableScheduling?: boolean): Promise<void>;
|
|
34
41
|
/** Takes a POS user off the given outlets' rosters; their other outlets are untouched. */
|
|
35
42
|
export declare function removeEmployeeFromOutlets(employeeId: string, restaurantIds: string[]): Promise<void>;
|
|
36
43
|
/** Takes a POS user off this outlet's roster only. */
|
|
@@ -43,6 +50,19 @@ export declare function setEmployeePosRoles(employeeId: string, assignments: {
|
|
|
43
50
|
restaurantId: string;
|
|
44
51
|
roleId: string;
|
|
45
52
|
}[]): Promise<void>;
|
|
53
|
+
/** Saves the POS-owned part of an existing scheduling employee. The scheduling profile and the
|
|
54
|
+
* POS user are separate records, so passcode/master-user changes must use the POS user API too.
|
|
55
|
+
* A normalized comparison avoids rewriting the POS user when the employee form was unchanged. */
|
|
56
|
+
export declare function saveEmployeePosAccess(employeeId: string, request: {
|
|
57
|
+
name: string;
|
|
58
|
+
passcode: string;
|
|
59
|
+
masterUser: boolean;
|
|
60
|
+
masterCode: string;
|
|
61
|
+
roles: {
|
|
62
|
+
restaurantId: string;
|
|
63
|
+
roleId: string;
|
|
64
|
+
}[];
|
|
65
|
+
}, knownEmployee?: IFdtoPosUserSummary): Promise<void>;
|
|
46
66
|
/** The cached business roster, fetched on first use. `force` re-reads it (after a write, or to
|
|
47
67
|
* refresh a list that is already on screen). Concurrent callers share one request. */
|
|
48
68
|
export declare function ensureBusinessEmployees(force?: boolean): Promise<IFdtoPosUserSummary[]>;
|
|
@@ -99,14 +119,16 @@ export declare function generateAutoSchedule(req: FdtoScheduleAutoScheduleGenera
|
|
|
99
119
|
export declare function getAutoScheduleCapabilities(): Promise<FdtoScheduleAutoScheduleCapabilities>;
|
|
100
120
|
export declare function applyAutoSchedule(req: FdtoScheduleAutoScheduleApplyReq): Promise<FdtoScheduleAutoScheduleApplyResult>;
|
|
101
121
|
/** A one-off shift assignment — someone working these hours on this date, not answering any
|
|
102
|
-
* Shift requirement.
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* discarding some OTHER unsaved shift elsewhere on the board (shifts have no write path of
|
|
106
|
-
* their own to read back from yet). */
|
|
122
|
+
* Shift requirement. Keep the raw payload in sync without bumping `dataVersion`: the current
|
|
123
|
+
* board owns the live draft, while a later roster refresh may rebuild the week cache from this
|
|
124
|
+
* payload. */
|
|
107
125
|
export declare function createAssignment(req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment>;
|
|
108
126
|
export declare function updateAssignment(id: string, req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment | null>;
|
|
109
127
|
export declare function bulkSaveAssignments(req: Parameters<typeof ScheduleAPI.bulkSaveAssignments>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.bulkSaveAssignments>>>;
|
|
128
|
+
/** Replaces demand and/or assignments in one backend transaction. */
|
|
129
|
+
export declare function copySchedule(req: Parameters<typeof ScheduleAPI.copySchedule>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.copySchedule>>>;
|
|
130
|
+
/** Clears demand and/or assignments in one backend transaction. */
|
|
131
|
+
export declare function clearSchedule(req: Parameters<typeof ScheduleAPI.clearSchedule>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.clearSchedule>>>;
|
|
110
132
|
/** Deletes a batch of existing assignments in a single request — see
|
|
111
133
|
* `ScheduleAPI.deleteAssignments`. Deleting one is just this with a single-id array. */
|
|
112
134
|
export declare function deleteAssignments(ids: string[]): Promise<void>;
|
|
@@ -109,6 +109,9 @@ export interface Employee {
|
|
|
109
109
|
archivedPositions?: string[];
|
|
110
110
|
/** One entry per visible day of the horizon; null = day off. */
|
|
111
111
|
shifts: DaySlot[];
|
|
112
|
+
/** Dated time-off records are kept beside shifts so an off/leave card remains visible when
|
|
113
|
+
* a manager adds a shift on the same day. */
|
|
114
|
+
timeOff?: Array<LeaveSlot | null>;
|
|
112
115
|
remarks: EmployeeRemark[];
|
|
113
116
|
section: string;
|
|
114
117
|
compGroup?: string;
|
|
@@ -141,6 +144,8 @@ export interface Employee {
|
|
|
141
144
|
availHours?: EmployeeAvailHours[];
|
|
142
145
|
/** POS sign-in code. Optional: rostering, costing and publishing never depend on it. */
|
|
143
146
|
passcode?: string;
|
|
147
|
+
/** POS master-user code, when this employee is a master user. */
|
|
148
|
+
code?: string;
|
|
144
149
|
masterUser?: boolean;
|
|
145
150
|
}
|
|
146
151
|
export interface Section {
|
|
@@ -250,6 +255,7 @@ export interface PendingChange {
|
|
|
250
255
|
dayIdx: number;
|
|
251
256
|
kind: 'add' | 'change' | 'remove';
|
|
252
257
|
label: string;
|
|
258
|
+
conflict?: boolean;
|
|
253
259
|
}
|
|
254
260
|
export type NotifyChannel = 'wa' | 'push' | 'email';
|
|
255
261
|
export interface ScheduleVersionSnapshot {
|
|
@@ -370,4 +376,6 @@ export interface Proposal {
|
|
|
370
376
|
weekKey?: string;
|
|
371
377
|
/** Why this person, for the card's tooltip. */
|
|
372
378
|
reason?: string;
|
|
379
|
+
/** Set when the server already knows applying this row would be refused; it starts rejected. */
|
|
380
|
+
rejectReason?: string;
|
|
373
381
|
}
|