];
}
+ /**
+ * Получает и обрабатывает список типов списания из справочника аналитики.
+ * Убирает префиксы вида "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.
*
$listCityStoreNames = CityStore::getNames($storeIds);
$listCauseDict = WriteOffsProductsErp::getCauseDict($groupId);
+ $processedAnalytics = $this->getProcessedAnalytics();
if ($this->request->isPost) {
if ($model->load(Yii::$app->request->post())) {
'listCauseDict' => $listCauseDict,
'listProductsDict' => $listProductsDict,
'balanceDict' => $balanceDict,
+ 'processedAnalytics' => $processedAnalytics,
'errors' => $errors
]);
}
'listCauseDict' => $listCauseDict,
'listProductsDict' => $listProductsDict,
'balanceDict' => $balanceDict,
+ 'processedAnalytics' => $processedAnalytics,
'errors' => $errors
]);
}
'listCauseDict' => $listCauseDict,
'listProductsDict' => $listProductsDict,
'balanceDict' => $balanceDict,
+ 'processedAnalytics' => $processedAnalytics,
];
return $this->render('/write_offs_erp/create', $params);
$listCityStoreNames = CityStore::getNames($storeIds);
$listCauseDict = WriteOffsProductsErp::getCauseDict();
+ $processedAnalytics = $this->getProcessedAnalytics();
if ($this->request->isPost && $model->load($this->request->post())) {
'listCauseDict' => $listCauseDict,
'listProductsDict' => $listProductsDict,
'balanceDict' => $balanceDict,
+ 'processedAnalytics' => $processedAnalytics,
'errors' => $errors
]);
}
'listCauseDict' => $listCauseDict,
'listProductsDict' => $listProductsDict,
'balanceDict' => $balanceDict,
+ 'processedAnalytics' => $processedAnalytics,
'errors' => $e->getMessage()
]);
}
'listCauseDict' => $listCauseDict,
'listProductsDict' => $listProductsDict,
'balanceDict' => $balanceDict,
+ 'processedAnalytics' => $processedAnalytics,
];
return $this->render('/write_offs_erp/update', $params);
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;
/** @var array $listCauseDict */
/** @var array $listProductsDict */
/** @var array $balanceDict */
+/** @var array $processedAnalytics */
/** @var bool $isUpdate */
],
'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;
-}
?>
<style>
],
]
]); ?>
- <?php
-
- if ($model->isNewRecord && empty($model->write_offs_type)) {
- $model->write_offs_type = WriteOffsErp::WRITE_OFFS_TYPE_BRAK;
- }
- ?>
<?= $form->field($model, 'store_id')->dropDownList($listCityStoreNames) ?>