]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-259 Доработка второго шага передачи смен
authormarina <m.zozirova@gmail.com>
Thu, 12 Dec 2024 14:32:49 +0000 (17:32 +0300)
committermarina <m.zozirova@gmail.com>
Thu, 12 Dec 2024 14:32:49 +0000 (17:32 +0300)
erp24/controllers/ShiftTransferController.php
erp24/records/ShiftRemains.php
erp24/records/ShiftTransfer.php
erp24/records/WaybillIncoming.php
erp24/records/WaybillIncomingProducts.php
erp24/records/WaybillWriteOffs.php
erp24/records/WaybillWriteOffsProducts.php
erp24/views/shift-transfer/_replacement.php
erp24/web/js/shift-transfer/replacement.js

index 8e2bb167f057f3f3c7be8277639d8ce06dea0b47..afe87bea28e17f9f6b93a7322b1263e26c0143ff 100644 (file)
@@ -26,6 +26,8 @@ use yii_app\records\Shift;
 use yii_app\records\ShiftRemains;
 use yii_app\records\ShiftTransfer;
 use yii_app\records\StoreBalance;
+use yii_app\records\WaybillIncoming;
+use yii_app\records\WaybillWriteOffs;
 use yii_app\services\TaskService;
 
 class ShiftTransferController extends Controller
@@ -251,15 +253,19 @@ class ShiftTransferController extends Controller
                 StoreBalance::setData($model);
             } elseif ($action === 'save') {
                 $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_READY_TO_ACCEPT]);
-                EqualizationRemains::updateData(Yii::$app->request->post()['ShiftTransfer']['equalizationRemains'], $id);
+                WaybillWriteOffs::updateAll(['active' => WaybillWriteOffs::INACTIVE, 'shift_transfer_id' => $model->id]);
             } elseif ($action == 'recalculate') {
                 EqualizationRemains::setData($model);
                 Yii::$app->session->setFlash('success', 'Таблица замен успешно перерасчитана');
-            } elseif ($action === 'rejection' || $action === 'back') {
+            } elseif ($action === 'rejection') {
                 $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS]);
-                //удаление данных из табличек с плюсом и минусом
+                WaybillWriteOffs::deleteAll(['shift_transfer_id' => $model->id]);
+                WaybillIncoming::deleteAll(['shift_transfer_id' => $model->id]);
             } elseif ($action === 'resume') {
-                //формирование табличек с минусом и плюсом
+                $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES]);
+                EqualizationRemains::updateData(Yii::$app->request->post()['ShiftTransfer']['equalizationRemains'], $id);
+                WaybillIncoming::setData($model);
+                WaybillWriteOffs::setData($model);
             }
 
             $this->redirect(Yii::$app->request->referrer);
index f4c9aa04488d000e81bb3c7feb5b01b1a9a38e53..23a6347f560d44f6bce6579c28ad12b49d4e7e2d 100644 (file)
@@ -70,4 +70,10 @@ class ShiftRemains extends \yii\db\ActiveRecord
             'type' => 'Тип записи',
         ];
     }
+
+    public function getProduct()
+    {
+        return $this->hasOne(Products1c::class, ['id' => 'product_guid']);
+    }
+
 }
index a9eade5675adb1e8856abddddd4c1d2d7cf31bc0..41df4bbb6957dbb20757bb0d1159fcf3ea86f8d9 100644 (file)
@@ -41,7 +41,7 @@ class ShiftTransfer extends \yii\db\ActiveRecord
             self::STATUS_ID_TRANSFER_ACTIONS => 'Действия по замене',
             self::STATUS_ID_READY_TO_ACCEPT => 'Готова к принятию',
             self::STATUS_ID_ACCEPTED => 'Принято',
-            self::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES => 'Cтатус формирования излишков и недостачи',
+            self::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES => 'Формирования излишков и недостачи',
         ];
     }
 
index 167227e69fb8c28de37db5a0f9348a79d4eda700..b6a7eb6b2c7ab6d81733f1c13d41108a5a4b2445 100644 (file)
@@ -3,6 +3,10 @@
 namespace yii_app\records;
 
 use Yii;
