first commit
This commit is contained in:
@@ -0,0 +1,258 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SOTESHOP/stDelivery
|
||||
*
|
||||
* Ten plik należy do aplikacji stDelivery opartej na licencji (Professional License SOTE).
|
||||
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
|
||||
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
|
||||
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
|
||||
*
|
||||
* @package stDeliveryPlugin
|
||||
* @subpackage actions
|
||||
* @copyright SOTE (www.sote.pl)
|
||||
* @license http://www.sote.pl/license/sote (Professional License SOTE)
|
||||
* @version $Id: actions.class.php 312 2009-09-04 14:28:53Z marcin $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Akcje komponentu produktu
|
||||
*
|
||||
* @author Marcin Butlak <marcin.butlak@sote.pl>
|
||||
*
|
||||
* @package stDeliveryPlugin
|
||||
* @subpackage actions
|
||||
*/
|
||||
class stDeliveryFrontendActions extends stActions
|
||||
{
|
||||
protected $choosePickupPointParameters = [];
|
||||
|
||||
public function executeFetchPickupPoints()
|
||||
{
|
||||
$delivery = DeliveryPeer::retrieveByPK($this->getRequestParameter('id'));
|
||||
$pickupPoints = $delivery->getService()->getPickupPoints($this->getRequestParameter('address'));
|
||||
|
||||
return $this->renderJSON($pickupPoints);
|
||||
}
|
||||
|
||||
public function executeChoosePickupPoint()
|
||||
{
|
||||
$delivery = DeliveryPeer::retrieveByPK($this->getRequestParameter('id'));
|
||||
$country = CountriesPeer::retrieveById($this->getRequestParameter('country_id'));
|
||||
$pickupPoint = stDeliveryTypePickupPoint::createFromArray($this->getRequestParameter('pickup_point'));
|
||||
$frontendDelivery = stDeliveryFrontend::getInstance($this->getUser()->getBasket());
|
||||
|
||||
$this->choosePickupPointParameters = [
|
||||
'delivery_id' => $delivery->getId(),
|
||||
'country' => $country->getId(),
|
||||
'weekend_delivery' => $frontendDelivery->getWeekendDelivery() && $delivery->getIsWeekendDelivery(),
|
||||
'express_delivery' => $frontendDelivery->getExpressDelivery() && $delivery->getIsExpressDelivery(),
|
||||
'pickup_point' => json_encode($pickupPoint),
|
||||
'cod' => $this->getRequestParameter('cod', false),
|
||||
];
|
||||
|
||||
$serviceSmarty = new stSmarty($delivery->getService()->getConfiguration()->getFrontendModule());
|
||||
|
||||
$serviceSmarty->assign('service', $delivery->getService());
|
||||
$serviceSmarty->assign('delivery', $delivery);
|
||||
$serviceSmarty->assign('pickup_point', $pickupPoint);
|
||||
$serviceSmarty->assign('cod', $this->getRequestParameter('cod'));
|
||||
$serviceSmarty->assign('country', $country);
|
||||
$serviceSmarty->register_function('pickup_point_url', [$this, 'getChoosePickupPointUrl']);
|
||||
|
||||
return $this->renderText($serviceSmarty->fetch('choose_delivery_point.html'));
|
||||
}
|
||||
|
||||
public function getChoosePickupPointUrl(array $parameters): string
|
||||
{
|
||||
$url = $this->getController()->genUrl($parameters['internal_url']);
|
||||
|
||||
return $url . '?' . http_build_query($this->choosePickupPointParameters, '', '&');
|
||||
}
|
||||
|
||||
public function executeAjaxWeekendDeliveryUpdate()
|
||||
{
|
||||
$basket = stBasket::getInstance($this->getUser());
|
||||
|
||||
$delivery = stDeliveryFrontend::getInstance($basket);
|
||||
|
||||
$delivery->setWeekendDelivery($this->getRequestParameter('weekend_delivery'));
|
||||
|
||||
$basket_params = array('basket' => $basket);
|
||||
|
||||
$this->responseUpdateElement('shopping-cart-summary', array('module' => 'stDeliveryFrontend', 'component' => 'basketSummary', 'params' => $basket_params));
|
||||
$this->responseEvalJs('jQuery(window).resize()');
|
||||
|
||||
return $this->renderResponse();
|
||||
}
|
||||
|
||||
public function executeAjaxExpressDeliveryUpdate()
|
||||
{
|
||||
$basket = stBasket::getInstance($this->getUser());
|
||||
|
||||
$delivery = stDeliveryFrontend::getInstance($basket);
|
||||
|
||||
$delivery->setExpressDelivery($this->getRequestParameter('express_delivery'));
|
||||
|
||||
$basket_params = array('basket' => $basket);
|
||||
|
||||
$this->responseUpdateElement('shopping-cart-summary', array('module' => 'stDeliveryFrontend', 'component' => 'basketSummary', 'params' => $basket_params));
|
||||
$this->responseEvalJs('jQuery(window).resize()');
|
||||
|
||||
return $this->renderResponse();
|
||||
}
|
||||
/**
|
||||
* Aktualizowanie dostawy za pomocą Ajax
|
||||
*/
|
||||
public function executeAjaxDeliveryCountryUpdate()
|
||||
{
|
||||
$this->check404();
|
||||
|
||||
$basket = stBasket::getInstance($this->getUser());
|
||||
|
||||
$delivery = stDeliveryFrontend::getInstance($basket);
|
||||
|
||||
// $delivery->clearSession();
|
||||
|
||||
$country_id = $this->getRequestParameter('id', $this->getRequestParameter('delivery[country]'));
|
||||
|
||||
stTax::setIsCustomerEuTaxEnabled($this->getRequestParameter('client_type') == UserData::CUSTOMER_TYPE);
|
||||
|
||||
$delivery->setDefaultDeliveryCountry($country_id);
|
||||
|
||||
$this->getUser()->setVatEx(stTax::hasEx($country_id));
|
||||
|
||||
$basket->refresh();
|
||||
|
||||
$basket->save();
|
||||
|
||||
$basket_params = array('basket' => $basket, 'basket_config' => stConfig::getInstance('stBasket'), 'config_points' => stConfig::getInstance('stPointsBackend'));
|
||||
|
||||
if ($this->getTheme()->getVersion() < 7)
|
||||
{
|
||||
$this->responseUpdateElement('basket_products_table', array('module' => 'stBasket', 'partial' => 'product_list', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('st_basket-delivery', array('module' => 'stDeliveryFrontend', 'component' => 'basketDeliveryList', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('st_basket-payment', array('module' => 'stDeliveryFrontend', 'component' => 'basketPaymentList', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('st_basket-summary', array('module' => 'stDeliveryFrontend', 'component' => 'basketSummary', 'params' => $basket_params));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->responseUpdateElement('#shopping-cart .items', array('module' => 'stBasket', 'partial' => 'product_list', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('shopping-cart-delivery', array('module' => 'stDeliveryFrontend', 'component' => 'basketDeliveryList', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('shopping-cart-payment', array('module' => 'stDeliveryFrontend', 'component' => 'basketPaymentList', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('shopping-cart-summary', array('module' => 'stDeliveryFrontend', 'component' => 'basketSummary', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('weekend-delivery', array('module' => 'stDeliveryFrontend', 'component' => 'weekendDelivery', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('express-delivery', array('module' => 'stDeliveryFrontend', 'component' => 'expressDelivery', 'params' => $basket_params));
|
||||
$this->responseEvalJs('jQuery(window).resize()');
|
||||
}
|
||||
|
||||
if ($this->getUser()->isAnonymous())
|
||||
{
|
||||
$this->responseEvalJs("stUser.updateAnonymousForms($country_id)");
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->responseEvalJs("stUser.updateAnonymousForms($country_id)");
|
||||
|
||||
$this->responseUpdateElement('user_delivery_profile_container', array('module' => 'stUserData', 'component' => 'profileList', 'params' => array(
|
||||
'country_id' => $country_id,
|
||||
'type' => 'delivery',
|
||||
'selected' => false
|
||||
)));
|
||||
}
|
||||
|
||||
$this->updateHiddenFields($delivery);
|
||||
|
||||
return $this->renderResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualizowanie dostawy za pomocą Ajax
|
||||
*/
|
||||
public function executeAjaxDeliveryUpdate()
|
||||
{
|
||||
$this->check404();
|
||||
|
||||
$basket = stBasket::getInstance($this->getUser());
|
||||
|
||||
$delivery = stDeliveryFrontend::getInstance($basket);
|
||||
|
||||
// $delivery->clearSession();
|
||||
|
||||
$delivery->setDefaultDelivery($this->getRequestParameter('id', $this->getRequestParameter('delivery[default_delivery]')));
|
||||
|
||||
$basket_params = array('basket' => $basket);
|
||||
|
||||
if ($this->getTheme()->getVersion() < 7)
|
||||
{
|
||||
$this->responseUpdateElement('st_basket-payment', array('module' => 'stDeliveryFrontend', 'component' => 'basketPaymentList', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('st_basket-summary', array('module' => 'stDeliveryFrontend', 'component' => 'basketSummary', 'params' => $basket_params));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->responseUpdateElement('shopping-cart-payment', array('module' => 'stDeliveryFrontend', 'component' => 'basketPaymentList', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('shopping-cart-summary', array('module' => 'stDeliveryFrontend', 'component' => 'basketSummary', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('weekend-delivery', array('module' => 'stDeliveryFrontend', 'component' => 'weekendDelivery', 'params' => $basket_params));
|
||||
$this->responseUpdateElement('express-delivery', array('module' => 'stDeliveryFrontend', 'component' => 'expressDelivery', 'params' => $basket_params));
|
||||
$this->responseEvalJs('jQuery(window).resize()');
|
||||
}
|
||||
|
||||
$this->updateHiddenFields($delivery);
|
||||
|
||||
return $this->renderResponse();
|
||||
}
|
||||
|
||||
public function executeAjaxPaymentUpdate()
|
||||
{
|
||||
$this->check404();
|
||||
|
||||
$basket = stBasket::getInstance($this->getUser());
|
||||
|
||||
$delivery = stDeliveryFrontend::getInstance($basket);
|
||||
|
||||
$delivery->getDefaultDelivery()->setDefaultPayment($this->getRequestParameter('id', $this->getRequestParameter('delivery[default_payment]')));
|
||||
|
||||
$basket_params = array('basket' => $basket);
|
||||
|
||||
if ($this->getTheme()->getVersion() < 7)
|
||||
{
|
||||
$this->responseUpdateElement('st_basket-summary', array('module' => 'stDeliveryFrontend', 'component' => 'basketSummary', 'params' => $basket_params));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->responseUpdateElement('shopping-cart-summary', array('module' => 'stDeliveryFrontend', 'component' => 'basketSummary', 'params' => $basket_params));
|
||||
$this->responseEvalJs('jQuery(window).resize()');
|
||||
}
|
||||
|
||||
$this->updateHiddenFields($delivery);
|
||||
|
||||
return $this->renderResponse();
|
||||
}
|
||||
|
||||
public function check404()
|
||||
{
|
||||
|
||||
if (!$this->getRequest()->isXmlHttpRequest() && $this->getController()->getRenderMode() != sfView::RENDER_VAR)
|
||||
{
|
||||
|
||||
$this->getResponse()->setStatusCode(404);
|
||||
|
||||
$this->getResponse()->setHttpHeader('Status', '404 Not Found');
|
||||
|
||||
sfContext::getInstance()->getResponse()->addMeta('robots', "noindex");
|
||||
|
||||
return $this->forward('stErrorFrontend', 'error404');
|
||||
}
|
||||
}
|
||||
|
||||
protected function updateHiddenFields(stDeliveryFrontend $delivery)
|
||||
{
|
||||
$deliveryId = $delivery->getDefaultDelivery()->getId();
|
||||
$paymentId = $delivery->getDefaultDelivery()->getDefaultPayment()->getId();
|
||||
$deliveryCountryId = $delivery->getDefaultDeliveryCountry()->getId();
|
||||
|
||||
$this->responseEvalJs("jQuery('#payment_id').val($paymentId)");
|
||||
$this->responseEvalJs("jQuery('#delivery_id').val($deliveryId)");
|
||||
$this->responseEvalJs("jQuery('#delivery_country_id').val($deliveryCountryId)");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,343 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SOTESHOP/stDelivery
|
||||
*
|
||||
* Ten plik należy do aplikacji stDelivery opartej na licencji (Professional License SOTE).
|
||||
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
|
||||
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
|
||||
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
|
||||
*
|
||||
* @package stDeliveryPlugin
|
||||
* @subpackage actions
|
||||
* @copyright SOTE (www.sote.pl)
|
||||
* @license http://www.sote.pl/license/sote (Professional License SOTE)
|
||||
* @version $Id: components.class.php 14599 2011-08-17 13:19:16Z marcin $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Akcje komponentu produktu
|
||||
*
|
||||
* @author Marcin Butlak <marcin.butlak@sote.pl>
|
||||
*
|
||||
* @package stDeliveryPlugin
|
||||
* @subpackage actions
|
||||
*/
|
||||
class stDeliveryFrontendComponents extends sfComponents
|
||||
{
|
||||
|
||||
/**
|
||||
* Podsumowanie koszyka
|
||||
*/
|
||||
public function executeBasketSummary()
|
||||
{
|
||||
$this->smarty = new stSmarty('stDeliveryFrontend');
|
||||
|
||||
$dispatcher = $this->getController()->getDispatcher();
|
||||
$dispatcher->notify(new sfEvent($this, 'stDeliveryFrontendComponents.preExecuteBasketSummary'));
|
||||
|
||||
$this -> config_points = stConfig::getInstance(sfContext::getInstance(), 'stPointsBackend');
|
||||
$this -> config_points->setCulture(sfContext::getInstance()->getUser()->getCulture());
|
||||
|
||||
$this->discount_coupon_code = st_get_component('stDiscountFrontend', 'couponCode', array('return_url' => 'stBasket/index'));
|
||||
$this->gift_card = st_get_component('stGiftCardFrontend', 'show', array('return_url' => 'stBasket/index'));
|
||||
|
||||
$this->delivery = stDeliveryFrontend::getInstance($this->basket);
|
||||
}
|
||||
|
||||
public function executeWeekendDelivery()
|
||||
{
|
||||
$frontendDelivery = stDeliveryFrontend::getInstance($this->getUser()->getBasket());
|
||||
/**
|
||||
* @var Delivery
|
||||
*/
|
||||
$delivery = $frontendDelivery->getDefaultDelivery();
|
||||
|
||||
if (null === $delivery || !$delivery->getIsWeekendDelivery() || !$delivery->isWeekendDeliveryAvailable())
|
||||
{
|
||||
return sfView::NONE;
|
||||
}
|
||||
|
||||
$smarty = new stSmarty('stDeliveryFrontend');
|
||||
$smarty->assign('delivery', $delivery);
|
||||
$smarty->assign('selected', $frontendDelivery->getIsWeekendDelivery());
|
||||
|
||||
return $smarty;
|
||||
}
|
||||
|
||||
public function executeExpressDelivery()
|
||||
{
|
||||
$frontendDelivery = stDeliveryFrontend::getInstance($this->getUser()->getBasket());
|
||||
/**
|
||||
* @var Delivery
|
||||
*/
|
||||
$delivery = $frontendDelivery->getDefaultDelivery();
|
||||
|
||||
if (null === $delivery || !$delivery->getIsExpressDelivery())
|
||||
{
|
||||
return sfView::NONE;
|
||||
}
|
||||
|
||||
$smarty = new stSmarty('stDeliveryFrontend');
|
||||
$smarty->assign('delivery', $delivery);
|
||||
$smarty->assign('selected', $frontendDelivery->getIsExpressDelivery());
|
||||
$smarty->assign('help', $this->getContext()->getI18N()->__('Realizowane są wyłącznie zamówienia złożone i opłacone do godziny %%time%%', [
|
||||
'%%time%%' => $delivery->getExpressDeliveryOrderTimeLimit(),
|
||||
]));
|
||||
|
||||
return $smarty;
|
||||
}
|
||||
|
||||
public function executeBasketDeliveryList()
|
||||
{
|
||||
$this->smarty = new stSmarty('stDeliveryFrontend');
|
||||
|
||||
$this->delivery = stDeliveryFrontend::getInstance($this->basket);
|
||||
|
||||
$this->config = stConfig::getInstance('stDeliveryBackend');
|
||||
}
|
||||
|
||||
/**
|
||||
* Wyświetlenie listy płatności
|
||||
*/
|
||||
public function executeBasketPaymentList()
|
||||
{
|
||||
$i18n = $this->getContext()->getI18N();
|
||||
|
||||
$this->smarty = new stSmarty('stDeliveryFrontend');
|
||||
|
||||
$this->delivery_payments = array();
|
||||
|
||||
$this->delivery = stDeliveryFrontend::getInstance($this->basket);
|
||||
|
||||
if ($this->delivery->hasDeliveries())
|
||||
{
|
||||
$defaultDelivery = $this->delivery->getDefaultDelivery();
|
||||
|
||||
$totalAmount = $this->basket->getTotalAmount(true, true) + $defaultDelivery->getTotalCost(true, true);
|
||||
|
||||
if (stGiftCardPlugin::isActive() && stGiftCardPlugin::calculateAmountLeft($totalAmount) == 0)
|
||||
{
|
||||
$pt = new PaymentType();
|
||||
|
||||
$pt->setName($i18n->__('Bony zakupowe'));
|
||||
|
||||
$dhp = new DeliveryHasPaymentType();
|
||||
|
||||
$dhp->setIsActive(true);
|
||||
|
||||
$dhp->setDelivery($defaultDelivery);
|
||||
|
||||
$dhp->setPaymentType($pt);
|
||||
|
||||
$dp = new stDeliveryPaymentFrontendContainer($this->delivery, $dhp);
|
||||
|
||||
$this->delivery->getDefaultDelivery()->setDefaultPayment($dhp);
|
||||
|
||||
$this->delivery_payments = array($dp);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->delivery_payments = $this->delivery->getDefaultDelivery()->getDeliveryPayments();
|
||||
}
|
||||
|
||||
$this->smarty->assign('order_total_amount', $totalAmount);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Data i czas dostawy
|
||||
*/
|
||||
public function executeDateTime()
|
||||
{
|
||||
$this->smarty = new stSmarty('stDeliveryFrontend');
|
||||
|
||||
$this->language = $this->getUser()->getCulture();
|
||||
|
||||
|
||||
|
||||
$config = stConfig::getInstance($this->getContext(), 'stDeliveryBackend');
|
||||
|
||||
$this->config = $config;
|
||||
|
||||
$deliveryFromRequest = $this->getRequestParameter('delivery');
|
||||
|
||||
if ($deliveryFromRequest['time'] != "")
|
||||
{
|
||||
$time = explode(":", $deliveryFromRequest['time']);
|
||||
$this->time_h_def = $time[0];
|
||||
$this->time_m_def = $time[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->time_h_def = $config->get('time_h_def');
|
||||
$this->time_m_def = $config->get('time_m_def');
|
||||
}
|
||||
|
||||
$dates_array = array();
|
||||
|
||||
$dates_array[] = $this->dates_inbetween($config->get('array1_from'), $config->get('array1_to'));
|
||||
$dates_array[] = $this->dates_inbetween($config->get('array2_from'), $config->get('array2_to'));
|
||||
$dates_array[] = $this->dates_inbetween($config->get('array3_from'), $config->get('array3_to'));
|
||||
$dates_array[] = $this->dates_inbetween($config->get('array4_from'), $config->get('array4_to'));
|
||||
$dates_array[] = $this->dates_inbetween($config->get('array5_from'), $config->get('array5_to'));
|
||||
$dates_array[] = $this->dates_inbetween($config->get('array6_from'), $config->get('array6_to'));
|
||||
|
||||
foreach ($dates_array as $dates)
|
||||
{
|
||||
foreach ($dates as $date)
|
||||
{
|
||||
if ($date != '01-01-1970')
|
||||
{
|
||||
$allowed_dates.='{"allow_date":"' . $date . '"},';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$dates = array(
|
||||
array('from' => $config->get('array1_from'), 'to' => $config->get('array1_to')),
|
||||
array('from' => $config->get('array2_from'), 'to' => $config->get('array2_to')),
|
||||
array('from' => $config->get('array3_from'), 'to' => $config->get('array3_to')),
|
||||
array('from' => $config->get('array4_from'), 'to' => $config->get('array4_to')),
|
||||
array('from' => $config->get('array5_from'), 'to' => $config->get('array5_to')),
|
||||
array('from' => $config->get('array6_from'), 'to' => $config->get('array6_to')),
|
||||
|
||||
);
|
||||
|
||||
foreach ($dates as $k => $date)
|
||||
{
|
||||
$dates[$k]['from'] = strtotime($date['from']);
|
||||
$dates[$k]['to'] = strtotime($date['to']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$time_limit=$config->get('time_h_limit').$config->get('time_m_limit');
|
||||
|
||||
$current = time();
|
||||
|
||||
if(date('Hi')>=$time_limit)
|
||||
{
|
||||
$current += 60*60*24;
|
||||
|
||||
$new_min = $config->get('min');
|
||||
}else{
|
||||
$new_min = $config->get('min')-1;
|
||||
}
|
||||
|
||||
$min = strtotime(date('d-m-Y', time()+ 60*60*24*$new_min));
|
||||
|
||||
$current = strtotime(date('d-m-Y',$current));
|
||||
|
||||
|
||||
if ($deliveryFromRequest['date'] != "")
|
||||
{
|
||||
$this->default_date = $deliveryFromRequest['date'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->default_date = date('d-m-Y', $this->getCurrentDate($current, $dates, $min, $config->get('weekends_on')));
|
||||
}
|
||||
|
||||
$today = strtotime(date('d-m-Y'));
|
||||
|
||||
$today_and_max = $today + $config->get('max')*(60*60*24);
|
||||
|
||||
$today_and_max = date('d-m-Y', $today_and_max);
|
||||
|
||||
$off_date_picker = 0;
|
||||
|
||||
|
||||
|
||||
if(strtotime($this->default_date) > strtotime($today_and_max))
|
||||
{
|
||||
$off_date_picker = 1;
|
||||
}
|
||||
|
||||
$this->off_date_picker = $off_date_picker;
|
||||
|
||||
|
||||
if (isset($allowed_dates))
|
||||
{
|
||||
$this->allowed_dates = $allowed_dates;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected function getCurrentDate($current_date, $allowed_dates, $min, $weekend)
|
||||
{
|
||||
|
||||
// echo $weekend;
|
||||
|
||||
$ok = true;
|
||||
|
||||
|
||||
if ($current_date > $min)
|
||||
{
|
||||
foreach ($allowed_dates as $allow_date)
|
||||
{
|
||||
if ($current_date >= $allow_date['from'] && $current_date <= $allow_date['to'])
|
||||
{
|
||||
$ok = false;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$ok = false;
|
||||
}
|
||||
|
||||
|
||||
if ($ok)
|
||||
{
|
||||
|
||||
if($weekend==1){
|
||||
//echo $current_date;
|
||||
|
||||
$w = date('w', $current_date);
|
||||
|
||||
if($w == 0 || $w == 6){
|
||||
return $this->getCurrentDate($current_date + 60 * 60 * 24, $allowed_dates, $min, $weekend);
|
||||
} else{
|
||||
return $current_date;
|
||||
}
|
||||
}else{
|
||||
return $current_date;
|
||||
}
|
||||
|
||||
}else{
|
||||
return $this->getCurrentDate($current_date + 60 * 60 * 24, $allowed_dates, $min, $weekend);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function dates_inbetween($date1, $date2)
|
||||
{
|
||||
|
||||
$day = 60 * 60 * 24;
|
||||
|
||||
$date1 = strtotime($date1);
|
||||
$date2 = strtotime($date2);
|
||||
|
||||
$days_diff = round(($date2 - $date1) / $day); // Unix time difference devided by 1 day to get total days in between
|
||||
|
||||
$dates_array = array();
|
||||
|
||||
$dates_array[] = date('d-m-Y', $date1);
|
||||
|
||||
for ($x = 1; $x < $days_diff; $x++)
|
||||
{
|
||||
$dates_array[] = date('d-m-Y', ($date1 + ($day * $x)));
|
||||
}
|
||||
|
||||
$dates_array[] = date('d-m-Y', $date2);
|
||||
|
||||
return $dates_array;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user