@ramiidv/arca-fecred 0.3.0 → 0.4.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,11 +1,11 @@
1
- import type { ArcaEvent, CallOptions, LegacyTlsMode, ServerStatus } from '@ramiidv/arca-common';
1
+ import { SoapServiceClient } from '@ramiidv/arca-common';
2
+ import type { ArcaEvent, CallOptions, LegacyTlsMode, ServerStatus, SoapServiceClientConfig } from '@ramiidv/arca-common';
2
3
  import type { AceptarFecredParams, CodigoDescripcion, ConsultarComprobantesParams, ConsultarComprobantesResult, ConsultarCtaCteResult, ConsultarCtasCtesParams, ConsultarCtasCtesResult, ConsultarCuentasEnAgtDptoCltvResult, ConsultarFacturasAgtDptoCltvParams, ConsultarFacturasAgtDptoCltvResult, ConsultarMontoObligadoRecepcionParams, HistorialEstadosComprobanteResult, HistorialEstadosCtaCteResult, IdComprobante, IdComprobanteInput, IdCtaCteInput, InformarCancelacionTotalParams, InformarFacturaAgtDptoCltvParams, ModificarOpcionTransferenciaParams, MontoObligadoRecepcionResult, ObligadoRecepcionResult, OperacionFecredResult, RechazarFecredParams, RechazarNotaDCParams, RechazarNotaDCResult, TipoRetencion, WsAuth } from './types.js';
