@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.
@@ -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
- <Clave>50601042400020692014200100001010000000002100000001</Clave>
4
- <ProveedorSistemas>206920142</ProveedorSistemas>
5
- <CodigoActividadEmisor>930903</CodigoActividadEmisor>
6
- <CodigoActividadReceptor>526005</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>Roy</Nombre>
31
- <Identificacion>
32
- <Tipo>01</Tipo>
33
- <Numero>204500331</Numero>
34
- </Identificacion>
35
- <NombreComercial>Roy Arrieta Soto</NombreComercial>
36
- <Ubicacion>
37
- <Provincia>2</Provincia>
38
- <Canton>06</Canton>
39
- <Distrito>04</Distrito>
40
- <Barrio>00003</Barrio>
41
- <OtrasSenas>500 m oeste Súper Don Jorge, casa mano izquierda</OtrasSenas>
42
- </Ubicacion>
43
- <Telefono>
44
- <CodigoPais>506</CodigoPais>
45
- <NumTelefono>87206063</NumTelefono>
46
- </Telefono>
47
- <CorreoElectronico>sercoe1@hotmail.com</CorreoElectronico>
48
- </Receptor>
49
- <CondicionVenta>01</CondicionVenta>
50
- <DetalleServicio>
51
- <LineaDetalle>
52
- <NumeroLinea>1</NumeroLinea>
53
- <CodigoCABYS>9799000000000</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
- <TotalMercanciasGravadas>0</TotalMercanciasGravadas>
80
- <TotalMercanciasExentas>0</TotalMercanciasExentas>
81
- <TotalGravado>10</TotalGravado>
82
- <TotalExento>0</TotalExento>
83
- <TotalExonerado>0</TotalExonerado>
84
- <TotalVenta>10</TotalVenta>
85
- <TotalDescuentos>0</TotalDescuentos>
86
- <TotalVentaNeta>10</TotalVentaNeta>
87
- <TotalDesgloseImpuesto>
88
- <Codigo>01</Codigo>
89
- <CodigoTarifaIVA>08</CodigoTarifaIVA>
90
- <TotalMontoImpuesto>1.3</TotalMontoImpuesto>
91
- </TotalDesgloseImpuesto>
92
- <TotalImpuesto>1.3</TotalImpuesto>
93
- <TotalImpAsumEmisorFabrica>0</TotalImpAsumEmisorFabrica>
94
- <TotalOtrosCargos>0</TotalOtrosCargos>
95
- <MedioPago>
96
- <TipoMedioPago>03</TipoMedioPago>
97
- </MedioPago>
98
- <TotalComprobante>11.3</TotalComprobante>
99
- </ResumenFactura>
100
- </FacturaElectronica>
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: '9799000000000',
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: 'Roy',
21
- commercialName: 'Roy Arrieta Soto',
22
- activityCode: '526005',
20
+ fullName: 'EXCLUSIVE COFFEES',
21
+ commercialName: 'EXCLUSIVE COFFEES S.A',
22
+ activityCode: '930903',
23
23
  identifier: {
24
- type: '01',
25
- id: '204500331'
24
+ type: '02',
25
+ id: '3101538252'
26
26
  },
27
27
  location: {
28
28
  province: '2',
29
- canton: '06',
30
- district: '04',
31
- neighborhood: '3',
32
- details: '500 m oeste Súper Don Jorge, casa mano izquierda'
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: '87206063'
36
+ number: '22390301'
37
37
  },
