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

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 <?php
declare(strict_types=1); declare(strict_types=1);
namespace app\models; namespace app\models;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,10 +1,12 @@
<?php <?php
declare(strict_types=1);
namespace app\models; namespace app\models;
class ProductEdgeProductGroup extends Edge class ProductEdgeProductGroup extends Edge
{ {
public static function collectionName() public static function collectionName(): string
{ {
return 'product_edge_product_group'; 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 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); // unset($parentModel);
} else { // } else {
$model->onec_prnt_id = null; // $model->onec_prnt_id = null;
} // }
$model->save(); // $model->save();
return $model; // return $model;
return null;
} }
private static function writeEdgeBetweenGroup(string $from, string $to): bool private static function writeEdgeBetweenGroup(string $from, string $to): bool

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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