Изменение полей в панели модератора + генерация счетов
This commit is contained in:
parent
4f898bf796
commit
0d654ad790
|
@ -28,7 +28,7 @@
|
||||||
"mirzaev/yii2-arangodb": ">=2.1.x-dev",
|
"mirzaev/yii2-arangodb": ">=2.1.x-dev",
|
||||||
"mirzaev/yii2-arangodb-sessions": ">=1.1.x-dev",
|
"mirzaev/yii2-arangodb-sessions": ">=1.1.x-dev",
|
||||||
"guzzlehttp/guzzle": "^7.3",
|
"guzzlehttp/guzzle": "^7.3",
|
||||||
"cdek-it/sdk2.0": "^0.1.5"
|
"mnvx/lowrapper": "^1.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"codeception/codeception": ">=4.1",
|
"codeception/codeception": ">=4.1",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -81,7 +81,7 @@ $config = [
|
||||||
'orders' => 'order/index',
|
'orders' => 'order/index',
|
||||||
'orders/<_key:[^/]+>/<action:(accept)>' => 'order/<action>',
|
'orders/<_key:[^/]+>/<action:(accept)>' => 'order/<action>',
|
||||||
'orders/supply/<_key:[^/]+>/<action:(read|write|edit|delete)>' => 'order/supply-<action>',
|
'orders/supply/<_key:[^/]+>/<action:(read|write|edit|delete)>' => 'order/supply-<action>',
|
||||||
'orders/supply/<_key:[^/]+>/<action:(read|write|edit|delete)>/<target:(stts)>' => 'order/supply-<action>-<target>'
|
'orders/supply/<_key:[^/]+>/<action:(read|write|edit|delete)>/<target:(stts|cost|time|comm)>' => 'order/supply-<action>-<target>'
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ use app\models\Notification;
|
||||||
use app\models\SupplyEdgeProduct;
|
use app\models\SupplyEdgeProduct;
|
||||||
|
|
||||||
use Codeception\PHPUnit\ResultPrinter\HTML;
|
use Codeception\PHPUnit\ResultPrinter\HTML;
|
||||||
|
use DateTime;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|
||||||
class OrderController extends Controller
|
class OrderController extends Controller
|
||||||
|
@ -34,7 +34,20 @@ class OrderController extends Controller
|
||||||
[
|
[
|
||||||
'allow' => true,
|
'allow' => true,
|
||||||
'roles' => ['@'],
|
'roles' => ['@'],
|
||||||
'actions' => ['index', 'accept', 'read', 'write', 'delete', 'amount-update', 'pay', 'supply-read', 'supply-write-stts']
|
'actions' => [
|
||||||
|
'index',
|
||||||
|
'accept',
|
||||||
|
'read',
|
||||||
|
'write',
|
||||||
|
'delete',
|
||||||
|
'amount-update',
|
||||||
|
'pay',
|
||||||
|
'supply-read',
|
||||||
|
'supply-write-stts',
|
||||||
|
'supply-edit-time',
|
||||||
|
'supply-edit-cost',
|
||||||
|
'supply-edit-comm'
|
||||||
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'allow' => false,
|
'allow' => false,
|
||||||
|
@ -429,32 +442,45 @@ class OrderController extends Controller
|
||||||
// Инициализация ребра: ПОСТАВКА -> ТОВАР
|
// Инициализация ребра: ПОСТАВКА -> ТОВАР
|
||||||
$supply_edge_product = SupplyEdgeProduct::searchBySupplyId($order_edge_supply->_to);
|
$supply_edge_product = SupplyEdgeProduct::searchBySupplyId($order_edge_supply->_to);
|
||||||
|
|
||||||
// // Поиск ребра до аккаунта
|
// Поиск ребра до аккаунта
|
||||||
// $account = Account::searchBySupplyId($order_edge_supply->_to);
|
$account = Account::searchBySupplyId($order_edge_supply->_to);
|
||||||
|
|
||||||
// // Поиск привязанного товара
|
// Поиск привязанного товара
|
||||||
// $product = Product::searchBySupplyId($order_edge_supply->_to);
|
$product = Product::searchBySupplyId($order_edge_supply->_to);
|
||||||
|
|
||||||
// try {
|
try {
|
||||||
// // Инициализация доставки
|
// Инициализация доставки
|
||||||
// $delivery = Dellin::calcDeliveryAdvanced(
|
$delivery = Dellin::calcDeliveryAdvanced(
|
||||||
// explode('_', $account['opts']['delivery_from_terminal'])[1],
|
$account['opts']['delivery_from_terminal'],
|
||||||
// explode('_', yii::$app->user->identity->opts['delivery_to_terminal'])[1],
|
yii::$app->user->identity->opts['delivery_to_terminal'],
|
||||||
// (int) ($product['wght'] ?? 0),
|
(int) ($product['wght'] ?? 0),
|
||||||
// (int) ($product['dmns']['x'] ?? 0),
|
(int) ($product['dmns']['x'] ?? 0),
|
||||||
// (int) ($product['dmns']['y'] ?? 0),
|
(int) ($product['dmns']['y'] ?? 0),
|
||||||
// (int) ($product['dmns']['z'] ?? 0)
|
(int) ($product['dmns']['z'] ?? 0),
|
||||||
// );
|
avia: $order_edge_supply->dlvr['type'] === 'avia'
|
||||||
// } catch (Exception $e) {
|
);
|
||||||
// // var_dump(json_decode($e->getMessage(), true)['errors']); die;
|
|
||||||
// }
|
// Рассчет времени
|
||||||
|
try {
|
||||||
|
$delivery_converted = DateTime::createFromFormat('Y-m-d H:i:s', $delivery['orderDates']['giveoutFromOspReceiver'])->getTimestamp();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$delivery_converted = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['arrivalToOspReceiver'])->getTimestamp();
|
||||||
|
}
|
||||||
|
$delivery = ceil(($delivery_converted - time()) / 60 / 60 / 24) + 1;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
// var_dump($e->getMessage());
|
||||||
|
// var_dump($e->getTrace());
|
||||||
|
// var_dump($e->getFile()); die;
|
||||||
|
|
||||||
|
// var_dump(json_decode($e->getMessage(), true)['errors']); die;
|
||||||
|
}
|
||||||
|
|
||||||
// Запись параметров
|
// Запись параметров
|
||||||
$buffer['cost'] = $order_edge_supply->cost ?? $order_edge_supply->cost = $supply_edge_product[0]['onec']['Цены']['Цена']['ЦенаЗаЕдиницу'];
|
$buffer['cost'] = $order_edge_supply->cost ?? $order_edge_supply->cost = $supply_edge_product[0]['onec']['Цены']['Цена']['ЦенаЗаЕдиницу'];
|
||||||
$buffer['time'] = $order_edge_supply->time ?? 0;
|
$buffer['time'] = $order_edge_supply->time ?? $delivery ?? 0;
|
||||||
// $buffer['time'] = $order_edge_supply->time ?? $delivery ?? 0;
|
|
||||||
$buffer['comm'] = $order_edge_supply->comm ?? $order_edge_supply->comm = 'Комментарий к заказу';
|
$buffer['comm'] = $order_edge_supply->comm ?? $order_edge_supply->comm = 'Комментарий к заказу';
|
||||||
$buffer['stts'] = $order_edge_supply->stts ?? $order_edge_supply->stts = 0;
|
$buffer['stts'] = $order_edge_supply->stts ?? $order_edge_supply->stts = 0;
|
||||||
|
$buffer['id'] = $order_edge_supply->_key ?? 'Неизвестно';
|
||||||
|
|
||||||
$order_edge_supply->save();
|
$order_edge_supply->save();
|
||||||
}
|
}
|
||||||
|
@ -469,7 +495,7 @@ class OrderController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Чтение инстанции поставки в заказе (order_edge_supply)
|
* Запись статуса поставки в заказе (order_edge_supply)
|
||||||
*
|
*
|
||||||
* @param int $_key Ключ записи в коллекции order_edge_supply
|
* @param int $_key Ключ записи в коллекции order_edge_supply
|
||||||
*
|
*
|
||||||
|
@ -484,14 +510,138 @@ class OrderController extends Controller
|
||||||
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
||||||
// Удалось найти инстанцию поставки
|
// Удалось найти инстанцию поставки
|
||||||
|
|
||||||
// Запись в буфер вывода и буфер записи в базу данных
|
// Запись в буфер записи в базу данных
|
||||||
$buffer['stts'] = $order_edge_supply->stts = $stts;
|
$order_edge_supply->stts = $stts;
|
||||||
|
|
||||||
// Отправка в базу данных
|
// Отправка в базу данных
|
||||||
if ($order_edge_supply->save()) {
|
if ($order_edge_supply->save()) {
|
||||||
// Удалось сохранить изменения
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
|
// Запись в буфер вывода
|
||||||
|
$buffer['stts'] = $order_edge_supply->stts;
|
||||||
|
} else {
|
||||||
|
// Не удалось сохранить изменения
|
||||||
|
|
||||||
|
yii::$app->response->statusCode = 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Запись обязательных параметров
|
||||||
|
$buffer['_csrf'] = yii::$app->request->getCsrfToken();
|
||||||
|
|
||||||
|
// Настройка ответа
|
||||||
|
yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
return $buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Запись цены поставки в заказе (order_edge_supply)
|
||||||
|
*
|
||||||
|
* @param int $_key Ключ записи в коллекции order_edge_supply
|
||||||
|
*
|
||||||
|
* @return string|array|null
|
||||||
|
*/
|
||||||
|
public function actionSupplyEditCost(int $_key): string|array|null
|
||||||
|
{
|
||||||
|
// Инициализация
|
||||||
|
$cost = yii::$app->request->post('cost') ?? yii::$app->request->get('cost');
|
||||||
|
$buffer = [];
|
||||||
|
|
||||||
|
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
||||||
|
// Удалось найти инстанцию поставки
|
||||||
|
|
||||||
|
// Запись в буфер записи в базу данных
|
||||||
|
$order_edge_supply->cost = $cost;
|
||||||
|
|
||||||
|
// Отправка в базу данных
|
||||||
|
if ($order_edge_supply->save()) {
|
||||||
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
|
// Запись в буфер вывода
|
||||||
|
$buffer['cost'] = $order_edge_supply->cost;
|
||||||
|
} else {
|
||||||
|
// Не удалось сохранить изменения
|
||||||
|
|
||||||
|
yii::$app->response->statusCode = 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Запись обязательных параметров
|
||||||
|
$buffer['_csrf'] = yii::$app->request->getCsrfToken();
|
||||||
|
|
||||||
|
// Настройка ответа
|
||||||
|
yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
return $buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Запись времени доставки поставки в заказе (order_edge_supply)
|
||||||
|
*
|
||||||
|
* @param int $_key Ключ записи в коллекции order_edge_supply
|
||||||
|
*
|
||||||
|
* @return string|array|null
|
||||||
|
*/
|
||||||
|
public function actionSupplyEditTime(int $_key): string|array|null
|
||||||
|
{
|
||||||
|
// Инициализация
|
||||||
|
$time = yii::$app->request->post('time') ?? yii::$app->request->get('time');
|
||||||
|
$buffer = [];
|
||||||
|
|
||||||
|
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
||||||
|
// Удалось найти инстанцию поставки
|
||||||
|
|
||||||
|
// Запись в буфер записи в базу данных
|
||||||
|
$order_edge_supply->time = $time;
|
||||||
|
|
||||||
|
// Отправка в базу данных
|
||||||
|
if ($order_edge_supply->save()) {
|
||||||
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
|
// Запись в буфер вывода
|
||||||
|
$buffer['time'] = $order_edge_supply->time;
|
||||||
|
} else {
|
||||||
|
// Не удалось сохранить изменения
|
||||||
|
|
||||||
|
yii::$app->response->statusCode = 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Запись обязательных параметров
|
||||||
|
$buffer['_csrf'] = yii::$app->request->getCsrfToken();
|
||||||
|
|
||||||
|
// Настройка ответа
|
||||||
|
yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
return $buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Запись комментария поставки в заказе (order_edge_supply)
|
||||||
|
*
|
||||||
|
* @param int $_key Ключ записи в коллекции order_edge_supply
|
||||||
|
*
|
||||||
|
* @return string|array|null
|
||||||
|
*/
|
||||||
|
public function actionSupplyEditComm(int $_key): string|array|null
|
||||||
|
{
|
||||||
|
// Инициализация
|
||||||
|
$comm = yii::$app->request->post('comm') ?? yii::$app->request->get('comm');
|
||||||
|
$buffer = [];
|
||||||
|
|
||||||
|
if ($order_edge_supply = OrderEdgeSupply::searchById($_id = OrderEdgeSupply::collectionName() . '/' . $_key)) {
|
||||||
|
// Удалось найти инстанцию поставки
|
||||||
|
|
||||||
|
// Запись в буфер записи в базу данных
|
||||||
|
$order_edge_supply->comm = $comm;
|
||||||
|
|
||||||
|
// Отправка в базу данных
|
||||||
|
if ($order_edge_supply->save()) {
|
||||||
|
// Удалось сохранить изменения
|
||||||
|
|
||||||
|
// Запись в буфер вывода
|
||||||
|
$buffer['comm'] = $order_edge_supply->comm;
|
||||||
} else {
|
} else {
|
||||||
// Не удалось сохранить изменения
|
// Не удалось сохранить изменения
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace app\models;
|
||||||
|
|
||||||
|
use yii;
|
||||||
|
use yii\base\Model;
|
||||||
|
|
||||||
|
use Mnvx\Lowrapper\Converter;
|
||||||
|
use Mnvx\Lowrapper\LowrapperParameters;
|
||||||
|
use Mnvx\Lowrapper\Format;
|
||||||
|
|
||||||
|
class Invoice extends Model
|
||||||
|
{
|
||||||
|
public function generate(): array
|
||||||
|
{
|
||||||
|
// Создаем объект конвертера
|
||||||
|
$converter = new Converter();
|
||||||
|
|
||||||
|
// Описываем параметры для конвертера
|
||||||
|
$parameters = (new LowrapperParameters())
|
||||||
|
// На вход подаем строку с HTML
|
||||||
|
->setInputData('<html>My html file</html>')
|
||||||
|
// В каком формате нужен результат
|
||||||
|
->setOutputFormat(Format::TEXT_DOCX)
|
||||||
|
// Файл для сохранения результата
|
||||||
|
->setOutputFile('path-to-result-docx.docx');
|
||||||
|
|
||||||
|
// Запускаем конвертацию
|
||||||
|
$converter->convert($parameters);
|
||||||
|
}
|
||||||
|
}
|
|
@ -458,7 +458,7 @@ class Order extends Document implements DocumentInterface
|
||||||
// var_dump($e->getTrace());
|
// var_dump($e->getTrace());
|
||||||
// var_dump($e->getFile()); die;
|
// var_dump($e->getFile()); die;
|
||||||
|
|
||||||
// var_dump(json_decode($e->getMessage(), true)['errors']); die;
|
var_dump(json_decode($e->getMessage(), true)['errors']); die;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Запись цены (цена поставки + цена доставки + наша наценка)
|
// Запись цены (цена поставки + цена доставки + наша наценка)
|
||||||
|
|
|
@ -171,7 +171,8 @@ class Dellin extends Model
|
||||||
'sessionID' => self::$session,
|
'sessionID' => self::$session,
|
||||||
'delivery' => [
|
'delivery' => [
|
||||||
'derival' => [
|
'derival' => [
|
||||||
'produceDate' => date('Y-m-d', time() + ($settings['delivery_handle_time'] ?? 86400))
|
// 'produceDate' => date('Y-m-d', time() + ($settings['delivery_handle_time'] ?? 86400))
|
||||||
|
'produceDate' => date('Y-m-d', time() + 86400 * 3)
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'members' => [
|
'members' => [
|
||||||
|
|
|
@ -63,7 +63,7 @@ use DateTime;
|
||||||
default => '<i class="mr-1 fas fa-truck"></i>'
|
default => '<i class="mr-1 fas fa-truck"></i>'
|
||||||
};
|
};
|
||||||
|
|
||||||
// Инициализация времени
|
// Рассчет времени
|
||||||
try {
|
try {
|
||||||
$delivery_converted = DateTime::createFromFormat('Y-m-d H:i:s', $connection['delivery']['orderDates']['giveoutFromOspReceiver'])->getTimestamp();
|
$delivery_converted = DateTime::createFromFormat('Y-m-d H:i:s', $connection['delivery']['orderDates']['giveoutFromOspReceiver'])->getTimestamp();
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
|
|
@ -66,8 +66,8 @@ if (
|
||||||
];
|
];
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<p class="col-auto ml-1">#<?= $order['order']['_key'] ?></p>
|
<p class="col-auto ml-1 font-weight-bold">#<?= $order['order']['_key'] ?></p>
|
||||||
<p class="col-auto mr-1">
|
<p class="col-auto mr-1 font-weight-bold">
|
||||||
<span class="mr-2"><?= $date['H:i'] ?? 'Неизвестно' ?></span>
|
<span class="mr-2"><?= $date['H:i'] ?? 'Неизвестно' ?></span>
|
||||||
<span><?= $date['m.d.Y'] ?? 'Неизвестно' ?></span>
|
<span><?= $date['m.d.Y'] ?? 'Неизвестно' ?></span>
|
||||||
</p>
|
</p>
|
||||||
|
@ -133,7 +133,7 @@ if (
|
||||||
</div>
|
</div>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
</div>
|
</div>
|
||||||
<div id="orders_panel_edit_<?= $order['order']['_key'] ?>" class="px-3 col-6 d-flex flex-column">
|
<div id="orders_panel_edit_<?= $order['order']['_key'] ?>" class="px-4 col-6 d-flex flex-column">
|
||||||
<p class="my-auto">Выберите поставку</p>
|
<p class="my-auto">Выберите поставку</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="orders_panel_info_<?= $order['order']['_key'] ?>" class="col-3 d-flex flex-column">
|
<div id="orders_panel_info_<?= $order['order']['_key'] ?>" class="col-3 d-flex flex-column">
|
||||||
|
|
|
@ -44,6 +44,13 @@ AppAsset::register($this);
|
||||||
<meta name="msapplication-TileImage" content="/favicons/ms-icon-144x144.png">
|
<meta name="msapplication-TileImage" content="/favicons/ms-icon-144x144.png">
|
||||||
<meta name="theme-color" content="#ffffff">
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var onloadCallback = function() {
|
||||||
|
grecaptcha.render('form_suppliers_request_recaptcha', {
|
||||||
|
'sitekey': '6LcTDSsbAAAAAF-KOY6azKzaIj6rOqyegJqNKRcc'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
<?php $this->registerCsrfMetaTags() ?>
|
<?php $this->registerCsrfMetaTags() ?>
|
||||||
|
|
||||||
|
@ -90,8 +97,8 @@ AppAsset::register($this);
|
||||||
<?= $form->field($model_request, 'phon', ['options' => ['class' => "mb-3"]])->input('tel', ['aria-invalid' => false, 'aria-required' => true, 'pattern' => '7[0-9]{3}[0-9]{3}[0-9]{2}[0-9]{2}', 'placeholder' => '79091112233', 'title' => '79091112233']); ?>
|
<?= $form->field($model_request, 'phon', ['options' => ['class' => "mb-3"]])->input('tel', ['aria-invalid' => false, 'aria-required' => true, 'pattern' => '7[0-9]{3}[0-9]{3}[0-9]{2}[0-9]{2}', 'placeholder' => '79091112233', 'title' => '79091112233']); ?>
|
||||||
<?= $form->field($model_request, 'mail', ['options' => ['class' => "mb-3"]])->input('email', ['placeholder' => 'company@mail.ru']); ?>
|
<?= $form->field($model_request, 'mail', ['options' => ['class' => "mb-3"]])->input('email', ['placeholder' => 'company@mail.ru']); ?>
|
||||||
<?= $form->field($model_request, 'file', ['options' => ['class' => "mb-3 d-flex flex-column justify-content-center"]])->fileInput(['multiple' => true, 'class' => 'my-auto px-0']) ?>
|
<?= $form->field($model_request, 'file', ['options' => ['class' => "mb-3 d-flex flex-column justify-content-center"]])->fileInput(['multiple' => true, 'class' => 'my-auto px-0']) ?>
|
||||||
|
<div id="form_suppliers_request_recaptcha"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -103,6 +110,8 @@ AppAsset::register($this);
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<?php $this->endBody() ?>
|
<?php $this->endBody() ?>
|
||||||
|
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -11,8 +11,6 @@ function order_init(order_key) {
|
||||||
// Инициализация
|
// Инициализация
|
||||||
let target = panel.children[2].children[0].children[i];
|
let target = panel.children[2].children[0].children[i];
|
||||||
|
|
||||||
console.log(i);
|
|
||||||
|
|
||||||
if ((target === undefined || target.children[1] === undefined || target.children[1].children[0] === undefined) && !target.classList.contains('dropdown-divider')) {
|
if ((target === undefined || target.children[1] === undefined || target.children[1].children[0] === undefined) && !target.classList.contains('dropdown-divider')) {
|
||||||
|
|
||||||
supplies_are_confirmed = false;
|
supplies_are_confirmed = false;
|
||||||
|
@ -78,24 +76,65 @@ function orders_supply_edit(supply_key, order_key) {
|
||||||
// Удаление индикатора загрузки
|
// Удаление индикатора загрузки
|
||||||
panel.innerHTML = '';
|
panel.innerHTML = '';
|
||||||
|
|
||||||
|
// Идентификатор
|
||||||
|
if (document.getElementById(supply.getAttribute('id') + '_id') === null) {
|
||||||
|
// Инициализация контейнера
|
||||||
|
let container = document.createElement('div');
|
||||||
|
container.setAttribute('id', supply.getAttribute('id') + '_id');
|
||||||
|
container.setAttribute('class', 'row mb-1 px-3');
|
||||||
|
|
||||||
|
// Инициализация названия
|
||||||
|
let name = document.createElement('p');
|
||||||
|
name.setAttribute('id', supply.getAttribute('id') + '_id_name');
|
||||||
|
name.setAttribute('class', 'col-auto px-0 ml-0 mr-2');
|
||||||
|
name.innerText = 'Идентификатор:';
|
||||||
|
|
||||||
|
// Инициализация идентификатора
|
||||||
|
let text = document.createElement('p');
|
||||||
|
text.setAttribute('id', supply.getAttribute('id') + '_id_value');
|
||||||
|
text.setAttribute('class', 'col-auto px-0 mx-0 font-weight-bold');
|
||||||
|
if (data.id !== undefined) {
|
||||||
|
text.innerText = '#' + data.id;
|
||||||
|
} else {
|
||||||
|
text.innerText = 'Неизвестно';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Запись в документ
|
||||||
|
panel.appendChild(container);
|
||||||
|
container.appendChild(name);
|
||||||
|
container.appendChild(text);
|
||||||
|
};
|
||||||
|
|
||||||
|
// // Разделитель статического информационного блока от блока с динамическими данными
|
||||||
|
// if (document.getElementById(supply.getAttribute('id') + '_info_divider') === null) {
|
||||||
|
// // Инициализация контейнера
|
||||||
|
// let divider = document.createElement('div');
|
||||||
|
// divider.setAttribute('id', supply.getAttribute('id') + '_info_divider');
|
||||||
|
// divider.setAttribute('class', 'dropdown-divider mb-2');;
|
||||||
|
|
||||||
|
// // Запись в документ
|
||||||
|
// panel.appendChild(divider);
|
||||||
|
// };
|
||||||
|
|
||||||
// Цена
|
// Цена
|
||||||
if (document.getElementById(supply.getAttribute('id') + '_cost') === null) {
|
if (document.getElementById(supply.getAttribute('id') + '_cost') === null) {
|
||||||
// Инициализация контейнера
|
// Инициализация контейнера
|
||||||
let container = document.createElement('div');
|
let container = document.createElement('div');
|
||||||
container.setAttribute('id', supply.getAttribute('id') + '_cost');
|
container.setAttribute('id', supply.getAttribute('id') + '_cost');
|
||||||
container.setAttribute('class', 'row mb-3 px-3');
|
container.setAttribute('class', 'row px-3');
|
||||||
|
|
||||||
// Инициализация названия
|
// Инициализация названия
|
||||||
let name = document.createElement('p');
|
let name = document.createElement('p');
|
||||||
name.setAttribute('id', supply.getAttribute('id') + '_cost_name');
|
name.setAttribute('id', supply.getAttribute('id') + '_cost_name');
|
||||||
name.setAttribute('class', 'col-2 text-center');
|
name.setAttribute('class', 'col-auto px-0 ml-0 mr-2');
|
||||||
name.innerText = 'Цена';
|
name.innerText = 'Цена';
|
||||||
|
|
||||||
// Инициализация поля
|
// Инициализация поля
|
||||||
let input = document.createElement('input');
|
let input = document.createElement('input');
|
||||||
input.setAttribute('id', supply.getAttribute('id') + '_cost_input');
|
input.setAttribute('id', supply.getAttribute('id') + '_cost_input');
|
||||||
input.setAttribute('class', 'col-10 form-control');
|
input.setAttribute('class', 'col-2 text-center form-control-plaintext');
|
||||||
input.setAttribute('type', 'number');
|
input.setAttribute('type', 'number');
|
||||||
|
input.setAttribute('onchange', 'return orders_supply_cost_edit(' + supply_key + ', this);')
|
||||||
if (data.cost !== undefined) {
|
if (data.cost !== undefined) {
|
||||||
input.setAttribute('value', data.cost);
|
input.setAttribute('value', data.cost);
|
||||||
} else {
|
} else {
|
||||||
|
@ -103,10 +142,16 @@ function orders_supply_edit(supply_key, order_key) {
|
||||||
}
|
}
|
||||||
input.setAttribute('aria-invalid', 'false');
|
input.setAttribute('aria-invalid', 'false');
|
||||||
|
|
||||||
|
// Инициализация дополнительных данных
|
||||||
|
let info = document.createElement('p');
|
||||||
|
info.setAttribute('class', 'col-auto px-0 ml-2 mr-0');
|
||||||
|
info.innerText = 'рублей';
|
||||||
|
|
||||||
// Запись в документ
|
// Запись в документ
|
||||||
panel.appendChild(container);
|
panel.appendChild(container);
|
||||||
container.appendChild(name);
|
container.appendChild(name);
|
||||||
container.appendChild(input);
|
container.appendChild(input);
|
||||||
|
container.appendChild(info);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Время доставки
|
// Время доставки
|
||||||
|
@ -114,19 +159,20 @@ function orders_supply_edit(supply_key, order_key) {
|
||||||
// Инициализация контейнера
|
// Инициализация контейнера
|
||||||
let container = document.createElement('div');
|
let container = document.createElement('div');
|
||||||
container.setAttribute('id', supply.getAttribute('id') + '_time');
|
container.setAttribute('id', supply.getAttribute('id') + '_time');
|
||||||
container.setAttribute('class', 'row mb-3 px-3');
|
container.setAttribute('class', 'row mb-2 px-3');
|
||||||
|
|
||||||
// Инициализация названия
|
// Инициализация названия
|
||||||
let name = document.createElement('p');
|
let name = document.createElement('p');
|
||||||
name.setAttribute('id', supply.getAttribute('id') + '_time_name');
|
name.setAttribute('id', supply.getAttribute('id') + '_time_name');
|
||||||
name.setAttribute('class', 'col-2 text-center');
|
name.setAttribute('class', 'col-auto px-0 ml-0 mr-2');
|
||||||
name.innerText = 'Время';
|
name.innerText = 'Время';
|
||||||
|
|
||||||
// Инициализация поля
|
// Инициализация поля
|
||||||
let input = document.createElement('input');
|
let input = document.createElement('input');
|
||||||
input.setAttribute('id', supply.getAttribute('id') + '_time_input');
|
input.setAttribute('id', supply.getAttribute('id') + '_time_input');
|
||||||
input.setAttribute('class', 'col-10 form-control');
|
input.setAttribute('class', 'col-1 text-center form-control-plaintext');
|
||||||
input.setAttribute('type', 'number');
|
input.setAttribute('type', 'number');
|
||||||
|
input.setAttribute('onchange', 'return orders_supply_time_edit(' + supply_key + ', this);')
|
||||||
if (data.time !== undefined) {
|
if (data.time !== undefined) {
|
||||||
input.setAttribute('value', data.time);
|
input.setAttribute('value', data.time);
|
||||||
} else {
|
} else {
|
||||||
|
@ -134,10 +180,16 @@ function orders_supply_edit(supply_key, order_key) {
|
||||||
}
|
}
|
||||||
input.setAttribute('aria-invalid', 'false');
|
input.setAttribute('aria-invalid', 'false');
|
||||||
|
|
||||||
|
// Инициализация дополнительных данных
|
||||||
|
let info = document.createElement('p');
|
||||||
|
info.setAttribute('class', 'col-auto px-0 ml-2 mr-0');
|
||||||
|
info.innerText = 'дней';
|
||||||
|
|
||||||
// Запись в документ
|
// Запись в документ
|
||||||
panel.appendChild(container);
|
panel.appendChild(container);
|
||||||
container.appendChild(name);
|
container.appendChild(name);
|
||||||
container.appendChild(input);
|
container.appendChild(input);
|
||||||
|
container.appendChild(info);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Комментарий
|
// Комментарий
|
||||||
|
@ -153,10 +205,11 @@ function orders_supply_edit(supply_key, order_key) {
|
||||||
textarea.setAttribute('class', 'col-12 form-control');
|
textarea.setAttribute('class', 'col-12 form-control');
|
||||||
textarea.setAttribute('cols', '50');
|
textarea.setAttribute('cols', '50');
|
||||||
textarea.setAttribute('rows', '3');
|
textarea.setAttribute('rows', '3');
|
||||||
|
textarea.setAttribute('onchange', 'return orders_supply_comm_edit(' + supply_key + ', this);')
|
||||||
if (data.comm === undefined) {
|
if (data.comm === undefined) {
|
||||||
textarea.innerText = 'Комментарий к заказу';
|
textarea.value = 'Комментарий к заказу';
|
||||||
} else {
|
} else {
|
||||||
textarea.innerText = data.comm;
|
textarea.value = data.comm;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Запись в документ
|
// Запись в документ
|
||||||
|
@ -192,8 +245,6 @@ function orders_supply_edit(supply_key, order_key) {
|
||||||
// Инициализация
|
// Инициализация
|
||||||
let title = document.getElementById(supply.getAttribute('id') + '_stts_indicator');
|
let title = document.getElementById(supply.getAttribute('id') + '_stts_indicator');
|
||||||
|
|
||||||
console.log(title.children[0]);
|
|
||||||
|
|
||||||
if (title.children[0] === undefined) {
|
if (title.children[0] === undefined) {
|
||||||
// Индикатор не найден
|
// Индикатор не найден
|
||||||
|
|
||||||
|
@ -263,3 +314,99 @@ function orders_supply_comm_write(button, supply_key, order_key) {
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Изменить цену товара в заказе
|
||||||
|
*/
|
||||||
|
function orders_supply_cost_edit(supply_key, input) {
|
||||||
|
if (supply_key !== undefined && input !== undefined) {
|
||||||
|
// Обработка входных параметров
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: '/orders/supply/' + supply_key + '/edit/cost',
|
||||||
|
type: 'post',
|
||||||
|
dataType: 'json',
|
||||||
|
data: {
|
||||||
|
'_csrf': yii.getCsrfToken(),
|
||||||
|
'cost': input.value
|
||||||
|
},
|
||||||
|
success: function (data, status) {
|
||||||
|
if (data.cost !== undefined) {
|
||||||
|
input.value = data.cost;
|
||||||
|
}
|
||||||
|
|
||||||
|
orders_response_success(data, status);
|
||||||
|
},
|
||||||
|
error: orders_response_error
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Пересчитывание стоимости
|
||||||
|
cart_cost_calculate();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Изменить время доставки товара в заказе
|
||||||
|
*/
|
||||||
|
function orders_supply_time_edit(supply_key, input) {
|
||||||
|
if (supply_key !== undefined && input !== undefined) {
|
||||||
|
// Обработка входных параметров
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: '/orders/supply/' + supply_key + '/edit/time',
|
||||||
|
type: 'post',
|
||||||
|
dataType: 'json',
|
||||||
|
data: {
|
||||||
|
'_csrf': yii.getCsrfToken(),
|
||||||
|
'time': input.value
|
||||||
|
},
|
||||||
|
success: function (data, status) {
|
||||||
|
if (data.time !== undefined) {
|
||||||
|
input.value = data.time;
|
||||||
|
}
|
||||||
|
|
||||||
|
orders_response_success(data, status);
|
||||||
|
},
|
||||||
|
error: orders_response_error
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Пересчитывание стоимости
|
||||||
|
cart_cost_calculate();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Изменить комментарий товара в заказе
|
||||||
|
*/
|
||||||
|
function orders_supply_comm_edit(supply_key, input) {
|
||||||
|
if (supply_key !== undefined && input !== undefined) {
|
||||||
|
// Обработка входных параметров
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: '/orders/supply/' + supply_key + '/edit/comm',
|
||||||
|
type: 'post',
|
||||||
|
dataType: 'json',
|
||||||
|
data: {
|
||||||
|
'_csrf': yii.getCsrfToken(),
|
||||||
|
'comm': input.value
|
||||||
|
},
|
||||||
|
success: function (data, status) {
|
||||||
|
if (data.comm !== undefined) {
|
||||||
|
input.value = data.comm;
|
||||||
|
}
|
||||||
|
|
||||||
|
orders_response_success(data, status);
|
||||||
|
},
|
||||||
|
error: orders_response_error
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Пересчитывание стоимости
|
||||||
|
cart_cost_calculate();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
Reference in New Issue