<?php
declare(strict_types=1);
namespace WebBundle\Filler;
use DateTime;
use Exception;
use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;
use WebBundle\Entity\BuyOrder;
use WebBundle\Entity\BuyOrderArticle;
use WebBundle\Entity\BuyOrderArticleHoliday;
use WebBundle\Entity\OrderAddress;
use WebBundle\Enum\BuyOrderStatusEnum;
use WebBundle\Enum\DeliveryTypeTimeEnum;
use WebBundle\Enum\PaymentTypeEnum;
use WebBundle\Enum\VatTypeEnum;
use WebBundle\Helper\App;
use WebBundle\Helper\ConversionHelper;
use WebBundle\Helper\LocaleHelper;
use WebBundle\Helper\OrderAddressHelper;
use WebBundle\Helper\OrderHelper;
use WebBundle\Helper\ResponseApiHelper;
use WebBundle\Repository\BuyOrderRepository;
use WebBundle\Repository\ListCountryRepository;
use WebBundle\Repository\ListVatRepository;
use WebBundle\Repository\WarehouseRepository;
use WebBundle\Serializer\Normalizer\OrderNormalizer;
use WebBundle\Service\KladrService;
use WebBundle\Service\OrderAddressService;
use WebBundle\Service\OrderItemService;
use WebBundle\Service\VatService;
class OrderFiller
{
/** @required */
public BuyOrderRepository $buyOrderRepository;
/** @required */
public ListCountryRepository $listCountryRepository;
/** @required */
public ListVatRepository $listVatRepository;
/** @required */
public WarehouseRepository $warehouseRepository;
/** @required */
public OrderItemService $orderItemService;
/** @required */
public OrderAddressService $addressService;
/** @required */
public KladrService $kladrService;
/** @required */
public VatService $vatService;
/** @required */
public OrderNormalizer $orderNormalizer;
/** @required */
public OrderItemsFiller $orderItemsFiller;
private AuthorizationChecker $authorizationChecker;
public function __construct(AuthorizationChecker $authorizationChecker)
{
$this->authorizationChecker = $authorizationChecker;
}
public function fillOrderAsDraft(BuyOrder $order): void
{
// Если срок был подтвержденным, то при сбросе меняем тип на ранее подтвержденный
if ($order->getDeliveryTimeType() === DeliveryTypeTimeEnum::CONFIRMED) {
// фиксируем на всякий случай, что новые сроки подтвержденные
$order->setDeliveryTimeType(DeliveryTypeTimeEnum::PREVIOUSLY_CONFIRMED);
}
// запоминаем старые сроки прежде чем затереть их
if ($order->getDeliveryTimeMin() != null) {
$order->setDeliveryOldTimeMin($order->getDeliveryTimeMin());
}
if ($order->getDeliveryTimeMax() != null) {
$order->setDeliveryOldTimeMax($order->getDeliveryTimeMax());
}
$order->setSendCreate1C(false);
$order->setDelivery(null);
$order->setDeliveryPriceEuro(null);
$order->setCustomsPayment(null);
$order->setDeliveryCalculateType(null);
$order->setDeliveryTimeMin(null);
$order->setDeliveryTimeMax(null);
$order->setDeliveryTimeConfirmMin(null);
$order->setDeliveryTimeConfirmMax(null);
$order->setDeliveryTimeFastPayMin(null);
$order->setDeliveryTimeFastPayMax(null);
$order->setRemember(null);
$order->setWeightGross(null);
$order->setWeightLimit(null);
$order->setWeightReport(null);
$order->setLift(null);
$order->setCarrierName(null);
$order->setCarrierContactData(null);
/** @var BuyOrderArticle $item */
foreach ($order->getArticles() as $item) {
$item->setDeliveryTimeMin(null);
$item->setDeliveryTimeMax(null);
$item->setDeliveryTimeConfirmMin(null);
$item->setDeliveryTimeConfirmMax(null);
$item->setArticleTimeType(DeliveryTypeTimeEnum::CALCULATED);
$this->orderItemService->setItemData(
$order,
$item,
$item->getAmount(),
$item->getType(),
$item->getSwimmingPool(),
true
);
}
$this->buyOrderRepository->save($order);
}
/**
* @param BuyOrder $order
* @return array
* @throws Exception
* @deprecated todo Будет упразднена после перехода на заказ 2.0
*/
public function fillArrayWithOldOrderData(BuyOrder $order): array
{
$currentLocale = App::getCurLocale();
$response = new ResponseApiHelper();
$deliveryLink = OrderHelper::deliveryLink($order);
$items = $this->orderItemsFiller->fillArrayWithOrderItemsByOrder(
$order->getArticles(),
OrderHelper::asVat($order) && OrderHelper::homeCountryVat($order) == false
);
$response->setResponse('offsetReason', OrderHelper::offsetReason($order));
$response->setResponse(
'userUnid',
$order->getUser() && $order->getUser()->getUnid() ? $order->getUser()->getUnid() : null
);
if ($order->getWeightReport() > 0) {
$weightReport = App::trans(
LocaleHelper::weightLabel($order->getWeightReport(), true, $order->getMeasure())
);
$response->setResponse(
'weightReport',
App::trans(
'buyOrder.info.weightReport',
$currentLocale,
['%d%' => $weightReport]
)
);
} else {
$response->setResponse('weightReport', null);
}
$sum = OrderHelper::sum($order);
$weightGross = $order->getWeightGross();
if (!$weightGross) {
$weightGross = $sum['weight'];
if ('ft' === $order->getMeasure()) {
$weightGross = ConversionHelper::convertKgLb((float) $weightGross);
}
}
$response->setResponse('weightGross', $weightGross);
if ($order->getCarrierName()) {
$response->setResponse(
'courierName',
App::trans('order.courier', null, ['%name%' => $order->getCarrierName()])
);
}
$response->setResponse(
'weightMea',
$order->getMeasure() == 'ft'
? App::trans('measure_lb')
: App::trans('measure_kg')
);
$response->setResponse('taxNumber', $order->getTaxNumber() ? 1 : 0);
$response->setResponse('payType', $order->getPayType());
$response->setResponse('currency', LocaleHelper::getCurrency($order->getCurrency()));
$response->setResponse('timeProcess', date('Y-m-d H:i:s'));
$response->setResponse('timeType', $order->getDeliveryTimeType());
$response->setResponse('company', $order->getCompanyName());
$response->setResponse(
'puyBut',
(
$order->getVatType() == 0 ||
$order->getVatNumber() != null ||
$order->getDeliveryCountry() &&
in_array($order->getDeliveryCountry()->getId(), OrderHelper::noEU()['id'])
) && (
$order->getVatType() == 0 ||
$order->getCompanyName() != null
) && (
$order->getUser() && $order->getUser()->getProved() && $sum['smart'] > 0 ||
OrderHelper::onlySamples($order)
)
);
$response->setResponse('mirror', $order->getMirror());
$response->setResponse('holiday', OrderHelper::isHoliday($order));
$response->setResponse('orderRequest', OrderHelper::checkForSend($order));
$response->setResponse('num', $order->getNumber());
$response->setResponse('id', $order->getId());
$response->setResponse('articles', $items);
$response->setResponse('paid', OrderHelper::paymentSum($order));
$response->setResponse('timeRu', OrderHelper::timeRu($order));
$response->setResponse('total', $sum);
$fullPrice = OrderHelper::totalSum($order);
$paidPrice = OrderHelper::paymentSum($order);
$fee = OrderHelper::percent(
$fullPrice - $paidPrice,
OrderHelper::paymentPercent($order, $order->getPayType())
);
$response->setResponse('fullPrice', $fullPrice);
$response->setResponse('fee', $fee);
$response->setResponse('onlySamples', OrderHelper::onlySamples($order));
$response->setResponse(
'fullPriceWithBankFee',
$fullPrice + $fee
);
$response->setResponse('EORIRequired', OrderHelper::EORIRequired($order));
$response->setResponse(
'freeDeliverySample',
$order->getDeliveryCountry() && $sum['all'] < $order->getDeliveryCountry()->getFreeSampleDelivery()
? App::trans(
'order.free_delivery_sample',
$currentLocale,
[
'%sum%' => $order->getDeliveryCountry()->getFreeSampleDelivery(),
'%currency%' => LocaleHelper::getCurrency(OrderHelper::countryCode($order)),
]
)
: ''
);
$response->setResponse('status', [
'id' => $order->getStatus(),
'text' => (
$order->getStatus() != BuyOrderStatusEnum::AWAITING_CALCULATION ||
$order->getWeightLimit() == null ||
$sum['weight'] < $order->getWeightLimit()
? ($order->getStatus() == BuyOrderStatusEnum::REQUEST_DELIVERY
? strip_tags($deliveryLink)
: App::trans('order.status.' . BuyOrderStatusEnum::from($order->getStatus())->getAlias())
)
: App::trans('order.status.more_weight', $currentLocale, [
'%d%' => $order->getMeasure() == 'ft'
? ConversionHelper::convertKgLb((float) $order->getWeightLimit())
: $order->getWeightLimit(),
])
),
'msg' => $order->getStatus() == BuyOrderStatusEnum::AWAITING_CALCULATION ? App::trans('buyOrder.error.on_request') : '',
]);
if (OrderHelper::isUnavailableItem($order)) {
$response->setResponse('isUnavailableItem', App::trans('te.order.msg_unavailable_item_delete'));
}
$isSample = OrderHelper::isSample($order);
$deliveryVal = $order->getDelivery();
$currency = '<b class="currency">' . LocaleHelper::getCurrency($order->getCurrency()) . '</b>';
$response->setResponse('delivery', [
'asLink' => $order->getStatus() == BuyOrderStatusEnum::REQUEST_DELIVERY && OrderHelper::checkForSend($order),
'price' => [
'val' => $deliveryVal,
'text' => $order->getDelivery() !== null
? $currency . ' <b>' . number_format($order->getDelivery(), 2, '.', ' ') . '</b>'
: strip_tags($deliveryLink),
],
'payDateExecution' => ($order->getPayDateExecution() && $order->getDeliveryCountry())
? $order->getPayDateExecution()->format(
LocaleHelper::dateMask(1, $order->getDeliveryCountry()->getCode())
)
: null,
'payDateExecutionISO' => $order->getPayDateExecution() && $order->getPayDateExecution()->getTimestamp() > (new DateTime())->getTimestamp()
? $order->getPayDateExecution()->getTimestamp()
: null,
'time' => OrderHelper::time($order)
? OrderHelper::time($order)
: htmlspecialchars($deliveryLink),
'lift' => $order->getLift() !== null ? $order->getLift() : 2,
]);
$response->setResponse('showPaymentBefore', $order->getPayType() == PaymentTypeEnum::BANK_TRANSFER && !$isSample);
$response->setResponse('isSample', $isSample);
$response->setResponse('totalArticlesCount', $this->buyOrderRepository->getBuyOrderArticleCount($order->getToken()));
$response->setResponse(
'name',
OrderHelper::humanName(
$order->getName(),
$order->getStatus(),
$order->getBankTransferRequested(),
)
);
$response->setResponse('url', App::generateUrl('app_buy_order', ['orderId' => $order->getHash()]));
$orderData = OrderHelper::arrayData($order);
$response->setResponse('order', $orderData);
$response->setResponse('customsPayment', $order->getCustomsPayment());
$response->setResponse('prohibitSendReviewRequest', $order->isProhibitSendReviewRequest());
$response->setResponse('holidays', $this->getHolidaysForOrderItems($order));
return $response->result();
}
public function orderData(
BuyOrder $buyOrder,
?string $token,
?bool $isAccessAdminOrder,
?array $pickupWarehouses,
?array $context = [],
?array $errors = []
): array {
$tokenOrder = $buyOrder->getToken();
$master = $tokenOrder === $token
|| $this->authorizationChecker->isGranted('ROLE_ADMIN')
|| $this->authorizationChecker->isGranted('ROLE_CONS');
if ($master) {
$context['master'] = true;
}
$order = $this->orderNormalizer->normalize($buyOrder, null, $context);
$orderAddressesFiltered = [];
if ($master) {
$orderAddresses = $this->addressService->getOrderAddress($tokenOrder);
foreach ($orderAddresses as $orderAddress) {
if ($orderAddress['addressType'] == OrderAddress::IS_PAYER
|| ($order['payer']['id'] == $orderAddress['id']
&& $order['recipient']['id'] != $order['payer']['id']
)
|| ($order['recipient']['id'] != $orderAddress['id']
&& ($orderAddress['frozen'] == 1
|| $this->requiredAddressFieldMissing($orderAddress)
)
)
) {
continue;
}
$orderAddressesFiltered[] = $orderAddress;
}
}
$order['orderAddress'] = $orderAddressesFiltered;
$order['pickupWarehouses'] = $pickupWarehouses;
$order['err'] = [];
$order['auth'] = !!App::getCurUser();
$order['errors'] = $errors;
if (!empty($context['full'])) {
$order['trans'] = OrderHelper::transPage();
$order['paths'] = $this->getPaths($order['hash']);
$order['countryList'] = OrderHelper::countryList();
}
$order['master'] = $master;
$order['payerEdit'] = $this->buyOrderRepository->countDrafts($tokenOrder) < 2;
$order['isAccessAdminOrder'] = $isAccessAdminOrder;
$order['prohibitSendReviewRequest'] = $buyOrder->isProhibitSendReviewRequest();
$order['roles'] = [
'admin' => $this->authorizationChecker->isGranted('ROLE_ADMIN'),
'cons' => $this->authorizationChecker->isGranted('ROLE_CONS'),
];
return $order;
}
private function requiredAddressFieldMissing(array $address): bool
{
if (empty($address['name'])
|| empty($address['surname'])
|| empty($address['country'])
|| empty($address['phoneCode'])
|| empty($address['phone'])
|| empty($address['zipCode'])
|| empty($address['city'])
|| empty($address['street'])
|| empty($address['building'])
) {
return true;
}
return false;
}
public function fillOrderDeliveryFromFrontData(array $delivery, BuyOrder $order, BuyOrder $oldOrder): void
{
if (
!empty($delivery['country'])
&& ($delivery['country'] != OrderHelper::country($oldOrder)
|| $order->getDeliveryCountry()->getId() != $delivery['country']
)
) {
//нужно убрать ват номер при смене страны
$order->setVatNumber(null);
$countryEntity = $this->listCountryRepository->getReference((int) $delivery['country']);
$order->setDeliveryCountry($countryEntity);
//обнуляем регион при назначении страны
$order->setDeliveryRegion(null);
}
if (!empty($delivery['index'])) {
if ($order->getDeliveryIndex() && $delivery['index'] != $order->getDeliveryIndex()) {
$order->setKladrId(null);
$order->setOkatoId(null);
}
$order->setDeliveryIndex($delivery['index']);
}
if (!empty($delivery['region'])) {
if (is_array($delivery['region'])) {
$delivery['region'] = $delivery['region'][0];
}
$order->setDeliveryRegion($delivery['region']);
}
$order->setDeliveryCity($delivery['city'] ?? $order->getDeliveryCity());
$order->setDeliveryBuilding($delivery['building'] ?? $order->getDeliveryBuilding());
$order->setDeliveryApartmentOffice($delivery['apartmentOffice'] ?? $order->getDeliveryApartmentOffice());
$order->setDeliveryPhoneCode($delivery['phoneCode'][0] ?? $order->getDeliveryPhoneCode());
$order->setDeliveryPhone($delivery['phone'] ?? $order->getDeliveryPhone());
if (!empty($delivery['street'])) {
if ($order->getDeliveryBuilding()) {
$delivery['street'] = OrderAddressHelper::replaceBuilding(
$order->getDeliveryBuilding(),
$delivery['street']
);
}
$order->setDeliveryAddress($delivery['street']);
}
//only for Russia
if (!empty($delivery['country']) && $delivery['country'] == 643) {
$this->russianPreparedAddress($order, $delivery);
}
}
public function fillOrderVatFromFrontData(array $vat, BuyOrder $order): void
{
if (!isset($vat['type'])) {
return;
}
$vatType = (int) $vat['type'];
$vatType = VatTypeEnum::isValid($vatType) ? $vatType : VatTypeEnum::INDIVIDUAL;
if (VatTypeEnum::INDIVIDUAL === $vatType || VatTypeEnum::CORPORATE_RUS === $vatType) {
$order->setVatType(VatTypeEnum::INDIVIDUAL);
return;
}
$vatNumber = !empty($vat['number']) ? $vat['number'] : null;
if ($vatNumber) {
$resVat = $this->vatService->checkVAT($vatNumber);
if ($resVat) {
$order->setVatNumber($vatNumber);
$order->setVatType($vatType);
if (!empty($resVat['name'])) {
$order->setCompanyName($resVat['name']);
}
return;
}
$vatType = VatTypeEnum::INDIVIDUAL;
}
if ($order->getVatNumber() == null || !OrderHelper::noVat($order)) {
$vatType = VatTypeEnum::INDIVIDUAL;
}
$order->setVatType($vatType);
}
/**
* @param BuyOrder $order
* @param array $delivery
* @return void
* @throws Exception
*/
private function russianPreparedAddress(BuyOrder $order, array $delivery): void
{
if (
!in_array($order->getPayType(), [PaymentTypeEnum::BANK_TRANSFER, PaymentTypeEnum::RUSSIAN_CARD])
) {
$order->setPayType(PaymentTypeEnum::RUSSIAN_CARD);
}
if (!empty($delivery['kladrId']) && !empty($delivery['index']) && !empty($delivery['city'])) {
$order->setKladrId($delivery['kladrId']);
$order->setOkatoId($delivery['okatoId']);
} elseif (empty($delivery['kladrId']) && !empty($delivery['index']) && !empty($delivery['city'])) {
$kladrId = $this->kladrService->getKladrIdByCityAndIndex((int) $delivery['index'], $delivery['city']);
if ($kladrId !== false) {
$order->setKladrId($kladrId);
}
}
}
public function fillCompanyNameForOrder(BuyOrder $order, ?string $companyName): void
{
if (null === $companyName) {
return;
}
// если есть ват номер и название фирмы зафиксированная в нем,
// то название фирмы менять нельзя
if ($order->getVatNumber() === null) {
$order->setVatNumber($companyName);
return;
}
$company = $this->listVatRepository->findOneByNumber($order->getVatNumber());
if ($company && $company->getName() != null && $company->getName() != '') {
$order->setCompanyName($company->getName());
} else {
$order->setCompanyName($companyName);
}
}
public function fillWarehouseData(BuyOrder $order, array $data): void
{
if (!isset($data['warehouse']['id'])) {
return;
}
$warehouse = null;
if ($order->getDeliveryType() === 1) {
$warehouse = $this->warehouseRepository->getWarehouse($data['warehouse']['id']);
}
$order->setWarehouse($warehouse);
}
public function fillHolidaysForItems(BuyOrder $order, array $data): void
{
if (!isset($data['items'])) {
return;
}
$processed = $data['items'];
/** @var BuyOrderArticle $buyOrderArticle */
foreach ($order->getArticles() as $buyOrderArticle) {
$code = $buyOrderArticle->chooseCode();
if (!array_key_exists($code, $processed)) {
continue;
}
if (!($processed[$code]['holiday'] ?? false)) {
$buyOrderArticle->getBuyOrderArticleHolidays()->clear();
continue;
}
if (empty($processed[$code]['HolidayCodes'] ?? [])) {
$buyOrderArticle->getBuyOrderArticleHolidays()->clear();
continue;
}
$holidayCodes = $processed[$code]['HolidayCodes'];
/** @var BuyOrderArticleHoliday $buyOrderArticleHoliday */
foreach ($buyOrderArticle->getBuyOrderArticleHolidays() as $buyOrderArticleHoliday) {
if (!in_array($buyOrderArticleHoliday->getHolidayCode(), $holidayCodes)) {
$buyOrderArticle->removeBuyOrderArticleHoliday($buyOrderArticleHoliday);
}
}
foreach ($holidayCodes as $holidayCode) {
$buyOrderArticleHoliday = new BuyOrderArticleHoliday();
$buyOrderArticleHoliday
->setBuyOrderArticle($buyOrderArticle)
->setHolidayCode($holidayCode);
$buyOrderArticle->addBuyOrderArticleHoliday($buyOrderArticleHoliday);
}
}
}
public function getHolidaysForOrderItems(BuyOrder $order): string
{
$errors = [];
// теперь отдаём просто строкой инфу о первом попавшемся празднике, из-за которого увеличен срок поставки
$translate = '';
/** @var BuyOrderArticle $buyOrderArticle */
foreach ($order->getArticles() as $buyOrderArticle) {
$code = $buyOrderArticle->chooseCode();
if (!$buyOrderArticle->getBuyOrderArticleHolidays()->isEmpty()) {
foreach ($buyOrderArticle->getBuyOrderArticleHolidays() as $buyOrderArticleHoliday) {
$holidayCode = 'holidays.' . $buyOrderArticleHoliday->getHolidayCode();
$translate = App::trans($holidayCode);
if ($translate === $holidayCode) {
$errors[] = 'Запрошен перевод для арта ' . $code . ' - не найден следующий: ' . $translate;
} else {
break 2;
}
}
}
}
if (!empty($errors)) {
try {
OrderHelper::Alert(
[
'subject' => 'Ошибка - не хватает перевода для праздника! %)))',
'errors ' => $errors,
],
'edotsenko|rzagorudko|dfomenkov131122'
);
} catch (Exception $e) {
}
}
return $translate;
}
private function getPaths(string $hash): array
{
return [
'appOrders' => App::generateUrl(
'app_orders',
[
'_locale' => App::getCurLocale(true),
]
),
'appOrderEdit' => App::generateUrl(
'app_order_edit_name',
[
'hash' => $hash,
'name' => '__name__',
'_locale' => App::getCurLocale(true),
]
), // show-order-header.html.twig, строка 56
'appOrderCheckVat' => App::generateUrl(
'app_check_vat',
[
'vat' => '__vat__',
]
),
'apiCheckEmail' => App::generateUrl(
'api.check_email',
[
'_locale' => App::getCurLocale(true),
]
),
'apiCheckAddressData' => App::generateUrl(
'api_check_address_postCode',
[]
),
'apiRequestDelivery' => App::generateUrl(
'app_api_request_delivery',
[
'_locale' => App::getCurLocale(true),
'hash' => $hash,
]
),
'apiOrder' => App::generateUrl(
'app_api_order',
[
'hash' => $hash,
]
),
'apiDelItems' => App::generateUrl(
'app_api_del_item',
[
'_locale' => App::getCurLocale(true),
// 'hash' => $hash
]
),
'apiMoveItems' => App::generateUrl(
'app_api_move_item',
[
'_locale' => App::getCurLocale(true),
]
),
'apiDelAddres' => App::generateUrl(
'app_api_del_address',
[
'_locale' => App::getCurLocale(true),
]
),
'login' => App::generateUrl(
'app_login',
[
'_locale' => App::getCurLocale(true),
]
),
'requestDeliveryCancel' => App::generateUrl(
'app_buy_order_request_delivery_cancel',
[
'orderId' => $hash,
'_locale' => App::getCurLocale(true),
]
), // s
'payment' => [
3 => App::generateUrl(
'app_order_bank_transfer',
[
'hash' => $hash,
'_locale' => App::getCurLocale(true),
]
),
4 => App::generateUrl(
'app_credit_card_form',
[
'hash' => $hash,
],
0
),
5 => App::generateUrl(
'app_credit_card_form',
[
'hash' => $hash,
'type' => 2,
'_locale' => App::getCurLocale(true),
]
), // /show.html.twig, строка 1626, appCreditCardForm тип_2
6 => App::generateUrl(
'app_credit_card_register',
[
'hash' => $hash,
'_locale' => App::getCurLocale(true),
]
), // /show.html.twig, строка 1626, appCreditCardRegister
1 => App::generateUrl(
'app_paypal',
[
'hash' => $hash,
'_locale' => App::getCurLocale(true),
]
), // show.html.twig, строка 1696, appPayPal
],
'appPage' => App::generateUrl(
'app_page',
[
'url' => '__url__',
'_locale' => App::getCurLocale(true),
]
),
'apiOrdersShortList' => App::generateUrl(
'app_api_orders_short_list'
),
'appOrderCreate' => App::generateUrl(
'app_buy_order_create',
[
'_locale' => App::getCurLocale(true),
]
),
'chatb' => App::generateUrl(
'app_chatb_chatbpage',
[
'_locale' => App::getCurLocale(true),
]
),
'history' => App::generateUrl(
'app_api_order_history',
[
'_locale' => App::getCurLocale(true),
'hash' => $hash,
]
),
'resend' => App::generateUrl('app_order_recreate_1C', ['hash' => $hash]),
'sync' => App::generateUrl(
'app_order_sync',
[
'hash' => $hash,
]
),
'recovery' => App::generateUrl(
'app_order_recovery',
[
'hash' => $hash,
]
),
'deleteData' => App::generateUrl(
'app_all_data_user',
[
'hash' => $hash,
]
),
//ToDo: Проверить функционал по одобрению сроков доставки
'confirmDate' => App::generateUrl(
'app_buy_order_confirm',
[
'orderId' => $hash,
'val' => '__val__',
]
),
'overpayment' => App::generateUrl(
'app_order_overpayment',
[
'orderId' => $hash,
'type' => '1',
]
),
'dataAgreeLinks' => [
'link' => App::generateUrl('app_page', ['url' => 'policy-personal-data-process']),
'link2' => App::generateUrl('app_page', ['url' => 'cookie-policy']),
'link3' => App::generateUrl('app_page', ['url' => 'conditions']),
'link4' => App::generateUrl('app_page', ['url' => 'privacypolicy']),
],
];
}
}