]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-256 Сделать отправку документов Пересортица в 1с
authormarina <m.zozirova@gmail.com>
Thu, 19 Dec 2024 08:43:16 +0000 (11:43 +0300)
committermarina <m.zozirova@gmail.com>
Thu, 19 Dec 2024 08:43:16 +0000 (11:43 +0300)
erp24/records/ReplacementInvoice.php
erp24/records/StoreBalance.php
erp24/records/WaybillIncoming.php
erp24/records/WaybillWriteOffs.php
erp24/views/replacement-invoice/index.php
erp24/views/replacement-invoice/view.php
erp24/views/shift-transfer/_replacement.php

index 7b5629fe8cf767115c58e382287b224038d63e47..5e5f78a641ab4af396f931d8fca801a323eba2c5 100644 (file)
@@ -111,6 +111,13 @@ class ReplacementInvoice extends \yii\db\ActiveRecord
                 ->asArray()
                 ->one();
 
+            if (!ReplacementInvoiceProducts::find()
+                ->andWhere(['replacement_invoice_id' => $model->id])
+                ->exists()) {
+                $model->delete();
+                return;
+            }
+
             if ($summaries) {
                 $model->updateAttributes([
                     'quantity' => $summaries['total_product_count'],
index 307430619b00aebc1f22cf8c5974880e365a681c..10f5ef1ba43e789bd32e46ab877e1fc7dbb39e4f 100644 (file)
@@ -79,8 +79,75 @@ class StoreBalance extends \yii\db\ActiveRecord
             'type_id' => self::REPLACEMENT_ACTIONS,
         ]);
 
+        $incomingData = WaybillIncomingProducts::find()
+            ->alias('wip')
+            ->where(['waybill_incoming_id' => WaybillIncoming::findOne(['shift_transfer_id' => $shiftTransfer->id])->id ?? ''])
+            ->leftJoin('products_1c AS product', 'product.id = wip.product_id')
+            ->select([
+                'wip.product_id',
+                'product.name AS product_name',
+                'wip.product_count',
+                'wip.product_price',
+                'wip.product_self_cost',
+                'wip.summ',
+                'wip.summ_self_cost'
+            ])
+            ->asArray()
+            ->all();
+
+
+        $incoming = new self();
+        $incoming->setAttributes([
+            'store_id' => $shiftTransfer->store_guid,
+            'shift_transfer_id' => $shiftTransfer->id,
+            'date' => $shiftTransfer->date,
+            'amount' => WaybillIncoming::find()
+                    ->where(['shift_transfer_id' => $shiftTransfer->id])
+                    ->select(['summ'])
+                    ->scalar() ?? '',
+            'status_id' => self::STATUS_NEW,
+            'comment' => $shiftTransfer->comment,
+            'json' => json_encode($incomingData, JSON_UNESCAPED_UNICODE),
+            'type_id' => self::REPLACEMENT_ACTIONS,
+        ]);
+
+        $writeOffsData = WaybillWriteOffsProducts::find()
+            ->alias('wwop')
+            ->where(['waybill_write_offs_id' => WaybillWriteOffs::findOne(['shift_transfer_id' => $shiftTransfer->id])->id ?? ''])
+            ->leftJoin('products_1c AS product', 'product.id = wwop.product_id')
+            ->select([
+                'wwop.product_id',
+                'product.name AS product_name',
+                'wwop.product_count',
+                'wwop.product_price',
+                'wwop.product_self_cost',
+                'wwop.summ',
+                'wwop.summ_self_cost'
+            ])
+            ->asArray()
+            ->all();
+
+
+        $writeOffs = new self();
+        $writeOffs->setAttributes([
+            'store_id' => $shiftTransfer->store_guid,
+            'shift_transfer_id' => $shiftTransfer->id,
+            'date' => $shiftTransfer->date,
+            'amount' => WaybillWriteOffs::find()
+                    ->where(['shift_transfer_id' => $shiftTransfer->id])
+                    ->select(['summ'])
+                    ->scalar() ?? '',
+            'status_id' => self::STATUS_NEW,
+            'comment' => $shiftTransfer->comment,
+            'json' => json_encode($writeOffsData, JSON_UNESCAPED_UNICODE),
+            'type_id' => self::REPLACEMENT_ACTIONS,
+        ]);
+
+
         try {
             $model->save();
+            $incoming->save();
+            $writeOffs->save();
         } catch (\Exception $exception) {
             throw new Exception($exception);
         }
index 3ef5dc5003c4853e2639d9eff07764b83a675c64..ffef3e74c84c0a8f46666af7cfd8cbdfa2946126 100644 (file)
@@ -138,6 +138,13 @@ class WaybillIncoming extends \yii\db\ActiveRecord
 
             WaybillIncomingProducts::setData($model, $shiftTransfer);
 
+            if (!WaybillIncomingProducts::find()
+                ->andWhere(['waybill_incoming_id' => $model->id])
+                ->exists()) {
+                $model->delete();
+                return;
+            }
+
             $summaries = WaybillIncomingProducts::find()
                 ->andWhere(['waybill_incoming_id' => $model->id])
                 ->select([
index b93fb1d182efc892bf9b569aa4c41d8eb8779554..00eca9776d72092041a89ba93144ed902f18a951 100644 (file)
@@ -134,6 +134,13 @@ class WaybillWriteOffs extends \yii\db\ActiveRecord
 
             WaybillWriteOffsProducts::setData($model, $shiftTransfer);
 
+            if (!WaybillWriteOffsProducts::find()
+                ->andWhere(['waybill_write_offs_id' => $model->id])
+                ->exists()) {
+                $model->delete();
+                return;
+            }
+
             $summaries = WaybillWriteOffsProducts::find()
                 ->andWhere(['waybill_write_offs_id' => $model->id])
                 ->select([
index 74ad3d41e7058c0f73dd608db9da4782af8c7c05..38885ddda5c38a91f598e276f5159c704f09216a 100644 (file)
@@ -33,6 +33,12 @@ $this->params['breadcrumbs'][] = $this->title;
                 }
             ],
             'number',
+            [
+                'attribute' => 'status',
+                'value' => function ($model) {
+                    return \yii_app\records\WriteOffsErp::STATUSES[$model->status];
+                }
+            ],
             'date',
             'created_at',
             [
index 3a5939da2f3178a18873aa6cf8bc75c8177ba685..fea91ded4d61571feded7bcfb6caa8cf4120cce1 100644 (file)
@@ -35,10 +35,23 @@ $this->params['breadcrumbs'][] = $this->title;
             ],
             'number',
             'number_1c',
+            [
+                'attribute' => 'status',
+                'value' => function ($model) {
+                    return \yii_app\records\WriteOffsErp::STATUSES[$model->status];
+                }
+            ],
             [
                 'attribute' => 'date',
                 'format' => 'datetime',
             ],
+            [
+                'label' => 'Текст ошибки',
+                'attribute' => 'error_text',
+                'value' => function ($model) {
+                    return $model->status == 8 ? $model->error_text : 'Нет ошибки';
+                }
+            ],
             'comment',
             [
                 'attribute' => 'created_at',
index e429a6d3b3494b6504f5ebd4de979f4ced1fcad0..45839726a768da778ba3c18410a249c9f0bd0831 100644 (file)
@@ -320,7 +320,7 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
                         'label' => 'Сумма',
                         'attribute' => 'summ',
                         'pageSummary' => true,
-                        'footer' => Html::tag('b', 'Недостача: ') . '&nbsp;&nbsp;' . $writeOffsBalance
+                        'footer' => $writeOffsBalance != 0 ? Html::tag('b', 'Недостача: ') . '&nbsp;&nbsp;' . $writeOffsBalance : ''
                     ],
                 ],
                 'showPageSummary' => true,
@@ -363,7 +363,7 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO
                     'label' => 'Сумма',
                     'attribute' => 'summ',
                     'pageSummary' => true,
-                    'footer' => Html::tag('b', 'Излишек: ') . '&nbsp;&nbsp;' . $incomingBalance,
+                    'footer' =>  $incomingBalance != 0 ? Html::tag('b', 'Излишек: ') . '&nbsp;&nbsp;' . $incomingBalance : '',
                 ],
             ],
             'showPageSummary' => true,