Исправления наследовавших классов

This commit is contained in:
RedHood 2021-01-31 20:39:02 +10:00
parent 6a7f8897d5
commit 0f8e6a7a6a
20 changed files with 91 additions and 39 deletions

View File

@ -1,4 +1,5 @@
<?php
declare(strict_types=1);
namespace app\models;

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class AccountEdgePurchase extends Edge
{
public static function collectionName()
public static function collectionName(): string
{
return 'account_edge_purchase';
}

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class AccountEdgeSupply extends Edge
{
public static function collectionName()
public static function collectionName(): string
{
return 'account_edge_supply';
}

View File

@ -1,4 +1,5 @@
<?php
declare(strict_types=1);
namespace app\models;

View File

@ -1,4 +1,5 @@
<?php
declare(strict_types=1);
namespace app\models;

View File

@ -1,12 +1,11 @@
<?php
declare(strict_types=1);
namespace app\models;
use moonland\phpexcel\Excel;
use mirzaev\yii2\arangodb\Query;
/**
* Продукт (в ассортименте магазина)
*
@ -17,7 +16,7 @@ use mirzaev\yii2\arangodb\Query;
class Product extends Document
{
/**
* Сценарий импорта из .excel докумекнт
* Сценарий импорта из .excel документа
*/
const SCENARIO_IMPORT = 'import';

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class ProductEdgeProduct extends Edge
{
public static function collectionName()
public static function collectionName(): string
{
return 'product_edge_product';
}

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class ProductEdgeProductGroup extends Edge
{
public static function collectionName()
public static function collectionName(): string
{
return 'product_edge_product_group';
}

View File

@ -110,33 +110,35 @@ class ProductGroup extends Document implements GroupInterface
*/
public static function createByML(Group $group): static|array|null
{
if (!$model = static::readByOnecId($group->id)) {
// Группа не найдена
// if (!$model = static::readByOnecId($group->id)) {
// // Группа не найдена
// Инициализация
$model = new static;
// // Инициализация
// $model = new static;
$model->onec_id = $group->id;
}
// $model->onec_id = $group->id;
// }
$model->name = $group->name;
// $model->name = $group->name;
if ($parent = $group->getParent()) {
// Найден родитель
// if ($parent = $group->getParent()) {
// // Найден родитель
// Инициализация (рекурсия)
$parentModel = static::createByML($parent);
// // Инициализация (рекурсия)
// $parentModel = static::createByML($parent);
$model->onec_prnt_id = $parentModel->id;
// $model->onec_prnt_id = $parentModel->id;
unset($parentModel);
} else {
$model->onec_prnt_id = null;
}
// unset($parentModel);
// } else {
// $model->onec_prnt_id = null;
// }
$model->save();
// $model->save();
return $model;
// return $model;
return null;
}
private static function writeEdgeBetweenGroup(string $from, string $to): bool

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class ProductGroupEdgeProductGroup extends Edge
{
public static function collectionName()
public static function collectionName(): string
{
return 'product_group_edge_product_group';
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace app\models;
use carono\exchange1c\interfaces\DocumentInterface;
@ -14,7 +16,7 @@ class Purchase extends Document implements DocumentInterface
/**
* @return DocumentInterface[]
*/
public static function findDocuments1c(): ?self
public static function findDocuments1c(): ?array
{
return self::find()->andWhere(['status_id' => 2])->all();
}

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class PurchaseEdgeSupply extends Edge
{
public static function collectionName()
public static function collectionName(): string
{
return 'purchase_edge_supply';
}

View File

@ -1,15 +1,17 @@
<?php
declare(strict_types=1);
namespace app\models;
class Requisite extends Document
{
public static function collectionName()
public static function collectionName(): string
{
return 'requisite';
}
public function attributes()
public function attributes(): array
{
return array_merge(
parent::attributes(),
@ -17,7 +19,7 @@ class Requisite extends Document
);
}
public function rules()
public function rules(): array
{
return array_merge(
parent::rules(),
@ -31,7 +33,7 @@ class Requisite extends Document
);
}
public function attributeLabels()
public function attributeLabels(): array
{
return array_merge(
parent::attributeLabels(),

View File

@ -104,31 +104,52 @@ class Supply extends Product implements ProductInterface
$models = static::searchOnecByAccountId(Yii::$app->user->id, true);
$properties = self::xml2array($properties->xml);
$fp = fopen('1.txt', 'a');
fwrite($fp, print_r(count($models), true) . PHP_EOL);
fclose($fp);
// for ($i = 0; $i <= count($models); $i++)
foreach ($models as $model) {
// Перебор записей
$fp = fopen('2.txt', 'a');
fwrite($fp, $model->ocid . PHP_EOL);
fclose($fp);
// Инициализация
$changes = false;
$transit = $model->onec;
foreach ($model->onec['ЗначенияСвойств'] as &$attribute) {
foreach ($model->onec['ЗначенияСвойств'] as $attribute_name => $attribute_value) {
// Перебор аттрибутов
foreach ($properties as $property) {
// Перебор свойств
if ($attribute['ЗначенияСвойства']['Ид'] === $property['Свойство']['Ид']) {
if (is_array($attribute_value) && is_array($property) && $attribute_value['Ид'] === $property['Ид']) {
// Совпадение идентификаторов
// Объединение данных
array_merge($attribute, $property);
$transit['ЗначенияСвойств'][$attribute_name] = array_merge($attribute_value, $property, $transit['ЗначенияСвойств'][$attribute_name]);
// Запись индикатора наличия изменений
$changes = true;
// break;
} else {
// Объединение данных
$transit['ЗначенияСвойств'][$attribute_name] = $property;
}
}
}
if ($changes) {
// Если указано, что записаны изменения
// Настройка ($transit нужен из-за ограничений __set())
$model->onec = $transit;
// Запись
$model->save();
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace app\models;
use app\models\traits\Xml2Array;

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class SupplyEdgeRequisite extends Edge
{
public static function collectionName()
public static function collectionName(): string
{
return 'supply_edge_requisite';
}

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class SupplyEdgeSupply extends ProductEdgeProduct
{
public static function collectionName()
public static function collectionName(): string
{
return 'supply_edge_supply';
}

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class SupplyEdgeSupplyGroup extends ProductEdgeProductGroup
{
public static function collectionName()
public static function collectionName(): string
{
return 'supply_edge_supply_group';
}

View File

@ -1,4 +1,5 @@
<?php
declare(strict_types=1);
namespace app\models;

View File

@ -1,10 +1,12 @@
<?php
declare(strict_types=1);
namespace app\models;
class SupplyGroupEdgeSupplyGroup extends Edge
{
public static function collectionName()
public static function collectionName(): string
{
return 'supply_group_edge_supply_group';
}