/* @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'));
$form = \yii\widgets\ActiveForm::begin(); ?>
<div class="row py-2">
<div class="col-2">
- <?= Html::label('Таблица замен', null, ['class' => 'h4 font-weight-bold']); ?>
+ <?= Html::label('Таблица замен', null, ['class' => 'h4 font-weight-bold', 'id' => 'equalization-remains-label']); ?>
</div>
}
return '';
},
-
],
[
'name' => 'product_replacement_price',
}
],
],
+ '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}',
]);
'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 (
});
}
-// Функция для очистки всех полей в строке
function clearFields($this) {
const index = $this.closest('tr').data('index');
console.log('Clearing fields for index:', index);
return;
}
-
var productReplacementName = $('#shifttransfer-equalizationremains-' + rowId + '-product_id').val();
var productName = $('#shifttransfer-equalizationremains-' + rowId + '-product_replacement_id').val();
var shiftTransferId = getUrlParameter('id');
});
+