From 8634f3d9ce77086274341398f66e0ff1a5e19600 Mon Sep 17 00:00:00 2001 From: marina Date: Tue, 17 Dec 2024 10:22:25 +0300 Subject: [PATCH] =?utf8?q?ERP-259=20=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE?= =?utf8?q?=D1=82=D0=BA=D0=B0=20=D0=B2=D1=82=D0=BE=D1=80=D0=BE=D0=B3=D0=BE?= =?utf8?q?=20=D1=88=D0=B0=D0=B3=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?utf8?q?=D0=B0=D1=87=D0=B8=20=D1=81=D0=BC=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/ShiftTransferController.php | 4 ++- erp24/records/EqualizationRemains.php | 12 ++++++++- erp24/records/WaybillIncomingProducts.php | 4 +++ erp24/records/WaybillWriteOffsProducts.php | 4 +++ erp24/views/shift-transfer/_replacement.php | 25 +++++++++++++------ erp24/web/js/shift-transfer/replacement.js | 2 +- 6 files changed, 40 insertions(+), 11 deletions(-) diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index 53632e2b..2e120b25 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -282,7 +282,9 @@ class ShiftTransferController extends Controller ->andWhere(['shift_transfer_id' => $id]) ->andWhere(['<', 'fact_and_1c_diff', 0]) ->select('product_guid')->column()]), - 'id', 'name'); + 'id', function($model) { + return $model->name . ' (арт. ' . $model->articule . ')'; + }); return $this->render('view', compact('shiftTransfer', 'storeNameById', 'admins', 'products')); diff --git a/erp24/records/EqualizationRemains.php b/erp24/records/EqualizationRemains.php index bad1ff4e..4b0b995b 100644 --- a/erp24/records/EqualizationRemains.php +++ b/erp24/records/EqualizationRemains.php @@ -105,6 +105,16 @@ class EqualizationRemains extends \yii\db\ActiveRecord } foreach ($equalizationRemains as $er) { + if (preg_match('/^[a-f0-9\-]{36}$/i', $er['product_replacement_id'])) { + $productReplacementId = $er['product_replacement_id']; + } else { + if (preg_match('/^(.*)\s\(арт\.\s(\d+)\)$/', $er['product_replacement_id'], $matches)) { + $productReplacementId = Products1c::findOne(['name' => $matches[1], 'articule' => $matches[2]])->id; + } else { + $productReplacementId = null; + } + } + $equalizationRemain = new EqualizationRemains(); $equalizationRemain->setAttributes([ 'shift_transfer_id' => $shift_transfer_id, @@ -112,7 +122,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord 'product_count' => $er['product_replacement_count'], 'product_price' => $er['product_price'], 'product_self_cost' => $er['product_self_cost'], - 'product_replacement_id' => Products1c::findOne(['name' => $er['product_replacement_id']])->id ?? $er['product_replacement_id'], + 'product_replacement_id' => $productReplacementId ?? '', 'product_replacement_count' => $er['product_replacement_count'], 'product_replacement_price' => $er['product_replacement_price'], 'product_replacement_self_cost' => $er['product_replacement_self_cost'], diff --git a/erp24/records/WaybillIncomingProducts.php b/erp24/records/WaybillIncomingProducts.php index 2dbcd71e..5acff155 100644 --- a/erp24/records/WaybillIncomingProducts.php +++ b/erp24/records/WaybillIncomingProducts.php @@ -140,4 +140,8 @@ class WaybillIncomingProducts extends \yii\db\ActiveRecord { return $this->hasOne(WaybillIncoming::class, ['id' => 'waybill_incoming_id']); } + + public function getProduct() { + return $this->hasOne(Products1c::class, ['id' => 'product_id']); + } } diff --git a/erp24/records/WaybillWriteOffsProducts.php b/erp24/records/WaybillWriteOffsProducts.php index 508cc733..87173039 100644 --- a/erp24/records/WaybillWriteOffsProducts.php +++ b/erp24/records/WaybillWriteOffsProducts.php @@ -141,4 +141,8 @@ class WaybillWriteOffsProducts extends \yii\db\ActiveRecord { return $this->hasOne(WaybillWriteOffs::class, ['id' => 'waybill_write_offs_id']); } + + public function getProduct() { + return $this->hasOne(Products1c::class, ['id' => 'product_id']); + } } diff --git a/erp24/views/shift-transfer/_replacement.php b/erp24/views/shift-transfer/_replacement.php index 8bad3806..49d12a91 100644 --- a/erp24/views/shift-transfer/_replacement.php +++ b/erp24/views/shift-transfer/_replacement.php @@ -7,6 +7,7 @@ use unclead\multipleinput\MultipleInput; use yii\data\ArrayDataProvider; use yii\helpers\Html; use yii\helpers\Url; +use yii_app\records\Products1c; use yii_app\records\ShiftTransfer; use yii\widgets\ActiveForm; @@ -23,7 +24,7 @@ $writeOffsBalance = \yii_app\records\WaybillWriteOffs::findOne(['shift_transfer_ $incomingBalance = \yii_app\records\WaybillIncoming::findOne(['shift_transfer_id' => $shiftTransfer->id])->summ ?? 0; $form = \yii\widgets\ActiveForm::begin(); ?> - + ?>
'h4 font-weight-bold']); ?> @@ -68,9 +69,6 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'change' => new \yii\web\JsExpression('function() { setProductData.call(this); }'), ], ], - 'value' => function ($model) { - return $model->product->id ?? ''; - }, ], [ 'name' => 'product_price', @@ -118,9 +116,14 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO }'), ], ], - 'value' => function ($model) { - return $model->productReplacement->name ?? ''; + 'value' => function ($data) { + if (!empty($data)) { + $product = Products1c::findOne($data['product_replacement_id']); + return $product->name . ' (арт. ' . $product->articule . ')'; + } + return ''; }, + ], [ 'name' => 'product_replacement_price', @@ -196,7 +199,7 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'attribute' => 'product_id', 'label' => 'Товар', 'value' => function ($model) { - return $model->product->name; + return $model->product->name . ' (арт. ' . $model->product->articule . ')'; }, 'pageSummary' => Html::tag('b', 'Итого'), ], @@ -214,7 +217,7 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'attribute' => 'product_replacement_id', 'label' => 'Товар замена', 'value' => function ($model) { - return $model->productReplacement->name; + return $model->productReplacement->name . ' (арт. ' . $model->productReplacement->articule . ')'; } ], [ @@ -270,6 +273,9 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'label' => 'Товар', 'attribute' => 'name', 'pageSummary' => 'Итого:', + 'value' => function ($model) { + return $model->product->name . ' (арт. ' . $model->product->articule . ')'; + } ], [ 'label' => 'Количество товара', @@ -310,6 +316,9 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'label' => 'Товар', 'attribute' => 'name', 'pageSummary' => 'Итого:', + 'value' => function ($model) { + return $model->product->name . ' (арт. ' . $model->product->articule . ')'; + } ], [ 'label' => 'Количество товара', diff --git a/erp24/web/js/shift-transfer/replacement.js b/erp24/web/js/shift-transfer/replacement.js index a74a3121..7744833b 100644 --- a/erp24/web/js/shift-transfer/replacement.js +++ b/erp24/web/js/shift-transfer/replacement.js @@ -258,7 +258,7 @@ $('.field-shifttransfer-equalizationremains').on('input', '.list-cell__product_r $(window).on('load', function() { setTimeout(function() { $('.field-shifttransfer-equalizationremains [class$="-product_id"]').css('pointer-events', 'none'); - }, 5000); // Задержка в 1 секунду (можно настроить) + }, 5000); }); -- 2.39.5