Работа над сайтом 11
This commit is contained in:
parent
8c4ca42d3c
commit
cc1e7e7d66
|
@ -51,15 +51,28 @@ $config = [
|
||||||
'errorHandler' => [
|
'errorHandler' => [
|
||||||
'errorAction' => 'error',
|
'errorAction' => 'error',
|
||||||
],
|
],
|
||||||
'mailer' => [
|
'mail_info' => [
|
||||||
'class' => 'yii\swiftmailer\Mailer',
|
'class' => 'yii\swiftmailer\Mailer',
|
||||||
'useFileTransport' => false,
|
'useFileTransport' => false,
|
||||||
'transport' => [
|
'transport' => [
|
||||||
'class' => 'Swift_SmtpTransport',
|
'class' => 'Swift_SmtpTransport',
|
||||||
'host' => 'ssl://smtp.yandex.com',
|
'host' => 'smtp.yandex.com',
|
||||||
'username' => 'info@skillparts.ru',
|
'username' => 'info@skillparts.ru',
|
||||||
'password' => 'SkillParts_1337',
|
'password' => 'SkillParts_1337',
|
||||||
'port' => '587',
|
'port' => '465',
|
||||||
|
'encryption' => 'ssl',
|
||||||
|
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'mail_system' => [
|
||||||
|
'class' => 'yii\swiftmailer\Mailer',
|
||||||
|
'useFileTransport' => false,
|
||||||
|
'transport' => [
|
||||||
|
'class' => 'Swift_SmtpTransport',
|
||||||
|
'host' => 'smtp.yandex.com',
|
||||||
|
'username' => 'system@skillparts.ru',
|
||||||
|
'password' => 'System01001010Null',
|
||||||
|
'port' => '465',
|
||||||
'encryption' => 'ssl',
|
'encryption' => 'ssl',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
|
@ -361,7 +361,7 @@ class OrderController extends Controller
|
||||||
public function actionPay(): string|array|null
|
public function actionPay(): string|array|null
|
||||||
{
|
{
|
||||||
// Инициализация
|
// Инициализация
|
||||||
$model = Order::search();
|
$model = Order::search(supplies: true);
|
||||||
|
|
||||||
// Поиск ребра
|
// Поиск ребра
|
||||||
$edge = AccountEdgeOrder::searchByVertex(yii::$app->user->id, $model->readId(), 'current');
|
$edge = AccountEdgeOrder::searchByVertex(yii::$app->user->id, $model->readId(), 'current');
|
||||||
|
@ -381,12 +381,33 @@ class OrderController extends Controller
|
||||||
if ($edge->update()) {
|
if ($edge->update()) {
|
||||||
// Удалось сохранить изменения
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
// Генерация счета
|
// Инициализация буфера поставок
|
||||||
|
$supplies = [];
|
||||||
|
|
||||||
|
foreach($model['supplies'] as $supply) {
|
||||||
|
$supplies[] = [
|
||||||
|
'title' => $supply['supply']['catn'],
|
||||||
|
'amount' => [
|
||||||
|
'value' => $supply['amount'] ?? 0,
|
||||||
|
'unit' => 'шт'
|
||||||
|
],
|
||||||
|
'cost' => [
|
||||||
|
'value' => $supply['cost'] ?? 0,
|
||||||
|
'unit' => 'руб'
|
||||||
|
],
|
||||||
|
'type' => 'supply'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
Invoice::generate($model->_key, $this->renderPartial('/invoice/order/pattern', [
|
Invoice::generate($model->_key, $this->renderPartial('/invoice/order/pattern', [
|
||||||
'account' => yii::$app->user->identity->_key,
|
'buyer' => [
|
||||||
|
'id' => yii::$app->user->identity->_key,
|
||||||
|
'info' => 'Неизвестно'
|
||||||
|
],
|
||||||
'order' => [
|
'order' => [
|
||||||
'id' => $model->_key,
|
'id' => $model->_key,
|
||||||
'date' => $edge->date ?? time() // @todo доделать
|
'date' => $edge->date ?? time(),
|
||||||
|
'entries' => $supplies
|
||||||
]
|
]
|
||||||
]));
|
]));
|
||||||
|
|
||||||
|
@ -394,7 +415,7 @@ class OrderController extends Controller
|
||||||
$model->journal('requested');
|
$model->journal('requested');
|
||||||
|
|
||||||
// Отправка уведомлений модераторам
|
// Отправка уведомлений модераторам
|
||||||
Notification::_write($this->renderPartial('/notification/system/newOrder', ['id' => $edge->_key]), true, '@auth', Notification::TYPE_MODERATOR_ORDER_NEW);
|
Notification::_write($this->renderPartial('/notification/system/orders/new', ['id' => $edge->_key]), true, '@auth', Notification::TYPE_MODERATOR_ORDER_NEW);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Инициализация
|
// Инициализация
|
||||||
|
@ -525,6 +546,9 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
||||||
// Удалось найти инстанцию поставки
|
// Удалось найти инстанцию поставки
|
||||||
|
|
||||||
|
// Запись в буфер изначальных данных
|
||||||
|
$old = $order_edge_supply->stts;
|
||||||
|
|
||||||
// Запись в буфер записи в базу данных
|
// Запись в буфер записи в базу данных
|
||||||
$order_edge_supply->stts = $stts;
|
$order_edge_supply->stts = $stts;
|
||||||
|
|
||||||
|
@ -532,6 +556,12 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply->save()) {
|
if ($order_edge_supply->save()) {
|
||||||
// Удалось сохранить изменения
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
|
// Инициализация аккаунта покупателя
|
||||||
|
$account = Account::searchById(AccountEdgeOrder::searchByOrder($order_edge_supply->_from)[0]->_from);
|
||||||
|
|
||||||
|
// Отправка уведомления
|
||||||
|
Notification::_write($this->renderPartial('/notification/system/orders/edit', ['order' => $order_edge_supply->_from, 'from' => OrderEdgeSupply::convertStatusToRussian($old), 'to' => OrderEdgeSupply::convertStatusToRussian($stts), 'target' => 'Комментарий']), true, $account->_key, Notification::TYPE_NOTICE);
|
||||||
|
|
||||||
// Запись в буфер вывода
|
// Запись в буфер вывода
|
||||||
$buffer['stts'] = $order_edge_supply->stts;
|
$buffer['stts'] = $order_edge_supply->stts;
|
||||||
} else {
|
} else {
|
||||||
|
@ -566,6 +596,9 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
||||||
// Удалось найти инстанцию поставки
|
// Удалось найти инстанцию поставки
|
||||||
|
|
||||||
|
// Запись в буфер изначальных данных
|
||||||
|
$old = $order_edge_supply->cost;
|
||||||
|
|
||||||
// Запись в буфер записи в базу данных
|
// Запись в буфер записи в базу данных
|
||||||
$order_edge_supply->cost = $cost;
|
$order_edge_supply->cost = $cost;
|
||||||
|
|
||||||
|
@ -573,6 +606,12 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply->save()) {
|
if ($order_edge_supply->save()) {
|
||||||
// Удалось сохранить изменения
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
|
// Инициализация аккаунта покупателя
|
||||||
|
$account = Account::searchById(AccountEdgeOrder::searchByOrder($order_edge_supply->_from)[0]->_from);
|
||||||
|
|
||||||
|
// Отправка уведомления
|
||||||
|
Notification::_write($this->renderPartial('/notification/system/orders/edit', ['order' => $order_edge_supply->_from, 'from' => $old, 'to' => $cost, 'target' => 'Цена']), true, $account->_key, Notification::TYPE_NOTICE);
|
||||||
|
|
||||||
// Запись в буфер вывода
|
// Запись в буфер вывода
|
||||||
$buffer['cost'] = $order_edge_supply->cost;
|
$buffer['cost'] = $order_edge_supply->cost;
|
||||||
} else {
|
} else {
|
||||||
|
@ -607,6 +646,9 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
||||||
// Удалось найти инстанцию поставки
|
// Удалось найти инстанцию поставки
|
||||||
|
|
||||||
|
// Запись в буфер изначальных данных
|
||||||
|
$old = $order_edge_supply->time;
|
||||||
|
|
||||||
// Запись в буфер записи в базу данных
|
// Запись в буфер записи в базу данных
|
||||||
$order_edge_supply->time = $time;
|
$order_edge_supply->time = $time;
|
||||||
|
|
||||||
|
@ -614,6 +656,12 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply->save()) {
|
if ($order_edge_supply->save()) {
|
||||||
// Удалось сохранить изменения
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
|
// Инициализация аккаунта покупателя
|
||||||
|
$account = Account::searchById(AccountEdgeOrder::searchByOrder($order_edge_supply->_from)[0]->_from);
|
||||||
|
|
||||||
|
// Отправка уведомления
|
||||||
|
Notification::_write($this->renderPartial('/notification/system/orders/edit', ['order' => $order_edge_supply->_from, 'from' => $old, 'to' => $time, 'target' => 'Дата поставки']), true, $account->_key, Notification::TYPE_NOTICE);
|
||||||
|
|
||||||
// Запись в буфер вывода
|
// Запись в буфер вывода
|
||||||
$buffer['time'] = $order_edge_supply->time;
|
$buffer['time'] = $order_edge_supply->time;
|
||||||
} else {
|
} else {
|
||||||
|
@ -648,6 +696,9 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
||||||
// Удалось найти инстанцию поставки
|
// Удалось найти инстанцию поставки
|
||||||
|
|
||||||
|
// Запись в буфер изначальных данных
|
||||||
|
$old = $order_edge_supply->comm;
|
||||||
|
|
||||||
// Запись в буфер записи в базу данных
|
// Запись в буфер записи в базу данных
|
||||||
$order_edge_supply->comm = $comm;
|
$order_edge_supply->comm = $comm;
|
||||||
|
|
||||||
|
@ -655,6 +706,12 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply->save()) {
|
if ($order_edge_supply->save()) {
|
||||||
// Удалось сохранить изменения
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
|
// Инициализация аккаунта покупателя
|
||||||
|
$account = Account::searchById(AccountEdgeOrder::searchByOrder($order_edge_supply->_from)[0]->_from);
|
||||||
|
|
||||||
|
// Отправка уведомления
|
||||||
|
Notification::_write($this->renderPartial('/notification/system/orders/edit', ['order' => $order_edge_supply->_from, 'from' => $old, 'to' => $comm, 'target' => 'Комментарий']), true, $account->_key, Notification::TYPE_NOTICE);
|
||||||
|
|
||||||
// Запись в буфер вывода
|
// Запись в буфер вывода
|
||||||
$buffer['comm'] = $order_edge_supply->comm;
|
$buffer['comm'] = $order_edge_supply->comm;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -29,7 +29,7 @@ class SuppliersController extends Controller
|
||||||
{
|
{
|
||||||
$request = yii::$app->request->post('Request') ?? yii::$app->request->get('Request');
|
$request = yii::$app->request->post('Request') ?? yii::$app->request->get('Request');
|
||||||
|
|
||||||
yii::$app->mailer->compose()
|
yii::$app->mail_system->compose()
|
||||||
->setFrom(yii::$app->params['mail']['system'])
|
->setFrom(yii::$app->params['mail']['system'])
|
||||||
->setTo(yii::$app->params['mail']['info'])
|
->setTo(yii::$app->params['mail']['info'])
|
||||||
->setSubject('Регистрация поставщика')
|
->setSubject('Регистрация поставщика')
|
||||||
|
|
|
@ -538,4 +538,19 @@ class Account extends Document implements IdentityInterface, PartnerInterface
|
||||||
select: 'account_edge_supply[0]'
|
select: 'account_edge_supply[0]'
|
||||||
)[0];
|
)[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Генерация текста обозначающего статус аккаунта на русском языке
|
||||||
|
*
|
||||||
|
* @return string Статус аккаунта
|
||||||
|
*/
|
||||||
|
public function statusLabel(): string
|
||||||
|
{
|
||||||
|
return match($this->type) {
|
||||||
|
'administrator', 'admin' => 'Администратор',
|
||||||
|
'moderator', 'moder' => 'Модератор',
|
||||||
|
'supplier' => 'Поставщик',
|
||||||
|
default => 'Покупатель',
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,14 @@ class AccountForm extends Model
|
||||||
$this->account->pswd = yii::$app->security->generatePasswordHash($this->pswd);
|
$this->account->pswd = yii::$app->security->generatePasswordHash($this->pswd);
|
||||||
|
|
||||||
// Регистрация
|
// Регистрация
|
||||||
return $this->account->save();
|
if ($this->account->save()) {
|
||||||
|
// Успешно завершена регистрация
|
||||||
|
|
||||||
|
// Генерация индекса
|
||||||
|
Account::generateIndexes([$this->account]);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -147,8 +147,10 @@ class Notification extends Document
|
||||||
*
|
*
|
||||||
* @param string $html Содержимое уведомления (HTML или текст)
|
* @param string $html Содержимое уведомления (HTML или текст)
|
||||||
* @param bool|string|null $html Содержимое уведомления (HTML или текст)
|
* @param bool|string|null $html Содержимое уведомления (HTML или текст)
|
||||||
* @param string $account Получатель уведомления
|
* @param string $account Получатель уведомления (_key)
|
||||||
* @param string $type Тип уведомления
|
* @param string $type Тип уведомления
|
||||||
|
*
|
||||||
|
* @todo Намного удобнее будет заменить _key на _id, чтобы из рёбер сразу получать аккаунт без лишних операций
|
||||||
*/
|
*/
|
||||||
public static function _write(string $text, bool|string|null $html = false, string $account = null, string $type = self::TYPE_NOTICE): self|array|null
|
public static function _write(string $text, bool|string|null $html = false, string $account = null, string $type = self::TYPE_NOTICE): self|array|null
|
||||||
{
|
{
|
||||||
|
|
|
@ -296,16 +296,19 @@ class Order extends Document implements DocumentInterface
|
||||||
foreach ($return as &$container) {
|
foreach ($return as &$container) {
|
||||||
// Перебор заказов
|
// Перебор заказов
|
||||||
|
|
||||||
|
if ($container instanceof Order) {
|
||||||
|
$buffer = $container;
|
||||||
|
} else {
|
||||||
// Инициализация настроек
|
// Инициализация настроек
|
||||||
$config = $container['order'];
|
$config = $container['order'];
|
||||||
unset($config['_id'], $config['_rev'], $config['_id']);
|
unset($config['_id'], $config['_rev'], $config['_id']);
|
||||||
|
|
||||||
if ($buffer = new Order($config)) {
|
// Инициализация буфера
|
||||||
// Удалось инициализировать буфер заказа
|
$buffer = new Order($config);
|
||||||
|
}
|
||||||
|
|
||||||
// Чтение полного содержания
|
// Чтение полного содержания
|
||||||
$container['supplies'] = $buffer->content(100);
|
$container['supplies'] = $buffer->content(30);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -371,7 +374,8 @@ class Order extends Document implements DocumentInterface
|
||||||
// || (isset($order_edge_supply['dlvr']['type']) && $order_edge_supply['dlvr']['type'] !== $target_dlvr_type)
|
// || (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)
|
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')) {
|
|| (empty($order_edge_supply['dlvr']['type']) && $target_dlvr_type === 'auto')
|
||||||
|
) {
|
||||||
// Тип доставки для одной поставки отличается
|
// Тип доставки для одной поставки отличается
|
||||||
|
|
||||||
// Запись в буфер
|
// Запись в буфер
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
<a href="orders#<?= $id ?>">Новый заказ</a>
|
|
|
@ -0,0 +1 @@
|
||||||
|
<p class="my-2 mx-3" href="/orders#<?= $order ?>">Данные заказа #<?= $order ?> изменены: <?= $target ?> с <?= $from ?> на <?= $to ?></p>
|
|
@ -0,0 +1 @@
|
||||||
|
<a href="/orders#<?= $id ?>">Новый заказ</a>
|
|
@ -173,23 +173,15 @@ if (
|
||||||
<?php endif ?>
|
<?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">
|
||||||
<h4 class="ml-4 mt-2 mb-4"><i class="fas fa-list mr-2"></i>Заказы</h4>
|
<h4 class="ml-4 mt-2 mb-4"><i class="fas fa-list mr-2"></i>Заказы</h4>
|
||||||
<div class="col mb-4 list rounded overflow-hidden">
|
<div class="col mb-4 list rounded">
|
||||||
<div class="row py-2 text-center">
|
<div class="row py-3 text-center">
|
||||||
<!-- <div class="pl-3 mr-1">
|
<!-- <div class="pl-3 mr-1">
|
||||||
<input id="checkbox_cart_all" type="checkbox" onchange="return cart_list_checkbox(this);" />
|
<input id="checkbox_cart_all" type="checkbox" onchange="return cart_list_checkbox(this);" />
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="col">
|
<span class="col-2"><b>Артикул</b></span>
|
||||||
<span>Поставки</span>
|
<span class="col-4"><b>Статус</b></span>
|
||||||
</div>
|
<span class="col-3"><b>Поступление</b></span>
|
||||||
<div class="col-2 ml-auto">
|
<span class="col-3"><b>Стоимость</b></span>
|
||||||
<span>Статус</span>
|
|
||||||
</div>
|
|
||||||
<div class="col-2">
|
|
||||||
<span>Время</span>
|
|
||||||
</div>
|
|
||||||
<div class="col-1">
|
|
||||||
<span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
@ -215,6 +207,9 @@ if (
|
||||||
// Инициализация буфера поставок
|
// Инициализация буфера поставок
|
||||||
$supplies_html = '';
|
$supplies_html = '';
|
||||||
|
|
||||||
|
// Инициализация общей стоимости поставок
|
||||||
|
$sum = 0;
|
||||||
|
|
||||||
if (isset($supplies)) {
|
if (isset($supplies)) {
|
||||||
// Найдены поставки
|
// Найдены поставки
|
||||||
|
|
||||||
|
@ -225,8 +220,6 @@ if (
|
||||||
// Инициализация окружения
|
// Инициализация окружения
|
||||||
extract($supply);
|
extract($supply);
|
||||||
|
|
||||||
// Инициализация стоимости
|
|
||||||
|
|
||||||
foreach ($order_edge_supply as $part) {
|
foreach ($order_edge_supply as $part) {
|
||||||
// Перебор связей поставок с заказом
|
// Перебор связей поставок с заказом
|
||||||
|
|
||||||
|
@ -235,21 +228,24 @@ if (
|
||||||
// Не удалось рассчитать доставку
|
// Не удалось рассчитать доставку
|
||||||
|
|
||||||
// Инициализация индикатора
|
// Инициализация индикатора
|
||||||
$time_icon = '';
|
$date_icon = '';
|
||||||
|
|
||||||
// Инициализация доставки
|
// Инициализация доставки
|
||||||
if (isset($part['time'])) {
|
if (isset($part['date'])) {
|
||||||
// Найдены данные в инстанции поставки
|
// Найдены данные в инстанции поставки
|
||||||
|
|
||||||
// Запись в буфер вывода
|
// Запись в буфер вывода
|
||||||
$time = $part['time'] . ' дн';
|
// $time = $part['time'] . ' дн';
|
||||||
|
$date = date('d.m.Y', $part['date']);
|
||||||
|
$date_html = "<span class=\"m-auto\">$date</span>";
|
||||||
} else {
|
} else {
|
||||||
$time = 'Неизвестно';
|
$date = 'Неизвестно';
|
||||||
|
$date_html = "<small class=\"m-auto\">$date</small>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Инициализация стоимости
|
// Инициализация стоимости
|
||||||
if (isset($part['cost'])) $cost = $part['cost'] . ' ' . $currency;
|
if (isset($part['cost'])) $cost_html = '<span class="m-auto">' . ($cost = $part['cost']) . ' <small>' . $currency . '</small></span>';
|
||||||
else $cost = 'Неизвестно';
|
else $cost_html = '<small class="m-auto">' . ($cost = 'Неизвестно') . '</small>';
|
||||||
} else {
|
} else {
|
||||||
// Удалось рассчитать доставку
|
// Удалось рассчитать доставку
|
||||||
|
|
||||||
|
@ -257,17 +253,19 @@ if (
|
||||||
$time_type = $part['dlvr']['type'] ?? 'auto';
|
$time_type = $part['dlvr']['type'] ?? 'auto';
|
||||||
|
|
||||||
// Инициализация индикатора
|
// Инициализация индикатора
|
||||||
$time_icon = match ($time_type) {
|
$date_icon = match ($time_type) {
|
||||||
'avia' => '<i class="mr-1 fas fa-plane"></i>',
|
'avia' => '<i class="ml-1 fas fa-plane"></i>',
|
||||||
default => '<i class="mr-1 fas fa-truck"></i>'
|
default => '<i class="ml-1 fas fa-truck"></i>'
|
||||||
};
|
};
|
||||||
|
|
||||||
// Инициализация доставки
|
// Инициализация доставки
|
||||||
if (isset($part['time'])) {
|
if (isset($part['date'])) {
|
||||||
// Найдены данные в инстанции поставки
|
// Найдены данные в инстанции поставки
|
||||||
|
|
||||||
// Запись в буфер вывода
|
// Запись в буфер вывода
|
||||||
$time = $part['time'] . ' дн';
|
// $time = $part['time'] . ' дн';
|
||||||
|
$date = date('d.m.Y', $part['date']);
|
||||||
|
$date_html = "<span class=\"m-auto\">$date</span>";
|
||||||
} else {
|
} else {
|
||||||
// Рассчет времени из данных поставки
|
// Рассчет времени из данных поставки
|
||||||
|
|
||||||
|
@ -276,25 +274,37 @@ if (
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$time_converted = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['arrivalToOspReceiver'])->getTimestamp();
|
$time_converted = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['arrivalToOspReceiver'])->getTimestamp();
|
||||||
}
|
}
|
||||||
$time = (ceil(($time_converted - time()) / 60 / 60 / 24) + 1) . ' дн';
|
// $time = (ceil(($time_converted - time()) / 60 / 60 / 24) + 1) . ' дн';
|
||||||
|
$date = date('d.m.Y', $time_converted);
|
||||||
|
$date_html = "<span class=\"m-auto\">$date</span>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Инициализация стоимости
|
// Инициализация стоимости
|
||||||
if (isset($part['cost'])) $cost = $part['cost'] . ' ' . $currency;
|
if (isset($part['cost'])) $cost_html = '<span class="m-auto">' . ($cost = $part['cost']) . ' <small>' . $currency . '</small></span>';
|
||||||
else $cost = $cost . ' ' . $currency;
|
else $cost_html = '<span class="m-auto">' . ($cost = $cost) . ' <small>' . $currency . '</small></span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Инициализация статуса связи поставки
|
// Инициализация статуса связи поставки
|
||||||
$status = OrderEdgeSupply::convertStatusToRussian($part['stts'] ?? 0);
|
$status = OrderEdgeSupply::convertStatusToRussian($part['stts'] ?? 0);
|
||||||
|
|
||||||
|
// Инициализация класса для поставки (если необходимо)
|
||||||
|
$css = match ($part['stts'] ?? 0) {
|
||||||
|
'accepted', 1 => ' supply_accepted',
|
||||||
|
default => ''
|
||||||
|
};
|
||||||
|
|
||||||
|
// Пробела между supply и $css не должно быть
|
||||||
$supplies_html .= <<<HTML
|
$supplies_html .= <<<HTML
|
||||||
<div class="row py-2">
|
<div class="row py-2 supply$css text-center">
|
||||||
<div class="col-2">{$supply['catn']}</div>
|
<div class="col-2">{$supply['catn']}</div>
|
||||||
<div class="col-4">$status</div>
|
<div class="col-4 d-flex"><small class="m-auto">$status</small></div>
|
||||||
<div class="col-3">$time_icon $time</div>
|
<div class="col-3 d-flex">$date_html</div>
|
||||||
<div class="col-3">$cost</div>
|
<div class="col-3 d-flex">$cost_html</div>
|
||||||
</div>
|
</div>
|
||||||
HTML;
|
HTML;
|
||||||
|
|
||||||
|
// Обновление общего счётчика цены
|
||||||
|
$sum += (int) $cost;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -308,22 +318,12 @@ if (
|
||||||
HTML;
|
HTML;
|
||||||
|
|
||||||
echo <<<HTML
|
echo <<<HTML
|
||||||
<div class="row py-2 cart_list_target text-center">
|
|
||||||
<!-- <div class="pl-3 mr-1">
|
|
||||||
<input type="checkbox" onchange="return cart_list_checkbox(this);"/>
|
|
||||||
</div> -->
|
|
||||||
<div class="col">
|
|
||||||
$supplies_html
|
$supplies_html
|
||||||
</div>
|
<div class="row py-2 cart_list_target_total text-center">
|
||||||
<div class="col-2 ml-auto py-2">
|
<div class="col-2">$invoice</div>
|
||||||
$status
|
<div class="col-4"><b>$status</b></div>
|
||||||
</div>
|
<div class="col-3"><b>$date</b></div>
|
||||||
<div class="col-2 py-2">
|
<div class="col-3"><b>$sum <small><b>руб</b></small></b></div>
|
||||||
$date
|
|
||||||
</div>
|
|
||||||
<div class="col-1 py-2">
|
|
||||||
$invoice
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
HTML;
|
HTML;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,9 @@ use app\models\SupplyEdgeProduct;
|
||||||
?>
|
?>
|
||||||
<div class="col py-3 rounded">
|
<div class="col py-3 rounded">
|
||||||
<div class="row px-3">
|
<div class="row px-3">
|
||||||
<p class="ml-0">Почта: </p>
|
<p class="mb-2 w-100 d-flex"><b>Договор: </b><span class="ml-auto"><?= yii::$app->user->identity->_key ?></span></p>
|
||||||
<p class="mr-0"><?= yii::$app->user->identity->mail ?></p>
|
<p class="mb-2 w-100 d-flex"><b>Статус: </b><span class="ml-auto"><?= yii::$app->user->identity->statusLabel() ?></span></p>
|
||||||
|
<p class="w-100 d-flex"><b>Почта: </b><span class="ml-auto"><?= yii::$app->user->identity->mail ?></span></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown-divider my-3"></div>
|
<div class="dropdown-divider my-3"></div>
|
||||||
<dl class="m-0">
|
<dl class="m-0">
|
||||||
|
|
|
@ -74,8 +74,12 @@ AppAsset::register($this);
|
||||||
|
|
||||||
<main id="page_suppliers" class="container pb-5 flex-grow-1 d-flex justify-content-center">
|
<main id="page_suppliers" class="container pb-5 flex-grow-1 d-flex justify-content-center">
|
||||||
<article class="col my-auto p-3 px-5 rounded overflow-hidden">
|
<article class="col my-auto p-3 px-5 rounded overflow-hidden">
|
||||||
<h3 class="py-3 mt-2 mb-4 text-center"><b>Заявка на подключение</b></h3>
|
<h3 class="py-3 mt-2 mb-4 text-center"><b>Заявка отправлена</b></h3>
|
||||||
отсоси
|
<div class="row mb-4">
|
||||||
|
<a class="col-auto mx-auto btn button_blue button_clean" href="/">
|
||||||
|
На главную
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,18 @@
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#page_orders .page_order_panel .list > .row:nth-child(2n+1) {
|
#page_orders .page_order_panel .list>.row:first-child, #page_orders article .cart_list_target_total {
|
||||||
|
background-color: #dbdde3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page_orders .page_order_panel .list>.supply.row:nth-child(2n-1) {
|
||||||
background-color: #f7f6f9;
|
background-color: #f7f6f9;
|
||||||
}
|
}
|
||||||
|
|
||||||
#page_orders .page_order_panel .list > .row:first-child {
|
#page_orders .page_order_panel .list>.supply.supply_accepted.row {
|
||||||
background-color: #dbdde3;
|
-webkit-box-shadow: 4px 0px 0px 0px #123EAB inset;
|
||||||
|
-moz-box-shadow: 4px 0px 0px 0px #123EAB inset;
|
||||||
|
box-shadow: 4px 0px 0px 0px #123EAB inset;
|
||||||
}
|
}
|
||||||
|
|
||||||
#page_orders .cart_field_cost span {
|
#page_orders .cart_field_cost span {
|
||||||
|
|
Reference in New Issue