+use yii\behaviors\BlameableBehavior;
+use yii\behaviors\TimestampBehavior;
+use yii\db\Expression;
+use yii_app\helpers\DataHelper;
 
 /**
  * This is the model class for table "waybill_incoming".
@@ -31,6 +35,9 @@ use Yii;
  */
 class WaybillIncoming extends \yii\db\ActiveRecord
 {
+    public const ACTIVE = 1;
+    public const INACTIVE = 2;
+    public const NEW = 1;
     /**
      * {@inheritdoc}
      */
@@ -45,8 +52,8 @@ class WaybillIncoming extends \yii\db\ActiveRecord
     public function rules()
     {
         return [
-            [['guid', 'created_admin_id', 'store_id', 'store_guid', 'number', 'date', 'quantity', 'summ', 'created_at'], 'required'],
-            [['shift_transfer_id', 'status', 'created_admin_id', 'updated_admin_id', 'store_id', 'active', 'deleted_admin_id'], 'default', 'value' => null],
+            [['guid', 'store_id', 'store_guid', 'date', 'quantity', 'summ'], 'required'],
+            [['shift_transfer_id', 'status', 'created_admin_id', 'updated_admin_id', 'store_id', 'number', 'active', 'deleted_admin_id'], 'default', 'value' => null],
             [['shift_transfer_id', 'status', 'created_admin_id', 'updated_admin_id', 'store_id', 'active', 'deleted_admin_id'], 'integer'],
             [['date', 'created_at', 'updated_at', 'deleted_at', 'send_at'], 'safe'],
             [['comment'], 'string'],
@@ -56,6 +63,25 @@ class WaybillIncoming extends \yii\db\ActiveRecord
         ];
     }
 
+
+    public function behaviors()
+    {
+        return [
+            [
+                'class' => TimestampBehavior::class,
+                'createdAtAttribute' => 'created_at',
+                'updatedAtAttribute' => 'updated_at',
+                'value' => new Expression('NOW()'),
+            ],
+            [
+                'class' => BlameableBehavior::class,
+                'createdByAttribute' => 'created_admin_id',
+                'updatedByAttribute' => 'updated_admin_id',
+            ],
+        ];
+    }
+
+
     /**
      * {@inheritdoc}
      */
@@ -86,7 +112,57 @@ class WaybillIncoming extends \yii\db\ActiveRecord
         ];
     }
 
-    public function getShiftTransfer() {
+    public function getShiftTransfer()
+    {
         return $this->hasOne(ShiftTransfer::class, ['id' => 'shift_transfer_id']);
     }
+
+    public static function setData($shiftTransfer)
+    {
+        $model = new self();
+
+        $model->setAttributes([
+            'guid' =>  DataHelper::createGuidMy(),
+            'shift_transfer_id' => $shiftTransfer->id,
+            'status' => self::NEW,
+            'store_id' => array_flip(array_map('strval', CityStore::getAllActiveGuidId()))[$shiftTransfer->store_guid],
+            'store_guid' => $shiftTransfer->store_guid,
+            'date' => $shiftTransfer->date,
+            'comment' => $shiftTransfer->comment,
+            'quantity' => 0,
+            'summ' => 0,
+            'summ_self_cost' => 0,
+            'active' => self::INACTIVE,
+        ]);
+
+        if ($model->validate()) {
+            $model->save();
+
+            $model->updateAttributes([
+                'number' => 'ЕРП_ПС_' . date("Y-m-d_H-i") . '_' . $model->id
+            ]);
+
+            WaybillIncomingProducts::setData($model, $shiftTransfer);
+
+            $summaries = WaybillIncomingProducts::find()
+                ->andWhere(['waybill_incoming_id' => $model->id])
+                ->select([
+                    'total_product_count' => 'sum(product_count)',
+                    'total_summ' => 'sum(summ)',
+                    'total_summ_self_cost' => 'sum(summ_self_cost)'
+                ])
+                ->asArray()
+                ->one();
+
+            if ($summaries) {
+                $model->updateAttributes([
+                    'quantity' => $summaries['total_product_count'],
+                    'summ' => $summaries['total_summ'],
+                    'summ_self_cost' => $summaries['total_summ_self_cost']
+                ]);
+            }
+        } else {
+            var_dump($model->getErrors());
+        }
+    }
 }
