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:
18
server/db.ts
18
server/db.ts
@@ -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[],
|
||||
|
||||
Reference in New Issue
Block a user