]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-259 Доработка второго шага передачи смен
authormarina <m.zozirova@gmail.com>
Tue, 10 Dec 2024 11:09:17 +0000 (14:09 +0300)
committermarina <m.zozirova@gmail.com>
Tue, 10 Dec 2024 11:09:17 +0000 (14:09 +0300)
erp24/commands/CronController.php
erp24/controllers/ShiftTransferController.php
erp24/migrations/m241210_102844_change_column_name_on_equalization_remains.php [new file with mode: 0644]
erp24/records/EqualizationRemains.php
erp24/records/ReplacementInvoiceProducts.php
erp24/records/ShiftTransfer.php
erp24/records/StoreBalance.php
erp24/views/shift-transfer/_replacement.php
erp24/views/store-balance/index.php
erp24/views/store-balance/view.php

index 574a3fccc86c6152e73fa8949eb7362588dc3885..de17fde3ea1ddf5e698ac9e563abe184a08382b4 100644 (file)
@@ -5,6 +5,11 @@ namespace yii_app\commands;
 use Yii;
 use yii\console\Controller;
 use yii\db\Expression;
+use yii_app\records\EqualizationRemains;
+use yii_app\records\Product1cReplacement;
+use yii_app\records\Products1c;
+use yii_app\records\ReplacementInvoice;
+use yii_app\records\ReplacementInvoiceProducts;
 
 class CronController extends Controller
 {
@@ -91,6 +96,49 @@ class CronController extends Controller
         return 'ok';
     }
 
+//    public function actionCreateResortings() {
+//пересортица
+//        $req_id=time();
+//
+//        $replacementInvoice = ReplacementInvoice::findAll(['date' => date('Y-m-d' - '1 days')]);
+//        if (!empty($replacementInvoice)) {
+//            $replacementData = ReplacementInvoiceProducts::findAll(['replacement_invoice_id' => $replacementInvoice[0]->id]);
+//
+//            $items = [];
+//            foreach ($replacementData as $replacement) {
+//                //equalization_remains
+//                $product = Products1c::findOne(['id' => $replacement->product_id]);
+//                $replacement = Product1cReplacement::find()->andWhere(['guid' => $replacement->product_id])->select('guid_replacement')->column();
+//                array_intersect()
+//                $productReplacement = Products1c::findOne(['id' => $replacement->product_id]);
+//
+//                $items[] = [
+//
+//                    //products_1c_additional_characteristics
+//                    'product_id' => $replacement->product_id,
+//                    'color' => $replacement->color,
+//                    'price' => $replacement->price,
+//                    'new_product_id' => $replacement->new_product_id,
+//                    'new_color' => $replacement->new_color,
+//                    'new_price' => $replacement->new_price,
+//                    'quantity' => $replacement->quantity,
+//                ];
+//            }
+//
+//            $json_post = json_encode([
+//                'request_id' => $req_id,
+//                'id' => $replacementInvoice[0]->number,
+//                'store_id' => $replacementInvoice[0]->store_guid,
+//                'comment' => $replacementInvoice[0]->comment,
+//                'items' => $items
+//            ]);
+//        }
+//
+//        $this->setApiCron($req_id, $json_post);
+//
+//        return 'ok';
+//    }
+
 
     public function actionBalanceHistory() {
         $data = Yii::$app->db->createCommand("SELECT * FROM balances")->queryAll();
index 36362a9cee11847554476346b247f547cff6a255..ce8298a57578b3334b29484d6095dab0c457ab5d 100644 (file)
@@ -186,8 +186,11 @@ class ShiftTransferController extends Controller
             } elseif ($action === 'save') {
                 $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_READY_TO_ACCEPT]);
                 EqualizationRemains::updateData(Yii::$app->request->post()['ShiftTransfer']['equalizationRemains'], $id);
-            } elseif ($action === 'rejection') {
+            } elseif ($action === 'rejection' || $action === 'back') {
                 $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS]);
+                //удаление данных из табличек с плюсом и минусом
+            } elseif ($action === 'resume') {
+                //формирование табличек с минусом и плюсом
             }
 
             $this->redirect(Yii::$app->request->referrer);
