diff --git a/core/tm/farmacia.routes.ts b/core/tm/farmacia.routes.ts index b770a4f45..c7110c30c 100644 --- a/core/tm/farmacia.routes.ts +++ b/core/tm/farmacia.routes.ts @@ -3,6 +3,7 @@ import { Farmacia, IFarmaciaDoc } from './schemas/farmacia'; import { EventCore } from '@andes/event-bus/'; import { Auth } from '../../auth/auth.class'; + class FarmaciasResourse extends ResourceBase { Model = Farmacia; resourceName = 'farmacias'; diff --git a/core/tm/schemas/farmacia.ts b/core/tm/schemas/farmacia.ts index 066bd77b3..0e7e82148 100644 --- a/core/tm/schemas/farmacia.ts +++ b/core/tm/schemas/farmacia.ts @@ -1,12 +1,17 @@ import * as mongoose from 'mongoose'; +import { CustomError } from '@andes/core'; import * as direccionSchema from './direccion'; import { IFarmacia } from '../interfaces/IFarmacia'; import { AndesDocWithAudit } from '@andes/mongoose-plugin-audit'; + const FarmaciaSchema = new mongoose.Schema({ denominacion: String, razonSocial: String, - cuit: String, + cuit: { + type: String, + maxlength: 11 + }, DTResponsable: String, matriculaDTResponsable: String, disposicionAltaDT: String, @@ -38,5 +43,17 @@ const FarmaciaSchema = new mongoose.Schema({ }] }); +FarmaciaSchema.pre('save', function (this: any, next) { + if (this.cuit) { + const cuit = this.cuit.replace(/\D/g, ''); + if (!cuit || cuit.length >= 11) { + return next(new CustomError('CUIT inválido. Debe tener 11 dígitos numéricos con dígito verificador correcto.', 400)); + } + this.cuit = cuit; + } + next(); +}); + + export type IFarmaciaDoc = AndesDocWithAudit; export const Farmacia = mongoose.model('farmacias', FarmaciaSchema, 'farmacias');