Исправление ошибок для импорта из 1С

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2021-04-11 11:48:32 +10:00
parent b50049eb67
commit 874d5c3f55
4 changed files with 53 additions and 48 deletions

View File

@ -134,7 +134,7 @@ class Notification extends Document
*/ */
public function write(): self|array|null public function write(): self|array|null
{ {
return $this::_write($this->text, $this->html, $this->account, $this->type); return $this::_write($this->text, $this->html, $this->account ?? null, $this->type);
} }
/** /**

View File

@ -442,7 +442,7 @@ class Product extends Document
$date = date('H:i d.m.Y', time()); $date = date('H:i d.m.Y', time());
// Настройка // Настройка
$model->text = yii::$app->controller->renderPartial('/notification/system/afterImportExcel', compact('amount', 'date')); $model->text = yii::$app->controller->renderPartial('@app/views/notification/system/afterImportExcel', compact('amount', 'date'));
$model->type = $model::TYPE_NOTICE; $model->type = $model::TYPE_NOTICE;
// Отправка // Отправка
@ -451,8 +451,6 @@ class Product extends Document
/** /**
* Вызывается после загрузки поставок из 1С * Вызывается после загрузки поставок из 1С
*
* @param int $amount Количество
*/ */
public static function afterImport1c(): bool public static function afterImport1c(): bool
{ {
@ -461,7 +459,7 @@ class Product extends Document
$date = date('H:i d.m.Y', time()); $date = date('H:i d.m.Y', time());
// Настройка // Настройка
$model->text = yii::$app->controller->renderPartial('/notification/system/afterImport1c', compact('amount', 'date')); $model->text = yii::$app->controller->renderPartial('@app/views/notification/system/afterImport1c', compact('date'));
$model->type = $model::TYPE_NOTICE; $model->type = $model::TYPE_NOTICE;
// Отправка // Отправка

View File

@ -213,8 +213,8 @@ class Supply extends Product implements ProductInterface
// if ($property['Ид'] === $account->opts['import_sections_oem']) { // if ($property['Ид'] === $account->opts['import_sections_oem']) {
// // Если идентификатор свойства совпадает с указанным в настройках свойства хранящего OEM номера // // Если идентификатор свойства совпадает с указанным в настройках свойства хранящего OEM номера
// Настройка // Настройка
$model->catn = $property['Значение']; $model->catn = $property['Значение'];
// } // }
} }
} }
@ -275,7 +275,7 @@ class Supply extends Product implements ProductInterface
$this->imgs ?? [], $this->imgs ?? [],
[ [
[ [
'desc' => $caption, 'dscr' => $caption,
'path' => $path_local, 'path' => $path_local,
'sorc' => $path 'sorc' => $path
] ]
@ -301,55 +301,62 @@ class Supply extends Product implements ProductInterface
return new SupplyEdgeProduct; return new SupplyEdgeProduct;
} }
// Создание продукта (временно заблокировано) if (
!yii::$app->user->isGuest
&& yii::$app->user->identity->agnt
&& (yii::$app->user->identity->type === 'administrator'
|| yii::$app->user->identity->type === 'moderator')
) {
// Пользователь аутентифицирован и авторизован
// // Инициализация п̸̨͇͑͋͠р̷̬̂́̀̊о̸̜̯̹̅͒͘͝д̴̨̨̨̟̈́̆у̴̨̭̮̠́͋̈́к̴̭͊̋̎т̵̛̣͈̔̐͆а̵̨͖͑ // Инициализация п̸̨͇͑͋͠р̷̬̂́̀̊о̸̜̯̹̅͒͘͝д̴̨̨̨̟̈́̆у̴̨̭̮̠́͋̈́к̴̭͊̋̎т̵̛̣͈̔̐͆а̵̨͖͑
// $product = self::initEmpty($this->catn); $product = self::initEmpty($this->catn);
// if (!is_array($product)) { if (!is_array($product)) {
// // Создался только один товар и вернулся в виде модели // Создался только один товар и вернулся в виде модели
// $product = [$product]; $product = [$product];
// } }
// if (is_array($this->oemn)) { if (is_array($this->oemn)) {
// // Значение OEM было инициализировано // Значение OEM было инициализировано
// foreach ($this->oemn as $oem) { foreach ($this->oemn as $oem) {
// // Перебор артикулов из массива ОЕМ-номеров // Перебор артикулов из массива ОЕМ-номеров
// // Инициализация и запись // Инициализация и запись
// $product[] = self::initEmpty($oem); $product[] = self::initEmpty($oem);
// } }
// } }
// foreach ($product as $product) { foreach ($product as $product) {
// // Перебор всех инициализированных продуктов // Перебор всех инициализированных продуктов
// if ($this->catn !== $product->catn) { if ($this->catn !== $product->catn) {
// // Каталожные номера не соответствуют друг другу // Каталожные номера не соответствуют друг другу
// continue; continue;
// } }
// // Код ниже скорее всего устарел // Код ниже скорее всего устарел
// if (SupplyEdgeProduct::searchByVertex($this->readId(), $product->readId())) { if (SupplyEdgeProduct::searchByVertex($this->readId(), $product->readId())) {
// // Ребро уже существует // Ребро уже существует
// continue; continue;
// } }
// // Запись ребра: ПОСТАВКА -> ПРОДУКТ // Запись ребра: ПОСТАВКА -> ПРОДУКТ
// $return = (new SupplyEdgeProduct)->write( $return = (new SupplyEdgeProduct)->write(
// $this->readId(), $this->readId(),
// $product->readId(), $product->readId(),
// 'connect', 'connect',
// [ [
// 'onec' => self::xml2array($offer->xml) 'onec' => self::xml2array($offer->xml)
// ] ]
// ); );
// } }
}
// Возвращает последнее сохранённое ребро // Возвращает последнее сохранённое ребро
// Надо будет с этим разобраться // Надо будет с этим разобраться
@ -373,7 +380,7 @@ class Supply extends Product implements ProductInterface
// Настройка // Настройка
$model->ocid = $id ?? null; $model->ocid = $id ?? null;
$model->catn = (string) $product->Артикул; $model->catn = (string) $product->Артикул;
$model->desc = (string) $product->Описание; $model->dscr = (string) $product->Описание;
$model->onec = self::xml2array($product->xml); $model->onec = self::xml2array($product->xml);
if (isset($model->onec['ЗначенияСвойств'])) { if (isset($model->onec['ЗначенияСвойств'])) {

View File

@ -1,9 +1,9 @@
<?php <?php
// NOTE: Make sure this file is not accessible when deployed to production // NOTE: Make sure this file is not accessible when deployed to production
if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) { // if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
die('You are not allowed to access this file.'); // die('You are not allowed to access this file.');
} // }
defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test'); defined('YII_ENV') or define('YII_ENV', 'test');