index 889509ed79a1795d93a1091e39cfb71a24a414c2..7b6cf5e834cb9c4c0d0c90d430b5675e907dae77 100644 (file)
@@ -2,7 +2,8 @@
 
 namespace yii_app\records;
 
-use Yii;
+use yii\behaviors\TimestampBehavior;
+use yii\db\Expression;
 
 /**
  * This is the model class for table "waybill_incoming_products".
@@ -31,13 +32,25 @@ class WaybillIncomingProducts extends \yii\db\ActiveRecord
         return 'waybill_incoming_products';
     }
 
+    public function behaviors()
+    {
+        return [
+            [
+                'class' => TimestampBehavior::class,
+                'createdAtAttribute' => 'created_at',
+                'updatedAtAttribute' => 'updated_at',
+                'value' => new Expression('NOW()'),
+            ]
+        ];
+    }
+
     /**
      * {@inheritdoc}
      */
     public function rules()
     {
         return [
-            [['waybill_incoming_id', 'name', 'summ', 'created_at'], 'required'],
+            [['waybill_incoming_id', 'name', 'summ'], 'required'],
             [['waybill_incoming_id'], 'default', 'value' => null],
             [['waybill_incoming_id'], 'integer'],
             [['product_count', 'product_price', 'product_self_cost', 'summ', 'summ_self_cost'], 'number'],
@@ -48,6 +61,52 @@ class WaybillIncomingProducts extends \yii\db\ActiveRecord
         ];
     }
 
+    public static function setData($waybillIncoming, $shiftTransfer)
+    {
+        $items = ShiftRemains::find()
+            ->andWhere(['shift_transfer_id' => $shiftTransfer->id])
+            ->andWhere(['>', 'fact_and_1c_diff', 0])
+            ->all();
+
+        foreach ($items as $item) {
+            $itemCount = abs($item->fact_and_1c_diff);
+            $er = EqualizationRemains::findOne([
+                'shift_transfer_id' => $shiftTransfer->id,
+                'product_id' => $item->product_guid
+            ]);
+
+            if ($er) {
+                if ($er->product_count == $itemCount) {
+                    return;
+                }
+
+                $count = $er->product_count < $itemCount
+                    ? $itemCount - $er->product_count
+                    : $er->product_count;
+            } else {
+                $count = $itemCount;
+            }
+
+            $model = new self();
+            $model->setAttributes([
+                'waybill_incoming_id' => $waybillIncoming->id,
+                'name' => $item->product->name,
+                'product_id' => $item->product_guid,
+                'product_count' => abs($count),
+                'product_price' => $item->retail_price,
+                'product_self_cost' => $item->self_cost,
+                'summ' => $count * $item->retail_price,
+                'summ_self_cost' => $count *  $item->self_cost,
+            ]);
+
+            if ($model->validate()) {
+                $model->save();
+            } else {
+                var_dump($model->getErrors());die();
+            }
+        }
+    }
+
     /**
      * {@inheritdoc}
      */
index 95121c61b73c0795820408796d39199b1a013f7e..70734efb880333c120f5711306fe318739c2374e 100644 (file)
@@ -3,6 +3,10 @@
 namespace yii_app\records;
 
 use Yii;
