@arcasdk/pdf 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +114 -0
  2. package/lib/constants/index.d.ts +1 -0
  3. package/lib/constants/index.js +18 -0
  4. package/lib/constants/index.js.map +1 -0
  5. package/lib/constants/voucher.constants.d.ts +24 -0
  6. package/lib/constants/voucher.constants.js +99 -0
  7. package/lib/constants/voucher.constants.js.map +1 -0
  8. package/lib/generator/index.d.ts +1 -0
  9. package/lib/generator/index.js +18 -0
  10. package/lib/generator/index.js.map +1 -0
  11. package/lib/generator/invoice-pdf-generator.d.ts +11 -0
  12. package/lib/generator/invoice-pdf-generator.js +204 -0
  13. package/lib/generator/invoice-pdf-generator.js.map +1 -0
  14. package/lib/index.d.ts +6 -0
  15. package/lib/index.js +20 -0
  16. package/lib/index.js.map +1 -0
  17. package/lib/templates/arca-default/index.d.ts +1 -0
  18. package/lib/templates/arca-default/index.js +7 -0
  19. package/lib/templates/arca-default/index.js.map +1 -0
  20. package/lib/templates/arca-default/invoice-document.d.ts +3 -0
  21. package/lib/templates/arca-default/invoice-document.hbs +336 -0
  22. package/lib/templates/arca-default/invoice-document.js +14 -0
  23. package/lib/templates/arca-default/invoice-document.js.map +1 -0
  24. package/lib/templates/engine/index.d.ts +1 -0
  25. package/lib/templates/engine/index.js +8 -0
  26. package/lib/templates/engine/index.js.map +1 -0
  27. package/lib/templates/engine/template-engine.d.ts +5 -0
  28. package/lib/templates/engine/template-engine.js +88 -0
  29. package/lib/templates/engine/template-engine.js.map +1 -0
  30. package/lib/templates/index.d.ts +1 -0
  31. package/lib/templates/index.js +6 -0
  32. package/lib/templates/index.js.map +1 -0
  33. package/lib/types/index.d.ts +1 -0
  34. package/lib/types/index.js +18 -0
  35. package/lib/types/index.js.map +1 -0
  36. package/lib/types/invoice-data.types.d.ts +225 -0
  37. package/lib/types/invoice-data.types.js +3 -0
  38. package/lib/types/invoice-data.types.js.map +1 -0
  39. package/lib/utils/format.utils.d.ts +22 -0
  40. package/lib/utils/format.utils.js +56 -0
  41. package/lib/utils/format.utils.js.map +1 -0
  42. package/lib/utils/index.d.ts +3 -0
  43. package/lib/utils/index.js +20 -0
  44. package/lib/utils/index.js.map +1 -0
  45. package/lib/utils/number-to-words.utils.d.ts +1 -0
  46. package/lib/utils/number-to-words.utils.js +99 -0
  47. package/lib/utils/number-to-words.utils.js.map +1 -0
  48. package/lib/utils/qr.utils.d.ts +8 -0
  49. package/lib/utils/qr.utils.js +56 -0
  50. package/lib/utils/qr.utils.js.map +1 -0
  51. package/package.json +61 -0
