feat: implement correction and original send functionality for Nama provider
- Added new DTOs for correction requests and responses in `nama-provider.dto.ts`. - Updated `nama-provider.adapter.ts` to include `originalSend` and `correctionSend` methods. - Enhanced `nama-provider.util.ts` with mapping functions for correction requests. - Created operational guidelines for agents in `AGENT.md`. - Updated Prisma migrations to support new invoice types and relationships. - Introduced new service and DTO for creating sales invoices in `sale-invoice-create.service.ts` and `sale-invoice-create.dto.ts`. - Added utility for handling Prisma errors in `prisma-error.util.ts`.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { randomBytes } from 'crypto'
|
||||
import { PrismaErrorUtil } from './prisma-error.util'
|
||||
|
||||
export function generateTrackingCode(prefix: string, suffixLength: number) {
|
||||
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
|
||||
@@ -13,23 +14,8 @@ export function generateTrackingCode(prefix: string, suffixLength: number) {
|
||||
}
|
||||
|
||||
export function isTrackingCodeUniqueViolation(error: unknown) {
|
||||
const prismaError = error as {
|
||||
code?: string
|
||||
meta?: { target?: string[] | string }
|
||||
}
|
||||
|
||||
if (prismaError?.code !== 'P2002') {
|
||||
if (!PrismaErrorUtil.isCode(error, 'P2002')) {
|
||||
return false
|
||||
}
|
||||
|
||||
const target = prismaError.meta?.target
|
||||
if (Array.isArray(target)) {
|
||||
return target.includes('tracking_code')
|
||||
}
|
||||
|
||||
if (typeof target === 'string') {
|
||||
return target.includes('tracking_code')
|
||||
}
|
||||
|
||||
return true
|
||||
return PrismaErrorUtil.hasTarget(error, 'tracking_code')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user