chocolatdemariage/www/modules/tntofficiel/libraries/helper/TNTOfficiel_ShippingHelper.php
Preprod mutu dc0edebeb0 tnt
2017-09-12 10:48:51 +02:00

120 lines
3.0 KiB
PHP

<?php
/**
* TNT OFFICIAL MODULE FOR PRESTASHOP.
*
* @author GFI Informatique <www.gfi.fr>
* @copyright 2016-2017 GFI Informatique, 2016-2017 TNT
* @license https://opensource.org/licenses/MIT MIT License
*/
require_once _PS_MODULE_DIR_.'tntofficiel/libraries/TNTOfficiel_Debug.php';
/**
* Class TNTOfficiel_ShippingHelper.
*/
class TNTOfficiel_ShippingHelper
{
/**
* @var Singleton
*/
private static $_instance = null;
/**
* Constructor.
*/
public function __construct()
{
TNTOfficiel_Debug::log(array('msg' => '>>', 'file' => __FILE__, 'line' => __LINE__));
}
/**
* Creates a singleton.
*
* @param void
*
* @return TNTOfficiel_ShippingHelper
*/
public static function getInstance()
{
TNTOfficiel_Debug::log(array('msg' => '>>', 'file' => __FILE__, 'line' => __LINE__));
if (is_null(TNTOfficiel_ShippingHelper::$_instance)) {
TNTOfficiel_ShippingHelper::$_instance = new TNTOfficiel_ShippingHelper();
}
return TNTOfficiel_ShippingHelper::$_instance;
}
/**
* @var array
*/
protected $_days = array(
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday',
'Sunday',
);
/**
* Returns an array with schedules for each days.
*
* @param array $params Parameters of the function
*
* @return array
*/
public function getSchedules(array $params = array())
{
TNTOfficiel_Debug::log(array('msg' => '>>', 'file' => __FILE__, 'line' => __LINE__));
$schedules = array();
if ($hours = $params['hours']) {
$index = 0;
// Position corresponds to the number of the day
$position = 0;
// Current day
$day = null;
// Part of the day
$part = null;
foreach ($hours as $hour) {
$hour = trim($hour);
$day = $this->_days[$position];
if (($index % 2 === 0) && ($index % 4 === 0)) {
$part = 'AM';
} elseif (($index % 2 === 0) && ($index % 4 === 2)) {
$part = 'PM';
}
// Prepare the current Day
if (!isset($schedules[$day])) {
$schedules[$day] = array();
}
// Prepare the current period of the current dya
if (!isset($schedules[$day][$part]) && $hour) {
$schedules[$day][$part] = array();
}
// If hours different from 0
if ($hour) {
// Add hour
$schedules[$day][$part][] = $hour;
}
++$index;
if ($index % 4 == 0) {
++$position;
}
}
}
return $schedules;
}
}