Checkpoint: Migration complète localStorage → BDD : useBudgetData, ParametresContext, Budget2027, DsiCapex, DsiOpex, ImportModal (indicateur inventaires + suppression double-écriture). Ajout procédures tRPC : inventaire.listMeta, inventaire.getStats, opex.initFromSource, opex.deleteAll, opex.cloneFromN1. 14 tests Vitest passants. 0 erreur TypeScript.

This commit is contained in:
Manus
2026-06-10 12:49:29 +00:00
parent caf95da1c1
commit 020156d62c
10 changed files with 1027 additions and 1088 deletions

View File

@@ -201,6 +201,18 @@ export async function insertOpexMontantsEtab(rows: InsertOpexMontantEtab[]) {
}
}
export async function deleteOpexPostes(annee: number) {
const db = await getDb();
if (!db) return;
await db.delete(opexPostes).where(eq(opexPostes.annee, annee));
}
export async function deleteOpexMontantsEtab(annee: number) {
const db = await getDb();
if (!db) return;
await db.delete(opexMontantsEtab).where(eq(opexMontantsEtab.annee, annee));
}
export async function getOpexValidated(annee: number) {
const db = await getDb();
if (!db) return null;
@@ -245,6 +257,12 @@ export async function getInventaireMeta(annee: number) {
return result.length > 0 ? result[0] : null;
}
export async function listInventaireMeta() {
const db = await getDb();
if (!db) return [];
return db.select().from(inventaireMeta).orderBy(inventaireMeta.annee);
}
export async function importInventaire(
annee: number,
postes: typeof inventairePostes.$inferInsert[],