@ramiidv/arca-sdk 0.2.1 → 1.0.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/README.md +151 -8
- package/dist/arca.d.ts +72 -127
- package/dist/arca.d.ts.map +1 -1
- package/dist/arca.js +167 -149
- package/dist/arca.js.map +1 -1
- package/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +5 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/soap-client.d.ts +13 -6
- package/dist/soap-client.d.ts.map +1 -1
- package/dist/soap-client.js +79 -32
- package/dist/soap-client.js.map +1 -1
- package/dist/types.d.ts +207 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wsaa.d.ts +6 -2
- package/dist/wsaa.d.ts.map +1 -1
- package/dist/wsaa.js +25 -6
- package/dist/wsaa.js.map +1 -1
- package/dist/wsfe.d.ts +10 -45
- package/dist/wsfe.d.ts.map +1 -1
- package/dist/wsfe.js +40 -99
- package/dist/wsfe.js.map +1 -1
- package/dist/wsfex.d.ts +50 -0
- package/dist/wsfex.d.ts.map +1 -0
- package/dist/wsfex.js +141 -0
- package/dist/wsfex.js.map +1 -0
- package/llm.txt +466 -0
- package/package.json +8 -7
package/dist/wsfe.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ENDPOINTS } from "./constants.js";
|
|
2
|
-
import {
|
|
1
|
+
import { ENDPOINTS, WSFE_NAMESPACE } from "./constants.js";
|
|
2
|
+
import { afipSoapCall } from "./soap-client.js";
|
|
3
3
|
import { ArcaWSFEError } from "./errors.js";
|
|
4
4
|
function toArray(val) {
|
|
5
5
|
if (val === undefined || val === null)
|
|
@@ -14,22 +14,27 @@ function checkErrors(result) {
|
|
|
14
14
|
}
|
|
15
15
|
export class WsfeClient {
|
|
16
16
|
endpoint;
|
|
17
|
-
|
|
18
|
-
constructor(production,
|
|
17
|
+
soapOpts;
|
|
18
|
+
constructor(production, opts = {}) {
|
|
19
19
|
this.endpoint = production
|
|
20
20
|
? ENDPOINTS.wsfe.production
|
|
21
21
|
: ENDPOINTS.wsfe.testing;
|
|
22
|
-
this.
|
|
22
|
+
this.soapOpts = {
|
|
23
|
+
timeoutMs: opts.timeoutMs,
|
|
24
|
+
retries: opts.retries,
|
|
25
|
+
retryDelayMs: opts.retryDelayMs,
|
|
26
|
+
onEvent: opts.onEvent,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
call(method, params) {
|
|
30
|
+
return afipSoapCall(this.endpoint, WSFE_NAMESPACE, method, params, this.soapOpts);
|
|
23
31
|
}
|
|
24
32
|
// ============================================================
|
|
25
33
|
// Facturación
|
|
26
34
|
// ============================================================
|
|
27
|
-
/**
|
|
28
|
-
* Solicita CAE (Código de Autorización Electrónica) para uno o más comprobantes.
|
|
29
|
-
*/
|
|
30
35
|
async solicitarCAE(auth, request) {
|
|
31
36
|
const detRequests = request.invoices.map((inv) => this.buildDetRequest(inv));
|
|
32
|
-
const
|
|
37
|
+
const result = (await this.call("FECAESolicitar", {
|
|
33
38
|
Auth: auth,
|
|
34
39
|
FeCAEReq: {
|
|
35
40
|
FeCabReq: {
|
|
@@ -37,140 +42,76 @@ export class WsfeClient {
|
|
|
37
42
|
PtoVta: request.PtoVta,
|
|
38
43
|
CbteTipo: request.CbteTipo,
|
|
39
44
|
},
|
|
40
|
-
FeDetReq: {
|
|
41
|
-
FECAEDetRequest: detRequests,
|
|
42
|
-
},
|
|
45
|
+
FeDetReq: { FECAEDetRequest: detRequests },
|
|
43
46
|
},
|
|
44
|
-
};
|
|
45
|
-
const result = (await wsfeSoapCall(this.endpoint, "FECAESolicitar", params, this.timeoutMs));
|
|
47
|
+
}));
|
|
46
48
|
checkErrors(result);
|
|
47
49
|
return result;
|
|
48
50
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Obtiene el último número de comprobante autorizado para un punto de venta y tipo.
|
|
51
|
-
*/
|
|
52
51
|
async ultimoComprobante(auth, ptoVta, cbteTipo) {
|
|
53
|
-
const result = (await
|
|
52
|
+
const result = (await this.call("FECompUltimoAutorizado", {
|
|
54
53
|
Auth: auth,
|
|
55
54
|
PtoVta: ptoVta,
|
|
56
55
|
CbteTipo: cbteTipo,
|
|
57
|
-
}
|
|
56
|
+
}));
|
|
58
57
|
checkErrors(result);
|
|
59
58
|
return result.CbteNro;
|
|
60
59
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Consulta un comprobante previamente autorizado.
|
|
63
|
-
*/
|
|
64
60
|
async consultarComprobante(auth, cbteTipo, ptoVta, cbteNro) {
|
|
65
|
-
const result = (await
|
|
61
|
+
const result = (await this.call("FECompConsultar", {
|
|
66
62
|
Auth: auth,
|
|
67
|
-
FeCompConsReq: {
|
|
68
|
-
|
|
69
|
-
CbteNro: cbteNro,
|
|
70
|
-
PtoVta: ptoVta,
|
|
71
|
-
},
|
|
72
|
-
}, this.timeoutMs));
|
|
63
|
+
FeCompConsReq: { CbteTipo: cbteTipo, CbteNro: cbteNro, PtoVta: ptoVta },
|
|
64
|
+
}));
|
|
73
65
|
checkErrors(result);
|
|
74
66
|
return result;
|
|
75
67
|
}
|
|
76
68
|
// ============================================================
|
|
77
69
|
// Parámetros
|
|
78
70
|
// ============================================================
|
|
79
|
-
/**
|
|
80
|
-
* Verifica el estado de los servidores de ARCA.
|
|
81
|
-
*/
|
|
82
71
|
async serverStatus() {
|
|
83
|
-
|
|
84
|
-
return result;
|
|
72
|
+
return (await this.call("FEDummy", {}));
|
|
85
73
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
*/
|
|
89
|
-
async getTiposComprobante(auth) {
|
|
90
|
-
const result = await wsfeSoapCall(this.endpoint, "FEParamGetTiposCbte", { Auth: auth }, this.timeoutMs);
|
|
74
|
+
async getParam(auth, method, itemKey) {
|
|
75
|
+
const result = (await this.call(method, { Auth: auth }));
|
|
91
76
|
checkErrors(result);
|
|
92
|
-
|
|
93
|
-
|
|
77
|
+
return toArray(result.ResultGet?.[itemKey]);
|
|
78
|
+
}
|
|
79
|
+
async getTiposComprobante(auth) {
|
|
80
|
+
return this.getParam(auth, "FEParamGetTiposCbte", "CbteTipo");
|
|
94
81
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Obtiene los tipos de concepto disponibles.
|
|
97
|
-
*/
|
|
98
82
|
async getTiposConcepto(auth) {
|
|
99
|
-
|
|
100
|
-
checkErrors(result);
|
|
101
|
-
const items = result.ResultGet?.ConceptoTipo;
|
|
102
|
-
return toArray(items);
|
|
83
|
+
return this.getParam(auth, "FEParamGetTiposConcepto", "ConceptoTipo");
|
|
103
84
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Obtiene los tipos de documento disponibles.
|
|
106
|
-
*/
|
|
107
85
|
async getTiposDocumento(auth) {
|
|
108
|
-
|
|
109
|
-
checkErrors(result);
|
|
110
|
-
const items = result.ResultGet?.DocTipo;
|
|
111
|
-
return toArray(items);
|
|
86
|
+
return this.getParam(auth, "FEParamGetTiposDoc", "DocTipo");
|
|
112
87
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Obtiene los tipos de IVA disponibles.
|
|
115
|
-
*/
|
|
116
88
|
async getTiposIva(auth) {
|
|
117
|
-
|
|
118
|
-
checkErrors(result);
|
|
119
|
-
const items = result.ResultGet?.IvaTipo;
|
|
120
|
-
return toArray(items);
|
|
89
|
+
return this.getParam(auth, "FEParamGetTiposIva", "IvaTipo");
|
|
121
90
|
}
|
|
122
|
-
/**
|
|
123
|
-
* Obtiene las monedas disponibles.
|
|
124
|
-
*/
|
|
125
91
|
async getMonedas(auth) {
|
|
126
|
-
|
|
127
|
-
checkErrors(result);
|
|
128
|
-
const items = result.ResultGet?.Moneda;
|
|
129
|
-
return toArray(items);
|
|
92
|
+
return this.getParam(auth, "FEParamGetTiposMonedas", "Moneda");
|
|
130
93
|
}
|
|
131
|
-
/**
|
|
132
|
-
* Obtiene los tipos de tributo disponibles.
|
|
133
|
-
*/
|
|
134
94
|
async getTiposTributo(auth) {
|
|
135
|
-
|
|
136
|
-
checkErrors(result);
|
|
137
|
-
const items = result.ResultGet?.TributoTipo;
|
|
138
|
-
return toArray(items);
|
|
95
|
+
return this.getParam(auth, "FEParamGetTiposTributos", "TributoTipo");
|
|
139
96
|
}
|
|
140
|
-
/**
|
|
141
|
-
* Obtiene los tipos de opcionales disponibles.
|
|
142
|
-
*/
|
|
143
97
|
async getTiposOpcional(auth) {
|
|
144
|
-
|
|
145
|
-
checkErrors(result);
|
|
146
|
-
const items = result.ResultGet?.OpcionalTipo;
|
|
147
|
-
return toArray(items);
|
|
98
|
+
return this.getParam(auth, "FEParamGetTiposOpcional", "OpcionalTipo");
|
|
148
99
|
}
|
|
149
|
-
/**
|
|
150
|
-
* Obtiene los puntos de venta habilitados.
|
|
151
|
-
*/
|
|
152
100
|
async getPuntosVenta(auth) {
|
|
153
|
-
|
|
154
|
-
checkErrors(result);
|
|
155
|
-
const items = result.ResultGet?.PtoVenta;
|
|
156
|
-
return toArray(items);
|
|
101
|
+
return this.getParam(auth, "FEParamGetPtosVenta", "PtoVenta");
|
|
157
102
|
}
|
|
158
|
-
/**
|
|
159
|
-
* Obtiene la cotización de una moneda.
|
|
160
|
-
*/
|
|
161
103
|
async getCotizacion(auth, monedaId) {
|
|
162
|
-
const result = (await
|
|
104
|
+
const result = (await this.call("FEParamGetCotizacion", {
|
|
163
105
|
Auth: auth,
|
|
164
106
|
MonId: monedaId,
|
|
165
|
-
}
|
|
107
|
+
}));
|
|
166
108
|
checkErrors(result);
|
|
167
109
|
return result;
|
|
168
110
|
}
|
|
169
|
-
/**
|
|
170
|
-
* Obtiene la cantidad máxima de registros por request de FECAESolicitar.
|
|
171
|
-
*/
|
|
172
111
|
async getCantMaxRegistros(auth) {
|
|
173
|
-
const result = await
|
|
112
|
+
const result = (await this.call("FECompTotXRequest", {
|
|
113
|
+
Auth: auth,
|
|
114
|
+
}));
|
|
174
115
|
checkErrors(result);
|
|
175
116
|
return result.RegXReq ?? 0;
|
|
176
117
|
}
|
package/dist/wsfe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsfe.js","sourceRoot":"","sources":["../src/wsfe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"wsfe.js","sourceRoot":"","sources":["../src/wsfe.ts"],"names":[],"mappings":"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"}
|
package/dist/wsfex.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { WsfeAuth, WsfexInvoice, WsfexAuthResult, WsfexGetCmpResult, WsfexParamItem, ServerStatus, ArcaEvent } from "./types.js";
|
|
2
|
+
export declare class WsfexClient {
|
|
3
|
+
private endpoint;
|
|
4
|
+
private soapOpts;
|
|
5
|
+
constructor(production: boolean, opts?: {
|
|
6
|
+
timeoutMs?: number;
|
|
7
|
+
retries?: number;
|
|
8
|
+
retryDelayMs?: number;
|
|
9
|
+
onEvent?: (event: ArcaEvent) => void;
|
|
10
|
+
});
|
|
11
|
+
private call;
|
|
12
|
+
/**
|
|
13
|
+
* Autoriza un comprobante de exportación.
|
|
14
|
+
*/
|
|
15
|
+
authorize(auth: WsfeAuth, invoice: WsfexInvoice): Promise<WsfexAuthResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Obtiene el último comprobante autorizado.
|
|
18
|
+
*/
|
|
19
|
+
getLastCmp(auth: WsfeAuth, ptoVta: number, cbteTipo: number): Promise<number>;
|
|
20
|
+
/**
|
|
21
|
+
* Obtiene el último ID de request.
|
|
22
|
+
*/
|
|
23
|
+
getLastId(auth: WsfeAuth): Promise<number>;
|
|
24
|
+
/**
|
|
25
|
+
* Consulta un comprobante de exportación.
|
|
26
|
+
*/
|
|
27
|
+
getCmp(auth: WsfeAuth, cbteTipo: number, ptoVta: number, cbteNro: number): Promise<WsfexGetCmpResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Verifica el estado de los servidores de WSFEX.
|
|
30
|
+
*/
|
|
31
|
+
serverStatus(): Promise<ServerStatus>;
|
|
32
|
+
private getParamList;
|
|
33
|
+
/** Tipos de comprobante de exportación. */
|
|
34
|
+
getTiposCbte(auth: WsfeAuth): Promise<WsfexParamItem[]>;
|
|
35
|
+
/** Monedas disponibles. */
|
|
36
|
+
getMonedas(auth: WsfeAuth): Promise<WsfexParamItem[]>;
|
|
37
|
+
/** Países destino. */
|
|
38
|
+
getPaises(auth: WsfeAuth): Promise<WsfexParamItem[]>;
|
|
39
|
+
/** Idiomas disponibles. */
|
|
40
|
+
getIdiomas(auth: WsfeAuth): Promise<WsfexParamItem[]>;
|
|
41
|
+
/** Incoterms disponibles. */
|
|
42
|
+
getIncoterms(auth: WsfeAuth): Promise<WsfexParamItem[]>;
|
|
43
|
+
/** Unidades de medida. */
|
|
44
|
+
getUMed(auth: WsfeAuth): Promise<WsfexParamItem[]>;
|
|
45
|
+
/** Tipos de exportación. */
|
|
46
|
+
getTiposExpo(auth: WsfeAuth): Promise<WsfexParamItem[]>;
|
|
47
|
+
/** CUITs de países. */
|
|
48
|
+
getCuitsPais(auth: WsfeAuth): Promise<WsfexParamItem[]>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=wsfex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wsfex.d.ts","sourceRoot":"","sources":["../src/wsfex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EAGf,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAiBpB,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAkC;gBAGhD,UAAU,EAAE,OAAO,EACnB,IAAI,GAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;KACjC;IAaR,OAAO,CAAC,IAAI;IAcZ;;OAEG;IACG,SAAS,CACb,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,eAAe,CAAC;IA2B3B;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAUlB;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhD;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;YAQ7B,YAAY;IAe1B,2CAA2C;IACrC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,2BAA2B;IACrB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS3D,sBAAsB;IAChB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS1D,2BAA2B;IACrB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS3D,6BAA6B;IACvB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,0BAA0B;IACpB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IASxD,4BAA4B;IACtB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,uBAAuB;IACjB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAQ9D"}
|
package/dist/wsfex.js
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { ENDPOINTS, WSFEX_NAMESPACE } from "./constants.js";
|
|
2
|
+
import { afipSoapCall } from "./soap-client.js";
|
|
3
|
+
import { ArcaWSFEError } from "./errors.js";
|
|
4
|
+
function toArray(val) {
|
|
5
|
+
if (val === undefined || val === null)
|
|
6
|
+
return [];
|
|
7
|
+
return Array.isArray(val) ? val : [val];
|
|
8
|
+
}
|
|
9
|
+
function checkFexErr(result) {
|
|
10
|
+
if (result.FEXErr && result.FEXErr.ErrCode !== 0) {
|
|
11
|
+
throw new ArcaWSFEError([
|
|
12
|
+
{ code: result.FEXErr.ErrCode, msg: result.FEXErr.ErrMsg },
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export class WsfexClient {
|
|
17
|
+
endpoint;
|
|
18
|
+
soapOpts;
|
|
19
|
+
constructor(production, opts = {}) {
|
|
20
|
+
this.endpoint = production
|
|
21
|
+
? ENDPOINTS.wsfex.production
|
|
22
|
+
: ENDPOINTS.wsfex.testing;
|
|
23
|
+
this.soapOpts = {
|
|
24
|
+
timeoutMs: opts.timeoutMs,
|
|
25
|
+
retries: opts.retries,
|
|
26
|
+
retryDelayMs: opts.retryDelayMs,
|
|
27
|
+
onEvent: opts.onEvent,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
call(method, params) {
|
|
31
|
+
return afipSoapCall(this.endpoint, WSFEX_NAMESPACE, method, params, this.soapOpts);
|
|
32
|
+
}
|
|
33
|
+
// ============================================================
|
|
34
|
+
// Facturación de exportación
|
|
35
|
+
// ============================================================
|
|
36
|
+
/**
|
|
37
|
+
* Autoriza un comprobante de exportación.
|
|
38
|
+
*/
|
|
39
|
+
async authorize(auth, invoice) {
|
|
40
|
+
const cmp = { ...invoice };
|
|
41
|
+
// Wrappear Items
|
|
42
|
+
if (invoice.Items && invoice.Items.length > 0) {
|
|
43
|
+
cmp.Items = { Item: invoice.Items };
|
|
44
|
+
}
|
|
45
|
+
// Wrappear Permisos
|
|
46
|
+
if (invoice.Permisos && invoice.Permisos.length > 0) {
|
|
47
|
+
cmp.Permisos = { Permiso: invoice.Permisos };
|
|
48
|
+
}
|
|
49
|
+
// Wrappear Cmps_asoc
|
|
50
|
+
if (invoice.Cmps_asoc && invoice.Cmps_asoc.length > 0) {
|
|
51
|
+
cmp.Cmps_asoc = { Cmp_asoc: invoice.Cmps_asoc };
|
|
52
|
+
}
|
|
53
|
+
const result = (await this.call("FEXAuthorize", {
|
|
54
|
+
Auth: auth,
|
|
55
|
+
Cmp: cmp,
|
|
56
|
+
}));
|
|
57
|
+
checkFexErr(result);
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Obtiene el último comprobante autorizado.
|
|
62
|
+
*/
|
|
63
|
+
async getLastCmp(auth, ptoVta, cbteTipo) {
|
|
64
|
+
const result = (await this.call("FEXGetLast_CMP", {
|
|
65
|
+
Auth: auth,
|
|
66
|
+
Cbte_Tipo: cbteTipo,
|
|
67
|
+
Punto_vta: ptoVta,
|
|
68
|
+
}));
|
|
69
|
+
checkFexErr(result);
|
|
70
|
+
return result.FEXResult_LastCMP?.Cbte_nro ?? 0;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Obtiene el último ID de request.
|
|
74
|
+
*/
|
|
75
|
+
async getLastId(auth) {
|
|
76
|
+
const result = (await this.call("FEXGetLast_ID", {
|
|
77
|
+
Auth: auth,
|
|
78
|
+
}));
|
|
79
|
+
checkFexErr(result);
|
|
80
|
+
return result.FEXResultGet?.Id ?? 0;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Consulta un comprobante de exportación.
|
|
84
|
+
*/
|
|
85
|
+
async getCmp(auth, cbteTipo, ptoVta, cbteNro) {
|
|
86
|
+
const result = (await this.call("FEXGetCMP", {
|
|
87
|
+
Auth: auth,
|
|
88
|
+
Cmp: { Cbte_tipo: cbteTipo, Punto_vta: ptoVta, Cbte_nro: cbteNro },
|
|
89
|
+
}));
|
|
90
|
+
checkFexErr(result);
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Verifica el estado de los servidores de WSFEX.
|
|
95
|
+
*/
|
|
96
|
+
async serverStatus() {
|
|
97
|
+
return (await this.call("FEXDummy", {}));
|
|
98
|
+
}
|
|
99
|
+
// ============================================================
|
|
100
|
+
// Parámetros
|
|
101
|
+
// ============================================================
|
|
102
|
+
async getParamList(auth, method, resultKey, itemKey) {
|
|
103
|
+
const result = (await this.call(method, { Auth: auth }));
|
|
104
|
+
checkFexErr(result);
|
|
105
|
+
const items = result[resultKey]?.[itemKey];
|
|
106
|
+
return toArray(items);
|
|
107
|
+
}
|
|
108
|
+
/** Tipos de comprobante de exportación. */
|
|
109
|
+
async getTiposCbte(auth) {
|
|
110
|
+
return this.getParamList(auth, "FEXGetPARAM_Cbte_Tipo", "FEXResultGet", "ClsFEXResponse_Cbte_Tipo");
|
|
111
|
+
}
|
|
112
|
+
/** Monedas disponibles. */
|
|
113
|
+
async getMonedas(auth) {
|
|
114
|
+
return this.getParamList(auth, "FEXGetPARAM_MON", "FEXResultGet", "ClsFEXResponse_Mon");
|
|
115
|
+
}
|
|
116
|
+
/** Países destino. */
|
|
117
|
+
async getPaises(auth) {
|
|
118
|
+
return this.getParamList(auth, "FEXGetPARAM_DST_Pais", "FEXResultGet", "ClsFEXResponse_DST_pais");
|
|
119
|
+
}
|
|
120
|
+
/** Idiomas disponibles. */
|
|
121
|
+
async getIdiomas(auth) {
|
|
122
|
+
return this.getParamList(auth, "FEXGetPARAM_Idiomas", "FEXResultGet", "ClsFEXResponse_Idi");
|
|
123
|
+
}
|
|
124
|
+
/** Incoterms disponibles. */
|
|
125
|
+
async getIncoterms(auth) {
|
|
126
|
+
return this.getParamList(auth, "FEXGetPARAM_Incoterms", "FEXResultGet", "ClsFEXResponse_Inc");
|
|
127
|
+
}
|
|
128
|
+
/** Unidades de medida. */
|
|
129
|
+
async getUMed(auth) {
|
|
130
|
+
return this.getParamList(auth, "FEXGetPARAM_UMed", "FEXResultGet", "ClsFEXResponse_UMed");
|
|
131
|
+
}
|
|
132
|
+
/** Tipos de exportación. */
|
|
133
|
+
async getTiposExpo(auth) {
|
|
134
|
+
return this.getParamList(auth, "FEXGetPARAM_Tipo_Expo", "FEXResultGet", "ClsFEXResponse_Tex");
|
|
135
|
+
}
|
|
136
|
+
/** CUITs de países. */
|
|
137
|
+
async getCuitsPais(auth) {
|
|
138
|
+
return this.getParamList(auth, "FEXGetPARAM_DST_CUIT", "FEXResultGet", "ClsFEXResponse_DST_cuit");
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=wsfex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wsfex.js","sourceRoot":"","sources":["../src/wsfex.ts"],"names":[],"mappings":"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"}
|