v1.8.0: warehouse module (16 commits), docházka mzda model, leave_type=holiday removal, api.ts race fix

Highlights:
- Warehouse module: receipts, issues, reservations, inventory, reports, dashboard,
  master data (categories, suppliers, locations), FIFO service, integration tests
- Docházka: mzda PDF counting model (Odpracováno / Vč. svátků / Přesčas / Svátek /
  So/Ne / Noc) with Czech weekday names and decimal hours
- AttendanceAdmin/AttendanceHistory KPI cards unified to mzda formula with
  fund bar colored by delta, badges for Práce/Dov/Nem/Sv/Nep
- Remove leave_type=holiday entirely (auto-computed from Czech public holidays)
- Allow multiple work shifts per day (overlap detection only)
- Pre-flight refresh in api.ts eliminates spurious 401s on fresh page loads
- Prisma: company_settings gets 6 nullable columns for warehouse numbering
  (PRI/VYD/INV prefixes, default patterns); migration seeds defaults
This commit is contained in:
BOHA
2026-06-03 23:13:10 +02:00
parent dac45baaa8
commit 5233db2002
149 changed files with 11132 additions and 26950 deletions

View File

@@ -56,7 +56,7 @@ export const AttendanceLeaveSchema = z.object({
date_from: z.string().min(1, "Datum je povinné"),
date_to: z.string().optional(),
leave_type: z
.enum(["vacation", "sick", "unpaid", "holiday"])
.enum(["vacation", "sick", "unpaid"])
.optional()
.default("vacation"),
leave_hours: z
@@ -120,7 +120,7 @@ export const CreateAttendanceSchema = z.object({
.transform((v) => Number(v))
.nullish(),
leave_type: z
.enum(["work", "vacation", "sick", "holiday", "unpaid"])
.enum(["work", "vacation", "sick", "unpaid"])
.optional()
.default("work"),
leave_hours: z
@@ -140,9 +140,7 @@ export const UpdateAttendanceSchema = z.object({
.union([z.number(), z.string(), z.null()])
.transform((v) => (v === null ? null : Number(v)))
.optional(),
leave_type: z
.enum(["work", "vacation", "sick", "holiday", "unpaid"])
.optional(),
leave_type: z.enum(["work", "vacation", "sick", "unpaid"]).optional(),
leave_hours: z.union([z.number(), z.string(), z.null()]).optional(),
project_logs: z.array(ProjectLogSchema).optional(),
});