"use client"; /* This facility's rules, as the counter applies them: the panel at the top of Help. It was the whole * Help page until the manual arrived (docs/manual); it stays because it is the one place the rules * are stated with this facility's own figures rather than the defaults. * * Every figure is read from this facility's own settings rather than written in, so the page can't * quote a number the facility has changed. The import rules are the templates' own notes, so they * can't drift from what the importer accepts. */ import Link from "next/link"; import { useSnap } from "@/lib/client"; import { CSV_TEMPLATES } from "@/lib/csv"; import { FTE_SETS, SLIP_DAYS } from "@/lib/compute"; import { SET_GARMENTS, setsCap, setsOnStart } from "@/lib/sets"; function Section({ title, more, children }: { title: string; more?: string; children: React.ReactNode }) { return (
{title}{more && In the manual}
{children}
); } const list = { margin: 0, paddingLeft: "1.2em", display: "grid", gap: "var(--space-1)" } as const; export default function FacilityRules() { const { s } = useSnap(); const cap = setsCap(s.settings.capSets); const start = Math.min(cap, setsOnStart(s.settings.initialSets)); // The table as the form lists it: a full-timer's figure first, down to the smallest. const table = Object.entries(FTE_SETS).filter(([, n]) => n !== null) as [string, number][]; return (

Each staff group is on one route, chosen under Settings → Issuing rules, on the staff groups board. All three stop at the same {cap} sets.

“Items (FY)” on Reports → People counts what someone has drawn since 1 July. It feeds the reports and the Exceptions list, and never limits what the counter issues. Groups on the FTE table aren't measured against one.

A garment's type decides how it counts. Tops and trousers are each half a set; every other type counts toward the separate ceiling. A type typed in by hand that isn't on the list counts toward no set, so pick from the list.

Each garment is tagged for the staff groups that wear it, or for all groups. Staff can only request their own groups' garments, and the counter needs a coordinator's override, which is recorded, to issue anyone a garment outside their group.

A garment is also men's, women's or unisex. Somebody is offered the cut set as their Uniform style plus everything unisex; blank means every style until a coordinator sets it, and the counter needs the same override, also recorded, to issue anyone another cut.

A count in progress on Stock → Count is saved in this browser only, under your sign-in. It survives a reload, but not a move to another computer or the phone — finish a count where you started it.

Settings → Data & audit log imports each list from a CSV file. The rules for each:

People → Export CSV writes headers the import reads back, so a ward's list can go to its manager, come back with Manager number filled in, and be imported again.

Reports → Spend → Journal: one debit line per cost centre, priced at each garment's cost on the day it was issued. Finance posts the balancing credit.

); }