Overview

Packages

  • Eabi
    • Dpd
  • None
  • PHP

Classes

  • dpdcodpayment
  • eabi_dpd_courier
  • Eabi_dpd_courierCourierModuleFrontController
  • eabi_dpd_parcelstore
  • eabi_dpd_parcelstore_data_send_executor
  • eabi_dpd_parcelstore_dpd_api
  • eabi_dpd_parcelstore_dpd_helper
  • eabi_dpd_parcelstore_html_helper
  • eabi_dpd_parcelstore_validator_helper
  • Eabi_dpd_parcelstoreCourierModuleFrontController
  • Eabi_Postoffice
  • eabi_postoffice_dialcode_helper
  • Eabi_PostofficePostofficeModuleFrontController

Functions

  • upgrade_module_0_3
  • upgrade_module_0_6
  • upgrade_module_0_8
  • Overview
  • Package
  • Class
  • Tree
   1: <?php
   2: 
   3: /*
   4:   
   5:  *
   6:  * NOTICE OF LICENSE
   7:  *
   8:  * This source file is subject to the Open Software License (OSL 3.0)
   9:  * or OpenGPL v3 license (GNU Public License V3.0)
  10:  * that is bundled with this package in the file LICENSE.txt.
  11:  * It is also available through the world-wide-web at this URL:
  12:  * http://opensource.org/licenses/osl-3.0.php
  13:  * or
  14:  * http://www.gnu.org/licenses/gpl-3.0.txt
  15:  * If you did not receive a copy of the license and are unable to
  16:  * obtain it through the world-wide-web, please send an email
  17:  * to info@e-abi.ee so we can send you a copy immediately.
  18:  *
  19:  * DISCLAIMER
  20:  *
  21:  * Do not edit or add to this file if you wish to upgrade this module to newer
  22:  * versions in the future.
  23:  *
  24:  * @category   Eabi
  25:  * @package    Eabi_Dpd
  26:  * @copyright  Copyright (c) 2014 Aktsiamaailm LLC (http://en.e-abi.ee/)
  27:  * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  28:  * @license    http://www.gnu.org/licenses/gpl-3.0.txt  GNU Public License V3.0
  29:  * @author     Matis Halmann
  30:  * 
  31: 
  32:  */
  33: if (!defined('_PS_VERSION_')) {
  34:     exit;
  35: }
  36: 
  37: /**
  38:  * <p>Helper class for DPD shipping method related actions</p>
  39:  * <p><code>getLocaleToTerritory</code> originates from Zend Framework since PrestaShop does not support proper locales and PHP itself does not too.</p>
  40:  *
  41:  * @author Matis Halmann
  42:  */
  43: class eabi_dpd_parcelstore_dpd_helper {
  44:     protected $_apis = array();
  45: 
  46:     /**
  47:      * Class wide Locale Constants
  48:      *
  49:      * @var array $_territoryData
  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:      * <p>PHP setLocale is not thread-safe, but we need multiple locale weekday names in one thread</p>
 105:      * @var array
 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:      * <p>Converts DPD op=pudo Opening Times into human readable format.</p>
1102:      * <ul>
1103:       <li><b>Input: 1:11:0:16:0,2:7:30:20:0,3:7:30:20:0,4:7:30:20:0,5:7:30:20:0,6:7:30:20:0,7:8:0:16:0</b></li>
1104:       <li><b>Result: (E-R 7:30-20; L 8-16; P 11-16)</b></li>
1105:       </ul>
1106:      * 
1107:      * @param string $dpdOpeningDescription DPD Openings description
1108:      * @param string $locale language code to be used for printing out weekday names
1109:      * @return string
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:         //days  start from monday
1121:         $passThruOrder = array('2', '3', '4', '5', '6', '7', '1');
1122: 
1123:         /*
1124:          * Format: array key = weekday name
1125:          */
1126:         $openingDescriptions = array();
1127: 
1128:         //we need these in order to get times in normalized manner
1129:         $startTime = new DateTime(); //Zend_Date(0, Zend_Date::TIMESTAMP);
1130:         $endTime = new DateTime();
1131:         $this->setTimestamp($startTime, 0);
1132:         $this->setTimestamp($endTime, 0);
1133: 
1134:         //here are comma separeted opening times
1135:         $openings = explode(',', $dpdOpeningDescription);
1136:         /*
1137:          * Format:
1138:          * <weekday>:<starth>:<startm>:<endh>:<endm>
1139:          * 1=sunday
1140:          * 2=monday
1141:          * ...
1142:          * 7=saturday
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:          * Format:
1159:          * array key = day of week digit
1160:          * array value = all opening times for that day separated by comma
1161:          */
1162:         $finalOpeningDescriptions = array();
1163:         $previusOpeningStatement = false;
1164:         $previusWeekdayName = false;
1165:         $firstElement = false;
1166: 
1167: 
1168:         foreach ($passThruOrder as $dayOfWeekDigit) {
1169: //            $startTime->setTimestamp(strtotime('2008-W05-' . ($dayOfWeekDigit - 1)));
1170:             $this->setTimestamp($startTime, strtotime('2008-W05-' . ($dayOfWeekDigit - 1)));
1171: //            $startTime->($dayOfWeekDigit - 1, Zend_Date::WEEKDAY_DIGIT);
1172: //            $weekDayName = $startTime->get(Zend_Date::WEEKDAY_NARROW, $locale);
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:                 //we have a change
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:                 //we have a change
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:      * <p>Emulates DateTime::setTimeStamp for PHP 5.2</p>
1217:      * @param DateTime $dateTime
1218:      * @param int $timeStamp
1219:      */
1220:     protected function setTimestamp(DateTime &$dateTime, $timeStamp) {
1221:         if (method_exists($dateTime, 'setTimestamp')) {
1222:             $dateTime->setTimestamp($timeStamp);
1223:             return;
1224:         }
1225:         //we need to emulate
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:      * <p>Attempts to return short weekday name for specified date if possible</p>
1232:      * <p>If not possible, then <code>strftime('%a')</code> is performed</p>
1233:      * @param DateTime $time
1234:      * @param string $locale language code
1235:      * @return string
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:      * Returns the expected locale for a given territory
1258:      *
1259:      * @param string $territory Territory for which the locale is being searched
1260:      * @return string|null Locale string or null when no locale has been found
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:      * <p>Takes in array of parcel weights and returns number of packages calculated by maximum allowed weight per package</p>
1274:      * <p>Uses better methology to find number of packages than regular cart weight divided by maximum package weight</p>
1275:      * <p>For example, if maximum package weight is 31kg, ang we have 3x 20kg packages, then number of packages would be 3 (not 2)</p>
1276:      * <p>If maximum package weight is not defined, then it returns 1</p>
1277:      * <p>If single item in <code>$itemWeights</code> exceeds <code>$maximumWeight</code> then this function returns false</p>
1278:      * @param array $itemWeights array of item weights
1279:      * @param int $maximumWeight maximum allowed weight of one package
1280:      * @return int
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:      * <p>Gets cached DPD API instance for specified PrestaShop store id and shipping method code.</p>
1305:      * @param string $storeId store id to fetch the api for
1306:      * @param string $code shipping method code to fetch the api for
1307:      * @return eabi_dpd_parcelstore_dpd_api
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: 
API documentation generated by ApiGen 2.8.0