]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-259 Доработка второго шага передачи смен
authormarina <m.zozirova@gmail.com>
Tue, 17 Dec 2024 11:29:54 +0000 (14:29 +0300)
committermarina <m.zozirova@gmail.com>
Tue, 17 Dec 2024 11:29:54 +0000 (14:29 +0300)
erp24/records/EqualizationRemains.php
erp24/views/shift-transfer/_replacement.php
erp24/web/js/shift-transfer/replacement.js

index 240797ec3cedf6e26c47b667b1cf6323ba2029fb..e191d9cf2ab29e815b9b98ad5ee425ad756b50bb 100644 (file)
@@ -31,6 +31,7 @@ use yii\helpers\ArrayHelper;
  */
 class EqualizationRemains extends \yii\db\ActiveRecord
 {
+
     /**
      * {@inheritdoc}
      */
index 69ed6106c4eabb81f61b8eaf960c4ee480b05ebe..cec108e4a4b53a92a74f022676a56d7fbd710e12 100644 (file)
@@ -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(); ?>
     <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>
 
 
@@ -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'
-            ]) . '&nbsp;&nbsp;' . Html::submitButton('Сохранить', [
-                'class' => 'btn btn-success float-right',
-                'name' => 'action',
-                'value' => 'save'
             ]);
+        if ($save) {
+            echo '&nbsp;&nbsp;' . Html::submitButton('Сохранить', [
+                    'class' => 'btn btn-success float-right',
+                    'name' => 'action',
+                    'value' => 'save'
+                ]);
+        } else {
+            echo  '&nbsp;&nbsp;' . Html::button('Выбрано цветков на замену больше чем нужно! Перепроверьте таблицу замен!', ['class' => 'btn btn-danger', 'onclick' => 'getElementById(\'equalization-remains-label\').scrollIntoView()']);
+        }
     }
 
     if (
index e8682129f0bfbf8f31aecf146082559e47c4b90c..1e15c05999d056a41bf04b88483311628beb8986 100644 (file)
@@ -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 () {
 });
 
 
+