Completed
Push — master ( aabd00...4cbaf4 )
by Esteban De La Fuente
01:38
created

Aduana::getBultos()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * LibreDTE
5
 * Copyright (C) SASCO SpA (https://sasco.cl)
6
 *
7
 * Este programa es software libre: usted puede redistribuirlo y/o
8
 * modificarlo bajo los términos de la Licencia Pública General Affero de GNU
9
 * publicada por la Fundación para el Software Libre, ya sea la versión
10
 * 3 de la Licencia, o (a su elección) cualquier versión posterior de la
11
 * misma.
12
 *
13
 * Este programa se distribuye con la esperanza de que sea útil, pero
14
 * SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita
15
 * MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO.
16
 * Consulte los detalles de la Licencia Pública General Affero de GNU para
17
 * obtener una información más detallada.
18
 *
19
 * Debería haber recibido una copia de la Licencia Pública General Affero de GNU
20
 * junto a este programa.
21
 * En caso contrario, consulte <http://www.gnu.org/licenses/agpl.html>.
22
 */
23
24
namespace sasco\LibreDTE\Sii;
25
26
/**
27
 * Clase para trabajar con las tablas de la Aduana
28
 * Fuentes:
29
 *  - http://comext.aduana.cl:7001/codigos
30
 *  - https://www.aduana.cl/compendio-de-normas-anexo-51/aduana/2008-02-18/165942.html
31
 * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
32
 * @version 2019-07-25
33
 */
34
class Aduana
35
{
36
37
    private static $tablas = [
38
        'FmaPagExp' => [
39
            'glosa' => 'Forma pago exp.',
40
            'valor' => [
41
                1 => 'COB1',
42
                11 => 'ACRED',
43
                12 => 'CBOF',
44
                2 => 'COBRANZA',
45
                21 => 'S/PAGO',
46
                32 => 'ANTICIPO',
47
                50 => 'ANT/COB',
48
                60 => 'ANT/CRED',
49
                80 => 'S/PAGO/COB',
50
            ],
51
        ],
52
        'CodModVenta' => [
53
            'glosa' => 'Mod. venta',
54
            'valor' => [
55
                1 => 'A firme',
56
                2 => 'Bajo condición',
57
                3 => 'En consignación libre',
58
                4 => 'En consignación con un mínimo a firme',
59
                9 => 'Sin pago',
60
            ],
61
        ],
62
        'CodClauVenta' => [
63
            'glosa' => 'Claú. venta',
64
            'valor' => [
65
                1 => 'CIF',
66
                2 => 'CFR',
67
                3 => 'EXW',
68
                4 => 'FAS',
69
                5 => 'FOB',
70
                6 => 'S/CL',
71
                8 => 'OTROS',
72
                9 => 'DDP',
73
                10 => 'FCA',
74
                11 => 'CPT',
75
                12 => 'CIP',
76
                17 => 'DAT',
77
                18 => 'DAP',
78
            ],
79
        ],
80
        'TotClauVenta' => 'Total claú.',
81
        'CodViaTransp' => [
82
            'glosa' => 'Transporte',
83
            'valor' => [
84
                1 =>'Marítima, fluvial y lacustre',
85
                4 => 'Aéreo',
86
                5 => 'Postal',
87
                6 => 'Ferroviario',
88
                7 => 'Carretero/terrestre',
89
                8 => 'Óleoductos, gasoductos',
90
                9 => 'Tendido eléctrico (aéreo,subt)',
91
                10 => 'Otra',
92
            ],
93
        ],
94
        'CodPtoEmbarque' => [
95
            'glosa' => 'Embarque',
96
            'tabla' => 'puertos',
97
        ],
98
        'CodPtoDesemb' => [
99
            'glosa' => 'Desembarq.',
100
            'tabla' => 'puertos',
101
        ],
102
        'CodUnidMedTara' => [
103
            'glosa' => 'U. tara',
104
            'tabla' => 'unidades',
105
        ],
106
        'CodUnidPesoBruto' => [
107
            'glosa' => 'U. p. bruto',
108
            'tabla' => 'unidades',
109
        ],
110
        'CodUnidPesoNeto' => [
111
            'glosa' => 'U. p. neto',
112
            'tabla' => 'unidades',
113
        ],
114
        'TotBultos' => 'Total bultos',
115
        'TipoBultos' => [
116
            'glosa' => 'Bultos',
117
            'valor' => [
118
                1 => 'POLVO',
119
                2 => 'GRANOS',
120
                3 => 'NODULOS',
121
                4 => 'LIQUIDO',
122
                5 => 'GAS',
123
                10 => 'PIEZA',
124
                11 => 'TUBO',
125
                12 => 'CILINDRO',
126
                13 => 'ROLLOS',
127
                16 => 'BARRA',
128
                17 => 'LINGOTE',
129
                18 => 'TRONCOS',
130
                19 => 'BLOQUE',
131
                20 => 'ROLLIZO',
132
                21 => 'CAJON',
133
                22 => 'CAJA DE CARTON',
134
                23 => 'FARDO',
135
                24 => 'BAUL',
136
                25 => 'COFRE',
137
                26 => 'ARMAZON',
138
                27 => 'BANDEJA',
139
                28 => 'CAJAMADERA',
140
                29 => 'CAJALATA',
141
                31 => 'BOTELLAGAS',
142
                32 => 'BOTELLA',
143
                33 => 'JAULA',
144
                34 => 'BIDON',
145
                35 => 'JABA',
146
                36 => 'CESTA',
147
                37 => 'BARRILETE',
148
                38 => 'TONEL',
149
                39 => 'PIPA',
150
                40 => 'CAJANOESP',
151
                41 => 'JARRO',
152
                42 => 'FRASCO',
153
                43 => 'DAMAJUANA',
154
                44 => 'BARRIL',
155
                45 => 'TAMBOR',
156
                46 => 'CUNETE',
157
                47 => 'TARRO',
158
                51 => 'CUBO',
159
                61 => 'PAQUETE',
160
                62 => 'SACO',
161
                63 => 'MALETA',
162
                64 => 'BOLSA',
163
                65 => 'BALA',
164
                66 => 'RED',
165
                67 => 'SOBRE',
166
                73 => 'CONT20',
167
                74 => 'CONT40',
168
                75 => 'CONTENEDOR REFRIGERADO', // REEFER20
169
                76 => 'REEFER40',
170
                77 => 'ESTANQUE',
171
                78 => 'CONTNOESP',
172
                80 => 'PALLETS',
173
                81 => 'TABLERO',
174
                82 => 'LAMINA',
175
                83 => 'CARRETE',
176
                85 => 'AUTOMOTOR',
177
                86 => 'ATAUD',
178
                88 => 'MAQUINARIA',
179
                89 => 'PLANCHAS',
180
                90 => 'ATADO',
181
                91 => 'BOBINA',
182
                93 => 'BULTONOESP',
183
                98 => 'SIN BULTO',
184
                99 => 'S/EMBALAR',
185
            ],
186
        ],
187
        'CodPaisRecep' => [
188
            'glosa' => 'P. receptor',
189
            'tabla' => 'paises',
190
        ],
191
        'CodPaisDestin' => [
192
            'glosa' => 'P. destino',
193
            'tabla' => 'paises',
194
        ],
195
        'unidades' => [
196
            1 => 'TMB',
197
            2 => 'QMB',
198
            3 => 'MKWH',
199
            4 => 'TMN',
200
            5 => 'KLT',
201
            6 => 'KN',
202
            7 => 'GN',
203
            8 => 'HL',
204
            9 => 'LT',
205
            10 => 'U',
206
            11 => 'DOC',
207
            12 => 'U(JGO)',
208
            13 => 'MU',
209
            14 => 'MT',
210
            15 => 'MT2',
211
            16 => 'MCUB',
212
            17 => 'PAR',
213
            18 => 'KNFC',
214
            19 => 'CARTON',
215
            20 => 'KWH',
216
            23 => 'BAR',
217
            24 => 'M2/1MM',
218
            99 => 'S.U.M',
219
        ],
220
        'paises' => [
221
            // paises más comunes
222
            563 => 'ALEMANIA',
223
            224 => 'ARGENTINA',
224
            406 => 'AUSTRALIA',
225
            220 => 'BRASIL',
226
            226 => 'CANADA',
227
            505 => 'FRANCIA',
228
            510 => 'REINO UNIDO',
229
            225 => 'U.S.A.',
230
            997 => 'CHILE',
231
            // paises ordenados por alfabeto
232
            308 => 'AFGANISTAN',
233
            518 => 'ALBANIA',
234
            503 => 'ALEMANIA R.D.(N',
235
            502 => 'ALEMANIA R.F.',
236
            132 => 'ALTO VOLTA',
237
            525 => 'ANDORRA',
238
            140 => 'ANGOLA',
239
            242 => 'ANGUILA',
240
            240 => 'ANTIGUA Y BBUDA',
241
            247 => 'ANTILLAS NEERLANDESA',
242
            302 => 'ARABIA SAUDITA',
243
            127 => 'ARGELIA',
244
            540 => 'ARMENIA',
245
            243 => 'ARUBA',
246
            509 => 'AUSTRIA',
247
            541 => 'AZERBAIJAN',
248
            207 => 'BAHAMAS',
249
            313 => 'BAHREIN',
250
            321 => 'BANGLADESH',
251
            204 => 'BARBADOS',
252
            542 => 'BELARUS',
253
            514 => 'BELGICA',
254
            236 => 'BELICE',
255
            150 => 'BENIN',
256
            244 => 'BERMUDAS',
257
            318 => 'BHUTAN',
258
            221 => 'BOLIVIA',
259
            154 => 'BOPHUTHATSWANA',
260
            543 => 'BOSNIA HEZGVINA',
261
            113 => 'BOTSWANA',
262
            344 => 'BRUNEI',
263
            527 => 'BULGARIA',
264
            161 => 'BURKINA FASO',
265
            141 => 'BURUNDI',
266
            129 => 'CABO VERDE',
267
            315 => 'CAMBODIA',
268
            149 => 'CAMERUN',
269
            130 => 'CHAD',
270
            529 => 'CHECOESLOVAQUIA',
271
            336 => 'CHINA',
272
            305 => 'CHIPRE',
273
            162 => 'CISKEY',
274
            202 => 'COLOMBIA',
275
            901 => 'COMB.Y LUBRIC.',
276
            118 => 'COMORAS',
277
            144 => 'CONGO',
278
            334 => 'COREA DEL NORTE',
279
            333 => 'COREA DEL SUR',
280
            107 => 'COSTA DE MARFIL',
281
            211 => 'COSTA RICA',
282
            547 => 'CROACIA',
283
            209 => 'CUBA',
284
            906 => 'DEPOSITO FRANCO',
285
            507 => 'DINAMARCA',
286
            155 => 'DJIBOUTI',
287
            231 => 'DOMINICA',
288
            218 => 'ECUADOR',
289
            124 => 'EGIPTO',
290
            213 => 'EL SALVADOR',
291
            341 => 'EMIR.ARAB.UNID.',
292
            163 => 'ERITREA',
293
            548 => 'ESLOVENIA',
294
            517 => 'ESPANA',
295
            549 => 'ESTONIA',
296
            139 => 'ETIOPIA',
297
            401 => 'FIJI',
298
            335 => 'FILIPINAS',
299
            512 => 'FINLANDIA',
300
            145 => 'GABON',
301
            102 => 'GAMBIA',
302
            550 => 'GEORGIA',
303
            108 => 'GHANA',
304
            565 => 'GIBRALTAR',
305
            585 => 'GILBRALTAR',
306
            232 => 'GRANADA',
307
            520 => 'GRECIA',
308
            253 => 'GROENLANDIA',
309
            425 => 'GUAM',
310
            215 => 'GUATEMALA',
311
            566 => 'GUERNSEY',
312
            104 => 'GUINEA',
313
            147 => 'GUINEA ECUATRL',
314
            103 => 'GUINEA-BISSAU',
315
            217 => 'GUYANA',
316
            208 => 'HAITI',
317
            515 => 'HOLANDA',
318
            214 => 'HONDURAS',
319
            342 => 'HONG KONG',
320
            530 => 'HUNGRIA',
321
            317 => 'INDIA',
322
            328 => 'INDONESIA',
323
            307 => 'IRAK',
324
            309 => 'IRAN',
325
            506 => 'IRLANDA',
326
            567 => 'ISLA DE MAN',
327
            516 => 'ISLANDIA',
328
            246 => 'ISLAS CAYMAN',
329
            427 => 'ISLAS COOK',
330
            327 => 'ISLAS MALDIVAS',
331
            424 => 'ISLAS MARIANAS DEL NORTE',
332
            164 => 'ISLAS MARSHALL',
333
            418 => 'ISLAS SALOMON',
334
            403 => 'ISLAS TONGA',
335
            245 => 'ISLAS VIRG.BRIT',
336
            249 => 'ISLAS VIRGENES (ESTADOS UNIDOS',
337
            306 => 'ISRAEL',
338
            504 => 'ITALIA',
339
            205 => 'JAMAICA',
340
            331 => 'JAPON',
341
            568 => 'JERSEY',
342
            301 => 'JORDANIA',
343
            551 => 'KASAJSTAN',
344
            137 => 'KENIA',
345
            552 => 'KIRGISTAN',
346
            416 => 'KIRIBATI',
347
            303 => 'KUWAIT',
348
            316 => 'LAOS',
349
            114 => 'LESOTHO',
350
            553 => 'LETONIA',
351
            311 => 'LIBANO',
352
            106 => 'LIBERIA',
353
            125 => 'LIBIA',
354
            534 => 'LIECHTENSTEIN',
355
            554 => 'LITUANIA',
356
            532 => 'LUXEMBURGO',
357
            345 => 'MACAO',
358
            555 => 'MACEDONIA',
359
            120 => 'MADAGASCAR',
360
            329 => 'MALASIA',
361
            115 => 'MALAWI',
362
            133 => 'MALI',
363
            523 => 'MALTA',
364
            128 => 'MARRUECOS',
365
            250 => 'MARTINICA',
366
            119 => 'MAURICIO',
367
            134 => 'MAURITANIA',
368
            216 => 'MEXICO',
369
            417 => 'MICRONESIA',
370
            556 => 'MOLDOVA',
371
            535 => 'MONACO',
372
            337 => 'MONGOLIA',
373
            252 => 'MONSERRAT',
374
            561 => 'MONTENEGRO',
375
            121 => 'MOZAMBIQUE',
376
            326 => 'MYANMAR (EX BIR',
377
            998 => 'NAC.REPUTADA',
378
            159 => 'NAMIBIA',
379
            402 => 'NAURU',
380
            320 => 'NEPAL',
381
            212 => 'NICARAGUA',
382
            131 => 'NIGER',
383
            111 => 'NIGERIA',
384
            421 => 'NIUE',
385
            513 => 'NORUEGA',
386
            423 => 'NUEVA CALEDONIA',
387
            405 => 'NUEVA ZELANDIA',
388
            304 => 'OMAN',
389
            904 => 'ORIG.O DEST. NO',
390
            324 => 'PAKISTAN',
391
            420 => 'PALAU',
392
            210 => 'PANAMA',
393
            222 => 'PARAGUAY',
394
            219 => 'PERU',
395
            903 => 'PESCA EXTRA',
396
            422 => 'POLINESIA FRANCESA',
397
            528 => 'POLONIA',
398
            501 => 'PORTUGAL',
399
            412 => 'PPUA.NVA.GUINEA',
400
            251 => 'PUERTO RICO',
401
            312 => 'QATAR',
402
            902 => 'RANCHO DE NAVES',
403
            148 => 'REP.CENT.AFRIC.',
404
            143 => 'REP.DEM. CONGO',
405
            206 => 'REP.DOMINICANA',
406
            545 => 'REP.ESLOVACA',
407
            544 => 'REPUBLICA CHECA',
408
            546 => 'REPUBLICA DE SERBIA',
409
            346 => 'REPUBLICA DE YEMEN',
410
            564 => 'RF YUGOSLAVIA',
411
            519 => 'RUMANIA',
412
            562 => 'RUSIA',
413
            142 => 'RWANDA',
414
            146 => 'S.TOM.PRINCIPE',
415
            234 => 'S.VTE.Y GRANAD.',
416
            165 => 'SAHARAUI',
417
            404 => 'SAMOA OCC.',
418
            536 => 'SAN MARINO',
419
            233 => 'SANTA LUCIA(ISL',
420
            524 => 'SANTA SEDE',
421
            101 => 'SENEGAL',
422
            156 => 'SEYCHELLES',
423
            105 => 'SIERRA LEONA',
424
            332 => 'SINGAPUR',
425
            310 => 'SIRIA',
426
            241 => 'SNT.KIT & NEVIS',
427
            138 => 'SOMALIA',
428
            314 => 'SRI LANKA',
429
            112 => 'SUDAFRICA',
430
            123 => 'SUDAN',
431
            160 => 'SUDAN DEL SUR',
432
            511 => 'SUECIA',
433
            508 => 'SUIZA',
434
            235 => 'SURINAM',
435
            122 => 'SWAZILANDIA',
436
            409 => 'T.NORTEAM.EN AU',
437
            557 => 'TADJIKISTAN',
438
            330 => 'TAIWAN (FORMOSA',
439
            135 => 'TANZANIA',
440
            152 => 'TER.ESPAN.EN AF',
441
            229 => 'TER.HOLAN.EN AM',
442
            343 => 'TER.PORTUG.E/AS',
443
            151 => 'TERR.BRIT.EN AF',
444
            227 => 'TERR.BRIT.EN AM',
445
            407 => 'TERR.BRIT.EN AU',
446
            230 => 'TERR.D/DINAMARC',
447
            153 => 'TERR.FRAN.EN AF',
448
            228 => 'TERR.FRAN.EN AM',
449
            408 => 'TERR.FRAN.EN AU',
450
            319 => 'THAILANDIA',
451
            426 => 'TIMOR ORIENTAL',
452
            109 => 'TOGO',
453
            166 => 'TRANSKEI',
454
            203 => 'TRINID.Y TOBAGO',
455
            126 => 'TUNEZ',
456
            248 => 'TURCAS Y CAICOS',
457
            558 => 'TURKMENISTAN',
458
            522 => 'TURQUIA',
459
            419 => 'TUVALU',
460
            521 => 'U.R.S.S.   (NO',
461
            559 => 'UCRANIA',
462
            136 => 'UGANDA',
463
            223 => 'URUGUAY',
464
            560 => 'UZBEKISTAN',
465
            415 => 'VANUATU',
466
            201 => 'VENEZUELA',
467
            158 => 'VIENDA',
468
            325 => 'VIETNAM',
469
            322 => 'YEMEN',
470
            323 => 'YEMEN DEL SUR',
471
            526 => 'YUGOESLAVIA (NO',
472
            117 => 'ZAMBIA',
473
            910 => 'ZF.ARICA-ZF IND',
474
            905 => 'ZF.IQUIQUE',
475
            907 => 'ZF.PARENAS',
476
            116 => 'ZIMBABWE',
477
            999 => 'OTROS(PAIS DESC',
478
        ],
479
        'puertos' => [
480
            111 => 'MONTREAL',
481
            112 => 'COSTA DEL PACIFICO, OTROS NO E',
482
            113 => 'HALIFAX',
483
            114 => 'VANCOUVER',
484
            115 => 'SAINT JOHN',
485
            116 => 'TORONTO',
486
            117 => 'OTROS PUERTOS DE CANADA NO IDE',
487
            118 => 'BAYSIDE',
488
            120 => 'PORT CARTIES',
489
            121 => 'COSTA DEL ATLANTICO, OTROS NO',
490
            122 => 'PUERTOS DEL GOLFO DE MEXICO, O',
491
            123 => 'COSTA DEL PACIFICO, OTROS NO E',
492
            124 => 'QUEBEC',
493
            125 => 'PRINCE RUPERT',
494
            126 => 'HAMILTON',
495
            131 => 'BOSTON',
496
            132 => 'NEW HAVEN',
497
            133 => 'BRIDGEPORT',
498
            134 => 'NEW YORK',
499
            135 => 'FILADELFIA',
500
            136 => 'BALTIMORE',
501
            137 => 'NORFOLK',
502
            138 => 'WILMINGTON',
503
            139 => 'CHARLESTON',
504
            140 => 'SAVANAH',
505
            141 => 'MIAMI',
506
            142 => 'EVERGLADES',
507
            143 => 'JACKSONVILLE',
508
            145 => 'PALM BEACH',
509
            146 => 'BATON ROUGE',
510
            147 => 'COLUMBRES',
511
            148 => 'PITTSBURGH',
512
            149 => 'DULUTH',
513
            150 => 'MILWAUKEE',
514
            151 => 'TAMPA',
515
            152 => 'PENSACOLA',
516
            153 => 'MOBILE',
517
            154 => 'NEW ORLEANS',
518
            155 => 'PORT ARTHUR',
519
            156 => 'GALVESTON',
520
            157 => 'CORPUS CRISTI',
521
            158 => 'BROWSVILLE',
522
            159 => 'HOUSTON',
523
            160 => 'OAKLAND',
524
            161 => 'STOCKTON',
525
            171 => 'SEATLE',
526
            172 => 'PORTLAND',
527
            173 => 'SAN FRANCISCO',
528
            174 => 'LOS ANGELES',
529
            175 => 'LONG BEACH',
530
            176 => 'SAN DIEGO',
531
            180 => 'OTROS PUERTOS DE ESTADOS UNIDO',
532
            199 => 'LOS VILOS',
533
            201 => 'PUCHOCO',
534
            202 => 'OXIQUIM',
535
            203 => 'T. GASERO ABASTIBLE',
536
            204 => 'PATACHE',
537
            205 => 'CALBUCO',
538
            206 => 'MICHILLA',
539
            207 => 'PUERTO ANGAMOS',
540
            208 => 'POSEIDON',
541
            209 => 'TRES PUENTES',
542
            210 => 'OTROS PUERTOS DE MEXICO NO ESP',
543
            211 => 'TAMPICO',
544
            212 => 'COSTA DEL PACIFICO, OTROS PUER',
545
            213 => 'VERACRUZ',
546
            214 => 'COATZACOALCOS',
547
            215 => 'GUAYMAS',
548
            216 => 'MAZATLAN',
549
            217 => 'MANZANILLO',
550
            218 => 'ACAPULCO',
551
            219 => 'GOLFO DE MEXICO, OTROS NO ESPE',
552
            220 => 'ALTAMIRA',
553
            221 => 'CRISTOBAL',
554
            222 => 'BALBOA',
555
            223 => 'COLON',
556
            224 => 'OTROS PUERTOS DE PANAMA NO ESP',
557
            231 => 'OTROS PUERTOS DE COLOMBIA NO E',
558
            232 => 'BUENAVENTURA',
559
            233 => 'BARRANQUILLA',
560
            241 => 'OTROS PUERTOS DE ECUADOR NO ES',
561
            242 => 'GUAYAQUIL',
562
            251 => 'OTROS PUERTOS DE PERU NO ESPEC',
563
            252 => 'CALLAO',
564
            253 => 'ILO',
565
            254 => 'IQUITOS',
566
            261 => 'OTROS PUERTOS DE ARGENTINA NO',
567
            262 => 'BUENOS AIRES',
568
            263 => 'NECOCHEA',
569
            264 => 'MENDOZA',
570
            265 => 'CORDOBA',
571
            266 => 'BAHIA BLANCA',
572
            267 => 'COMODORO RIVADAVIA',
573
            268 => 'PUERTO MADRYN',
574
            269 => 'MAR DEL PLATA',
575
            270 => 'ROSARIO',
576
            271 => 'OTROS PUERTOS DE URUGUAY NO ES',
577
            272 => 'MONTEVIDEO',
578
            281 => 'OTROS PUERTOS DE VENEZUELA NO',
579
            282 => 'LA GUAIRA',
580
            285 => 'MARACAIBO',
581
            291 => 'OTROS PUERTOS DE BRASIL NO ESP',
582
            292 => 'SANTOS',
583
            293 => 'RIO JANEIRO',
584
            294 => 'RIO GRANDE DEL SUR',
585
            295 => 'PARANAGUA',
586
            296 => 'SAO PAULO',
587
            297 => 'SALVADOR',
588
            301 => 'OTROS PUERTOS DE LAS ANTILLAS',
589
            302 => 'CURAZAO',
590
            399 => 'OTROS PUERTOS DE AMERICA NO ES',
591
            411 => 'SHANGAI',
592
            412 => 'DAIREN',
593
            413 => 'OTROS PUERTOS DE CHINA NO ESPE',
594
            421 => 'NANPO',
595
            422 => 'BUSAN CY (PUSAN)',
596
            423 => 'OTROS PUERTOS DE COREA',
597
            431 => 'MANILA',
598
            432 => 'OTROS PUERTOS DE FILIPINAS NO',
599
            441 => 'OTROS PUERTOS DE JAPON NO ESPE',
600
            442 => 'OSAKA',
601
            443 => 'KOBE',
602
            444 => 'YOKOHAMA',
603
            445 => 'NAGOYA',
604
            446 => 'SHIMIZUI',
605
            447 => 'MOJI',
606
            448 => 'YAWATA',
607
            449 => 'FUKUYAMA',
608
            451 => 'KAOHSIUNG',
609
            452 => 'KEELUNG',
610
            453 => 'OTROS PUERTOS DE TAIWAN NO ESP',
611
            461 => 'KARHG ISLAND',
612
            462 => 'OTROS PUERTOS DE IRAN NO ESPEC',
613
            471 => 'CALCUTA',
614
            472 => 'OTROS PUERTOS DE INDIA NO E',
615
            481 => 'CHALNA',
616
            482 => 'OTROS PUERTOS DE BANGLADESH NO',
617
            491 => 'OTROS PUERTOS DE SINGAPURE NO',
618
            492 => 'HONG KONG',
619
            499 => 'OTROS PUERTOS ASIATICOS NO ESP',
620
            511 => 'CONSTANZA',
621
            512 => 'OTROS PUERTOS DE RUMANIA NO ES',
622
            521 => 'VARNA',
623
            522 => 'OTROS PUERTOS DE BULGARIA NO E',
624
            531 => 'RIJEKA',
625
            532 => 'OTROS PUERTOS DE YUGOESLAVIA N',
626
            533 => 'BELGRADO',
627
            534 => 'OTROS PUERTOS DE SER',
628
            535 => 'PODGORITSA',
629
            536 => 'OTROS PUERTOS DE MON',
630
            537 => 'OTROS PUERTOS DE CRO',
631
            538 => 'RIJEKA',
632
            541 => 'OTROS PUERTOS DE ITALIA NO ESP',
633
            542 => 'GENOVA',
634
            543 => 'LIORNA, LIVORNO',
635
            544 => 'NAPOLES',
636
            545 => 'SALERNO',
637
            546 => 'AUGUSTA',
638
            547 => 'SAVONA',
639
            551 => 'OTROS PUERTOS DE FRANCIA NO ES',
640
            552 => 'LA PALLICE',
641
            553 => 'LE HAVRE',
642
            554 => 'MARSELLA',
643
            555 => 'BURDEOS',
644
            556 => 'CALAIS',
645
            557 => 'BREST',
646
            558 => 'RUAN',
647
            561 => 'OTROS PUERTOS DE ESPANA NO ESP',
648
            562 => 'CADIZ',
649
            563 => 'BARCELONA',
650
            564 => 'BILBAO',
651
            565 => 'HUELVA',
652
            566 => 'SEVILLA',
653
            567 => 'TARRAGONA',
654
            571 => 'LIVERPOOL',
655
            572 => 'LONDRES',
656
            573 => 'ROCHESTER',
657
            574 => 'ETEN SALVERRY',
658
            576 => 'OTROS PUERTOS DE INGLATERRA NO',
659
            577 => 'DOVER',
660
            578 => 'PLYMOUTH',
661
            581 => 'HELSINSKI',
662
            582 => 'OTROS PUERTOS DE FINLANDIA NO',
663
            583 => 'HANKO',
664
            584 => 'KEMI',
665
            585 => 'KOKKOLA',
666
            586 => 'KOTKA',
667
            587 => 'OULO',
668
            588 => 'PIETARSAARI',
669
            589 => 'PORI',
670
            591 => 'BREMEN',
671
            592 => 'HAMBURGO',
672
            593 => 'NUREMBERG',
673
            594 => 'FRANKFURT',
674
            595 => 'DUSSELDORF',
675
            596 => 'OTROS PUERTOS DE ALEMANIA NO E',
676
            597 => 'CUXHAVEN',
677
            598 => 'ROSTOCK',
678
            599 => 'OLDENBURG',
679
            601 => 'AMBERES',
680
            602 => 'OTROS PUERTOS DE BELGICA NO ES',
681
            603 => 'ZEEBRUGGE',
682
            604 => 'GHENT',
683
            605 => 'OOSTENDE',
684
            611 => 'LISBOA',
685
            612 => 'OTROS PUERTOS DE PORTUGAL NO E',
686
            613 => 'SETUBAL',
687
            621 => 'AMSTERDAM',
688
            622 => 'ROTTERDAM',
689
            623 => 'OTROS PUERTOS DE HOLANDA NO ES',
690
            631 => 'GOTEMBURGO',
691
            632 => 'OTROS PUERTOS DE SUECIA NO ESP',
692
            633 => 'MALMO',
693
            634 => 'HELSIMBORG',
694
            635 => 'KALMAR',
695
            641 => 'AARHUS',
696
            642 => 'COPENHAGEN',
697
            643 => 'OTROS PUERTOS DE DINAMARCA NO',
698
            644 => 'AALBORG',
699
            645 => 'ODENSE',
700
            651 => 'OSLO',
701
            652 => 'OTROS PUERTOS DE NORUEGA NO ES',
702
            653 => 'STAVANGER',
703
            699 => 'OTROS PUERTOS DE EUROPA NO ESP',
704
            711 => 'DURBAM',
705
            712 => 'CIUDAD DEL CABO',
706
            713 => 'OTROS PUERTOS DE SUDAFRICA NO',
707
            714 => 'SALDANHA',
708
            715 => 'PORT-ELIZABETH',
709
            716 => 'MOSSEL-BAY',
710
            717 => 'EAST-LONDON',
711
            799 => 'OTROS PUERTOS DE AFRICA NO ESP',
712
            811 => 'SIDNEY',
713
            812 => 'FREMANTLE',
714
            813 => 'OTROS PUERTOS DE AUSTRALIA NO',
715
            814 => 'ADELAIDA',
716
            815 => 'DARWIN',
717
            816 => 'GERALDTON',
718
            899 => 'OTROS PUERTOS DE OCEANIA NO',
719
            900 => 'RANCHO DE NAVES Y AERONAVES DE',
720
            901 => 'ARICA',
721
            902 => 'IQUIQUE',
722
            903 => 'ANTOFAGASTA',
723
            904 => 'COQUIMBO',
724
            905 => 'VALPARAISO',
725
            906 => 'SAN ANTONIO',
726
            907 => 'TALCAHUANO',
727
            908 => 'SAN VICENTE',
728
            909 => 'LIRQUEN',
729
            910 => 'PUERTO MONTT',
730
            911 => 'CHACABUCO/PTO.AYSEN',
731
            912 => 'PUNTA ARENAS',
732
            913 => 'PATILLOS',
733
            914 => 'TOCOPILLA',
734
            915 => 'MEJILLONES',
735
            916 => 'TALTAL',
736
            917 => 'CHANARAL/BARQUITO',
737
            918 => 'CALDERA',
738
            919 => 'CALDERILLA',
739
            920 => 'HUASCO/GUACOLDA',
740
            921 => 'QUINTERO',
741
            922 => 'JUAN FERNANDEZ',
742
            923 => 'CONSTUTUCION',
743
            924 => 'TOME',
744
            925 => 'PENCO',
745
            926 => 'CORONEL',
746
            927 => 'LOTA',
747
            928 => 'LEBU',
748
            929 => 'ISLA DE PASCUA',
749
            930 => 'CORRAL',
750
            931 => 'ANCUD',
751
            932 => 'CASTRO',
752
            933 => 'QUELLON',
753
            934 => 'CHAITEN',
754
            935 => 'TORTEL',
755
            936 => 'NATALES',
756
            937 => 'GUARELLO',
757
            938 => 'CUTTER COVE',
758
            939 => 'PERCY',
759
            940 => 'CLARENCIA',
760
            941 => 'GREGORIO',
761
            942 => 'CABO NEGRO',
762
            943 => 'PUERTO WILLIAMS',
763
            944 => 'TERRITORIO ANTARTICO CHILENO',
764
            945 => 'SALINAS',
765
            946 => 'GUAYACAN',
766
            947 => 'PUNTA DELGADA',
767
            948 => 'VENTANAS',
768
            949 => 'PINO HACHADO(LIUCURA',
769
            950 => 'CALETA COLOSO',
770
            951 => 'AGUAS NEGRAS',
771
            952 => 'ZONA FRANCA IQUIQUE',
772
            953 => 'ZONA FRANCA PUNTA ARENAS',
773
            954 => 'RIO MAYER',
774
            955 => 'RIO MOSCO',
775
            956 => 'VISVIRI',
776
            957 => 'CHACALLUTA',
777
            958 => 'CHUNGARA',
778
            959 => 'COLCHANE',
779
            960 => 'ABRA DE NAPA',
780
            961 => 'OLLAGUE',
781
            962 => 'SAN PEDRO DE ATACAMA',
782
            963 => 'SOCOMPA',
783
            964 => 'SAN FRANCISCO',
784
            965 => 'LOS LIBERTADORES',
785
            966 => 'MAHUIL MALAL',
786
            967 => 'CARDENAL SAMORE',
787
            968 => 'PEREZ ROSALES',
788
            969 => 'FUTALEUFU',
789
            970 => 'PALENA-CARRENLEUFU',
790
            971 => 'PANGUIPULLI',
791
            972 => 'HUAHUM',
792
            973 => 'LAGO VERDE',
793
            974 => 'APPELEG',
794
            975 => 'PAMPA ALTA',
795
            976 => 'HUEMULES',
796
            977 => 'CHILE CHICO',
797
            978 => 'BAKER',
798
            979 => 'DOROTEA',
799
            980 => 'CASAS VIEJAS',
800
            981 => 'MONTE AYMOND',
801
            982 => 'SAN SEBASTIAN',
802
            983 => 'COYHAIQUE ALTO',
803
            984 => 'TRIANA',
804
            985 => 'IBANEZ PALAVICINI',
805
            986 => 'VILLA OHIGGINS',
806
            987 => 'AEROP.CHACALLUTA',
807
            988 => 'AEROP.DIEGO ARACENA',
808
            989 => 'AEROP.CERRO MORENO',
809
            990 => 'AEROP.EL TEPUAL',
810
            991 => 'AEROP.C.I.DEL CAMPO',
811
            992 => 'AEROP.A.M.BENITEZ',
812
            993 => 'CAP HUACHIPATO',
813
            994 => 'ARICA-TACNA',
814
            995 => 'ARICA-LA PAZ',
815
            996 => 'TERM. PETROLERO ENAP',
816
            997 => 'OTROS PTOS. CHILENOS',
817
            998 => 'PASO JAMA',
818
        ],
819
    ]; ///< Tablas con los datos de la aduana
820
821
    private static $tablasInvertidas = null; ///< Tablas con los datos de la aduana pero invertidas (el valor es la llave de la tabla)
822
823
    /**
824
     * Entrega la glosa para el campo en la tabla
825
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
826
     * @version 2016-04-05
827
     */
828
    public static function getGlosa($tag)
829
    {
830
        if (!isset(self::$tablas[$tag])) {
831
            return false;
832
        }
833
        return is_array(self::$tablas[$tag]) ? self::$tablas[$tag]['glosa'] : self::$tablas[$tag];
834
    }
835
836
    /**
837
     * Entrega el valor traducido a partir de la tabla
838
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
839
     * @version 2016-07-27
840
     */
841
    public static function getValor($tag, $codigo)
842
    {
843
        if (!isset(self::$tablas[$tag])) {
844
            return false;
845
        }
846
        if (!is_array(self::$tablas[$tag])) {
847
            return $codigo;
848
        }
849
        $tabla = isset(self::$tablas[$tag]['valor']) ? self::$tablas[$tag]['valor'] : self::$tablas[self::$tablas[$tag]['tabla']];
850
        if ($tag=='TipoBultos') {
851
            $valor = isset($tabla[$codigo['CodTpoBultos']]) ? $tabla[$codigo['CodTpoBultos']] : $codigo['CodTpoBultos'];
852
            $valor = $codigo['CantBultos'].' '.$valor;
853
            if (!empty($codigo['IdContainer'])) {
854
                $valor .= ' ('.$codigo['IdContainer'].' / '.$codigo['Sello'].' / '.$codigo['EmisorSello'].')';
855
            }
856
            else if (!empty($codigo['Marcas'])) {
857
                $valor .= ' ('.$codigo['Marcas'].')';
858
            }
859
        } else {
860
            $valor = isset($tabla[$codigo]) ? $tabla[$codigo] : $codigo;
861
        }
862
        return $valor;
863
    }
864
865
    /**
866
     * Método que entrega a partir de su valor (texto) el código que corresponde
867
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
868
     * @version 2016-07-26
869
     */
870
    public static function getCodigo($tag, $valor)
871
    {
872
        if (self::$tablasInvertidas===null) {
873
            self::$tablasInvertidas = self::getTablasInvertidas();
874
        }
875
        $valor = strtoupper($valor);
876
        return isset(self::$tablasInvertidas[$tag][$valor]) ? self::$tablasInvertidas[$tag][$valor] : $valor;
877
    }
878
879
    /**
880
     * Método que crea las tablas invertidas en memoria para poder hacer más
881
     * rápidas las búsquedas.
882
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
883
     * @version 2016-07-06
884
     */
885
    private static function getTablasInvertidas()
886
    {
887
        self::$tablasInvertidas = [];
888
        foreach (self::$tablas as $tag => $info) {
889
            if (is_string($info) or (!isset($info['valor']) and !isset($info['tabla']))) {
890
                continue;
891
            }
892
            $tabla = isset($info['valor']) ? $info['valor'] : self::$tablas[$info['tabla']];
893
            foreach ($tabla as &$val) {
894
                $val = str_replace(
895
                    ['Á', 'É', 'Í', 'Ó', 'Ú', 'Ñ', 'á', 'é', 'í', 'ó', 'ú', 'ñ'],
896
                    ['A', 'E', 'I', 'O', 'U', 'N', 'a', 'e', 'i', 'o', 'u', 'n'],
897
                    $val
898
                );
899
                $val = strtoupper($val);
900
            }
901
            self::$tablasInvertidas[$tag] = array_flip($tabla);
902
        }
903
        return self::$tablasInvertidas;
904
    }
905
906
    /**
907
     * Método que entrega los datos de las nacionalidades
908
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
909
     * @version 2016-07-13
910
     */
911
    public static function getNacionalidades()
912
    {
913
        return self::$tablas['paises'];
914
    }
915
916
    /**
917
     * Método que entrega la glosa de la nacionalidad a partir de su código
918
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
919
     * @version 2016-07-29
920
     */
921
    public static function getNacionalidad($codigo)
922
    {
923
        return isset(self::$tablas['paises'][$codigo]) ? self::$tablas['paises'][$codigo] : $codigo;
924
    }
925
926
    /**
927
     * Método que entrega los datos de las formas de pago
928
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
929
     * @version 2019-07-25
930
     */
931
    public static function getFormasDePago()
932
    {
933
        return self::$tablas['FmaPagExp']['valor'];
934
    }
935
936
    /**
937
     * Método que entrega los datos de las modalidades de venta
938
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
939
     * @version 2019-07-25
940
     */
941
    public static function getModalidadesDeVenta()
942
    {
943
        return self::$tablas['CodModVenta']['valor'];
944
    }
945
946
    /**
947
     * Método que entrega los datos de las clausulas de venta
948
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
949
     * @version 2019-07-25
950
     */
951
    public static function getClausulasDeVenta()
952
    {
953
        return self::$tablas['CodClauVenta']['valor'];
954
    }
955
956
    /**
957
     * Método que entrega los datos de los tipos de transportes
958
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
959
     * @version 2019-07-25
960
     */
961
    public static function getTransportes()
962
    {
963
        return self::$tablas['CodViaTransp']['valor'];
964
    }
965
966
    /**
967
     * Método que entrega los datos de los puertos
968
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
969
     * @version 2019-07-25
970
     */
971
    public static function getPuertos()
972
    {
973
        return self::$tablas['puertos'];
974
    }
975
976
    /**
977
     * Método que entrega los datos de las unidades
978
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
979
     * @version 2019-07-25
980
     */
981
    public static function getUnidades()
982
    {
983
        return self::$tablas['unidades'];
984
    }
985
986
    /**
987
     * Método que entrega los datos de los tipos de bultos
988
     * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
989
     * @version 2019-07-25
990
     */
991
    public static function getBultos()
992
    {
993
        return self::$tablas['TipoBultos']['valor'];
994
    }
995
996
}
997