<?php echo $form->field($model, 'summer_count_2', ['options' => ['class' => 'form-inline col-sm-7']])->textInput(['class' => 'col-sm-4 form-control'])->label(LanguageHelper::getSummerWinterNames(2, 'summer'), ['class' => 'col-sm-8']); ?> <?php echo $form->field($model, 'winter_count_2', ['options' => ['class' => 'form-inline col-sm-3']])->textInput(['class' => 'form-control'])->label(false); ?> <?php echo $form->field($model, 'summer_count_3', ['options' => ['class' => 'form-inline col-sm-7']])->textInput(['class' => 'col-sm-4 form-control'])->label(LanguageHelper::getSummerWinterNames(3, 'summer'), ['class' => 'col-sm-8']); ?> <?php echo $form->field($model, 'winter_count_3', ['options' => ['class' => 'form-inline col-sm-3']])->textInput(['class' => 'form-control'])->label(false); ?> <?php echo $form->field($model, 'summer_count_4', ['options' => ['class' => 'form-inline col-sm-7']])->textInput(['class' => 'col-sm-4 form-control'])->label(LanguageHelper::getSummerWinterNames(4, 'summer'), ['class' => 'col-sm-8']); ?> <?php echo $form->field($model, 'winter_count_4', ['options' => ['class' => 'form-inline col-sm-3']])->textInput(['class' => 'form-control'])->label(false); ?> </div> <?php echo $form->field($model, 'paper', ['options' => ['class' => 'form-inline col-sm-10']])->radioList(ArrayHelper::map(Paper::find()->all(), 'id', 'nameBoth'), ['class' => 'radio col-sm-6', 'separator' => '<span style="padding-left: 30px;"></span>'])->label(null, ['class' => 'col-sm-4']); ?> <div class="clearfix"></div> <hr> <?php echo $form->field($model, 'relations', ['options' => ['class' => 'form-inline col-sm-12']])->checkboxList(ArrayHelper::map(TrashRelation::find()->all(), 'id', 'nameBoth'), ['class' => 'radio col-sm-8', 'separator' => '<br>'])->label(null, ['class' => 'col-sm-4']); ?>
/** * Chart Page * @return string */ public function actionChart() { $params = Yii::$app->request->queryParams; $region = 1; if (!empty($params['MainSearch']['region'])) { $region = $params['MainSearch']['region']; } $mains = Main::getMainData($region); if ($region == -1) { $regionWhere = []; } else { $regionWhere = ['region' => $region]; } $cityIds = ArrayHelper::map($mains, 'city', 'city'); $regionWhere['id'] = array_values($cityIds); $cities = ArrayHelper::map(City::find()->where($regionWhere)->orderBy('id')->all(), 'id', 'nameBoth'); $recycles = ArrayHelper::map(TrashRecycle::find()->all(), 'id', 'name'); $cityKeys = array_keys($cities); $seasons = ['summer', 'winter']; $data = []; $totals = []; $recycleTotal = []; $recycle = []; $dataKG = []; $totalsKG = []; foreach ($mains as $main) { foreach ($seasons as $season) { if (!isset($data[$season])) { $data[$season] = []; $totals[$season] = []; $dataKG[$season] = []; $totalsKG[$season] = []; } // totals for summer/winter for ($i = 1; $i <= 5; $i++) { if (empty($totals[$season][$season . '_' . $i])) { $totals[$season][$season . '_' . $i] = ['value' => 0, 'label' => LanguageHelper::getSummerWinterNames($i, $season)]; $totalsKG[$season][$season . '_' . $i] = ['value' => 0, 'label' => LanguageHelper::getSummerWinterNames($i, $season)]; } $sum = 0; if ($i == 5) { $field = 'paper'; if ($main->{$field} == 1) { $sum = 5; } } else { $field = $season . '_count_' . $i; $sum = $main->{$field}; } $totals[$season][$season . '_' . $i]['value'] += $sum; $totalsKG[$season][$season . '_' . $i]['value'] += $sum * $this->getWeightByType($i); } // summer/winter based on cities $cityKey = $main->city; if (!isset($data[$season][$cityKey])) { $data[$season][$cityKey] = []; } for ($i = 1; $i <= 5; $i++) { if (empty($data[$season][$cityKey][$season . '_' . $i])) { if ($i == 5) { $filterField = 'paper'; } else { $filterField = 'filter_' . $season . '_' . $i; } $data[$season][$cityKey][$season . '_' . $i] = ['value' => 0, 'label' => LanguageHelper::getSummerWinterNames($i, $season)]; $dataKG[$season][$cityKey][$season . '_' . $i] = ['value' => 0, 'label' => LanguageHelper::getSummerWinterNames($i, $season)]; } $sum = 0; if ($i == 5) { $field = 'paper'; if ($main->{$field} == 1) { $sum = 5; } } else { $field = $season . '_count_' . $i; $sum = $main->{$field}; } $data[$season][$cityKey][$season . '_' . $i]['value'] += $sum * $this->getWeightByType($i); $dataKG[$season][$cityKey][$season . '_' . $i]['value'] += $sum * $this->getWeightByType($i); } } $cityKeyRecycle = $main->city; $trashRecycles = array_keys($main->getRecycleIds()); if (!isset($recycle[$cityKeyRecycle])) { $recycle[$cityKeyRecycle] = []; } foreach ($trashRecycles as $trashRecycle) { if ($trashRecycle === 0) { continue; } if (!isset($recycle[$cityKeyRecycle][$trashRecycle])) { $recycle[$cityKeyRecycle][$trashRecycle] = ['value' => 0, 'label' => $this->getRecycleNames($trashRecycle)]; } if (!isset($recycleTotal[$trashRecycle])) { $recycleTotal[$trashRecycle] = ['value' => 0, 'label' => $this->getRecycleNames($trashRecycle)]; } $recycle[$cityKeyRecycle][$trashRecycle]['value'] += 1; $recycleTotal[$trashRecycle]['value'] += 1; } } return $this->render('chart', ['data' => $data, 'totals' => $totals, 'cities' => $cities, 'recycle' => $recycle, 'recycleTotal' => $recycleTotal, 'recycles' => $recycles, 'totalsKG' => $totalsKG, 'region' => $region]); }
public function getLabel($attribute) { $matches = array(); if (preg_match('/^filter_(summer|winter)_(\\d+)$/', $attribute, $matches)) { $season = $matches[1]; return LanguageHelper::getSummerWinterNames($matches[2], $season); } return ''; }