@facturacr/atv-sdk 2.0.3-alpha → 2.0.5-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,99 +1,100 @@
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>000004</CodigoActividadEmisor>
6
- <CodigoActividadReceptor>000004</CodigoActividadReceptor>
7
- <NumeroConsecutivo>00100001010000000002</NumeroConsecutivo>
8
- <FechaEmision>2024-04-01T00:00:00.000Z</FechaEmision>
9
- <Emisor>
10
- <Nombre>Emisor name</Nombre>
11
- <Identificacion>
12
- <Tipo>01</Tipo>
13
- <Numero>206920142</Numero>
14
- </Identificacion>
15
- <NombreComercial>emisor comercial name</NombreComercial>
16
- <Ubicacion>
17
- <Provincia>2</Provincia>
18
- <Canton>06</Canton>
19
- <Distrito>04</Distrito>
20
- <Barrio>00006</Barrio>
21
- <OtrasSenas>details</OtrasSenas>
22
- </Ubicacion>
23
- <Telefono>
24
- <CodigoPais>506</CodigoPais>
25
- <NumTelefono>12341234</NumTelefono>
26
- </Telefono>
27
- <CorreoElectronico>test@test.com</CorreoElectronico>
28
- </Emisor>
29
- <Receptor>
30
- <Nombre>receiver name SRL</Nombre>
31
- <Identificacion>
32
- <Tipo>01</Tipo>
33
- <Numero>206930143</Numero>
34
- </Identificacion>
35
- <NombreComercial>receiver name</NombreComercial>
36
- <Ubicacion>
37
- <Provincia>2</Provincia>
38
- <Canton>06</Canton>
39
- <Distrito>04</Distrito>
40
- <Barrio>00006</Barrio>
41
- <OtrasSenas>details</OtrasSenas>
42
- </Ubicacion>
43
- <Telefono>
44
- <CodigoPais>506</CodigoPais>
45
- <NumTelefono>80808080</NumTelefono>
46
- </Telefono>
47
- <CorreoElectronico>test@test.com</CorreoElectronico>
48
- </Receptor>
49
- <CondicionVenta>01</CondicionVenta>
50
- <DetalleServicio>
51
- <LineaDetalle>
52
- <NumeroLinea>1</NumeroLinea>
53
- <CodigoCABYS>7113301000000</CodigoCABYS>
54
- <Cantidad>1</Cantidad>
55
- <UnidadMedida>Unid</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
- <Tarifa>13</Tarifa>
64
- <Monto>1.3</Monto>
65
- </Impuesto>
66
- <ImpuestoAsumidoEmisorFabrica>0</ImpuestoAsumidoEmisorFabrica>
67
- <ImpuestoNeto>1.3</ImpuestoNeto>
68
- <MontoTotalLinea>11.3</MontoTotalLinea>
69
- </LineaDetalle>
70
- </DetalleServicio>
71
- <ResumenFactura>
72
- <CodigoTipoMoneda>
73
- <CodigoMoneda>CRC</CodigoMoneda>
74
- <TipoCambio>1</TipoCambio>
75
- </CodigoTipoMoneda>
76
- <TotalServGravados>0</TotalServGravados>
77
- <TotalServExentos>0</TotalServExentos>
78
- <TotalMercanciasGravadas>10</TotalMercanciasGravadas>
79
- <TotalMercanciasExentas>0</TotalMercanciasExentas>
80
- <TotalGravado>10</TotalGravado>
81
- <TotalExento>0</TotalExento>
82
- <TotalExonerado>0</TotalExonerado>
83
- <TotalVenta>10</TotalVenta>
84
- <TotalDescuentos>0</TotalDescuentos>
85
- <TotalVentaNeta>10</TotalVentaNeta>
86
- <TotalImpuesto>1.3</TotalImpuesto>
87
- <TotalDesgloseImpuesto>
88
- <DetalleImpuesto>
89
- <Codigo>01</Codigo>
90
- <CodigoTarifaIVA>13</CodigoTarifaIVA>
91
- <MontoImpuesto>1.3</MontoImpuesto>
92
- </DetalleImpuesto>
93
- </TotalDesgloseImpuesto>
94
- <MedioPago>
95
- <TipoMedioPago>03</TipoMedioPago>
96
- </MedioPago>
97
- <TotalComprobante>11.3</TotalComprobante>
98
- </ResumenFactura>
99
- </FacturaElectronica>
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>
@@ -8,44 +8,44 @@ const taxStub: CreateDocumentInput['document']['orderLines'][0]['tax'] = {
8
8
  }
9
9
 
10
10
  const orderLines: CreateDocumentInput['document']['orderLines'] = [{
11
- code: '7113301000000',
11
+ code: '9799000000000',
12
12
  quantity: 1,
13
- measureUnit: 'Unid',
13
+ measureUnit: 'Sp',
14
14
  detail: 'detalle',
15
15
  unitaryPrice: 10,
16
16
  tax: taxStub
17
17
  }]
18
18
 
19
19
  const receiverStub: CreateDocumentInput['document']['emitter'] = {
20
- fullName: 'receiver name SRL',
21
- commercialName: 'receiver name',
22
- activityCode: '4',
20
+ fullName: 'Roy',
21
+ commercialName: 'Roy Arrieta Soto',
22
+ activityCode: '526005',
23
23
  identifier: {
24
24
  type: '01',
25
- id: '206930143'
25
+ id: '204500331'
26
26
  },
27
27
  location: {
28
28
  province: '2',
29
29
  canton: '06',
30
30
  district: '04',
31
- neighborhood: '06',
32
- details: 'details'
31
+ neighborhood: '3',
32
+ details: '500 m oeste Súper Don Jorge, casa mano izquierda'
33
33
  },
34
34
  phone: {
35
35
  countryCode: '506',
36
- number: '80808080'
36
+ number: '87206063'
37
37
  },
38
- email: 'test@test.com',
38
+ email: 'sercoe1@hotmail.com',
39
39
  fax: {
40
40
  countryCode: '506',
41
- number: '80808080'
41
+ number: '87206063'
42
42
  }
43
43
  }
44
44
 
45
45
  const emitterStub: CreateDocumentInput['document']['receiver'] = {
46
- fullName: 'Emisor name',
47
- commercialName: 'emisor comercial name',
48
- activityCode: '4',
46
+ fullName: 'Tek rocks',
47
+ commercialName: 'Ciencia del sabor',
48
+ activityCode: '930903',
49
49
  identifier: {
50
50
  type: '01',
51
51
  id: '206920142'
@@ -55,16 +55,16 @@ const emitterStub: CreateDocumentInput['document']['receiver'] = {
55
55
  canton: '06',
56
56
  district: '04',
57
57
  neighborhood: '06',
58
- details: 'details'
58
+ details: 'Calle Arrieta'
59
59
  },
60
- email: 'test@test.com',
60
+ email: 'cienciadelsabor@gmail.com',
61
61
  fax: {
62
62
  countryCode: '506',
63
- number: '12341234'
63
+ number: '88122479'
64
64
  },
65
65
  phone: {
66
66
  countryCode: '506',
67
- number: '12341234'
67
+ number: '88122479'
68
68
  }
69
69
  }
70
70
 
@@ -78,7 +78,7 @@ export const creditNoteReferenceInfoExample: CreateDocumentInput['document']['re
78
78
 
79
79
  export const FEInputExample: DocumentInputWithReceiver = {
80
80
  consecutiveIdentifier: '2',
81
- activityCode: '4',
81
+ activityCode: '930903',
82
82
  providerId: emitterStub.identifier.id,
83
83
  documentName: 'FacturaElectronica',
84
84
  branch: '1', // '001'
@@ -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+MDAwMDA0PC9Db2RpZ29BY3RpdmlkYWRFbWlzb3I+CiAgPENvZGlnb0FjdGl2aWRhZFJlY2VwdG9yPjAwMDAwNDwvQ29kaWdvQWN0aXZpZGFkUmVjZXB0b3I+CiAgPE51bWVyb0NvbnNlY3V0aXZvPjAwMTAwMDAxMDEwMDAwMDAwMDAyPC9OdW1lcm9Db25zZWN1dGl2bz4KICA8RmVjaGFFbWlzaW9uPjIwMjQtMDQtMDFUMDA6MDA6MDAuMDAwWjwvRmVjaGFFbWlzaW9uPgogIDxFbWlzb3I+CiAgICA8Tm9tYnJlPkVtaXNvciBuYW1lPC9Ob21icmU+CiAgICA8SWRlbnRpZmljYWNpb24+CiAgICAgIDxUaXBvPjAxPC9UaXBvPgogICAgICA8TnVtZXJvPjIwNjkyMDE0MjwvTnVtZXJvPgogICAgPC9JZGVudGlmaWNhY2lvbj4KICAgIDxOb21icmVDb21lcmNpYWw+ZW1pc29yIGNvbWVyY2lhbCBuYW1lPC9Ob21icmVDb21lcmNpYWw+CiAgICA8VWJpY2FjaW9uPgogICAgICA8UHJvdmluY2lhPjI8L1Byb3ZpbmNpYT4KICAgICAgPENhbnRvbj4wNjwvQ2FudG9uPgogICAgICA8RGlzdHJpdG8+MDQ8L0Rpc3RyaXRvPgogICAgICA8QmFycmlvPjAwMDA2PC9CYXJyaW8+CiAgICAgIDxPdHJhc1NlbmFzPmRldGFpbHM8L090cmFzU2VuYXM+CiAgICA8L1ViaWNhY2lvbj4KICAgIDxUZWxlZm9ubz4KICAgICAgPENvZGlnb1BhaXM+NTA2PC9Db2RpZ29QYWlzPgogICAgICA8TnVtVGVsZWZvbm8+MTIzNDEyMzQ8L051bVRlbGVmb25vPgogICAgPC9UZWxlZm9ubz4KICAgIDxDb3JyZW9FbGVjdHJvbmljbz50ZXN0QHRlc3QuY29tPC9Db3JyZW9FbGVjdHJvbmljbz4KICA8L0VtaXNvcj4KICA8UmVjZXB0b3I+CiAgICA8Tm9tYnJlPnJlY2VpdmVyIG5hbWUgU1JMPC9Ob21icmU+CiAgICA8SWRlbnRpZmljYWNpb24+CiAgICAgIDxUaXBvPjAxPC9UaXBvPgogICAgICA8TnVtZXJvPjIwNjkzMDE0MzwvTnVtZXJvPgogICAgPC9JZGVudGlmaWNhY2lvbj4KICAgIDxOb21icmVDb21lcmNpYWw+cmVjZWl2ZXIgbmFtZTwvTm9tYnJlQ29tZXJjaWFsPgogICAgPFViaWNhY2lvbj4KICAgICAgPFByb3ZpbmNpYT4yPC9Qcm92aW5jaWE+CiAgICAgIDxDYW50b24+MDY8L0NhbnRvbj4KICAgICAgPERpc3RyaXRvPjA0PC9EaXN0cml0bz4KICAgICAgPEJhcnJpbz4wMDAwNjwvQmFycmlvPgogICAgICA8T3RyYXNTZW5hcz5kZXRhaWxzPC9PdHJhc1NlbmFzPgogICAgPC9VYmljYWNpb24+CiAgICA8VGVsZWZvbm8+CiAgICAgIDxDb2RpZ29QYWlzPjUwNjwvQ29kaWdvUGFpcz4KICAgICAgPE51bVRlbGVmb25vPjgwODA4MDgwPC9OdW1UZWxlZm9ubz4KICAgIDwvVGVsZWZvbm8+CiAgICA8Q29ycmVvRWxlY3Ryb25pY28+dGVzdEB0ZXN0LmNvbTwvQ29ycmVvRWxlY3Ryb25pY28+CiAgPC9SZWNlcHRvcj4KICA8Q29uZGljaW9uVmVudGE+MDE8L0NvbmRpY2lvblZlbnRhPgogIDxEZXRhbGxlU2VydmljaW8+CiAgICA8TGluZWFEZXRhbGxlPgogICAgICA8TnVtZXJvTGluZWE+MTwvTnVtZXJvTGluZWE+CiAgICAgIDxDb2RpZ29DQUJZUz43MTEzMzAxMDAwMDAwPC9Db2RpZ29DQUJZUz4KICAgICAgPENhbnRpZGFkPjE8L0NhbnRpZGFkPgogICAgICA8VW5pZGFkTWVkaWRhPlVuaWQ8L1VuaWRhZE1lZGlkYT4KICAgICAgPERldGFsbGU+ZGV0YWxsZTwvRGV0YWxsZT4KICAgICAgPFByZWNpb1VuaXRhcmlvPjEwPC9QcmVjaW9Vbml0YXJpbz4KICAgICAgPE1vbnRvVG90YWw+MTA8L01vbnRvVG90YWw+CiAgICAgIDxTdWJUb3RhbD4xMDwvU3ViVG90YWw+CiAgICAgIDxCYXNlSW1wb25pYmxlPjEwPC9CYXNlSW1wb25pYmxlPgogICAgICA8SW1wdWVzdG8+CiAgICAgICAgPENvZGlnbz4wMTwvQ29kaWdvPgogICAgICAgIDxUYXJpZmE+MTM8L1RhcmlmYT4KICAgICAgICA8TW9udG8+MS4zPC9Nb250bz4KICAgICAgPC9JbXB1ZXN0bz4KICAgICAgPEltcHVlc3RvQXN1bWlkb0VtaXNvckZhYnJpY2E+MDwvSW1wdWVzdG9Bc3VtaWRvRW1pc29yRmFicmljYT4KICAgICAgPEltcHVlc3RvTmV0bz4xLjM8L0ltcHVlc3RvTmV0bz4KICAgICAgPE1vbnRvVG90YWxMaW5lYT4xMS4zPC9Nb250b1RvdGFsTGluZWE+CiAgICA8L0xpbmVhRGV0YWxsZT4KICA8L0RldGFsbGVTZXJ2aWNpbz4KICA8UmVzdW1lbkZhY3R1cmE+CiAgICA8Q29kaWdvVGlwb01vbmVkYT4KICAgICAgPENvZGlnb01vbmVkYT5DUkM8L0NvZGlnb01vbmVkYT4KICAgICAgPFRpcG9DYW1iaW8+MTwvVGlwb0NhbWJpbz4KICAgIDwvQ29kaWdvVGlwb01vbmVkYT4KICAgIDxUb3RhbFNlcnZHcmF2YWRvcz4wPC9Ub3RhbFNlcnZHcmF2YWRvcz4KICAgIDxUb3RhbFNlcnZFeGVudG9zPjA8L1RvdGFsU2VydkV4ZW50b3M+CiAgICA8VG90YWxNZXJjYW5jaWFzR3JhdmFkYXM+MTA8L1RvdGFsTWVyY2FuY2lhc0dyYXZhZGFzPgogICAgPFRvdGFsTWVyY2FuY2lhc0V4ZW50YXM+MDwvVG90YWxNZXJjYW5jaWFzRXhlbnRhcz4KICAgIDxUb3RhbEdyYXZhZG8+MTA8L1RvdGFsR3JhdmFkbz4KICAgIDxUb3RhbEV4ZW50bz4wPC9Ub3RhbEV4ZW50bz4KICAgIDxUb3RhbEV4b25lcmFkbz4wPC9Ub3RhbEV4b25lcmFkbz4KICAgIDxUb3RhbFZlbnRhPjEwPC9Ub3RhbFZlbnRhPgogICAgPFRvdGFsRGVzY3VlbnRvcz4wPC9Ub3RhbERlc2N1ZW50b3M+CiAgICA8VG90YWxWZW50YU5ldGE+MTA8L1RvdGFsVmVudGFOZXRhPgogICAgPFRvdGFsSW1wdWVzdG8+MS4zPC9Ub3RhbEltcHVlc3RvPgogICAgPFRvdGFsRGVzZ2xvc2VJbXB1ZXN0bz4KICAgICAgPERldGFsbGVJbXB1ZXN0bz4KICAgICAgICA8Q29kaWdvPjAxPC9Db2RpZ28+CiAgICAgICAgPENvZGlnb1RhcmlmYUlWQT4xMzwvQ29kaWdvVGFyaWZhSVZBPgogICAgICAgIDxNb250b0ltcHVlc3RvPjEuMzwvTW9udG9JbXB1ZXN0bz4KICAgICAgPC9EZXRhbGxlSW1wdWVzdG8+CiAgICA8L1RvdGFsRGVzZ2xvc2VJbXB1ZXN0bz4KICAgIDxNZWRpb1BhZ28+CiAgICAgIDxUaXBvTWVkaW9QYWdvPjAzPC9UaXBvTWVkaW9QYWdvPgogICAgPC9NZWRpb1BhZ28+CiAgICA8VG90YWxDb21wcm9iYW50ZT4xMS4zPC9Ub3RhbENvbXByb2JhbnRlPgogIDwvUmVzdW1lbkZhY3R1cmE+CjwvRmFjdHVyYUVsZWN0cm9uaWNhPgo="`;
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=="`;
@@ -6,35 +6,50 @@ const parseAtvMoneyFormat = (amount) => {
6
6
  };
7
7
  const mapOrderLinesToAtvFormat = (orderLines) => {
8
8
  const LineaDetalle = orderLines.map((orderLine) => {
9
- return {
10
- NumeroLinea: orderLine.lineNumber,
11
- CodigoCABYS: orderLine.code,
9
+ var _a;
10
+ const impuestoMonto = orderLine.tax ? parseAtvMoneyFormat((_a = orderLine.tax.amount) !== null && _a !== void 0 ? _a : 0) : 0;
11
+ return Object.assign(Object.assign({ NumeroLinea: orderLine.lineNumber, CodigoCABYS: orderLine.code,
12
12
  // CodigoComercial
13
- Cantidad: orderLine.quantity,
14
- UnidadMedida: orderLine.measureUnit,
13
+ Cantidad: orderLine.quantity, UnidadMedida: orderLine.measureUnit,
15
14
  // UnidadMedidaComercial
16
- Detalle: orderLine.detail,
17
- PrecioUnitario: orderLine.unitaryPrice,
18
- MontoTotal: orderLine.totalAmount,
15
+ Detalle: orderLine.detail, PrecioUnitario: orderLine.unitaryPrice, MontoTotal: orderLine.totalAmount,
19
16
  // Descuento
20
- SubTotal: orderLine.subTotal,
21
- BaseImponible: orderLine.subTotal,
17
+ SubTotal: orderLine.subTotal, BaseImponible: orderLine.subTotal }, (orderLine.tax && {
22
18
  Impuesto: {
23
19
  Codigo: orderLine.tax.code,
20
+ CodigoTarifaIVA: orderLine.tax.rateCode,
24
21
  Tarifa: orderLine.tax.rate,
25
- // @ts-expect-error pending-to-fix
26
- Monto: parseAtvMoneyFormat(orderLine.tax.amount)
27
- },
28
- ImpuestoAsumidoEmisorFabrica: 0,
22
+ Monto: impuestoMonto
23
+ // Exoneracion is explicitly excluded here
24
+ }
25
+ })), { ImpuestoAsumidoEmisorFabrica: 0,
29
26
  // @ts-expect-error pending-to-fix
30
- ImpuestoNeto: parseAtvMoneyFormat(orderLine.tax.amount),
31
- MontoTotalLinea: parseAtvMoneyFormat(orderLine.totalOrderLineAmount)
32
- };
27
+ ImpuestoNeto: parseAtvMoneyFormat(orderLine.tax.amount), MontoTotalLinea: parseAtvMoneyFormat(orderLine.totalOrderLineAmount) });
33
28
  });
34
29
  return { LineaDetalle };
35
30
  };
36
31
  const mapSummaryInvoice = (document) => {
37
32
  const summaryInvoice = document.summaryInvoice;
33
+ const orderLines = document.orderLines; // Still need access to order lines for breakdown
34
+ // --- Lógica para TotalDesgloseImpuesto (sin considerar exoneraciones) ---
35
+ const taxBreakdownMap = new Map();
36
+ orderLines.forEach(orderLine => {
37
+ var _a;
38
+ if (((_a = orderLine.tax) === null || _a === void 0 ? void 0 : _a.amount) !== undefined && orderLine.tax.amount !== null && orderLine.tax.amount > 0) {
39
+ const key = `${orderLine.tax.code}-${orderLine.tax.rateCode}`;
40
+ const currentTotal = taxBreakdownMap.get(key) || 0;
41
+ taxBreakdownMap.set(key, currentTotal + orderLine.tax.amount);
42
+ }
43
+ });
44
+ const TotalDesgloseImpuesto = Array.from(taxBreakdownMap.entries()).map(([key, totalMonto]) => {
45
+ const [Codigo, CodigoTarifaIVA, Tarifa] = key.split('-');
46
+ return {
47
+ Codigo,
48
+ CodigoTarifaIVA,
49
+ Tarifa,
50
+ TotalMontoImpuesto: parseAtvMoneyFormat(totalMonto)
51
+ };
52
+ });
38
53
  return {
39
54
  CodigoTipoMoneda: {
40
55
  // @ts-expect-error pending-to-fix
@@ -56,14 +71,10 @@ const mapSummaryInvoice = (document) => {
56
71
  TotalDescuentos: parseAtvMoneyFormat(summaryInvoice.totalDiscounts),
57
72
  // @ts-expect-error pending-to-fix
58
73
  TotalVentaNeta: parseAtvMoneyFormat(summaryInvoice.totalNetSale),
74
+ TotalDesgloseImpuesto,
59
75
  TotalImpuesto: parseAtvMoneyFormat(summaryInvoice.totalTaxes),
60
- TotalDesgloseImpuesto: {
61
- DetalleImpuesto: {
62
- Codigo: '01', // Tax code
63
- CodigoTarifaIVA: '13', // IVA rate code
64
- MontoImpuesto: parseAtvMoneyFormat(summaryInvoice.totalTaxes)
65
- }
66
- },
76
+ TotalImpAsumEmisorFabrica: 0,
77
+ TotalOtrosCargos: 0,
67
78
  MedioPago: {
68
79
  // @ts-expect-error pending-to-fix
69
80
  TipoMedioPago: document.paymentMethod
@@ -115,9 +126,10 @@ const mapReferenceInformation = (referenceInfo) => {
115
126
  };
116
127
  };
117
128
  const mapDocumentToAtvFormat = (docName, document) => {
129
+ var _a, _b;
118
130
  const key = docName;
119
131
  const doc = Object.assign(Object.assign(Object.assign(Object.assign({ Clave: document.clave, ProveedorSistemas: document.providerId, CodigoActividadEmisor: document.emitter.activityCode.padStart(6, '0') }, (document.receiver && {
120
- CodigoActividadReceptor: document.receiver.activityCode.padStart(6, '0')
132
+ CodigoActividadReceptor: (_b = (_a = document.receiver) === null || _a === void 0 ? void 0 : _a.activityCode) === null || _b === void 0 ? void 0 : _b.padStart(6, '0')
121
133
  })), { NumeroConsecutivo: document.fullConsecutive, FechaEmision: document.issueDate.toISOString(), Emisor: mapPerson(document.emitter) }), (document.receiver && {
122
134
  Receptor: mapPerson(document.receiver)
123
135
  })), { CondicionVenta: document.conditionSale, PlazoCredito: document.deadlineCredit, DetalleServicio: mapOrderLinesToAtvFormat(document.orderLines), ResumenFactura: mapSummaryInvoice(document), Otros: document.others });
@@ -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":";;;AASA,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,EAAE;IAC7C,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,UAAuB,EAAmB,EAAE;IAC5E,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAqC,CAAC,SAAS,EAAE,EAAE;;QACpF,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAA,SAAS,CAAC,GAAG,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxF,qCACE,WAAW,EAAE,SAAS,CAAC,UAAU,EACjC,WAAW,EAAE,SAAS,CAAC,IAAI;YAC3B,kBAAkB;YAClB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,YAAY,EAAE,SAAS,CAAC,WAAW;YACnC,wBAAwB;YACxB,OAAO,EAAE,SAAS,CAAC,MAAM,EACzB,cAAc,EAAE,SAAS,CAAC,YAAY,EACtC,UAAU,EAAE,SAAS,CAAC,WAAW;YACjC,YAAY;YACZ,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,aAAa,EAAE,SAAS,CAAC,QAAQ,IAC9B,CAAC,SAAS,CAAC,GAAG,IAAI;YACnB,QAAQ,EAAE;gBACR,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI;gBAC1B,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ;gBACvC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI;gBAC1B,KAAK,EAAE,aAAa;gBACpB,0CAA0C;aAC3C;SACF,CAAC,KACF,4BAA4B,EAAE,CAAC;YAC/B,kCAAkC;YAClC,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EACvD,eAAe,EAAE,mBAAmB,CAAC,SAAS,CAAC,oBAAoB,CAAC,IACrE;IACH,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,YAAY,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,QAAwB,EAAW,EAAE;IAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAA;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA,CAAC,iDAAiD;IAExF,2EAA2E;IAC3E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEjD,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;;QAC7B,IAAI,CAAA,MAAA,SAAS,CAAC,GAAG,0CAAE,MAAM,MAAK,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrG,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC7D,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAClD,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE;QAC5F,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxD,OAAO;YACL,MAAM;YACN,eAAe;YACf,MAAM;YACN,kBAAkB,EAAE,mBAAmB,CAAC,UAAU,CAAC;SACpD,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO;QACL,gBAAgB,EAAE;YAChB,kCAAkC;YAClC,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI;YAC1C,kCAAkC;YAClC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,YAAY;SACjD;QACD,iBAAiB,EAAE,mBAAmB,CAAC,cAAc,CAAC,uBAAuB,CAAC;QAC9E,gBAAgB,EAAE,mBAAmB,CAAC,cAAc,CAAC,mBAAmB,CAAC;QACzE,kCAAkC;QAClC,uBAAuB,EAAE,mBAAmB,CAAC,cAAc,CAAC,0BAA0B,CAAC;QACvF,kCAAkC;QAClC,sBAAsB,EAAE,mBAAmB,CAAC,cAAc,CAAC,sBAAsB,CAAC;QAClF,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,eAAe,CAAC;QACjE,WAAW,EAAE,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC;QAC5D,cAAc,EAAE,mBAAmB,CAAC,cAAc,CAAC,eAAe,CAAC;QACnE,UAAU,EAAE,mBAAmB,CAAC,cAAc,CAAC,SAAS,CAAC;QACzD,kCAAkC;QAClC,eAAe,EAAE,mBAAmB,CAAC,cAAc,CAAC,cAAc,CAAC;QACnE,kCAAkC;QAClC,cAAc,EAAE,mBAAmB,CAAC,cAAc,CAAC,YAAY,CAAC;QAChE,qBAAqB;QACrB,aAAa,EAAE,mBAAmB,CAAC,cAAc,CAAC,UAAU,CAAC;QAC7D,yBAAyB,EAAE,CAAC;QAC5B,gBAAgB,EAAE,CAAC;QACnB,SAAS,EAAE;YACT,kCAAkC;YAClC,aAAa,EAAE,QAAQ,CAAC,aAAa;SACtC;QACD,gBAAgB,EAAE,mBAAmB,CAAC,cAAc,CAAC,YAAY,CAAC;KACnE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,MAAc,EAAW,EAAE;;IAC5C,MAAM,SAAS,GAAG;QAChB,MAAM,EAAE,MAAM,CAAC,QAAQ;QACvB,cAAc,EAAE;YACd,IAAI,EAAE,MAAM,CAAC,cAAc;YAC3B,MAAM,EAAE,MAAM,CAAC,YAAY;SAC5B;QACD,eAAe,EAAE,MAAM,CAAC,cAAc;QACtC,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,SAAS;QACnB,iBAAiB,EAAE,SAAS;KAC7B,CAAA;IACD,kCAAkC;IAClC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ;QACnC,CAAC,CAAC;YACE,SAAS,EAAE,MAAA,MAAM,CAAC,QAAQ,0CAAE,QAAQ;YACpC,MAAM,EAAE,MAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,MAAM,0CAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YACjD,QAAQ,EAAE,MAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,QAAQ,0CAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YACrD,MAAM,EAAE,MAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,YAAY,0CAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;YACvD,UAAU,EAAE,MAAA,MAAM,CAAC,QAAQ,0CAAE,OAAO;SACrC;QACH,CAAC,CAAC,SAAS,CAAA;IACb,kCAAkC;IAClC,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK;QAC/B,CAAC,CAAC;YACE,UAAU,EAAE,MAAA,MAAM,CAAC,KAAK,0CAAE,WAAW;YACrC,WAAW,EAAE,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM;SAClC;QACH,CAAC,CAAC,SAAS,CAAA;IACb,kCAAkC;IAClC,SAAS,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAA;IAE1C,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,aAAmC,EAAyB,EAAE;IAC7F,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,MAAM,EAAE,aAAa,CAAC,SAAS;QAC/B,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE;QACnD,MAAM,EAAE,aAAa,CAAC,IAAI;QAC1B,KAAK,EAAE,aAAa,CAAC,MAAM;KAC5B,CAAA;AACH,CAAC,CAAA;AAEM,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,QAAwB,EAAa,EAAE;;IAC7F,MAAM,GAAG,GAAG,OAAO,CAAA;IACnB,MAAM,GAAG,6DACP,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,iBAAiB,EAAE,QAAQ,CAAC,UAAU,EACtC,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAClE,CAAC,QAAQ,CAAC,QAAQ,IAAI;QACvB,uBAAuB,EAAE,MAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,YAAY,0CAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;KAC3E,CAAC,KACF,iBAAiB,EAAE,QAAQ,CAAC,eAAe,EAC3C,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,EAC9C,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAChC,CAAC,QAAQ,CAAC,QAAQ,IAAI;QACvB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACvC,CAAC,KACF,cAAc,EAAE,QAAQ,CAAC,aAAa,EACtC,YAAY,EAAE,QAAQ,CAAC,cAAc,EACrC,eAAe,EAAE,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC9D,cAAc,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAC3C,KAAK,EAAE,QAAQ,CAAC,MAAM,GACvB,CAAA;IACD,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAClC,GAAG,CAAC,qBAAqB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IACpF,CAAC;IACD,OAAO;QACL,CAAC,GAAG,CAAC,EAAE,GAAG;KACX,CAAA;AACH,CAAC,CAAA;AA3BY,QAAA,sBAAsB,0BA2BlC;AAEM,MAAM,6BAA6B,GAAG,CAAC,KAA2B,EAAa,EAAE;IACtF,OAAO;QACL,eAAe,EAAE;YACf,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,kBAAkB,EAAE,KAAK,CAAC,iBAAiB;YAC3C,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE;YACtD,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,qDAAqD;YAChG,cAAc,EAAE,KAAK,CAAC,uBAAuB;YAC7C,kBAAkB,EAAE,KAAK,CAAC,UAAU;YACpC,eAAe,EAAE,KAAK,CAAC,YAAY;YACnC,iBAAiB,EAAE,KAAK,CAAC,YAAY;YACrC,0BAA0B,EAAE,KAAK,CAAC,SAAS,EAAE,yEAAyE;YACtH,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,yCAAyC;YACxE,oBAAoB,EAAE,KAAK,CAAC,kBAAkB;YAC9C,yBAAyB,EAAE,KAAK,CAAC,mBAAmB;SACrD;KACF,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,6BAA6B,iCAiBzC"}
@@ -1,6 +1,6 @@
1
1
  export interface Impuesto {
2
2
  Codigo: string;
3
- Tarifa: number;
3
+ Tarifa?: number;
4
4
  Monto?: number;
5
5
  }
6
6
  export interface LineaDetalle {
@@ -20,13 +20,10 @@ export interface LineaDetalle {
20
20
  export interface DetalleServicio {
21
21
  LineaDetalle: Array<LineaDetalle>;
22
22
  }
23
- export interface DetalleImpuesto {
24
- Codigo: string;
25
- CodigoTarifaIVA?: string;
26
- MontoImpuesto: number;
27
- }
28
23
  export interface TotalDesgloseImpuesto {
29
- DetalleImpuesto: DetalleImpuesto;
24
+ Codigo: string;
25
+ CodigoTarifaIVA: string;
26
+ TotalMontoImpuesto: number;
30
27
  }
31
28
  export interface Resumen {
32
29
  CodigoTipoMoneda?: {
@@ -44,11 +41,11 @@ export interface Resumen {
44
41
  TotalDescuentos?: number;
45
42
  TotalVentaNeta?: number;
46
43
  TotalImpuesto: number;
44
+ TotalDesgloseImpuesto?: TotalDesgloseImpuesto[];
47
45
  MedioPago?: {
48
46
  TipoMedioPago: string;
49
47
  };
50
48
  TotalComprobante: number;
51
- TotalDesgloseImpuesto?: TotalDesgloseImpuesto;
52
49
  }
53
50
  export interface Persona {
54
51
  Nombre: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@facturacr/atv-sdk",
3
- "version": "2.0.3-alpha",
3
+ "version": "2.0.5-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",
@@ -13,6 +13,7 @@ const parseAtvMoneyFormat = (amount: number) => {
13
13
 
14
14
  const mapOrderLinesToAtvFormat = (orderLines: OrderLine[]): DetalleServicio => {
15
15
  const LineaDetalle = orderLines.map<DetalleServicio['LineaDetalle'][0]>((orderLine) => {
16
+ const impuestoMonto = orderLine.tax ? parseAtvMoneyFormat(orderLine.tax.amount ?? 0) : 0
16
17
  return {
17
18
  NumeroLinea: orderLine.lineNumber,
18
19
  CodigoCABYS: orderLine.code,
@@ -26,12 +27,15 @@ const mapOrderLinesToAtvFormat = (orderLines: OrderLine[]): DetalleServicio => {
26
27
  // Descuento
27
28
  SubTotal: orderLine.subTotal,
28
29
  BaseImponible: orderLine.subTotal,
29
- Impuesto: {
30
- Codigo: orderLine.tax.code,
31
- Tarifa: orderLine.tax.rate,
32
- // @ts-expect-error pending-to-fix
33
- Monto: parseAtvMoneyFormat(orderLine.tax.amount)
34
- },
30
+ ...(orderLine.tax && {
31
+ Impuesto: {
32
+ Codigo: orderLine.tax.code,
33
+ CodigoTarifaIVA: orderLine.tax.rateCode,
34
+ Tarifa: orderLine.tax.rate,
35
+ Monto: impuestoMonto
36
+ // Exoneracion is explicitly excluded here
37
+ }
38
+ }),
35
39
  ImpuestoAsumidoEmisorFabrica: 0,
36
40
  // @ts-expect-error pending-to-fix
37
41
  ImpuestoNeto: parseAtvMoneyFormat(orderLine.tax.amount),
@@ -43,6 +47,28 @@ const mapOrderLinesToAtvFormat = (orderLines: OrderLine[]): DetalleServicio => {
43
47
 
44
48
  const mapSummaryInvoice = (document: DomainDocument): Resumen => {
45
49
  const summaryInvoice = document.summaryInvoice
50
+ const orderLines = document.orderLines // Still need access to order lines for breakdown
51
+
52
+ // --- Lógica para TotalDesgloseImpuesto (sin considerar exoneraciones) ---
53
+ const taxBreakdownMap = new Map<string, number>()
54
+
55
+ orderLines.forEach(orderLine => {
56
+ if (orderLine.tax?.amount !== undefined && orderLine.tax.amount !== null && orderLine.tax.amount > 0) {
57
+ const key = `${orderLine.tax.code}-${orderLine.tax.rateCode}`
58
+ const currentTotal = taxBreakdownMap.get(key) || 0
59
+ taxBreakdownMap.set(key, currentTotal + orderLine.tax.amount)
60
+ }
61
+ })
62
+
63
+ const TotalDesgloseImpuesto = Array.from(taxBreakdownMap.entries()).map(([key, totalMonto]) => {
64
+ const [Codigo, CodigoTarifaIVA, Tarifa] = key.split('-')
65
+ return {
66
+ Codigo,
67
+ CodigoTarifaIVA,
68
+ Tarifa,
69
+ TotalMontoImpuesto: parseAtvMoneyFormat(totalMonto)
70
+ }
71
+ })
46
72
  return {
47
73
  CodigoTipoMoneda: {
48
74
  // @ts-expect-error pending-to-fix
@@ -64,14 +90,10 @@ const mapSummaryInvoice = (document: DomainDocument): Resumen => {
64
90
  TotalDescuentos: parseAtvMoneyFormat(summaryInvoice.totalDiscounts),
65
91
  // @ts-expect-error pending-to-fix
66
92
  TotalVentaNeta: parseAtvMoneyFormat(summaryInvoice.totalNetSale),
93
+ TotalDesgloseImpuesto,
67
94
  TotalImpuesto: parseAtvMoneyFormat(summaryInvoice.totalTaxes),
68
- TotalDesgloseImpuesto: {
69
- DetalleImpuesto: {
70
- Codigo: '01', // Tax code
71
- CodigoTarifaIVA: '13', // IVA rate code
72
- MontoImpuesto: parseAtvMoneyFormat(summaryInvoice.totalTaxes)
73
- }
74
- },
95
+ TotalImpAsumEmisorFabrica: 0,
96
+ TotalOtrosCargos: 0,
75
97
  MedioPago: {
76
98
  // @ts-expect-error pending-to-fix
77
99
  TipoMedioPago: document.paymentMethod
@@ -132,7 +154,7 @@ export const mapDocumentToAtvFormat = (docName: string, document: DomainDocument
132
154
  ProveedorSistemas: document.providerId,
133
155
  CodigoActividadEmisor: document.emitter.activityCode.padStart(6, '0'),
134
156
  ...(document.receiver && { // TODO add && document.name === 'FacturaElectronica'
135
- CodigoActividadReceptor: document.receiver.activityCode.padStart(6, '0')
157
+ CodigoActividadReceptor: document.receiver?.activityCode?.padStart(6, '0')
136
158
  }),
137
159
  NumeroConsecutivo: document.fullConsecutive,
138
160
  FechaEmision: document.issueDate.toISOString(),
@@ -5,7 +5,7 @@
5
5
 
6
6
  export interface Impuesto {
7
7
  Codigo: string;
8
- Tarifa: number;
8
+ Tarifa?: number;
9
9
  Monto?: number;
10
10
  }
11
11
 
@@ -28,14 +28,11 @@ export interface DetalleServicio {
28
28
  LineaDetalle: Array<LineaDetalle>;
29
29
  }
30
30
 
31
- export interface DetalleImpuesto {
32
- Codigo: string; // Representa el tipo "CodigoImpuestoType"
33
- CodigoTarifaIVA?: string; // Representa el tipo "CodigoTarifaIVAType"
34
- MontoImpuesto: number; // Representa el tipo "DecimalDineroType"
35
- }
36
-
37
31
  export interface TotalDesgloseImpuesto {
38
- DetalleImpuesto: DetalleImpuesto;
32
+ Codigo: string;
33
+ CodigoTarifaIVA: string;
34
+ // ... other properties
35
+ TotalMontoImpuesto: number;
39
36
  }
40
37
 
41
38
  export interface Resumen {
@@ -55,11 +52,11 @@ export interface Resumen {
55
52
  TotalDescuentos?: number;
56
53
  TotalVentaNeta?: number;
57
54
  TotalImpuesto: number;
55
+ TotalDesgloseImpuesto?: TotalDesgloseImpuesto[];
58
56
  MedioPago?: {
59
57
  TipoMedioPago: string;
60
58
  };
61
59
  TotalComprobante: number;
62
- TotalDesgloseImpuesto?: TotalDesgloseImpuesto; // Agregado aquí
63
60
  }
64
61
 
65
62
  export interface Persona {