@@ -0,0 +1,336 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>{{descTipo data.cbteTipo data.cbteDescripcion}} {{data.cbteLetra}} {{voucherNumber data.puntoVenta data.cbteDesde}}</title>
6
+ <style>
7
+ *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
8
+ html,body{font-family:Arial,Helvetica,sans-serif;font-size:8pt;line-height:1.35;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
9
+ b{font-weight:bold}
10
+ table{border-collapse:collapse;width:100%}
11
+ .page{padding-right:1px}
12
+ .page{min-height:100vh;display:flex;flex-direction:column}
13
+ .content{flex:1;display:flex;flex-direction:column}
14
+ .banner{border:1pt solid #000;text-align:center;padding:5px 0;margin-bottom:6px}
15
+ .banner span{font-size:12pt;font-weight:bold}
16
+ .header{border:1pt solid #000;margin-bottom:6px}
17
+ .header-top{display:flex;min-height:75px}
18
+ .header-left{flex:1;border-right:1pt solid #000;padding:8px;display:flex;flex-direction:column;justify-content:center}
19
+ .header-left .emisor-rs{font-size:10pt;font-weight:bold;margin:2px 0}
20
+ .header-left .emisor-dom{font-size:7.5pt;margin-bottom:1px}
21
+ .header-left .emisor-extra{font-size:7.5pt;margin-top:3px}
22
+ .header-center{width:54px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:6px;border-bottom:1pt solid #000}
23
+ .letter-box{width:46px;height:46px;border:1pt solid #000;display:flex;align-items:center;justify-content:center;font-size:28pt;font-weight:bold}
24
+ .letter-cod{font-size:7pt;margin-top:2px;text-align:center}
25
+ .header-right{flex:1;border-left:1pt solid #000;padding:8px;display:flex;flex-direction:column;justify-content:center;text-align:right}
26
+ .header-right .voucher-type{font-size:13pt;font-weight:bold}
27
+ .header-right .voucher-nro{font-size:11pt;font-weight:bold;margin-top:3px}
28
+ .header-right .voucher-fecha{font-size:9pt;font-weight:bold;margin-top:6px}
29
+ .header-bottom{display:flex;min-height:36px}
30
+ .header-bottom-left{flex:1;border-right:1pt solid #000;padding:5px 8px;font-size:7.5pt;display:flex;align-items:center}
31
+ .header-bottom-right{flex:1;padding:4px 10px;display:flex;flex-direction:column;justify-content:center}
32
+ .info-row{display:flex;justify-content:flex-end;gap:6px;margin-bottom:1px}
33
+ .info-row .lbl{font-weight:bold;font-size:7.5pt}
34
+ .info-row .val{font-size:7.5pt}
35
+ .receptor{padding:6px 8px;margin-bottom:4px}
36
+ .receptor-row{margin-bottom:3px;font-size:8pt}
37
+ .receptor-sep{border-bottom:1pt solid #000;margin-top:4px}
38
+ .items-table{margin-bottom:4px}
39
+ .items-table .items-header td{background:#f2f2f2;font-weight:bold;font-size:7.5pt;padding:5px 4px;border:1pt solid #000}
40
+ .items-table .item-row td{font-size:7.5pt;padding:5px 4px;border-bottom:0.5pt solid #eee}
41
+ .summary-final{margin-top:auto}
42
+ .bottom-columns{display:flex;gap:10px;margin-bottom:6px}
43
+ .bottom-col-left{width:42%}
44
+ .bottom-col-right{width:52%;margin-left:auto}
45
+ .tributos-table{border:1pt solid #000;font-size:7.5pt;width:100%}
46
+ .tributos-table td{padding:3px 5px}
47
+ .tributos-header td{background:#f0f0f0;font-weight:bold;border-bottom:1pt solid #000}
48
+ .tributos-subheader td{font-weight:bold;border-bottom:0.5pt solid #ccc}
49
+ .tributos-subheader td:last-child{text-align:right}
50
+ .tributos-row td:last-child{text-align:right}
51
+ .tributos-total td{font-weight:bold;border-top:1pt solid #000}
52
+ .tributos-total td:last-child{text-align:right}
53
+ .moneda-label{font-weight:bold;font-size:8pt;text-align:right;margin-bottom:4px}
54
+ .conversion-line{border:1pt solid #000;padding:5px 8px;font-size:7.5pt;text-align:center;margin-top:6px}
55
+ .totals-row{display:flex;justify-content:flex-end;margin-bottom:1px}
56
+ .totals-label{text-align:right;font-size:8pt;padding-right:8px;width:60%}
57
+ .totals-value{text-align:right;font-size:8pt;width:40%}
58
+ .total-box{display:flex;border:1pt solid #000;padding:4px 6px;margin:4px 0}
59
+ .total-box-label{width:60%;text-align:right;font-size:11pt;font-weight:bold;padding-right:8px}
60
+ .total-box-value{width:40%;text-align:right;font-size:11pt;font-weight:bold}
61
+ .son-text{font-size:7pt;text-align:right;margin-top:2px}
62
+ .cae-section{display:flex;align-items:flex-start;gap:12px;margin-top:8px}
63
+ .qr-img{width:65px;height:65px}
64
+ .arca-block{display:flex;flex-direction:column;justify-content:center}
65
+ .arca-logo{width:120px;height:44px}
66
+ .arca-sub{font-size:8pt;margin-top:2px}
67
+ .arca-disclaimer{font-size:6.5pt;line-height:1.3;margin-top:3px}
68
+ .cae-line{font-size:8.5pt;font-weight:bold;margin-top:6px}
69
+ .observations{font-size:6.5pt;font-style:italic;color:#333;margin-top:3px}
70
+ .export-payment-table{border:1pt solid #000;font-size:7.5pt;margin-bottom:6px}
71
+ .export-payment-table td{padding:5px 8px;border-right:1pt solid #000}
72
+ .export-payment-table td:last-child{border-right:none}
73
+ .export-footer-row{display:flex;justify-content:space-between;border:1pt solid #000;padding:4px 8px;font-size:7.5pt;margin-bottom:4px}
74
+ .export-footer-left{text-align:left}
75
+ .export-footer-right{text-align:right;font-style:italic}
76
+ </style>
77
+ </head>
78
+ <body>
79
+ <div class="page">
80
+ <div class="content">
81
+
82
+ <!-- Banner -->
83
+ <div class="banner"><span>{{default options.copy "ORIGINAL"}}</span></div>
84
+
85
+ <!-- Header -->
86
+ <div class="header">
87
+ <div class="header-top">
88
+ <div class="header-left">
89
+ {{#if options.logo}}<img src="{{options.logo}}" style="width:{{default options.logoWidth 60}}px;margin-bottom:4px">{{/if}}
90
+ <div class="emisor-dom">Razón social:</div>
91
+ <div class="emisor-rs">{{data.emisor.razonSocial}}</div>
92
+ <div class="emisor-dom">Domicilio:</div>
93
+ <div class="emisor-dom">{{data.emisor.domicilioComercial}}</div>
94
+ {{#if data.emisor.contacto}}<div class="emisor-extra">{{data.emisor.contacto}}</div>{{/if}}
95
+ </div>
96
+ <div class="header-center">
97
+ <div class="letter-box">{{data.cbteLetra}}</div>
98
+ <div class="letter-cod">COD.{{data.cbteTipo}}</div>
99
+ </div>
100
+ <div class="header-right">
101
+ <div class="voucher-type">{{descTipo data.cbteTipo data.cbteDescripcion}} {{data.cbteLetra}}</div>
102
+ <div class="voucher-nro">Nro.:{{voucherNumber data.puntoVenta data.cbteDesde}}</div>
103
+ <div class="voucher-fecha">Fecha: {{formatDate data.cbteFecha}}</div>
104
+ </div>
105
+ </div>
106
+ <div class="header-bottom">
107
+ <div class="header-bottom-left">
108
+ <span style="font-size:7.5pt"><b>Condición frente al IVA:</b> {{data.emisor.condicionIva}}</span>
109
+ {{#if data.condicionIvaExportacion}}<br><span style="font-size:7.5pt;font-weight:bold">{{data.condicionIvaExportacion}}</span>{{/if}}
110
+ </div>
111
+ <div class="header-bottom-right">
112
+ <div class="info-row"><span class="lbl">CUIT:</span><span class="val">{{formatCuit data.emisor.cuit}}</span></div>
113
+ <div class="info-row"><span class="lbl">Ingresos Brutos:</span><span class="val">{{data.emisor.iibb}}</span></div>
114
+ <div class="info-row"><span class="lbl">Fecha de Inicio de Actividades:</span><span class="val">{{formatDate data.emisor.fechaInicioActividades}}</span></div>
115
+ </div>
116
+ </div>
117
+ </div>
118
+
119
+ <!-- Receptor -->
120
+ {{#if (eq data.cbteLetra "E")}}
121
+ <div class="receptor">
122
+ <div class="receptor-row"><b>Señor(es):</b> {{data.receptor.razonSocial}}&nbsp;&nbsp;&nbsp;&nbsp;<b>Domicilio:</b> {{default data.receptor.domicilio "- -"}}</div>
123
+ {{#if data.receptor.cuitPais}}<div class="receptor-row"><b>CUIT País:</b> {{data.receptor.cuitPais}}</div>{{/if}}
124
+ {{#if data.receptor.idImpositivo}}<div class="receptor-row"><b>ID Impositivo:</b> {{data.receptor.idImpositivo}}</div>{{/if}}
125
+ {{#if data.divisa}}<div class="receptor-row"><b>Divisa:</b> {{data.divisa}}</div>{{/if}}
126
+ {{#if data.destinoComprobante}}<div class="receptor-row"><b>Destino del Comprobante:</b> {{data.destinoComprobante}}</div>{{/if}}
127
+ <div class="receptor-sep"></div>
128
+ </div>
129
+
130
+ {{#if (and data.formaPago true)}}
131
+ <table class="export-payment-table">
132
+ <tr>
133
+ <td><b>Forma de Pago:</b> {{default data.formaPago ""}}</td>
134
+ <td><b>Fecha de Pago:</b>{{#if data.fechaPago}}{{formatDate data.fechaPago}}{{/if}}</td>
135
+ <td><b>Incoterms:</b> {{default data.incoterms ""}}</td>
136
+ </tr>
137
+ </table>
138
+ {{/if}}
139
+ {{else}}
140
+ <div class="receptor">
141
+ <div class="receptor-row"><b>Apellido y nombre / Razón Social:</b> {{data.receptor.razonSocial}}</div>
142
+ <div class="receptor-row"><b>Domicilio:</b> {{default data.receptor.domicilio "- -"}}</div>
143
+ <div class="receptor-row"><b>{{data.receptor.documentoTipo}}:</b> {{docNumber data.receptor.documentoNro}}&nbsp;&nbsp;&nbsp;&nbsp;<b>Condición frente al IVA:</b> {{data.receptor.condicionIva}}{{#if data.condicionVenta}}&nbsp;&nbsp;&nbsp;&nbsp;<b>Cond. Venta:</b> {{data.condicionVenta}}{{#if data.fechaVtoPago}} (Vencimiento: {{formatDate data.fechaVtoPago}}){{/if}}{{/if}}</div>
144
+ {{#if (and (gte data.concepto 2) (and data.fechaServicioDesde data.fechaServicioHasta))}}
145
+ <div class="receptor-row"><b>Período facturado:</b> {{formatDate data.fechaServicioDesde}} al {{formatDate data.fechaServicioHasta}}</div>
146
+ {{/if}}
147
+ <div class="receptor-sep"></div>
148
+ </div>
149
+ {{/if}}
150
+
151
+ {{! Comprobantes asociados }}
152
+ {{#if data.cbtesAsociados}}
153
+ {{#if (len data.cbtesAsociados)}}
154
+ <div class="receptor-row" style="margin-bottom:4px;font-size:7.5pt"><b>Comprobantes asociados:</b> {{#each data.cbtesAsociados}}{{#unless @first}}, {{/unless}}{{voucherTypeDescription this.tipo}} {{padStart this.puntoVenta 5}}-{{padStart this.numero 8}}{{#if this.fecha}} ({{formatDate this.fecha}}){{/if}}{{/each}}</div>
155
+ {{/if}}
156
+ {{/if}}
157
+
158
+ <!-- Items -->
159
+ <table class="items-table">
160
+ <tr class="items-header">
161
+ {{#if (eq data.cbteLetra "A")}}
162
+ <td style="width:10%;text-align:left">Cantidad</td>
163
+ <td style="width:25%;text-align:left">Producto / Servicio</td>
164
+ <td style="width:13%;text-align:right">Precio unit</td>
165
+ <td style="width:8%;text-align:right">%Bonif.</td>
166
+ <td style="width:10%;text-align:right">$ Bonif.</td>
167
+ <td style="width:8%;text-align:right">%IVA</td>
168
+ <td style="width:26%;text-align:right">Subtotal s/IVA</td>
169
+ {{else if (eq data.cbteLetra "E")}}
170
+ <td style="width:7%;text-align:left">Ítem</td>
171
+ <td style="width:43%;text-align:left">Descripción</td>
172
+ <td style="width:15%;text-align:right">Cantidad</td>
173
+ <td style="width:17%;text-align:right">Precio Unit. ({{currencyCode data.moneda}})</td>
174
+ <td style="width:18%;text-align:right">Total por ítem ({{currencyCode data.moneda}})</td>
175
+ {{else if (eq data.cbteLetra "C")}}
176
+ <td style="width:10%;text-align:left">Cantidad</td>
177
+ <td style="width:30%;text-align:left">Producto / Servicio</td>
178
+ <td style="width:13%;text-align:right">Precio unit</td>
179
+ <td style="width:8%;text-align:right">%Bonif.</td>
180
+ <td style="width:10%;text-align:right">$ Bonif.</td>
181
+ <td style="width:29%;text-align:right">Subtotal</td>
182
+ {{else}}
183
+ <td style="width:11%;text-align:left">Cantidad</td>
184
+ <td style="width:29%;text-align:left">Producto / Servicio</td>
185
+ <td style="width:15%;text-align:right">Precio Unit.</td>
186
+ <td style="width:9%;text-align:right">%Bonif.</td>
187
+ <td style="width:12%;text-align:right">$ Bonif.</td>
188
+ <td style="width:24%;text-align:right">Subtotal</td>
189
+ {{/if}}
190
+ </tr>
191
+ {{#each data.items}}
192
+ <tr class="item-row">
193
+ {{#if (eq ../data.cbteLetra "A")}}
194
+ <td style="width:10%;text-align:left">{{this.cantidad}} {{this.unidadMedida}}</td>
195
+ <td style="width:25%;text-align:left">{{this.descripcion}}</td>
196
+ <td style="width:13%;text-align:right">{{formatUnitPrice this.precioUnitario}}</td>
197
+ <td style="width:8%;text-align:right">{{default this.bonificacion 0}}%</td>
198
+ <td style="width:10%;text-align:right">{{formatCurrency (bonAmount this.precioUnitario this.cantidad this.bonificacion this.importeBonificacion) ../data.moneda}}</td>
199
+ <td style="width:8%;text-align:right">{{#if (isNull this.alicuotaIva)}}-{{else}}{{this.alicuotaIva}}%{{/if}}</td>
200
+ <td style="width:26%;text-align:right">{{formatCurrency this.subtotal ../data.moneda}}</td>
201
+ {{else if (eq ../data.cbteLetra "E")}}
202
+ <td style="width:7%;text-align:left">{{padStart (default this.codigo @index) 4}}</td>
203
+ <td style="width:43%;text-align:left">{{this.descripcion}}{{#if this.unidadMedida}}<br><b>U. Medida:</b> {{this.unidadMedida}}{{/if}}</td>
204
+ <td style="width:15%;text-align:right">{{formatUnitPrice this.cantidad}}</td>
205
+ <td style="width:17%;text-align:right">{{formatUnitPrice this.precioUnitario}}</td>
206
+ <td style="width:18%;text-align:right">{{formatCurrency this.subtotal ../data.moneda}}</td>
207
+ {{else if (eq ../data.cbteLetra "C")}}
208
+ <td style="width:10%;text-align:left">{{this.cantidad}} {{this.unidadMedida}}</td>
209
+ <td style="width:30%;text-align:left">{{this.descripcion}}</td>
210
+ <td style="width:13%;text-align:right">{{formatUnitPrice this.precioUnitario}}</td>
211
+ <td style="width:8%;text-align:right">{{default this.bonificacion 0}}%</td>
212
+ <td style="width:10%;text-align:right">{{formatCurrency (bonAmount this.precioUnitario this.cantidad this.bonificacion this.importeBonificacion) ../data.moneda}}</td>
213
+ <td style="width:29%;text-align:right">{{formatCurrency this.subtotal ../data.moneda}}</td>
214
+ {{else}}
215
+ <td style="width:11%;text-align:left">{{this.cantidad}} {{this.unidadMedida}}</td>
216
+ <td style="width:29%;text-align:left">{{this.descripcion}}</td>
217
+ <td style="width:15%;text-align:right">{{formatUnitPrice this.precioUnitario}}</td>
218
+ <td style="width:9%;text-align:right">{{default this.bonificacion 0}}%</td>
219
+ <td style="width:12%;text-align:right">{{formatCurrency (bonAmount this.precioUnitario this.cantidad this.bonificacion this.importeBonificacion) ../data.moneda}}</td>
220
+ <td style="width:24%;text-align:right">{{formatCurrency this.subtotal ../data.moneda}}</td>
221
+ {{/if}}
222
+ </tr>
223
+ {{/each}}
224
+ </table>
225
+
226
+ <!-- Summary final -->
227
+ <div class="summary-final">
228
+ {{#if (eq data.cbteLetra "A")}}
229
+ <div class="bottom-columns">
230
+ <div class="bottom-col-left">
231
+ <table class="tributos-table">
232
+ <tr class="tributos-header"><td colspan="4">Otros Tributos</td></tr>
233
+ <tr class="tributos-subheader"><td>Descripción</td><td>Detalle</td><td style="text-align:right">Alic. %</td><td style="text-align:right">Importe</td></tr>
234
+ <tr class="tributos-row"><td>Per./Ret. de Impuesto a las Ganancias</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Per./Ret. de Impuesto a las Ganancias") data.moneda}}</td></tr>
235
+ <tr class="tributos-row"><td>Per./Ret. de IVA</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Per./Ret. de IVA") data.moneda}}</td></tr>
236
+ <tr class="tributos-row"><td>Per./Ret. Ingresos Brutos</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Per./Ret. Ingresos Brutos") data.moneda}}</td></tr>
237
+ <tr class="tributos-row"><td>Impuestos Internos</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Impuestos Internos") data.moneda}}</td></tr>
238
+ <tr class="tributos-row"><td>Impuestos Municipales</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Impuestos Municipales") data.moneda}}</td></tr>
239
+ <tr class="tributos-total"><td colspan="3" style="text-align:right">Importe Otros Tributos: {{#if (neq data.moneda "PES")}}{{currencyShortName data.moneda}}{{/if}}</td><td>{{formatCurrency (default data.importeTributos 0) data.moneda}}</td></tr>
240
+ </table>
241
+ </div>
242
+ <div class="bottom-col-right">
243
+ {{#if (neq data.moneda "PES")}}
244
+ <div class="moneda-label">Moneda: {{currencyShortName data.moneda}}</div>
245
+ {{/if}}
246
+ <div class="totals-row"><span class="totals-label">Importe Neto Gravado:</span><span class="totals-value">{{formatCurrency data.importeNetoGravado data.moneda}}</span></div>
247
+ <div class="totals-row"><span class="totals-label">IVA 27%:</span><span class="totals-value">{{formatCurrency (ivaImporte data.iva "27%") data.moneda}}</span></div>
248
+ <div class="totals-row"><span class="totals-label">IVA 21%:</span><span class="totals-value">{{formatCurrency (ivaImporte data.iva "21%") data.moneda}}</span></div>
249
+ <div class="totals-row"><span class="totals-label">IVA 10.5%:</span><span class="totals-value">{{formatCurrency (ivaImporte data.iva "10.5%") data.moneda}}</span></div>
250
+ <div class="totals-row"><span class="totals-label">IVA 5%:</span><span class="totals-value">{{formatCurrency (ivaImporte data.iva "5%") data.moneda}}</span></div>
251
+ <div class="totals-row"><span class="totals-label">IVA 2.5%:</span><span class="totals-value">{{formatCurrency (ivaImporte data.iva "2.5%") data.moneda}}</span></div>
252
+ <div class="totals-row"><span class="totals-label">IVA 0%:</span><span class="totals-value">{{formatCurrency (ivaImporte data.iva "0%") data.moneda}}</span></div>
253
+ <div class="totals-row"><span class="totals-label">Importe Otros Tributos:</span><span class="totals-value">{{formatCurrency (default data.importeTributos 0) data.moneda}}</span></div>
254
+ <div class="total-box">
255
+ <span class="total-box-label">Importe Total:</span>
256
+ <span class="total-box-value">{{formatCurrency data.importeTotal data.moneda}}</span>
257
+ </div>
258
+ <div class="son-text">Son {{currencyName data.moneda}} {{numberToWords data.importeTotal}}</div>
259
+ </div>
260
+ </div>
261
+ {{else if (eq data.cbteLetra "B")}}
262
+ <div class="bottom-columns">
263
+ <div class="bottom-col-left">
264
+ <table class="tributos-table">
265
+ <tr class="tributos-header"><td colspan="4">Otros Tributos</td></tr>
266
+ <tr class="tributos-subheader"><td>Descripción</td><td>Detalle</td><td style="text-align:right">Alic. %</td><td style="text-align:right">Importe</td></tr>
267
+ <tr class="tributos-row"><td>Per./Ret. de Impuesto a las Ganancias</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Per./Ret. de Impuesto a las Ganancias") data.moneda}}</td></tr>
268
+ <tr class="tributos-row"><td>Per./Ret. de IVA</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Per./Ret. de IVA") data.moneda}}</td></tr>
269
+ <tr class="tributos-row"><td>Per./Ret. Ingresos Brutos</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Per./Ret. Ingresos Brutos") data.moneda}}</td></tr>
270
+ <tr class="tributos-row"><td>Impuestos Internos</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Impuestos Internos") data.moneda}}</td></tr>
271
+ <tr class="tributos-row"><td>Impuestos Municipales</td><td></td><td></td><td>{{formatCurrency (tributoImporte data.tributos "Impuestos Municipales") data.moneda}}</td></tr>
272
+ <tr class="tributos-total"><td colspan="3" style="text-align:right">Importe Otros Tributos: {{#if (neq data.moneda "PES")}}{{currencyShortName data.moneda}}{{/if}}</td><td>{{formatCurrency (default data.importeTributos 0) data.moneda}}</td></tr>
273
+ </table>
274
+ </div>
275
+ <div class="bottom-col-right">
276
+ <div class="totals-row"><span class="totals-label">Subtotal:</span><span class="totals-value">{{formatCurrency data.importeNetoGravado data.moneda}}</span></div>
277
+ <div class="totals-row"><span class="totals-label">Importe Otros Tributos:</span><span class="totals-value">{{formatCurrency (default data.importeTributos 0) data.moneda}}</span></div>
278
+ <div class="total-box">
279
+ <span class="total-box-label">Importe Total:</span>
280
+ <span class="total-box-value">{{formatCurrency data.importeTotal data.moneda}}</span>
281
+ </div>
282
+ <div class="son-text">Son {{currencyName data.moneda}} {{numberToWords data.importeTotal}}</div>
283
+ </div>
284
+ </div>
285
+ {{else if (eq data.cbteLetra "E")}}
286
+ {{#if data.cotizacion}}
287
+ <div class="export-footer-row">
288
+ <span class="export-footer-left"><b>Tipo de Cambio:</b> {{formatUnitPrice data.cotizacion}}</span>
289
+ <span class="export-footer-right">{{#if data.divisa}}<b>Divisa:</b> {{data.divisa}}{{/if}}</span>
290
+ </div>
291
+ {{/if}}
292
+ <div class="bottom-col-right">
293
+ <div class="total-box">
294
+ <span class="total-box-label">Importe Total: {{currencyCode data.moneda}}</span>
295
+ <span class="total-box-value">{{formatCurrency data.importeTotal data.moneda}}</span>
296
+ </div>
297
+ </div>
298
+ {{else}}
299
+ <div class="bottom-col-right">
300
+ <div class="totals-row"><span class="totals-label">Importe Neto Gravado:</span><span class="totals-value">{{formatCurrency data.importeNetoGravado data.moneda}}</span></div>
301
+ <div class="total-box">
302
+ <span class="total-box-label">Importe Total:</span>
303
+ <span class="total-box-value">{{formatCurrency data.importeTotal data.moneda}}</span>
304
+ </div>
305
+ <div class="son-text">Son {{currencyName data.moneda}} {{numberToWords data.importeTotal}}</div>
306
+ </div>
307
+ {{/if}}
308
+
309
+ {{#if (neq data.cbteLetra "E")}}
310
+ {{#if (neq data.moneda "PES")}}
311
+ {{#if data.cotizacion}}
312
+ <div class="conversion-line">El total de este comprobante expresado en moneda de curso legal - Pesos Argentinos - considerándose un tipo de cambio consignado de {{formatCotizacion data.cotizacion}} asciende a: <b>$ {{formatCurrency (default data.importeTotalPesos (multiply data.importeTotal data.cotizacion))}}</b></div>
313
+ {{/if}}
314
+ {{/if}}
315
+ {{/if}}
316
+
317
+ <div class="cae-section">
318
+ {{#if qrDataUrl}}<img src="{{qrDataUrl}}" class="qr-img">{{/if}}
319
+ <div class="arca-block">
320
+ <svg class="arca-logo" viewBox="0 0 220 80" xmlns="http://www.w3.org/2000/svg">
321
+ <text x="110" y="48" text-anchor="middle" font-family="Arial,Helvetica,sans-serif" font-size="52" font-weight="bold" fill="#3d3d3d" letter-spacing="2">ARCA</text>
322
+ <text x="110" y="64" text-anchor="middle" font-family="Arial,Helvetica,sans-serif" font-size="9.5" fill="#3d3d3d" letter-spacing="0.8">AGENCIA DE RECAUDACIÓN</text>
323
+ <text x="110" y="76" text-anchor="middle" font-family="Arial,Helvetica,sans-serif" font-size="9.5" fill="#3d3d3d" letter-spacing="0.8">Y CONTROL ADUANERO</text>
324
+ </svg>
325
+ <div class="arca-sub"><i>Comprobante Autorizado</i></div>
326
+ <div class="arca-disclaimer"><i>Esta Administración Federal no se responsabiliza por los datos ingresados en el detalle de la operación.</i></div>
327
+ </div>
328
+ </div>
329
+ <div class="cae-line">CAE N°: {{data.cae}}&nbsp;&nbsp;&nbsp;&nbsp;Fecha de Vto. de CAE: {{formatDate data.caeFechaVencimiento}}</div>
330
+ {{#if data.observaciones}}<div class="observations">Observaciones: {{data.observaciones}}</div>{{/if}}
331
+ </div>
332
+
333
+ </div>
334
+ </div>
335
+ </body>
336
+ </html>
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultTemplateSource = void 0;
4
+ exports.InvoiceDocument = InvoiceDocument;
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const engine_1 = require("../../templates/engine");
8
+ const hbsSource = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "invoice-document.hbs"), "utf-8");
9
+ const render = (0, engine_1.compileTemplate)(hbsSource);
10
+ function InvoiceDocument(props) {
11
+ return render(props);
12
+ }
13
+ exports.defaultTemplateSource = hbsSource;
14
+ //# sourceMappingURL=invoice-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice-document.js","sourceRoot":"","sources":["../../../src/templates/arca-default/invoice-document.ts"],"names":[],"mappings":";;;AAYA,0CAEC;AAdD,2BAAkC;AAClC,+BAA4B;AAE5B,kDAAwD;AAExD,MAAM,SAAS,GAAG,IAAA,iBAAY,EAC5B,IAAA,WAAI,EAAC,SAAS,EAAE,sBAAsB,CAAC,EACvC,OAAO,CACR,CAAC;AAEF,MAAM,MAAM,GAAG,IAAA,wBAAe,EAAC,SAAS,CAAC,CAAC;AAE1C,SAAgB,eAAe,CAAC,KAA2B;IACzD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAEY,QAAA,qBAAqB,GAAG,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ export { compileTemplate, ensureHelpers, Handlebars } from "./template-engine";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Handlebars = exports.ensureHelpers = exports.compileTemplate = void 0;
4
+ var template_engine_1 = require("./template-engine");
5
+ Object.defineProperty(exports, "compileTemplate", { enumerable: true, get: function () { return template_engine_1.compileTemplate; } });
6
+ Object.defineProperty(exports, "ensureHelpers", { enumerable: true, get: function () { return template_engine_1.ensureHelpers; } });
7
+ Object.defineProperty(exports, "Handlebars", { enumerable: true, get: function () { return template_engine_1.Handlebars; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/engine/index.ts"],"names":[],"mappings":";;;AAAA,qDAA+E;AAAtE,kHAAA,eAAe,OAAA;AAAE,gHAAA,aAAa,OAAA;AAAE,6GAAA,UAAU,OAAA"}
@@ -0,0 +1,5 @@
1
+ import Handlebars from "handlebars";
2
+ import type { InvoiceTemplateProps } from "../../types/invoice-data.types";
3
+ declare function ensureHelpers(): void;
4
+ export declare function compileTemplate(source: string): (props: InvoiceTemplateProps) => string;
5
+ export { Handlebars, ensureHelpers };
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Handlebars = void 0;
7
+ exports.compileTemplate = compileTemplate;
8
+ exports.ensureHelpers = ensureHelpers;
9
+ const handlebars_1 = __importDefault(require("handlebars"));
10
+ exports.Handlebars = handlebars_1.default;
11
+ const format_utils_1 = require("../../utils/format.utils");
12
+ const voucher_constants_1 = require("../../constants/voucher.constants");
13
+ const number_to_words_utils_1 = require("../../utils/number-to-words.utils");
14
+ function registerHelpers(hbs) {
15
+ hbs.registerHelper("formatDate", (date) => (0, format_utils_1.formatDate)(date));
16
+ hbs.registerHelper("formatCuit", (cuit) => (0, format_utils_1.formatCuit)(cuit));
17
+ hbs.registerHelper("formatCurrency", (amount, moneda) => (0, format_utils_1.formatCurrency)(amount, typeof moneda === "string" ? moneda : undefined));
18
+ hbs.registerHelper("formatUnitPrice", (amount) => {
19
+ const [intPart, decPart] = amount.toFixed(2).split(".");
20
+ const withDots = intPart.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
21
+ return `$ ${withDots},${decPart}`;
22
+ });
23
+ hbs.registerHelper("padStart", (value, length) => String(value).padStart(length, "0"));
24
+ hbs.registerHelper("voucherNumber", (puntoVenta, cbteDesde) => `${String(puntoVenta).padStart(5, "0")}-${String(cbteDesde).padStart(8, "0")}`);
25
+ hbs.registerHelper("descTipo", (cbteTipo, cbteDescripcion) => (typeof cbteDescripcion === "string" && cbteDescripcion) ||
26
+ voucher_constants_1.VOUCHER_TYPE_DESCRIPTION[cbteTipo] ||
27
+ "COMPROBANTE");
28
+ hbs.registerHelper("voucherTypeDescription", (tipo) => voucher_constants_1.VOUCHER_TYPE_DESCRIPTION[tipo] || "Cbte");
29
+ hbs.registerHelper("currencyName", (moneda) => (moneda && voucher_constants_1.CURRENCY_NAME[moneda]) || "PESOS ARGENTINOS (ARS)");
30
+ hbs.registerHelper("currencyShortName", (moneda) => {
31
+ const full = (moneda && voucher_constants_1.CURRENCY_NAME[moneda]) || "PESOS ARGENTINOS (ARS)";
32
+ return full.split(" (")[0];
33
+ });
34
+ hbs.registerHelper("currencyCode", (moneda) => (moneda && voucher_constants_1.CURRENCY_CODE[moneda]) || "ARS");
35
+ hbs.registerHelper("numberToWords", (n) => (0, number_to_words_utils_1.numberToWords)(n));
36
+ hbs.registerHelper("formatCotizacion", (cotizacion) => (cotizacion || 1).toFixed(3).replace(".", ","));
37
+ hbs.registerHelper("docNumber", (documentoNro) => documentoNro.length === 11 ? (0, format_utils_1.formatCuit)(documentoNro) : documentoNro);
38
+ hbs.registerHelper("bonAmount", function (precioUnitario, cantidad, bonificacion, importeBonificacion) {
39
+ // When called with 3 args from template, Handlebars passes options as 4th
40
+ if (typeof importeBonificacion === "object")
41
+ importeBonificacion = undefined;
42
+ if (importeBonificacion != null)
43
+ return importeBonificacion;
44
+ const pct = bonificacion !== null && bonificacion !== void 0 ? bonificacion : 0;
45
+ return precioUnitario * cantidad * (pct / 100);
46
+ });
47
+ hbs.registerHelper("ivaImporte", (ivaArray, descripcion) => {
48
+ if (!ivaArray || !Array.isArray(ivaArray))
49
+ return 0;
50
+ const found = ivaArray.find((i) => i.descripcion === descripcion);
51
+ return found ? found.importe : 0;
52
+ });
53
+ hbs.registerHelper("tributoImporte", (tributosArray, descripcion) => {
54
+ if (!tributosArray || !Array.isArray(tributosArray))
55
+ return 0;
56
+ const found = tributosArray.find((t) => t.descripcion === descripcion);
57
+ return found ? found.importe : 0;
58
+ });
59
+ hbs.registerHelper("multiply", (a, b) => a * b);
60
+ hbs.registerHelper("eq", (a, b) => a === b);
61
+ hbs.registerHelper("neq", (a, b) => a !== b);
62
+ hbs.registerHelper("gt", (a, b) => a > b);
63
+ hbs.registerHelper("gte", (a, b) => a >= b);
64
+ hbs.registerHelper("or", (...args) => {
65
+ const options = args.pop();
66
+ return args.some(Boolean)
67
+ ? options.fn(options.data.root)
68
+ : options.inverse(options.data.root);
69
+ });
70
+ hbs.registerHelper("and", (a, b) => a && b);
71
+ hbs.registerHelper("not", (a) => !a);
72
+ hbs.registerHelper("default", (a, b) => a || b);
73
+ hbs.registerHelper("isNull", (a) => a == null);
74
+ hbs.registerHelper("len", (a) => (a ? a.length : 0));
75
+ }
76
+ let initialized = false;
77
+ function ensureHelpers() {
78
+ if (initialized)
79
+ return;
80
+ registerHelpers(handlebars_1.default);
81
+ initialized = true;
82
+ }
83
+ function compileTemplate(source) {
84
+ ensureHelpers();
85
+ const compiled = handlebars_1.default.compile(source, { noEscape: true });
86
+ return (props) => compiled(props);
87
+ }
88
+ //# sourceMappingURL=template-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/templates/engine/template-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { InvoiceDocument } from "./arca-default";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvoiceDocument = void 0;
4
+ var arca_default_1 = require("./arca-default");
5
+ Object.defineProperty(exports, "InvoiceDocument", { enumerable: true, get: function () { return arca_default_1.InvoiceDocument; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";;;AAAA,+CAAiD;AAAxC,+GAAA,eAAe,OAAA"}
@@ -0,0 +1 @@
1
+ export * from "./invoice-data.types";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./invoice-data.types"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC"}