Работа над сайтом 17
This commit is contained in:
parent
b2b5b0737c
commit
a6d8ee5e59
|
@ -21,4 +21,7 @@ return [
|
||||||
'password' => '',
|
'password' => '',
|
||||||
'key' => ''
|
'key' => ''
|
||||||
],
|
],
|
||||||
|
'dadata' => [
|
||||||
|
'key' => ''
|
||||||
|
]
|
||||||
];
|
];
|
||||||
|
|
|
@ -175,9 +175,20 @@ class SearchController extends Controller
|
||||||
$row['overload'] = true;
|
$row['overload'] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($connections as &$connection) {
|
foreach ($connections as $key => &$connection) {
|
||||||
// Перебор поставок
|
// Перебор поставок
|
||||||
|
|
||||||
|
if (($cost = $cost['ЦенаЗаЕдиницу'] ?? $connection['supply_edge_product'][0]['onec']['Цены']['Цена']['ЦенаЗаЕдиницу']) < 1
|
||||||
|
|| ($amount = $connection['supply']['amnt'] ?? $connection['supply_edge_product'][0]['onec']['Количество']) < 1
|
||||||
|
) {
|
||||||
|
// Цена меньше единицы (подразумевается как ошибка) или количество меньше единицы
|
||||||
|
|
||||||
|
// Скрыть из выдачи
|
||||||
|
unset($connections[$key]);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Инициализация аккаунта
|
// Инициализация аккаунта
|
||||||
$connection['account'] = Account::searchBySupplyId($connection['supply_edge_product'][0]['_from']);
|
$connection['account'] = Account::searchBySupplyId($connection['supply_edge_product'][0]['_from']);
|
||||||
|
|
||||||
|
@ -244,7 +255,7 @@ class SearchController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
// Инициализация цены (цена поставки + цена доставки + наша наценка)
|
// Инициализация цены (цена поставки + цена доставки + наша наценка)
|
||||||
$connection['cost'] = ($cost['ЦенаЗаЕдиницу'] ?? $connection['supply_edge_product'][0]['onec']['Цены']['Цена']['ЦенаЗаЕдиницу']) + ($connection['delivery']['price']['all'] ?? $connection['delivery']['price']['one'] ?? 0) + ($settings['increase'] ?? 0);
|
$connection['cost'] = $cost + ($connection['delivery']['price']['all'] ?? $connection['delivery']['price']['one'] ?? 0) + ($settings['increase'] ?? 0);
|
||||||
|
|
||||||
// Инициализация версии для рассчета доставки по воздуху
|
// Инициализация версии для рассчета доставки по воздуху
|
||||||
$buffer_delivery_avia = $connection;
|
$buffer_delivery_avia = $connection;
|
||||||
|
@ -252,6 +263,19 @@ class SearchController extends Controller
|
||||||
try {
|
try {
|
||||||
// Инициализация данных геолокации
|
// Инициализация данных геолокации
|
||||||
|
|
||||||
|
if (($cost = $cost['ЦенаЗаЕдиницу'] ?? $buffer_delivery_avia['supply_edge_product'][0]['onec']['Цены']['Цена']['ЦенаЗаЕдиницу']) < 1
|
||||||
|
|| ($amount = $connection['supply']['amnt'] ?? $connection['supply_edge_product'][0]['onec']['Количество']) < 1
|
||||||
|
) {
|
||||||
|
// Цена меньше единицы (подразумевается как ошибка) или количество меньше единицы
|
||||||
|
// Этот код не будет выполняться, так как цена одна на обе позиции и аналогичная проверка выше уже есть
|
||||||
|
// Однако я это оставлю для возможных доработок в будущем
|
||||||
|
|
||||||
|
// Скрыть из выдачи
|
||||||
|
unset($connections[$key]);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$from = (int) $buffer_delivery_avia['account']['opts']['delivery_from_terminal'] ?? Settings::search()->delivery_from_default ?? 36;
|
$from = (int) $buffer_delivery_avia['account']['opts']['delivery_from_terminal'] ?? Settings::search()->delivery_from_default ?? 36;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
@ -313,7 +337,7 @@ class SearchController extends Controller
|
||||||
// Если рассчиталась доставка самолётом
|
// Если рассчиталась доставка самолётом
|
||||||
|
|
||||||
// Инициализация цены (цена поставки + цена доставки + наша наценка)
|
// Инициализация цены (цена поставки + цена доставки + наша наценка)
|
||||||
$buffer_delivery_avia['cost'] = ($cost['ЦенаЗаЕдиницу'] ?? $buffer_delivery_avia['supply_edge_product'][0]['onec']['Цены']['Цена']['ЦенаЗаЕдиницу']) + ($buffer_delivery_avia['delivery']['price']['all'] ?? $buffer_delivery_avia['delivery']['price']['one'] ?? 0) + ($settings['increase'] ?? 0);
|
$buffer_delivery_avia['cost'] = $cost + ($buffer_delivery_avia['delivery']['price']['all'] ?? $buffer_delivery_avia['delivery']['price']['one'] ?? 0) + ($settings['increase'] ?? 0);
|
||||||
|
|
||||||
// Запись в буфер
|
// Запись в буфер
|
||||||
$buffer_connections[] = $buffer_delivery_avia;
|
$buffer_connections[] = $buffer_delivery_avia;
|
||||||
|
|
|
@ -12,7 +12,7 @@ use yii;
|
||||||
<a class="text-dark my-auto mr-2" title="Заказы" href="/orders" role="button" onclick="return page_orders();"><i class="fas fa-list mx-2"></i></a>
|
<a class="text-dark my-auto mr-2" title="Заказы" href="/orders" role="button" onclick="return page_orders();"><i class="fas fa-list mx-2"></i></a>
|
||||||
<div class="btn-group my-auto">
|
<div class="btn-group my-auto">
|
||||||
<a class="btn m-0 px-0 text-dark button_clean" title="Личный кабинет" href="/profile" role="button" onclick="return page_profile();"><b><?= yii::$app->user->identity->mail ?></b></a>
|
<a class="btn m-0 px-0 text-dark button_clean" title="Личный кабинет" href="/profile" role="button" onclick="return page_profile();"><b><?= yii::$app->user->identity->mail ?></b></a>
|
||||||
<button id="profile_button" class="btn pr-0 dropdown-toggle dropdown-toggle-split button_clean" type="button" data-toggle="dropdown" onmouseover="$('#profile_button').dropdown('show')"></button>
|
<button id="profile_button" class="btn button_clean_full pr-0 dropdown-toggle dropdown-toggle-split button_clean" type="button" data-toggle="dropdown" onmouseover="$('#profile_button').dropdown('show')"></button>
|
||||||
<div id="profile_button_panel" class="dropdown-menu dropdown-menu-right py-1" aria-labelledby="profile_button" onmouseout="$('#profile_button').dropdown('show')">
|
<div id="profile_button_panel" class="dropdown-menu dropdown-menu-right py-1" aria-labelledby="profile_button" onmouseout="$('#profile_button').dropdown('show')">
|
||||||
<a class="dropdown-item button_white text-dark" onclick="deauthentication()">Выход (<?= yii::$app->user->identity->mail ?>)</a>
|
<a class="dropdown-item button_white text-dark" onclick="deauthentication()">Выход (<?= yii::$app->user->identity->mail ?>)</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -70,7 +70,7 @@ AppAsset::register($this);
|
||||||
<aside class="container mb-4">
|
<aside class="container mb-4">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3 d-flex flex-column align-center justify-content-end dropdownMenuButton_column">
|
<div class="col-lg-3 d-flex flex-column align-center justify-content-end dropdownMenuButton_column">
|
||||||
<button id="catalog" class="btn form-control d-flex align-items-center button_clean catalog_button" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<button id="catalog" class="btn button_clean form-control d-flex align-items-center button_clean catalog_button" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<i class="fas fa-bars col-auto text-left p-0 mr-auto h-100 d-flex flex-column justify-content-center"></i>
|
<i class="fas fa-bars col-auto text-left p-0 mr-auto h-100 d-flex flex-column justify-content-center"></i>
|
||||||
<p class="col-10 m-0 p-0">Каталог товаров</p>
|
<p class="col-10 m-0 p-0">Каталог товаров</p>
|
||||||
</button>
|
</button>
|
||||||
|
@ -82,7 +82,7 @@ AppAsset::register($this);
|
||||||
<div id="searchPanel" class="col">
|
<div id="searchPanel" class="col">
|
||||||
<form class="d-flex catalog_search" onsubmit="return false;">
|
<form class="d-flex catalog_search" onsubmit="return false;">
|
||||||
<div class="position-relative col-sm-8 col-lg-10 px-0">
|
<div class="position-relative col-sm-8 col-lg-10 px-0">
|
||||||
<input id="search_line" type="text" class="form-control col-12 catalog_search_line button_clean" placeholder="Введите номер запчасти, например: 45223503481" oninput="$('#search_line').dropdown('hide'); product_search(this.value);" data-toggle="dropdown" aria-expanded="false" autocomplete="off">
|
<input id="search_line" type="text" class="form-control button_clean col-12 catalog_search_line button_clean" placeholder="Введите номер запчасти, например: 45223503481" oninput="$('#search_line').dropdown('hide'); product_search(this.value);" data-toggle="dropdown" aria-expanded="false" autocomplete="off">
|
||||||
<?php
|
<?php
|
||||||
// Сделать системные настройки и по ним работать
|
// Сделать системные настройки и по ним работать
|
||||||
$search_panel = yii::$app->controller->renderPartial('/search/panel', ['history' => true]);
|
$search_panel = yii::$app->controller->renderPartial('/search/panel', ['history' => true]);
|
||||||
|
|
|
@ -188,9 +188,16 @@ if (
|
||||||
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('last',' '<?= time() - 31536000 ?>', '<?= time() ?>');">Год</a>
|
<a class="btn btn-sm button_white button_clean mb-0 mr-2" type="button" onclick="return orders_read('last',' '<?= time() - 31536000 ?>', '<?= time() ?>');">Год</a>
|
||||||
</small>
|
</small>
|
||||||
<div class="ml-2 mr-3 d-flex">
|
<div class="ml-2 mr-3 d-flex">
|
||||||
<input id="orders_period_calendar_from" class="form-control form-control-sm form_control_clean" type="date" value="<?= $from ?? date('Y-m-d', time() - 604800) ?>" onchange="return orders_read('last', moment(this.value, 'YYYY-MM-DD').unix(), moment(document.getElementById('orders_period_calendar_to').value, 'YYYY-MM-DD').unix());" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" />
|
<div class="form-control form-control-sm form_control_clean px-1 py-0 d-flex">
|
||||||
|
<input id="orders_period_calendar_from" class="" type="date" value="<?= $from ?? date('Y-m-d', time() - 604800) ?>" onchange="return orders_read('last', moment(this.value, 'YYYY-MM-DD').unix(), moment(document.getElementById('orders_period_calendar_to').value, 'YYYY-MM-DD').unix());" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" />
|
||||||
|
<i class="far fa-calendar-alt my-auto"></i>
|
||||||
|
</div>
|
||||||
<p class="mx-2 p-0">-</p>
|
<p class="mx-2 p-0">-</p>
|
||||||
<input id="orders_period_calendar_to" class="form-control form-control-sm form_control_clean" type="date" value="<?= $to ?? date('Y-m-d', time()) ?>" onchange="return orders_read('last', moment(document.getElementById('orders_period_calendar_from').value, 'YYYY-MM-DD').unix(), moment(this.value, 'YYYY-MM-DD').unix());" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" />
|
|
||||||
|
<div class="form-control form-control-sm form_control_clean px-1 py-0 d-flex">
|
||||||
|
<input id="orders_period_calendar_to" class="f" type="date" value="<?= $to ?? date('Y-m-d', time()) ?>" onchange="return orders_read('last', moment(document.getElementById('orders_period_calendar_from').value, 'YYYY-MM-DD').unix(), moment(this.value, 'YYYY-MM-DD').unix());" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" />
|
||||||
|
<i class="far fa-calendar-alt my-auto"></i>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col mb-4 list rounded">
|
<div class="col mb-4 list rounded">
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
<link href="/css/pages/search.css" rel="stylesheet">
|
<link href="/css/pages/search.css" rel="stylesheet">
|
||||||
|
|
||||||
<div id="page_search" class="container flex-grow-1 d-flex">
|
<div id="page_search" class="container flex-grow-1 d-flex">
|
||||||
<?php if (isset($timer) && $timer > 0) : ?>
|
<?php
|
||||||
|
|
||||||
|
use phpDocumentor\Reflection\DocBlock\Tags\Var_;
|
||||||
|
|
||||||
|
if (isset($timer) && $timer > 0) : ?>
|
||||||
|
|
||||||
<div class="row py-3 w-100">
|
<div class="row py-3 w-100">
|
||||||
<section class="col">
|
<section class="col">
|
||||||
|
@ -74,15 +78,35 @@
|
||||||
// Инициализация указателя номера цикла
|
// Инициализация указателя номера цикла
|
||||||
$supply_iterator = 1;
|
$supply_iterator = 1;
|
||||||
?>
|
?>
|
||||||
|
<?php foreach (empty($row['supplies']) || count($row['supplies']) === 0 ? [null] : $row['supplies'] as $supply) : ?>
|
||||||
<?php foreach ($row['supplies'] as $supply) : ?>
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
// Инициализация модификатора класса
|
||||||
|
if ($supplies_amount > $supply_iterator) {
|
||||||
|
// Это не последняя строка с товаром и его поставками
|
||||||
|
|
||||||
|
$supply_class_modifier = 'mb-1';
|
||||||
|
} else {
|
||||||
|
// Это последняя строка с товаром и его поставками
|
||||||
|
|
||||||
|
$supply_class_modifier = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($supply)) {
|
||||||
|
// Поставки отсутствуют
|
||||||
|
|
||||||
|
// Генерация данных об отсутствии заказов
|
||||||
|
goto no_supplies;
|
||||||
|
} else {
|
||||||
|
// Обычная обработка поставки
|
||||||
|
|
||||||
// Инициализация переменных
|
// Инициализация переменных
|
||||||
extract($supply);
|
extract($supply);
|
||||||
|
}
|
||||||
|
|
||||||
// Инициализация цены
|
// Инициализация цены
|
||||||
$price_raw = $cost;
|
$price_raw = $cost;
|
||||||
$price = $price_raw . ' ' . $supply_edge_product[0]['onec']['Цены']['Цена']['Валюта'];
|
$price = $price_raw . ' ' . $supply_edge_product[0]['onec']['Цены']['Цена']['Валюта'] ?? 'руб';
|
||||||
|
|
||||||
// Инициализация количества
|
// Инициализация количества
|
||||||
$amount_raw = $amount = $supply['amnt'] ?? $supply_edge_product[0]['onec']['Количество'];
|
$amount_raw = $amount = $supply['amnt'] ?? $supply_edge_product[0]['onec']['Количество'];
|
||||||
|
@ -93,6 +117,34 @@
|
||||||
$amount .= ' шт';
|
$amount .= ' шт';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($amount_raw < 1 || $price_raw < 1) {
|
||||||
|
// Нет в наличии или цена 0 рублей
|
||||||
|
|
||||||
|
// Поставки отстутвуют
|
||||||
|
no_supplies:
|
||||||
|
|
||||||
|
// Проверка на блокировку
|
||||||
|
if ($empty_block) continue;
|
||||||
|
|
||||||
|
$supplies_html .= <<<HTML
|
||||||
|
<div class="row $supply_class_modifier m-0 h-100 text-right">
|
||||||
|
<a class="col-auto ml-auto my-auto text-dark" href="/order/new/custom" role="button" onclick="return false;">
|
||||||
|
<small>
|
||||||
|
Заказать поиск у оператора
|
||||||
|
</small>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
HTML;
|
||||||
|
|
||||||
|
// Запись блокировщика
|
||||||
|
$empty_block = true;
|
||||||
|
|
||||||
|
// Обновление счётчика
|
||||||
|
++$supply_iterator;
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Инициализация доставки
|
// Инициализация доставки
|
||||||
if (isset($delivery['error']) || $delivery === '?') {
|
if (isset($delivery['error']) || $delivery === '?') {
|
||||||
// Не удалось рассчитать доставку
|
// Не удалось рассчитать доставку
|
||||||
|
@ -144,33 +196,7 @@
|
||||||
// Инициализация индекса аккаунта
|
// Инициализация индекса аккаунта
|
||||||
$index = $account['indx'] ?? 'Неизвестен';
|
$index = $account['indx'] ?? 'Неизвестен';
|
||||||
|
|
||||||
// Инициализация модификатора класса
|
// Генерация
|
||||||
if ($supplies_amount > $supply_iterator) {
|
|
||||||
$supply_class_modifier = 'mb-1';
|
|
||||||
} else {
|
|
||||||
$supply_class_modifier = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($amount_raw < 1 || $price_raw < 1) {
|
|
||||||
// Нет в наличии или цена 0 рублей
|
|
||||||
|
|
||||||
if ($empty_block) continue;
|
|
||||||
|
|
||||||
$supplies_html .= <<<HTML
|
|
||||||
<div class="row $supply_class_modifier m-0 h-100 text-right">
|
|
||||||
<a class="col-auto ml-auto my-auto text-dark" href="/order/new/custom" role="button" onclick="return false;">
|
|
||||||
<small>
|
|
||||||
Заказать поиск у оператора
|
|
||||||
</small>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
HTML;
|
|
||||||
|
|
||||||
// Запись блокировщика
|
|
||||||
$empty_block = true;
|
|
||||||
} else {
|
|
||||||
// Есть в наличии
|
|
||||||
|
|
||||||
$supplies_html .= <<<HTML
|
$supplies_html .= <<<HTML
|
||||||
<div class="row $supply_class_modifier m-0 text-right">
|
<div class="row $supply_class_modifier m-0 text-right">
|
||||||
<div class="col-5 mr-4"></div>
|
<div class="col-5 mr-4"></div>
|
||||||
|
@ -183,7 +209,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
HTML;
|
HTML;
|
||||||
}
|
|
||||||
|
|
||||||
// Обновление счётчика
|
// Обновление счётчика
|
||||||
++$supply_iterator;
|
++$supply_iterator;
|
||||||
|
|
|
@ -70,6 +70,7 @@ main {
|
||||||
.button_clean_full:focus,
|
.button_clean_full:focus,
|
||||||
.button_clean_full:active {
|
.button_clean_full:active {
|
||||||
outline : none !important;
|
outline : none !important;
|
||||||
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button_clean_full,
|
.button_clean_full,
|
||||||
|
|
|
@ -40,3 +40,13 @@
|
||||||
#page_orders article .row_supply:active, #page_orders article .row_supply_active {
|
#page_orders article .row_supply:active, #page_orders article .row_supply_active {
|
||||||
background-color: #e4e2ea;
|
background-color: #e4e2ea;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#page_orders article input[type="date"] {
|
||||||
|
left: 5%;
|
||||||
|
margin-right: -5%;
|
||||||
|
clip-path: inset(0 16% 0 2%);
|
||||||
|
position: relative;
|
||||||
|
font-size: 1rem;
|
||||||
|
outline: none;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
Reference in New Issue