@facturacr/atv-sdk 2.0.5-alpha → 2.0.6-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/__tests__/stubs/commonExpectedXml.xml +101 -98
- package/__tests__/stubs/createDocument.data.ts +13 -13
- package/__tests__/tests/ATV/__snapshots__/create-document.test.ts.snap +1 -1
- package/dist/src/ATV/core/Document.d.ts +8 -0
- package/dist/src/ATV/core/Document.js +73 -43
- package/dist/src/ATV/core/Document.js.map +1 -1
- package/dist/src/ATV/core/Summary.type.d.ts +3 -0
- package/dist/src/ATV/mappers/billDocToAtv.js +3 -0
- package/dist/src/ATV/mappers/billDocToAtv.js.map +1 -1
- package/package.json +4 -3
- package/src/ATV/core/Document.ts +84 -46
- package/src/ATV/core/Summary.type.ts +3 -0
- package/src/ATV/mappers/billDocToAtv.ts +3 -0
|
@@ -1,100 +1,103 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
</
|
|
3
|
+
<Clave>50601042400020692014200100001010000000002100000001</Clave>
|
|
4
|
+
<ProveedorSistemas>206920142</ProveedorSistemas>
|
|
5
|
+
<CodigoActividadEmisor>930903</CodigoActividadEmisor>
|
|
6
|
+
<CodigoActividadReceptor>930903</CodigoActividadReceptor>
|
|
7
|
+
<NumeroConsecutivo>00100001010000000002</NumeroConsecutivo>
|
|
8
|
+
<FechaEmision>2024-04-01T00:00:00.000Z</FechaEmision>
|
|
9
|
+
<Emisor>
|
|
10
|
+
<Nombre>Tek rocks</Nombre>
|
|
11
|
+
<Identificacion>
|
|
12
|
+
<Tipo>01</Tipo>
|
|
13
|
+
<Numero>206920142</Numero>
|
|
14
|
+
</Identificacion>
|
|
15
|
+
<NombreComercial>Ciencia del sabor</NombreComercial>
|
|
16
|
+
<Ubicacion>
|
|
17
|
+
<Provincia>2</Provincia>
|
|
18
|
+
<Canton>06</Canton>
|
|
19
|
+
<Distrito>04</Distrito>
|
|
20
|
+
<Barrio>00006</Barrio>
|
|
21
|
+
<OtrasSenas>Calle Arrieta</OtrasSenas>
|
|
22
|
+
</Ubicacion>
|
|
23
|
+
<Telefono>
|
|
24
|
+
<CodigoPais>506</CodigoPais>
|
|
25
|
+
<NumTelefono>88122479</NumTelefono>
|
|
26
|
+
</Telefono>
|
|
27
|
+
<CorreoElectronico>cienciadelsabor@gmail.com</CorreoElectronico>
|
|
28
|
+
</Emisor>
|
|
29
|
+
<Receptor>
|
|
30
|
+
<Nombre>EXCLUSIVE COFFEES</Nombre>
|
|
31
|
+
<Identificacion>
|
|
32
|
+
<Tipo>02</Tipo>
|
|
33
|
+
<Numero>3101538252</Numero>
|
|
34
|
+
</Identificacion>
|
|
35
|
+
<NombreComercial>EXCLUSIVE COFFEES S.A</NombreComercial>
|
|
36
|
+
<Ubicacion>
|
|
37
|
+
<Provincia>2</Provincia>
|
|
38
|
+
<Canton>01</Canton>
|
|
39
|
+
<Distrito>08</Distrito>
|
|
40
|
+
<Barrio>00006</Barrio>
|
|
41
|
+
<OtrasSenas>600 metros sur y 400 oeste ofibodegas del oeste</OtrasSenas>
|
|
42
|
+
</Ubicacion>
|
|
43
|
+
<Telefono>
|
|
44
|
+
<CodigoPais>506</CodigoPais>
|
|
45
|
+
<NumTelefono>22390301</NumTelefono>
|
|
46
|
+
</Telefono>
|
|
47
|
+
<CorreoElectronico>facturaelectronica@exclusivecoffeecr.com</CorreoElectronico>
|
|
48
|
+
</Receptor>
|
|
49
|
+
<CondicionVenta>01</CondicionVenta>
|
|
50
|
+
<DetalleServicio>
|
|
51
|
+
<LineaDetalle>
|
|
52
|
+
<NumeroLinea>1</NumeroLinea>
|
|
53
|
+
<CodigoCABYS>8715600009900</CodigoCABYS>
|
|
54
|
+
<Cantidad>1</Cantidad>
|
|
55
|
+
<UnidadMedida>Sp</UnidadMedida>
|
|
56
|
+
<Detalle>detalle</Detalle>
|
|
57
|
+
<PrecioUnitario>10</PrecioUnitario>
|
|
58
|
+
<MontoTotal>10</MontoTotal>
|
|
59
|
+
<SubTotal>10</SubTotal>
|
|
60
|
+
<BaseImponible>10</BaseImponible>
|
|
61
|
+
<Impuesto>
|
|
62
|
+
<Codigo>01</Codigo>
|
|
63
|
+
<CodigoTarifaIVA>08</CodigoTarifaIVA>
|
|
64
|
+
<Tarifa>13</Tarifa>
|
|
65
|
+
<Monto>1.3</Monto>
|
|
66
|
+
</Impuesto>
|
|
67
|
+
<ImpuestoAsumidoEmisorFabrica>0</ImpuestoAsumidoEmisorFabrica>
|
|
68
|
+
<ImpuestoNeto>1.3</ImpuestoNeto>
|
|
69
|
+
<MontoTotalLinea>11.3</MontoTotalLinea>
|
|
70
|
+
</LineaDetalle>
|
|
71
|
+
</DetalleServicio>
|
|
72
|
+
<ResumenFactura>
|
|
73
|
+
<CodigoTipoMoneda>
|
|
74
|
+
<CodigoMoneda>CRC</CodigoMoneda>
|
|
75
|
+
<TipoCambio>1</TipoCambio>
|
|
76
|
+
</CodigoTipoMoneda>
|
|
77
|
+
<TotalServGravados>10</TotalServGravados>
|
|
78
|
+
<TotalServExentos>0</TotalServExentos>
|
|
79
|
+
<TotalServNoSujeto>0</TotalServNoSujeto>
|
|
80
|
+
<TotalMercanciasGravadas>0</TotalMercanciasGravadas>
|
|
81
|
+
<TotalMercanciasExentas>0</TotalMercanciasExentas>
|
|
82
|
+
<TotalMercNoSujeta>0</TotalMercNoSujeta>
|
|
83
|
+
<TotalGravado>10</TotalGravado>
|
|
84
|
+
<TotalExento>0</TotalExento>
|
|
85
|
+
<TotalExonerado>0</TotalExonerado>
|
|
86
|
+
<TotalNoSujeto>0</TotalNoSujeto>
|
|
87
|
+
<TotalVenta>10</TotalVenta>
|
|
88
|
+
<TotalDescuentos>0</TotalDescuentos>
|
|
89
|
+
<TotalVentaNeta>10</TotalVentaNeta>
|
|
90
|
+
<TotalDesgloseImpuesto>
|
|
91
|
+
<Codigo>01</Codigo>
|
|
92
|
+
<CodigoTarifaIVA>08</CodigoTarifaIVA>
|
|
93
|
+
<TotalMontoImpuesto>1.3</TotalMontoImpuesto>
|
|
94
|
+
</TotalDesgloseImpuesto>
|
|
95
|
+
<TotalImpuesto>1.3</TotalImpuesto>
|
|
96
|
+
<TotalImpAsumEmisorFabrica>0</TotalImpAsumEmisorFabrica>
|
|
97
|
+
<TotalOtrosCargos>0</TotalOtrosCargos>
|
|
98
|
+
<MedioPago>
|
|
99
|
+
<TipoMedioPago>03</TipoMedioPago>
|
|
100
|
+
</MedioPago>
|
|
101
|
+
<TotalComprobante>11.3</TotalComprobante>
|
|
102
|
+
</ResumenFactura>
|
|
103
|
+
</FacturaElectronica>
|
|
@@ -8,7 +8,7 @@ const taxStub: CreateDocumentInput['document']['orderLines'][0]['tax'] = {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
const orderLines: CreateDocumentInput['document']['orderLines'] = [{
|
|
11
|
-
code: '
|
|
11
|
+
code: '8715600009900',
|
|
12
12
|
quantity: 1,
|
|
13
13
|
measureUnit: 'Sp',
|
|
14
14
|
detail: 'detalle',
|
|
@@ -17,28 +17,28 @@ const orderLines: CreateDocumentInput['document']['orderLines'] = [{
|
|
|
17
17
|
}]
|
|
18
18
|
|
|
19
19
|
const receiverStub: CreateDocumentInput['document']['emitter'] = {
|
|
20
|
-
fullName: '
|
|
21
|
-
commercialName: '
|
|
22
|
-
activityCode: '
|
|
20
|
+
fullName: 'EXCLUSIVE COFFEES',
|
|
21
|
+
commercialName: 'EXCLUSIVE COFFEES S.A',
|
|
22
|
+
activityCode: '930903',
|
|
23
23
|
identifier: {
|
|
24
|
-
type: '
|
|
25
|
-
id: '
|
|
24
|
+
type: '02',
|
|
25
|
+
id: '3101538252'
|
|
26
26
|
},
|
|
27
27
|
location: {
|
|
28
28
|
province: '2',
|
|
29
|
-
canton: '
|
|
30
|
-
district: '
|
|
31
|
-
neighborhood: '
|
|
32
|
-
details: '
|
|
29
|
+
canton: '01',
|
|
30
|
+
district: '08',
|
|
31
|
+
neighborhood: '00006',
|
|
32
|
+
details: '600 metros sur y 400 oeste ofibodegas del oeste'
|
|
33
33
|
},
|
|
34
34
|
phone: {
|
|
35
35
|
countryCode: '506',
|
|
36
|
-
number: '
|
|
36
|
+
number: '22390301'
|
|
37
37
|
},
|
|
38
|
-
email: '
|
|
38
|
+
email: 'facturaelectronica@exclusivecoffeecr.com',
|
|
39
39
|
fax: {
|
|
40
40
|
countryCode: '506',
|
|
41
|
-
number: '
|
|
41
|
+
number: '22390301'
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -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`] = `"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48RmFjdHVyYUVsZWN0cm9uaWNhIHhtbG5zPSJodHRwczovL2Nkbi5jb21wcm9iYW50ZXNlbGVjdHJvbmljb3MuZ28uY3IveG1sLXNjaGVtYXMvdjQuNC9mYWN0dXJhRWxlY3Ryb25pY2EiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KICA8Q2xhdmU+NTA2MDEwNDI0MDAwMjA2OTIwMTQyMDAxMDAwMDEwMTAwMDAwMDAwMDIxMDAwMDAwMDE8L0NsYXZlPgogIDxQcm92ZWVkb3JTaXN0ZW1hcz4yMDY5MjAxNDI8L1Byb3ZlZWRvclNpc3RlbWFzPgogIDxDb2RpZ29BY3RpdmlkYWRFbWlzb3I+OTMwOTAzPC9Db2RpZ29BY3RpdmlkYWRFbWlzb3I+
|
|
3
|
+
exports[`Create Document (Invoice) should create document and match to snapshot 1`] = `"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48RmFjdHVyYUVsZWN0cm9uaWNhIHhtbG5zPSJodHRwczovL2Nkbi5jb21wcm9iYW50ZXNlbGVjdHJvbmljb3MuZ28uY3IveG1sLXNjaGVtYXMvdjQuNC9mYWN0dXJhRWxlY3Ryb25pY2EiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KICA8Q2xhdmU+NTA2MDEwNDI0MDAwMjA2OTIwMTQyMDAxMDAwMDEwMTAwMDAwMDAwMDIxMDAwMDAwMDE8L0NsYXZlPgogIDxQcm92ZWVkb3JTaXN0ZW1hcz4yMDY5MjAxNDI8L1Byb3ZlZWRvclNpc3RlbWFzPgogIDxDb2RpZ29BY3RpdmlkYWRFbWlzb3I+OTMwOTAzPC9Db2RpZ29BY3RpdmlkYWRFbWlzb3I+CiAgPENvZGlnb0FjdGl2aWRhZFJlY2VwdG9yPjkzMDkwMzwvQ29kaWdvQWN0aXZpZGFkUmVjZXB0b3I+CiAgPE51bWVyb0NvbnNlY3V0aXZvPjAwMTAwMDAxMDEwMDAwMDAwMDAyPC9OdW1lcm9Db25zZWN1dGl2bz4KICA8RmVjaGFFbWlzaW9uPjIwMjQtMDQtMDFUMDA6MDA6MDAuMDAwWjwvRmVjaGFFbWlzaW9uPgogIDxFbWlzb3I+CiAgICA8Tm9tYnJlPlRlayByb2NrczwvTm9tYnJlPgogICAgPElkZW50aWZpY2FjaW9uPgogICAgICA8VGlwbz4wMTwvVGlwbz4KICAgICAgPE51bWVybz4yMDY5MjAxNDI8L051bWVybz4KICAgIDwvSWRlbnRpZmljYWNpb24+CiAgICA8Tm9tYnJlQ29tZXJjaWFsPkNpZW5jaWEgZGVsIHNhYm9yPC9Ob21icmVDb21lcmNpYWw+CiAgICA8VWJpY2FjaW9uPgogICAgICA8UHJvdmluY2lhPjI8L1Byb3ZpbmNpYT4KICAgICAgPENhbnRvbj4wNjwvQ2FudG9uPgogICAgICA8RGlzdHJpdG8+MDQ8L0Rpc3RyaXRvPgogICAgICA8QmFycmlvPjAwMDA2PC9CYXJyaW8+CiAgICAgIDxPdHJhc1NlbmFzPkNhbGxlIEFycmlldGE8L090cmFzU2VuYXM+CiAgICA8L1ViaWNhY2lvbj4KICAgIDxUZWxlZm9ubz4KICAgICAgPENvZGlnb1BhaXM+NTA2PC9Db2RpZ29QYWlzPgogICAgICA8TnVtVGVsZWZvbm8+ODgxMjI0Nzk8L051bVRlbGVmb25vPgogICAgPC9UZWxlZm9ubz4KICAgIDxDb3JyZW9FbGVjdHJvbmljbz5jaWVuY2lhZGVsc2Fib3JAZ21haWwuY29tPC9Db3JyZW9FbGVjdHJvbmljbz4KICA8L0VtaXNvcj4KICA8UmVjZXB0b3I+CiAgICA8Tm9tYnJlPkVYQ0xVU0lWRSBDT0ZGRUVTPC9Ob21icmU+CiAgICA8SWRlbnRpZmljYWNpb24+CiAgICAgIDxUaXBvPjAyPC9UaXBvPgogICAgICA8TnVtZXJvPjMxMDE1MzgyNTI8L051bWVybz4KICAgIDwvSWRlbnRpZmljYWNpb24+CiAgICA8Tm9tYnJlQ29tZXJjaWFsPkVYQ0xVU0lWRSBDT0ZGRUVTIFMuQTwvTm9tYnJlQ29tZXJjaWFsPgogICAgPFViaWNhY2lvbj4KICAgICAgPFByb3ZpbmNpYT4yPC9Qcm92aW5jaWE+CiAgICAgIDxDYW50b24+MDE8L0NhbnRvbj4KICAgICAgPERpc3RyaXRvPjA4PC9EaXN0cml0bz4KICAgICAgPEJhcnJpbz4wMDAwNjwvQmFycmlvPgogICAgICA8T3RyYXNTZW5hcz42MDAgbWV0cm9zIHN1ciB5IDQwMCBvZXN0ZSBvZmlib2RlZ2FzIGRlbCBvZXN0ZTwvT3RyYXNTZW5hcz4KICAgIDwvVWJpY2FjaW9uPgogICAgPFRlbGVmb25vPgogICAgICA8Q29kaWdvUGFpcz41MDY8L0NvZGlnb1BhaXM+CiAgICAgIDxOdW1UZWxlZm9ubz4yMjM5MDMwMTwvTnVtVGVsZWZvbm8+CiAgICA8L1RlbGVmb25vPgogICAgPENvcnJlb0VsZWN0cm9uaWNvPmZhY3R1cmFlbGVjdHJvbmljYUBleGNsdXNpdmVjb2ZmZWVjci5jb208L0NvcnJlb0VsZWN0cm9uaWNvPgogIDwvUmVjZXB0b3I+CiAgPENvbmRpY2lvblZlbnRhPjAxPC9Db25kaWNpb25WZW50YT4KICA8RGV0YWxsZVNlcnZpY2lvPgogICAgPExpbmVhRGV0YWxsZT4KICAgICAgPE51bWVyb0xpbmVhPjE8L051bWVyb0xpbmVhPgogICAgICA8Q29kaWdvQ0FCWVM+ODcxNTYwMDAwOTkwMDwvQ29kaWdvQ0FCWVM+CiAgICAgIDxDYW50aWRhZD4xPC9DYW50aWRhZD4KICAgICAgPFVuaWRhZE1lZGlkYT5TcDwvVW5pZGFkTWVkaWRhPgogICAgICA8RGV0YWxsZT5kZXRhbGxlPC9EZXRhbGxlPgogICAgICA8UHJlY2lvVW5pdGFyaW8+MTA8L1ByZWNpb1VuaXRhcmlvPgogICAgICA8TW9udG9Ub3RhbD4xMDwvTW9udG9Ub3RhbD4KICAgICAgPFN1YlRvdGFsPjEwPC9TdWJUb3RhbD4KICAgICAgPEJhc2VJbXBvbmlibGU+MTA8L0Jhc2VJbXBvbmlibGU+CiAgICAgIDxJbXB1ZXN0bz4KICAgICAgICA8Q29kaWdvPjAxPC9Db2RpZ28+CiAgICAgICAgPENvZGlnb1RhcmlmYUlWQT4wODwvQ29kaWdvVGFyaWZhSVZBPgogICAgICAgIDxUYXJpZmE+MTM8L1RhcmlmYT4KICAgICAgICA8TW9udG8+MS4zPC9Nb250bz4KICAgICAgPC9JbXB1ZXN0bz4KICAgICAgPEltcHVlc3RvQXN1bWlkb0VtaXNvckZhYnJpY2E+MDwvSW1wdWVzdG9Bc3VtaWRvRW1pc29yRmFicmljYT4KICAgICAgPEltcHVlc3RvTmV0bz4xLjM8L0ltcHVlc3RvTmV0bz4KICAgICAgPE1vbnRvVG90YWxMaW5lYT4xMS4zPC9Nb250b1RvdGFsTGluZWE+CiAgICA8L0xpbmVhRGV0YWxsZT4KICA8L0RldGFsbGVTZXJ2aWNpbz4KICA8UmVzdW1lbkZhY3R1cmE+CiAgICA8Q29kaWdvVGlwb01vbmVkYT4KICAgICAgPENvZGlnb01vbmVkYT5DUkM8L0NvZGlnb01vbmVkYT4KICAgICAgPFRpcG9DYW1iaW8+MTwvVGlwb0NhbWJpbz4KICAgIDwvQ29kaWdvVGlwb01vbmVkYT4KICAgIDxUb3RhbFNlcnZHcmF2YWRvcz4xMDwvVG90YWxTZXJ2R3JhdmFkb3M+CiAgICA8VG90YWxTZXJ2RXhlbnRvcz4wPC9Ub3RhbFNlcnZFeGVudG9zPgogICAgPFRvdGFsU2Vydk5vU3VqZXRvPjA8L1RvdGFsU2Vydk5vU3VqZXRvPgogICAgPFRvdGFsTWVyY2FuY2lhc0dyYXZhZGFzPjA8L1RvdGFsTWVyY2FuY2lhc0dyYXZhZGFzPgogICAgPFRvdGFsTWVyY2FuY2lhc0V4ZW50YXM+MDwvVG90YWxNZXJjYW5jaWFzRXhlbnRhcz4KICAgIDxUb3RhbE1lcmNOb1N1amV0YT4wPC9Ub3RhbE1lcmNOb1N1amV0YT4KICAgIDxUb3RhbEdyYXZhZG8+MTA8L1RvdGFsR3JhdmFkbz4KICAgIDxUb3RhbEV4ZW50bz4wPC9Ub3RhbEV4ZW50bz4KICAgIDxUb3RhbEV4b25lcmFkbz4wPC9Ub3RhbEV4b25lcmFkbz4KICAgIDxUb3RhbE5vU3VqZXRvPjA8L1RvdGFsTm9TdWpldG8+CiAgICA8VG90YWxWZW50YT4xMDwvVG90YWxWZW50YT4KICAgIDxUb3RhbERlc2N1ZW50b3M+MDwvVG90YWxEZXNjdWVudG9zPgogICAgPFRvdGFsVmVudGFOZXRhPjEwPC9Ub3RhbFZlbnRhTmV0YT4KICAgIDxUb3RhbERlc2dsb3NlSW1wdWVzdG8+CiAgICAgIDxDb2RpZ28+MDE8L0NvZGlnbz4KICAgICAgPENvZGlnb1RhcmlmYUlWQT4wODwvQ29kaWdvVGFyaWZhSVZBPgogICAgICA8VG90YWxNb250b0ltcHVlc3RvPjEuMzwvVG90YWxNb250b0ltcHVlc3RvPgogICAgPC9Ub3RhbERlc2dsb3NlSW1wdWVzdG8+CiAgICA8VG90YWxJbXB1ZXN0bz4xLjM8L1RvdGFsSW1wdWVzdG8+CiAgICA8VG90YWxJbXBBc3VtRW1pc29yRmFicmljYT4wPC9Ub3RhbEltcEFzdW1FbWlzb3JGYWJyaWNhPgogICAgPFRvdGFsT3Ryb3NDYXJnb3M+MDwvVG90YWxPdHJvc0Nhcmdvcz4KICAgIDxNZWRpb1BhZ28+CiAgICAgIDxUaXBvTWVkaW9QYWdvPjAzPC9UaXBvTWVkaW9QYWdvPgogICAgPC9NZWRpb1BhZ28+CiAgICA8VG90YWxDb21wcm9iYW50ZT4xMS4zPC9Ub3RhbENvbXByb2JhbnRlPgogIDwvUmVzdW1lbkZhY3R1cmE+CjwvRmFjdHVyYUVsZWN0cm9uaWNhPgo="`;
|
|
@@ -24,6 +24,9 @@ export type InvoiceProps = {
|
|
|
24
24
|
type OrderLineSum = {
|
|
25
25
|
totalAmount: number;
|
|
26
26
|
totalTaxes: number;
|
|
27
|
+
totalExempt: number;
|
|
28
|
+
totalExonerated: number;
|
|
29
|
+
totalNonTaxable: number;
|
|
27
30
|
};
|
|
28
31
|
export declare class Document {
|
|
29
32
|
readonly props: InvoiceProps;
|
|
@@ -45,6 +48,11 @@ export declare class Document {
|
|
|
45
48
|
get summaryInvoice(): SummaryProps;
|
|
46
49
|
get referenceInformation(): ReferenceInformation | undefined;
|
|
47
50
|
private isAService;
|
|
51
|
+
private isTaxable;
|
|
52
|
+
private isExempt;
|
|
53
|
+
private isExonerated;
|
|
54
|
+
private isNonTaxable;
|
|
55
|
+
private sumLines;
|
|
48
56
|
sumServicesLines(): OrderLineSum;
|
|
49
57
|
sumMerchandiseLines(): OrderLineSum;
|
|
50
58
|
sumOrderLines(): OrderLineSum;
|
|
@@ -45,36 +45,46 @@ class Document {
|
|
|
45
45
|
if (this.props.summaryInvoice) {
|
|
46
46
|
return this.props.summaryInvoice;
|
|
47
47
|
}
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
|
|
48
|
+
const servicesLinesSum = this.sumServicesLines();
|
|
49
|
+
const merchandiseLinesSum = this.sumMerchandiseLines();
|
|
50
|
+
const allLinesSum = this.sumOrderLines();
|
|
51
|
+
// Lógica para calcular los totales del resumen
|
|
52
|
+
const totalEncumberedServices = servicesLinesSum.totalAmount - servicesLinesSum.totalExempt - servicesLinesSum.totalExonerated - servicesLinesSum.totalNonTaxable;
|
|
53
|
+
const totalEncumberedMerchandise = merchandiseLinesSum.totalAmount - merchandiseLinesSum.totalExempt - merchandiseLinesSum.totalExonerated - merchandiseLinesSum.totalNonTaxable;
|
|
54
|
+
const totalEncumbered = totalEncumberedServices + totalEncumberedMerchandise;
|
|
55
|
+
const totalExempt = allLinesSum.totalExempt;
|
|
56
|
+
const totalExonerated = allLinesSum.totalExonerated;
|
|
57
|
+
const totalNonTaxable = allLinesSum.totalNonTaxable;
|
|
58
|
+
const totalSale = totalEncumbered + totalExempt + totalExonerated + totalNonTaxable;
|
|
59
|
+
const totalDiscounts = 0; // Asumimos 0 si no se calcula
|
|
60
|
+
const totalNetSale = totalSale - totalDiscounts;
|
|
61
|
+
const totalTaxes = allLinesSum.totalTaxes;
|
|
62
|
+
const totalVoucher = totalNetSale + totalTaxes;
|
|
63
|
+
return {
|
|
52
64
|
currency: {
|
|
53
65
|
code: 'CRC',
|
|
54
66
|
exchangeRate: '1'
|
|
55
67
|
},
|
|
56
|
-
totalExemptServices:
|
|
57
|
-
totalEncumberedServices
|
|
58
|
-
totalExonerated
|
|
59
|
-
totalTaxedServices:
|
|
60
|
-
totalTaxes
|
|
68
|
+
totalExemptServices: servicesLinesSum.totalExempt,
|
|
69
|
+
totalEncumberedServices,
|
|
70
|
+
totalExonerated,
|
|
71
|
+
totalTaxedServices: servicesLinesSum.totalTaxes,
|
|
72
|
+
totalTaxes,
|
|
61
73
|
totalDiscounts: 0,
|
|
62
|
-
totalEncumberedMerchandise
|
|
63
|
-
totalTaxed:
|
|
64
|
-
totalExemptMerchandise:
|
|
65
|
-
totalExempt
|
|
66
|
-
totalNetSale
|
|
67
|
-
totalEncumbered
|
|
68
|
-
totalTaxBreakdown: [
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
totalEncumberedMerchandise,
|
|
75
|
+
totalTaxed: allLinesSum.totalTaxes,
|
|
76
|
+
totalExemptMerchandise: merchandiseLinesSum.totalExempt,
|
|
77
|
+
totalExempt,
|
|
78
|
+
totalNetSale,
|
|
79
|
+
totalEncumbered,
|
|
80
|
+
totalTaxBreakdown: [], // La lógica del desglose de impuestos está en `billDocToAtv.ts`
|
|
81
|
+
totalSale,
|
|
82
|
+
totalVoucher,
|
|
83
|
+
// Se añaden los campos para 'No Sujeto' que estaban causando errores
|
|
84
|
+
totalNonTaxable,
|
|
85
|
+
totalNonTaxableServices: servicesLinesSum.totalNonTaxable,
|
|
86
|
+
totalNonTaxableMerchandise: merchandiseLinesSum.totalNonTaxable
|
|
75
87
|
};
|
|
76
|
-
const totalSale = summary.totalEncumbered + summary.totalExempt + summary.totalExonerated;
|
|
77
|
-
return Object.assign(Object.assign({}, summary), { totalSale, totalNetSale: totalSale - summary.totalDiscounts, totalVoucher: summary.totalNetSale + summary.totalTaxed });
|
|
78
88
|
}
|
|
79
89
|
get referenceInformation() {
|
|
80
90
|
return this.props.referenceInformation;
|
|
@@ -83,32 +93,52 @@ class Document {
|
|
|
83
93
|
const servicesMeasurementUnits = ['Sp', 'St', 'Spe'];
|
|
84
94
|
return servicesMeasurementUnits.includes(orderLine.measureUnit);
|
|
85
95
|
}
|
|
86
|
-
|
|
87
|
-
|
|
96
|
+
isTaxable(orderLine) {
|
|
97
|
+
if (!orderLine.tax || orderLine.tax.amount === undefined || orderLine.tax.amount === null) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
return orderLine.tax.code === '01' && orderLine.tax.amount > 0;
|
|
101
|
+
}
|
|
102
|
+
isExempt(orderLine) {
|
|
103
|
+
var _a;
|
|
104
|
+
// 32 El código 10, Tarifa Exenta Ley 9635, Articulo 8
|
|
105
|
+
return ((_a = orderLine.tax) === null || _a === void 0 ? void 0 : _a.rateCode) === '10';
|
|
106
|
+
}
|
|
107
|
+
isExonerated(orderLine) {
|
|
108
|
+
var _a;
|
|
109
|
+
return ((_a = orderLine.tax) === null || _a === void 0 ? void 0 : _a.rateCode) === '01';
|
|
110
|
+
}
|
|
111
|
+
isNonTaxable(orderLine) {
|
|
112
|
+
var _a;
|
|
113
|
+
// Un ítem es "No Sujeto" si su tax.code NO es '01' o si el monto del impuesto es 0.
|
|
114
|
+
// Esto cubrirá el caso donde un ítem con tax.code '01' y tarifa '0' sea considerado "No Sujeto".
|
|
115
|
+
return ((_a = orderLine.tax) === null || _a === void 0 ? void 0 : _a.rateCode) === '01';
|
|
116
|
+
}
|
|
117
|
+
sumLines(lines) {
|
|
118
|
+
return lines.reduce((previousValue, currentValue) => {
|
|
88
119
|
var _a, _b;
|
|
120
|
+
const totalAmount = previousValue.totalAmount + currentValue.totalAmount;
|
|
121
|
+
const totalTaxes = previousValue.totalTaxes + (this.isTaxable(currentValue) ? ((_b = (_a = currentValue.tax) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0) : 0);
|
|
122
|
+
const totalExempt = previousValue.totalExempt + (this.isExempt(currentValue) ? currentValue.totalAmount : 0);
|
|
123
|
+
const totalExonerated = previousValue.totalExonerated + (this.isExonerated(currentValue) ? currentValue.totalAmount : 0);
|
|
124
|
+
const totalNonTaxable = previousValue.totalNonTaxable + (this.isNonTaxable(currentValue) ? currentValue.totalAmount : 0);
|
|
89
125
|
return {
|
|
90
|
-
totalAmount
|
|
91
|
-
totalTaxes
|
|
126
|
+
totalAmount,
|
|
127
|
+
totalTaxes,
|
|
128
|
+
totalExempt,
|
|
129
|
+
totalExonerated,
|
|
130
|
+
totalNonTaxable
|
|
92
131
|
};
|
|
93
|
-
}, { totalAmount: 0, totalTaxes: 0 });
|
|
132
|
+
}, { totalAmount: 0, totalTaxes: 0, totalExempt: 0, totalExonerated: 0, totalNonTaxable: 0 });
|
|
133
|
+
}
|
|
134
|
+
sumServicesLines() {
|
|
135
|
+
return this.sumLines(this.orderLines.filter(this.isAService));
|
|
94
136
|
}
|
|
95
137
|
sumMerchandiseLines() {
|
|
96
|
-
return this.orderLines.filter((ol) => !this.isAService(ol))
|
|
97
|
-
var _a, _b;
|
|
98
|
-
return {
|
|
99
|
-
totalAmount: previousValue.totalAmount + currentValue.totalAmount,
|
|
100
|
-
totalTaxes: previousValue.totalTaxes + ((_b = (_a = currentValue.tax) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0)
|
|
101
|
-
};
|
|
102
|
-
}, { totalAmount: 0, totalTaxes: 0 });
|
|
138
|
+
return this.sumLines(this.orderLines.filter((ol) => !this.isAService(ol)));
|
|
103
139
|
}
|
|
104
140
|
sumOrderLines() {
|
|
105
|
-
return this.orderLines
|
|
106
|
-
var _a, _b;
|
|
107
|
-
return {
|
|
108
|
-
totalAmount: previousValue.totalAmount + currentValue.totalAmount,
|
|
109
|
-
totalTaxes: previousValue.totalTaxes + ((_b = (_a = currentValue.tax) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0)
|
|
110
|
-
};
|
|
111
|
-
}, { totalAmount: 0, totalTaxes: 0 });
|
|
141
|
+
return this.sumLines(this.orderLines);
|
|
112
142
|
}
|
|
113
143
|
static create(props) {
|
|
114
144
|
return new Document(props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../../src/ATV/core/Document.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../../../src/ATV/core/Document.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,9 @@ export type SummaryProps = {
|
|
|
16
16
|
totalDiscounts?: number;
|
|
17
17
|
totalNetSale?: number;
|
|
18
18
|
totalTaxes: number;
|
|
19
|
+
totalNonTaxable: number;
|
|
20
|
+
totalNonTaxableServices: number;
|
|
21
|
+
totalNonTaxableMerchandise: number;
|
|
19
22
|
totalTaxBreakdown?: Array<{
|
|
20
23
|
code: string;
|
|
21
24
|
taxRateCode?: string;
|
|
@@ -59,13 +59,16 @@ const mapSummaryInvoice = (document) => {
|
|
|
59
59
|
},
|
|
60
60
|
TotalServGravados: parseAtvMoneyFormat(summaryInvoice.totalEncumberedServices),
|
|
61
61
|
TotalServExentos: parseAtvMoneyFormat(summaryInvoice.totalExemptServices),
|
|
62
|
+
TotalServNoSujeto: parseAtvMoneyFormat(summaryInvoice.totalNonTaxableServices), // Moved here
|
|
62
63
|
// @ts-expect-error pending-to-fix
|
|
63
64
|
TotalMercanciasGravadas: parseAtvMoneyFormat(summaryInvoice.totalEncumberedMerchandise),
|
|
64
65
|
// @ts-expect-error pending-to-fix
|
|
65
66
|
TotalMercanciasExentas: parseAtvMoneyFormat(summaryInvoice.totalExemptMerchandise),
|
|
67
|
+
TotalMercNoSujeta: parseAtvMoneyFormat(summaryInvoice.totalNonTaxableMerchandise), // Moved here
|
|
66
68
|
TotalGravado: parseAtvMoneyFormat(summaryInvoice.totalEncumbered),
|
|
67
69
|
TotalExento: parseAtvMoneyFormat(summaryInvoice.totalExempt),
|
|
68
70
|
TotalExonerado: parseAtvMoneyFormat(summaryInvoice.totalExonerated),
|
|
71
|
+
TotalNoSujeto: parseAtvMoneyFormat(summaryInvoice.totalNonTaxable), // Moved here
|
|
69
72
|
TotalVenta: parseAtvMoneyFormat(summaryInvoice.totalSale),
|
|
70
73
|
// @ts-expect-error pending-to-fix
|
|
71
74
|
TotalDescuentos: parseAtvMoneyFormat(summaryInvoice.totalDiscounts),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billDocToAtv.js","sourceRoot":"","sources":["../../../../src/ATV/mappers/billDocToAtv.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"billDocToAtv.js","sourceRoot":"","sources":["../../../../src/ATV/mappers/billDocToAtv.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@facturacr/atv-sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.6-alpha",
|
|
4
4
|
"description": "Librería (SDK) de Javascript/NodeJS para acceder al API de Administración Tributaria Virtual (ATV) del Ministerio de Hacienda.",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"test:cov": "npx jest",
|
|
15
15
|
"type:check": "tsc --noEmit",
|
|
16
16
|
"dev": "dotenv -- nodemon -e ts,graphql -x 'yarn lint & ts-node -r tsconfig-paths/register src/index.ts'",
|
|
17
|
-
"build": "
|
|
17
|
+
"build": "rimraf dist && tspc -p tsconfig-prod.json",
|
|
18
18
|
"lint": "eslint --ext .ts, --ignore-path .gitignore .",
|
|
19
19
|
"test:createAndSend": "yarn ts-node -r tsconfig-paths/register --require dotenv/config examples/createAndSend.ts"
|
|
20
20
|
},
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"jest": "^29.7",
|
|
49
49
|
"jest-xml-matcher": "^1.2.0",
|
|
50
50
|
"nodemon": "^2.0.19",
|
|
51
|
+
"rimraf": "^6.0.1",
|
|
51
52
|
"ts-jest": "^29.1",
|
|
52
53
|
"ts-node": "10.9.1",
|
|
53
54
|
"ts-patch": "^3.1.2",
|
|
@@ -70,4 +71,4 @@
|
|
|
70
71
|
"engines": {
|
|
71
72
|
"node": ">=18"
|
|
72
73
|
}
|
|
73
|
-
}
|
|
74
|
+
}
|
package/src/ATV/core/Document.ts
CHANGED
|
@@ -26,7 +26,10 @@ export type InvoiceProps = {
|
|
|
26
26
|
type OrderLineSum = {
|
|
27
27
|
totalAmount: number;
|
|
28
28
|
totalTaxes: number;
|
|
29
|
-
|
|
29
|
+
totalExempt: number;
|
|
30
|
+
totalExonerated: number;
|
|
31
|
+
totalNonTaxable: number;
|
|
32
|
+
};
|
|
30
33
|
|
|
31
34
|
export class Document {
|
|
32
35
|
public readonly props: InvoiceProps
|
|
@@ -86,40 +89,50 @@ export class Document {
|
|
|
86
89
|
if (this.props.summaryInvoice) {
|
|
87
90
|
return this.props.summaryInvoice
|
|
88
91
|
}
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
const
|
|
92
|
-
|
|
92
|
+
const servicesLinesSum = this.sumServicesLines()
|
|
93
|
+
const merchandiseLinesSum = this.sumMerchandiseLines()
|
|
94
|
+
const allLinesSum = this.sumOrderLines()
|
|
95
|
+
|
|
96
|
+
// Lógica para calcular los totales del resumen
|
|
97
|
+
const totalEncumberedServices = servicesLinesSum.totalAmount - servicesLinesSum.totalExempt - servicesLinesSum.totalExonerated - servicesLinesSum.totalNonTaxable
|
|
98
|
+
const totalEncumberedMerchandise = merchandiseLinesSum.totalAmount - merchandiseLinesSum.totalExempt - merchandiseLinesSum.totalExonerated - merchandiseLinesSum.totalNonTaxable
|
|
99
|
+
|
|
100
|
+
const totalEncumbered = totalEncumberedServices + totalEncumberedMerchandise
|
|
101
|
+
const totalExempt = allLinesSum.totalExempt
|
|
102
|
+
const totalExonerated = allLinesSum.totalExonerated
|
|
103
|
+
const totalNonTaxable = allLinesSum.totalNonTaxable
|
|
104
|
+
|
|
105
|
+
const totalSale = totalEncumbered + totalExempt + totalExonerated + totalNonTaxable
|
|
106
|
+
|
|
107
|
+
const totalDiscounts = 0 // Asumimos 0 si no se calcula
|
|
108
|
+
const totalNetSale = totalSale - totalDiscounts
|
|
109
|
+
const totalTaxes = allLinesSum.totalTaxes
|
|
110
|
+
const totalVoucher = totalNetSale + totalTaxes
|
|
111
|
+
|
|
112
|
+
return {
|
|
93
113
|
currency: {
|
|
94
114
|
code: 'CRC',
|
|
95
115
|
exchangeRate: '1'
|
|
96
116
|
},
|
|
97
|
-
totalExemptServices:
|
|
98
|
-
totalEncumberedServices
|
|
99
|
-
totalExonerated
|
|
100
|
-
totalTaxedServices:
|
|
101
|
-
totalTaxes
|
|
117
|
+
totalExemptServices: servicesLinesSum.totalExempt,
|
|
118
|
+
totalEncumberedServices,
|
|
119
|
+
totalExonerated,
|
|
120
|
+
totalTaxedServices: servicesLinesSum.totalTaxes,
|
|
121
|
+
totalTaxes,
|
|
102
122
|
totalDiscounts: 0,
|
|
103
|
-
totalEncumberedMerchandise
|
|
104
|
-
totalTaxed:
|
|
105
|
-
totalExemptMerchandise:
|
|
106
|
-
totalExempt
|
|
107
|
-
totalNetSale
|
|
108
|
-
totalEncumbered
|
|
109
|
-
totalTaxBreakdown: [
|
|
110
|
-
{
|
|
111
|
-
code: '01', // Static value for testing
|
|
112
|
-
taxRateCode: '08', // Static value for testing
|
|
113
|
-
totalTaxAmount: 100.00 // Static value for testing
|
|
114
|
-
}
|
|
115
|
-
]
|
|
116
|
-
}
|
|
117
|
-
const totalSale = summary.totalEncumbered + summary.totalExempt + summary.totalExonerated
|
|
118
|
-
return {
|
|
119
|
-
...summary,
|
|
123
|
+
totalEncumberedMerchandise,
|
|
124
|
+
totalTaxed: allLinesSum.totalTaxes,
|
|
125
|
+
totalExemptMerchandise: merchandiseLinesSum.totalExempt,
|
|
126
|
+
totalExempt,
|
|
127
|
+
totalNetSale,
|
|
128
|
+
totalEncumbered,
|
|
129
|
+
totalTaxBreakdown: [], // La lógica del desglose de impuestos está en `billDocToAtv.ts`
|
|
120
130
|
totalSale,
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
totalVoucher,
|
|
132
|
+
// Se añaden los campos para 'No Sujeto' que estaban causando errores
|
|
133
|
+
totalNonTaxable,
|
|
134
|
+
totalNonTaxableServices: servicesLinesSum.totalNonTaxable,
|
|
135
|
+
totalNonTaxableMerchandise: merchandiseLinesSum.totalNonTaxable
|
|
123
136
|
}
|
|
124
137
|
}
|
|
125
138
|
|
|
@@ -132,31 +145,56 @@ export class Document {
|
|
|
132
145
|
return servicesMeasurementUnits.includes(orderLine.measureUnit)
|
|
133
146
|
}
|
|
134
147
|
|
|
135
|
-
|
|
136
|
-
|
|
148
|
+
private isTaxable(orderLine: OrderLine): boolean {
|
|
149
|
+
if (!orderLine.tax || orderLine.tax.amount === undefined || orderLine.tax.amount === null) {
|
|
150
|
+
return false
|
|
151
|
+
}
|
|
152
|
+
return orderLine.tax.code === '01' && orderLine.tax.amount > 0
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
private isExempt(orderLine: OrderLine): boolean {
|
|
156
|
+
// 32 El código 10, Tarifa Exenta Ley 9635, Articulo 8
|
|
157
|
+
return orderLine.tax?.rateCode === '10'
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
private isExonerated(orderLine: OrderLine): boolean {
|
|
161
|
+
return orderLine.tax?.rateCode === '01'
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
private isNonTaxable(orderLine: OrderLine): boolean {
|
|
165
|
+
// Un ítem es "No Sujeto" si su tax.code NO es '01' o si el monto del impuesto es 0.
|
|
166
|
+
// Esto cubrirá el caso donde un ítem con tax.code '01' y tarifa '0' sea considerado "No Sujeto".
|
|
167
|
+
return orderLine.tax?.rateCode === '01'
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
private sumLines(lines: OrderLine[]): OrderLineSum {
|
|
171
|
+
return lines.reduce<OrderLineSum>((previousValue, currentValue) => {
|
|
172
|
+
const totalAmount = previousValue.totalAmount + currentValue.totalAmount
|
|
173
|
+
const totalTaxes = previousValue.totalTaxes + (this.isTaxable(currentValue) ? (currentValue.tax?.amount ?? 0) : 0)
|
|
174
|
+
const totalExempt = previousValue.totalExempt + (this.isExempt(currentValue) ? currentValue.totalAmount : 0)
|
|
175
|
+
const totalExonerated = previousValue.totalExonerated + (this.isExonerated(currentValue) ? currentValue.totalAmount : 0)
|
|
176
|
+
const totalNonTaxable = previousValue.totalNonTaxable + (this.isNonTaxable(currentValue) ? currentValue.totalAmount : 0)
|
|
177
|
+
|
|
137
178
|
return {
|
|
138
|
-
totalAmount
|
|
139
|
-
totalTaxes
|
|
179
|
+
totalAmount,
|
|
180
|
+
totalTaxes,
|
|
181
|
+
totalExempt,
|
|
182
|
+
totalExonerated,
|
|
183
|
+
totalNonTaxable
|
|
140
184
|
}
|
|
141
|
-
}, { totalAmount: 0, totalTaxes: 0 })
|
|
185
|
+
}, { totalAmount: 0, totalTaxes: 0, totalExempt: 0, totalExonerated: 0, totalNonTaxable: 0 })
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
sumServicesLines(): OrderLineSum {
|
|
189
|
+
return this.sumLines(this.orderLines.filter(this.isAService))
|
|
142
190
|
}
|
|
143
191
|
|
|
144
192
|
sumMerchandiseLines(): OrderLineSum {
|
|
145
|
-
return this.orderLines.filter((ol) => !this.isAService(ol))
|
|
146
|
-
return {
|
|
147
|
-
totalAmount: previousValue.totalAmount + currentValue.totalAmount,
|
|
148
|
-
totalTaxes: previousValue.totalTaxes + (currentValue.tax?.amount ?? 0)
|
|
149
|
-
}
|
|
150
|
-
}, { totalAmount: 0, totalTaxes: 0 })
|
|
193
|
+
return this.sumLines(this.orderLines.filter((ol) => !this.isAService(ol)))
|
|
151
194
|
}
|
|
152
195
|
|
|
153
196
|
sumOrderLines(): OrderLineSum {
|
|
154
|
-
return this.orderLines
|
|
155
|
-
return {
|
|
156
|
-
totalAmount: previousValue.totalAmount + currentValue.totalAmount,
|
|
157
|
-
totalTaxes: previousValue.totalTaxes + (currentValue.tax?.amount ?? 0)
|
|
158
|
-
}
|
|
159
|
-
}, { totalAmount: 0, totalTaxes: 0 })
|
|
197
|
+
return this.sumLines(this.orderLines)
|
|
160
198
|
}
|
|
161
199
|
|
|
162
200
|
public static create(props: InvoiceProps): Document {
|
|
@@ -16,6 +16,9 @@ export type SummaryProps = {
|
|
|
16
16
|
totalDiscounts?: number; // TotalDescuentos
|
|
17
17
|
totalNetSale?: number; // TotalVentaNeta
|
|
18
18
|
totalTaxes: number; // TotalImpuesto
|
|
19
|
+
totalNonTaxable: number; // TotalNoSujeto
|
|
20
|
+
totalNonTaxableServices: number; // TotalServNoSujetos
|
|
21
|
+
totalNonTaxableMerchandise: number; // TotalMercanciasNoSujetos
|
|
19
22
|
totalTaxBreakdown?: Array<{
|
|
20
23
|
code: string; // Codigo
|
|
21
24
|
taxRateCode?: string; // CodigoTarifaIVA
|
|
@@ -78,13 +78,16 @@ const mapSummaryInvoice = (document: DomainDocument): Resumen => {
|
|
|
78
78
|
},
|
|
79
79
|
TotalServGravados: parseAtvMoneyFormat(summaryInvoice.totalEncumberedServices),
|
|
80
80
|
TotalServExentos: parseAtvMoneyFormat(summaryInvoice.totalExemptServices),
|
|
81
|
+
TotalServNoSujeto: parseAtvMoneyFormat(summaryInvoice.totalNonTaxableServices), // Moved here
|
|
81
82
|
// @ts-expect-error pending-to-fix
|
|
82
83
|
TotalMercanciasGravadas: parseAtvMoneyFormat(summaryInvoice.totalEncumberedMerchandise),
|
|
83
84
|
// @ts-expect-error pending-to-fix
|
|
84
85
|
TotalMercanciasExentas: parseAtvMoneyFormat(summaryInvoice.totalExemptMerchandise),
|
|
86
|
+
TotalMercNoSujeta: parseAtvMoneyFormat(summaryInvoice.totalNonTaxableMerchandise), // Moved here
|
|
85
87
|
TotalGravado: parseAtvMoneyFormat(summaryInvoice.totalEncumbered),
|
|
86
88
|
TotalExento: parseAtvMoneyFormat(summaryInvoice.totalExempt),
|
|
87
89
|
TotalExonerado: parseAtvMoneyFormat(summaryInvoice.totalExonerated),
|
|
90
|
+
TotalNoSujeto: parseAtvMoneyFormat(summaryInvoice.totalNonTaxable), // Moved here
|
|
88
91
|
TotalVenta: parseAtvMoneyFormat(summaryInvoice.totalSale),
|
|
89
92
|
// @ts-expect-error pending-to-fix
|
|
90
93
|
TotalDescuentos: parseAtvMoneyFormat(summaryInvoice.totalDiscounts),
|