+use yii\behaviors\BlameableBehavior;
+use yii\behaviors\TimestampBehavior;
+use yii\db\Expression;
+use yii_app\helpers\DataHelper;
 
 /**
  * This is the model class for table "waybill_write_offs".
@@ -36,6 +40,10 @@ use Yii;
  */
 class WaybillWriteOffs extends \yii\db\ActiveRecord
 {
+    public const ACTIVE = 1;
+    public const INACTIVE = 2;
+    public const NEW = 1;
+
     /**
      * {@inheritdoc}
      */
@@ -50,18 +58,35 @@ class WaybillWriteOffs extends \yii\db\ActiveRecord
     public function rules()
     {
         return [
-            [['guid', 'created_admin_id', 'store_id', 'store_guid', 'number', 'date', 'quantity', 'summ', 'created_at'], 'required'],
-            [['shift_transfer_id', 'status', 'created_admin_id', 'updated_admin_id', 'confirm_admin_id', 'store_id', 'active', 'deleted_admin_id'], 'default', 'value' => null],
-            [['shift_transfer_id', 'status', 'created_admin_id', 'updated_admin_id', 'confirm_admin_id', 'store_id', 'active', 'deleted_admin_id'], 'integer'],
+            [['guid', 'store_id', 'store_guid', 'date', 'quantity', 'summ'], 'required'],
+            [['shift_transfer_id', 'status', 'created_admin_id', 'updated_admin_id', 'store_id', 'active', 'deleted_admin_id'], 'default', 'value' => null],
+            [['shift_transfer_id', 'status', 'created_admin_id', 'updated_admin_id', 'store_id', 'active', 'deleted_admin_id'], 'integer'],
             [['date', 'created_at', 'updated_at', 'deleted_at', 'send_at'], 'safe'],
             [['comment'], 'string'],
             [['quantity', 'summ', 'summ_self_cost'], 'number'],
-            [['guid', 'store_guid', 'number', 'number_1c', 'confirm_at'], 'string', 'max' => 100],
+            [['guid', 'store_guid', 'number', 'number_1c'], 'string', 'max' => 100],
             [['guid'], 'unique'],
             [['shift_transfer_id'], 'exist', 'skipOnError' => true, 'targetClass' => ShiftTransfer::class, 'targetAttribute' => ['shift_transfer_id' => 'id']],
         ];
     }
 
+    public function behaviors()
+    {
+        return [
+            [
+                'class' => TimestampBehavior::class,
+                'createdAtAttribute' => 'created_at',
+                'updatedAtAttribute' => 'updated_at',
+                'value' => new Expression('NOW()'),
+            ],
+            [
+                'class' => BlameableBehavior::class,
+                'createdByAttribute' => 'created_admin_id',
+                'updatedByAttribute' => 'updated_admin_id',
+            ],
+        ];
+    }
+
     /**
      * {@inheritdoc}
      */
@@ -74,7 +99,6 @@ class WaybillWriteOffs extends \yii\db\ActiveRecord
             'status' => 'Статус документа',
             'created_admin_id' => 'Создан пользователем',
             'updated_admin_id' => 'Изменён пользователем',
-            'confirm_admin_id' => 'Подтвержден пользователем',
             'store_id' => 'id магазина в ERP',
             'store_guid' => 'GUID магазина из 1с',
             'number' => 'Название документа',
@@ -87,13 +111,61 @@ class WaybillWriteOffs extends \yii\db\ActiveRecord
             'created_at' => 'Дата создания',
             'updated_at' => 'Дата обновления',
             'deleted_at' => 'Дата удаление',
-            'confirm_at' => 'Дата подтверждения',
             'send_at' => 'Дата отправления в 1с',
             'active' => 'Активность',
             'deleted_admin_id' => 'Удален пользователем',
         ];
     }
 
