From 98eea660d6afacc039759e2d8aeb3b74c7825220 Mon Sep 17 00:00:00 2001 From: fomichev Date: Fri, 4 Apr 2025 16:29:08 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8?= =?utf8?q?=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=B0=D1=82=D0=B5=D0=B3=D0=BE?= =?utf8?q?=D1=80=D0=B8=D0=B9=20=D0=B8=20=D0=B2=D0=B8=D0=B4=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/CategoryPlanController.php | 51 +++++++++++++++++++ .../views/category-plan/show-history-data.php | 44 ++++++++++++++++ 2 files changed, 95 insertions(+) diff --git a/erp24/controllers/CategoryPlanController.php b/erp24/controllers/CategoryPlanController.php index fb7fb5a8..8bf55e87 100644 --- a/erp24/controllers/CategoryPlanController.php +++ b/erp24/controllers/CategoryPlanController.php @@ -360,4 +360,55 @@ class CategoryPlanController extends Controller { ]); } + /** + * Возвращает список подкатегорий для выбранной категории. + * @param string $category + * @return array JSON-ответ со списком подкатегорий + */ + public function actionGetSubcategories($category) + { + Yii::$app->response->format = Response::FORMAT_JSON; + $subcategories = Products1cNomenclature::find() + ->select('subcategory') + ->distinct() + ->where(['category' => $category]) + ->orderBy('subcategory') + ->asArray() + ->all(); + + $out = []; + foreach ($subcategories as $item) { + if (!empty($item['subcategory'])) { + $out[] = ['id' => $item['subcategory'], 'name' => $item['subcategory']]; + } + } + return $out; + } + + /** + * Возвращает список видов для выбранной подкатегории. + * @param string $subcategory + * @return array JSON-ответ со списком видов + */ + public function actionGetSpecies($subcategory) + { + \Yii::$app->response->format = Response::FORMAT_JSON; + $species = Products1cNomenclature::find() + ->select('species') + ->distinct() + ->where(['subcategory' => $subcategory]) + ->orderBy('species') + ->asArray() + ->all(); + + $out = []; + foreach ($species as $item) { + if (!empty($item['species'])) { + $out[] = ['id' => $item['species'], 'name' => $item['species']]; + } + } + return $out; + } + + } diff --git a/erp24/views/category-plan/show-history-data.php b/erp24/views/category-plan/show-history-data.php index 06de4d2e..4c29a4ef 100644 --- a/erp24/views/category-plan/show-history-data.php +++ b/erp24/views/category-plan/show-history-data.php @@ -51,6 +51,50 @@ use yii_app\records\Products1cNomenclature; + Выберите подкатегорию'); + $.each(data, function(i, item) { + subcat.append(''); + }); + // При изменении категории сбрасываем виды + var species = $('#dynamicmodel-species'); + species.empty(); + species.append(''); + } + }); + }); + + // При изменении подкатегории выполняем AJAX-запрос для подгрузки видов + $('#dynamicmodel-subcategory').on('change', function(){ + var subcategory = $(this).val(); + $.ajax({ + url: '/category-plan/get-species', + data: {subcategory: subcategory}, + success: function(data) { + var species = $('#dynamicmodel-species'); + species.empty(); + species.append(''); + $.each(data, function(i, item) { + species.append(''); + }); + } + }); + }); +JS; + $this->registerJs($script); + ?> + -- 2.39.5