@ramiidv/arca-empleados 0.1.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.
- package/LICENSE +21 -0
- package/README.md +380 -0
- package/dist/constants.d.ts +314 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +511 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors.d.ts +16 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +22 -0
- package/dist/errors.js.map +1 -0
- package/dist/f935-builder.d.ts +91 -0
- package/dist/f935-builder.d.ts.map +1 -0
- package/dist/f935-builder.js +246 -0
- package/dist/f935-builder.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/serializer.d.ts +58 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/serializer.js +304 -0
- package/dist/serializer.js.map +1 -0
- package/dist/types.d.ts +204 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/validators.d.ts +38 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/validators.js +255 -0
- package/dist/validators.js.map +1 -0
- package/llms.txt +269 -0
- package/package.json +64 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { ArcaEmpleadosConfig, AltaEmpleado, BajaEmpleado, ModificacionEmpleado, DatosComplementarios, DatosCBU, RelacionFamiliar, DomicilioExplotacion, F935Registro, F935Output, F935Resumen } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Builder class for generating ARCA F935 bulk employee management files.
|
|
4
|
+
*
|
|
5
|
+
* Supports method chaining for adding records and generates the complete
|
|
6
|
+
* file content via the `generar()` method.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const sdk = new ArcaEmpleados({ cuitEmpleador: '30-71234567-9' });
|
|
11
|
+
* const output = sdk
|
|
12
|
+
* .alta({ cuil: '20-12345678-9', fechaInicio: new Date(), ... })
|
|
13
|
+
* .datosComplementarios({ cuil: '20-12345678-9', ... })
|
|
14
|
+
* .generar();
|
|
15
|
+
*
|
|
16
|
+
* fs.writeFileSync('F935.txt', output.contenido);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class ArcaEmpleados {
|
|
20
|
+
private readonly config;
|
|
21
|
+
private _registros;
|
|
22
|
+
constructor(config: ArcaEmpleadosConfig);
|
|
23
|
+
/** Returns a shallow copy of the stored records. */
|
|
24
|
+
get registros(): F935Registro[];
|
|
25
|
+
/**
|
|
26
|
+
* Adds an employee registration (alta) record.
|
|
27
|
+
* Validates the data if strict mode is enabled.
|
|
28
|
+
*/
|
|
29
|
+
alta(data: AltaEmpleado): this;
|
|
30
|
+
/**
|
|
31
|
+
* Adds an employee termination (baja) record.
|
|
32
|
+
* Validates the data if strict mode is enabled.
|
|
33
|
+
*/
|
|
34
|
+
baja(data: BajaEmpleado): this;
|
|
35
|
+
/**
|
|
36
|
+
* Adds an employee modification record.
|
|
37
|
+
* Validates the data if strict mode is enabled.
|
|
38
|
+
*/
|
|
39
|
+
modificacion(data: ModificacionEmpleado): this;
|
|
40
|
+
/**
|
|
41
|
+
* Adds supplementary worker data.
|
|
42
|
+
* Validates the data if strict mode is enabled.
|
|
43
|
+
*/
|
|
44
|
+
datosComplementarios(data: DatosComplementarios): this;
|
|
45
|
+
/**
|
|
46
|
+
* Adds a CBU (banking data) record.
|
|
47
|
+
* Validates the data if strict mode is enabled.
|
|
48
|
+
*/
|
|
49
|
+
cbu(data: DatosCBU): this;
|
|
50
|
+
/**
|
|
51
|
+
* Adds a family relationship record.
|
|
52
|
+
* Validates the data if strict mode is enabled.
|
|
53
|
+
*/
|
|
54
|
+
relacionFamiliar(data: RelacionFamiliar): this;
|
|
55
|
+
/**
|
|
56
|
+
* Adds a work location address record.
|
|
57
|
+
* Validates the data if strict mode is enabled.
|
|
58
|
+
*/
|
|
59
|
+
domicilioExplotacion(data: DomicilioExplotacion & {
|
|
60
|
+
cuil: string;
|
|
61
|
+
}): this;
|
|
62
|
+
/**
|
|
63
|
+
* Adds multiple employee registrations (altas) at once.
|
|
64
|
+
* Validates each record if strict mode is enabled.
|
|
65
|
+
* Stops at the first validation error.
|
|
66
|
+
*/
|
|
67
|
+
altasMasivas(data: AltaEmpleado[]): this;
|
|
68
|
+
/**
|
|
69
|
+
* Adds multiple employee terminations (bajas) at once.
|
|
70
|
+
* Validates each record if strict mode is enabled.
|
|
71
|
+
* Stops at the first validation error.
|
|
72
|
+
*/
|
|
73
|
+
bajasMasivas(data: BajaEmpleado[]): this;
|
|
74
|
+
/**
|
|
75
|
+
* Generates the F935 file content and metadata.
|
|
76
|
+
* Validates all records and serializes them to the pipe-delimited format.
|
|
77
|
+
*
|
|
78
|
+
* @throws ArcaValidationError if any record fails validation.
|
|
79
|
+
* @throws ArcaSerializationError if serialization fails.
|
|
80
|
+
*/
|
|
81
|
+
generar(): F935Output;
|
|
82
|
+
/**
|
|
83
|
+
* Returns a summary of the currently stored records.
|
|
84
|
+
*/
|
|
85
|
+
resumen(): F935Resumen;
|
|
86
|
+
/**
|
|
87
|
+
* Clears all stored records.
|
|
88
|
+
*/
|
|
89
|
+
limpiar(): this;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=f935-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"f935-builder.d.ts","sourceRoot":"","sources":["../src/f935-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EAEpB,YAAY,EACZ,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAC;AAcpB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6G;IACpI,OAAO,CAAC,UAAU,CAAsB;gBAE5B,MAAM,EAAE,mBAAmB;IAevC,oDAAoD;IACpD,IAAI,SAAS,IAAI,YAAY,EAAE,CAE9B;IAMD;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAQ9B;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAQ9B;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAQ9C;;;OAGG;IACH,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAQtD;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAQzB;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAQ9C;;;OAGG;IACH,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAazE;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IAOxC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IAWxC;;;;;;OAMG;IACH,OAAO,IAAI,UAAU;IAsCrB;;OAEG;IACH,OAAO,IAAI,WAAW;IAqCtB;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { ArcaValidationError, ArcaSerializationError } from './errors.js';
|
|
2
|
+
import { validateCuil, validateAlta, validateBaja, validateModificacion, validateDatosComplementarios, validateCBUData, validateRelacionFamiliar, validateDomicilio, } from './validators.js';
|
|
3
|
+
import { serializeArchivo } from './serializer.js';
|
|
4
|
+
/**
|
|
5
|
+
* Builder class for generating ARCA F935 bulk employee management files.
|
|
6
|
+
*
|
|
7
|
+
* Supports method chaining for adding records and generates the complete
|
|
8
|
+
* file content via the `generar()` method.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const sdk = new ArcaEmpleados({ cuitEmpleador: '30-71234567-9' });
|
|
13
|
+
* const output = sdk
|
|
14
|
+
* .alta({ cuil: '20-12345678-9', fechaInicio: new Date(), ... })
|
|
15
|
+
* .datosComplementarios({ cuil: '20-12345678-9', ... })
|
|
16
|
+
* .generar();
|
|
17
|
+
*
|
|
18
|
+
* fs.writeFileSync('F935.txt', output.contenido);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export class ArcaEmpleados {
|
|
22
|
+
config;
|
|
23
|
+
_registros = [];
|
|
24
|
+
constructor(config) {
|
|
25
|
+
// Validate employer CUIT
|
|
26
|
+
const normalizedCuit = validateCuil(config.cuitEmpleador);
|
|
27
|
+
this.config = {
|
|
28
|
+
cuitEmpleador: normalizedCuit,
|
|
29
|
+
razonSocial: config.razonSocial,
|
|
30
|
+
strict: config.strict ?? true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Read-only access to stored records
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
/** Returns a shallow copy of the stored records. */
|
|
37
|
+
get registros() {
|
|
38
|
+
return [...this._registros];
|
|
39
|
+
}
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// Add individual records
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
/**
|
|
44
|
+
* Adds an employee registration (alta) record.
|
|
45
|
+
* Validates the data if strict mode is enabled.
|
|
46
|
+
*/
|
|
47
|
+
alta(data) {
|
|
48
|
+
if (this.config.strict) {
|
|
49
|
+
validateAlta(data);
|
|
50
|
+
}
|
|
51
|
+
this._registros.push({ tipo: 1, operacion: 0, data });
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Adds an employee termination (baja) record.
|
|
56
|
+
* Validates the data if strict mode is enabled.
|
|
57
|
+
*/
|
|
58
|
+
baja(data) {
|
|
59
|
+
if (this.config.strict) {
|
|
60
|
+
validateBaja(data);
|
|
61
|
+
}
|
|
62
|
+
this._registros.push({ tipo: 1, operacion: 1, data });
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Adds an employee modification record.
|
|
67
|
+
* Validates the data if strict mode is enabled.
|
|
68
|
+
*/
|
|
69
|
+
modificacion(data) {
|
|
70
|
+
if (this.config.strict) {
|
|
71
|
+
validateModificacion(data);
|
|
72
|
+
}
|
|
73
|
+
this._registros.push({ tipo: 1, operacion: 2, data });
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Adds supplementary worker data.
|
|
78
|
+
* Validates the data if strict mode is enabled.
|
|
79
|
+
*/
|
|
80
|
+
datosComplementarios(data) {
|
|
81
|
+
if (this.config.strict) {
|
|
82
|
+
validateDatosComplementarios(data);
|
|
83
|
+
}
|
|
84
|
+
this._registros.push({ tipo: 2, data });
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Adds a CBU (banking data) record.
|
|
89
|
+
* Validates the data if strict mode is enabled.
|
|
90
|
+
*/
|
|
91
|
+
cbu(data) {
|
|
92
|
+
if (this.config.strict) {
|
|
93
|
+
validateCBUData(data);
|
|
94
|
+
}
|
|
95
|
+
this._registros.push({ tipo: 3, data });
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Adds a family relationship record.
|
|
100
|
+
* Validates the data if strict mode is enabled.
|
|
101
|
+
*/
|
|
102
|
+
relacionFamiliar(data) {
|
|
103
|
+
if (this.config.strict) {
|
|
104
|
+
validateRelacionFamiliar(data);
|
|
105
|
+
}
|
|
106
|
+
this._registros.push({ tipo: 4, data });
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Adds a work location address record.
|
|
111
|
+
* Validates the data if strict mode is enabled.
|
|
112
|
+
*/
|
|
113
|
+
domicilioExplotacion(data) {
|
|
114
|
+
if (this.config.strict) {
|
|
115
|
+
validateCuil(data.cuil);
|
|
116
|
+
validateDomicilio(data);
|
|
117
|
+
}
|
|
118
|
+
this._registros.push({ tipo: 5, data });
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
// ---------------------------------------------------------------------------
|
|
122
|
+
// Bulk operations
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
/**
|
|
125
|
+
* Adds multiple employee registrations (altas) at once.
|
|
126
|
+
* Validates each record if strict mode is enabled.
|
|
127
|
+
* Stops at the first validation error.
|
|
128
|
+
*/
|
|
129
|
+
altasMasivas(data) {
|
|
130
|
+
for (const item of data) {
|
|
131
|
+
this.alta(item);
|
|
132
|
+
}
|
|
133
|
+
return this;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Adds multiple employee terminations (bajas) at once.
|
|
137
|
+
* Validates each record if strict mode is enabled.
|
|
138
|
+
* Stops at the first validation error.
|
|
139
|
+
*/
|
|
140
|
+
bajasMasivas(data) {
|
|
141
|
+
for (const item of data) {
|
|
142
|
+
this.baja(item);
|
|
143
|
+
}
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
// Generate output
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
/**
|
|
150
|
+
* Generates the F935 file content and metadata.
|
|
151
|
+
* Validates all records and serializes them to the pipe-delimited format.
|
|
152
|
+
*
|
|
153
|
+
* @throws ArcaValidationError if any record fails validation.
|
|
154
|
+
* @throws ArcaSerializationError if serialization fails.
|
|
155
|
+
*/
|
|
156
|
+
generar() {
|
|
157
|
+
if (this._registros.length === 0) {
|
|
158
|
+
throw new ArcaValidationError('No hay registros para generar el archivo.', [{ field: 'registros', message: 'Debe agregar al menos un registro antes de generar el archivo' }]);
|
|
159
|
+
}
|
|
160
|
+
const archivo = {
|
|
161
|
+
cuitEmpleador: this.config.cuitEmpleador,
|
|
162
|
+
razonSocial: this.config.razonSocial,
|
|
163
|
+
fechaGeneracion: new Date(),
|
|
164
|
+
registros: [...this._registros],
|
|
165
|
+
cantidadRegistros: this._registros.length,
|
|
166
|
+
};
|
|
167
|
+
let contenido;
|
|
168
|
+
try {
|
|
169
|
+
contenido = serializeArchivo(archivo);
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
if (error instanceof ArcaSerializationError) {
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
176
|
+
throw new ArcaSerializationError(`Error al generar el archivo F935: ${message}`);
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
contenido,
|
|
180
|
+
archivo,
|
|
181
|
+
resumen: this.resumen(),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// ---------------------------------------------------------------------------
|
|
185
|
+
// Utilities
|
|
186
|
+
// ---------------------------------------------------------------------------
|
|
187
|
+
/**
|
|
188
|
+
* Returns a summary of the currently stored records.
|
|
189
|
+
*/
|
|
190
|
+
resumen() {
|
|
191
|
+
let altas = 0;
|
|
192
|
+
let bajas = 0;
|
|
193
|
+
let modificaciones = 0;
|
|
194
|
+
let datosComp = 0;
|
|
195
|
+
let cbus = 0;
|
|
196
|
+
let familiares = 0;
|
|
197
|
+
let domicilios = 0;
|
|
198
|
+
for (const reg of this._registros) {
|
|
199
|
+
switch (reg.tipo) {
|
|
200
|
+
case 1:
|
|
201
|
+
switch (reg.operacion) {
|
|
202
|
+
case 0:
|
|
203
|
+
altas++;
|
|
204
|
+
break;
|
|
205
|
+
case 1:
|
|
206
|
+
bajas++;
|
|
207
|
+
break;
|
|
208
|
+
case 2:
|
|
209
|
+
modificaciones++;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
break;
|
|
213
|
+
case 2:
|
|
214
|
+
datosComp++;
|
|
215
|
+
break;
|
|
216
|
+
case 3:
|
|
217
|
+
cbus++;
|
|
218
|
+
break;
|
|
219
|
+
case 4:
|
|
220
|
+
familiares++;
|
|
221
|
+
break;
|
|
222
|
+
case 5:
|
|
223
|
+
domicilios++;
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
totalRegistros: this._registros.length,
|
|
229
|
+
altas,
|
|
230
|
+
bajas,
|
|
231
|
+
modificaciones,
|
|
232
|
+
datosComplementarios: datosComp,
|
|
233
|
+
cbus,
|
|
234
|
+
familiares,
|
|
235
|
+
domicilios,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Clears all stored records.
|
|
240
|
+
*/
|
|
241
|
+
limpiar() {
|
|
242
|
+
this._registros = [];
|
|
243
|
+
return this;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=f935-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"f935-builder.js","sourceRoot":"","sources":["../src/f935-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { ArcaEmpleados } from './f935-builder.js';
|
|
2
|
+
export { ArcaError, ArcaValidationError, ArcaEmpleadosError, ArcaSerializationError, } from './errors.js';
|
|
3
|
+
export type { ValidationErrorDetail } from './errors.js';
|
|
4
|
+
export type { ArcaEmpleadosConfig, DomicilioExplotacion, AltaEmpleado, BajaEmpleado, ModificacionEmpleado, DatosComplementarios, DatosCBU, RelacionFamiliar, F935RegistroAlta, F935RegistroBaja, F935RegistroModificacion, F935RegistroDatosComplementarios, F935RegistroCBU, F935RegistroRelacionFamiliar, F935RegistroDomicilio, F935Registro, F935Archivo, F935Resumen, F935Output, } from './types.js';
|
|
5
|
+
export { ModalidadContratacion, SituacionRevista, MotivoBaja, NivelEducacion, EstadoCivil, TipoRelacionFamiliar, Provincia, TipoServicio, ModalidadLiquidacion, TipoOperacion, TipoCuenta, Escolaridad, MODALIDAD_CONTRATACION_DESCRIPCION, MOTIVO_BAJA_DESCRIPCION, SITUACION_REVISTA_DESCRIPCION, NIVEL_EDUCACION_DESCRIPCION, ESTADO_CIVIL_DESCRIPCION, TIPO_RELACION_FAMILIAR_DESCRIPCION, PROVINCIA_DESCRIPCION, MODALIDAD_LIQUIDACION_DESCRIPCION, TIPO_CUENTA_DESCRIPCION, ESCOLARIDAD_DESCRIPCION, TIPO_SERVICIO_DESCRIPCION, MODALIDADES_CON_FECHA_FIN, } from './constants.js';
|
|
6
|
+
export { validateCuil, validateCBU, normalizeCuil, formatCuil, validateFecha, validateFechaRango, validateAlta, validateBaja, validateModificacion, validateDatosComplementarios, validateCBUData, validateRelacionFamiliar, validateDomicilio, } from './validators.js';
|
|
7
|
+
export { formatDate, boolToStr, serializeArchivo, serializeHeader, serializeAlta, serializeBaja, serializeModificacion, serializeDatosComplementarios, serializeCBU, serializeRelacionFamiliar, serializeDomicilio, } from './serializer.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAKzD,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,gCAAgC,EAChC,eAAe,EACf,4BAA4B,EAC5B,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,WAAW,EACX,kCAAkC,EAClC,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,qBAAqB,EACrB,iCAAiC,EACjC,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,4BAA4B,EAC5B,eAAe,EACf,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Main class
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export { ArcaEmpleados } from './f935-builder.js';
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Errors (base from common, domain-specific local)
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
export { ArcaError, ArcaValidationError, ArcaEmpleadosError, ArcaSerializationError, } from './errors.js';
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// Constants / Enums
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
export { ModalidadContratacion, SituacionRevista, MotivoBaja, NivelEducacion, EstadoCivil, TipoRelacionFamiliar, Provincia, TipoServicio, ModalidadLiquidacion, TipoOperacion, TipoCuenta, Escolaridad, MODALIDAD_CONTRATACION_DESCRIPCION, MOTIVO_BAJA_DESCRIPCION, SITUACION_REVISTA_DESCRIPCION, NIVEL_EDUCACION_DESCRIPCION, ESTADO_CIVIL_DESCRIPCION, TIPO_RELACION_FAMILIAR_DESCRIPCION, PROVINCIA_DESCRIPCION, MODALIDAD_LIQUIDACION_DESCRIPCION, TIPO_CUENTA_DESCRIPCION, ESCOLARIDAD_DESCRIPCION, TIPO_SERVICIO_DESCRIPCION, MODALIDADES_CON_FECHA_FIN, } from './constants.js';
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Validators / Utilities (shared from common + local record-level)
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
export { validateCuil, validateCBU, normalizeCuil, formatCuil, validateFecha, validateFechaRango, validateAlta, validateBaja, validateModificacion, validateDatosComplementarios, validateCBUData, validateRelacionFamiliar, validateDomicilio, } from './validators.js';
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Serializer (advanced usage)
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
export { formatDate, boolToStr, serializeArchivo, serializeHeader, serializeAlta, serializeBaja, serializeModificacion, serializeDatosComplementarios, serializeCBU, serializeRelacionFamiliar, serializeDomicilio, } from './serializer.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAC9E,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AA4BrB,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAC9E,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,WAAW,EACX,kCAAkC,EAClC,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,qBAAqB,EACrB,iCAAiC,EACjC,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAC9E,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,4BAA4B,EAC5B,eAAe,EACf,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAC9E,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,6BAA6B,EAC7B,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { AltaEmpleado, BajaEmpleado, ModificacionEmpleado, DatosComplementarios, DatosCBU, RelacionFamiliar, DomicilioExplotacion, F935Archivo } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Formats a Date as DDMMYYYY.
|
|
4
|
+
*/
|
|
5
|
+
export declare function formatDate(date: Date): string;
|
|
6
|
+
/**
|
|
7
|
+
* Converts a boolean to 'S' or 'N'.
|
|
8
|
+
*/
|
|
9
|
+
export declare function boolToStr(val?: boolean): string;
|
|
10
|
+
/**
|
|
11
|
+
* Serializes the file header line.
|
|
12
|
+
* Format: 00|CUIT|RAZON_SOCIAL|FECHA_GENERACION|CANTIDAD_REGISTROS|
|
|
13
|
+
*/
|
|
14
|
+
export declare function serializeHeader(archivo: F935Archivo): string;
|
|
15
|
+
/**
|
|
16
|
+
* Serializes an alta (employee registration) record.
|
|
17
|
+
* Format: 01|CUIT_EMPLEADOR|TIPO_OP|CUIL|FECHA_INICIO|MODALIDAD|OBRA_SOCIAL|ACTIVIDAD|AGROPECUARIO|FECHA_FIN|CALLE|NUMERO|PISO|DEPTO|LOCALIDAD|CP|PROVINCIA|TELEFONO|
|
|
18
|
+
*/
|
|
19
|
+
export declare function serializeAlta(cuitEmpleador: string, alta: AltaEmpleado): string;
|
|
20
|
+
/**
|
|
21
|
+
* Serializes a baja (employee termination) record.
|
|
22
|
+
* Format: 01|CUIT_EMPLEADOR|TIPO_OP|CUIL|FECHA_BAJA|MOTIVO_BAJA|
|
|
23
|
+
*/
|
|
24
|
+
export declare function serializeBaja(cuitEmpleador: string, baja: BajaEmpleado): string;
|
|
25
|
+
/**
|
|
26
|
+
* Serializes a modificacion (employee modification) record.
|
|
27
|
+
* Format: 01|CUIT_EMPLEADOR|TIPO_OP|CUIL|FECHA_INICIO|MODALIDAD|OBRA_SOCIAL|ACTIVIDAD|AGROPECUARIO|FECHA_FIN|CALLE|NUMERO|PISO|DEPTO|LOCALIDAD|CP|PROVINCIA|TELEFONO|
|
|
28
|
+
*/
|
|
29
|
+
export declare function serializeModificacion(cuitEmpleador: string, mod: ModificacionEmpleado): string;
|
|
30
|
+
/**
|
|
31
|
+
* Serializes a datos complementarios record.
|
|
32
|
+
* Format: 02|CUIT_EMPLEADOR|CUIL|FECHA_INICIO|SITUACION_REVISTA|NIVEL_EDUCACION|PUESTO|CCT|TIPO_SERVICIO|MOD_LIQUIDACION|ESTADO_CIVIL|REMUNERACION|HORAS|APORTE_ADICIONAL|CONTRIB_TAREAS_DIF|COD_SINIESTRADO|MARCA_PREAVISO|FECHA_PREAVISO|CONCEPTO_LIQUIDACION|
|
|
33
|
+
*/
|
|
34
|
+
export declare function serializeDatosComplementarios(cuitEmpleador: string, datos: DatosComplementarios): string;
|
|
35
|
+
/**
|
|
36
|
+
* Serializes a CBU record.
|
|
37
|
+
* Format: 03|CUIT_EMPLEADOR|CUIL|FECHA_INICIO|CBU|TIPO_CUENTA|
|
|
38
|
+
*/
|
|
39
|
+
export declare function serializeCBU(cuitEmpleador: string, cbuData: DatosCBU): string;
|
|
40
|
+
/**
|
|
41
|
+
* Serializes a relacion familiar record.
|
|
42
|
+
* Format: 04|CUIT_EMPLEADOR|CUIL|FECHA_INICIO|TIPO_RELACION|CUIL_FAMILIAR|DNI_FAMILIAR|NOMBRE|APELLIDO|FECHA_NACIMIENTO|DISCAPACITADO|ESCOLARIDAD|OBRA_SOCIAL_FAMILIAR|CUIL_TITULAR_OS|
|
|
43
|
+
*/
|
|
44
|
+
export declare function serializeRelacionFamiliar(cuitEmpleador: string, rel: RelacionFamiliar): string;
|
|
45
|
+
/**
|
|
46
|
+
* Serializes a domicilio de explotacion record.
|
|
47
|
+
* Format: 05|CUIT_EMPLEADOR|CUIL|CALLE|NUMERO|PISO|DEPTO|LOCALIDAD|CP|PROVINCIA|TELEFONO|ACTIVIDAD_ECONOMICA|
|
|
48
|
+
*/
|
|
49
|
+
export declare function serializeDomicilio(cuitEmpleador: string, dom: DomicilioExplotacion & {
|
|
50
|
+
cuil: string;
|
|
51
|
+
}): string;
|
|
52
|
+
/**
|
|
53
|
+
* Serializes a complete F935Archivo to a string.
|
|
54
|
+
* Returns the full file content with header and all record lines.
|
|
55
|
+
* @throws ArcaSerializationError if serialization fails.
|
|
56
|
+
*/
|
|
57
|
+
export declare function serializeArchivo(archivo: F935Archivo): string;
|
|
58
|
+
//# sourceMappingURL=serializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EAEZ,MAAM,YAAY,CAAC;AAQpB;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAK7C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAE/C;AA6CD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAM5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CA0B/E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAa/E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,MAAM,CA0B9F;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,oBAAoB,GAC1B,MAAM,CA0BR;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAa7E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,gBAAgB,GACpB,MAAM,CAqBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3C,MAAM,CAmBR;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAoB7D"}
|