@ramiidv/arca-empleados 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,255 +1,103 @@
1
- // Shared validators from common
2
- export { validateCuil, validateCBU, normalizeCuil, formatCuil, validateFecha, validateFechaRango, collectErrors, collectErrorsWithPrefix, } from '@ramiidv/arca-common';
3
- import { ArcaValidationError, collectErrors, collectErrorsWithPrefix, validateCuil, validateFecha, validateFechaRango, validateCBU, } from '@ramiidv/arca-common';
4
- import { MODALIDADES_CON_FECHA_FIN } from './constants.js';
5
- // ---------------------------------------------------------------------------
6
- // Error collection helpers (local)
7
- // ---------------------------------------------------------------------------
1
+ import { ArcaValidationError, collectErrors, validateCuit } from '@ramiidv/arca-common';
2
+ import { PREFIJOS_CUIL_PERSONA_FISICA, VALORES_MARCA_COVID_CCG, VALORES_RECTIFICACION } from './constants.js';
3
+ import { erroresDeFormato, formatFechaSR } from './serializer.js';
8
4
  /**
9
- * Same as collectErrors but replaces the field name entirely on collected errors.
5
+ * Valida un CUIL de trabajador: 11 dígitos, prefijo de persona física
6
+ * (20, 23, 24 o 27) y dígito verificador. Devuelve el CUIL normalizado (solo dígitos).
7
+ * @throws ArcaValidationError
10
8
  */
