refactor: extract numbering logic into numbering.service.ts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-03-23 09:00:07 +01:00
parent d2b22e9399
commit 2146696bc6
6 changed files with 86 additions and 127 deletions

View File

@@ -4,7 +4,7 @@ import { requirePermission } from '../../middleware/auth';
import { logAudit } from '../../services/audit';
import { success, error, parseId } from '../../utils/response';
import { parsePagination, buildPaginationMeta } from '../../utils/pagination';
import { getNextNumber } from '../../utils/sequence';
import { generateInvoiceNumber } from '../../services/numbering.service';
import { parseBody } from '../../schemas/common';
import { CreateInvoiceSchema, UpdateInvoiceSchema } from '../../schemas/invoices.schema';
@@ -106,7 +106,7 @@ export default async function invoicesRoutes(fastify: FastifyInstance): Promise<
const prefix = `${yy}${typeCode}`;
// Atomic numbering via number_sequences table
const nextNum = await getNextNumber('invoice', year);
const nextNum = await generateInvoiceNumber(year);
const number = `${prefix}${String(nextNum).padStart(4, '0')}`;
return success(reply, { number, next_number: number });
});