diff --git a/prisma.config.ts b/prisma.config.ts index 1be248d..b59a8e4 100644 --- a/prisma.config.ts +++ b/prisma.config.ts @@ -1,5 +1,5 @@ import 'dotenv/config'; -import { defineConfig, env } from 'prisma/config'; +import { defineConfig } from 'prisma/config'; /** * Prisma 7 moved the migration connection URL out of schema.prisma. @@ -15,6 +15,16 @@ export default defineConfig({ seed: 'tsx prisma/seed.ts', }, datasource: { - url: env('DATABASE_URL'), + /* + * Lu directement plutôt que par `env()`, qui échoue dès le **chargement** + * du fichier de configuration quand la variable manque. + * + * Or ce fichier est chargé par toutes les commandes du CLI, y compris + * `prisma generate`, qui ne se connecte à rien : la construction de l'image + * devenait impossible sans fournir une base au constructeur. Les commandes + * qui ont réellement besoin de l'URL — `migrate` — échouent d'elles-mêmes, + * au moment où elle leur manque. + */ + url: process.env.DATABASE_URL ?? '', }, }); diff --git a/src/app/(app)/paie/periodes/page.tsx b/src/app/(app)/paie/periodes/page.tsx index f758eef..beeca6c 100644 --- a/src/app/(app)/paie/periodes/page.tsx +++ b/src/app/(app)/paie/periodes/page.tsx @@ -68,6 +68,14 @@ export default async function PeriodesPage({ searchParams }: PageProps) { suggestedMonth={view.suggestedMonth} /> + {view.totalPeriods > view.periods.length ? ( +
+ {view.totalPeriods} périodes en tout ; les {view.periods.length} plus + récentes sont affichées. Une période plus ancienne reste consultable + par son mois. +
+ ) : null} + {view.periods.length === 0 ? (
Aucune période. Verrouiller une période fige les heures transmises au
diff --git a/src/server/payroll/period-queries.ts b/src/server/payroll/period-queries.ts
index c6188f0..d7a1c3e 100644
--- a/src/server/payroll/period-queries.ts
+++ b/src/server/payroll/period-queries.ts
@@ -39,6 +39,8 @@ export interface PeriodsView {
location: { id: string; name: string };
locations: Array<{ id: string; name: string }>;
periods: PeriodCard[];
+ /** Total en base : la liste est bornée, et le taire induirait en erreur. */
+ totalPeriods: number;
/** Mois proposé par défaut à la création. */
suggestedMonth: string;
canLock: boolean;
@@ -62,10 +64,17 @@ export async function getPeriods(locationId?: string): Promise