namespace yii_app\commands;
use yii\console\Controller;
+use yii\helpers\ArrayHelper;
use yii\helpers\Json;
use yii_app\records\MatrixErp;
use yii_app\records\MatrixErpProperty;
public function actionFromProductsOneC() {
$existings = MatrixErp::find()->all();
$existingMapGuidGroupNames = [];
+ $existingMapGuidMatrixErp = [];
foreach ($existings as $existing) {
/* @var $existing MatrixErp */
$existingMapGuidGroupNames[$existing->guid][] = $existing->group_name;
- };
+ $existingMapGuidMatrixErp[$existing->guid] = $existing;
+ }
$products = MarketplaceService::getMarketplaceProducts();
+ $matrixErpPropertyDynamicByGuid = [];
+ foreach (range(1,2) as $ind) {
+ $matrixErpPropertyDynamicByGuid[$ind] = MatrixErpPropertyDynamic::find()
+ ->where(['product_id' => ArrayHelper::getColumn($products, 'id'), 'category' => $ind])
+ ->indexBy('product_id')->asArray()->all();
+ }
+
foreach ($products as $product) {
/* @var $product Products1c */
if (in_array($product->id, array_keys($existingMapGuidGroupNames))
&& (in_array('marketplace', $existingMapGuidGroupNames[$product->id]))) {
- $matrixErp = MatrixErp::findOne(['guid' => $product->id]);
- if ($matrixErp->components != $product->components) {
- $matrixErpPropertyDynamic1 = MatrixErpPropertyDynamic::findOne(['product_id' => $matrixErp->guid, 'category' => 1]);
- /* @var MatrixErpPropertyDynamic $matrixErpPropertyDynamic1 */
- if ($matrixErpPropertyDynamic1) {
- $matrixErpPropertyDynamic1->date_end = date("Y-m-d H:i:s");
- $matrixErpPropertyDynamic1->save();
- if ($matrixErpPropertyDynamic1->getErrors()) {
- var_dump($matrixErpPropertyDynamic1->getErrors());
+ $matrixErp = $existingMapGuidMatrixErp[$product->id];
+ foreach (['components', 'articule'] as $fieldInd => $field) {
+ if ($matrixErp->$field != $product->$field) {
+ $matrixErpPropertyDynamic1 = $matrixErpPropertyDynamicByGuid[$fieldInd + 1][$matrixErp->guid];
+ /* @var MatrixErpPropertyDynamic $matrixErpPropertyDynamic1 */
+ if ($matrixErpPropertyDynamic1) {
+ $matrixErpPropertyDynamic1->date_end = date("Y-m-d H:i:s");
+ $matrixErpPropertyDynamic1->active = 0;
+ $matrixErpPropertyDynamic1->save();
+ if ($matrixErpPropertyDynamic1->getErrors()) {
+ var_dump($matrixErpPropertyDynamic1->getErrors());
+ }
}
- }
- $matrixErpPropertyDynamic2 = new MatrixErpPropertyDynamic;
- $matrixErpPropertyDynamic2->product_id = $matrixErp->guid;
- $matrixErpPropertyDynamic2->value = $product->components;
- $matrixErpPropertyDynamic2->category = 1;
- $matrixErpPropertyDynamic2->date_from = date("Y-m-d H:i:s");
- $matrixErpPropertyDynamic2->date_end = '2100-01-01 00:00:00';
- $matrixErpPropertyDynamic2->save();
- if ($matrixErpPropertyDynamic2->getErrors()) {
- var_dump($matrixErpPropertyDynamic2->getErrors());
- }
- }
- if ($matrixErp->articule != $product->articule) {
- $matrixErpPropertyDynamic1 = MatrixErpPropertyDynamic::findOne(['product_id' => $matrixErp->guid, 'category' => 2]);
- /* @var MatrixErpPropertyDynamic $matrixErpPropertyDynamic1 */
- if ($matrixErpPropertyDynamic1) {
- $matrixErpPropertyDynamic1->date_end = date("Y-m-d H:i:s");
- $matrixErpPropertyDynamic1->save();
- if ($matrixErpPropertyDynamic1->getErrors()) {
- var_dump($matrixErpPropertyDynamic1->getErrors());
+ $matrixErpPropertyDynamic2 = new MatrixErpPropertyDynamic;
+ $matrixErpPropertyDynamic2->product_id = $matrixErp->guid;
+ $matrixErpPropertyDynamic2->value = $product->$field;
+ $matrixErpPropertyDynamic2->category = $fieldInd + 1;
+ $matrixErpPropertyDynamic2->date_from = date("Y-m-d H:i:s");
+ $matrixErpPropertyDynamic2->date_end = '2100-01-01 00:00:00';
+ $matrixErpPropertyDynamic2->save();
+ if ($matrixErpPropertyDynamic2->getErrors()) {
+ var_dump($matrixErpPropertyDynamic2->getErrors());
}
}
- $matrixErpPropertyDynamic2 = new MatrixErpPropertyDynamic;
- $matrixErpPropertyDynamic2->product_id = $matrixErp->guid;
- $matrixErpPropertyDynamic2->value = $product->articule;
- $matrixErpPropertyDynamic2->category = 2;
- $matrixErpPropertyDynamic2->date_from = date("Y-m-d H:i:s");
- $matrixErpPropertyDynamic2->date_end = '2100-01-01 00:00:00';
- $matrixErpPropertyDynamic2->save();
- if ($matrixErpPropertyDynamic2->getErrors()) {
- var_dump($matrixErpPropertyDynamic2->getErrors());
- }
}
}
}