Files
2025-08-02 16:30:27 +02:00

63 lines
2.2 KiB
PHP

<?php
namespace KupShop\BalikonosBundle\BalikobotAdapters;
use KupShop\I18nBundle\Util\PriceConverter;
class BalikobotCPAdapter implements IBalikobotAdapter
{
/** @var PriceConverter|null */
protected $priceConverter;
public function transformOrderData(\Order $order, array $data, array &$custom_data): array
{
$services = [];
$services[] = ($order->getData('delivery_data', false)['time_zone'] ?? false) ? '1B' : '1A';
if (!empty($data['size'])) {
$services[] = $data['size'];
}
// cenná psaní, doporučené zásilky, standardní balíky, cenné balíky do zahraničí na SK se musí hodnota zásilky uvádět v CZK
$services_types = ['VL', 'VZP', 'RZP', 'CSP', 'CSE', 'CVP', 'CVE'];
if ($data['rec_country'] == 'SK' && array_search($data['service_type'], $services_types) !== false) {
$data['price'] = $this->priceConverter->convert(
$order->getCurrency(),
'CZK',
$data['price']
);
$data['ins_currency'] = 'CZK';
}
$data['services'] = join('+', $services);
if (!empty($data['content_data'])) {
// 8mi místný cn kód je moc dlouhý? Chyba:
// Neplatná data pro celní prohlášku - Tarifní číslo je moc dlouhé
$data['content_data'] = array_map(function ($d) {
$d['content_customs_code'] = substr($d['content_customs_code'], 0, 6);
return $d;
}, $data['content_data']);
}
// birthdate je vzdycky
if (($data['require_full_age'] ?? false) && $birthdate = $order->getData('birthdate')) {
$delivery_birthdate = $order->getData('delivery_birthdate');
$date = \DateTime::createFromFormat('Y-m-d', $delivery_birthdate ? $delivery_birthdate : $birthdate);
$data['full_age_data'] = $date->format('Y-m-d');
$data['note'] = 'ročník '.$date->format('Y');
}
return $data;
}
/**
* @required
*/
public function setPriceConverter(?PriceConverter $priceConverter = null): void
{
$this->priceConverter = $priceConverter;
}
}