+    public static function setData($shiftTransfer)
+    {
+        $model = new self();
+
+        $model->setAttributes([
+            'guid' =>  DataHelper::createGuidMy(),
+            'shift_transfer_id' => $shiftTransfer->id,
+            'status' => self::NEW,
+            'store_id' => array_flip(array_map('strval', CityStore::getAllActiveGuidId()))[$shiftTransfer->store_guid],
+            'store_guid' => $shiftTransfer->store_guid,
+            'date' => $shiftTransfer->date,
+            'comment' => $shiftTransfer->comment,
+            'quantity' => 0,
+            'summ' => 0,
+            'summ_self_cost' => 0,
+            'active' => self::INACTIVE,
+        ]);
+
+        if ($model->validate()) {
+            $model->save();
+
+            $model->updateAttributes([
+                'number' => 'ЕРП_ПС_' . date("Y-m-d_H-i") . '_' . $model->id
+            ]);
+
+            WaybillWriteOffsProducts::setData($model, $shiftTransfer);
+
+            $summaries = WaybillWriteOffsProducts::find()
+                ->andWhere(['waybill_write_offs_id' => $model->id])
+                ->select([
+                    'total_product_count' => 'sum(product_count)',
+                    'total_summ' => 'sum(summ)',
+                    'total_summ_self_cost' => 'sum(summ_self_cost)'
+                ])
+                ->asArray()
+                ->one();
+
+            if ($summaries) {
+                $model->updateAttributes([
+                    'quantity' => $summaries['total_product_count'],
+                    'summ' => $summaries['total_summ'],
+                    'summ_self_cost' => $summaries['total_summ_self_cost']
+                ]);
+            }
+        } else {
+            var_dump($model->getErrors());
+        }
+    }
+
     /**
      * Gets query for [[ShiftTransfer]].
      *
index 1b5762bd3c8d8264eec530afaeba4f968259bd35..c755cd2017cdafd3dc848f5cfcaf27815ec4a85e 100644 (file)
@@ -3,6 +3,8 @@
 namespace yii_app\records;
 
 use Yii;
+use yii\behaviors\TimestampBehavior;
+use yii\db\Expression;
 
 /**
  * This is the model class for table "waybill_write_offs_products".
@@ -31,13 +33,26 @@ class WaybillWriteOffsProducts extends \yii\db\ActiveRecord
         return 'waybill_write_offs_products';
     }
 
+    public function behaviors()
+    {
+        return [
+            [
+                'class' => TimestampBehavior::class,
+                'createdAtAttribute' => 'created_at',
+                'updatedAtAttribute' => 'updated_at',
+                'value' => new Expression('NOW()'),
+            ]
+        ];
+    }
+
+
     /**
      * {@inheritdoc}
      */
     public function rules()
     {
         return [
-            [['waybill_write_offs_id', 'name', 'summ', 'created_at'], 'required'],
+            [['waybill_write_offs_id', 'name', 'summ'], 'required'],
             [['waybill_write_offs_id'], 'default', 'value' => null],
             [['waybill_write_offs_id'], 'integer'],
             [['product_count', 'product_price', 'product_self_cost', 'summ', 'summ_self_cost'], 'number'],
@@ -48,6 +63,52 @@ class WaybillWriteOffsProducts extends \yii\db\ActiveRecord
         ];
     }
 
+    public static function setData($waybillWriteOffs, $shiftTransfer)
+    {
+        $items = ShiftRemains::find()
+            ->andWhere(['shift_transfer_id' => $shiftTransfer->id])
+            ->andWhere(['<', 'fact_and_1c_diff', 0])
+            ->all();
+
+        foreach ($items as $item) {
+            $itemCount = abs($item->fact_and_1c_diff);
+            $er = EqualizationRemains::findOne([
+                'shift_transfer_id' => $shiftTransfer->id,
+                'product_id' => $item->product_guid
+            ]);
+
+            if ($er) {
+                if ($er->product_count == $itemCount) {
+                    return;
+                }
+
+                $count = $er->product_count < $itemCount
+                    ? $itemCount - $er->product_count
+                    : $er->product_count;
+            } else {
+                $count = $itemCount;
+            }
+
+            $model = new self();
+            $model->setAttributes([
+                'waybill_write_offs_id' => $waybillWriteOffs->id,
+                'name' => $item->product->name,
+                'product_id' => $item->product_guid,
+                'product_count' => abs($count),
+                'product_price' => $item->retail_price,
+                'product_self_cost' => $item->self_cost,
+                'summ' => $count * $item->retail_price,
+                'summ_self_cost' => $count * $item->self_cost,
+            ]);
+
+            if ($model->validate()) {
+                $model->save();
+            } else {
+                var_dump($model->getErrors());die();
+            }
+        }
+    }
+
     /**
      * {@inheritdoc}
      */