diff --git a/erp24/migrations/m241210_102844_change_column_name_on_equalization_remains.php b/erp24/migrations/m241210_102844_change_column_name_on_equalization_remains.php
new file mode 100644 (file)
index 0000000..f2c87a6
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m241210_102844_change_column_name_on_equalization_remains
+ */
+class m241210_102844_change_column_name_on_equalization_remains extends Migration
+{
+    /**
+     * {@inheritdoc}
+     */
+
+    public function safeUp()
+    {
+        if ($this->db->getTableSchema('erp24.equalization_remains', true)->getColumn('shift_id') !== null) {
+            $this->renameColumn('erp24.equalization_remains', 'shift_id', 'shift_transfer_id');
+        }
+
+        if ($this->db->getTableSchema('erp24.store_balance', true)->getColumn('shift_id') !== null) {
+            $this->renameColumn('erp24.store_balance', 'shift_id', 'shift_transfer_id');
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        if ($this->db->getTableSchema('erp24.equalization_remains', true)->getColumn('shift_transfer_id') !== null) {
+            $this->renameColumn('erp24.equalization_remains', 'shift_transfer_id', 'shift_id');
+        }
+
+        if ($this->db->getTableSchema('erp24.store_balance', true)->getColumn('shift_id') !== null) {
+            $this->renameColumn('erp24.store_balance', 'shift_transfer_id', 'shift_id');
+        }
+    }
+}
index 90cd3c3251bac6407b6dae1ef6c1d220db7f5e6a..3762ea0f9495f0e9c93ef797090356baefa5eba2 100644 (file)
@@ -12,7 +12,7 @@ use yii\db\Expression;
  * This is the model class for table "equalization_remains".
  *
  * @property int $id ID записи
- * @property int $shift_id ID записи передачи смены
+ * @property int $shift_transfer_id ID записи передачи смены
  * @property string $product_id ID товара с недостатком
  * @property float $product_count Количество товара с недостатком
  * @property float $product_price Цена товара розничная
@@ -62,7 +62,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord
     public function rules()
     {
         return [
-            [['shift_id', 'created_by', 'updated_by'], 'integer'],
+            [['shift_transfer_id', 'created_by', 'updated_by'], 'integer'],
             [['product_count', 'product_price', 'product_self_cost', 'product_replacement_count', 'product_replacement_price', 'product_replacement_self_cost', 'balance', 'balance_self_cost'], 'number'],
             [['product_count', 'product_price', 'product_self_cost', 'product_replacement_count', 'product_replacement_price', 'product_replacement_self_cost', 'balance', 'balance_self_cost'], 'required'],
             [['created_at', 'updated_at'], 'safe'],
@@ -77,7 +77,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord
     {
         return [
             'id' => 'ID записи',
-            'shift_id' => 'ID записи передачи смены',
+            'shift_transfer_id' => 'ID записи передачи смены',
             'product_id' => 'ID товара с недостатком',
             'product_count' => 'Количество товара с недостатком',
             'product_price' => 'Цена товара розничная',
@@ -95,8 +95,8 @@ class EqualizationRemains extends \yii\db\ActiveRecord
         ];
     }
 
-    public static function updateData($equalizationRemains, int $shift_id) {
-        self::deleteAll(['shift_id' => $shift_id]);
+    public static function updateData($equalizationRemains, int $shift_transfer_id) {
+        self::deleteAll(['shift_transfer_id' => $shift_transfer_id]);
 
         if (!is_array($equalizationRemains) || empty($equalizationRemains)) {
             return;
@@ -105,7 +105,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord
         foreach ($equalizationRemains as $er) {
             $equalizationRemain = new EqualizationRemains();
             $equalizationRemain->setAttributes([
-                'shift_id' => $shift_id,
+                'shift_id' => $shift_transfer_id,
                 'product_id' => $er['product_id'],
                 'product_count' => $er['product_replacement_count'],
                 'product_price' => $er['product_price'],
@@ -178,7 +178,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord
      */
     public function getShiftTransfer()
     {
-        return $this->hasMany(ShiftTransfer::class, ['id' => 'shift_id']);
+        return $this->hasMany(ShiftTransfer::class, ['id' => 'shift_transfer_id']);
     }
 
     /**
index c06dfbb5b08445e036bc059a4eebff8fe74dfcf1..06fbd10d24c595dfdc2b59e67127d41691073e4a 100644 (file)
@@ -69,7 +69,7 @@ class ReplacementInvoiceProducts extends \yii\db\ActiveRecord
 
     public static function setData($replacementInvoice, $shiftTransfer)
     {
-        $equalizationRemains = EqualizationRemains::findAll(['shift_id' => $shiftTransfer->id]);
+        $equalizationRemains = EqualizationRemains::findAll(['shift_transfer_id' => $shiftTransfer->id]);
         foreach ($equalizationRemains as $equalizationRemain) {
             $incoming = new self();
             $incoming->setAttributes([
index 05867dd4b6c98eeddff1971018f4acbbe5b4d48c..1ab7ece76e86fb5176f2328c21b21f5cce317c08 100644 (file)
@@ -28,6 +28,7 @@ class ShiftTransfer extends \yii\db\ActiveRecord
 
     const STATUS_ID_INPUT_FACT_REMAINS = 1;
     const STATUS_ID_TRANSFER_ACTIONS = 2;
+    const STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES = 5;
     const STATUS_ID_READY_TO_ACCEPT = 3;
     const STATUS_ID_ACCEPTED = 4;
 
@@ -37,6 +38,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татус формирования излишков и недостачи',
         ];
     }
 
@@ -96,6 +98,6 @@ class ShiftTransfer extends \yii\db\ActiveRecord
      */
     public function getEqualizationRemains()
     {
-        return $this->hasMany(EqualizationRemains::class, ['shift_id' => 'id']);
+        return $this->hasMany(EqualizationRemains::class, ['shift_transfer_id' => 'id']);
     }
 }
index 61ed1f832a052a992243df25f1b9945b7e038078..6a8d88a1baf727b10f5b7b4ad80b70394121445b 100644 (file)
@@ -9,7 +9,7 @@ use Yii;
  *
  * @property int $id
  * @property string $store_id GUID магазина
- * @property int $shift_id ID смены по передаче актуальных остатков
+ * @property int $shift_transfer_id ID смены по передаче актуальных остатков
  * @property string $date дата и время внесения
  * @property float $amount Сумма остатков (недостача или излишек) =remains_summ из shift_remains
  * @property int $status_id статус запись 0 новая 1 в работе (требует разбирательств) 2 проверено
@@ -38,7 +38,7 @@ class StoreBalance extends \yii\db\ActiveRecord
     public static function setData($shiftTransfer)
     {
         $equalizationData = EqualizationRemains::find()
-            ->where(['shift_id' => $shiftTransfer->id])
+            ->where(['shift_transfer_id' => $shiftTransfer->id])
             ->leftJoin('products_1c AS product', 'product.id = equalization_remains.product_id')
             ->leftJoin('products_1c AS product_replacement', 'product_replacement.id = equalization_remains.product_replacement_id')
             ->select([
@@ -60,15 +60,15 @@ class StoreBalance extends \yii\db\ActiveRecord
 
         $articule = implode(';', array_map(fn($equalizationRemain) =>
                 $equalizationRemain->product->articule . '=>' . $equalizationRemain->productReplacement->articule,
-                EqualizationRemains::findAll(['shift_id' => $shiftTransfer->id]))) ?? '' . ';';
+                EqualizationRemains::findAll(['shift_transfer_id' => $shiftTransfer->id]))) ?? '' . ';';
 
         $model = new self();
         $model->setAttributes([
             'store_id' => $shiftTransfer->store_guid,
-            'shift_id' => $shiftTransfer->id,
+            'shift_transfer_id' => $shiftTransfer->id,
             'date' => $shiftTransfer->date,
             'amount' => EqualizationRemains::find()
-                ->where(['shift_id' => $shiftTransfer->id])
+                ->where(['shift_transfer_id' => $shiftTransfer->id])
                 ->select(['SUM(balance) AS total_balance'])
                 ->scalar() ?? '',
             'status_id' => self::STATUS_NEW,
@@ -90,9 +90,9 @@ class StoreBalance extends \yii\db\ActiveRecord
     public function rules()
     {
         return [
-            [['store_id', 'shift_id', 'date', 'amount', 'status_id', 'type_id'], 'required'],
-            [['shift_id', 'status_id', 'controler_id', 'type_id'], 'default', 'value' => null],
-            [['shift_id', 'status_id', 'controler_id', 'type_id'], 'integer'],
+            [['store_id', 'shift_transfer_id', 'date', 'amount', 'status_id', 'type_id'], 'required'],
+            [['shift_transfer_id', 'status_id', 'controler_id', 'type_id'], 'default', 'value' => null],
+            [['shift_transfer_id', 'status_id', 'controler_id', 'type_id'], 'integer'],
             [['date'], 'safe'],
             [['amount'], 'number'],
             [['comment', 'json', 'replace_articule', 'comment_controler'], 'string'],
@@ -108,7 +108,7 @@ class StoreBalance extends \yii\db\ActiveRecord
         return [
             'id' => 'ID',
             'store_id' => 'GUID магазина',
-            'shift_id' => 'ID смены',
+            'shift_transfer_id' => 'ID смены',
             'date' => 'Дата и время внесения',
             'amount' => 'Сумма остатков',
             'status_id' => 'Статус записи',
index 03a5111710c83915ea4f466b08b2aa39c725c2ed..2813c96119d79070b92835222293e343025ed81a 100644 (file)
@@ -141,11 +141,12 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
         'iconSource' => 'fa',
     ])->label('Таблица возможных замен');
 
-    echo $btn = Html::submitButton('СоÑ\85Ñ\80анить', [
+    echo $btn = Html::submitButton('Ð\9fÑ\80одолжить', [
         'class' => 'btn btn-primary float-right',
         'name' => 'action',
-        'value' => 'save'
+        'value' => 'resume'
     ]);
+
 } else {
     echo Html::label('Таблица возможных замен');
     echo GridView::widget([
@@ -222,6 +223,17 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
         'layout' => '{items}',
     ]);
 
+    //гридвью с двумя таблицами(плюс и минус)
+
+    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'
+        ]);
+    }
+
     if (
         \yii_app\records\AdminStores::find()->andWhere(['store_guid' => $shiftTransfer->store_guid, 'admin_id' => Yii::$app->user->id])->exists()
         && $shiftTransfer->status_id == ShiftTransfer::STATUS_ID_READY_TO_ACCEPT
index 523b81532bf1e5c0a9e21719b2dca0a142aa36b4..9beee42c6668ae5235b5993ae034431c10068162 100644 (file)
@@ -27,10 +27,10 @@ $this->params['breadcrumbs'][] = $this->title;
                 }
             ],
             [
-                'attribute' => 'shift_id',
+                'attribute' => 'shift_transfer_id',
                 'format' => 'raw',
                 'value' => function ($model) {
-                    return \yii\helpers\Html::a("Передача смены #$model->shift_id", ['shift-transfer/view', 'id' => $model->shift_id]);
+                    return \yii\helpers\Html::a("Передача смены #$model->shift_transfer_id", ['shift-transfer/view', 'id' => $model->shift_transfer_id]);
                 }
             ],
             'date',
index 944ff06aa2a324e7c5e554a128a2e83f498521da..7dac8fd32f548bcfbbc61039ee70be190c9438d4 100644 (file)
@@ -30,9 +30,9 @@ $this->params['breadcrumbs'][] = $this->title;
                 }
             ],
             [
-                'attribute' => 'shift_id',
+                'attribute' => 'shift_transfer_id',
                 'value' => function ($model) {
-                    return Html::a("Передача смены #$model->shift_id", ['shift-transfer/view', 'id' => $model->shift_id]);
+                    return Html::a("Передача смены #$model->shift_transfer_id", ['shift-transfer/view', 'id' => $model->shift_transfer_id]);
                 },
                 'format' => 'raw',
             ],