From 313eebcb65a68296f269f047b325e4e99e34b6ad Mon Sep 17 00:00:00 2001 From: marina Date: Tue, 17 Dec 2024 14:29:54 +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/records/EqualizationRemains.php | 1 + erp24/views/shift-transfer/_replacement.php | 45 ++++++++++++++++++--- erp24/web/js/shift-transfer/replacement.js | 3 +- 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/erp24/records/EqualizationRemains.php b/erp24/records/EqualizationRemains.php index 240797ec..e191d9cf 100644 --- a/erp24/records/EqualizationRemains.php +++ b/erp24/records/EqualizationRemains.php @@ -31,6 +31,7 @@ use yii\helpers\ArrayHelper; */ class EqualizationRemains extends \yii\db\ActiveRecord { + /** * {@inheritdoc} */ diff --git a/erp24/views/shift-transfer/_replacement.php b/erp24/views/shift-transfer/_replacement.php index 69ed6106..cec108e4 100644 --- a/erp24/views/shift-transfer/_replacement.php +++ b/erp24/views/shift-transfer/_replacement.php @@ -17,6 +17,9 @@ use yii\widgets\ActiveForm; /* @var $isAcceptance bool */ /* @var $products array */ + +global $save; +$save = true; $this->registerJsFile('/js/shift-transfer/replacement.js', ['position' => \yii\web\View::POS_END]); $totalBalance = array_sum(array_column($shiftTransfer->equalizationRemains, 'balance')); @@ -26,7 +29,7 @@ $incomingBalance = \yii_app\records\WaybillIncoming::findOne(['shift_transfer_id $form = \yii\widgets\ActiveForm::begin(); ?>
- 'h4 font-weight-bold']); ?> + 'h4 font-weight-bold', 'id' => 'equalization-remains-label']); ?>
@@ -122,7 +125,6 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO } return ''; }, - ], [ 'name' => 'product_replacement_price', @@ -251,6 +253,32 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO } ], ], + 'rowOptions' => function ($model) use ($save) { + global $save; + $productCount = \yii_app\records\ShiftRemains::find() + ->andWhere(['product_guid' => $model->product_id]) + ->andWhere(['shift_transfer_id' => $model->shift_transfer_id]) + ->select('fact_and_1c_diff') + ->scalar(); + + $sum = \yii_app\records\EqualizationRemains::find() + ->andWhere(['shift_transfer_id' => $model->shift_transfer_id]) + ->andWhere(['product_id' => $model->product_id]) + ->select(['sum(product_replacement_count)']) + ->scalar(); + + Yii::info("Product count: $productCount, Sum: $sum", __METHOD__); + + $class = ''; + + if ($sum > abs($productCount)) { + $save = false; + $class = 'bg-danger'; + } + + return ['class' => $class]; + }, + 'id' => 'equalization_remains_table', 'showPageSummary' => true, 'layout' => '{items}', ]); @@ -350,11 +378,16 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'class' => 'btn btn-primary float-right', 'name' => 'action', 'value' => 'rejection' - ]) . '  ' . Html::submitButton('Сохранить', [ - 'class' => 'btn btn-success float-right', - 'name' => 'action', - 'value' => 'save' ]); + if ($save) { + echo '  ' . Html::submitButton('Сохранить', [ + 'class' => 'btn btn-success float-right', + 'name' => 'action', + 'value' => 'save' + ]); + } else { + echo '  ' . Html::button('Выбрано цветков на замену больше чем нужно! Перепроверьте таблицу замен!', ['class' => 'btn btn-danger', 'onclick' => 'getElementById(\'equalization-remains-label\').scrollIntoView()']); + } } if ( diff --git a/erp24/web/js/shift-transfer/replacement.js b/erp24/web/js/shift-transfer/replacement.js index e8682129..1e15c059 100644 --- a/erp24/web/js/shift-transfer/replacement.js +++ b/erp24/web/js/shift-transfer/replacement.js @@ -69,7 +69,6 @@ function setProductData() { }); } -// Функция для очистки всех полей в строке function clearFields($this) { const index = $this.closest('tr').data('index'); console.log('Clearing fields for index:', index); @@ -226,7 +225,6 @@ function setDynamicMaxValue(inputElement, rowId) { return; } - var productReplacementName = $('#shifttransfer-equalizationremains-' + rowId + '-product_id').val(); var productName = $('#shifttransfer-equalizationremains-' + rowId + '-product_replacement_id').val(); var shiftTransferId = getUrlParameter('id'); @@ -275,3 +273,4 @@ $(window).on('load', function () { }); + -- 2.39.5