пульверизатор

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2022-02-17 09:49:55 +10:00
parent e941fbd782
commit 4683cf51db
7 changed files with 52 additions and 44 deletions

View File

@ -202,6 +202,7 @@ class Account extends Document implements IdentityInterface, PartnerInterface
{ {
if (parent::beforeSave($data)) { if (parent::beforeSave($data)) {
if ($this->isNewRecord) { if ($this->isNewRecord) {
$this->mail = mb_strtolower($this->mail);
$this->auth = yii::$app->security->generateRandomString(); $this->auth = yii::$app->security->generateRandomString();
$this->vrfy = yii::$app->security->generateRandomString(); $this->vrfy = yii::$app->security->generateRandomString();
} }

View File

@ -162,6 +162,9 @@ class AccountForm extends Model
$this->pswd = $pswd; $this->pswd = $pswd;
} }
// Регистронезависимая почта
$this->mail = mb_strtolower($this->mail);
if (isset($this->mail, $this->pswd) && $this->validate()) { if (isset($this->mail, $this->pswd) && $this->validate()) {
// Проверка пройдена // Проверка пройдена

View File

@ -95,7 +95,7 @@ abstract class Edge extends Document
if ($edge = self::searchByVertex($_from, $_to, limit: 1)) { if ($edge = self::searchByVertex($_from, $_to, limit: 1)) {
// Найдено в базе данных // Найдено в базе данных
return $edge; return $edge[0];
} }
return self::write($_from, $_to, $type, $data); return self::write($_from, $_to, $type, $data);

View File

@ -405,7 +405,7 @@ class Product extends Document
* *
* @param string|null $_id Идентификатор поставки * @param string|null $_id Идентификатор поставки
* *
* @return self|null Привязанный продукт * @return array|null Товар (Product)
*/ */
public static function searchBySupplyId(string $_id): ?array public static function searchBySupplyId(string $_id): ?array
{ {

View File

@ -176,10 +176,11 @@ class Search extends Document
foreach ($connections as $key => &$connection) { foreach ($connections as $key => &$connection) {
// Перебор поставок // Перебор поставок
if (($cost = $cost['ЦенаЗаЕдиницу'] ?? $connection['supply_edge_product'][0]['onec']['Цены']['Цена']['ЦенаЗаЕдиницу']) < 1 // if (($cost = $connection['cost'] ?? $cost['ЦенаЗаЕдиницу'] ?? $connection['supply_edge_product'][0]['onec']['Цены']['Цена']['ЦенаЗаЕдиницу']) < 1
|| ($amount = $connection['supply']['amnt'] ?? $connection['supply_edge_product'][0]['onec']['Количество']) < 1 // || ($amount = $connection['supply']['amnt'] ?? $connection['supply_edge_product'][0]['onec']['Количество']) < 1
) { // ) {
// Цена меньше единицы (подразумевается как ошибка) или количество меньше единицы if ($cost = $connection['supply']['cost'] < 1) {
// Цена меньше единицы (подразумевается как ошибка)
// Скрыть из выдачи // Скрыть из выдачи
unset($connections[$key]); unset($connections[$key]);
@ -425,11 +426,15 @@ class Search extends Document
} }
// Инициализация цены // Инициализация цены
$price_raw = $cost; $price_raw = $supply['cost'];
$price = $price_raw . ' ' . $supply_edge_product[0]['onec']['Цены']['Цена']['Валюта'] ?? 'руб'; // $price = $price_raw . ' ' . $supply_edge_product[0]['onec']['Цены']['Цена']['Валюта'] ?? 'руб';
$price = $price_raw . ' руб';
// Инициализация количества // Инициализация количества
$amount_raw = $amount = $supply['amnt'] ?? $supply_edge_product[0]['onec']['Количество']; // $amount_raw = $amount = $supply['amnt'] ?? $supply_edge_product[0]['onec']['Количество'] ?? 0;
$amount_raw = $amount = count(@SupplyEdgeProduct::searchByVertex(@Supply::collectionName() . '/' . $supply['_key'], @Product::searchByCatn($supply['catn'])->readId(), limit: 999)) ?? 1;
if (empty($amount_raw) || $amount_raw < 1) { if (empty($amount_raw) || $amount_raw < 1) {
// Уже не используется // Уже не используется
$amount = 'Под заказ'; $amount = 'Под заказ';

View File

@ -496,14 +496,14 @@ class Supply extends Product implements ProductInterface, OfferInterface
// Перебор создаваемых рёбер (так работает обозначение количества товаров в наличии) // Перебор создаваемых рёбер (так работает обозначение количества товаров в наличии)
// Поиск ребёр // Поиск ребёр
$edges = SupplyEdgeProduct::searchByVertex($supply->readId(), $product->readId(), limit: 50); $edges = SupplyEdgeProduct::searchByVertex($supply->readId(), $product->readId(), limit: 999);
if ($amount === $edges) { if ($amount === count($edges)) {
// Количество товаров в поставке не изменилось // Количество товаров в поставке не изменилось
// Раз изменений нет, то обновлять ничего не нужно // Раз изменений нет, то обновлять ничего не нужно
continue; continue;
} else if ($amount < $edges) { } else if ($amount < count($edges)) {
// Количество товаров в поставке стало МЕНЬШЕ // Количество товаров в поставке стало МЕНЬШЕ
// Расчёт разницы // Расчёт разницы
@ -614,16 +614,16 @@ class Supply extends Product implements ProductInterface, OfferInterface
} }
} }
if (isset($product->prod) && $product->prod === $supply->prod) { // if (isset($product->prod) && $product->prod === $supply->prod) {
// Производитель совпадает с тем, что указан в товаре // // Производитель совпадает с тем, что указан в товаре
for ($i = 0; $i++ < $amount;) { for ($i = 0; $i++ < $amount;) {
// Перебор создаваемых рёбер (так работает обозначение количества товаров в наличии) // Перебор создаваемых рёбер (так работает обозначение количества товаров в наличии)
// Запись ребра (с проверкой на дубликат) // Запись ребра
SupplyEdgeProduct::writeSafe($supply->readId(), $product->readId(), data: ['type' => 'connect']); SupplyEdgeProduct::write($supply->readId(), $product->readId(), data: ['type' => 'connect']);
}
} }
// }
} else { } else {
// Проверка не пройдена // Проверка не пройдена

View File

@ -137,12 +137,8 @@ $panel ?? $panel = 'profile_panel_supplies_input_import';
?> ?>
<?php foreach ($warehouses as $warehouse) : ?> <?php foreach ($warehouses as $warehouse) : ?>
<section class="col<?= ++$amount_warehouses < count($warehouses) ? ' mb-4' : '' ?>"> <section class="col<?= ++$amount_warehouses < count($warehouses) ? ' mb-4' : '' ?>">
<h5 class="d-flex"> <h4 class="mb-3 d-flex">
<?= $warehouse->name ?? 'Без названия' ?> <span class="my-auto"><?= $warehouse->name ?? 'Без названия' ?></span>
<small class="ml-auto mt-auto"><a class="text-dark fas fa-pen" type="button" onclick="return page_profile_warehouses_rename(<?= $warehouse->_key ?>, prompt('Название склада', this.parentElement.parentElement.innerText));"></a></small>
<small class="ml-3 mt-auto"><a class="text-dark fas fa-trash-alt" type="button" onclick="return page_profile_warehouses_delete(<?= $warehouse->_key ?>);"></a></small>
</h5>
<?php $form = ActiveForm::begin([ <?php $form = ActiveForm::begin([
'id' => 'form_warehouse_settings', 'id' => 'form_warehouse_settings',
'action' => false, 'action' => false,
@ -150,21 +146,24 @@ $panel ?? $panel = 'profile_panel_supplies_input_import';
'template' => '{label}{input}', 'template' => '{label}{input}',
], ],
'options' => [ 'options' => [
'onsubmit' => 'return false;' 'onsubmit' => 'return false;',
'class' => 'ml-auto'
] ]
]); ]);
$list = $warehouse->genListTerminalsFrom(); $list = array_unique($warehouse->genListTerminalsFrom());
?> ?>
<?= $form->field($warehouse, 'trmn', ['options' => ['class' => "mb-3"]]) <?= $form->field($warehouse, 'trmn', ['options' => ['class' => ""]])
->dropDownList($list, [ ->dropDownList($list, [
'onChange' => 'page_supplies_settings(this.parentElement.parentElement, ' . $warehouse->_key . ', \'profile_panel_supplies\')', 'onChange' => 'page_supplies_settings(this.parentElement.parentElement, ' . $warehouse->_key . ', \'profile_panel_supplies\')',
'disabled' => count($list) <= 1 'disabled' => count($list) <= 1
])->label(false); ?> ])->label(false); ?>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
<small class="ml-4 my-auto h6"><a class="text-dark fas fa-pen" type="button" onclick="return page_profile_warehouses_rename(<?= $warehouse->_key ?>, prompt('Название склада', this.parentElement.parentElement.innerText));"></a></small>
<small class="ml-3 my-auto h6"><a class="text-dark fas fa-trash-alt" type="button" onclick="return page_profile_warehouses_delete(<?= $warehouse->_key ?>);"></a></small>
</h4>
<?php <?php
// Инициализация номера инстанции импорта // Инициализация номера инстанции импорта
$amount_imports = 0; $amount_imports = 0;