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

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 ($this->isNewRecord) {
$this->mail = mb_strtolower($this->mail);
$this->auth = yii::$app->security->generateRandomString();
$this->vrfy = yii::$app->security->generateRandomString();
}

View File

@ -162,6 +162,9 @@ class AccountForm extends Model
$this->pswd = $pswd;
}
// Регистронезависимая почта
$this->mail = mb_strtolower($this->mail);
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)) {
// Найдено в базе данных
return $edge;
return $edge[0];
}
return self::write($_from, $_to, $type, $data);

View File

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

View File

@ -176,10 +176,11 @@ class Search extends Document
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
) {
// Цена меньше единицы (подразумевается как ошибка) или количество меньше единицы
// if (($cost = $connection['cost'] ?? $cost['ЦенаЗаЕдиницу'] ?? $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]);
@ -425,11 +426,15 @@ class Search extends Document
}
// Инициализация цены
$price_raw = $cost;
$price = $price_raw . ' ' . $supply_edge_product[0]['onec']['Цены']['Цена']['Валюта'] ?? 'руб';
$price_raw = $supply['cost'];
// $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) {
// Уже не используется
$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;
} 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 {
// Проверка не пройдена

View File

@ -137,34 +137,33 @@ $panel ?? $panel = 'profile_panel_supplies_input_import';
?>
<?php foreach ($warehouses as $warehouse) : ?>
<section class="col<?= ++$amount_warehouses < count($warehouses) ? ' mb-4' : '' ?>">
<h5 class="d-flex">
<?= $warehouse->name ?? 'Без названия' ?>
<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>
<h4 class="mb-3 d-flex">
<span class="my-auto"><?= $warehouse->name ?? 'Без названия' ?></span>
<?php $form = ActiveForm::begin([
'id' => 'form_warehouse_settings',
'action' => false,
'fieldConfig' => [
'template' => '{label}{input}',
],
'options' => [
'onsubmit' => 'return false;',
'class' => 'ml-auto'
]
]);
<?php $form = ActiveForm::begin([
'id' => 'form_warehouse_settings',
'action' => false,
'fieldConfig' => [
'template' => '{label}{input}',
],
'options' => [
'onsubmit' => 'return false;'
]
]);
$list = array_unique($warehouse->genListTerminalsFrom());
?>
$list = $warehouse->genListTerminalsFrom();
?>
<?= $form->field($warehouse, 'trmn', ['options' => ['class' => "mb-3"]])
->dropDownList($list, [
'onChange' => 'page_supplies_settings(this.parentElement.parentElement, ' . $warehouse->_key . ', \'profile_panel_supplies\')',
'disabled' => count($list) <= 1
])->label(false); ?>
<?php ActiveForm::end(); ?>
<?= $form->field($warehouse, 'trmn', ['options' => ['class' => ""]])
->dropDownList($list, [
'onChange' => 'page_supplies_settings(this.parentElement.parentElement, ' . $warehouse->_key . ', \'profile_panel_supplies\')',
'disabled' => count($list) <= 1
])->label(false); ?>
<?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
// Инициализация номера инстанции импорта
$amount_imports = 0;