1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
33: if (!defined('_PS_VERSION_')) {
34: exit;
35: }
36:
37: 38: 39: 40: 41: 42:
43: class eabi_dpd_parcelstore_dpd_helper {
44: protected $_apis = array();
45:
46: 47: 48: 49: 50:
51: private static $_territoryData = array(
52: 'AD' => 'ca_AD', 'AE' => 'ar_AE', 'AF' => 'fa_AF', 'AG' => 'en_AG', 'AI' => 'en_AI',
53: 'AL' => 'sq_AL', 'AM' => 'hy_AM', 'AN' => 'pap_AN', 'AO' => 'pt_AO', 'AQ' => 'und_AQ',
54: 'AR' => 'es_AR', 'AS' => 'sm_AS', 'AT' => 'de_AT', 'AU' => 'en_AU', 'AW' => 'nl_AW',
55: 'AX' => 'sv_AX', 'AZ' => 'az_Latn_AZ', 'BA' => 'bs_BA', 'BB' => 'en_BB', 'BD' => 'bn_BD',
56: 'BE' => 'nl_BE', 'BF' => 'mos_BF', 'BG' => 'bg_BG', 'BH' => 'ar_BH', 'BI' => 'rn_BI',
57: 'BJ' => 'fr_BJ', 'BL' => 'fr_BL', 'BM' => 'en_BM', 'BN' => 'ms_BN', 'BO' => 'es_BO',
58: 'BR' => 'pt_BR', 'BS' => 'en_BS', 'BT' => 'dz_BT', 'BV' => 'und_BV', 'BW' => 'en_BW',
59: 'BY' => 'be_BY', 'BZ' => 'en_BZ', 'CA' => 'en_CA', 'CC' => 'ms_CC', 'CD' => 'sw_CD',
60: 'CF' => 'fr_CF', 'CG' => 'fr_CG', 'CH' => 'de_CH', 'CI' => 'fr_CI', 'CK' => 'en_CK',
61: 'CL' => 'es_CL', 'CM' => 'fr_CM', 'CN' => 'zh_Hans_CN', 'CO' => 'es_CO', 'CR' => 'es_CR',
62: 'CU' => 'es_CU', 'CV' => 'kea_CV', 'CX' => 'en_CX', 'CY' => 'el_CY', 'CZ' => 'cs_CZ',
63: 'DE' => 'de_DE', 'DJ' => 'aa_DJ', 'DK' => 'da_DK', 'DM' => 'en_DM', 'DO' => 'es_DO',
64: 'DZ' => 'ar_DZ', 'EC' => 'es_EC', 'EE' => 'et_EE', 'EG' => 'ar_EG', 'EH' => 'ar_EH',
65: 'ER' => 'ti_ER', 'ES' => 'es_ES', 'ET' => 'en_ET', 'FI' => 'fi_FI', 'FJ' => 'hi_FJ',
66: 'FK' => 'en_FK', 'FM' => 'chk_FM', 'FO' => 'fo_FO', 'FR' => 'fr_FR', 'GA' => 'fr_GA',
67: 'GB' => 'en_GB', 'GD' => 'en_GD', 'GE' => 'ka_GE', 'GF' => 'fr_GF', 'GG' => 'en_GG',
68: 'GH' => 'ak_GH', 'GI' => 'en_GI', 'GL' => 'iu_GL', 'GM' => 'en_GM', 'GN' => 'fr_GN',
69: 'GP' => 'fr_GP', 'GQ' => 'fan_GQ', 'GR' => 'el_GR', 'GS' => 'und_GS', 'GT' => 'es_GT',
70: 'GU' => 'en_GU', 'GW' => 'pt_GW', 'GY' => 'en_GY', 'HK' => 'zh_Hant_HK', 'HM' => 'und_HM',
71: 'HN' => 'es_HN', 'HR' => 'hr_HR', 'HT' => 'ht_HT', 'HU' => 'hu_HU', 'ID' => 'id_ID',
72: 'IE' => 'en_IE', 'IL' => 'he_IL', 'IM' => 'en_IM', 'IN' => 'hi_IN', 'IO' => 'und_IO',
73: 'IQ' => 'ar_IQ', 'IR' => 'fa_IR', 'IS' => 'is_IS', 'IT' => 'it_IT', 'JE' => 'en_JE',
74: 'JM' => 'en_JM', 'JO' => 'ar_JO', 'JP' => 'ja_JP', 'KE' => 'en_KE', 'KG' => 'ky_Cyrl_KG',
75: 'KH' => 'km_KH', 'KI' => 'en_KI', 'KM' => 'ar_KM', 'KN' => 'en_KN', 'KP' => 'ko_KP',
76: 'KR' => 'ko_KR', 'KW' => 'ar_KW', 'KY' => 'en_KY', 'KZ' => 'ru_KZ', 'LA' => 'lo_LA',
77: 'LB' => 'ar_LB', 'LC' => 'en_LC', 'LI' => 'de_LI', 'LK' => 'si_LK', 'LR' => 'en_LR',
78: 'LS' => 'st_LS', 'LT' => 'lt_LT', 'LU' => 'fr_LU', 'LV' => 'lv_LV', 'LY' => 'ar_LY',
79: 'MA' => 'ar_MA', 'MC' => 'fr_MC', 'MD' => 'ro_MD', 'ME' => 'sr_Latn_ME', 'MF' => 'fr_MF',
80: 'MG' => 'mg_MG', 'MH' => 'mh_MH', 'MK' => 'mk_MK', 'ML' => 'bm_ML', 'MM' => 'my_MM',
81: 'MN' => 'mn_Cyrl_MN', 'MO' => 'zh_Hant_MO', 'MP' => 'en_MP', 'MQ' => 'fr_MQ', 'MR' => 'ar_MR',
82: 'MS' => 'en_MS', 'MT' => 'mt_MT', 'MU' => 'mfe_MU', 'MV' => 'dv_MV', 'MW' => 'ny_MW',
83: 'MX' => 'es_MX', 'MY' => 'ms_MY', 'MZ' => 'pt_MZ', 'NA' => 'kj_NA', 'NC' => 'fr_NC',
84: 'NE' => 'ha_Latn_NE', 'NF' => 'en_NF', 'NG' => 'en_NG', 'NI' => 'es_NI', 'NL' => 'nl_NL',
85: 'NO' => 'nb_NO', 'NP' => 'ne_NP', 'NR' => 'en_NR', 'NU' => 'niu_NU', 'NZ' => 'en_NZ',
86: 'OM' => 'ar_OM', 'PA' => 'es_PA', 'PE' => 'es_PE', 'PF' => 'fr_PF', 'PG' => 'tpi_PG',
87: 'PH' => 'fil_PH', 'PK' => 'ur_PK', 'PL' => 'pl_PL', 'PM' => 'fr_PM', 'PN' => 'en_PN',
88: 'PR' => 'es_PR', 'PS' => 'ar_PS', 'PT' => 'pt_PT', 'PW' => 'pau_PW', 'PY' => 'gn_PY',
89: 'QA' => 'ar_QA', 'RE' => 'fr_RE', 'RO' => 'ro_RO', 'RS' => 'sr_Cyrl_RS', 'RU' => 'ru_RU',
90: 'RW' => 'rw_RW', 'SA' => 'ar_SA', 'SB' => 'en_SB', 'SC' => 'crs_SC', 'SD' => 'ar_SD',
91: 'SE' => 'sv_SE', 'SG' => 'en_SG', 'SH' => 'en_SH', 'SI' => 'sl_SI', 'SJ' => 'nb_SJ',
92: 'SK' => 'sk_SK', 'SL' => 'kri_SL', 'SM' => 'it_SM', 'SN' => 'fr_SN', 'SO' => 'sw_SO',
93: 'SR' => 'srn_SR', 'ST' => 'pt_ST', 'SV' => 'es_SV', 'SY' => 'ar_SY', 'SZ' => 'en_SZ',
94: 'TC' => 'en_TC', 'TD' => 'fr_TD', 'TF' => 'und_TF', 'TG' => 'fr_TG', 'TH' => 'th_TH',
95: 'TJ' => 'tg_Cyrl_TJ', 'TK' => 'tkl_TK', 'TL' => 'pt_TL', 'TM' => 'tk_TM', 'TN' => 'ar_TN',
96: 'TO' => 'to_TO', 'TR' => 'tr_TR', 'TT' => 'en_TT', 'TV' => 'tvl_TV', 'TW' => 'zh_Hant_TW',
97: 'TZ' => 'sw_TZ', 'UA' => 'uk_UA', 'UG' => 'sw_UG', 'UM' => 'en_UM', 'US' => 'en_US',
98: 'UY' => 'es_UY', 'UZ' => 'uz_Cyrl_UZ', 'VA' => 'it_VA', 'VC' => 'en_VC', 'VE' => 'es_VE',
99: 'VG' => 'en_VG', 'VI' => 'en_VI', 'VU' => 'bi_VU', 'WF' => 'wls_WF', 'WS' => 'sm_WS',
100: 'YE' => 'ar_YE', 'YT' => 'swb_YT', 'ZA' => 'en_ZA', 'ZM' => 'en_ZM', 'ZW' => 'sn_ZW'
101: );
102:
103: 104: 105: 106:
107: private static $_weekdayNames = array(
108: 'aa' => array(
109: 'sun' => 'A',
110: 'mon' => 'E',
111: 'tue' => 'T',
112: 'wed' => 'A',
113: 'thu' => 'K',
114: 'fri' => 'G',
115: 'sat' => 'S',
116: ),
117: 'af' => array(
118: 'sun' => 'So',
119: 'mon' => 'Ma',
120: 'tue' => 'Di',
121: 'wed' => 'Wo',
122: 'thu' => 'Do',
123: 'fri' => 'Vr',
124: 'sat' => 'Sa',
125: ),
126: 'ak' => array(
127: 'sun' => 'K',
128: 'mon' => 'D',
129: 'tue' => 'B',
130: 'wed' => 'W',
131: 'thu' => 'Y',
132: 'fri' => 'F',
133: 'sat' => 'M',
134: ),
135: 'ar' => array(
136: 'sun' => 'ح',
137: 'mon' => 'ن',
138: 'tue' => 'ث',
139: 'wed' => 'ر',
140: 'thu' => 'خ',
141: 'fri' => 'ج',
142: 'sat' => 'س',
143: ),
144: 'az' => array(
145: 'sun' => 'B.',
146: 'mon' => 'B.E.',
147: 'tue' => 'Ç.A.',
148: 'wed' => 'Ç.',
149: 'thu' => 'C.A.',
150: 'fri' => 'C',
151: 'sat' => 'Ş.',
152: ),
153: 'be' => array(
154: 'sun' => 'н',
155: 'mon' => 'п',
156: 'tue' => 'а',
157: 'wed' => 'с',
158: 'thu' => 'ч',
159: 'fri' => 'п',
160: 'sat' => 'с',
161: ),
162: 'bg' => array(
163: 'sun' => 'н',
164: 'mon' => 'п',
165: 'tue' => 'в',
166: 'wed' => 'с',
167: 'thu' => 'ч',
168: 'fri' => 'п',
169: 'sat' => 'с',
170: ),
171: 'bs' => array(
172: 'sun' => 'Ned',
173: 'mon' => 'Pon',
174: 'tue' => 'Uto',
175: 'wed' => 'Sri',
176: 'thu' => 'Čet',
177: 'fri' => 'Pet',
178: 'sat' => 'Sub',
179: ),
180: 'ca' => array(
181: 'sun' => 'g',
182: 'mon' => 'l',
183: 'tue' => 't',
184: 'wed' => 'c',
185: 'thu' => 'j',
186: 'fri' => 'v',
187: 'sat' => 's',
188: ),
189: 'cch' => array(
190: 'sun' => 'Yok',
191: 'mon' => 'Tung',
192: 'tue' => 'T. Tung',
193: 'wed' => 'Tsan',
194: 'thu' => 'Nas',
195: 'fri' => 'Nat',
196: 'sat' => 'Chir',
197: ),
198: 'cs' => array(
199: 'sun' => 'N',
200: 'mon' => 'P',
201: 'tue' => 'Ú',
202: 'wed' => 'S',
203: 'thu' => 'Č',
204: 'fri' => 'P',
205: 'sat' => 'S',
206: ),
207: 'cy' => array(
208: 'sun' => 'S',
209: 'mon' => 'L',
210: 'tue' => 'M',
211: 'wed' => 'M',
212: 'thu' => 'I',
213: 'fri' => 'G',
214: 'sat' => 'S',
215: ),
216: 'da' => array(
217: 'sun' => 'S',
218: 'mon' => 'M',
219: 'tue' => 'T',
220: 'wed' => 'O',
221: 'thu' => 'T',
222: 'fri' => 'F',
223: 'sat' => 'L',
224: ),
225: 'de' => array(
226: 'sun' => 'S',
227: 'mon' => 'M',
228: 'tue' => 'D',
229: 'wed' => 'M',
230: 'thu' => 'D',
231: 'fri' => 'F',
232: 'sat' => 'S',
233: ),
234: 'ee' => array(
235: 'sun' => 'K',
236: 'mon' => 'D',
237: 'tue' => 'B',
238: 'wed' => 'K',
239: 'thu' => 'Y',
240: 'fri' => 'F',
241: 'sat' => 'M',
242: ),
243: 'el' => array(
244: 'sun' => 'Κ',
245: 'mon' => 'Δ',
246: 'tue' => 'Τ',
247: 'wed' => 'Τ',
248: 'thu' => 'Π',
249: 'fri' => 'Π',
250: 'sat' => 'Σ',
251: ),
252: 'en' => array(
253: 'sun' => 'S',
254: 'mon' => 'M',
255: 'tue' => 'T',
256: 'wed' => 'W',
257: 'thu' => 'T',
258: 'fri' => 'F',
259: 'sat' => 'S',
260: ),
261: 'eo' => array(
262: 'sun' => 'di',
263: 'mon' => 'lu',
264: 'tue' => 'ma',
265: 'wed' => 'me',
266: 'thu' => 'ĵa',
267: 'fri' => 've',
268: 'sat' => 'sa',
269: ),
270: 'es' => array(
271: 'sun' => 'D',
272: 'mon' => 'L',
273: 'tue' => 'M',
274: 'wed' => 'M',
275: 'thu' => 'J',
276: 'fri' => 'V',
277: 'sat' => 'S',
278: ),
279: 'et' => array(
280: 'sun' => 'P',
281: 'mon' => 'E',
282: 'tue' => 'T',
283: 'wed' => 'K',
284: 'thu' => 'N',
285: 'fri' => 'R',
286: 'sat' => 'L',
287: ),
288: 'eu' => array(
289: 'sun' => 'ig',
290: 'mon' => 'al',
291: 'tue' => 'as',
292: 'wed' => 'az',
293: 'thu' => 'og',
294: 'fri' => 'or',
295: 'sat' => 'lr',
296: ),
297: 'fa' => array(
298: 'sun' => 'ی',
299: 'mon' => 'د',
300: 'tue' => 'س',
301: 'wed' => 'چ',
302: 'thu' => 'پ',
303: 'fri' => 'ج',
304: 'sat' => 'ش',
305: ),
306: 'fi' => array(
307: 'sun' => 'S',
308: 'mon' => 'M',
309: 'tue' => 'T',
310: 'wed' => 'K',
311: 'thu' => 'T',
312: 'fri' => 'P',
313: 'sat' => 'L',
314: ),
315: 'fil' => array(
316: 'sun' => 'L',
317: 'mon' => 'L',
318: 'tue' => 'M',
319: 'wed' => 'M',
320: 'thu' => 'H',
321: 'fri' => 'B',
322: 'sat' => 'S',
323: ),
324: 'fo' => array(
325: 'sun' => 'sun',
326: 'mon' => 'mán',
327: 'tue' => 'týs',
328: 'wed' => 'mik',
329: 'thu' => 'hós',
330: 'fri' => 'frí',
331: 'sat' => 'ley',
332: ),
333: 'fr' => array(
334: 'sun' => 'D',
335: 'mon' => 'L',
336: 'tue' => 'M',
337: 'wed' => 'M',
338: 'thu' => 'J',
339: 'fri' => 'V',
340: 'sat' => 'S',
341: ),
342: 'fur' => array(
343: 'sun' => 'D',
344: 'mon' => 'L',
345: 'tue' => 'M',
346: 'wed' => 'M',
347: 'thu' => 'J',
348: 'fri' => 'V',
349: 'sat' => 'S',
350: ),
351: 'ga' => array(
352: 'sun' => 'D',
353: 'mon' => 'L',
354: 'tue' => 'M',
355: 'wed' => 'C',
356: 'thu' => 'D',
357: 'fri' => 'A',
358: 'sat' => 'S',
359: ),
360: 'gaa' => array(
361: 'sun' => 'Ho',
362: 'mon' => 'Dzu',
363: 'tue' => 'Dzf',
364: 'wed' => 'Sho',
365: 'thu' => 'Soo',
366: 'fri' => 'Soh',
367: 'sat' => 'Ho',
368: ),
369: 'gl' => array(
370: 'sun' => 'D',
371: 'mon' => 'L',
372: 'tue' => 'M',
373: 'wed' => 'M',
374: 'thu' => 'X',
375: 'fri' => 'V',
376: 'sat' => 'S',
377: ),
378: 'gsw' => array(
379: 'sun' => 'S',
380: 'mon' => 'M',
381: 'tue' => 'D',
382: 'wed' => 'M',
383: 'thu' => 'D',
384: 'fri' => 'F',
385: 'sat' => 'S',
386: ),
387: 'gv' => array(
388: 'sun' => 'Jed',
389: 'mon' => 'Jel',
390: 'tue' => 'Jem',
391: 'wed' => 'Jerc',
392: 'thu' => 'Jerd',
393: 'fri' => 'Jeh',
394: 'sat' => 'Jes',
395: ),
396: 'ha' => array(
397: 'sun' => 'L',
398: 'mon' => 'L',
399: 'tue' => 'T',
400: 'wed' => 'L',
401: 'thu' => 'A',
402: 'fri' => 'J',
403: 'sat' => 'A',
404: ),
405: 'haw' => array(
406: 'sun' => 'LP',
407: 'mon' => 'P1',
408: 'tue' => 'P2',
409: 'wed' => 'P3',
410: 'thu' => 'P4',
411: 'fri' => 'P5',
412: 'sat' => 'P6',
413: ),
414: 'he' => array(
415: 'sun' => 'א',
416: 'mon' => 'ב',
417: 'tue' => 'ג',
418: 'wed' => 'ד',
419: 'thu' => 'ה',
420: 'fri' => 'ו',
421: 'sat' => 'ש',
422: ),
423: 'hi' => array(
424: 'sun' => 'र',
425: 'mon' => 'सो',
426: 'tue' => 'मं',
427: 'wed' => 'बु',
428: 'thu' => 'गु',
429: 'fri' => 'शु',
430: 'sat' => 'श',
431: ),
432: 'hr' => array(
433: 'sun' => 'n',
434: 'mon' => 'p',
435: 'tue' => 'u',
436: 'wed' => 's',
437: 'thu' => 'č',
438: 'fri' => 'p',
439: 'sat' => 's',
440: ),
441: 'hu' => array(
442: 'sun' => 'V',
443: 'mon' => 'H',
444: 'tue' => 'K',
445: 'wed' => 'S',
446: 'thu' => 'C',
447: 'fri' => 'P',
448: 'sat' => 'S',
449: ),
450: 'hy' => array(
451: 'sun' => 'Կիր',
452: 'mon' => 'Երկ',
453: 'tue' => 'Երք',
454: 'wed' => 'Չոր',
455: 'thu' => 'Հնգ',
456: 'fri' => 'Ուր',
457: 'sat' => 'Շաբ',
458: ),
459: 'ia' => array(
460: 'sun' => 'dom',
461: 'mon' => 'lun',
462: 'tue' => 'mar',
463: 'wed' => 'mer',
464: 'thu' => 'jov',
465: 'fri' => 'ven',
466: 'sat' => 'sab',
467: ),
468: 'id' => array(
469: 'sun' => 'Min',
470: 'mon' => 'Sen',
471: 'tue' => 'Sel',
472: 'wed' => 'Rab',
473: 'thu' => 'Kam',
474: 'fri' => 'Jum',
475: 'sat' => 'Sab',
476: ),
477: 'ig' => array(
478: 'sun' => 'Ụka',
479: 'mon' => 'Mọn',
480: 'tue' => 'Tiu',
481: 'wed' => 'Wen',
482: 'thu' => 'Tọọ',
483: 'fri' => 'Fraị',
484: 'sat' => 'Sat',
485: ),
486: 'in' => array(
487: 'sun' => 'Min',
488: 'mon' => 'Sen',
489: 'tue' => 'Sel',
490: 'wed' => 'Rab',
491: 'thu' => 'Kam',
492: 'fri' => 'Jum',
493: 'sat' => 'Sab',
494: ),
495: 'is' => array(
496: 'sun' => 's',
497: 'mon' => 'm',
498: 'tue' => 'þ',
499: 'wed' => 'm',
500: 'thu' => 'f',
501: 'fri' => 'f',
502: 'sat' => 'l',
503: ),
504: 'it' => array(
505: 'sun' => 'D',
506: 'mon' => 'L',
507: 'tue' => 'M',
508: 'wed' => 'M',
509: 'thu' => 'G',
510: 'fri' => 'V',
511: 'sat' => 'S',
512: ),
513: 'iw' => array(
514: 'sun' => 'א',
515: 'mon' => 'ב',
516: 'tue' => 'ג',
517: 'wed' => 'ד',
518: 'thu' => 'ה',
519: 'fri' => 'ו',
520: 'sat' => 'ש',
521: ),
522: 'ja' => array(
523: 'sun' => '日',
524: 'mon' => '月',
525: 'tue' => '火',
526: 'wed' => '水',
527: 'thu' => '木',
528: 'fri' => '金',
529: 'sat' => '土',
530: ),
531: 'ka' => array(
532: 'sun' => 'კ',
533: 'mon' => 'ო',
534: 'tue' => 'ს',
535: 'wed' => 'ო',
536: 'thu' => 'ხ',
537: 'fri' => 'პ',
538: 'sat' => 'შ',
539: ),
540: 'kaj' => array(
541: 'sun' => 'Lad',
542: 'mon' => 'Lin',
543: 'tue' => 'Tal',
544: 'wed' => 'Lar',
545: 'thu' => 'Lam',
546: 'fri' => 'Jum',
547: 'sat' => 'Asa',
548: ),
549: 'kam' => array(
550: 'sun' => 'Jpl',
551: 'mon' => 'Jtt',
552: 'tue' => 'Jnn',
553: 'wed' => 'Jtn',
554: 'thu' => 'Alh',
555: 'fri' => 'Ijm',
556: 'sat' => 'Jms',
557: ),
558: 'kcg' => array(
559: 'sun' => 'Lad',
560: 'mon' => 'Tan',
561: 'tue' => 'Tal',
562: 'wed' => 'Lar',
563: 'thu' => 'Lam',
564: 'fri' => 'Jum',
565: 'sat' => 'Asa',
566: ),
567: 'kfo' => array(
568: 'sun' => 'Lah',
569: 'mon' => 'Kub',
570: 'tue' => 'Gba',
571: 'wed' => 'Tan',
572: 'thu' => 'Yei',
573: 'fri' => 'Koy',
574: 'sat' => 'Sat',
575: ),
576: 'kk' => array(
577: 'sun' => 'жс.',
578: 'mon' => 'дс.',
579: 'tue' => 'сс.',
580: 'wed' => 'ср.',
581: 'thu' => 'бс.',
582: 'fri' => 'жм.',
583: 'sat' => 'сһ.',
584: ),
585: 'kl' => array(
586: 'sun' => 'sab',
587: 'mon' => 'ata',
588: 'tue' => 'mar',
589: 'wed' => 'pin',
590: 'thu' => 'sis',
591: 'fri' => 'tal',
592: 'sat' => 'arf',
593: ),
594: 'ko' => array(
595: 'sun' => '일',
596: 'mon' => '월',
597: 'tue' => '화',
598: 'wed' => '수',
599: 'thu' => '목',
600: 'fri' => '금',
601: 'sat' => '토',
602: ),
603: 'kok' => array(
604: 'sun' => 'रवि',
605: 'mon' => 'सोम',
606: 'tue' => 'मंगळ',
607: 'wed' => 'बुध',
608: 'thu' => 'गुरु',
609: 'fri' => 'शुक्र',
610: 'sat' => 'शनि',
611: ),
612: 'ku' => array(
613: 'sun' => 'ی',
614: 'mon' => 'د',
615: 'tue' => 'س',
616: 'wed' => '4',
617: 'thu' => '5',
618: 'fri' => '6',
619: 'sat' => '7',
620: ),
621: 'kw' => array(
622: 'sun' => 'Sul',
623: 'mon' => 'Lun',
624: 'tue' => 'Mth',
625: 'wed' => 'Mhr',
626: 'thu' => 'Yow',
627: 'fri' => 'Gwe',
628: 'sat' => 'Sad',
629: ),
630: 'ln' => array(
631: 'sun' => 'eye',
632: 'mon' => 'm1',
633: 'tue' => 'm2',
634: 'wed' => 'm3',
635: 'thu' => 'm4',
636: 'fri' => 'm5',
637: 'sat' => 'mps',
638: ),
639: 'lt' => array(
640: 'sun' => 'S',
641: 'mon' => 'P',
642: 'tue' => 'A',
643: 'wed' => 'T',
644: 'thu' => 'K',
645: 'fri' => 'P',
646: 'sat' => 'Š',
647: ),
648: 'lv' => array(
649: 'sun' => 'S',
650: 'mon' => 'P',
651: 'tue' => 'O',
652: 'wed' => 'T',
653: 'thu' => 'C',
654: 'fri' => 'P',
655: 'sat' => 'S',
656: ),
657: 'mk' => array(
658: 'sun' => 'н',
659: 'mon' => 'п',
660: 'tue' => 'в',
661: 'wed' => 'с',
662: 'thu' => 'ч',
663: 'fri' => 'п',
664: 'sat' => 'с',
665: ),
666: 'mn' => array(
667: 'sun' => 'Ня',
668: 'mon' => 'Да',
669: 'tue' => 'Мя',
670: 'wed' => 'Лх',
671: 'thu' => 'Пү',
672: 'fri' => 'Ба',
673: 'sat' => 'Бя',
674: ),
675: 'mo' => array(
676: 'sun' => 'D',
677: 'mon' => 'L',
678: 'tue' => 'M',
679: 'wed' => 'M',
680: 'thu' => 'J',
681: 'fri' => 'V',
682: 'sat' => 'S',
683: ),
684: 'mr' => array(
685: 'sun' => 'र',
686: 'mon' => 'सो',
687: 'tue' => 'मं',
688: 'wed' => 'बु',
689: 'thu' => 'गु',
690: 'fri' => 'शु',
691: 'sat' => 'श',
692: ),
693: 'ms' => array(
694: 'sun' => 'Ahd',
695: 'mon' => 'Isn',
696: 'tue' => 'Sel',
697: 'wed' => 'Rab',
698: 'thu' => 'Kha',
699: 'fri' => 'Jum',
700: 'sat' => 'Sab',
701: ),
702: 'mt' => array(
703: 'sun' => 'Ħ',
704: 'mon' => 'T',
705: 'tue' => 'T',
706: 'wed' => 'E',
707: 'thu' => 'Ħ',
708: 'fri' => 'Ġ',
709: 'sat' => 'S',
710: ),
711: 'nb' => array(
712: 'sun' => 'S',
713: 'mon' => 'M',
714: 'tue' => 'T',
715: 'wed' => 'O',
716: 'thu' => 'T',
717: 'fri' => 'F',
718: 'sat' => 'L',
719: ),
720: 'nds' => array(
721: 'sun' => '1',
722: 'mon' => '2',
723: 'tue' => '3',
724: 'wed' => '4',
725: 'thu' => '5',
726: 'fri' => '6',
727: 'sat' => '7',
728: ),
729: 'ne' => array(
730: 'sun' => '१',
731: 'mon' => '२',
732: 'tue' => '३',
733: 'wed' => '४',
734: 'thu' => '५',
735: 'fri' => '६',
736: 'sat' => '७',
737: ),
738: 'nl' => array(
739: 'sun' => 'Z',
740: 'mon' => 'M',
741: 'tue' => 'D',
742: 'wed' => 'W',
743: 'thu' => 'D',
744: 'fri' => 'V',
745: 'sat' => 'Z',
746: ),
747: 'nn' => array(
748: 'sun' => 'S',
749: 'mon' => 'M',
750: 'tue' => 'T',
751: 'wed' => 'O',
752: 'thu' => 'T',
753: 'fri' => 'F',
754: 'sat' => 'L',
755: ),
756: 'no' => array(
757: 'sun' => 'S',
758: 'mon' => 'M',
759: 'tue' => 'T',
760: 'wed' => 'O',
761: 'thu' => 'T',
762: 'fri' => 'F',
763: 'sat' => 'L',
764: ),
765: 'nr' => array(
766: 'sun' => 'Son',
767: 'mon' => 'Mvu',
768: 'tue' => 'Bil',
769: 'wed' => 'Tha',
770: 'thu' => 'Ne',
771: 'fri' => 'Hla',
772: 'sat' => 'Gqi',
773: ),
774: 'nso' => array(
775: 'sun' => 'Son',
776: 'mon' => 'Mos',
777: 'tue' => 'Bed',
778: 'wed' => 'Rar',
779: 'thu' => 'Ne',
780: 'fri' => 'Hla',
781: 'sat' => 'Mok',
782: ),
783: 'ny' => array(
784: 'sun' => 'Mul',
785: 'mon' => 'Lem',
786: 'tue' => 'Wir',
787: 'wed' => 'Tat',
788: 'thu' => 'Nai',
789: 'fri' => 'San',
790: 'sat' => 'Wer',
791: ),
792: 'om' => array(
793: 'sun' => 'S',
794: 'mon' => 'M',
795: 'tue' => 'T',
796: 'wed' => 'W',
797: 'thu' => 'T',
798: 'fri' => 'F',
799: 'sat' => 'S',
800: ),
801: 'pl' => array(
802: 'sun' => 'N',
803: 'mon' => 'P',
804: 'tue' => 'W',
805: 'wed' => 'Ś',
806: 'thu' => 'C',
807: 'fri' => 'P',
808: 'sat' => 'S',
809: ),
810: 'pt' => array(
811: 'sun' => 'D',
812: 'mon' => 'S',
813: 'tue' => 'T',
814: 'wed' => 'Q',
815: 'thu' => 'Q',
816: 'fri' => 'S',
817: 'sat' => 'S',
818: ),
819: 'ro' => array(
820: 'sun' => 'D',
821: 'mon' => 'L',
822: 'tue' => 'M',
823: 'wed' => 'M',
824: 'thu' => 'J',
825: 'fri' => 'V',
826: 'sat' => 'S',
827: ),
828: 'ru' => array(
829: 'sun' => 'В',
830: 'mon' => 'П',
831: 'tue' => 'В',
832: 'wed' => 'С',
833: 'thu' => 'Ч',
834: 'fri' => 'П',
835: 'sat' => 'С',
836: ),
837: 'rw' => array(
838: 'sun' => 'cyu.',
839: 'mon' => 'mbe.',
840: 'tue' => 'kab.',
841: 'wed' => 'gtu.',
842: 'thu' => 'kan.',
843: 'fri' => 'gnu.',
844: 'sat' => 'gnd.',
845: ),
846: 'se' => array(
847: 'sun' => 's',
848: 'mon' => 'v',
849: 'tue' => 'm',
850: 'wed' => 'g',
851: 'thu' => 'd',
852: 'fri' => 'b',
853: 'sat' => 'L',
854: ),
855: 'sh' => array(
856: 'sun' => 'n',
857: 'mon' => 'p',
858: 'tue' => 'u',
859: 'wed' => 's',
860: 'thu' => 'č',
861: 'fri' => 'p',
862: 'sat' => 's',
863: ),
864: 'sid' => array(
865: 'sun' => 'S',
866: 'mon' => 'S',
867: 'tue' => 'M',
868: 'wed' => 'R',
869: 'thu' => 'H',
870: 'fri' => 'A',
871: 'sat' => 'Q',
872: ),
873: 'sk' => array(
874: 'sun' => 'N',
875: 'mon' => 'P',
876: 'tue' => 'U',
877: 'wed' => 'S',
878: 'thu' => 'Š',
879: 'fri' => 'P',
880: 'sat' => 'S',
881: ),
882: 'sl' => array(
883: 'sun' => 'n',
884: 'mon' => 'p',
885: 'tue' => 't',
886: 'wed' => 's',
887: 'thu' => 'č',
888: 'fri' => 'p',
889: 'sat' => 's',
890: ),
891: 'so' => array(
892: 'sun' => 'A',
893: 'mon' => 'I',
894: 'tue' => 'S',
895: 'wed' => 'A',
896: 'thu' => 'K',
897: 'fri' => 'J',
898: 'sat' => 'S',
899: ),
900: 'sq' => array(
901: 'sun' => 'D',
902: 'mon' => 'H',
903: 'tue' => 'M',
904: 'wed' => 'M',
905: 'thu' => 'E',
906: 'fri' => 'P',
907: 'sat' => 'S',
908: ),
909: 'sr' => array(
910: 'sun' => 'н',
911: 'mon' => 'п',
912: 'tue' => 'у',
913: 'wed' => 'с',
914: 'thu' => 'ч',
915: 'fri' => 'п',
916: 'sat' => 'с',
917: ),
918: 'ss' => array(
919: 'sun' => 'Son',
920: 'mon' => 'Mso',
921: 'tue' => 'Bil',
922: 'wed' => 'Tsa',
923: 'thu' => 'Ne',
924: 'fri' => 'Hla',
925: 'sat' => 'Mgc',
926: ),
927: 'st' => array(
928: 'sun' => 'Son',
929: 'mon' => 'Mma',
930: 'tue' => 'Bed',
931: 'wed' => 'Rar',
932: 'thu' => 'Ne',
933: 'fri' => 'Hla',
934: 'sat' => 'Moq',
935: ),
936: 'sv' => array(
937: 'sun' => 'S',
938: 'mon' => 'M',
939: 'tue' => 'T',
940: 'wed' => 'O',
941: 'thu' => 'T',
942: 'fri' => 'F',
943: 'sat' => 'L',
944: ),
945: 'sw' => array(
946: 'sun' => 'Jpi',
947: 'mon' => 'Jtt',
948: 'tue' => 'Jnn',
949: 'wed' => 'Jtn',
950: 'thu' => 'Alh',
951: 'fri' => 'Iju',
952: 'sat' => 'Jmo',
953: ),
954: 'tg' => array(
955: 'sun' => 'Яшб',
956: 'mon' => 'Дшб',
957: 'tue' => 'Сшб',
958: 'wed' => 'Чшб',
959: 'thu' => 'Пшб',
960: 'fri' => 'Ҷмъ',
961: 'sat' => 'Шнб',
962: ),
963: 'th' => array(
964: 'sun' => 'อ',
965: 'mon' => 'จ',
966: 'tue' => 'อ',
967: 'wed' => 'พ',
968: 'thu' => 'พ',
969: 'fri' => 'ศ',
970: 'sat' => 'ส',
971: ),
972: 'tl' => array(
973: 'sun' => 'L',
974: 'mon' => 'L',
975: 'tue' => 'M',
976: 'wed' => 'M',
977: 'thu' => 'H',
978: 'fri' => 'B',
979: 'sat' => 'S',
980: ),
981: 'tn' => array(
982: 'sun' => 'Tsh',
983: 'mon' => 'Mos',
984: 'tue' => 'Bed',
985: 'wed' => 'Rar',
986: 'thu' => 'Ne',
987: 'fri' => 'Tla',
988: 'sat' => 'Mat',
989: ),
990: 'to' => array(
991: 'sun' => 'S',
992: 'mon' => 'M',
993: 'tue' => 'T',
994: 'wed' => 'P',
995: 'thu' => 'T',
996: 'fri' => 'F',
997: 'sat' => 'T',
998: ),
999: 'tr' => array(
1000: 'sun' => 'P',
1001: 'mon' => 'P',
1002: 'tue' => 'S',
1003: 'wed' => 'Ç',
1004: 'thu' => 'P',
1005: 'fri' => 'C',
1006: 'sat' => 'C',
1007: ),
1008: 'trv' => array(
1009: 'sun' => 'E',
1010: 'mon' => 'K',
1011: 'tue' => 'D',
1012: 'wed' => 'T',
1013: 'thu' => 'S',
1014: 'fri' => 'R',
1015: 'sat' => 'M',
1016: ),
1017: 'ts' => array(
1018: 'sun' => 'Son',
1019: 'mon' => 'Mus',
1020: 'tue' => 'Bir',
1021: 'wed' => 'Har',
1022: 'thu' => 'Ne',
1023: 'fri' => 'Tlh',
1024: 'sat' => 'Mug',
1025: ),
1026: 'uk' => array(
1027: 'sun' => 'Н',
1028: 'mon' => 'П',
1029: 'tue' => 'В',
1030: 'wed' => 'С',
1031: 'thu' => 'Ч',
1032: 'fri' => 'П',
1033: 'sat' => 'С',
1034: ),
1035: 'uz' => array(
1036: 'sun' => 'Я',
1037: 'mon' => 'Д',
1038: 'tue' => 'С',
1039: 'wed' => 'Ч',
1040: 'thu' => 'П',
1041: 'fri' => 'Ж',
1042: 'sat' => 'Ш',
1043: ),
1044: 've' => array(
1045: 'sun' => 'Swo',
1046: 'mon' => 'Mus',
1047: 'tue' => 'Vhi',
1048: 'wed' => 'Rar',
1049: 'thu' => 'Ṋa',
1050: 'fri' => 'Ṱan',
1051: 'sat' => 'Mug',
1052: ),
1053: 'vi' => array(
1054: 'sun' => 'CN',
1055: 'mon' => 'Th 2',
1056: 'tue' => 'Th 3',
1057: 'wed' => 'Th 4',
1058: 'thu' => 'Th 5',
1059: 'fri' => 'Th 6',
1060: 'sat' => 'Th 7',
1061: ),
1062: 'xh' => array(
1063: 'sun' => 'Caw',
1064: 'mon' => 'Mvu',
1065: 'tue' => 'Bin',
1066: 'wed' => 'Tha',
1067: 'thu' => 'Sin',
1068: 'fri' => 'Hla',
1069: 'sat' => 'Mgq',
1070: ),
1071: 'yo' => array(
1072: 'sun' => 'Àìkú',
1073: 'mon' => 'Ajé',
1074: 'tue' => 'Ìsẹ́gun',
1075: 'wed' => 'Ọjọ́rú',
1076: 'thu' => 'Àṣẹ̀ṣẹ̀dáiyé',
1077: 'fri' => 'Ẹtì',
1078: 'sat' => 'Àbámẹ́ta',
1079: ),
1080: 'zh' => array(
1081: 'sun' => '日',
1082: 'mon' => '一',
1083: 'tue' => '二',
1084: 'wed' => '三',
1085: 'thu' => '四',
1086: 'fri' => '五',
1087: 'sat' => '六',
1088: ),
1089: 'zu' => array(
1090: 'sun' => 'S',
1091: 'mon' => 'M',
1092: 'tue' => 'B',
1093: 'wed' => 'T',
1094: 'thu' => 'S',
1095: 'fri' => 'H',
1096: 'sat' => 'M',
1097: ),
1098: );
1099:
1100: 1101: 1102: 1103: 1104: 1105: 1106: 1107: 1108: 1109: 1110:
1111: public function getOpeningsDescriptionFromTerminal($dpdOpeningDescription, $locale = null) {
1112: $openingTimeFormat = 'H:m';
1113: $displayTimeFormat = 'H:i';
1114:
1115: if (!$locale) {
1116:
1117: $locale = Context::getContext()->language->language_code;
1118: }
1119:
1120:
1121: $passThruOrder = array('2', '3', '4', '5', '6', '7', '1');
1122:
1123: 1124: 1125:
1126: $openingDescriptions = array();
1127:
1128:
1129: $startTime = new DateTime();
1130: $endTime = new DateTime();
1131: $this->setTimestamp($startTime, 0);
1132: $this->setTimestamp($endTime, 0);
1133:
1134:
1135: $openings = explode(',', $dpdOpeningDescription);
1136: 1137: 1138: 1139: 1140: 1141: 1142: 1143: 1144:
1145: foreach ($openings as $opening) {
1146: $openTimePartials = explode(':', $opening);
1147: $startTime->setTime($openTimePartials[1], $openTimePartials[2], 0);
1148: $endTime->setTime($openTimePartials[3], $openTimePartials[4], 0);
1149:
1150: if (!isset($openingDescriptions[(string) $openTimePartials[0]])) {
1151: $openingDescriptions[(string) $openTimePartials[0]] = array();
1152: }
1153: $openingDescriptions[(string) $openTimePartials[0]][] = str_replace(':00', '', $startTime->format($displayTimeFormat)) . '-' . str_replace(':00', '', $endTime->format($displayTimeFormat));
1154: }
1155:
1156:
1157: 1158: 1159: 1160: 1161:
1162: $finalOpeningDescriptions = array();
1163: $previusOpeningStatement = false;
1164: $previusWeekdayName = false;
1165: $firstElement = false;
1166:
1167:
1168: foreach ($passThruOrder as $dayOfWeekDigit) {
1169:
1170: $this->setTimestamp($startTime, strtotime('2008-W05-' . ($dayOfWeekDigit - 1)));
1171:
1172:
1173: $weekDayName = $this->_getLocalizedWeekdayName($startTime, $locale);
1174: if ($firstElement === false) {
1175: $firstElement = $previusWeekdayName;
1176: }
1177: if (isset($openingDescriptions[$dayOfWeekDigit])) {
1178:
1179: $openingStatement = str_replace('0-0', '0-24', implode(',', $openingDescriptions[$dayOfWeekDigit]));
1180: } else {
1181: $openingStatement = '';
1182: }
1183:
1184: if ($previusOpeningStatement !== false && $previusOpeningStatement != $openingStatement) {
1185:
1186: if ($firstElement != $previusWeekdayName) {
1187: $finalOpeningDescriptions[] = $firstElement . '-' . $previusWeekdayName . ' ' . $previusOpeningStatement;
1188: } else {
1189: $finalOpeningDescriptions[] = $previusWeekdayName . ' ' . $previusOpeningStatement;
1190: }
1191:
1192:
1193: $firstElement = false;
1194: }
1195: $previusOpeningStatement = $openingStatement;
1196: $previusWeekdayName = $weekDayName;
1197: }
1198: if ($previusOpeningStatement !== false) {
1199: if ($previusOpeningStatement !== '') {
1200:
1201: if (!$firstElement) {
1202: $finalOpeningDescriptions[] = $previusWeekdayName . ' ' . $previusOpeningStatement;
1203: } else {
1204: $finalOpeningDescriptions[] = $firstElement . '-' . $previusWeekdayName . ' ' . $previusOpeningStatement;
1205: }
1206: }
1207: }
1208:
1209: if (count($finalOpeningDescriptions)) {
1210: return '(' . implode('; ', $finalOpeningDescriptions) . ')';
1211: }
1212: return '';
1213: }
1214:
1215: 1216: 1217: 1218: 1219:
1220: protected function setTimestamp(DateTime &$dateTime, $timeStamp) {
1221: if (method_exists($dateTime, 'setTimestamp')) {
1222: $dateTime->setTimestamp($timeStamp);
1223: return;
1224: }
1225:
1226: $dateTime->setDate(date('Y', $timeStamp), date('n', $timeStamp), date('d', $timeStamp));
1227: $dateTime->setTime(date('G', $timeStamp), date('i', $timeStamp), date('s', $timeStamp));
1228: }
1229:
1230: 1231: 1232: 1233: 1234: 1235: 1236:
1237: protected function _getLocalizedWeekdayName(DateTime $time, $locale) {
1238: $weekDayRefs = array(
1239: '0' => 'sun',
1240: '1' => 'mon',
1241: '2' => 'tue',
1242: '3' => 'wed',
1243: '4' => 'thu',
1244: '5' => 'fri',
1245: '6' => 'sat',
1246:
1247: );
1248: $lang = explode('_', $locale);
1249: $weekDayNum = date('w', $time->format('U'));
1250: if (isset(self::$_weekdayNames[$lang[0]]) && isset(self::$_weekdayNames[$lang[0]][$weekDayRefs[$weekDayNum]])) {
1251: return self::$_weekdayNames[$lang[0]][$weekDayRefs[$weekDayNum]];
1252: }
1253: return strftime('%a', $time->format('U'));
1254: }
1255:
1256: 1257: 1258: 1259: 1260: 1261:
1262: public function getLocaleToTerritory($territory) {
1263: $territory = strtoupper($territory);
1264: if (array_key_exists($territory, self::$_territoryData)) {
1265: return self::$_territoryData[$territory];
1266: }
1267:
1268: return null;
1269: }
1270:
1271:
1272: 1273: 1274: 1275: 1276: 1277: 1278: 1279: 1280: 1281:
1282: public function getNumberOfPackagesFromItemWeights(array $itemWeights, $maximumWeight) {
1283: $numPackages = 1;
1284: $weight = 0;
1285: if ($maximumWeight > 0) {
1286:
1287: foreach ($itemWeights as $itemWeight) {
1288: if ($itemWeight > $maximumWeight) {
1289: return false;
1290: }
1291: $weight += $itemWeight;
1292: if ($weight > $maximumWeight) {
1293: $numPackages++;
1294: $weight = $itemWeight;
1295: }
1296: }
1297:
1298: }
1299: return $numPackages;
1300: }
1301:
1302:
1303: 1304: 1305: 1306: 1307: 1308:
1309: public function getApi($storeId = null, $code = eabi_dpd_parcelstore::CONST_PREFIX) {
1310: if ($storeId === null) {
1311: $storeId = Context::getContext()->shop->id;
1312: }
1313: if (isset($this->_apis[$code]) && isset($this->_apis[$code][$storeId])) {
1314: return $this->_apis[$code][$storeId];
1315: }
1316: if (!isset($this->_apis[$code])) {
1317: $this->_apis[$code] = array();
1318: }
1319: if (!class_exists('eabi_dpd_parcelstore_dpd_api', false)) {
1320: require_once(_PS_MODULE_DIR_ . 'eabi_dpd_parcelstore' . '/dpd_api.php');
1321: }
1322: $api = new eabi_dpd_parcelstore_dpd_api();
1323: $api->setStore($storeId);
1324: $api->setCode($code);
1325: $this->_apis[$code][$storeId] = $api;
1326: return $this->_apis[$code][$storeId];
1327: }
1328:
1329:
1330:
1331: }
1332: