Работа над сайтом 12

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2021-06-29 09:08:01 +10:00
parent c4035d8ad3
commit 83295650c9
12 changed files with 105 additions and 92 deletions

View File

@ -137,7 +137,7 @@ class OrderController extends Controller
Order::searchById($account_edge_order->_to)->journal('accepted');
// Инициализация
$orders = Order::search(type: 'all', limit: 10, page: 1, select: '{account_edge_order, order}');
$orders = Order::search(type: 'all', limit: 10, page: 1, select: '{account_edge_order, order}', supplies: true);
$moderator_orders = self::genOrdersForModeration();
// Запись в буфер вывода
@ -320,6 +320,7 @@ class OrderController extends Controller
if ($connection['supply']['catn'] === $catn) {
// Цель найдена
if ($connection['amount'] > $amount) {
// Запрошено уменьшение количества
@ -329,7 +330,7 @@ class OrderController extends Controller
// Запрошено увеличение количества
// Запись
$order->writeSupply([$connection['supply']['catn'] => $amount - $connection['amount']]);
$order->writeSupply('supply/' . $connection['supply']['_key'], $connection['order_edge_supply']['dlvr'] ?? 'auto', $amount - $connection['amount']);
}
}
}
@ -419,8 +420,8 @@ class OrderController extends Controller
}
// Инициализация
$orders = Order::search(type: 'all', limit: 30, page: 1, select: '{account_edge_order, order}');
$moderator_orders = Order::search(account: '@all', type: 'requested', limit: 10, page: 1, select: '{account_edge_order, order}');
$orders = Order::search(type: 'all', limit: 10, page: 1, select: '{account_edge_order, order}', supplies: true);
$moderator_orders = self::genOrdersForModeration();
if (yii::$app->request->isPost) {
// POST-запрос

View File

@ -184,18 +184,23 @@ class SearchController extends Controller
try {
// Инициализация доставки (автоматическая)
$connection['delivery'] = Dellin::calcDeliveryAdvanced(
$buffer['account']['opts']['delivery_from_terminal'],
$connection['account']['opts']['delivery_from_terminal'],
yii::$app->user->identity->opts['delivery_to_terminal'],
(int) ($connection['product']['wght'] ?? 0),
(int) ($connection['product']['dmns']['x'] ?? 0),
(int) ($connection['product']['dmns']['y'] ?? 0),
(int) ($connection['product']['dmns']['z'] ?? 0)
);
$buffer['delivery']['type'] = 'auto';
$connection['delivery']['type'] = 'auto';
} catch (Exception $e) {
$connection['delivery']['error'] = true;
// var_dump(json_decode($e->getMessage(), true)['errors']); die;
// var_dump($e->getMessage());
// var_dump($e->getTrace());
// var_dump($e->getFile());
// var_dump(json_decode($e->getMessage(), true)['errors']);
// die;
}
// Инициализация цены (цена поставки + цена доставки + наша наценка)
@ -222,7 +227,6 @@ class SearchController extends Controller
// var_dump($e->getMessage());
// var_dump($e->getTrace());
// var_dump($e->getFile());
// die;
// var_dump(json_decode($e->getMessage(), true)['errors']);
// die;

View File

@ -354,47 +354,47 @@ class Order extends Document implements DocumentInterface
$buffer_global = [];
// Разделение поставок по типам доставки
foreach ($connections as &$connection) {
// Перебор поставок
// foreach ($connections as &$connection) {
// // Перебор поставок
if (count($connection['order_edge_supply'] ?? []) > 1) {
// Поставок более чем одна
// if (count($connection['order_edge_supply'] ?? []) > 1) {
// // Поставок более чем одна
// Инициализация (выбор значения для фильтрации)
$target_dlvr_type = reset($connection['order_edge_supply'])['dlvr']['type'] ?? 'auto';
// // Инициализация (выбор значения для фильтрации)
// $target_dlvr_type = reset($connection['order_edge_supply'])['dlvr']['type'] ?? 'auto';
// Инициализация буфера поставок
$buffer = $connection;
unset($buffer['order_edge_supply']);
// // Инициализация буфера поставок
// $buffer = $connection;
// unset($buffer['order_edge_supply']);
foreach ($connection['order_edge_supply'] as $key => &$order_edge_supply) {
// Перебор рёбер: ЗАКАЗ -> ПОСТАВКА
// foreach ($connection['order_edge_supply'] as $key => &$order_edge_supply) {
// // Перебор рёбер: ЗАКАЗ -> ПОСТАВКА
// if ((empty($order_edge_supply['dlvr']['type']) && $target_dlvr_type === 'auto')
// || (isset($order_edge_supply['dlvr']['type']) && $order_edge_supply['dlvr']['type'] !== $target_dlvr_type)
// // if ((empty($order_edge_supply['dlvr']['type']) && $target_dlvr_type === 'auto')
// // || (isset($order_edge_supply['dlvr']['type']) && $order_edge_supply['dlvr']['type'] !== $target_dlvr_type)
// // ) {
// if ((isset($order_edge_supply['dlvr']['type']) && $order_edge_supply['dlvr']['type'] === $target_dlvr_type)
// || (empty($order_edge_supply['dlvr']['type']) && $target_dlvr_type === 'auto')
// ) {
if ((isset($order_edge_supply['dlvr']['type']) && $order_edge_supply['dlvr']['type'] === $target_dlvr_type)
|| (empty($order_edge_supply['dlvr']['type']) && $target_dlvr_type === 'auto')
) {
// Тип доставки для одной поставки отличается
// // Тип доставки для одной поставки отличается
// Запись в буфер
$buffer['order_edge_supply'][$key] = $order_edge_supply;
// // Запись в буфер
// $buffer['order_edge_supply'][$key] = $order_edge_supply;
// Удаление из списка
unset($connection['order_edge_supply'][$key]);
// // Удаление из списка
// unset($connection['order_edge_supply'][$key]);
// Перезапись статуса
$changed = true;
}
}
// // Перезапись статуса
// $changed = true;
// }
// }
// Запись из буфера в глобальный буфер
$buffer_global[] = $buffer;
}
}
// // Запись из буфера в глобальный буфер
// $buffer_global[] = $buffer;
// }
// }
$connections = array_merge($connections, $buffer_global);
// $connections = array_merge($connections, $buffer_global);
// if ($changed) goto recursive_connections_filtration;
@ -478,9 +478,9 @@ class Order extends Document implements DocumentInterface
} catch (Exception $e) {
$connection['delivery']['error'] = true;
// var_dump($e->getMessage());
// var_dump($e->getTrace());
// var_dump($e->getFile()); die;
var_dump($e->getMessage());
var_dump($e->getTrace());
var_dump($e->getFile()); die;
// var_dump(json_decode($e->getMessage(), true)['errors']); die;
}
@ -505,9 +505,9 @@ class Order extends Document implements DocumentInterface
} catch (Exception $e) {
$connection['delivery']['error'] = true;
// var_dump($e->getMessage());
// var_dump($e->getTrace());
// var_dump($e->getFile()); die;
var_dump($e->getMessage());
var_dump($e->getTrace());
var_dump($e->getFile()); die;
// var_dump(json_decode($e->getMessage(), true)['errors']); die;
}

View File

@ -441,7 +441,7 @@ class Product extends Document
$query = self::find()
->for('product')
->in('product_search')
->search(['catn' => $catn])
->filter(['catn' => $catn], 'START_SENSETIVE')
->limit($limit)
->select($select)
->createCommand()

View File

@ -113,7 +113,7 @@ use DateTime;
}
} else {
echo <<<HTML
<div class="row py-2 cart_list_target">
<div class="row py-2">
<div class="mx-auto py-2">
Корзина пуста
</div>

View File

@ -10,7 +10,7 @@ $this->title = 'SkillParts';
<link href="/css/ticker.css" rel="stylesheet">
<div id="page_index" class="mb-auto">
<section class="info_panel mb-4">
<section class="info_panel mb-4 unselectable">
<div class="container h-100 d-flex flex-column justify-content-center">
<h1 class="mb-4 ml-0 gilroy">Проблема с подбором запчастей?</h1>
<p class="ml-0 d-flex">
@ -23,7 +23,7 @@ $this->title = 'SkillParts';
</div>
</section>
<section class="h-100 d-flex ticker">
<section class="h-100 d-flex ticker unselectable">
<img class="w-auto h-100 mr-3 my-auto" src="/img/logos/h32px/compressed/cummins.png" alt="Cummins">
<img class="w-auto h-100 mr-3 my-auto" src="/img/logos/h32px/compressed/iveco.png" alt="Iveco">
<img class="w-auto h-100 mr-3 my-auto" src="/img/logos/h32px/compressed/komatsu.png" alt="Komatsu">
@ -42,20 +42,17 @@ $this->title = 'SkillParts';
</section>
<section class="container mb-4">
<!-- <div class="row mb-3">
<h4 class="col gilroy categories_blocks_panel_title">Сопутствующие товары</h4>
</div> -->
<div class="row mb-5 mb-md-0 px-3 px-md-0">
<div class="row mb-5 mb-md-0 px-3 px-md-0 unselectable">
<div class="col-12 col-md-6 col-lg-4 mb-4 mb-lg-0 py-0 d-flex flex-column">
<div class="px-3 px-xl-4 pt-3 d-inline-block category_block_title">
<h4 class="m-0">Масла, смазки</h4>
</div>
<div class="p-3 px-md-4 category_block">
<dl class="mb-0">
<dd>Масла моторные</dd>
<dd>Масла трансмиссионные</dd>
<dd>Масла гидравлические</dd>
<dd>Смазки</dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Масла моторные</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Масла трансмиссионные</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Масла гидравлические</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Смазки</a></dd>
</dl>
</div>
</div>
@ -65,7 +62,7 @@ $this->title = 'SkillParts';
</div>
<div class="p-3 px-md-4 category_block">
<dl class="mb-0">
<dd>Фары и свет</dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Фары и свет</a></dd>
</dl>
</div>
</div>
@ -75,9 +72,9 @@ $this->title = 'SkillParts';
</div>
<div class="p-3 px-md-4 category_block">
<dl class="mb-0">
<dd>Шприцы для смазки </dd>
<dd>Ключи, съёмники</dd>
<dd>Наборы инструментов</dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Шприцы для смазки</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Ключи, съёмники</a></dd>
<dd><a onclick="return writeinDevelopment(this);" type="button">Наборы инструментов</a></dd>
</dl>
</div>
</div>
@ -86,3 +83,4 @@ $this->title = 'SkillParts';
</div>
<script src="/js/ticker.js" defer></script>
<script src="/js/main.js" defer></script>

View File

@ -48,7 +48,7 @@ AppAsset::register($this);
<div id="notifications_popup_wrap" class="col-3 m-4"></div>
<header class="container pt-2 mt-1 mb-2 mb-sm-4">
<header class="container pt-2 mt-1 mb-2 mb-sm-4 unselectable">
<div class="row h-100">
<div id="logo" class="col-3 col-md-4 h-100">
<a class="py-2 h-100 d-inline-flex" title="SkillParts" href="/" role="button" onclick="return page_main();">
@ -75,19 +75,11 @@ AppAsset::register($this);
<p class="col-10 m-0 p-0">Каталог товаров</p>
</button>
<div class="dropdown-menu" aria-labelledby="catalog">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<a class="dropdown-item" type="button">В разработке</a>
</div>
</div>
<div id="searchPanel" class="col">
<!-- <input id="catalog_search_panel_button_1" class="btn btn-sm button_clean" type="radio" name="catalog_search_panel_buttons" value="catalog_search_panel_button_1" checked>
<label class="mb-0 px-3 px-md-4 py-1" for="catalog_search_panel_button_1">Номер детали</label>
<input id="catalog_search_panel_button_2" class="btn btn-sm text-white button_clean" type="radio" name="catalog_search_panel_buttons" value="catalog_search_panel_button_2">
<label class="mb-0 px-3 px-md-4 py-1" for="catalog_search_panel_button_2">Вторая кнопка</label>
<input id="catalog_search_panel_button_3" class="btn btn-sm5 text-white button_clean" type="radio" name="catalog_search_panel_buttons" value="catalog_search_panel_button_3">
<label class="mb-0 px-3 px-md-4 py-1" for="catalog_search_panel_button_3">Третья кнопка</label> -->
<form class="d-flex catalog_search" onsubmit="return false;">
<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-haspopup="true" aria-expanded="false" autocomplete="off">
@ -95,17 +87,11 @@ AppAsset::register($this);
// Сделать системные настройки и по ним работать
$search_panel = yii::$app->controller->renderPartial('/search/panel', ['history' => true]);
// if (!yii::$app->user->isGuest && $search_panel = $search_panel ?? yii::$app->controller->renderPartial('/search/panel', ['history' => true])) {
echo <<<HTML
<div id="search_line_window" class="dropdown-menu w-100" aria-labelledby="search_line">
$search_panel
</div>
HTML;
// } else {
// echo <<<HTML
// <div id="search_line_window" class="dropdown-menu w-100" style="display: none" aria-labelledby="search_line"></div>
// HTML;
// }
?>
</div>
<button type="submit" class="col btn button_clean catalog_search_button" onclick="product_search(this.parentElement.getElementsByTagName('input')[0].value, 1)">ПОИСК</button>
@ -121,13 +107,13 @@ AppAsset::register($this);
<footer class="container py-4">
<div class="row px-3">
<div class="col-12 col-md-auto mr-md-5">
<h5 class="row mb-2"><b>Контакты</b></h5>
<h5 class="row mb-2 unselectable"><b>Контакты</b></h5>
<small class="row mb-1"><b>Адрес:&nbsp;</b>Хабаровск, Промышленная 3, 105</small>
<small class="row mb-1"><b>Время работы:&nbsp;</b>пн-пт 09:00-18:00</small>
<small class="row mb-1"><b>Телефон:&nbsp;</b>+7 (4212) 35-85-34</small>
<small class="row mb-1"><b>Почта:&nbsp;</b>info@skillparts.ru</small>
</div>
<div class="col-md-auto mr-md-5 partnership">
<div class="col-md-auto mr-md-5 partnership unselectable">
<h5 class="row mb-2"><b>Партнёрство</b></h5>
<small class="row mb-1"><a href="/buyers">Покупателям</a></small>
<small class="row mb-1"><a href="/suppliers">Поставщикам</a></small>

View File

@ -23,11 +23,9 @@ if (
<link href="/css/pages/orders.css" rel="stylesheet">
<div id="page_orders" class="container mb-auto py-3">
<?php if (
!yii::$app->user->isGuest
<?php if ($account_type = (!yii::$app->user->isGuest
&& yii::$app->user->identity->type === 'administrator'
|| yii::$app->user->identity->type === 'moderator'
) : ?>
|| yii::$app->user->identity->type === 'moderator')) : ?>
<div class="orders_panel_menu mb-2">
<label class="btn button_white mb-0 mr-2" for="orders_panel_moderation">Модерация</label>
<label class="btn button_white mb-0" for="orders_panel_orders">Мои заказы</label>
@ -171,7 +169,8 @@ if (
<input type="radio" id="orders_panel_orders" name="main_panel" <?= $panel === 'orders_panel_orders' ? 'checked' : null ?> />
<?php endif ?>
<article class="page_order_panel mt-3 py-3 px-4 rounded">
<article class="page_order_panel mt-3 py-3 px-4 rounded <?= $account_type ?? false ? '' : 'd-block'; ?>">
<h4 class="ml-4 mt-2 mb-4"><i class="fas fa-list mr-2"></i>Заказы</h4>
<div class="col mb-4 list rounded">
<div class="row py-3 text-center">

View File

@ -13,9 +13,14 @@
}
a {
color: #0b3397;
cursor: pointer;
}
a:hover {
color: #001752;
}
p {
margin: auto;
}

View File

@ -221,7 +221,7 @@ function registration_start(form, type) {
private_policy_label.appendChild(private_policy);
private_policy_label.appendChild(private_policy_text_wrap);
private_policy_text_wrap.appendChild(private_policy_text);
private_policy_text_wrap.appendChild(document.createTextNode(' конфидециальности'));
private_policy_text_wrap.appendChild(document.createTextNode(' конфиденциальности'));
// Инициализация заголовка
let title = form.children[1];

View File

@ -179,8 +179,8 @@ function cart_cost_calculate() {
let costs = 0;
for ($i = 0; $i < elements.length; $i++) {
let cost = elements[$i].getElementsByTagName('div')[5].innerText;
let amount = elements[$i].getElementsByTagName('div')[3].children[0].value;
let cost = elements[$i].getElementsByTagName('div')[7].innerText;
let amount = elements[$i].getElementsByTagName('div')[5].children[0].value;
costs += +reg.exec(cost)[1] * amount;
}

View File

@ -0,0 +1,20 @@
function writeinDevelopment(target) {
// Инициализация буфера
let buffer = target.innerText;
// Запись текста
target.innerText = target.innerText + ' (в разработке)';
// Блокировка от повторного вызова
target.setAttribute('onclick', 'return false;');
setTimeout(function () {
// Возврат изначального текста из буфера
target.innerText = buffer;
// Разблокировка
target.setAttribute('onclick', 'return writeinDevelopment(this);');
}, 3000);
return false;
};