index 57d87c63f005901cb6ddb4358c8e7a6f55b6fe99..4c54767afe1c7ac2240104015df9a05ddddd2d08 100644 (file)
@@ -19,13 +19,14 @@ use yii\widgets\ActiveForm;
 $this->registerJsFile('/js/shift-transfer/replacement.js', ['position' => \yii\web\View::POS_END]);
 
 $totalBalance = array_sum(array_column($shiftTransfer->equalizationRemains, 'balance'));
+$writeOffsBalance = \yii_app\records\WaybillWriteOffs::findOne(['shift_transfer_id' => $shiftTransfer->id])->summ ?? null;
+$incomingBalance = \yii_app\records\WaybillIncoming::findOne(['shift_transfer_id' => $shiftTransfer->id])->summ ?? null;
 
 $form = \yii\widgets\ActiveForm::begin(); ?>
 
-    <div class="row">
+    <div class="row py-2">
     <div class="col-2">
-
-        <?= Html::label('Таблица замен'); ?>
+        <?= Html::label('Таблица замен', null, ['class' => 'h4 font-weight-bold']); ?>
     </div>
 
 
@@ -180,7 +181,7 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
     </div>
     <?php
     echo GridView::widget([
-        'dataProvider' => new ArrayDataProvider([
+        'dataProvider' => new \yii\data\ArrayDataProvider([
             'allModels' => $shiftTransfer->equalizationRemains,
         ]),
         'showFooter' => true,
@@ -198,11 +199,6 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
                 'label' => 'Цена товара розничная',
                 'format' => 'raw',
             ],
-            [
-                'attribute' => 'product_self_cost',
-                'label' => 'Себестоимость товара',
-                'format' => 'raw',
-            ],
             [
                 'attribute' => 'product_replacement_id',
                 'label' => 'Товар замена',
@@ -215,17 +211,12 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
                 'label' => 'Цена товара замены розничная',
                 'format' => 'raw',
             ],
-            [
-                'attribute' => 'product_replacement_self_cost',
-                'label' => 'Себестоимость товара замены',
-                'format' => 'raw',
-            ],
             [
                 'attribute' => 'product_replacement_count',
                 'label' => 'Количество товара',
                 'format' => 'raw',
                 'pageSummary' => true,
-                'footer' => Html::tag('b', $totalBalance < 0 ? 'Недосдача: ' : 'Избыток: ')
+                'footer' => Html::tag('b', $totalBalance < 0 ? 'Недостача: ' : 'Избыток: ')
             ],
             [
                 'attribute' => 'balance',
@@ -234,12 +225,6 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
                 'pageSummary' => true,
                 'footer' => Html::tag('b', number_format($totalBalance, 2, '.', ' ')),
             ],
-            [
-                'attribute' => 'balance_self_cost',
-                'label' => 'Разница в сумме (Себестоимость)',
-                'format' => 'raw',
-                'pageSummary' => true,
-            ],
             [
                 'attribute' => 'updated_at',
                 'label' => 'Дата обновления записи',
@@ -256,16 +241,101 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
         'showPageSummary' => true,
         'layout' => '{items}',
     ]);
+    ?>
+    <?php if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES, ShiftTransfer::STATUS_ID_ACCEPTED, ShiftTransfer::STATUS_ID_READY_TO_ACCEPT])) : ?>
+        <div class="row py-2">
+            <?php echo Html::label('Таблица с недостачами', null, [
+                'class' => 'h4 font-weight-bold'
+            ]);
+            echo GridView::widget([
+                'dataProvider' => new \yii\data\ActiveDataProvider([
+                    'query' => \yii_app\records\WaybillWriteOffsProducts::find()
+                        ->andWhere(['waybill_write_offs_id' => \yii_app\records\WaybillWriteOffs::findOne(['shift_transfer_id' => $shiftTransfer->id])->id ?? null])
+                ]),
+                'showFooter' => true,
+                'columns' => [
+                    [
+                        'label' => 'Товар',
+                        'attribute' => 'name',
+                        'pageSummary' => 'Итого:',
+                    ],
+                    [
+                        'label' => 'Количество товара',
+                        'attribute' => 'product_count',
+                        'pageSummary' => true,
 
-    //гридвью с двумя таблицами(плюс и минус)
+                    ],
+                    [
+                        'label' => 'Цена товара',
+                        'attribute' => 'product_price',
+                        'pageSummary' => true,
+                        'footer' => Html::tag('b', 'Недостача: '),
+                    ],
+                    [
+                        'label' => 'Сумма',
+                        'attribute' => 'summ',
+                        'pageSummary' => true,
+                        'footer' => Html::tag('b', number_format($writeOffsBalance, 2, '.', ' ')),
+                    ],
+                ],
+                'showPageSummary' => true,
+                'layout' => '{items}',
+            ]);
+            ?>
+        </div>
+        <div class="row py-2">
+        <?php echo Html::label('Таблица с излишками', null, [
+            'class' => 'h4 font-weight-bold'
+        ]);
 
