47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace External\PompoBundle\Overrides\Order;
|
|
|
|
use KupShop\OrderingBundle\Util\Order\DeliveryInfo;
|
|
use Symfony\Contracts\Service\Attribute\Required;
|
|
|
|
class OrderInfo extends \KupShop\OrderingBundle\Util\Order\OrderInfo
|
|
{
|
|
#[Required]
|
|
public DeliveryInfo $deliveryInfo;
|
|
|
|
/**
|
|
* @param \Order $order
|
|
*/
|
|
public function getDeliveryDate($order): ?\DateTime
|
|
{
|
|
$date = null;
|
|
|
|
// zkusim nacist datum doruceni ulozeny na objednavce - osobni odbery
|
|
$deliveryData = $order->getData('delivery_data');
|
|
if ($deliveryData['deliveryDate'] ?? false) {
|
|
try {
|
|
// ihned vratim datum, protoze kdyz uz je ulozeny na objednavce, tak je to spravny datum
|
|
return new \DateTime($deliveryData['deliveryDate']);
|
|
} catch (\Throwable) {
|
|
}
|
|
}
|
|
|
|
// pokud nemam datum, tak nactu nejdriv parent date
|
|
if (!$date) {
|
|
if (!($date = parent::getDeliveryDate($order))) {
|
|
$order->fetchItems();
|
|
// pokud nemam u objednavky ulozeny delivery date, tak ho spocitam
|
|
$date = $this->deliveryInfo->getDeliveryDate(
|
|
$order->productList,
|
|
$order->getDeliveryType()->getDelivery()
|
|
);
|
|
}
|
|
}
|
|
|
|
return $date;
|
|
}
|
|
}
|