@devlas/dte-sii 2.9.7 → 2.11.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.
@@ -1,460 +1,460 @@
1
1
  // Copyright (c) 2026 Devlas SpA — https://devlas.cl
2
2
  // Licencia MIT. Ver archivo LICENSE para mas detalles.
3
- /**
4
- * comunaOficina.js
5
- *
6
- * Mapa de comuna → oficina SII para el campo siiOficina de muestras impresas.
7
- * Generado consultando https://www.sii.cl/ayudas/asistencia/oficinas/
8
- *
9
- * Formato: 'S.I.I. - NOMBRE_CORTO' (igual al default histórico 'S.I.I. - SANTIAGO CENTRO')
10
- */
11
-
12
- 'use strict';
13
-
14
- /** @type {Record<string, string>} */
15
- const COMUNA_OFICINA_SII = {
16
- // ── REGIÓN 1: Arica y Parinacota ─────────────────────────────────────────
17
- 'arica': 'S.I.I. - ARICA',
18
- 'camarones': 'S.I.I. - ARICA',
19
- 'putre': 'S.I.I. - ARICA',
20
- 'general lagos': 'S.I.I. - ARICA',
21
-
22
- // ── REGIÓN 2: Tarapacá ───────────────────────────────────────────────────
23
- 'iquique': 'S.I.I. - IQUIQUE',
24
- 'alto hospicio': 'S.I.I. - IQUIQUE',
25
- 'pica': 'S.I.I. - IQUIQUE',
26
- 'pozo almonte': 'S.I.I. - IQUIQUE',
27
- 'huara': 'S.I.I. - IQUIQUE',
28
- 'camiña': 'S.I.I. - IQUIQUE',
29
- 'camina': 'S.I.I. - IQUIQUE',
30
- 'colchane': 'S.I.I. - IQUIQUE',
31
-
32
- // ── REGIÓN 3: Antofagasta ────────────────────────────────────────────────
33
- 'antofagasta': 'S.I.I. - ANTOFAGASTA',
34
- 'mejillones': 'S.I.I. - ANTOFAGASTA',
35
- 'sierra gorda': 'S.I.I. - ANTOFAGASTA',
36
- 'taltal': 'S.I.I. - ANTOFAGASTA',
37
- 'tocopilla': 'S.I.I. - ANTOFAGASTA',
38
- 'maria elena': 'S.I.I. - ANTOFAGASTA',
39
- // Unidad Calama
40
- 'calama': 'S.I.I. - CALAMA',
41
- 'san pedro de atacama': 'S.I.I. - CALAMA',
42
- 'ollague': 'S.I.I. - CALAMA',
43
- 'ollagüe': 'S.I.I. - CALAMA',
44
-
45
- // ── REGIÓN 4: Atacama ────────────────────────────────────────────────────
46
- 'copiapó': 'S.I.I. - COPIAPÓ',
47
- 'copiapo': 'S.I.I. - COPIAPÓ',
48
- 'caldera': 'S.I.I. - COPIAPÓ',
49
- 'tierra amarilla': 'S.I.I. - COPIAPÓ',
50
- 'chañaral': 'S.I.I. - COPIAPÓ',
51
- 'chanaral': 'S.I.I. - COPIAPÓ',
52
- 'diego de almagro': 'S.I.I. - COPIAPÓ',
53
- // Unidad Vallenar
54
- 'vallenar': 'S.I.I. - VALLENAR',
55
- 'freirina': 'S.I.I. - VALLENAR',
56
- 'huasco': 'S.I.I. - VALLENAR',
57
- 'alto del carmen': 'S.I.I. - VALLENAR',
58
-
59
- // ── REGIÓN 5: Coquimbo ───────────────────────────────────────────────────
60
- 'la serena': 'S.I.I. - LA SERENA',
61
- 'la higuera': 'S.I.I. - LA SERENA',
62
- 'paihuano': 'S.I.I. - LA SERENA',
63
- 'andacollo': 'S.I.I. - LA SERENA',
64
- 'vicuña': 'S.I.I. - LA SERENA',
65
- 'vicuna': 'S.I.I. - LA SERENA',
66
- // Unidad Coquimbo
67
- 'coquimbo': 'S.I.I. - COQUIMBO',
68
- // (Ovalle, Illapel, etc. comparten D. Regional La Serena o tienen unidades propias)
69
- 'ovalle': 'S.I.I. - LA SERENA',
70
- 'illapel': 'S.I.I. - LA SERENA',
71
- 'salamanca': 'S.I.I. - LA SERENA',
72
-
73
- // ── REGIÓN 6: Valparaíso ─────────────────────────────────────────────────
74
- 'valparaíso': 'S.I.I. - VALPARAÍSO',
75
- 'valparaiso': 'S.I.I. - VALPARAÍSO',
76
- 'casablanca': 'S.I.I. - VALPARAÍSO',
77
- 'juan fernández': 'S.I.I. - VALPARAÍSO',
78
- 'juan fernandez': 'S.I.I. - VALPARAÍSO',
79
- 'isla de pascua': 'S.I.I. - VALPARAÍSO',
80
- // Unidad Viña del Mar
81
- 'viña del mar': 'S.I.I. - VIÑA DEL MAR',
82
- 'vina del mar': 'S.I.I. - VIÑA DEL MAR',
83
- 'concón': 'S.I.I. - VIÑA DEL MAR',
84
- 'concon': 'S.I.I. - VIÑA DEL MAR',
85
- 'quintero': 'S.I.I. - VIÑA DEL MAR',
86
- 'puchuncaví': 'S.I.I. - VIÑA DEL MAR',
87
- 'puchuncavi': 'S.I.I. - VIÑA DEL MAR',
88
- // Unidad San Antonio
89
- 'san antonio': 'S.I.I. - SAN ANTONIO',
90
- 'santo domingo': 'S.I.I. - SAN ANTONIO',
91
- 'navidad': 'S.I.I. - SAN ANTONIO',
92
- 'cartagena': 'S.I.I. - SAN ANTONIO',
93
- 'el tabo': 'S.I.I. - SAN ANTONIO',
94
- 'el quisco': 'S.I.I. - SAN ANTONIO',
95
- 'algarrobo': 'S.I.I. - SAN ANTONIO',
96
- // Unidad Los Andes
97
- 'los andes': 'S.I.I. - LOS ANDES',
98
- 'calle larga': 'S.I.I. - LOS ANDES',
99
- 'san esteban': 'S.I.I. - LOS ANDES',
100
- 'rinconada': 'S.I.I. - LOS ANDES',
101
- // Unidad San Felipe
102
- 'san felipe': 'S.I.I. - SAN FELIPE',
103
- 'panquehue': 'S.I.I. - SAN FELIPE',
104
- 'catemu': 'S.I.I. - SAN FELIPE',
105
- 'putaendo': 'S.I.I. - SAN FELIPE',
106
- 'llay llay': 'S.I.I. - SAN FELIPE',
107
- // Unidad Villa Alemana (Quilpué + Villa Alemana)
108
- 'villa alemana': 'S.I.I. - VILLA ALEMANA',
109
- 'quilpué': 'S.I.I. - VILLA ALEMANA',
110
- 'quilpue': 'S.I.I. - VILLA ALEMANA',
111
- // Unidad Quillota
112
- 'quillota': 'S.I.I. - VALPARAÍSO',
113
- 'la calera': 'S.I.I. - VALPARAÍSO',
114
- 'la cruz': 'S.I.I. - VALPARAÍSO',
115
- 'nogales': 'S.I.I. - VALPARAÍSO',
116
- 'hijuelas': 'S.I.I. - VALPARAÍSO',
117
- 'olmué': 'S.I.I. - VALPARAÍSO',
118
- 'olmue': 'S.I.I. - VALPARAÍSO',
119
- 'limache': 'S.I.I. - VALPARAÍSO',
120
- 'la ligua': 'S.I.I. - VALPARAÍSO',
121
- 'petorca': 'S.I.I. - VALPARAÍSO',
122
- 'cabildo': 'S.I.I. - VALPARAÍSO',
123
- 'papudo': 'S.I.I. - VALPARAÍSO',
124
- 'zapallar': 'S.I.I. - VALPARAÍSO',
125
-
126
- // ── REGIÓN 7: Metropolitana ──────────────────────────────────────────────
127
- // D.R. Santiago Centro
128
- 'santiago': 'S.I.I. - SANTIAGO CENTRO',
129
- // D.R. Santiago Oriente
130
- 'las condes': 'S.I.I. - SANTIAGO ORIENTE',
131
- 'lo barnechea': 'S.I.I. - SANTIAGO ORIENTE',
132
- 'vitacura': 'S.I.I. - SANTIAGO ORIENTE',
133
- // D.R. Santiago Norte
134
- 'independencia': 'S.I.I. - SANTIAGO NORTE',
135
- 'recoleta': 'S.I.I. - SANTIAGO NORTE',
136
- 'huechuraba': 'S.I.I. - SANTIAGO NORTE',
137
- 'conchalí': 'S.I.I. - SANTIAGO NORTE',
138
- 'conchali': 'S.I.I. - SANTIAGO NORTE',
139
- 'quilicura': 'S.I.I. - SANTIAGO NORTE',
140
- 'colina': 'S.I.I. - SANTIAGO NORTE',
141
- 'lampa': 'S.I.I. - SANTIAGO NORTE',
142
- 'til-til': 'S.I.I. - SANTIAGO NORTE',
143
- 'tiltil': 'S.I.I. - SANTIAGO NORTE',
144
- // D.R. Santiago Poniente
145
- 'cerro navia': 'S.I.I. - SANTIAGO PONIENTE',
146
- 'curacaví': 'S.I.I. - SANTIAGO PONIENTE',
147
- 'curacavi': 'S.I.I. - SANTIAGO PONIENTE',
148
- 'estación central': 'S.I.I. - SANTIAGO PONIENTE',
149
- 'estacion central': 'S.I.I. - SANTIAGO PONIENTE',
150
- 'lo prado': 'S.I.I. - SANTIAGO PONIENTE',
151
- 'pudahuel': 'S.I.I. - SANTIAGO PONIENTE',
152
- 'quinta normal': 'S.I.I. - SANTIAGO PONIENTE',
153
- 'renca': 'S.I.I. - SANTIAGO PONIENTE',
154
- // D.R. Santiago Sur
155
- 'san miguel': 'S.I.I. - SANTIAGO SUR',
156
- 'la cisterna': 'S.I.I. - SANTIAGO SUR',
157
- 'san joaquín': 'S.I.I. - SANTIAGO SUR',
158
- 'san joaquin': 'S.I.I. - SANTIAGO SUR',
159
- 'pedro aguirre cerda': 'S.I.I. - SANTIAGO SUR',
160
- 'lo espejo': 'S.I.I. - SANTIAGO SUR',
161
- 'la granja': 'S.I.I. - SANTIAGO SUR',
162
- 'la pintana': 'S.I.I. - SANTIAGO SUR',
163
- 'san ramón': 'S.I.I. - SANTIAGO SUR',
164
- 'san ramon': 'S.I.I. - SANTIAGO SUR',
165
- // Unidad Ñuñoa
166
- 'ñuñoa': 'S.I.I. - ÑUÑOA',
167
- 'nunoa': 'S.I.I. - ÑUÑOA',
168
- 'la reina': 'S.I.I. - ÑUÑOA',
169
- 'macul': 'S.I.I. - ÑUÑOA',
170
- 'peñalolén': 'S.I.I. - ÑUÑOA',
171
- 'penalolen': 'S.I.I. - ÑUÑOA',
172
- // Unidad Maipú
173
- 'maipú': 'S.I.I. - MAIPÚ',
174
- 'maipu': 'S.I.I. - MAIPÚ',
175
- 'cerrillos': 'S.I.I. - MAIPÚ',
176
- 'el monte': 'S.I.I. - MAIPÚ',
177
- 'isla de maipo': 'S.I.I. - MAIPÚ',
178
- 'padre hurtado': 'S.I.I. - MAIPÚ',
179
- 'peñaflor': 'S.I.I. - MAIPÚ',
180
- 'penaflor': 'S.I.I. - MAIPÚ',
181
- 'talagante': 'S.I.I. - MAIPÚ',
182
- // Unidad La Florida
183
- 'la florida': 'S.I.I. - LA FLORIDA',
184
- 'puente alto': 'S.I.I. - LA FLORIDA',
185
- 'pirque': 'S.I.I. - LA FLORIDA',
186
- 'san josé de maipo': 'S.I.I. - LA FLORIDA',
187
- 'san jose de maipo': 'S.I.I. - LA FLORIDA',
188
- // Unidad Providencia
189
- 'providencia': 'S.I.I. - PROVIDENCIA',
190
- // Unidad San Bernardo
191
- 'san bernardo': 'S.I.I. - SAN BERNARDO',
192
- 'calera de tango': 'S.I.I. - SAN BERNARDO',
193
- 'el bosque': 'S.I.I. - SAN BERNARDO',
194
- // Unidad Buin
195
- 'buin': 'S.I.I. - BUIN',
196
- 'paine': 'S.I.I. - BUIN',
197
- // Melipilla (comparte D.R. Santiago Poniente en algunos esquemas)
198
- 'melipilla': 'S.I.I. - SANTIAGO PONIENTE',
199
- 'alhué': 'S.I.I. - SANTIAGO PONIENTE',
200
- 'alhue': 'S.I.I. - SANTIAGO PONIENTE',
201
- 'san pedro': 'S.I.I. - SANTIAGO PONIENTE',
202
-
203
- // ── REGIÓN 8: O'Higgins ──────────────────────────────────────────────────
204
- 'rancagua': 'S.I.I. - RANCAGUA',
205
- 'machalí': 'S.I.I. - RANCAGUA',
206
- 'machali': 'S.I.I. - RANCAGUA',
207
- 'graneros': 'S.I.I. - RANCAGUA',
208
- 'san francisco de mostazal': 'S.I.I. - RANCAGUA',
209
- 'doñihue': 'S.I.I. - RANCAGUA',
210
- 'donihue': 'S.I.I. - RANCAGUA',
211
- 'codegua': 'S.I.I. - RANCAGUA',
212
- 'rengo': 'S.I.I. - RANCAGUA',
213
- 'coltauco': 'S.I.I. - RANCAGUA',
214
- 'requinoa': 'S.I.I. - RANCAGUA',
215
- 'olivar': 'S.I.I. - RANCAGUA',
216
- 'malloa': 'S.I.I. - RANCAGUA',
217
- 'quinta de tilcoco': 'S.I.I. - RANCAGUA',
218
- 'coinco': 'S.I.I. - RANCAGUA',
219
- // Resto de O'Higgins → Rancagua como capital de región
220
- 'san fernando': 'S.I.I. - RANCAGUA',
221
- 'santa cruz': 'S.I.I. - RANCAGUA',
222
- 'pichilemu': 'S.I.I. - RANCAGUA',
223
-
224
- // ── REGIÓN 9: Maule ──────────────────────────────────────────────────────
225
- 'talca': 'S.I.I. - TALCA',
226
- 'san clemente': 'S.I.I. - TALCA',
227
- 'pelarco': 'S.I.I. - TALCA',
228
- 'río claro': 'S.I.I. - TALCA',
229
- 'rio claro': 'S.I.I. - TALCA',
230
- 'pencahue': 'S.I.I. - TALCA',
231
- 'maule': 'S.I.I. - TALCA',
232
- 'curepto': 'S.I.I. - TALCA',
233
- 'san javier': 'S.I.I. - TALCA',
234
- 'san rafael': 'S.I.I. - TALCA',
235
- 'constitución': 'S.I.I. - TALCA',
236
- 'constitucion': 'S.I.I. - TALCA',
237
- 'empedrado': 'S.I.I. - TALCA',
238
- // Unidad Curicó
239
- 'curicó': 'S.I.I. - CURICÓ',
240
- 'curico': 'S.I.I. - CURICÓ',
241
- 'teno': 'S.I.I. - CURICÓ',
242
- 'romeral': 'S.I.I. - CURICÓ',
243
- 'molina': 'S.I.I. - CURICÓ',
244
- 'hualañe': 'S.I.I. - CURICÓ',
245
- 'hualane': 'S.I.I. - CURICÓ',
246
- 'sagrada familia': 'S.I.I. - CURICÓ',
247
- 'licantén': 'S.I.I. - CURICÓ',
248
- 'licanten': 'S.I.I. - CURICÓ',
249
- 'vichuquén': 'S.I.I. - CURICÓ',
250
- 'vichuquen': 'S.I.I. - CURICÓ',
251
- 'rauco': 'S.I.I. - CURICÓ',
252
- // Linares → Talca
253
- 'linares': 'S.I.I. - TALCA',
254
- 'longaví': 'S.I.I. - TALCA',
255
- 'longavi': 'S.I.I. - TALCA',
256
- 'parral': 'S.I.I. - TALCA',
257
- 'cauquenes': 'S.I.I. - TALCA',
258
-
259
- // ── REGIÓN 10: Bío Bío ───────────────────────────────────────────────────
260
- 'concepción': 'S.I.I. - CONCEPCIÓN',
261
- 'concepcion': 'S.I.I. - CONCEPCIÓN',
262
- 'chiguayante': 'S.I.I. - CONCEPCIÓN',
263
- 'san pedro de la paz': 'S.I.I. - CONCEPCIÓN',
264
- 'penco': 'S.I.I. - CONCEPCIÓN',
265
- 'hualqui': 'S.I.I. - CONCEPCIÓN',
266
- 'florida': 'S.I.I. - CONCEPCIÓN',
267
- 'tomé': 'S.I.I. - CONCEPCIÓN',
268
- 'tome': 'S.I.I. - CONCEPCIÓN',
269
- 'coronel': 'S.I.I. - CONCEPCIÓN',
270
- 'lota': 'S.I.I. - CONCEPCIÓN',
271
- 'santa juana': 'S.I.I. - CONCEPCIÓN',
272
- 'arauco': 'S.I.I. - CONCEPCIÓN',
273
- 'lebu': 'S.I.I. - CONCEPCIÓN',
274
- 'cañete': 'S.I.I. - CONCEPCIÓN',
275
- 'canete': 'S.I.I. - CONCEPCIÓN',
276
- 'tirúa': 'S.I.I. - CONCEPCIÓN',
277
- 'tirua': 'S.I.I. - CONCEPCIÓN',
278
- 'curanilahue': 'S.I.I. - CONCEPCIÓN',
279
- 'los álamos': 'S.I.I. - CONCEPCIÓN',
280
- 'los alamos': 'S.I.I. - CONCEPCIÓN',
281
- // Unidad Los Ángeles
282
- 'los ángeles': 'S.I.I. - LOS ÁNGELES',
283
- 'los angeles': 'S.I.I. - LOS ÁNGELES',
284
- 'santa bárbara': 'S.I.I. - LOS ÁNGELES',
285
- 'santa barbara': 'S.I.I. - LOS ÁNGELES',
286
- 'laja': 'S.I.I. - LOS ÁNGELES',
287
- 'quilleco': 'S.I.I. - LOS ÁNGELES',
288
- 'nacimiento': 'S.I.I. - LOS ÁNGELES',
289
- 'negrete': 'S.I.I. - LOS ÁNGELES',
290
- 'mulchén': 'S.I.I. - LOS ÁNGELES',
291
- 'mulchen': 'S.I.I. - LOS ÁNGELES',
292
- 'quilaco': 'S.I.I. - LOS ÁNGELES',
293
- 'yumbel': 'S.I.I. - LOS ÁNGELES',
294
- 'cabrero': 'S.I.I. - LOS ÁNGELES',
295
- 'san rosendo': 'S.I.I. - LOS ÁNGELES',
296
- 'tucapel': 'S.I.I. - LOS ÁNGELES',
297
- 'antuco': 'S.I.I. - LOS ÁNGELES',
298
- 'alto bío-bío': 'S.I.I. - LOS ÁNGELES',
299
- 'alto biobio': 'S.I.I. - LOS ÁNGELES',
300
-
301
- // ── REGIÓN 11: Araucanía ─────────────────────────────────────────────────
302
- 'temuco': 'S.I.I. - TEMUCO',
303
- 'vilcún': 'S.I.I. - TEMUCO',
304
- 'vilcun': 'S.I.I. - TEMUCO',
305
- 'freire': 'S.I.I. - TEMUCO',
306
- 'cunco': 'S.I.I. - TEMUCO',
307
- 'lautaro': 'S.I.I. - TEMUCO',
308
- 'perquenco': 'S.I.I. - TEMUCO',
309
- 'galvarino': 'S.I.I. - TEMUCO',
310
- 'nueva imperial': 'S.I.I. - TEMUCO',
311
- 'carahue': 'S.I.I. - TEMUCO',
312
- 'puerto saavedra': 'S.I.I. - TEMUCO',
313
- 'pitrufquén': 'S.I.I. - TEMUCO',
314
- 'pitrufquen': 'S.I.I. - TEMUCO',
315
- 'gorbea': 'S.I.I. - TEMUCO',
316
- 'toltén': 'S.I.I. - TEMUCO',
317
- 'tolten': 'S.I.I. - TEMUCO',
318
- 'loncoche': 'S.I.I. - TEMUCO',
319
- 'melipeuco': 'S.I.I. - TEMUCO',
320
- 'teodoro schmidt': 'S.I.I. - TEMUCO',
321
- 'padre las casas': 'S.I.I. - TEMUCO',
322
- 'cholchol': 'S.I.I. - TEMUCO',
323
- 'angol': 'S.I.I. - TEMUCO',
324
- 'victoria': 'S.I.I. - TEMUCO',
325
- 'traiguén': 'S.I.I. - TEMUCO',
326
- 'traiguen': 'S.I.I. - TEMUCO',
327
- 'los sauces': 'S.I.I. - TEMUCO',
328
- 'lumaco': 'S.I.I. - TEMUCO',
329
- 'purén': 'S.I.I. - TEMUCO',
330
- 'puren': 'S.I.I. - TEMUCO',
331
- 'collipulli': 'S.I.I. - TEMUCO',
332
- 'ercilla': 'S.I.I. - TEMUCO',
333
- 'curacautín': 'S.I.I. - TEMUCO',
334
- 'curacautin': 'S.I.I. - TEMUCO',
335
- 'lonquimay': 'S.I.I. - TEMUCO',
336
- 'villarrica': 'S.I.I. - TEMUCO',
337
- 'pucón': 'S.I.I. - TEMUCO',
338
- 'pucon': 'S.I.I. - TEMUCO',
339
- 'curarrehue': 'S.I.I. - TEMUCO',
340
-
341
- // ── REGIÓN 12: Los Ríos ──────────────────────────────────────────────────
342
- 'valdivia': 'S.I.I. - VALDIVIA',
343
- 'máfil': 'S.I.I. - VALDIVIA',
344
- 'mafil': 'S.I.I. - VALDIVIA',
345
- 'corral': 'S.I.I. - VALDIVIA',
346
- 'los lagos': 'S.I.I. - VALDIVIA',
347
- 'paillaco': 'S.I.I. - VALDIVIA',
348
- 'futrono': 'S.I.I. - VALDIVIA',
349
- 'río bueno': 'S.I.I. - VALDIVIA',
350
- 'rio bueno': 'S.I.I. - VALDIVIA',
351
- 'la unión': 'S.I.I. - VALDIVIA',
352
- 'la union': 'S.I.I. - VALDIVIA',
353
- 'lago ranco': 'S.I.I. - VALDIVIA',
354
- 'mariquina': 'S.I.I. - VALDIVIA',
355
- 'lanco': 'S.I.I. - VALDIVIA',
356
-
357
- // ── REGIÓN 13: Los Lagos ─────────────────────────────────────────────────
358
- 'puerto montt': 'S.I.I. - PUERTO MONTT',
359
- 'calbuco': 'S.I.I. - PUERTO MONTT',
360
- 'maullín': 'S.I.I. - PUERTO MONTT',
361
- 'maullin': 'S.I.I. - PUERTO MONTT',
362
- 'los muermos': 'S.I.I. - PUERTO MONTT',
363
- 'hualaihué': 'S.I.I. - PUERTO MONTT',
364
- 'hualaihue': 'S.I.I. - PUERTO MONTT',
365
- 'cochamó': 'S.I.I. - PUERTO MONTT',
366
- 'cochamo': 'S.I.I. - PUERTO MONTT',
367
- 'puerto varas': 'S.I.I. - PUERTO MONTT',
368
- 'llanquihue': 'S.I.I. - PUERTO MONTT',
369
- 'fresia': 'S.I.I. - PUERTO MONTT',
370
- 'frutillar': 'S.I.I. - PUERTO MONTT',
371
- 'los llanos': 'S.I.I. - PUERTO MONTT',
372
- // Unidad Osorno
373
- 'osorno': 'S.I.I. - OSORNO',
374
- 'puyehue': 'S.I.I. - OSORNO',
375
- 'purranque': 'S.I.I. - OSORNO',
376
- 'río negro': 'S.I.I. - OSORNO',
377
- 'rio negro': 'S.I.I. - OSORNO',
378
- 'san pablo': 'S.I.I. - OSORNO',
379
- 'san juan de la costa': 'S.I.I. - OSORNO',
380
- 'puerto octay': 'S.I.I. - OSORNO',
381
- // Ancud/Castro → Puerto Montt
382
- 'ancud': 'S.I.I. - PUERTO MONTT',
383
- 'castro': 'S.I.I. - PUERTO MONTT',
384
- 'chonchi': 'S.I.I. - PUERTO MONTT',
385
- 'quellón': 'S.I.I. - PUERTO MONTT',
386
- 'quellon': 'S.I.I. - PUERTO MONTT',
387
- 'dalcahue': 'S.I.I. - PUERTO MONTT',
388
-
389
- // ── REGIÓN 14: Aysén ─────────────────────────────────────────────────────
390
- 'coyhaique': 'S.I.I. - COYHAIQUE',
391
- 'río ibáñez': 'S.I.I. - COYHAIQUE',
392
- 'rio ibanez': 'S.I.I. - COYHAIQUE',
393
- 'tortel': 'S.I.I. - COYHAIQUE',
394
- 'cochrane': 'S.I.I. - COYHAIQUE',
395
- 'chile chico': 'S.I.I. - COYHAIQUE',
396
- 'aysén': 'S.I.I. - COYHAIQUE',
397
- 'aysen': 'S.I.I. - COYHAIQUE',
398
- 'cisnes': 'S.I.I. - COYHAIQUE',
399
- 'lago verde': 'S.I.I. - COYHAIQUE',
400
- 'guaitecas': 'S.I.I. - COYHAIQUE',
401
-
402
- // ── REGIÓN 15: Magallanes ────────────────────────────────────────────────
403
- 'punta arenas': 'S.I.I. - PUNTA ARENAS',
404
- 'río verde': 'S.I.I. - PUNTA ARENAS',
405
- 'rio verde': 'S.I.I. - PUNTA ARENAS',
406
- 'san gregorio': 'S.I.I. - PUNTA ARENAS',
407
- 'laguna blanca': 'S.I.I. - PUNTA ARENAS',
408
- 'cabo de hornos': 'S.I.I. - PUNTA ARENAS',
409
- 'puerto natales': 'S.I.I. - PUNTA ARENAS',
410
- 'natales': 'S.I.I. - PUNTA ARENAS',
411
- 'torres del paine': 'S.I.I. - PUNTA ARENAS',
412
- 'porvenir': 'S.I.I. - PUNTA ARENAS',
413
- 'primavera': 'S.I.I. - PUNTA ARENAS',
414
- 'timaukel': 'S.I.I. - PUNTA ARENAS',
415
- 'puerto williams': 'S.I.I. - PUNTA ARENAS',
416
-
417
- // ── REGIÓN 16: Ñuble ─────────────────────────────────────────────────────
418
- 'chillán': 'S.I.I. - CHILLÁN',
419
- 'chillan': 'S.I.I. - CHILLÁN',
420
- 'chillán viejo': 'S.I.I. - CHILLÁN',
421
- 'chillan viejo': 'S.I.I. - CHILLÁN',
422
- 'coihueco': 'S.I.I. - CHILLÁN',
423
- 'pinto': 'S.I.I. - CHILLÁN',
424
- 'el carmen': 'S.I.I. - CHILLÁN',
425
- 'san ignacio': 'S.I.I. - CHILLÁN',
426
- 'pemuco': 'S.I.I. - CHILLÁN',
427
- 'yungay': 'S.I.I. - CHILLÁN',
428
- 'bulnes': 'S.I.I. - CHILLÁN',
429
- 'quillón': 'S.I.I. - CHILLÁN',
430
- 'quillon': 'S.I.I. - CHILLÁN',
431
- 'ranquil': 'S.I.I. - CHILLÁN',
432
- 'portezuelo': 'S.I.I. - CHILLÁN',
433
- 'coelemu': 'S.I.I. - CHILLÁN',
434
- 'trehuaco': 'S.I.I. - CHILLÁN',
435
- 'quirihue': 'S.I.I. - CHILLÁN',
436
- 'cobquecura': 'S.I.I. - CHILLÁN',
437
- 'ninhue': 'S.I.I. - CHILLÁN',
438
- 'san carlos': 'S.I.I. - CHILLÁN',
439
- 'ñiquén': 'S.I.I. - CHILLÁN',
440
- 'niquen': 'S.I.I. - CHILLÁN',
441
- 'san fabián': 'S.I.I. - CHILLÁN',
442
- 'san fabian': 'S.I.I. - CHILLÁN',
443
- 'san nicolás': 'S.I.I. - CHILLÁN',
444
- 'san nicolas': 'S.I.I. - CHILLÁN',
445
- };
446
-
447
- /**
448
- * Devuelve el nombre de la oficina SII para imprimir en la muestra impresa.
449
- * Formato: 'S.I.I. - NOMBRE_OFICINA'
450
- *
451
- * @param {string} comuna - Nombre de la comuna (se normaliza automáticamente)
452
- * @returns {string} Nombre de oficina, o null si no se encuentra
453
- */
454
- function getOficinaForComuna(comuna) {
455
- if (!comuna || typeof comuna !== 'string') return null;
456
- const key = comuna.trim().toLowerCase();
457
- return COMUNA_OFICINA_SII[key] || null;
458
- }
459
-
460
- module.exports = { COMUNA_OFICINA_SII, getOficinaForComuna };
3
+ /**
4
+ * comunaOficina.js
5
+ *
6
+ * Mapa de comuna → oficina SII para el campo siiOficina de muestras impresas.
7
+ * Generado consultando https://www.sii.cl/ayudas/asistencia/oficinas/
8
+ *
9
+ * Formato: 'S.I.I. - NOMBRE_CORTO' (igual al default histórico 'S.I.I. - SANTIAGO CENTRO')
10
+ */
11
+
12
+ 'use strict';
13
+
14
+ /** @type {Record<string, string>} */
15
+ const COMUNA_OFICINA_SII = {
16
+ // ── REGIÓN 1: Arica y Parinacota ─────────────────────────────────────────
17
+ 'arica': 'S.I.I. - ARICA',
18
+ 'camarones': 'S.I.I. - ARICA',
19
+ 'putre': 'S.I.I. - ARICA',
20
+ 'general lagos': 'S.I.I. - ARICA',
21
+
22
+ // ── REGIÓN 2: Tarapacá ───────────────────────────────────────────────────
23
+ 'iquique': 'S.I.I. - IQUIQUE',
24
+ 'alto hospicio': 'S.I.I. - IQUIQUE',
25
+ 'pica': 'S.I.I. - IQUIQUE',
26
+ 'pozo almonte': 'S.I.I. - IQUIQUE',
27
+ 'huara': 'S.I.I. - IQUIQUE',
28
+ 'camiña': 'S.I.I. - IQUIQUE',
29
+ 'camina': 'S.I.I. - IQUIQUE',
30
+ 'colchane': 'S.I.I. - IQUIQUE',
31
+
32
+ // ── REGIÓN 3: Antofagasta ────────────────────────────────────────────────
33
+ 'antofagasta': 'S.I.I. - ANTOFAGASTA',
34
+ 'mejillones': 'S.I.I. - ANTOFAGASTA',
35
+ 'sierra gorda': 'S.I.I. - ANTOFAGASTA',
36
+ 'taltal': 'S.I.I. - ANTOFAGASTA',
37
+ 'tocopilla': 'S.I.I. - ANTOFAGASTA',
38
+ 'maria elena': 'S.I.I. - ANTOFAGASTA',
39
+ // Unidad Calama
40
+ 'calama': 'S.I.I. - CALAMA',
41
+ 'san pedro de atacama': 'S.I.I. - CALAMA',
42
+ 'ollague': 'S.I.I. - CALAMA',
43
+ 'ollagüe': 'S.I.I. - CALAMA',
44
+
45
+ // ── REGIÓN 4: Atacama ────────────────────────────────────────────────────
46
+ 'copiapó': 'S.I.I. - COPIAPÓ',
47
+ 'copiapo': 'S.I.I. - COPIAPÓ',
48
+ 'caldera': 'S.I.I. - COPIAPÓ',
49
+ 'tierra amarilla': 'S.I.I. - COPIAPÓ',
50
+ 'chañaral': 'S.I.I. - COPIAPÓ',
51
+ 'chanaral': 'S.I.I. - COPIAPÓ',
52
+ 'diego de almagro': 'S.I.I. - COPIAPÓ',
53
+ // Unidad Vallenar
54
+ 'vallenar': 'S.I.I. - VALLENAR',
55
+ 'freirina': 'S.I.I. - VALLENAR',
56
+ 'huasco': 'S.I.I. - VALLENAR',
57
+ 'alto del carmen': 'S.I.I. - VALLENAR',
58
+
59
+ // ── REGIÓN 5: Coquimbo ───────────────────────────────────────────────────
60
+ 'la serena': 'S.I.I. - LA SERENA',
61
+ 'la higuera': 'S.I.I. - LA SERENA',
62
+ 'paihuano': 'S.I.I. - LA SERENA',
63
+ 'andacollo': 'S.I.I. - LA SERENA',
64
+ 'vicuña': 'S.I.I. - LA SERENA',
65
+ 'vicuna': 'S.I.I. - LA SERENA',
66
+ // Unidad Coquimbo
67
+ 'coquimbo': 'S.I.I. - COQUIMBO',
68
+ // (Ovalle, Illapel, etc. comparten D. Regional La Serena o tienen unidades propias)
69
+ 'ovalle': 'S.I.I. - LA SERENA',
70
+ 'illapel': 'S.I.I. - LA SERENA',
71
+ 'salamanca': 'S.I.I. - LA SERENA',
72
+
73
+ // ── REGIÓN 6: Valparaíso ─────────────────────────────────────────────────
74
+ 'valparaíso': 'S.I.I. - VALPARAÍSO',
75
+ 'valparaiso': 'S.I.I. - VALPARAÍSO',
76
+ 'casablanca': 'S.I.I. - VALPARAÍSO',
77
+ 'juan fernández': 'S.I.I. - VALPARAÍSO',
78
+ 'juan fernandez': 'S.I.I. - VALPARAÍSO',
79
+ 'isla de pascua': 'S.I.I. - VALPARAÍSO',
80
+ // Unidad Viña del Mar
81
+ 'viña del mar': 'S.I.I. - VIÑA DEL MAR',
82
+ 'vina del mar': 'S.I.I. - VIÑA DEL MAR',
83
+ 'concón': 'S.I.I. - VIÑA DEL MAR',
84
+ 'concon': 'S.I.I. - VIÑA DEL MAR',
85
+ 'quintero': 'S.I.I. - VIÑA DEL MAR',
86
+ 'puchuncaví': 'S.I.I. - VIÑA DEL MAR',
87
+ 'puchuncavi': 'S.I.I. - VIÑA DEL MAR',
88
+ // Unidad San Antonio
89
+ 'san antonio': 'S.I.I. - SAN ANTONIO',
90
+ 'santo domingo': 'S.I.I. - SAN ANTONIO',
91
+ 'navidad': 'S.I.I. - SAN ANTONIO',
92
+ 'cartagena': 'S.I.I. - SAN ANTONIO',
93
+ 'el tabo': 'S.I.I. - SAN ANTONIO',
94
+ 'el quisco': 'S.I.I. - SAN ANTONIO',
95
+ 'algarrobo': 'S.I.I. - SAN ANTONIO',
96
+ // Unidad Los Andes
97
+ 'los andes': 'S.I.I. - LOS ANDES',
98
+ 'calle larga': 'S.I.I. - LOS ANDES',
99
+ 'san esteban': 'S.I.I. - LOS ANDES',
100
+ 'rinconada': 'S.I.I. - LOS ANDES',
101
+ // Unidad San Felipe
102
+ 'san felipe': 'S.I.I. - SAN FELIPE',
103
+ 'panquehue': 'S.I.I. - SAN FELIPE',
104
+ 'catemu': 'S.I.I. - SAN FELIPE',
105
+ 'putaendo': 'S.I.I. - SAN FELIPE',
106
+ 'llay llay': 'S.I.I. - SAN FELIPE',
107
+ // Unidad Villa Alemana (Quilpué + Villa Alemana)
108
+ 'villa alemana': 'S.I.I. - VILLA ALEMANA',
109
+ 'quilpué': 'S.I.I. - VILLA ALEMANA',
110
+ 'quilpue': 'S.I.I. - VILLA ALEMANA',
111
+ // Unidad Quillota
112
+ 'quillota': 'S.I.I. - VALPARAÍSO',
113
+ 'la calera': 'S.I.I. - VALPARAÍSO',
114
+ 'la cruz': 'S.I.I. - VALPARAÍSO',
115
+ 'nogales': 'S.I.I. - VALPARAÍSO',
116
+ 'hijuelas': 'S.I.I. - VALPARAÍSO',
117
+ 'olmué': 'S.I.I. - VALPARAÍSO',
118
+ 'olmue': 'S.I.I. - VALPARAÍSO',
119
+ 'limache': 'S.I.I. - VALPARAÍSO',
120
+ 'la ligua': 'S.I.I. - VALPARAÍSO',
121
+ 'petorca': 'S.I.I. - VALPARAÍSO',
122
+ 'cabildo': 'S.I.I. - VALPARAÍSO',
123
+ 'papudo': 'S.I.I. - VALPARAÍSO',
124
+ 'zapallar': 'S.I.I. - VALPARAÍSO',
125
+
126
+ // ── REGIÓN 7: Metropolitana ──────────────────────────────────────────────
127
+ // D.R. Santiago Centro
128
+ 'santiago': 'S.I.I. - SANTIAGO CENTRO',
129
+ // D.R. Santiago Oriente
130
+ 'las condes': 'S.I.I. - SANTIAGO ORIENTE',
131
+ 'lo barnechea': 'S.I.I. - SANTIAGO ORIENTE',
132
+ 'vitacura': 'S.I.I. - SANTIAGO ORIENTE',
133
+ // D.R. Santiago Norte
134
+ 'independencia': 'S.I.I. - SANTIAGO NORTE',
135
+ 'recoleta': 'S.I.I. - SANTIAGO NORTE',
136
+ 'huechuraba': 'S.I.I. - SANTIAGO NORTE',
137
+ 'conchalí': 'S.I.I. - SANTIAGO NORTE',
138
+ 'conchali': 'S.I.I. - SANTIAGO NORTE',
139
+ 'quilicura': 'S.I.I. - SANTIAGO NORTE',
140
+ 'colina': 'S.I.I. - SANTIAGO NORTE',
141
+ 'lampa': 'S.I.I. - SANTIAGO NORTE',
142
+ 'til-til': 'S.I.I. - SANTIAGO NORTE',
143
+ 'tiltil': 'S.I.I. - SANTIAGO NORTE',
144
+ // D.R. Santiago Poniente
145
+ 'cerro navia': 'S.I.I. - SANTIAGO PONIENTE',
146
+ 'curacaví': 'S.I.I. - SANTIAGO PONIENTE',
147
+ 'curacavi': 'S.I.I. - SANTIAGO PONIENTE',
148
+ 'estación central': 'S.I.I. - SANTIAGO PONIENTE',
149
+ 'estacion central': 'S.I.I. - SANTIAGO PONIENTE',
150
+ 'lo prado': 'S.I.I. - SANTIAGO PONIENTE',
151
+ 'pudahuel': 'S.I.I. - SANTIAGO PONIENTE',
152
+ 'quinta normal': 'S.I.I. - SANTIAGO PONIENTE',
153
+ 'renca': 'S.I.I. - SANTIAGO PONIENTE',
154
+ // D.R. Santiago Sur
155
+ 'san miguel': 'S.I.I. - SANTIAGO SUR',
156
+ 'la cisterna': 'S.I.I. - SANTIAGO SUR',
157
+ 'san joaquín': 'S.I.I. - SANTIAGO SUR',
158
+ 'san joaquin': 'S.I.I. - SANTIAGO SUR',
159
+ 'pedro aguirre cerda': 'S.I.I. - SANTIAGO SUR',
160
+ 'lo espejo': 'S.I.I. - SANTIAGO SUR',
161
+ 'la granja': 'S.I.I. - SANTIAGO SUR',
162
+ 'la pintana': 'S.I.I. - SANTIAGO SUR',
163
+ 'san ramón': 'S.I.I. - SANTIAGO SUR',
164
+ 'san ramon': 'S.I.I. - SANTIAGO SUR',
165
+ // Unidad Ñuñoa
166
+ 'ñuñoa': 'S.I.I. - ÑUÑOA',
167
+ 'nunoa': 'S.I.I. - ÑUÑOA',
168
+ 'la reina': 'S.I.I. - ÑUÑOA',
169
+ 'macul': 'S.I.I. - ÑUÑOA',
170
+ 'peñalolén': 'S.I.I. - ÑUÑOA',
171
+ 'penalolen': 'S.I.I. - ÑUÑOA',
172
+ // Unidad Maipú
173
+ 'maipú': 'S.I.I. - MAIPÚ',
174
+ 'maipu': 'S.I.I. - MAIPÚ',
175
+ 'cerrillos': 'S.I.I. - MAIPÚ',
176
+ 'el monte': 'S.I.I. - MAIPÚ',
177
+ 'isla de maipo': 'S.I.I. - MAIPÚ',
178
+ 'padre hurtado': 'S.I.I. - MAIPÚ',
179
+ 'peñaflor': 'S.I.I. - MAIPÚ',
180
+ 'penaflor': 'S.I.I. - MAIPÚ',
181
+ 'talagante': 'S.I.I. - MAIPÚ',
182
+ // Unidad La Florida
183
+ 'la florida': 'S.I.I. - LA FLORIDA',
184
+ 'puente alto': 'S.I.I. - LA FLORIDA',
185
+ 'pirque': 'S.I.I. - LA FLORIDA',
186
+ 'san josé de maipo': 'S.I.I. - LA FLORIDA',
187
+ 'san jose de maipo': 'S.I.I. - LA FLORIDA',
188
+ // Unidad Providencia
189
+ 'providencia': 'S.I.I. - PROVIDENCIA',
190
+ // Unidad San Bernardo
191
+ 'san bernardo': 'S.I.I. - SAN BERNARDO',
192
+ 'calera de tango': 'S.I.I. - SAN BERNARDO',
193
+ 'el bosque': 'S.I.I. - SAN BERNARDO',
194
+ // Unidad Buin
195
+ 'buin': 'S.I.I. - BUIN',
196
+ 'paine': 'S.I.I. - BUIN',
197
+ // Melipilla (comparte D.R. Santiago Poniente en algunos esquemas)
198
+ 'melipilla': 'S.I.I. - SANTIAGO PONIENTE',
199
+ 'alhué': 'S.I.I. - SANTIAGO PONIENTE',
200
+ 'alhue': 'S.I.I. - SANTIAGO PONIENTE',
201
+ 'san pedro': 'S.I.I. - SANTIAGO PONIENTE',
202
+
203
+ // ── REGIÓN 8: O'Higgins ──────────────────────────────────────────────────
204
+ 'rancagua': 'S.I.I. - RANCAGUA',
205
+ 'machalí': 'S.I.I. - RANCAGUA',
206
+ 'machali': 'S.I.I. - RANCAGUA',
207
+ 'graneros': 'S.I.I. - RANCAGUA',
208
+ 'san francisco de mostazal': 'S.I.I. - RANCAGUA',
209
+ 'doñihue': 'S.I.I. - RANCAGUA',
210
+ 'donihue': 'S.I.I. - RANCAGUA',
211
+ 'codegua': 'S.I.I. - RANCAGUA',
212
+ 'rengo': 'S.I.I. - RANCAGUA',
213
+ 'coltauco': 'S.I.I. - RANCAGUA',
214
+ 'requinoa': 'S.I.I. - RANCAGUA',
215
+ 'olivar': 'S.I.I. - RANCAGUA',
216
+ 'malloa': 'S.I.I. - RANCAGUA',
217
+ 'quinta de tilcoco': 'S.I.I. - RANCAGUA',
218
+ 'coinco': 'S.I.I. - RANCAGUA',
219
+ // Resto de O'Higgins → Rancagua como capital de región
220
+ 'san fernando': 'S.I.I. - RANCAGUA',
221
+ 'santa cruz': 'S.I.I. - RANCAGUA',
222
+ 'pichilemu': 'S.I.I. - RANCAGUA',
223
+
224
+ // ── REGIÓN 9: Maule ──────────────────────────────────────────────────────
225
+ 'talca': 'S.I.I. - TALCA',
226
+ 'san clemente': 'S.I.I. - TALCA',
227
+ 'pelarco': 'S.I.I. - TALCA',
228
+ 'río claro': 'S.I.I. - TALCA',
229
+ 'rio claro': 'S.I.I. - TALCA',
230
+ 'pencahue': 'S.I.I. - TALCA',
231
+ 'maule': 'S.I.I. - TALCA',
232
+ 'curepto': 'S.I.I. - TALCA',
233
+ 'san javier': 'S.I.I. - TALCA',
234
+ 'san rafael': 'S.I.I. - TALCA',
235
+ 'constitución': 'S.I.I. - TALCA',
236
+ 'constitucion': 'S.I.I. - TALCA',
237
+ 'empedrado': 'S.I.I. - TALCA',
238
+ // Unidad Curicó
239
+ 'curicó': 'S.I.I. - CURICÓ',
240
+ 'curico': 'S.I.I. - CURICÓ',
241
+ 'teno': 'S.I.I. - CURICÓ',
242
+ 'romeral': 'S.I.I. - CURICÓ',
243
+ 'molina': 'S.I.I. - CURICÓ',
244
+ 'hualañe': 'S.I.I. - CURICÓ',
245
+ 'hualane': 'S.I.I. - CURICÓ',
246
+ 'sagrada familia': 'S.I.I. - CURICÓ',
247
+ 'licantén': 'S.I.I. - CURICÓ',
248
+ 'licanten': 'S.I.I. - CURICÓ',
249
+ 'vichuquén': 'S.I.I. - CURICÓ',
250
+ 'vichuquen': 'S.I.I. - CURICÓ',
251
+ 'rauco': 'S.I.I. - CURICÓ',
252
+ // Linares → Talca
253
+ 'linares': 'S.I.I. - TALCA',
254
+ 'longaví': 'S.I.I. - TALCA',
255
+ 'longavi': 'S.I.I. - TALCA',
256
+ 'parral': 'S.I.I. - TALCA',
257
+ 'cauquenes': 'S.I.I. - TALCA',
258
+
259
+ // ── REGIÓN 10: Bío Bío ───────────────────────────────────────────────────
260
+ 'concepción': 'S.I.I. - CONCEPCIÓN',
261
+ 'concepcion': 'S.I.I. - CONCEPCIÓN',
262
+ 'chiguayante': 'S.I.I. - CONCEPCIÓN',
263
+ 'san pedro de la paz': 'S.I.I. - CONCEPCIÓN',
264
+ 'penco': 'S.I.I. - CONCEPCIÓN',
265
+ 'hualqui': 'S.I.I. - CONCEPCIÓN',
266
+ 'florida': 'S.I.I. - CONCEPCIÓN',
267
+ 'tomé': 'S.I.I. - CONCEPCIÓN',
268
+ 'tome': 'S.I.I. - CONCEPCIÓN',
269
+ 'coronel': 'S.I.I. - CONCEPCIÓN',
270
+ 'lota': 'S.I.I. - CONCEPCIÓN',
271
+ 'santa juana': 'S.I.I. - CONCEPCIÓN',
272
+ 'arauco': 'S.I.I. - CONCEPCIÓN',
273
+ 'lebu': 'S.I.I. - CONCEPCIÓN',
274
+ 'cañete': 'S.I.I. - CONCEPCIÓN',
275
+ 'canete': 'S.I.I. - CONCEPCIÓN',
276
+ 'tirúa': 'S.I.I. - CONCEPCIÓN',
277
+ 'tirua': 'S.I.I. - CONCEPCIÓN',
278
+ 'curanilahue': 'S.I.I. - CONCEPCIÓN',
279
+ 'los álamos': 'S.I.I. - CONCEPCIÓN',
280
+ 'los alamos': 'S.I.I. - CONCEPCIÓN',
281
+ // Unidad Los Ángeles
282
+ 'los ángeles': 'S.I.I. - LOS ÁNGELES',
283
+ 'los angeles': 'S.I.I. - LOS ÁNGELES',
284
+ 'santa bárbara': 'S.I.I. - LOS ÁNGELES',
285
+ 'santa barbara': 'S.I.I. - LOS ÁNGELES',
286
+ 'laja': 'S.I.I. - LOS ÁNGELES',
287
+ 'quilleco': 'S.I.I. - LOS ÁNGELES',
288
+ 'nacimiento': 'S.I.I. - LOS ÁNGELES',
289
+ 'negrete': 'S.I.I. - LOS ÁNGELES',
290
+ 'mulchén': 'S.I.I. - LOS ÁNGELES',
291
+ 'mulchen': 'S.I.I. - LOS ÁNGELES',
292
+ 'quilaco': 'S.I.I. - LOS ÁNGELES',
293
+ 'yumbel': 'S.I.I. - LOS ÁNGELES',
294
+ 'cabrero': 'S.I.I. - LOS ÁNGELES',
295
+ 'san rosendo': 'S.I.I. - LOS ÁNGELES',
296
+ 'tucapel': 'S.I.I. - LOS ÁNGELES',
297
+ 'antuco': 'S.I.I. - LOS ÁNGELES',
298
+ 'alto bío-bío': 'S.I.I. - LOS ÁNGELES',
299
+ 'alto biobio': 'S.I.I. - LOS ÁNGELES',
300
+
301
+ // ── REGIÓN 11: Araucanía ─────────────────────────────────────────────────
302
+ 'temuco': 'S.I.I. - TEMUCO',
303
+ 'vilcún': 'S.I.I. - TEMUCO',
304
+ 'vilcun': 'S.I.I. - TEMUCO',
305
+ 'freire': 'S.I.I. - TEMUCO',
306
+ 'cunco': 'S.I.I. - TEMUCO',
307
+ 'lautaro': 'S.I.I. - TEMUCO',
308
+ 'perquenco': 'S.I.I. - TEMUCO',
309
+ 'galvarino': 'S.I.I. - TEMUCO',
310
+ 'nueva imperial': 'S.I.I. - TEMUCO',
311
+ 'carahue': 'S.I.I. - TEMUCO',
312
+ 'puerto saavedra': 'S.I.I. - TEMUCO',
313
+ 'pitrufquén': 'S.I.I. - TEMUCO',
314
+ 'pitrufquen': 'S.I.I. - TEMUCO',
315
+ 'gorbea': 'S.I.I. - TEMUCO',
316
+ 'toltén': 'S.I.I. - TEMUCO',
317
+ 'tolten': 'S.I.I. - TEMUCO',
318
+ 'loncoche': 'S.I.I. - TEMUCO',
319
+ 'melipeuco': 'S.I.I. - TEMUCO',
320
+ 'teodoro schmidt': 'S.I.I. - TEMUCO',
321
+ 'padre las casas': 'S.I.I. - TEMUCO',
322
+ 'cholchol': 'S.I.I. - TEMUCO',
323
+ 'angol': 'S.I.I. - TEMUCO',
324
+ 'victoria': 'S.I.I. - TEMUCO',
325
+ 'traiguén': 'S.I.I. - TEMUCO',
326
+ 'traiguen': 'S.I.I. - TEMUCO',
327
+ 'los sauces': 'S.I.I. - TEMUCO',
328
+ 'lumaco': 'S.I.I. - TEMUCO',
329
+ 'purén': 'S.I.I. - TEMUCO',
330
+ 'puren': 'S.I.I. - TEMUCO',
331
+ 'collipulli': 'S.I.I. - TEMUCO',
332
+ 'ercilla': 'S.I.I. - TEMUCO',
333
+ 'curacautín': 'S.I.I. - TEMUCO',
334
+ 'curacautin': 'S.I.I. - TEMUCO',
335
+ 'lonquimay': 'S.I.I. - TEMUCO',
336
+ 'villarrica': 'S.I.I. - TEMUCO',
337
+ 'pucón': 'S.I.I. - TEMUCO',
338
+ 'pucon': 'S.I.I. - TEMUCO',
339
+ 'curarrehue': 'S.I.I. - TEMUCO',
340
+
341
+ // ── REGIÓN 12: Los Ríos ──────────────────────────────────────────────────
342
+ 'valdivia': 'S.I.I. - VALDIVIA',
343
+ 'máfil': 'S.I.I. - VALDIVIA',
344
+ 'mafil': 'S.I.I. - VALDIVIA',
345
+ 'corral': 'S.I.I. - VALDIVIA',
346
+ 'los lagos': 'S.I.I. - VALDIVIA',
347
+ 'paillaco': 'S.I.I. - VALDIVIA',
348
+ 'futrono': 'S.I.I. - VALDIVIA',
349
+ 'río bueno': 'S.I.I. - VALDIVIA',
350
+ 'rio bueno': 'S.I.I. - VALDIVIA',
351
+ 'la unión': 'S.I.I. - VALDIVIA',
352
+ 'la union': 'S.I.I. - VALDIVIA',
353
+ 'lago ranco': 'S.I.I. - VALDIVIA',
354
+ 'mariquina': 'S.I.I. - VALDIVIA',
355
+ 'lanco': 'S.I.I. - VALDIVIA',
356
+
357
+ // ── REGIÓN 13: Los Lagos ─────────────────────────────────────────────────
358
+ 'puerto montt': 'S.I.I. - PUERTO MONTT',
359
+ 'calbuco': 'S.I.I. - PUERTO MONTT',
360
+ 'maullín': 'S.I.I. - PUERTO MONTT',
361
+ 'maullin': 'S.I.I. - PUERTO MONTT',
362
+ 'los muermos': 'S.I.I. - PUERTO MONTT',
363
+ 'hualaihué': 'S.I.I. - PUERTO MONTT',
364
+ 'hualaihue': 'S.I.I. - PUERTO MONTT',
365
+ 'cochamó': 'S.I.I. - PUERTO MONTT',
366
+ 'cochamo': 'S.I.I. - PUERTO MONTT',
367
+ 'puerto varas': 'S.I.I. - PUERTO MONTT',
368
+ 'llanquihue': 'S.I.I. - PUERTO MONTT',
369
+ 'fresia': 'S.I.I. - PUERTO MONTT',
370
+ 'frutillar': 'S.I.I. - PUERTO MONTT',
371
+ 'los llanos': 'S.I.I. - PUERTO MONTT',
372
+ // Unidad Osorno
373
+ 'osorno': 'S.I.I. - OSORNO',
374
+ 'puyehue': 'S.I.I. - OSORNO',
375
+ 'purranque': 'S.I.I. - OSORNO',
376
+ 'río negro': 'S.I.I. - OSORNO',
377
+ 'rio negro': 'S.I.I. - OSORNO',
378
+ 'san pablo': 'S.I.I. - OSORNO',
379
+ 'san juan de la costa': 'S.I.I. - OSORNO',
380
+ 'puerto octay': 'S.I.I. - OSORNO',
381
+ // Ancud/Castro → Puerto Montt
382
+ 'ancud': 'S.I.I. - PUERTO MONTT',
383
+ 'castro': 'S.I.I. - PUERTO MONTT',
384
+ 'chonchi': 'S.I.I. - PUERTO MONTT',
385
+ 'quellón': 'S.I.I. - PUERTO MONTT',
386
+ 'quellon': 'S.I.I. - PUERTO MONTT',
387
+ 'dalcahue': 'S.I.I. - PUERTO MONTT',
388
+
389
+ // ── REGIÓN 14: Aysén ─────────────────────────────────────────────────────
390
+ 'coyhaique': 'S.I.I. - COYHAIQUE',
391
+ 'río ibáñez': 'S.I.I. - COYHAIQUE',
392
+ 'rio ibanez': 'S.I.I. - COYHAIQUE',
393
+ 'tortel': 'S.I.I. - COYHAIQUE',
394
+ 'cochrane': 'S.I.I. - COYHAIQUE',
395
+ 'chile chico': 'S.I.I. - COYHAIQUE',
396
+ 'aysén': 'S.I.I. - COYHAIQUE',
397
+ 'aysen': 'S.I.I. - COYHAIQUE',
398
+ 'cisnes': 'S.I.I. - COYHAIQUE',
399
+ 'lago verde': 'S.I.I. - COYHAIQUE',
400
+ 'guaitecas': 'S.I.I. - COYHAIQUE',
401
+
402
+ // ── REGIÓN 15: Magallanes ────────────────────────────────────────────────
403
+ 'punta arenas': 'S.I.I. - PUNTA ARENAS',
404
+ 'río verde': 'S.I.I. - PUNTA ARENAS',
405
+ 'rio verde': 'S.I.I. - PUNTA ARENAS',
406
+ 'san gregorio': 'S.I.I. - PUNTA ARENAS',
407
+ 'laguna blanca': 'S.I.I. - PUNTA ARENAS',
408
+ 'cabo de hornos': 'S.I.I. - PUNTA ARENAS',
409
+ 'puerto natales': 'S.I.I. - PUNTA ARENAS',
410
+ 'natales': 'S.I.I. - PUNTA ARENAS',
411
+ 'torres del paine': 'S.I.I. - PUNTA ARENAS',
412
+ 'porvenir': 'S.I.I. - PUNTA ARENAS',
413
+ 'primavera': 'S.I.I. - PUNTA ARENAS',
414
+ 'timaukel': 'S.I.I. - PUNTA ARENAS',
415
+ 'puerto williams': 'S.I.I. - PUNTA ARENAS',
416
+
417
+ // ── REGIÓN 16: Ñuble ─────────────────────────────────────────────────────
418
+ 'chillán': 'S.I.I. - CHILLÁN',
419
+ 'chillan': 'S.I.I. - CHILLÁN',
420
+ 'chillán viejo': 'S.I.I. - CHILLÁN',
421
+ 'chillan viejo': 'S.I.I. - CHILLÁN',
422
+ 'coihueco': 'S.I.I. - CHILLÁN',
423
+ 'pinto': 'S.I.I. - CHILLÁN',
424
+ 'el carmen': 'S.I.I. - CHILLÁN',
425
+ 'san ignacio': 'S.I.I. - CHILLÁN',
426
+ 'pemuco': 'S.I.I. - CHILLÁN',
427
+ 'yungay': 'S.I.I. - CHILLÁN',
428
+ 'bulnes': 'S.I.I. - CHILLÁN',
429
+ 'quillón': 'S.I.I. - CHILLÁN',
430
+ 'quillon': 'S.I.I. - CHILLÁN',
431
+ 'ranquil': 'S.I.I. - CHILLÁN',
432
+ 'portezuelo': 'S.I.I. - CHILLÁN',
433
+ 'coelemu': 'S.I.I. - CHILLÁN',
434
+ 'trehuaco': 'S.I.I. - CHILLÁN',
435
+ 'quirihue': 'S.I.I. - CHILLÁN',
436
+ 'cobquecura': 'S.I.I. - CHILLÁN',
437
+ 'ninhue': 'S.I.I. - CHILLÁN',
438
+ 'san carlos': 'S.I.I. - CHILLÁN',
439
+ 'ñiquén': 'S.I.I. - CHILLÁN',
440
+ 'niquen': 'S.I.I. - CHILLÁN',
441
+ 'san fabián': 'S.I.I. - CHILLÁN',
442
+ 'san fabian': 'S.I.I. - CHILLÁN',
443
+ 'san nicolás': 'S.I.I. - CHILLÁN',
444
+ 'san nicolas': 'S.I.I. - CHILLÁN',
445
+ };
446
+
447
+ /**
448
+ * Devuelve el nombre de la oficina SII para imprimir en la muestra impresa.
449
+ * Formato: 'S.I.I. - NOMBRE_OFICINA'
450
+ *
451
+ * @param {string} comuna - Nombre de la comuna (se normaliza automáticamente)
452
+ * @returns {string} Nombre de oficina, o null si no se encuentra
453
+ */
454
+ function getOficinaForComuna(comuna) {
455
+ if (!comuna || typeof comuna !== 'string') return null;
456
+ const key = comuna.trim().toLowerCase();
457
+ return COMUNA_OFICINA_SII[key] || null;
458
+ }
459
+
460
+ module.exports = { COMUNA_OFICINA_SII, getOficinaForComuna };