+        echo GridView::widget([
+            'dataProvider' => new \yii\data\ActiveDataProvider([
+                'query' => \yii_app\records\WaybillIncomingProducts::find()
+                    ->andWhere(['waybill_incoming_id' => \yii_app\records\WaybillIncoming::findOne(['shift_transfer_id' => $shiftTransfer->id])->id ?? null])
+            ]),
+            'showFooter' => true,
+            'columns' => [
+                [
+                    'label' => 'Товар',
+                    'attribute' => 'name',
+                    'pageSummary' => 'Итого:',
+                ],
+                [
+                    'label' => 'Количество товара',
+                    'attribute' => 'product_count',
+                    'pageSummary' => true,
+
+                ],
+                [
+                    'label' => 'Цена товара',
+                    'attribute' => 'product_price',
+                    'pageSummary' => true,
+                    'footer' => Html::tag('b', 'Излишек: '),
+                ],
+                [
+                    'label' => 'Сумма',
+                    'attribute' => 'summ',
+                    'pageSummary' => true,
+                    'footer' => Html::tag('b', number_format($incomingBalance, 2, '.', ' ')),
+                ],
+            ],
+            'showPageSummary' => true,
+            'layout' => '{items}',
+        ]); ?>
+    <?php endif; ?>
+    </div>
+    <?php
     if ($shiftTransfer->status_id == ShiftTransfer::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES
         && Yii::$app->user->id == $shiftTransfer->end_shift_admin_id) {
-        echo $btn = Html::submitButton('Сохранить', [
-            'class' => 'btn btn-primary float-right',
-            'name' => 'action',
-            'value' => 'save'
-        ]);
+        echo $btn = Html::submitButton('Назад', [
+                '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 (
@@ -274,7 +344,7 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
         && Yii::$app->user->id != $shiftTransfer->end_shift_admin_id
     ) {
         echo Html::submitButton('Принять', [
-                'class' => 'btn btn-primary float-right',
+                'class' => 'btn btn-success float-right',
                 'name' => 'action',
                 'value' => 'accept'
             ]) . '&nbsp;&nbsp;' . Html::submitButton('Отказ', [
index bcfc8b79c1d4b225367efea0a0d37f5c7c9e0a5e..cd7a6b8904e5433347df83796b17e784efb70b6f 100644 (file)
@@ -245,7 +245,7 @@ $('.field-shifttransfer-equalizationremains').on('input', '.list-cell__product_r
     var inputElement = $(this);
     var rowId = inputElement.closest('tr').index();
     var max = parseFloat($(inputElement).attr('max'));
-    var value = parseFloat($(inputElement).val()); 
+    var value = parseFloat($(inputElement).val());
 
     setDynamicMaxValue(inputElement, rowId);
 
@@ -255,6 +255,3 @@ $('.field-shifttransfer-equalizationremains').on('input', '.list-cell__product_r
     }
 });
 
-
-
-