b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / app / code / TIG / PostNL / Webservices / Endpoints /
Filename/home/dev2.destoffenstraat.com/app/code/TIG/PostNL/Webservices/Endpoints/DeliveryDate.php
Size4.35 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified20-Dec-2022 13:13
Last accessed22-Aug-2025 16:17
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
*
* ..::..
* ..::::::::::::..
* ::'''''':''::'''''::
* ::.. ..: : ....::
* :::: ::: : : ::
* :::: ::: : ''' ::
* ::::..:::..::.....::
* ''::::::::::::''
* ''::''
*
*
* NOTICE OF LICENSE
*
* This source file is subject to the Creative Commons License.
* It is available through the world-wide-web at this URL:
* http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
* If you are unable to obtain it through the world-wide-web, please send an email
* to servicedesk@tig.nl so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this module to newer
* versions in the future. If you wish to customize this module for your
* needs please contact servicedesk@tig.nl for more information.
*
* @copyright Copyright (c) Total Internet Group B.V. https://tig.nl/copyright
* @license http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
*/
namespace TIG\PostNL\Webservices\Endpoints;

use TIG\PostNL\Service\Timeframe\Options;
use TIG\PostNL\Webservices\AbstractEndpoint;
use TIG\PostNL\Webservices\Soap;
use TIG\PostNL\Helper\Data;
use TIG\PostNL\Webservices\Api\Message;
use TIG\PostNL\Webservices\Api\CutoffTimes;
use TIG\PostNL\Webservices\Parser\Label\Shipments as ShipmentData;

/**
* @note : The DeliverDate endpoint is use to get the first possible delivery date, which is needed to collect
* the timeframes.
*/
class DeliveryDate extends AbstractEndpoint
{
/**
* @var string
*/
private $version = 'v2_2';

/**
* @var string
*/
private $endpoint = 'calculate/date';

/**
* @var string
*/
private $type = 'GetDeliveryDate';

/**
* @var Soap
*/
private $soap;

/**
* @var array
*/
private $requestParams;

/**
* @var Message
*/
private $message;

/**
* @var CutoffTimes
*/
private $cutoffTimes;

/**
* @var Data
*/
private $postNLhelper;

/**
* @var Options
*/
private $timeframeOptions;

/**
* DeliveryDate constructor.
*
* @param \TIG\PostNL\Webservices\Soap $soap
* @param \TIG\PostNL\Helper\Data $postNLhelper
* @param \TIG\PostNL\Webservices\Api\Message $message
* @param \TIG\PostNL\Webservices\Api\CutoffTimes $cutoffTimes
* @param \TIG\PostNL\Service\Timeframe\Options $timeframeOptions
* @param \TIG\PostNL\Webservices\Parser\Label\Shipments $shipmentData
*/
public function __construct(
Soap $soap,
Data $postNLhelper,
Message $message,
CutoffTimes $cutoffTimes,
Options $timeframeOptions,
ShipmentData $shipmentData
) {
$this->soap = $soap;
$this->postNLhelper = $postNLhelper;
$this->message = $message;
$this->cutoffTimes = $cutoffTimes;
$this->timeframeOptions = $timeframeOptions;

parent::__construct(
$shipmentData
);
}

/**
* @return mixed
* @throws \Magento\Framework\Webapi\Exception
*/
public function call()
{
return $this->soap->call($this, $this->type, $this->requestParams);
}

/**
* @param $address
* @param $shippingDuration
*
*/
public function updateParameters($address, $shippingDuration = '1')
{
$this->requestParams = [
'GetDeliveryDate' => [
'CountryCode' => $address['country'],
'PostalCode' => str_replace(' ', '', $address['postcode']),
'ShippingDate' => $this->postNLhelper->getCurrentTimeStamp(),
'ShippingDuration' => $shippingDuration,
'AllowSundaySorting' => $this->timeframeOptions->isSundaySortingAllowed(),
'CutOffTimes' => $this->cutoffTimes->get(),
'Options' => $this->timeframeOptions->get($address['country']),
],
'Message' => $this->message->get('')
];
}

/**
* @return string
*/
public function getLocation()
{
return $this->version .'/'. $this->endpoint;
}

/**
* @param int $storeId
*/
public function updateApiKey($storeId)
{
$this->soap->updateApiKey($storeId);
}
}