@facturacr/atv-sdk 2.0.0 → 2.0.1-alpha
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/.eslintignore +3 -0
- package/.eslintrc.js +23 -23
- package/.github/dependabot.yml +11 -0
- package/.github/workflows/ci.yml +14 -12
- package/README.md +9 -2
- package/__tests__/stubs/commonExpectedXml.xml +14 -16
- package/__tests__/stubs/createDocument.data.ts +18 -1
- package/__tests__/stubs/frontendRequest.stub.ts +0 -1
- package/__tests__/stubs/token.stub.ts +9 -9
- package/__tests__/tests/ATV/__snapshots__/create-document.test.ts.snap +1 -1
- package/__tests__/tests/ATV/create-document.test.ts +8 -8
- package/__tests__/tests/ATV/create-receptor-message.test.ts +41 -36
- package/dist/src/ATV/core/CreateDocFactory.d.ts +11 -3
- package/dist/src/ATV/core/CreateDocFactory.js +3 -3
- package/dist/src/ATV/core/CreateDocFactory.js.map +1 -1
- package/dist/src/ATV/core/Document.d.ts +2 -2
- package/dist/src/ATV/core/Document.js +7 -4
- package/dist/src/ATV/core/Document.js.map +1 -1
- package/dist/src/ATV/core/DocumentType.d.ts +2 -3
- package/dist/src/ATV/core/DocumentType.js +1 -0
- package/dist/src/ATV/core/DocumentType.js.map +1 -1
- package/dist/src/ATV/core/FullConsecutive.d.ts +2 -1
- package/dist/src/ATV/core/FullConsecutive.js.map +1 -1
- package/dist/src/ATV/core/OrderLine.js +8 -1
- package/dist/src/ATV/core/OrderLine.js.map +1 -1
- package/dist/src/ATV/core/Person.d.ts +2 -2
- package/dist/src/ATV/core/ReceptorConsecutive.js.map +1 -1
- package/dist/src/ATV/core/ReferenceInformation.js.map +1 -1
- package/dist/src/ATV/core/types.d.ts +3 -2
- package/dist/src/ATV/core/types.js.map +1 -1
- package/dist/src/ATV/index.d.ts +2 -2
- package/dist/src/ATV/index.js +2 -2
- package/dist/src/ATV/mappers/billDocToAtv.js +32 -26
- package/dist/src/ATV/mappers/billDocToAtv.js.map +1 -1
- package/dist/src/ATV/types.d.ts +1 -1
- package/dist/src/ATV/useCases/createDocument/index.js +5 -9
- package/dist/src/ATV/useCases/createDocument/index.js.map +1 -1
- package/dist/src/ATV/useCases/createDocument/types.d.ts +4 -3
- package/dist/src/ATV/useCases/createReceptorMessage/index.d.ts +6 -5
- package/dist/src/ATV/useCases/createReceptorMessage/index.js +3 -3
- package/dist/src/ATV/useCases/createReceptorMessage/index.js.map +1 -1
- package/dist/src/helpers/comprobantes.js +10 -1
- package/dist/src/helpers/comprobantes.js.map +1 -1
- package/dist/src/lib/genClave/index.d.ts +8 -1
- package/dist/src/lib/genClave/index.js +5 -0
- package/dist/src/lib/genClave/index.js.map +1 -1
- package/dist/src/lib/genXML/index.js +6 -4
- package/dist/src/lib/genXML/index.js.map +1 -1
- package/dist/src/lib/genXML/sigXML/index.js +7 -4
- package/dist/src/lib/genXML/sigXML/index.js.map +1 -1
- package/dist/src/services/getToken/GetToken.js +0 -3
- package/dist/src/services/getToken/GetToken.js.map +1 -1
- package/dist/src/services/getToken/__tests__/GetToken.test.js +0 -1
- package/dist/src/services/getToken/__tests__/GetToken.test.js.map +1 -1
- package/dist/src/types/facturaInterfaces.d.ts +3 -3
- package/dist/src/xmlSchemaHeaderMap.d.ts +70 -0
- package/dist/src/xmlSchemaHeaderMap.js +30 -0
- package/dist/src/xmlSchemaHeaderMap.js.map +1 -0
- package/doc/atv-structures/4.3/FacturaElectronica_V4.3.xsd.xml +1633 -478
- package/doc/atv-structures/4.4/TiqueteElectronico_V4.4.xsd.xml +2817 -0
- package/doc/json-schemas/4.4/fe.json +544 -0
- package/doc/json-schemas/4.4/te.json +420 -0
- package/doc/testing.md +27 -0
- package/examples/README.md +10 -35
- package/examples/atvAccept.ts +18 -9
- package/examples/consultXML.ts +1 -0
- package/examples/{createAndSend.ts → createAndSendFE.ts} +11 -8
- package/examples/createAndSendTE.ts +73 -0
- package/examples/createCreditNote.ts +10 -6
- package/examples/createDebitNote.ts +2 -0
- package/examples/getToken.ts +2 -0
- package/package.json +3 -2
- package/src/ATV/core/CreateDocFactory.ts +32 -23
- package/src/ATV/core/Document.ts +7 -7
- package/src/ATV/core/DocumentType.ts +10 -3
- package/src/ATV/core/FullConsecutive.ts +2 -1
- package/src/ATV/core/OrderLine.ts +7 -1
- package/src/ATV/core/Person.ts +2 -2
- package/src/ATV/core/ReceptorConsecutive.ts +16 -16
- package/src/ATV/core/ReferenceInformation.ts +6 -6
- package/src/ATV/core/types.ts +7 -6
- package/src/ATV/index.ts +3 -3
- package/src/ATV/mappers/billDocToAtv.ts +35 -15
- package/src/ATV/types.ts +1 -1
- package/src/ATV/useCases/createDocument/index.ts +8 -8
- package/src/ATV/useCases/createDocument/types.ts +5 -6
- package/src/ATV/useCases/createReceptorMessage/index.ts +94 -93
- package/src/helpers/comprobantes.ts +10 -1
- package/src/lib/genClave/index.ts +10 -3
- package/src/lib/genXML/index.ts +3 -1
- package/src/lib/genXML/sigXML/index.ts +6 -3
- package/src/services/getToken/GetToken.ts +0 -3
- package/src/services/getToken/__tests__/GetToken.test.ts +0 -1
- package/src/types/facturaInterfaces.ts +3 -4
- package/src/xmlSchemaHeaderMap.ts +37 -0
- package/tools/readXML.ts +2 -0
- package/tools/xsdToJsonSchema.ts +1 -0
- package/tsconfig.json +1 -0
- package/dist/src/ATV/core/documentNames.types.d.ts +0 -1
- package/dist/src/ATV/core/documentNames.types.js +0 -3
- package/dist/src/ATV/core/documentNames.types.js.map +0 -1
- package/dist/src/lib/genXML/xmlConfig.d.ts +0 -55
- package/dist/src/lib/genXML/xmlConfig.js +0 -42
- package/dist/src/lib/genXML/xmlConfig.js.map +0 -1
- package/src/ATV/core/documentNames.types.ts +0 -6
- package/src/lib/genXML/xmlConfig.ts +0 -60
package/.eslintignore
ADDED
package/.eslintrc.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
env: {
|
|
3
|
+
es6: true,
|
|
4
|
+
node: true
|
|
5
5
|
},
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
extends: [
|
|
7
|
+
'standard',
|
|
8
|
+
'plugin:@typescript-eslint/eslint-recommended',
|
|
9
|
+
'plugin:@typescript-eslint/recommended'
|
|
10
10
|
],
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
globals: {
|
|
12
|
+
Atomics: 'readonly',
|
|
13
|
+
SharedArrayBuffer: 'readonly'
|
|
14
14
|
},
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
parser: '@typescript-eslint/parser',
|
|
16
|
+
parserOptions: {
|
|
17
|
+
ecmaVersion: 2018,
|
|
18
|
+
sourceType: 'module'
|
|
19
19
|
},
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
plugins: [
|
|
21
|
+
'@typescript-eslint'
|
|
22
22
|
],
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
rules: {
|
|
24
|
+
'@typescript-eslint/no-explicit-any': [0],
|
|
25
|
+
'space-before-function-paren': [
|
|
26
|
+
'warn', {
|
|
27
|
+
anonymous: 'never',
|
|
28
|
+
named: 'never'
|
|
29
29
|
}
|
|
30
30
|
]
|
|
31
31
|
}
|
|
32
|
-
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
|
3
|
+
# Please see the documentation for all configuration options:
|
|
4
|
+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
|
5
|
+
|
|
6
|
+
version: 2
|
|
7
|
+
updates:
|
|
8
|
+
- package-ecosystem: "" # See documentation for possible values
|
|
9
|
+
directory: "/" # Location of package manifests
|
|
10
|
+
schedule:
|
|
11
|
+
interval: "daily"
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
strategy:
|
|
21
21
|
matrix:
|
|
22
|
-
node: [
|
|
22
|
+
node: [20, 22]
|
|
23
23
|
steps:
|
|
24
24
|
- uses: actions/checkout@v4
|
|
25
25
|
- uses: actions/setup-node@v1
|
|
@@ -33,20 +33,22 @@ jobs:
|
|
|
33
33
|
with:
|
|
34
34
|
name: actions ${{ matrix.node }}
|
|
35
35
|
fail_ci_if_error: false
|
|
36
|
-
|
|
37
|
-
runs-on:
|
|
38
|
-
strategy:
|
|
39
|
-
matrix:
|
|
40
|
-
node: [18, 20]
|
|
36
|
+
typecheck:
|
|
37
|
+
runs-on: ubuntu-latest
|
|
41
38
|
steps:
|
|
42
|
-
- uses: actions/checkout@
|
|
39
|
+
- uses: actions/checkout@v4
|
|
43
40
|
- uses: actions/setup-node@v1
|
|
44
41
|
with:
|
|
45
|
-
node-version:
|
|
42
|
+
node-version: 20
|
|
46
43
|
- run: yarn
|
|
47
44
|
- run: yarn build
|
|
48
|
-
-
|
|
49
|
-
|
|
45
|
+
- run: yarn type:check
|
|
46
|
+
lint:
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v4
|
|
50
|
+
- uses: actions/setup-node@v1
|
|
50
51
|
with:
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
node-version: 20
|
|
53
|
+
- run: yarn
|
|
54
|
+
- run: yarn lint
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> 🛑 **Librería
|
|
2
|
+
> 🛑 **Librería beta** 🛑
|
|
3
3
|
|
|
4
4
|
# Librería Javascript - API de Administración Tributaria Virtual (ATV) del Ministerio de Hacienda.
|
|
5
5
|
|
|
@@ -10,5 +10,12 @@ Este proyecto tiene como fin facilitar la creación de la factura electrónica d
|
|
|
10
10
|
Buscando colaboración
|
|
11
11
|
|
|
12
12
|
-------
|
|
13
|
+
## Comandos iniciales
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
```
|
|
16
|
+
yarn build
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Para probar localmente leer:
|
|
20
|
+
- [Testing](/doc/testing.md).
|
|
21
|
+
- [Ejemplos](/examples/README.md).
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<FacturaElectronica xmlns="https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.
|
|
2
|
+
<FacturaElectronica xmlns="https://cdn.comprobanteselectronicos.go.cr/xml-schemas/v4.4/facturaElectronica" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
3
3
|
<Clave>50601042400020692014200100001010000000002100000001</Clave>
|
|
4
|
-
<
|
|
4
|
+
<ProveedorSistemas>206920142</ProveedorSistemas>
|
|
5
|
+
<CodigoActividadEmisor>000004</CodigoActividadEmisor>
|
|
6
|
+
<CodigoActividadReceptor>000004</CodigoActividadReceptor>
|
|
5
7
|
<NumeroConsecutivo>00100001010000000002</NumeroConsecutivo>
|
|
6
8
|
<FechaEmision>2024-04-01T00:00:00.000Z</FechaEmision>
|
|
7
9
|
<Emisor>
|
|
@@ -15,17 +17,13 @@
|
|
|
15
17
|
<Provincia>2</Provincia>
|
|
16
18
|
<Canton>06</Canton>
|
|
17
19
|
<Distrito>04</Distrito>
|
|
18
|
-
<Barrio>
|
|
20
|
+
<Barrio>00006</Barrio>
|
|
19
21
|
<OtrasSenas>details</OtrasSenas>
|
|
20
22
|
</Ubicacion>
|
|
21
23
|
<Telefono>
|
|
22
24
|
<CodigoPais>506</CodigoPais>
|
|
23
25
|
<NumTelefono>12341234</NumTelefono>
|
|
24
26
|
</Telefono>
|
|
25
|
-
<Fax>
|
|
26
|
-
<CodigoPais>506</CodigoPais>
|
|
27
|
-
<NumTelefono>12341234</NumTelefono>
|
|
28
|
-
</Fax>
|
|
29
27
|
<CorreoElectronico>test@test.com</CorreoElectronico>
|
|
30
28
|
</Emisor>
|
|
31
29
|
<Receptor>
|
|
@@ -39,44 +37,41 @@
|
|
|
39
37
|
<Provincia>2</Provincia>
|
|
40
38
|
<Canton>06</Canton>
|
|
41
39
|
<Distrito>04</Distrito>
|
|
42
|
-
<Barrio>
|
|
40
|
+
<Barrio>00006</Barrio>
|
|
43
41
|
<OtrasSenas>details</OtrasSenas>
|
|
44
42
|
</Ubicacion>
|
|
45
43
|
<Telefono>
|
|
46
44
|
<CodigoPais>506</CodigoPais>
|
|
47
45
|
<NumTelefono>80808080</NumTelefono>
|
|
48
46
|
</Telefono>
|
|
49
|
-
<Fax>
|
|
50
|
-
<CodigoPais>506</CodigoPais>
|
|
51
|
-
<NumTelefono>80808080</NumTelefono>
|
|
52
|
-
</Fax>
|
|
53
47
|
<CorreoElectronico>test@test.com</CorreoElectronico>
|
|
54
48
|
</Receptor>
|
|
55
49
|
<CondicionVenta>01</CondicionVenta>
|
|
56
|
-
<MedioPago>03</MedioPago>
|
|
57
50
|
<DetalleServicio>
|
|
58
51
|
<LineaDetalle>
|
|
59
52
|
<NumeroLinea>1</NumeroLinea>
|
|
60
|
-
<
|
|
53
|
+
<CodigoCABYS>7113301000000</CodigoCABYS>
|
|
61
54
|
<Cantidad>1</Cantidad>
|
|
62
55
|
<UnidadMedida>Unid</UnidadMedida>
|
|
63
56
|
<Detalle>detalle</Detalle>
|
|
64
57
|
<PrecioUnitario>10</PrecioUnitario>
|
|
65
58
|
<MontoTotal>10</MontoTotal>
|
|
66
59
|
<SubTotal>10</SubTotal>
|
|
60
|
+
<BaseImponible>10</BaseImponible>
|
|
67
61
|
<Impuesto>
|
|
68
62
|
<Codigo>01</Codigo>
|
|
69
|
-
<CodigoTarifa>08</CodigoTarifa>
|
|
70
63
|
<Tarifa>13</Tarifa>
|
|
71
64
|
<Monto>1.3</Monto>
|
|
72
65
|
</Impuesto>
|
|
66
|
+
<ImpuestoAsumidoEmisorFabrica>0</ImpuestoAsumidoEmisorFabrica>
|
|
67
|
+
<ImpuestoNeto>1.3</ImpuestoNeto>
|
|
73
68
|
<MontoTotalLinea>11.3</MontoTotalLinea>
|
|
74
69
|
</LineaDetalle>
|
|
75
70
|
</DetalleServicio>
|
|
76
71
|
<ResumenFactura>
|
|
77
72
|
<CodigoTipoMoneda>
|
|
78
73
|
<CodigoMoneda>CRC</CodigoMoneda>
|
|
79
|
-
<TipoCambio>
|
|
74
|
+
<TipoCambio>1</TipoCambio>
|
|
80
75
|
</CodigoTipoMoneda>
|
|
81
76
|
<TotalServGravados>0</TotalServGravados>
|
|
82
77
|
<TotalServExentos>0</TotalServExentos>
|
|
@@ -89,6 +84,9 @@
|
|
|
89
84
|
<TotalDescuentos>0</TotalDescuentos>
|
|
90
85
|
<TotalVentaNeta>10</TotalVentaNeta>
|
|
91
86
|
<TotalImpuesto>1.3</TotalImpuesto>
|
|
87
|
+
<MedioPago>
|
|
88
|
+
<TipoMedioPago>03</TipoMedioPago>
|
|
89
|
+
</MedioPago>
|
|
92
90
|
<TotalComprobante>11.3</TotalComprobante>
|
|
93
91
|
</ResumenFactura>
|
|
94
92
|
</FacturaElectronica>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DocumentInputWithReceiver } from '@src/ATV/core/CreateDocFactory'
|
|
1
2
|
import { CreateDocumentInput } from '@src/index'
|
|
2
3
|
|
|
3
4
|
const taxStub: CreateDocumentInput['document']['orderLines'][0]['tax'] = {
|
|
@@ -75,7 +76,7 @@ export const creditNoteReferenceInfoExample: CreateDocumentInput['document']['re
|
|
|
75
76
|
reason: 'Se anula documento'
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
export const
|
|
79
|
+
export const FEInputExample: DocumentInputWithReceiver = {
|
|
79
80
|
consecutiveIdentifier: '2',
|
|
80
81
|
activityCode: '4',
|
|
81
82
|
providerId: emitterStub.identifier.id,
|
|
@@ -91,3 +92,19 @@ export const createDocumentInputExample: CreateDocumentInput['document'] = {
|
|
|
91
92
|
paymentMethod: '03',
|
|
92
93
|
conditionSale: '01'
|
|
93
94
|
}
|
|
95
|
+
|
|
96
|
+
export const TEInputExample: CreateDocumentInput['document'] = {
|
|
97
|
+
consecutiveIdentifier: '2',
|
|
98
|
+
activityCode: '4',
|
|
99
|
+
providerId: emitterStub.identifier.id,
|
|
100
|
+
documentName: 'TiqueteElectronico',
|
|
101
|
+
branch: '1', // '001'
|
|
102
|
+
terminal: '1', // '00001'
|
|
103
|
+
ceSituation: '1',
|
|
104
|
+
countryCode: '506',
|
|
105
|
+
emitter: emitterStub,
|
|
106
|
+
orderLines,
|
|
107
|
+
securityCode: '1', // '00000001'
|
|
108
|
+
paymentMethod: '03',
|
|
109
|
+
conditionSale: '01'
|
|
110
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
export const postTokenOptions = {
|
|
2
|
-
client_id: 'api-stag',
|
|
3
|
-
client_secret: '',
|
|
4
|
-
grant_type: 'password',
|
|
2
|
+
client_id: 'api-stag',
|
|
3
|
+
client_secret: '',
|
|
4
|
+
grant_type: 'password',
|
|
5
5
|
username: 'cpj-1-111-654321@stag.comprobanteselectronicos.go.cr',
|
|
6
6
|
password: 'Rg-OQS)]Y00987654321'
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export const tokenStub = {
|
|
10
|
-
access_token: 'eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ4WERpTElEdW1DNUlKYkViZDRFRDlrMy1NS0Z6eUh4QW4xUWZYeEtSOWt3In0.eyJqdGkiOiIwMWE1NzY0Yy1lZGExLTRlNmEtOTg4MS1kNWJiYWQ5MTE3MjQiLCJleHAiOjE2MjE4MTIzNTcsIm5iZiI6MCwiaWF0IjoxNjIxODEyMDU3LCJpc3MiOiJodHRwOi8vaWRwLmNvbXByb2JhbnRlc2VsZWN0cm9uaWNvcy5nby5jci9hdXRoL3JlYWxtcy9ydXQtc3RhZyIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJiZDAyZmFiNS1hMjMwLTRlY2YtOWI3Zi1lMjA1NGM3YjhhMGYiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhcGktc3RhZyIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6IjQ3Y2UyYzBhLTU2MDAtNDA0NS1hNDllLTQ1NDQwM2VmYzg2YiIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiIiwibmFtZSI6IkNJRU5DSUEgREVMIFNBQk9SIFNPQ0lFREFEIERFIFJFU1BPTlNBQklMSURBRCBMSU1JVEFEQSIsInByZWZlcnJlZF91c2VybmFtZSI6ImNwai0zLTEwMi03NTkxNTdAc3RhZy5jb21wcm9iYW50ZXNlbGVjdHJvbmljb3MuZ28uY3IiLCJnaXZlbl9uYW1lIjoiQ0lFTkNJQSBERUwgU0FCT1IgU09DSUVEQUQgREUgUkVTUE9OU0FCSUxJREFEIExJTUlUQURBIiwicG9sIjoiNWI4MGI0NDc5ZWNlMzYwMzJiMDdkMmViIiwicG9saWN5LWlkIjoiNThhNjIwMzM3NmVhZTE0MDhjZTVlN2RkIiwiZW1haWwiOiJjcGotMy0xMDItNzU5MTU3QHN0YWcuY29tcHJvYmFudGVzZWxlY3Ryb25pY29zLmdvLmNyIn0.GBhbEkVQFGKgKr28H2SaB0QHMLIXcn8jmCj-VVTvSDGKmF7CLp7Dwi94oXiW72AoZAqvNBRnRr4hDJb7s8HZedhtD965O9x_pKPVYjgc6B_xXwczNqL6o4I2o3GKZ_1dY7E9KZgUTqv-dbZ3LmKmvB5dk_icRw-Kh5tGheUaF5cSdzIYa4VHy-ZgMcacdBnvl-G9mixkYlBShMJyszIQ-k2T9z4FFvOUdNstBiehwFiCBi7CS7HP_wn1w04O2uClyq-zHk9U8Qb25YROquFtZHV9IPrgg3LMA4MuLS6OhnKRjYHbqf0j4Elh_ucNYDs7Whz5Y76Ya33d3VhooUuDKA',
|
|
11
|
-
expires_in: 300,
|
|
12
|
-
refresh_expires_in: 1200,
|
|
13
|
-
refresh_token: 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmOThjMTk2Mi02ZGJkLTRjNDAtOTM5Ni00YTVmMDdjYTYxZTQifQ.eyJqdGkiOiJiZDMyMWYyNC02MGFlLTRiMmYtYWJlZS01ZDI1NWNlMDAyMDYiLCJleHAiOjE2MjE4MTMyNTcsIm5iZiI6MCwiaWF0IjoxNjIxODEyMDU3LCJpc3MiOiJodHRwOi8vaWRwLmNvbXByb2JhbnRlc2VsZWN0cm9uaWNvcy5nby5jci9hdXRoL3JlYWxtcy9ydXQtc3RhZyIsImF1ZCI6Imh0dHA6Ly9pZHAuY29tcHJvYmFudGVzZWxlY3Ryb25pY29zLmdvLmNyL2F1dGgvcmVhbG1zL3J1dC1zdGFnIiwic3ViIjoiYmQwMmZhYjUtYTIzMC00ZWNmLTliN2YtZTIwNTRjN2I4YTBmIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6ImFwaS1zdGFnIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiNDdjZTJjMGEtNTYwMC00MDQ1LWE0OWUtNDU0NDAzZWZjODZiIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6IiJ9.aQzWy0NHyizDSZwYz14oOXrwekSPlHOrkjiRdo_BvP4',
|
|
14
|
-
token_type: 'bearer',
|
|
10
|
+
access_token: 'eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ4WERpTElEdW1DNUlKYkViZDRFRDlrMy1NS0Z6eUh4QW4xUWZYeEtSOWt3In0.eyJqdGkiOiIwMWE1NzY0Yy1lZGExLTRlNmEtOTg4MS1kNWJiYWQ5MTE3MjQiLCJleHAiOjE2MjE4MTIzNTcsIm5iZiI6MCwiaWF0IjoxNjIxODEyMDU3LCJpc3MiOiJodHRwOi8vaWRwLmNvbXByb2JhbnRlc2VsZWN0cm9uaWNvcy5nby5jci9hdXRoL3JlYWxtcy9ydXQtc3RhZyIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJiZDAyZmFiNS1hMjMwLTRlY2YtOWI3Zi1lMjA1NGM3YjhhMGYiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhcGktc3RhZyIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6IjQ3Y2UyYzBhLTU2MDAtNDA0NS1hNDllLTQ1NDQwM2VmYzg2YiIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiIiwibmFtZSI6IkNJRU5DSUEgREVMIFNBQk9SIFNPQ0lFREFEIERFIFJFU1BPTlNBQklMSURBRCBMSU1JVEFEQSIsInByZWZlcnJlZF91c2VybmFtZSI6ImNwai0zLTEwMi03NTkxNTdAc3RhZy5jb21wcm9iYW50ZXNlbGVjdHJvbmljb3MuZ28uY3IiLCJnaXZlbl9uYW1lIjoiQ0lFTkNJQSBERUwgU0FCT1IgU09DSUVEQUQgREUgUkVTUE9OU0FCSUxJREFEIExJTUlUQURBIiwicG9sIjoiNWI4MGI0NDc5ZWNlMzYwMzJiMDdkMmViIiwicG9saWN5LWlkIjoiNThhNjIwMzM3NmVhZTE0MDhjZTVlN2RkIiwiZW1haWwiOiJjcGotMy0xMDItNzU5MTU3QHN0YWcuY29tcHJvYmFudGVzZWxlY3Ryb25pY29zLmdvLmNyIn0.GBhbEkVQFGKgKr28H2SaB0QHMLIXcn8jmCj-VVTvSDGKmF7CLp7Dwi94oXiW72AoZAqvNBRnRr4hDJb7s8HZedhtD965O9x_pKPVYjgc6B_xXwczNqL6o4I2o3GKZ_1dY7E9KZgUTqv-dbZ3LmKmvB5dk_icRw-Kh5tGheUaF5cSdzIYa4VHy-ZgMcacdBnvl-G9mixkYlBShMJyszIQ-k2T9z4FFvOUdNstBiehwFiCBi7CS7HP_wn1w04O2uClyq-zHk9U8Qb25YROquFtZHV9IPrgg3LMA4MuLS6OhnKRjYHbqf0j4Elh_ucNYDs7Whz5Y76Ya33d3VhooUuDKA',
|
|
11
|
+
expires_in: 300,
|
|
12
|
+
refresh_expires_in: 1200,
|
|
13
|
+
refresh_token: 'eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmOThjMTk2Mi02ZGJkLTRjNDAtOTM5Ni00YTVmMDdjYTYxZTQifQ.eyJqdGkiOiJiZDMyMWYyNC02MGFlLTRiMmYtYWJlZS01ZDI1NWNlMDAyMDYiLCJleHAiOjE2MjE4MTMyNTcsIm5iZiI6MCwiaWF0IjoxNjIxODEyMDU3LCJpc3MiOiJodHRwOi8vaWRwLmNvbXByb2JhbnRlc2VsZWN0cm9uaWNvcy5nby5jci9hdXRoL3JlYWxtcy9ydXQtc3RhZyIsImF1ZCI6Imh0dHA6Ly9pZHAuY29tcHJvYmFudGVzZWxlY3Ryb25pY29zLmdvLmNyL2F1dGgvcmVhbG1zL3J1dC1zdGFnIiwic3ViIjoiYmQwMmZhYjUtYTIzMC00ZWNmLTliN2YtZTIwNTRjN2I4YTBmIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6ImFwaS1zdGFnIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiNDdjZTJjMGEtNTYwMC00MDQ1LWE0OWUtNDU0NDAzZWZjODZiIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6IiJ9.aQzWy0NHyizDSZwYz14oOXrwekSPlHOrkjiRdo_BvP4',
|
|
14
|
+
token_type: 'bearer',
|
|
15
15
|
'not-before-policy': 0,
|
|
16
|
-
session_state: '47ce2c0a-5600-4045-a49e-454403efc86b',
|
|
16
|
+
session_state: '47ce2c0a-5600-4045-a49e-454403efc86b',
|
|
17
17
|
scope: ''
|
|
18
18
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`Create Document (Invoice) should create document and match to snapshot 1`] = `"
|
|
3
|
+
exports[`Create Document (Invoice) should create document and match to snapshot 1`] = `"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48RmFjdHVyYUVsZWN0cm9uaWNhIHhtbG5zPSJodHRwczovL2Nkbi5jb21wcm9iYW50ZXNlbGVjdHJvbmljb3MuZ28uY3IveG1sLXNjaGVtYXMvdjQuNC9mYWN0dXJhRWxlY3Ryb25pY2EiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj48Q2xhdmU+NTA2MDEwNDI0MDAwMjA2OTIwMTQyMDAxMDAwMDEwMTAwMDAwMDAwMDIxMDAwMDAwMDE8L0NsYXZlPjxQcm92ZWVkb3JTaXN0ZW1hcz4yMDY5MjAxNDI8L1Byb3ZlZWRvclNpc3RlbWFzPjxDb2RpZ29BY3RpdmlkYWRFbWlzb3I+MDAwMDA0PC9Db2RpZ29BY3RpdmlkYWRFbWlzb3I+PENvZGlnb0FjdGl2aWRhZFJlY2VwdG9yPjAwMDAwNDwvQ29kaWdvQWN0aXZpZGFkUmVjZXB0b3I+PE51bWVyb0NvbnNlY3V0aXZvPjAwMTAwMDAxMDEwMDAwMDAwMDAyPC9OdW1lcm9Db25zZWN1dGl2bz48RmVjaGFFbWlzaW9uPjIwMjQtMDQtMDFUMDA6MDA6MDAuMDAwWjwvRmVjaGFFbWlzaW9uPjxFbWlzb3I+PE5vbWJyZT5FbWlzb3IgbmFtZTwvTm9tYnJlPjxJZGVudGlmaWNhY2lvbj48VGlwbz4wMTwvVGlwbz48TnVtZXJvPjIwNjkyMDE0MjwvTnVtZXJvPjwvSWRlbnRpZmljYWNpb24+PE5vbWJyZUNvbWVyY2lhbD5lbWlzb3IgY29tZXJjaWFsIG5hbWU8L05vbWJyZUNvbWVyY2lhbD48VWJpY2FjaW9uPjxQcm92aW5jaWE+MjwvUHJvdmluY2lhPjxDYW50b24+MDY8L0NhbnRvbj48RGlzdHJpdG8+MDQ8L0Rpc3RyaXRvPjxCYXJyaW8+MDAwMDY8L0JhcnJpbz48T3RyYXNTZW5hcz5kZXRhaWxzPC9PdHJhc1NlbmFzPjwvVWJpY2FjaW9uPjxUZWxlZm9ubz48Q29kaWdvUGFpcz41MDY8L0NvZGlnb1BhaXM+PE51bVRlbGVmb25vPjEyMzQxMjM0PC9OdW1UZWxlZm9ubz48L1RlbGVmb25vPjxDb3JyZW9FbGVjdHJvbmljbz50ZXN0QHRlc3QuY29tPC9Db3JyZW9FbGVjdHJvbmljbz48L0VtaXNvcj48UmVjZXB0b3I+PE5vbWJyZT5yZWNlaXZlciBuYW1lIFNSTDwvTm9tYnJlPjxJZGVudGlmaWNhY2lvbj48VGlwbz4wMTwvVGlwbz48TnVtZXJvPjIwNjkzMDE0MzwvTnVtZXJvPjwvSWRlbnRpZmljYWNpb24+PE5vbWJyZUNvbWVyY2lhbD5yZWNlaXZlciBuYW1lPC9Ob21icmVDb21lcmNpYWw+PFViaWNhY2lvbj48UHJvdmluY2lhPjI8L1Byb3ZpbmNpYT48Q2FudG9uPjA2PC9DYW50b24+PERpc3RyaXRvPjA0PC9EaXN0cml0bz48QmFycmlvPjAwMDA2PC9CYXJyaW8+PE90cmFzU2VuYXM+ZGV0YWlsczwvT3RyYXNTZW5hcz48L1ViaWNhY2lvbj48VGVsZWZvbm8+PENvZGlnb1BhaXM+NTA2PC9Db2RpZ29QYWlzPjxOdW1UZWxlZm9ubz44MDgwODA4MDwvTnVtVGVsZWZvbm8+PC9UZWxlZm9ubz48Q29ycmVvRWxlY3Ryb25pY28+dGVzdEB0ZXN0LmNvbTwvQ29ycmVvRWxlY3Ryb25pY28+PC9SZWNlcHRvcj48Q29uZGljaW9uVmVudGE+MDE8L0NvbmRpY2lvblZlbnRhPjxEZXRhbGxlU2VydmljaW8+PExpbmVhRGV0YWxsZT48TnVtZXJvTGluZWE+MTwvTnVtZXJvTGluZWE+PENvZGlnb0NBQllTPjcxMTMzMDEwMDAwMDA8L0NvZGlnb0NBQllTPjxDYW50aWRhZD4xPC9DYW50aWRhZD48VW5pZGFkTWVkaWRhPlVuaWQ8L1VuaWRhZE1lZGlkYT48RGV0YWxsZT5kZXRhbGxlPC9EZXRhbGxlPjxQcmVjaW9Vbml0YXJpbz4xMDwvUHJlY2lvVW5pdGFyaW8+PE1vbnRvVG90YWw+MTA8L01vbnRvVG90YWw+PFN1YlRvdGFsPjEwPC9TdWJUb3RhbD48QmFzZUltcG9uaWJsZT4xMDwvQmFzZUltcG9uaWJsZT48SW1wdWVzdG8+PENvZGlnbz4wMTwvQ29kaWdvPjxUYXJpZmE+MTM8L1RhcmlmYT48TW9udG8+MS4zPC9Nb250bz48L0ltcHVlc3RvPjxJbXB1ZXN0b0FzdW1pZG9FbWlzb3JGYWJyaWNhPjA8L0ltcHVlc3RvQXN1bWlkb0VtaXNvckZhYnJpY2E+PEltcHVlc3RvTmV0bz4xLjM8L0ltcHVlc3RvTmV0bz48TW9udG9Ub3RhbExpbmVhPjExLjM8L01vbnRvVG90YWxMaW5lYT48L0xpbmVhRGV0YWxsZT48L0RldGFsbGVTZXJ2aWNpbz48UmVzdW1lbkZhY3R1cmE+PENvZGlnb1RpcG9Nb25lZGE+PENvZGlnb01vbmVkYT5DUkM8L0NvZGlnb01vbmVkYT48VGlwb0NhbWJpbz4xPC9UaXBvQ2FtYmlvPjwvQ29kaWdvVGlwb01vbmVkYT48VG90YWxTZXJ2R3JhdmFkb3M+MDwvVG90YWxTZXJ2R3JhdmFkb3M+PFRvdGFsU2VydkV4ZW50b3M+MDwvVG90YWxTZXJ2RXhlbnRvcz48VG90YWxNZXJjYW5jaWFzR3JhdmFkYXM+MTA8L1RvdGFsTWVyY2FuY2lhc0dyYXZhZGFzPjxUb3RhbE1lcmNhbmNpYXNFeGVudGFzPjA8L1RvdGFsTWVyY2FuY2lhc0V4ZW50YXM+PFRvdGFsR3JhdmFkbz4xMDwvVG90YWxHcmF2YWRvPjxUb3RhbEV4ZW50bz4wPC9Ub3RhbEV4ZW50bz48VG90YWxFeG9uZXJhZG8+MDwvVG90YWxFeG9uZXJhZG8+PFRvdGFsVmVudGE+MTA8L1RvdGFsVmVudGE+PFRvdGFsRGVzY3VlbnRvcz4wPC9Ub3RhbERlc2N1ZW50b3M+PFRvdGFsVmVudGFOZXRhPjEwPC9Ub3RhbFZlbnRhTmV0YT48VG90YWxJbXB1ZXN0bz4xLjM8L1RvdGFsSW1wdWVzdG8+PE1lZGlvUGFnbz48VGlwb01lZGlvUGFnbz4wMzwvVGlwb01lZGlvUGFnbz48L01lZGlvUGFnbz48VG90YWxDb21wcm9iYW50ZT4xMS4zPC9Ub3RhbENvbXByb2JhbnRlPjwvUmVzdW1lbkZhY3R1cmE+PC9GYWN0dXJhRWxlY3Ryb25pY2E+"`;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'fs'
|
|
2
2
|
import { ATV } from '@src/ATV'
|
|
3
3
|
import 'jest-xml-matcher'
|
|
4
|
-
import {
|
|
4
|
+
import { FEInputExample } from '@test/stubs/createDocument.data'
|
|
5
5
|
const fakePem = fs.readFileSync('__tests__/stubs/dummyKeys/client-identity.p12', 'binary')
|
|
6
6
|
const fakePassword = '1234'
|
|
7
7
|
const expectXml = fs.readFileSync('__tests__/stubs/commonExpectedXml.xml', 'utf-8')
|
|
@@ -15,7 +15,7 @@ describe('Create Document (Invoice)', () => {
|
|
|
15
15
|
it('should create document and generate a correct command', async () => {
|
|
16
16
|
const atv = new ATV({}, 'stg')
|
|
17
17
|
const createdDoc = await atv.createDocumentCommand({
|
|
18
|
-
document:
|
|
18
|
+
document: FEInputExample,
|
|
19
19
|
token: 'fake-token',
|
|
20
20
|
signatureOptions: {
|
|
21
21
|
buffer: fakePem,
|
|
@@ -29,8 +29,8 @@ describe('Create Document (Invoice)', () => {
|
|
|
29
29
|
expect(createdDoc.command.data).toMatchObject({
|
|
30
30
|
clave: '50601042400020692014200100001010000000002100000001',
|
|
31
31
|
fecha: '2024-04-01T00:00:00.000Z',
|
|
32
|
-
emisor: { tipoIdentificacion:
|
|
33
|
-
receptor: { tipoIdentificacion:
|
|
32
|
+
emisor: { tipoIdentificacion: FEInputExample.emitter.identifier.type, numeroIdentificacion: FEInputExample.emitter.identifier.id },
|
|
33
|
+
receptor: { tipoIdentificacion: FEInputExample.receiver.identifier.type, numeroIdentificacion: FEInputExample.receiver.identifier.id }
|
|
34
34
|
})
|
|
35
35
|
expect(createdDoc.command.data.comprobanteXml).toBeDefined()
|
|
36
36
|
expect(createdDoc.extraData.xml).toBeDefined()
|
|
@@ -38,20 +38,20 @@ describe('Create Document (Invoice)', () => {
|
|
|
38
38
|
|
|
39
39
|
it('should create document and match to snapshot', async () => {
|
|
40
40
|
const atv = new ATV({}, 'stg')
|
|
41
|
-
// @ts-ignore just for testing
|
|
42
41
|
const createdDoc = await atv.createDocumentCommand({
|
|
43
|
-
document:
|
|
42
|
+
document: FEInputExample,
|
|
44
43
|
token: 'fake-token',
|
|
44
|
+
// @ts-expect-error only for testing
|
|
45
45
|
signatureOptions: undefined
|
|
46
46
|
})
|
|
47
47
|
expect(createdDoc.command.data.comprobanteXml).toMatchSnapshot()
|
|
48
48
|
})
|
|
49
49
|
it('should create document and generate a correct xml', async () => {
|
|
50
50
|
const atv = new ATV({}, 'stg')
|
|
51
|
-
// @ts-ignore just for testing
|
|
52
51
|
const createdDoc = await atv.createDocumentCommand({
|
|
53
|
-
document:
|
|
52
|
+
document: FEInputExample,
|
|
54
53
|
token: 'fake-token',
|
|
54
|
+
// @ts-expect-error only for testing
|
|
55
55
|
signatureOptions: undefined
|
|
56
56
|
})
|
|
57
57
|
expect(createdDoc.extraData.xml).toEqualXML(expectXml)
|
|
@@ -1,41 +1,46 @@
|
|
|
1
1
|
import fs from 'fs'
|
|
2
|
-
import { ATV } from
|
|
3
|
-
import { AceptationStates } from '@src/ATV/core/types'
|
|
4
|
-
import { parseElectronicBillXML } from '@src/lib/genXML'
|
|
2
|
+
import { ATV } from '@src/ATV'
|
|
3
|
+
import { AceptationStates } from '@src/ATV/core/types'
|
|
4
|
+
import { parseElectronicBillXML } from '@src/lib/genXML'
|
|
5
5
|
const expectXml = fs.readFileSync('__tests__/stubs/commonExpectedXml.xml', 'utf-8')
|
|
6
6
|
const fakePem = fs.readFileSync('__tests__/stubs/dummyKeys/client-identity.p12', 'binary')
|
|
7
7
|
const fakePassword = '1234'
|
|
8
8
|
describe('Create Receptor Message', () => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
9
|
+
it('should create document and generate a correct command', async () => {
|
|
10
|
+
const atv = new ATV({}, 'stg')
|
|
11
|
+
const electronillBillRaw = parseElectronicBillXML(expectXml)
|
|
12
|
+
const { command } = await atv.createReceptorMessage({
|
|
13
|
+
aceptationState: AceptationStates.ACCEPTED,
|
|
14
|
+
aceptationDetailMessage: 'Accepted',
|
|
15
|
+
clave: electronillBillRaw.Clave,
|
|
16
|
+
emitterIdentifier: electronillBillRaw.Emisor.Identificacion.Numero,
|
|
17
|
+
emitterIdentifierType: electronillBillRaw.Emisor.Identificacion.Tipo,
|
|
18
|
+
// @ts-expect-error for testing purposes
|
|
19
|
+
receptorIdentifier: electronillBillRaw.Receptor.Identificacion.Numero,
|
|
20
|
+
// @ts-expect-error for testing purposes
|
|
21
|
+
receptorIdentifierType: electronillBillRaw.Receptor.Identificacion.Tipo,
|
|
22
|
+
// @ts-expect-error for testing purposes
|
|
23
|
+
documentIssueDate: new Date(electronillBillRaw.FechaEmision),
|
|
24
|
+
activityCode: electronillBillRaw.CodigoActividadEmisor,
|
|
25
|
+
// @ts-expect-error for testing purposes
|
|
26
|
+
taxCondition: electronillBillRaw.CondicionVenta,
|
|
27
|
+
totalTaxes: electronillBillRaw.ResumenFactura.TotalImpuesto,
|
|
28
|
+
totalSale: electronillBillRaw.ResumenFactura.TotalVenta,
|
|
29
|
+
branch: '01',
|
|
30
|
+
terminal: '01',
|
|
31
|
+
consecutive: '01',
|
|
32
|
+
token: 'fake-token',
|
|
33
|
+
signatureOptions: {
|
|
34
|
+
buffer: fakePem,
|
|
35
|
+
password: fakePassword
|
|
36
|
+
}
|
|
37
|
+
})
|
|
38
|
+
expect(command.data).toMatchObject({
|
|
39
|
+
clave: '50601042400020692014200100001010000000002100000001',
|
|
40
|
+
fecha: '2024-04-01T00:00:00.000Z',
|
|
41
|
+
emisor: { tipoIdentificacion: electronillBillRaw.Emisor.Identificacion.Tipo, numeroIdentificacion: electronillBillRaw.Emisor.Identificacion.Numero },
|
|
42
|
+
// @ts-expect-error for testing purposes
|
|
43
|
+
receptor: { tipoIdentificacion: electronillBillRaw.Receptor.Identificacion.Tipo, numeroIdentificacion: electronillBillRaw.Receptor.Identificacion.Numero }
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PersonProps } from '@src/ATV/core/Person';
|
|
2
|
-
import { DocumentNames } from '@src/ATV/core/documentNames.types';
|
|
3
2
|
import { Document } from '@src/ATV/core/Document';
|
|
3
|
+
import { DocumentNames } from '@src/ATV/core/DocumentType';
|
|
4
4
|
import { ReferenceInformationProps } from './ReferenceInformation';
|
|
5
5
|
import { ReceptorMessageProps } from './types';
|
|
6
6
|
type ReferenceInfoInput = ReferenceInformationProps;
|
|
@@ -23,9 +23,8 @@ type OrderInput = {
|
|
|
23
23
|
tax?: TaxInput;
|
|
24
24
|
totalOrderLineAmount?: number;
|
|
25
25
|
};
|
|
26
|
-
type
|
|
26
|
+
type DocumentInputBase = {
|
|
27
27
|
emitter: PersonInput;
|
|
28
|
-
receiver: PersonInput;
|
|
29
28
|
branch: string;
|
|
30
29
|
terminal: string;
|
|
31
30
|
documentName: DocumentNames;
|
|
@@ -40,6 +39,15 @@ type DocumentInput = {
|
|
|
40
39
|
conditionSale: string;
|
|
41
40
|
paymentMethod: string;
|
|
42
41
|
};
|
|
42
|
+
type DocumentInputTiquete = DocumentInputBase & {
|
|
43
|
+
documentName: 'TiqueteElectronico';
|
|
44
|
+
receiver?: PersonInput;
|
|
45
|
+
};
|
|
46
|
+
export type DocumentInputWithReceiver = DocumentInputBase & {
|
|
47
|
+
documentName: Exclude<DocumentNames, 'TiqueteElectronico'>;
|
|
48
|
+
receiver: PersonInput;
|
|
49
|
+
};
|
|
50
|
+
type DocumentInput = DocumentInputTiquete | DocumentInputWithReceiver;
|
|
43
51
|
export type CreateDocumentInput = {
|
|
44
52
|
document: DocumentInput;
|
|
45
53
|
token: string;
|
|
@@ -21,10 +21,10 @@ class CreateDocFactory {
|
|
|
21
21
|
providerId: document.providerId,
|
|
22
22
|
issueDate: new Date(),
|
|
23
23
|
emitter: Person_1.Person.create(document.emitter),
|
|
24
|
-
receiver: Person_1.Person.create(document.receiver),
|
|
24
|
+
receiver: document.receiver ? Person_1.Person.create(document.receiver) : undefined,
|
|
25
25
|
conditionSale: document.conditionSale,
|
|
26
26
|
paymentMethod: document.paymentMethod,
|
|
27
|
-
referenceInformation: document.referenceInfo ? ReferenceInformation_1.ReferenceInformation.create(document.referenceInfo) : undefined
|
|
27
|
+
referenceInformation: document.referenceInfo ? ReferenceInformation_1.ReferenceInformation.create(document.referenceInfo) : undefined
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
createOrderLines(dto) {
|
|
@@ -57,7 +57,7 @@ class CreateDocFactory {
|
|
|
57
57
|
countryCode: dto.countryCode,
|
|
58
58
|
docKeyType: docType.value,
|
|
59
59
|
emitterIdentifier: dto.emitter.identifier.id,
|
|
60
|
-
identifierType: dto.emitter.identifier.type
|
|
60
|
+
identifierType: dto.emitter.identifier.type || '01',
|
|
61
61
|
securityCode: dto.securityCode,
|
|
62
62
|
terminal: dto.terminal
|
|
63
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateDocFactory.js","sourceRoot":"","sources":["../../../../src/ATV/core/CreateDocFactory.ts"],"names":[],"mappings":";;;AAAA,qCAA0D;
|
|
1
|
+
{"version":3,"file":"CreateDocFactory.js","sourceRoot":"","sources":["../../../../src/ATV/core/CreateDocFactory.ts"],"names":[],"mappings":";;;AAAA,qCAA0D;AAC1D,2CAAmD;AACnD,uDAA+D;AAC/D,yCAAiD;AACjD,mCAA2C;AAC3C,iDAAwE;AACxE,iEAAwF;AAkExF,MAAa,gBAAgB;IACpB,cAAc,CAAC,QAAyC;QAC7D,MAAM,YAAY,GAAG,2BAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QAClD,OAAO,mBAAQ,CAAC,MAAM,CAAC;YACrB,KAAK;YACL,eAAe,EAAE,cAAc;YAC/B,UAAU;YACV,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,eAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1E,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,2CAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/G,CAAC,CAAA;IACJ,CAAC;IAEO,gBAAgB,CAAC,GAAoC;QAC3D,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC7C,OAAO,qBAAS,CAAC,MAAM,CAAC;gBACtB,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC1D,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,qBAAqB,CAAC,GAAoC,EAAE,OAAqB;QACvF,OAAO,iCAAe,CAAC,MAAM,CAAC;YAC5B,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;YAChD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YACnC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YACvC,YAAY,EAAE,OAAO,CAAC,KAAK;SAC5B,CAAC,CAAA;IACJ,CAAC;IAEO,WAAW,CAAC,GAAoC,EAAE,OAAqB;QAC7E,OAAO,aAAK,CAAC,MAAM,CAAC;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;YAChD,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,UAAU,EAAE,OAAO,CAAC,KAAK;YACzB,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC5C,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI;YACnD,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAA;IACJ,CAAC;CACF;AAzDD,4CAyDC"}
|
|
@@ -10,7 +10,7 @@ export type InvoiceProps = {
|
|
|
10
10
|
fullConsecutive: FullConsecutive;
|
|
11
11
|
issueDate: Date;
|
|
12
12
|
emitter: Person;
|
|
13
|
-
receiver
|
|
13
|
+
receiver?: Person;
|
|
14
14
|
orderLines: OrderLine[];
|
|
15
15
|
conditionSale?: string;
|
|
16
16
|
deadlineCredit?: string;
|
|
@@ -34,7 +34,7 @@ export declare class Document {
|
|
|
34
34
|
get activityCode(): string;
|
|
35
35
|
get issueDate(): Date;
|
|
36
36
|
get emitter(): Person;
|
|
37
|
-
get receiver(): Person;
|
|
37
|
+
get receiver(): Person | undefined;
|
|
38
38
|
get orderLines(): OrderLine[];
|
|
39
39
|
get conditionSale(): string | undefined;
|
|
40
40
|
get deadlineCredit(): string | undefined;
|
|
@@ -51,7 +51,7 @@ class Document {
|
|
|
51
51
|
const summary = {
|
|
52
52
|
currency: {
|
|
53
53
|
code: 'CRC',
|
|
54
|
-
exchangeRate: '
|
|
54
|
+
exchangeRate: '1'
|
|
55
55
|
},
|
|
56
56
|
totalExemptServices: 0,
|
|
57
57
|
totalEncumberedServices: servicesLineSumResult.totalAmount,
|
|
@@ -78,25 +78,28 @@ class Document {
|
|
|
78
78
|
}
|
|
79
79
|
sumServicesLines() {
|
|
80
80
|
return this.orderLines.filter(this.isAService).reduce((previousValue, currentValue) => {
|
|
81
|
+
var _a, _b;
|
|
81
82
|
return {
|
|
82
83
|
totalAmount: previousValue.totalAmount + currentValue.totalAmount,
|
|
83
|
-
totalTaxes: previousValue.totalTaxes + currentValue.tax.amount
|
|
84
|
+
totalTaxes: previousValue.totalTaxes + ((_b = (_a = currentValue.tax) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0)
|
|
84
85
|
};
|
|
85
86
|
}, { totalAmount: 0, totalTaxes: 0 });
|
|
86
87
|
}
|
|
87
88
|
sumMerchandiseLines() {
|
|
88
89
|
return this.orderLines.filter((ol) => !this.isAService(ol)).reduce((previousValue, currentValue) => {
|
|
90
|
+
var _a, _b;
|
|
89
91
|
return {
|
|
90
92
|
totalAmount: previousValue.totalAmount + currentValue.totalAmount,
|
|
91
|
-
totalTaxes: previousValue.totalTaxes + currentValue.tax.amount
|
|
93
|
+
totalTaxes: previousValue.totalTaxes + ((_b = (_a = currentValue.tax) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0)
|
|
92
94
|
};
|
|
93
95
|
}, { totalAmount: 0, totalTaxes: 0 });
|
|
94
96
|
}
|
|
95
97
|
sumOrderLines() {
|
|
96
98
|
return this.orderLines.reduce((previousValue, currentValue) => {
|
|
99
|
+
var _a, _b;
|
|
97
100
|
return {
|
|
98
101
|
totalAmount: previousValue.totalAmount + currentValue.totalAmount,
|
|
99
|
-
totalTaxes: previousValue.totalTaxes + currentValue.tax.amount
|
|
102
|
+
totalTaxes: previousValue.totalTaxes + ((_b = (_a = currentValue.tax) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0)
|
|
100
103
|
};
|
|
101
104
|
}, { totalAmount: 0, totalTaxes: 0 });
|
|
102
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../../src/ATV/core/Document.ts"],"names":[],"mappings":";;;AA8BA,MAAa,QAAQ;IAEnB,YAAY,KAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAA;IAC/B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAA;IACzC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAA;IACxC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;IAC7B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC5B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAA;IACjC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAA;IAClC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAA;IACjC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAA;QAClC,CAAC;QACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAC/C,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACrD,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC3D,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE;gBACR,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../../src/ATV/core/Document.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
type DocumentTypeValues = 'FE' | 'ND' | 'NC' | 'TE';
|
|
1
|
+
export type DocumentNames = 'FacturaElectronica' | 'TiqueteElectronico' | 'FacturaElectronicaExportacion' | 'NotaCreditoElectronica' | 'NotaDebitoElectronica' | 'MensajeReceptor';
|
|
2
|
+
export type DocumentTypeValues = 'FE' | 'ND' | 'NC' | 'TE';
|
|
3
3
|
export declare class DocumentType {
|
|
4
4
|
value: DocumentTypeValues;
|
|
5
5
|
constructor(value: DocumentTypeValues);
|
|
6
6
|
static create(documentName: DocumentNames): DocumentType;
|
|
7
7
|
}
|
|
8
|
-
export {};
|