From a418c94e430ef858044f40b315fe6fc468d06763 Mon Sep 17 00:00:00 2001 From: Vladimir Fomichev Date: Mon, 1 Dec 2025 09:57:46 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20?= =?utf8?q?=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=BB=D1=83?= =?utf8?q?=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B1=D1=80=D0=B0=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/WriteOffsErpController.php | 46 ++++++++++++++++++++ erp24/views/write_offs_erp/_form.php | 25 +---------- erp24/views/write_offs_erp/create.php | 2 + erp24/views/write_offs_erp/update.php | 2 + 4 files changed, 51 insertions(+), 24 deletions(-) diff --git a/erp24/controllers/WriteOffsErpController.php b/erp24/controllers/WriteOffsErpController.php index 59019f60..bf199530 100644 --- a/erp24/controllers/WriteOffsErpController.php +++ b/erp24/controllers/WriteOffsErpController.php @@ -76,6 +76,44 @@ class WriteOffsErpController extends Controller ]; } + /** + * Получает и обрабатывает список типов списания из справочника аналитики. + * Убирает префиксы вида "2_" и сортирует так, чтобы "Брак" был первым. + * + * @return array Массив типов списания, где ключ и значение - название типа + */ + protected function getProcessedAnalytics() + { + $analytics = \yii_app\records\AnalystsBusinessOperations::find() + ->where(['type_id' => 2]) + ->andWhere(['active' => 1]) + ->andWhere(['show' => 1]) + ->indexBy('id') + ->asArray() + ->all(); + + $analyticsOps = ArrayHelper::map($analytics, 'id', 'name'); + $processedAnalytics = []; + + foreach ($analyticsOps as $key => $value) { + if (strpos($value, '_') !== false) { + $parts = explode('_', $value, 2); + $value = $parts[1]; + } + $processedAnalytics[$value] = $value; + } + + // Сортируем так, чтобы "Брак" был первым + $brakKey = \yii_app\records\WriteOffsErp::WRITE_OFFS_TYPE_BRAK; + if (isset($processedAnalytics[$brakKey])) { + $brak = [$brakKey => $processedAnalytics[$brakKey]]; + unset($processedAnalytics[$brakKey]); + $processedAnalytics = $brak + $processedAnalytics; + } + + return $processedAnalytics; + } + /** * Lists all WriteOffsErp models. * @@ -415,6 +453,7 @@ class WriteOffsErpController extends Controller $listCityStoreNames = CityStore::getNames($storeIds); $listCauseDict = WriteOffsProductsErp::getCauseDict($groupId); + $processedAnalytics = $this->getProcessedAnalytics(); if ($this->request->isPost) { if ($model->load(Yii::$app->request->post())) { @@ -545,6 +584,7 @@ class WriteOffsErpController extends Controller 'listCauseDict' => $listCauseDict, 'listProductsDict' => $listProductsDict, 'balanceDict' => $balanceDict, + 'processedAnalytics' => $processedAnalytics, 'errors' => $errors ]); } @@ -619,6 +659,7 @@ class WriteOffsErpController extends Controller 'listCauseDict' => $listCauseDict, 'listProductsDict' => $listProductsDict, 'balanceDict' => $balanceDict, + 'processedAnalytics' => $processedAnalytics, 'errors' => $errors ]); } @@ -636,6 +677,7 @@ class WriteOffsErpController extends Controller 'listCauseDict' => $listCauseDict, 'listProductsDict' => $listProductsDict, 'balanceDict' => $balanceDict, + 'processedAnalytics' => $processedAnalytics, ]; return $this->render('/write_offs_erp/create', $params); @@ -750,6 +792,7 @@ class WriteOffsErpController extends Controller $listCityStoreNames = CityStore::getNames($storeIds); $listCauseDict = WriteOffsProductsErp::getCauseDict(); + $processedAnalytics = $this->getProcessedAnalytics(); if ($this->request->isPost && $model->load($this->request->post())) { @@ -921,6 +964,7 @@ class WriteOffsErpController extends Controller 'listCauseDict' => $listCauseDict, 'listProductsDict' => $listProductsDict, 'balanceDict' => $balanceDict, + 'processedAnalytics' => $processedAnalytics, 'errors' => $errors ]); } @@ -1010,6 +1054,7 @@ class WriteOffsErpController extends Controller 'listCauseDict' => $listCauseDict, 'listProductsDict' => $listProductsDict, 'balanceDict' => $balanceDict, + 'processedAnalytics' => $processedAnalytics, 'errors' => $e->getMessage() ]); } @@ -1028,6 +1073,7 @@ class WriteOffsErpController extends Controller 'listCauseDict' => $listCauseDict, 'listProductsDict' => $listProductsDict, 'balanceDict' => $balanceDict, + 'processedAnalytics' => $processedAnalytics, ]; return $this->render('/write_offs_erp/update', $params); diff --git a/erp24/views/write_offs_erp/_form.php b/erp24/views/write_offs_erp/_form.php index 1adea523..400728fd 100644 --- a/erp24/views/write_offs_erp/_form.php +++ b/erp24/views/write_offs_erp/_form.php @@ -15,7 +15,6 @@ use yii\widgets\ActiveForm; use dosamigos\datetimepicker\DateTimePicker; use wbraganca\dynamicform\DynamicFormWidget; use yii_app\helpers\PrintBlockHelper; -use yii_app\records\AnalystsBusinessOperations; use yii_app\records\Files; use yii_app\records\WriteOffsErp; use yii_app\records\WriteOffsProductsErp; @@ -29,6 +28,7 @@ use yii_app\records\WriteOffsProductsErp; /** @var array $listCauseDict */ /** @var array $listProductsDict */ /** @var array $balanceDict */ +/** @var array $processedAnalytics */ /** @var bool $isUpdate */ @@ -49,23 +49,6 @@ $this->registerJsFile('/js/heic_to_jpg_replace.js', ['position' => \yii\web\View ], 'position' => \yii\web\View::POS_END, ]);*/ -$analytics = AnalystsBusinessOperations::find() - ->where(['type_id' => 2]) - ->andWhere(['active' => 1]) - ->andWhere(['show' => 1]) - ->indexBy('id') - ->asArray() - ->all(); -$analyticsOps = ArrayHelper::map($analytics, 'id', 'name'); -$processedAnalytics = []; - -foreach ($analyticsOps as $key => $value) { - if (strpos($value, '_') !== false) { - $parts = explode('_', $value, 2); - $value = $parts[1]; - } - $processedAnalytics[$value] = $value; -} ?>