Corriger le bandeau de compteurs, et régler impression et productivité
Le bandeau de la grille affichait contrat, planifié, écart, dimanches et jours de repos. PLAN.md §7.4 en demande cinq autres : heures contractuelles, planifié, absences, écart, repos compensateur. La capture du produit audité le confirme. L'écart n'était pas cosmétique. Les dimanches travaillés et les jours de repos se lisent déjà sur la grille, colonne par colonne. Le repos compensateur, lui, ne se lit nulle part ailleurs : c'est une contrepartie due — au dimanche travaillé, au dépassement de contingent — et l'omettre du bandeau masquait la seule valeur qui dit qu'une dette existe. Le compteur RC n'était alimenté par rien : les repos posés n'étaient tout simplement pas chargés avec la semaine. Ils le sont, et seul le repos compensateur y entre — le repos hebdomadaire est un droit déjà pris, les additionner ferait disparaître la dette dans un total qui ne veut rien dire. Deux écrans de réglages complètent le lot. L'impression gouverne le planning affiché en salle : orientation, densité, totaux, dimanche, colonne d'émargement. Cette dernière porte un avertissement — un émargement papier ne vaut pas décompte du temps de travail, et le décompte reste celui de PlanFlow. L'objectif de productivité est nullable et non « zéro par défaut » : zéro est un objectif inatteignable, l'absence de valeur dit qu'aucun objectif n'a été fixé. Vider le champ efface donc l'objectif au lieu de le mettre à zéro. L'écran rappelle aussi ce que l'indicateur n'est pas : il éclaire une décision d'organisation, il ne mesure pas le travail d'une personne. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d8060eb4a9
commit
5f656d05af
17 files changed
+541
-13
No files matched your search
@@ -8,7 +8,27 @@
|
||||
* le JSX.
|
||||
*/
|
||||
|
||||
export type PreferenceGroup = 'planning' | 'rights' | 'payroll';
|
||||
export type PreferenceGroup = 'planning' | 'rights' | 'payroll' | 'print';
|
||||
|
||||
/** Densités d'impression. Liste fermée : elle décide d'une mise en page. */
|
||||
export const PRINT_DENSITIES = [
|
||||
{
|
||||
key: 'large',
|
||||
label: 'Grande',
|
||||
hint: 'Moins de salariés par page, lisible à distance sur un mur.',
|
||||
},
|
||||
{
|
||||
key: 'compact',
|
||||
label: 'Compacte',
|
||||
hint: 'Tout l’effectif sur une page, au prix de la lisibilité de loin.',
|
||||
},
|
||||
] as const;
|
||||
|
||||
export type PrintDensity = (typeof PRINT_DENSITIES)[number]['key'];
|
||||
|
||||
export function isPrintDensity(value: string): value is PrintDensity {
|
||||
return PRINT_DENSITIES.some((density) => density.key === value);
|
||||
}
|
||||
|
||||
export interface PreferenceToggle {
|
||||
key: string;
|
||||
@@ -138,6 +158,34 @@ export const PREFERENCE_TOGGLES: PreferenceToggle[] = [
|
||||
label: 'Générer le matricule automatiquement',
|
||||
hint: 'Décoché, le matricule est saisi à l’embauche — utile quand il doit correspondre à celui du logiciel de paie.',
|
||||
},
|
||||
|
||||
// --- Impression --------------------------------------------------------
|
||||
{
|
||||
key: 'printContractTotals',
|
||||
group: 'print',
|
||||
label: 'Imprimer les totaux contractuels et planifiés',
|
||||
hint: 'Ajoute une colonne de totaux par salarié.',
|
||||
},
|
||||
{
|
||||
key: 'printOtherTeams',
|
||||
group: 'print',
|
||||
label: 'Imprimer les créneaux des autres équipes',
|
||||
hint: 'Situe la journée d’ensemble sur la feuille d’une équipe.',
|
||||
},
|
||||
{
|
||||
key: 'printSunday',
|
||||
group: 'print',
|
||||
label: 'Imprimer le dimanche',
|
||||
hint: 'À décocher pour un établissement qui n’ouvre jamais ce jour-là : la colonne gagnée profite aux six autres.',
|
||||
},
|
||||
{
|
||||
key: 'printSignatureColumn',
|
||||
group: 'print',
|
||||
label: 'Imprimer la colonne « émargements »',
|
||||
hint: 'Colonne vierge pour signature manuscrite.',
|
||||
warning:
|
||||
'Un émargement papier ne vaut pas décompte du temps de travail : le décompte reste celui de PlanFlow, pas celui de la feuille signée.',
|
||||
},
|
||||
];
|
||||
|
||||
export const PREFERENCE_KEYS: string[] = PREFERENCE_TOGGLES.map(
|
||||
|
||||
Reference in new issue
Block a user