11
- function collectErrorsAs(fn, errors, fieldName) {
9
+ export function validateCuilTrabajador(cuil, field = 'cuil') {
10
+ let normalizado;
12
11
  try {
13
- fn();
12
+ normalizado = validateCuit(cuil);
14
13
  }
15
14
  catch (e) {
16
15
  if (e instanceof ArcaValidationError) {
17
- errors.push(...e.details.map(err => ({
18
- ...err,
19
- field: fieldName,
20
- })));
16
+ throw new ArcaValidationError(e.message.replace(/^CUIT/, 'CUIL'), e.details.map((d) => ({ ...d, field, message: d.message.replace(/CUIT/g, 'CUIL') })), field, { cause: e });
21
17
  }
18
+ throw e;
22
19
  }
23
- }
24
- // ---------------------------------------------------------------------------
25
- // Record-level validators
26
- // ---------------------------------------------------------------------------
27
- /**
28
- * Validates all fields of an AltaEmpleado record.
29
- * @throws ArcaValidationError if any field is invalid.
30
- */
31
- export function validateAlta(alta) {
32
- const errors = [];
33
- // CUIL
34
- collectErrors(() => validateCuil(alta.cuil), errors);
35
- // Fecha de inicio
36
- collectErrors(() => validateFecha(alta.fechaInicio, 'fechaInicio'), errors);
37
- // Modalidad de contratacion
38
- if (alta.modalidadContratacion == null || typeof alta.modalidadContratacion !== 'number') {
39
- errors.push({
40
- field: 'modalidadContratacion',
41
- message: 'La modalidad de contratacion es requerida',
42
- value: alta.modalidadContratacion,
43
- });
44
- }
45
- // Obra social
46
- if (!alta.obraSocial || typeof alta.obraSocial !== 'string' || alta.obraSocial.trim() === '') {
47
- errors.push({
48
- field: 'obraSocial',
49
- message: 'La obra social es requerida',
50
- value: alta.obraSocial,
51
- });
52
- }
53
- // Actividad economica
54
- if (!alta.actividadEconomica || typeof alta.actividadEconomica !== 'string' || alta.actividadEconomica.trim() === '') {
55
- errors.push({
56
- field: 'actividadEconomica',
57
- message: 'La actividad economica es requerida',
58
- value: alta.actividadEconomica,
59
- });
60
- }
61
- // Domicilio de explotacion
62
- collectErrorsWithPrefix(() => validateDomicilio(alta.domicilioExplotacion), errors, 'domicilioExplotacion');
63
- // Fecha de fin requerida para ciertas modalidades
64
- if (MODALIDADES_CON_FECHA_FIN.has(alta.modalidadContratacion) && !alta.fechaFin) {
65
- errors.push({
66
- field: 'fechaFin',
67
- message: `La fecha de fin es requerida para la modalidad de contratacion ${alta.modalidadContratacion}`,
68
- value: alta.fechaFin,
69
- });
70
- }
71
- // Validate fecha range if both dates exist
72
- if (alta.fechaFin) {
73
- collectErrors(() => validateFechaRango(alta.fechaInicio, alta.fechaFin), errors);
74
- }
75
- if (errors.length > 0) {
76
- throw new ArcaValidationError(`Datos de alta invalidos: ${errors.map(e => e.message).join('; ')}`, errors);
20
+ if (!PREFIJOS_CUIL_PERSONA_FISICA.includes(normalizado.slice(0, 2))) {
21
+ throw new ArcaValidationError(`CUIL inválido: "${cuil}". El prefijo ${normalizado.slice(0, 2)} no corresponde a una persona física (20, 23, 24 o 27).`, [{ field, message: `Prefijo ${normalizado.slice(0, 2)} no es de persona física`, value: cuil }], field);
77
22
  }
23
+ return normalizado;
78
24
  }
79
- /**
80
- * Validates all fields of a BajaEmpleado record.
81
- * @throws ArcaValidationError if any field is invalid.
82
- */
83
- export function validateBaja(baja) {
84
- const errors = [];
85
- collectErrors(() => validateCuil(baja.cuil), errors);
86
- collectErrors(() => validateFecha(baja.fechaBaja, 'fechaBaja'), errors);
87
- if (baja.motivoBaja == null || typeof baja.motivoBaja !== 'number') {
88
- errors.push({
89
- field: 'motivoBaja',
90
- message: 'El motivo de baja es requerido',
91
- value: baja.motivoBaja,
92
- });
93
- }
94
- if (errors.length > 0) {
95
- throw new ArcaValidationError(`Datos de baja invalidos: ${errors.map(e => e.message).join('; ')}`, errors);
96
- }
25
+ function presente(v) {
26
+ return v !== undefined && v !== null && v !== '';
97
27
  }
98
- /**
99
- * Validates all fields of a ModificacionEmpleado record.
100
- * @throws ArcaValidationError if any field is invalid.
101
- */
102
- export function validateModificacion(mod) {
103
- const errors = [];
104
- collectErrors(() => validateCuil(mod.cuil), errors);
105
- collectErrors(() => validateFecha(mod.fechaInicio, 'fechaInicio'), errors);
106
- if (mod.domicilioExplotacion) {
107
- collectErrorsWithPrefix(() => validateDomicilio(mod.domicilioExplotacion), errors, 'domicilioExplotacion');
108
- }
109
- if (mod.fechaFin) {
110
- collectErrors(() => validateFechaRango(mod.fechaInicio, mod.fechaFin), errors);
111
- }
112
- if (errors.length > 0) {
113
- throw new ArcaValidationError(`Datos de modificacion invalidos: ${errors.map(e => e.message).join('; ')}`, errors);
114
- }
115
- }
116
- /**
117
- * Validates all fields of a DatosComplementarios record.
118
- * @throws ArcaValidationError if any field is invalid.
119
- */
120
- export function validateDatosComplementarios(datos) {
121
- const errors = [];
122
- collectErrors(() => validateCuil(datos.cuil), errors);
123
- collectErrors(() => validateFecha(datos.fechaInicio, 'fechaInicio'), errors);
124
- if (datos.situacionRevista == null || typeof datos.situacionRevista !== 'number') {
125
- errors.push({
126
- field: 'situacionRevista',
127
- message: 'La situacion de revista es requerida',
128
- value: datos.situacionRevista,
129
- });
130
- }
131
- if (datos.remuneracion !== undefined && datos.remuneracion < 0) {
132
- errors.push({
133
- field: 'remuneracion',
134
- message: 'La remuneracion no puede ser negativa',
135
- value: datos.remuneracion,
136
- });
137
- }
138
- if (datos.cantidadHorasTrabajadas !== undefined && datos.cantidadHorasTrabajadas < 0) {
139
- errors.push({
140
- field: 'cantidadHorasTrabajadas',
141
- message: 'La cantidad de horas trabajadas no puede ser negativa',
142
- value: datos.cantidadHorasTrabajadas,
143
- });
144
- }
145
- if (datos.fechaPreaviso) {
146
- collectErrors(() => validateFecha(datos.fechaPreaviso, 'fechaPreaviso'), errors);
147
- }
148
- if (errors.length > 0) {
149
- throw new ArcaValidationError(`Datos complementarios invalidos: ${errors.map(e => e.message).join('; ')}`, errors);
28
+ function requerido(r, campos, errores) {
29
+ for (const c of campos) {
30
+ if (!presente(r[c])) {
31
+ errores.push({ field: c, message: `El campo "${c}" es obligatorio para el movimiento ${r.movimiento}`, value: r[c] });
32
+ }
150
33
  }
151
34
  }
152
35
  /**
153
- * Validates all fields of a DatosCBU record.
154
- * @throws ArcaValidationError if any field is invalid.
36
+ * Campos obligatorios por movimiento que valida el SDK en modo `strict`.
37
+ *
38
+ * - `AT`: los datos mínimos del alta según el manual (RG 5508/2024): CUIL, fecha de
39
+ * inicio, modalidad de contrato, obra social y domicilio de desempeño (sucursal).
40
+ * La fecha de fin es obligatoria en contratos a plazo fijo, pero el SDK no conoce la
41
+ * tabla de modalidades (no es pública) y no lo puede verificar.
42
+ * - `BT`: CUIL y fecha de fin (fecha de baja).
43
+ * - `MR`, `NA`, `NB`: CUIL.
44
+ *
45
+ * El servicio de ARCA aplica sus propias validaciones al importar el archivo.
155
46
  */
156
- export function validateCBUData(cbuData) {
157
- const errors = [];
158
- collectErrors(() => validateCuil(cbuData.cuil), errors);
159
- collectErrors(() => validateFecha(cbuData.fechaInicio, 'fechaInicio'), errors);
160
- collectErrors(() => validateCBU(cbuData.cbu), errors);
161
- if (errors.length > 0) {
162
- throw new ArcaValidationError(`Datos de CBU invalidos: ${errors.map(e => e.message).join('; ')}`, errors);
47
+ export const CAMPOS_OBLIGATORIOS = Object.freeze({
48
+ AT: Object.freeze(['cuil', 'fechaInicio', 'modalidadContrato', 'obraSocial', 'sucursal']),
49
+ BT: Object.freeze(['cuil', 'fechaFin']),
50
+ MR: Object.freeze(['cuil']),
51
+ NA: Object.freeze(['cuil']),
52
+ NB: Object.freeze(['cuil']),
53
+ });
54
+ function enRango(r, campo, validos, errores) {
55
+ const v = r[campo];
56
+ if (!presente(v))
57
+ return;
58
+ const n = Number(v);
59
+ if (!validos.includes(n)) {
60
+ errores.push({ field: campo, message: `"${campo}" debe ser uno de ${validos.join(', ')}`, value: v });
163
61
  }
164
62
  }
165
- /**
166
- * Validates all fields of a RelacionFamiliar record.
167
- * @throws ArcaValidationError if any field is invalid.
168
- */
169
- export function validateRelacionFamiliar(rel) {
170
- const errors = [];
171
- collectErrors(() => validateCuil(rel.cuil), errors);
172
- collectErrors(() => validateFecha(rel.fechaInicio, 'fechaInicio'), errors);
173
- if (rel.tipoRelacion == null || typeof rel.tipoRelacion !== 'number') {
174
- errors.push({
175
- field: 'tipoRelacion',
176
- message: 'El tipo de relacion familiar es requerido',
177
- value: rel.tipoRelacion,
178
- });
179
- }
180
- if (!rel.nombreFamiliar || rel.nombreFamiliar.trim() === '') {
181
- errors.push({
182
- field: 'nombreFamiliar',
183
- message: 'El nombre del familiar es requerido',
184
- value: rel.nombreFamiliar,
185
- });
186
- }
187
- if (!rel.apellidoFamiliar || rel.apellidoFamiliar.trim() === '') {
188
- errors.push({
189
- field: 'apellidoFamiliar',
190
- message: 'El apellido del familiar es requerido',
191
- value: rel.apellidoFamiliar,
192
- });
193
- }
194
- collectErrors(() => validateFecha(rel.fechaNacimiento, 'fechaNacimiento'), errors);
195
- // CUIL familiar validation (if provided)
196
- if (rel.cuilFamiliar) {
197
- collectErrorsAs(() => validateCuil(rel.cuilFamiliar), errors, 'cuilFamiliar');
198
- }
199
- // CUIL titular obra social validation (if provided)
200
- if (rel.cuilTitularObraSocial) {
201
- collectErrorsAs(() => validateCuil(rel.cuilTitularObraSocial), errors, 'cuilTitularObraSocial');
63
+ function fechaComparable(f) {
64
+ try {
65
+ return formatFechaSR(f);
202
66
  }
203
- if (errors.length > 0) {
204
- throw new ArcaValidationError(`Datos de relacion familiar invalidos: ${errors.map(e => e.message).join('; ')}`, errors);
67
+ catch {
68
+ return undefined; // el error de formato ya lo informa erroresDeFormato
205
69
  }
206
70
  }
207
71
  /**
208
- * Validates all fields of a DomicilioExplotacion record.
209
- * @throws ArcaValidationError if any field is invalid.
72
+ * Valida un registro completo: formato (que se pueda escribir en las 130 posiciones)
73
+ * y reglas de negocio (CUIL con dígito verificador y prefijo de persona física,
74
+ * campos obligatorios por movimiento, rectificación 00-05, marca 0-9, fechaFin ≥ fechaInicio).
75
+ * Informa todos los errores juntos.
76
+ * @throws ArcaValidationError
210
77
  */
211
- export function validateDomicilio(dom) {
212
- const errors = [];
213
- if (!dom) {
214
- throw new ArcaValidationError('El domicilio de explotacion es requerido.', [{ field: 'domicilioExplotacion', message: 'El domicilio de explotacion es requerido' }], 'domicilioExplotacion');
215
- }
216
- if (!dom.calle || dom.calle.trim() === '') {
217
- errors.push({
218
- field: 'calle',
219
- message: 'La calle es requerida',
220
- value: dom.calle,
221
- });
222
- }
223
- if (!dom.numero || dom.numero.trim() === '') {
224
- errors.push({
225
- field: 'numero',
226
- message: 'El numero es requerido',
227
- value: dom.numero,
228
- });
229
- }
230
- if (!dom.localidad || dom.localidad.trim() === '') {
231
- errors.push({
232
- field: 'localidad',
233
- message: 'La localidad es requerida',
234
- value: dom.localidad,
235
- });
236
- }
237
- if (!dom.codigoPostal || dom.codigoPostal.trim() === '') {
238
- errors.push({
239
- field: 'codigoPostal',
240
- message: 'El codigo postal es requerido',
241
- value: dom.codigoPostal,
242
- });
243
- }
244
- if (dom.provincia == null || typeof dom.provincia !== 'number' || dom.provincia < 0 || dom.provincia > 23) {
245
- errors.push({
246
- field: 'provincia',
247
- message: 'La provincia debe ser un valor entre 0 y 23',
248
- value: dom.provincia,
249
- });
78
+ export function validateRegistro(registro, opciones) {
79
+ const errores = erroresDeFormato(registro, opciones);
80
+ if (errores.length === 1 && errores[0].field === 'registro') {
81
+ throw new ArcaValidationError(errores[0].message, errores, 'registro');
82
+ }
83
+ const conErrorDeFormato = new Set(errores.map((e) => e.field));
84
+ if (!conErrorDeFormato.has('cuil')) {
85
+ collectErrors(() => validateCuilTrabajador(registro.cuil), errores);
86
+ }
87
+ const obligatorios = CAMPOS_OBLIGATORIOS[registro.movimiento];
88
+ if (obligatorios)
89
+ requerido(registro, [...obligatorios], errores);
90
+ enRango(registro, 'rectificacion', VALORES_RECTIFICACION, errores);
91
+ enRango(registro, 'marcaCovidTipoContratoCCG', VALORES_MARCA_COVID_CCG, errores);
92
+ if (presente(registro.fechaInicio) && presente(registro.fechaFin)) {
93
+ const ini = fechaComparable(registro.fechaInicio);
94
+ const fin = fechaComparable(registro.fechaFin);
95
+ if (ini && fin && fin < ini) {
96
+ errores.push({ field: 'fechaFin', message: `fechaFin (${fin}) es anterior a fechaInicio (${ini})`, value: registro.fechaFin });
97
+ }
250
98
  }
251
- if (errors.length > 0) {
252
- throw new ArcaValidationError(`Domicilio de explotacion invalido: ${errors.map(e => e.message).join('; ')}`, errors);
99
+ if (errores.length > 0) {
100
+ throw new ArcaValidationError(`Registro ${String(registro.movimiento)} inválido: ${errores.map((e) => e.message).join('; ')}`, errores, errores[0].field);
253
101
  }
254
102
  }
255
103
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}