38
- email: 'sercoe1@hotmail.com',
38
+ email: 'facturaelectronica@exclusivecoffeecr.com',
39
39
  fax: {
40
40
  countryCode: '506',
41
- number: '87206063'
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+CiAgPENvZGlnb0FjdGl2aWRhZFJlY2VwdG9yPjUyNjAwNTwvQ29kaWdvQWN0aXZpZGFkUmVjZXB0b3I+CiAgPE51bWVyb0NvbnNlY3V0aXZvPjAwMTAwMDAxMDEwMDAwMDAwMDAyPC9OdW1lcm9Db25zZWN1dGl2bz4KICA8RmVjaGFFbWlzaW9uPjIwMjQtMDQtMDFUMDA6MDA6MDAuMDAwWjwvRmVjaGFFbWlzaW9uPgogIDxFbWlzb3I+CiAgICA8Tm9tYnJlPlRlayByb2NrczwvTm9tYnJlPgogICAgPElkZW50aWZpY2FjaW9uPgogICAgICA8VGlwbz4wMTwvVGlwbz4KICAgICAgPE51bWVybz4yMDY5MjAxNDI8L051bWVybz4KICAgIDwvSWRlbnRpZmljYWNpb24+CiAgICA8Tm9tYnJlQ29tZXJjaWFsPkNpZW5jaWEgZGVsIHNhYm9yPC9Ob21icmVDb21lcmNpYWw+CiAgICA8VWJpY2FjaW9uPgogICAgICA8UHJvdmluY2lhPjI8L1Byb3ZpbmNpYT4KICAgICAgPENhbnRvbj4wNjwvQ2FudG9uPgogICAgICA8RGlzdHJpdG8+MDQ8L0Rpc3RyaXRvPgogICAgICA8QmFycmlvPjAwMDA2PC9CYXJyaW8+CiAgICAgIDxPdHJhc1NlbmFzPkNhbGxlIEFycmlldGE8L090cmFzU2VuYXM+CiAgICA8L1ViaWNhY2lvbj4KICAgIDxUZWxlZm9ubz4KICAgICAgPENvZGlnb1BhaXM+NTA2PC9Db2RpZ29QYWlzPgogICAgICA8TnVtVGVsZWZvbm8+ODgxMjI0Nzk8L051bVRlbGVmb25vPgogICAgPC9UZWxlZm9ubz4KICAgIDxDb3JyZW9FbGVjdHJvbmljbz5jaWVuY2lhZGVsc2Fib3JAZ21haWwuY29tPC9Db3JyZW9FbGVjdHJvbmljbz4KICA8L0VtaXNvcj4KICA8UmVjZXB0b3I+CiAgICA8Tm9tYnJlPlJveTwvTm9tYnJlPgogICAgPElkZW50aWZpY2FjaW9uPgogICAgICA8VGlwbz4wMTwvVGlwbz4KICAgICAgPE51bWVybz4yMDQ1MDAzMzE8L051bWVybz4KICAgIDwvSWRlbnRpZmljYWNpb24+CiAgICA8Tm9tYnJlQ29tZXJjaWFsPlJveSBBcnJpZXRhIFNvdG88L05vbWJyZUNvbWVyY2lhbD4KICAgIDxVYmljYWNpb24+CiAgICAgIDxQcm92aW5jaWE+MjwvUHJvdmluY2lhPgogICAgICA8Q2FudG9uPjA2PC9DYW50b24+CiAgICAgIDxEaXN0cml0bz4wNDwvRGlzdHJpdG8+CiAgICAgIDxCYXJyaW8+MDAwMDM8L0JhcnJpbz4KICAgICAgPE90cmFzU2VuYXM+NTAwIG0gb2VzdGUgU8O6cGVyIERvbiBKb3JnZSwgY2FzYSBtYW5vIGl6cXVpZXJkYTwvT3RyYXNTZW5hcz4KICAgIDwvVWJpY2FjaW9uPgogICAgPFRlbGVmb25vPgogICAgICA8Q29kaWdvUGFpcz41MDY8L0NvZGlnb1BhaXM+CiAgICAgIDxOdW1UZWxlZm9ubz44NzIwNjA2MzwvTnVtVGVsZWZvbm8+CiAgICA8L1RlbGVmb25vPgogICAgPENvcnJlb0VsZWN0cm9uaWNvPnNlcmNvZTFAaG90bWFpbC5jb208L0NvcnJlb0VsZWN0cm9uaWNvPgogIDwvUmVjZXB0b3I+CiAgPENvbmRpY2lvblZlbnRhPjAxPC9Db25kaWNpb25WZW50YT4KICA8RGV0YWxsZVNlcnZpY2lvPgogICAgPExpbmVhRGV0YWxsZT4KICAgICAgPE51bWVyb0xpbmVhPjE8L051bWVyb0xpbmVhPgogICAgICA8Q29kaWdvQ0FCWVM+OTc5OTAwMDAwMDAwMDwvQ29kaWdvQ0FCWVM+CiAgICAgIDxDYW50aWRhZD4xPC9DYW50aWRhZD4KICAgICAgPFVuaWRhZE1lZGlkYT5TcDwvVW5pZGFkTWVkaWRhPgogICAgICA8RGV0YWxsZT5kZXRhbGxlPC9EZXRhbGxlPgogICAgICA8UHJlY2lvVW5pdGFyaW8+MTA8L1ByZWNpb1VuaXRhcmlvPgogICAgICA8TW9udG9Ub3RhbD4xMDwvTW9udG9Ub3RhbD4KICAgICAgPFN1YlRvdGFsPjEwPC9TdWJUb3RhbD4KICAgICAgPEJhc2VJbXBvbmlibGU+MTA8L0Jhc2VJbXBvbmlibGU+CiAgICAgIDxJbXB1ZXN0bz4KICAgICAgICA8Q29kaWdvPjAxPC9Db2RpZ28+CiAgICAgICAgPENvZGlnb1RhcmlmYUlWQT4wODwvQ29kaWdvVGFyaWZhSVZBPgogICAgICAgIDxUYXJpZmE+MTM8L1RhcmlmYT4KICAgICAgICA8TW9udG8+MS4zPC9Nb250bz4KICAgICAgPC9JbXB1ZXN0bz4KICAgICAgPEltcHVlc3RvQXN1bWlkb0VtaXNvckZhYnJpY2E+MDwvSW1wdWVzdG9Bc3VtaWRvRW1pc29yRmFicmljYT4KICAgICAgPEltcHVlc3RvTmV0bz4xLjM8L0ltcHVlc3RvTmV0bz4KICAgICAgPE1vbnRvVG90YWxMaW5lYT4xMS4zPC9Nb250b1RvdGFsTGluZWE+CiAgICA8L0xpbmVhRGV0YWxsZT4KICA8L0RldGFsbGVTZXJ2aWNpbz4KICA8UmVzdW1lbkZhY3R1cmE+CiAgICA8Q29kaWdvVGlwb01vbmVkYT4KICAgICAgPENvZGlnb01vbmVkYT5DUkM8L0NvZGlnb01vbmVkYT4KICAgICAgPFRpcG9DYW1iaW8+MTwvVGlwb0NhbWJpbz4KICAgIDwvQ29kaWdvVGlwb01vbmVkYT4KICAgIDxUb3RhbFNlcnZHcmF2YWRvcz4xMDwvVG90YWxTZXJ2R3JhdmFkb3M+CiAgICA8VG90YWxTZXJ2RXhlbnRvcz4wPC9Ub3RhbFNlcnZFeGVudG9zPgogICAgPFRvdGFsTWVyY2FuY2lhc0dyYXZhZGFzPjA8L1RvdGFsTWVyY2FuY2lhc0dyYXZhZGFzPgogICAgPFRvdGFsTWVyY2FuY2lhc0V4ZW50YXM+MDwvVG90YWxNZXJjYW5jaWFzRXhlbnRhcz4KICAgIDxUb3RhbEdyYXZhZG8+MTA8L1RvdGFsR3JhdmFkbz4KICAgIDxUb3RhbEV4ZW50bz4wPC9Ub3RhbEV4ZW50bz4KICAgIDxUb3RhbEV4b25lcmFkbz4wPC9Ub3RhbEV4b25lcmFkbz4KICAgIDxUb3RhbFZlbnRhPjEwPC9Ub3RhbFZlbnRhPgogICAgPFRvdGFsRGVzY3VlbnRvcz4wPC9Ub3RhbERlc2N1ZW50b3M+CiAgICA8VG90YWxWZW50YU5ldGE+MTA8L1RvdGFsVmVudGFOZXRhPgogICAgPFRvdGFsRGVzZ2xvc2VJbXB1ZXN0bz4KICAgICAgPENvZGlnbz4wMTwvQ29kaWdvPgogICAgICA8Q29kaWdvVGFyaWZhSVZBPjA4PC9Db2RpZ29UYXJpZmFJVkE+CiAgICAgIDxUb3RhbE1vbnRvSW1wdWVzdG8+MS4zPC9Ub3RhbE1vbnRvSW1wdWVzdG8+CiAgICA8L1RvdGFsRGVzZ2xvc2VJbXB1ZXN0bz4KICAgIDxUb3RhbEltcHVlc3RvPjEuMzwvVG90YWxJbXB1ZXN0bz4KICAgIDxUb3RhbEltcEFzdW1FbWlzb3JGYWJyaWNhPjA8L1RvdGFsSW1wQXN1bUVtaXNvckZhYnJpY2E+CiAgICA8VG90YWxPdHJvc0Nhcmdvcz4wPC9Ub3RhbE90cm9zQ2FyZ29zPgogICAgPE1lZGlvUGFnbz4KICAgICAgPFRpcG9NZWRpb1BhZ28+MDM8L1RpcG9NZWRpb1BhZ28+CiAgICA8L01lZGlvUGFnbz4KICAgIDxUb3RhbENvbXByb2JhbnRlPjExLjM8L1RvdGFsQ29tcHJvYmFudGU+CiAgPC9SZXN1bWVuRmFjdHVyYT4KPC9GYWN0dXJhRWxlY3Ryb25pY2E+Cg=="`;
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 orderLineSumResult = this.sumOrderLines();
49
- const servicesLineSumResult = this.sumServicesLines();
50
- const merchandiseLineSumResult = this.sumMerchandiseLines();
51
- const summary = {
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: 0,
57
- totalEncumberedServices: servicesLineSumResult.totalAmount,
58
- totalExonerated: 0,
59
- totalTaxedServices: servicesLineSumResult.totalTaxes,
60
- totalTaxes: orderLineSumResult.totalTaxes,
68
+ totalExemptServices: servicesLinesSum.totalExempt,
69
+ totalEncumberedServices,
70
+ totalExonerated,
71
+ totalTaxedServices: servicesLinesSum.totalTaxes,
72
+ totalTaxes,
61
73
  totalDiscounts: 0,
62
- totalEncumberedMerchandise: merchandiseLineSumResult.totalAmount,
63
- totalTaxed: orderLineSumResult.totalTaxes,
64
- totalExemptMerchandise: 0,
65
- totalExempt: 0,
66
- totalNetSale: orderLineSumResult.totalAmount,
67
- totalEncumbered: orderLineSumResult.totalAmount,
68
- totalTaxBreakdown: [
69
- {
70
- code: '01', // Static value for testing
71
- taxRateCode: '08', // Static value for testing
72
- totalTaxAmount: 100.00 // Static value for testing
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
- sumServicesLines() {
87
- return this.orderLines.filter(this.isAService).reduce((previousValue, currentValue) => {
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: previousValue.totalAmount + currentValue.totalAmount,
91
- totalTaxes: previousValue.totalTaxes + ((_b = (_a = currentValue.tax) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : 0)
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)).reduce((previousValue, currentValue) => {
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.reduce((previousValue, currentValue) => {
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":"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"}
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.5-alpha",
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": "rm -r dist; tspc -p tsconfig-prod.json",
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
+ }
@@ -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 orderLineSumResult = this.sumOrderLines()
90
- const servicesLineSumResult = this.sumServicesLines()
91
- const merchandiseLineSumResult = this.sumMerchandiseLines()
92
- const summary = {
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: 0,
98
- totalEncumberedServices: servicesLineSumResult.totalAmount,
99
- totalExonerated: 0,
100
- totalTaxedServices: servicesLineSumResult.totalTaxes,
101
- totalTaxes: orderLineSumResult.totalTaxes,
117
+ totalExemptServices: servicesLinesSum.totalExempt,
118
+ totalEncumberedServices,
119
+ totalExonerated,
120
+ totalTaxedServices: servicesLinesSum.totalTaxes,
121
+ totalTaxes,
102
122
  totalDiscounts: 0,
103
- totalEncumberedMerchandise: merchandiseLineSumResult.totalAmount,
104
- totalTaxed: orderLineSumResult.totalTaxes,
105
- totalExemptMerchandise: 0,
106
- totalExempt: 0,
107
- totalNetSale: orderLineSumResult.totalAmount,
108
- totalEncumbered: orderLineSumResult.totalAmount,
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
- totalNetSale: totalSale - summary.totalDiscounts,
122
- totalVoucher: summary.totalNetSale + summary.totalTaxed
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
- sumServicesLines(): OrderLineSum {
136
- return this.orderLines.filter(this.isAService).reduce<OrderLineSum>((previousValue, currentValue) => {
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: previousValue.totalAmount + currentValue.totalAmount,
139
- totalTaxes: previousValue.totalTaxes + (currentValue.tax?.amount ?? 0)
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)).reduce<OrderLineSum>((previousValue, currentValue) => {
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.reduce<OrderLineSum>((previousValue, currentValue) => {
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),