Corriger la construction de l'image, pour de bon
`pnpm db:generate` échouait avant même le build : `prisma.config.ts` résolvait DATABASE_URL par `env()`, qui lève dès le **chargement** du fichier de configuration quand la variable manque. Or ce fichier est lu par toutes les commandes du CLI, y compris `generate`, qui ne se connecte à rien — la construction de l'image exigeait donc une base. Ma vérification précédente ne valait rien : j'avais éprouvé `pnpm build` seul, pas `pnpm db:generate && pnpm build`, la ligne qui échoue. Cette fois c'est la commande exacte du Dockerfile qui a été jouée, sans .env, et elle sort en 0. Corrigé au passage, du même genre que la troncature de l'écran de conservation : la liste des périodes de paie s'arrête aux 24 plus récentes sans le dire. Une période créée hors de cette fenêtre semblait ne pas s'être enregistrée. Le total est désormais rapporté. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cr9dkEHwbDgkWPnyGj1Rjv
This commit is contained in:
4 files changed
+35
-3
No files matched your search
@@ -68,6 +68,14 @@ export default async function PeriodesPage({ searchParams }: PageProps) {
|
||||
suggestedMonth={view.suggestedMonth}
|
||||
/>
|
||||
|
||||
{view.totalPeriods > view.periods.length ? (
|
||||
<p className="rounded-3 border border-line-1 bg-surface-2 p-3 text-micro text-ink-3">
|
||||
{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.
|
||||
</p>
|
||||
) : null}
|
||||
|
||||
{view.periods.length === 0 ? (
|
||||
<p className="rounded-3 border border-line-1 bg-surface p-4 text-sm text-ink-2">
|
||||
Aucune période. Verrouiller une période fige les heures transmises au
|
||||
|
||||
@@ -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<PeriodsView | nul
|
||||
locations[0];
|
||||
if (!location) return null;
|
||||
|
||||
// Deux ans de périodes mensuelles : au-delà, la liste cesse d'être
|
||||
// consultable. Le total est rapporté à côté, car une liste tronquée en
|
||||
// silence laisse croire qu'une période créée n'a pas été enregistrée.
|
||||
const PERIOD_PAGE = 24;
|
||||
const totalPeriods = await db.payPeriod.count({
|
||||
where: { locationId: location.id },
|
||||
});
|
||||
const periods = await db.payPeriod.findMany({
|
||||
where: { locationId: location.id },
|
||||
orderBy: { startDate: 'desc' },
|
||||
take: 24,
|
||||
take: PERIOD_PAGE,
|
||||
});
|
||||
|
||||
const exports = await db.payrollExport.findMany({
|
||||
@@ -130,6 +139,7 @@ export async function getPeriods(locationId?: string): Promise<PeriodsView | nul
|
||||
location,
|
||||
locations,
|
||||
periods: cards,
|
||||
totalPeriods,
|
||||
suggestedMonth: formatMonthParam(monthOf(new Date())),
|
||||
canLock: can(actor, 'payroll.period.lock'),
|
||||
canUnlock: can(actor, 'payroll.period.unlock'),
|
||||
|
||||
Reference in new issue
Block a user