3
- export interface FecredClientConfig {
4
- /** URL de FECredService. */
5
- endpoint: string;
6
- /** Namespace del servicio (`http://ar.gob.afip.wsfecred/FECredService/`). */
7
- namespace: string;
8
- /** Opciones de transporte SOAP. */
4
+ export interface FecredClientConfig extends SoapServiceClientConfig {
5
+ /**
6
+ * Opciones de transporte SOAP.
7
+ * @deprecated Usá `transport` (se ignora si se pasa `transport`).
8
+ */
9
9
  soapOptions?: {
10
10
  timeout?: number;
11
11
  retries?: number;
@@ -13,7 +13,10 @@ export interface FecredClientConfig {
13
13
  fetch?: typeof fetch;
14
14
  legacyTls?: LegacyTlsMode;
15
15
  };
16
- /** Callback de eventos. */
16
+ /**
17
+ * Callback de eventos.
18
+ * @deprecated Usá `transport.onEvent` (se ignora si se pasa `transport`).
19
+ */
17
20
  onEvent?: (event: ArcaEvent) => void;
18
21
  }
19
22
  /**
@@ -31,19 +34,22 @@ export type WsAuthSource = WsAuth | (() => Promise<WsAuth>);
31
34
  * modificar) se envían como `kind: 'emision'`: nunca se reintentan y, si la
32
35
  * respuesta se pierde, el `ArcaSoapError` tiene `uncertain = true`.
33
36
  */
34
- export declare class FecredClient {
35
- protected readonly endpoint: string;
36
- protected readonly namespace: string;
37
- protected readonly soapOptions: NonNullable<FecredClientConfig['soapOptions']>;
38
- protected readonly onEvent?: (event: ArcaEvent) => void;
37
+ export declare class FecredClient extends SoapServiceClient {
39
38
  constructor(config: FecredClientConfig);
40
39
  /**
41
40
  * Llama a `method` con el wrapper `<method>Request` (o Body vacío si `auth`
42
- * es `null`), `SOAPAction = namespace + method`, y chequea errores de negocio.
41
+ * es `null`), `SOAPAction = namespace + method`, y chequea errores de negocio
42
+ * (`arrayErrores`/`arrayErroresFormato`). La respuesta queda como texto
43
+ * (`parseNumbers: false`) para decodificarla con los schemas.
43
44
  */
44
45
  private call;
45
- private operacion;
46
- private codigosDescripciones;
46
+ /** Consulta: valida el request con `reqSchema` (si hay) y decodifica la respuesta con `respSchema`. */
47
+ private consulta;
48
+ /**
49
+ * Emisión con `resultado`: `R` sin errores informados (no debería pasar)
50
+ * también se lanza como `ArcaServiceError`, con las observaciones como detalle.
51
+ */
52
+ private emision;
47
53
  /** `dummy`: estado de los servidores (sin autenticación). */
48
54
  dummy(opts?: CallOptions): Promise<ServerStatus>;
49
55
  /** `consultarMontoObligadoRecepcion`: si la CUIT está obligada a recibir FCE y desde qué monto. */
@@ -80,6 +86,7 @@ export declare class FecredClient {
80
86
  consultarFacturasAgtDptoCltv(auth: WsAuthSource, params?: ConsultarFacturasAgtDptoCltvParams, opts?: CallOptions): Promise<ConsultarFacturasAgtDptoCltvResult>;
81
87
  /** `consultarTiposRetenciones`. */
82
88
  consultarTiposRetenciones(auth: WsAuthSource, opts?: CallOptions): Promise<TipoRetencion[]>;
89
+ private codigosDescripciones;
83
90
  /** `consultarTiposFormasCancelacion`. */
84
91
  consultarTiposFormasCancelacion(auth: WsAuthSource, opts?: CallOptions): Promise<CodigoDescripcion[]>;
85
92
  /** `consultarTiposMotivosRechazo`. */
@@ -1 +1 @@
1
- {"version":3,"file":"fecred-client.d.ts","sourceRoot":"","sources":["../src/fecred-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fecred-client.d.ts","sourceRoot":"","sources":["../src/fecred-client.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,5 @@
1
- import { afipSoapCall } from '@ramiidv/arca-common';
2
- import { checkFecredErrors, invalidResponse, parseCodigosDescripciones, parseComprobante, parseCuentaCorriente, parseCuentaEnAgente, parseEstadoCmp, parseEstadoCtaCte, parseIdComprobante, parseIdCtaCte, parseInfo, parseInfoAgtDptoCltv, parseInfoCtaCte, parseItems, parseNum, parseOptNum, parseOptSiNo, parseOptStr, parseSiNo, parseStr, resultadoAprobado, } from './parsers.js';
3
- import { ajustesParam, cbuParam, codeParam, confirmarNotasParam, cotizacionParam, ctaAgenteParam, cuitParam, dateParam, estadoCmpParam, estadoCtaCteParam, fechaParam, formasCancelacionParam, idComprobanteParam, idCtaCteParam, importeParam, intParam, longParam, monedaParam, motivosRechazoParam, opcionTransferenciaParam, retencionesParam, rolParam, siNoParam, tipoCancelacionParam, } from './validation.js';
4
- /** Agrega al objeto solo los valores definidos (respetando el orden de inserción = orden del XSD). */
5
- function put(target, key, value) {
6
- if (value !== undefined)
7
- target[key] = value;
8
- }
1
+ import { ArcaServiceError, SoapServiceClient, checkServiceErrors, extractServiceErrors, parseServerStatus, } from '@ramiidv/arca-common';
2
+ import { decode, encode, REQ, RESP, SERVICE } from './schemas.js';
9
3
  // ---------------------------------------------------------------------------
10
4
  // FecredClient
11
5
  // ---------------------------------------------------------------------------
@@ -19,23 +13,22 @@ function put(target, key, value) {
19
13
  * modificar) se envían como `kind: 'emision'`: nunca se reintentan y, si la
20
14
  * respuesta se pierde, el `ArcaSoapError` tiene `uncertain = true`.
21
15
  */
22
- export class FecredClient {
23
- endpoint;
24
- namespace;
25
- soapOptions;
26
- onEvent;
16
+ export class FecredClient extends SoapServiceClient {
27
17
  constructor(config) {
28
- this.endpoint = config.endpoint;
29
- this.namespace = config.namespace;
30
- this.soapOptions = config.soapOptions ?? {};
31
- this.onEvent = config.onEvent;
18
+ super({
19
+ endpoint: config.endpoint,
20
+ namespace: config.namespace,
21
+ transport: config.transport ?? { ...config.soapOptions, onEvent: config.onEvent },
22
+ });
32
23
  }
33
24
  // -------------------------------------------------------------------------
34
- // Helper
25
+ // Helpers
35
26
  // -------------------------------------------------------------------------
36
27
  /**
37
28
  * Llama a `method` con el wrapper `<method>Request` (o Body vacío si `auth`
38
- * es `null`), `SOAPAction = namespace + method`, y chequea errores de negocio.
29
+ * es `null`), `SOAPAction = namespace + method`, y chequea errores de negocio
30
+ * (`arrayErrores`/`arrayErroresFormato`). La respuesta queda como texto
31
+ * (`parseNumbers: false`) para decodificarla con los schemas.
39
32
  */
40
33
  async call(method, authSource, fields, kind, opts) {
41
34
  // El auth se resuelve después de validar y armar `fields`: un dato inválido no llega a pedir un TA.
@@ -46,40 +39,43 @@ export class FecredClient {
46
39
  ...fields,
47
40
  }
48
41
  : {};
49
- const result = await afipSoapCall(this.endpoint, this.namespace, method, params, {
50
- ...this.soapOptions,
51
- onEvent: this.onEvent,
42
+ const result = await this.soapCall(method, params, {
52
43
  signal: opts?.signal,
53
44
  kind,
54
45
  requestElement: auth ? `${method}Request` : null,
55
46
  soapActionFromMethod: true,
47
+ parseNumbers: false,
56
48
  });
57
- checkFecredErrors(result);
49
+ checkServiceErrors(result, SERVICE);
58
50
  return result;
59
51
  }
60
- async operacion(method, auth, fields, opts) {
61
- const r = await this.call(method, auth, fields, 'emision', opts);
62
- return {
63
- resultado: resultadoAprobado(r, method),
64
- idCtaCte: parseIdCtaCte(r['idCtaCte'], `${method}.idCtaCte`),
65
- ...parseInfo(r, method),
66
- };
52
+ /** Consulta: valida el request con `reqSchema` (si hay) y decodifica la respuesta con `respSchema`. */
53
+ async consulta(method, auth, params, respSchema, opts) {
54
+ const fields = params ? encode(params[0], params[1], method) : {};
55
+ return decode(await this.call(method, auth, fields, 'consulta', opts), respSchema, method);
67
56
  }
68
- async codigosDescripciones(method, auth, opts) {
69
- const r = await this.call(method, auth, {}, 'consulta', opts);
70
- return parseCodigosDescripciones(r, 'arrayCodigoDescripcion', method);
57
+ /**
58
+ * Emisión con `resultado`: `R` sin errores informados (no debería pasar)
59
+ * también se lanza como `ArcaServiceError`, con las observaciones como detalle.
60
+ */
61
+ async emision(method, auth, input, reqSchema, respSchema, opts) {
62
+ const r = await this.call(method, auth, encode(input, reqSchema, method), 'emision', opts);
63
+ if (r['resultado'] === 'R') {
64
+ const { observaciones } = decode(r, RESP.info, method);
65
+ const details = [
66
+ ...extractServiceErrors(r),
67
+ ...observaciones.map((o) => ({ code: o.codigo, msg: o.descripcion })),
68
+ ];
69
+ throw new ArcaServiceError(`${SERVICE}: operación rechazada (resultado R)${details.length ? `: ${details.map((d) => `[${d.code}] ${d.msg}`).join(', ')}` : ''}`, details);
70
+ }
71
+ return decode(r, respSchema, method);
71
72
  }
72
73
  // -------------------------------------------------------------------------
73
74
  // Health check
74
75
  // -------------------------------------------------------------------------
75
76
  /** `dummy`: estado de los servidores (sin autenticación). */
76
77
  async dummy(opts) {
77
- const r = await this.call('dummy', null, {}, 'consulta', opts);
78
- return {
79
- appserver: parseStr(r, 'appserver', 'dummy'),
80
- dbserver: parseStr(r, 'dbserver', 'dummy'),
81
- authserver: parseStr(r, 'authserver', 'dummy'),
82
- };
78
+ return parseServerStatus(await this.call('dummy', null, {}, 'consulta', opts));
83
79
  }
84
80
  // -------------------------------------------------------------------------
85
81
  // Obligación de recepción
@@ -87,25 +83,12 @@ export class FecredClient {
87
83
  /** `consultarMontoObligadoRecepcion`: si la CUIT está obligada a recibir FCE y desde qué monto. */
88
84
  async consultarMontoObligadoRecepcion(auth, params, opts) {
89
85
  const m = 'consultarMontoObligadoRecepcion';
90
- const r = await this.call(m, auth, {
91
- cuitConsultada: cuitParam(params?.cuitConsultada, 'cuitConsultada'),
92
- fechaEmision: dateParam(params?.fechaEmision, 'fechaEmision'),
93
- }, 'consulta', opts);
94
- const out = { obligado: parseSiNo(r, 'obligado', m), ...parseInfo(r, m) };
95
- const monto = parseOptNum(r, 'montoDesde', m);
96
- if (monto !== undefined)
97
- out.montoDesde = monto;
98
- return out;
86
+ return this.consulta(m, auth, [params, REQ[m]], RESP[m], opts);
99
87
  }
100
88
  /** `consultarObligadoRecepcion`: si la CUIT está obligada a recibir FCE (campo `respuesta`) y desde cuándo. */
101
89
  async consultarObligadoRecepcion(auth, cuitConsultada, opts) {
102
90
  const m = 'consultarObligadoRecepcion';
103
- const r = await this.call(m, auth, { cuitConsultada: cuitParam(cuitConsultada, 'cuitConsultada') }, 'consulta', opts);
104
- const out = { obligado: parseSiNo(r, 'respuesta', m), ...parseInfo(r, m) };
105
- const desde = parseOptStr(r, 'desde', m);
106
- if (desde !== undefined)
107
- out.desde = desde;
108
- return out;
91
+ return this.consulta(m, auth, [{ cuitConsultada }, REQ[m]], RESP[m], opts);
109
92
  }
110
93
  // -------------------------------------------------------------------------
111
94
  // Cuentas corrientes y comprobantes
@@ -113,162 +96,66 @@ export class FecredClient {
113
96
  /** `consultarCtasCtes`: cuentas corrientes (paginado). */
114
97
  async consultarCtasCtes(auth, params, opts) {
115
98
  const m = 'consultarCtasCtes';
116
- const f = { rolCUITRepresentada: rolParam(params?.rol) };
117
- if (params.cuitContraparte !== undefined)
118
- f.CUITContraparte = cuitParam(params.cuitContraparte, 'cuitContraparte');
119
- if (params.fecha !== undefined)
120
- f.fecha = fechaParam(params.fecha);
121
- if (params.estadoCtaCte !== undefined)
122
- f.estadoCtaCte = estadoCtaCteParam(params.estadoCtaCte);
123
- if (params.nroPagina !== undefined)
124
- f.nroPagina = intParam(params.nroPagina, 'nroPagina', 1, 32767);
125
- if (params.opcionTransferencia !== undefined) {
126
- f.opcionTransferencia = opcionTransferenciaParam(params.opcionTransferencia);
127
- }
128
- const r = await this.call(m, auth, f, 'consulta', opts);
129
- const out = {
130
- ctasCtes: parseItems(r, 'arrayInfosCtaCte', 'infoCtaCte', m).map((x, i) => parseInfoCtaCte(x, `${m}.arrayInfosCtaCte.infoCtaCte[${i}]`)),
131
- ...parseInfo(r, m),
132
- };
133
- const nroPagina = parseOptNum(r, 'nroPagina', m);
134
- if (nroPagina !== undefined)
135
- out.nroPagina = nroPagina;
136
- const hayMas = parseOptSiNo(r, 'hayMas', m);
137
- if (hayMas !== undefined)
138
- out.hayMas = hayMas;
139
- return out;
99
+ return this.consulta(m, auth, [params, REQ[m]], RESP[m], opts);
140
100
  }
141
101
  /** `consultarCtaCte`: detalle de una cuenta corriente. */
142
102
  async consultarCtaCte(auth, idCtaCte, opts) {
143
103
  const m = 'consultarCtaCte';
144
- const r = await this.call(m, auth, { idCtaCte: idCtaCteParam(idCtaCte) }, 'consulta', opts);
145
- if (r['ctaCte'] === undefined || r['ctaCte'] === null || r['ctaCte'] === '')
146
- invalidResponse(`${m}.ctaCte`);
147
- return { ctaCte: parseCuentaCorriente(r['ctaCte'], `${m}.ctaCte`), ...parseInfo(r, m) };
104
+ return this.consulta(m, auth, [{ idCtaCte }, REQ.idCtaCte], RESP[m], opts);
148
105
  }
149
106
  /** `consultarComprobantes`: facturas y notas FCE (paginado). */
150
107
  async consultarComprobantes(auth, params, opts) {
151
108
  const m = 'consultarComprobantes';
152
- const f = { rolCUITRepresentada: rolParam(params?.rol) };
153
- if (params.cuitContraparte !== undefined)
154
- f.CUITContraparte = cuitParam(params.cuitContraparte, 'cuitContraparte');
155
- if (params.codTipoCmp !== undefined)
156
- f.codTipoCmp = codeParam(params.codTipoCmp, 'codTipoCmp');
157
- if (params.estadoCmp !== undefined)
158
- f.estadoCmp = estadoCmpParam(params.estadoCmp);
159
- if (params.fecha !== undefined)
160
- f.fecha = fechaParam(params.fecha);
161
- if (params.codCtaCte !== undefined)
162
- f.codCtaCte = longParam(params.codCtaCte, 'codCtaCte');
163
- if (params.estadoCtaCte !== undefined)
164
- f.estadoCtaCte = estadoCtaCteParam(params.estadoCtaCte);
165
- if (params.nroPagina !== undefined)
166
- f.nroPagina = intParam(params.nroPagina, 'nroPagina', 1, 32767);
167
- const r = await this.call(m, auth, f, 'consulta', opts);
168
- const out = {
169
- comprobantes: parseItems(r, 'arrayComprobantes', 'comprobante', m).map((x, i) => parseComprobante(x, `${m}.arrayComprobantes.comprobante[${i}]`)),
170
- ...parseInfo(r, m),
171
- };
172
- const nroPagina = parseOptNum(r, 'nroPagina', m);
173
- if (nroPagina !== undefined)
174
- out.nroPagina = nroPagina;
175
- const hayMas = parseOptSiNo(r, 'hayMas', m);
176
- if (hayMas !== undefined)
177
- out.hayMas = hayMas;
178
- return out;
109
+ return this.consulta(m, auth, [params, REQ[m]], RESP[m], opts);
179
110
  }
180
111
  /** `consultarHistorialEstadosComprobante`. */
181
112
  async consultarHistorialEstadosComprobante(auth, idComprobante, opts) {
182
113
  const m = 'consultarHistorialEstadosComprobante';
183
- const r = await this.call(m, auth, { idComprobante: idComprobanteParam(idComprobante, 'idComprobante') }, 'consulta', opts);
184
- if (r['arrayHistorialEstados'] === undefined)
185
- invalidResponse(`${m}.arrayHistorialEstados`);
186
- return {
187
- idComprobante: parseIdComprobante(r['idComprobante'], `${m}.idComprobante`),
188
- estados: parseItems(r, 'arrayHistorialEstados', 'estadoHistorico', m).map((x, i) => parseEstadoCmp(x, `${m}.arrayHistorialEstados.estadoHistorico[${i}]`)),
189
- };
114
+ return this.consulta(m, auth, [{ idComprobante }, REQ.idComprobante], RESP[m], opts);
190
115
  }
191
116
  /** `consultarHistorialEstadosCtaCte`. */
192
117
  async consultarHistorialEstadosCtaCte(auth, idCtaCte, opts) {
193
118
  const m = 'consultarHistorialEstadosCtaCte';
194
- const r = await this.call(m, auth, { idCtaCte: idCtaCteParam(idCtaCte) }, 'consulta', opts);
195
- if (r['arrayHistorialEstados'] === undefined)
196
- invalidResponse(`${m}.arrayHistorialEstados`);
197
- return {
198
- idCtaCte: parseIdCtaCte(r['idCtaCte'], `${m}.idCtaCte`),
199
- estados: parseItems(r, 'arrayHistorialEstados', 'estadoHistorico', m).map((x, i) => parseEstadoCtaCte(x, `${m}.arrayHistorialEstados.estadoHistorico[${i}]`)),
200
- };
119
+ return this.consulta(m, auth, [{ idCtaCte }, REQ.idCtaCte], RESP[m], opts);
201
120
  }
202
121
  /** `obtenerRemitos`: remitos asociados a un comprobante. */
203
122
  async obtenerRemitos(auth, idComprobante, opts) {
204
123
  const m = 'obtenerRemitos';
205
- const r = await this.call(m, auth, { idComprobante: idComprobanteParam(idComprobante, 'idComprobante') }, 'consulta', opts);
206
- return parseItems(r, 'arrayIdsRemitos', 'idsComprobantes', m).map((x, i) => parseIdComprobante(x, `${m}.arrayIdsRemitos.idsComprobantes[${i}]`));
124
+ const r = await this.consulta(m, auth, [{ idComprobante }, REQ.idComprobante], RESP[m], opts);
125
+ return r.remitos;
207
126
  }
208
127
  // -------------------------------------------------------------------------
209
128
  // Operaciones (emisiones: nunca se reintentan)
210
129
  // -------------------------------------------------------------------------
211
130
  /** `aceptarFECred`: acepta una factura de crédito. */
212
131
  async aceptarFECred(auth, params, opts) {
213
- const f = { idCtaCte: idCtaCteParam(params?.idCtaCte) };
214
- put(f, 'arrayConfirmarNotasDC', confirmarNotasParam(params.confirmarNotasDC));
215
- put(f, 'arrayFormasCancelacion', formasCancelacionParam(params.formasCancelacion, 'formasCancelacion', false));
216
- put(f, 'arrayRetenciones', retencionesParam(params.retenciones));
217
- put(f, 'arrayAjustesOperacion', ajustesParam(params.ajustesOperacion));
218
- if (params.tipoCancelacion !== undefined)
219
- f.tipoCancelacion = tipoCancelacionParam(params.tipoCancelacion);
220
- if (params.importeCancelado !== undefined)
221
- f.importeCancelado = importeParam(params.importeCancelado, 'importeCancelado');
222
- if (params.importeTotalRetPesos !== undefined) {
223
- f.importeTotalRetPesos = importeParam(params.importeTotalRetPesos, 'importeTotalRetPesos');
224
- }
225
- if (params.importeEmbargoPesos !== undefined) {
226
- f.importeEmbargoPesos = importeParam(params.importeEmbargoPesos, 'importeEmbargoPesos');
227
- }
228
- f.saldoAceptado = importeParam(params.saldoAceptado, 'saldoAceptado');
229
- f.codMoneda = monedaParam(params.codMoneda);
230
- f.cotizacionMonedaUlt = cotizacionParam(params.cotizacionMonedaUlt, 'cotizacionMonedaUlt');
231
- if (params.informaCBU !== undefined)
232
- f.informaCBU = siNoParam(params.informaCBU, 'informaCBU');
233
- if (params.cbuComprador !== undefined)
234
- f.CBUComprador = cbuParam(params.cbuComprador, 'cbuComprador');
235
- return this.operacion('aceptarFECred', auth, f, opts);
132
+ const m = 'aceptarFECred';
133
+ return this.emision(m, auth, params, REQ[m], RESP.operacion, opts);
236
134
  }
237
135
  /** `rechazarFECred`: rechaza una factura de crédito. */
238
136
  async rechazarFECred(auth, params, opts) {
239
- return this.operacion('rechazarFECred', auth, { idCtaCte: idCtaCteParam(params?.idCtaCte), arrayMotivosRechazo: motivosRechazoParam(params.motivos) }, opts);
137
+ const m = 'rechazarFECred';
138
+ return this.emision(m, auth, params, REQ[m], RESP.operacion, opts);
240
139
  }
241
140
  /** `informarCancelacionTotalFECred`: informa la cancelación total de una FCE aceptada. */
242
141
  async informarCancelacionTotalFECred(auth, params, opts) {
243
- return this.operacion('informarCancelacionTotalFECred', auth, {
244
- idCtaCte: idCtaCteParam(params?.idCtaCte),
245
- arrayFormasCancelacion: formasCancelacionParam(params.formasCancelacion),
246
- importeCancelacion: importeParam(params.importeCancelacion, 'importeCancelacion'),
247
- }, opts);
142
+ const m = 'informarCancelacionTotalFECred';
143
+ return this.emision(m, auth, params, REQ[m], RESP.operacion, opts);
248
144
  }
249
145
  /** `modificarOpcionTransferencia`: cambia la opción de transferencia (SCA/ADC). */
250
146
  async modificarOpcionTransferencia(auth, params, opts) {
251
- return this.operacion('modificarOpcionTransferencia', auth, {
252
- idCtaCte: idCtaCteParam(params?.idCtaCte),
253
- opcionTransferencia: opcionTransferenciaParam(params.opcionTransferencia),
254
- }, opts);
147
+ const m = 'modificarOpcionTransferencia';
148
+ return this.emision(m, auth, params, REQ[m], RESP.operacion, opts);
255
149
  }
256
150
  /** `informarFacturaAgtDptoCltv`: informa la factura a un Agente de Depósito Colectivo. */
257
151
  async informarFacturaAgtDptoCltv(auth, params, opts) {
258
- return this.operacion('informarFacturaAgtDptoCltv', auth, { idCtaCte: idCtaCteParam(params?.idCtaCte), ctaAgente: ctaAgenteParam(params.ctaAgente) }, opts);
152
+ const m = 'informarFacturaAgtDptoCltv';
153
+ return this.emision(m, auth, params, REQ[m], RESP.operacion, opts);
259
154
  }
260
155
  /** `rechazarNotaDC`: rechaza una nota de débito/crédito. */
261
156
  async rechazarNotaDC(auth, params, opts) {
262
157
  const m = 'rechazarNotaDC';
263
- const r = await this.call(m, auth, {
264
- idComprobante: idComprobanteParam(params?.idComprobante, 'idComprobante'),
265
- arrayMotivosRechazo: motivosRechazoParam(params.motivos),
266
- }, 'emision', opts);
267
- return {
268
- resultado: resultadoAprobado(r, m),
269
- idComprobante: parseIdComprobante(r['idComprobante'], `${m}.idComprobante`),
270
- ...parseInfo(r, m),
271
- };
158
+ return this.emision(m, auth, params, REQ[m], RESP[m], opts);
272
159
  }
273
160
  // -------------------------------------------------------------------------
274
161
  // Agente de Depósito Colectivo (consultas)
@@ -276,31 +163,12 @@ export class FecredClient {
276
163
  /** `consultarCuentasEnAgtDptoCltv`: cuentas de la CUIT representada en Agentes de Depósito Colectivo. */
277
164
  async consultarCuentasEnAgtDptoCltv(auth, opts) {
278
165
  const m = 'consultarCuentasEnAgtDptoCltv';
279
- const r = await this.call(m, auth, {}, 'consulta', opts);
280
- return {
281
- cuentas: parseItems(r, 'arrayCuentasEnAgente', 'cuentaEnAgente', m).map((x, i) => parseCuentaEnAgente(x, `${m}.arrayCuentasEnAgente.cuentaEnAgente[${i}]`)),
282
- ...parseInfo(r, m),
283
- };
166
+ return this.consulta(m, auth, null, RESP[m], opts);
284
167
  }
285
168
  /** `consultarFacturasAgtDptoCltv`: facturas informadas a Agentes de Depósito Colectivo. */
286
169
  async consultarFacturasAgtDptoCltv(auth, params = {}, opts) {
287
170
  const m = 'consultarFacturasAgtDptoCltv';
288
- const f = {};
289
- if (params.idCtaCte !== undefined)
290
- f.idCtaCte = idCtaCteParam(params.idCtaCte);
291
- if (params.fecha !== undefined)
292
- f.filtroFecha = fechaParam(params.fecha);
293
- const r = await this.call(m, auth, f, 'consulta', opts);
294
- return {
295
- facturas: parseItems(r, 'arrayFacturasAgtDptoCltv', 'facturaInformada', m).map((x, i) => {
296
- const p = `${m}.arrayFacturasAgtDptoCltv.facturaInformada[${i}]`;
297
- return {
298
- idFactura: parseIdComprobante(x['idFactura'], `${p}.idFactura`),
299
- infoAgtDptoCltv: parseInfoAgtDptoCltv(x['infoAgtDptoCltv'], `${p}.infoAgtDptoCltv`),
300
- };
301
- }),
302
- ...parseInfo(r, m),
303
- };
171
+ return this.consulta(m, auth, [params, REQ[m]], RESP[m], opts);
304
172
  }
305
173
  // -------------------------------------------------------------------------
306
174
  // Tablas de parámetros
@@ -308,15 +176,11 @@ export class FecredClient {
308
176
  /** `consultarTiposRetenciones`. */
309
177
  async consultarTiposRetenciones(auth, opts) {
310
178
  const m = 'consultarTiposRetenciones';
311
- const r = await this.call(m, auth, {}, 'consulta', opts);
312
- return parseItems(r, 'arrayTiposRetenciones', 'tipoRetencion', m).map((x, i) => {
313
- const p = `${m}.arrayTiposRetenciones.tipoRetencion[${i}]`;
314
- return {
315
- codigoJurisdiccion: parseNum(x, 'codigoJurisdiccion', p),
316
- descripcionJurisdiccion: parseStr(x, 'descripcionJurisdiccion', p),
317
- porcentajeRetencion: parseNum(x, 'porcentajeRetencion', p),
318
- };
319
- });
179
+ return (await this.consulta(m, auth, null, RESP[m], opts)).tipos;
180
+ }
181
+ async codigosDescripciones(method, auth, opts) {
182
+ const r = await this.consulta(method, auth, null, RESP.codigosDescripciones, opts);
183
+ return r.codigos;
320
184
  }
321
185
  /** `consultarTiposFormasCancelacion`. */
322
186
  async consultarTiposFormasCancelacion(auth, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"fecred-client.js","sourceRoot":"","sources":["../src/fecred-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fecred-client.js","sourceRoot":"","sources":["../src/fecred-client.ts"],"names":[],"mappings":"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"}