]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Исправление по ревью и очистка кода origin/feature_fomichev_erp-20250411_month_bouquet_goal
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 6 Jun 2025 10:24:44 +0000 (13:24 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 6 Jun 2025 10:24:44 +0000 (13:24 +0300)
erp24/controllers/CategoryPlanController.php
erp24/services/StorePlanService.php
erp24/views/category-plan/show-history-data.php

index d5989dc777df280d2078499a79d80f0804fd3c0b..b2b52b9dd74b709d8974934721bcba2fbac2303b 100644 (file)
@@ -364,7 +364,7 @@ class CategoryPlanController extends Controller {
                 }
             }
         }
-       // var_dump($weightedResults); die();
+
         return $this->render('show-history-data', [
             'result'          => $result,
             'weighted'          => $weightedResults,
index d660a6d31d4ecccc5a807b44655ce310aa76a831..185ba93a017bc18ef705629dfaeb4d08f0e31367 100755 (executable)
@@ -854,7 +854,6 @@ class StorePlanService
             ->all();
         $dur = (hrtime(true) - $t1) / 1e6;
         Yii::warning( "Query {$storeId}: {$dur} ms\n");
- //var_dump($similarProductIds, $storeId, $startDate, $endDate);die();
         $t2 = hrtime(true);
         $salesValues = [];
         foreach ($similarProductIds as $id) {
@@ -920,9 +919,24 @@ class StorePlanService
         $daysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
         $monthEnd = sprintf('%04d-%02d-%02d', $year, $month, $daysInMonth);
 
+        $region = CityStoreParams::find()
+            ->where(['store_id' => $storeId])
+            ->one()->address_region;
+
+        if (!$region) {
+            // определяем регион по городу
+            $cityId = CityStore::find()->select('city_id')->where(['id' => $storeId])->scalar();
+            if ($cityId == 1) {
+                $region = BouquetComposition::REGION_MSK;
+            } else {
+                $region = BouquetComposition::REGION_NN;
+            }
+        }
+
         $priceRecords = PricesDynamic::find()
             ->where(['product_id' => $productId])
             ->andWhere(['<=', 'date_from', $monthEnd])
+            ->andWhere(['region_id' => $region])
             ->andWhere([
                 'or',
                 ['>=', 'date_to', $monthStart],
@@ -930,15 +944,6 @@ class StorePlanService
             ])->all();
 
 
-        if (CityStore::find()->where(['id' => $storeId])->one()->city_id == 1342) {
-            $region = BouquetComposition::REGION_NN;
-        } elseif (CityStore::find()->where(['id' => $storeId])->one()->city_id == 1) {
-            $region = BouquetComposition::REGION_MSK;
-        } else {
-            $region = null;
-        }
-            //$priceRecords->andWhere(['or',['region_id' => $region],['region_id' => null]])
-            //->all();
 
         if (!empty($priceRecords)) {
             $totalPrice = 0;
@@ -1136,11 +1141,9 @@ class StorePlanService
         if ($matrixTypesIds) {
             foreach ($matrixTypesIds as $matrixTypeId) {
                 $bouquetsArray = StorePlanService::getBouqetsByDate($month, $year, $matrixTypeId);
-                $bouquetsArray = StorePlanService::getBouqetsByDate(5, 2025, 2);
                 $forecasts = ArrayHelper::getColumn($bouquetsArray, 'bouquetForecast');
                 $ids = ArrayHelper::getColumn($bouquetsArray, 'id');
 
-                //var_dump($ids); die();
                 foreach ($forecasts as $forecastArray) {
                     if (is_array($forecastArray)) {
                         foreach ($forecastArray as $fc) {
@@ -1160,7 +1163,6 @@ class StorePlanService
 
         $resultData = [];
         $detailData = [];
-        //var_dump($storesForecasts);die();
         foreach ($storesForecasts as $storeForecast) {
             $products = ArrayHelper::toArray(BouquetCompositionProducts::getCompositionProducts($storeForecast['bouquet_id']));
             $productGuids = array_filter(array_column($products, 'product_guid'));
@@ -1178,7 +1180,7 @@ class StorePlanService
             foreach ($products as $product) {
                 $productModel = Products1cNomenclature::find()->where(['id' => $product['product_guid']])->one();
                 $species = ($productModel !== null) ? $productModel->species : 'Неизвестно';
-                $basePrice = isset($pricesData[$product['product_guid']]) ? $pricesData[$product['product_guid']] : 0;
+                $basePrice = $pricesData[$product['product_guid']] ?? 0;
                 $rawCalculation = $basePrice * $product['count'] * $storeForecast["type_sales_value"];
                 $productCost = round($rawCalculation * BouquetCompositionPrice::SURCHARGE_ASSEMBLY, 2);
 
index fc030f303b030a1ad38400e55478619d4c11a12a..60a06e53eda5bb28bbbf2cd7a1800e20bbec0397 100644 (file)
@@ -24,31 +24,36 @@ use yii_app\records\Products1c;
     <?php $form = ActiveForm::begin([
         'method' => 'post',
     ]); ?>
-
-    <?= $form->field($model, 'storeId')
-        ->dropDownList($storeList, ['prompt' => 'Выберите магазин'])
-        ->label('Магазин') ?>
-
-    <?= $form->field($model, 'month')
-        ->dropDownList($monthsList, ['prompt' => 'Выберите месяц'])
-        ->label('Месяц') ?>
-
-    <?= $form->field($model, 'category')
-        ->dropDownList($categoryList, ['prompt' => 'Выберите категорию'])
-        ->label('Категория') ?>
-
-    <?= $form->field($model, 'subcategory')
-        ->dropDownList($subcategoryList, ['prompt' => 'Выберите подкатегорию'])
-        ->label('Подкатегория') ?>
-
-    <?= $form->field($model, 'species')
-        ->dropDownList($speciesList, ['prompt' => 'Выберите вид товара'])
-        ->label('Вид товара') ?>
-
-    <div class="form-group">
-        <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
+    <div class="row p-3">
+        <div class="col-md">
+            <?= $form->field($model, 'storeId')
+                ->dropDownList($storeList, ['prompt' => 'Выберите магазин'])
+                ->label('Магазин') ?>
+        </div>
+        <div class="col-md">
+            <?= $form->field($model, 'month')
+                ->dropDownList($monthsList, ['prompt' => 'Выберите месяц'])
+                ->label('Месяц') ?>
+        </div>
+        <div class="col-md">
+            <?= $form->field($model, 'category')
+                ->dropDownList($categoryList, ['prompt' => 'Выберите категорию'])
+                ->label('Категория') ?>
+        </div>
+        <div class="col-md">
+            <?= $form->field($model, 'subcategory')
+                ->dropDownList($subcategoryList, ['prompt' => 'Выберите подкатегорию'])
+                ->label('Подкатегория') ?>
+        </div>
+        <div class="col-md">
+            <?= $form->field($model, 'species')
+                ->dropDownList($speciesList, ['prompt' => 'Выберите вид товара'])
+                ->label('Вид товара') ?>
+        </div>
+        <div class="form-group col-md">
+            <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
+        </div>
     </div>
-
     <?php ActiveForm::end(); ?>
 
     <?php