public function actionBalance() { $cache = Yii::$app->cache; $date = isset($_REQUEST['date']) ? $_REQUEST['date'] : date('Y-m', time()); $Balance = new Balance(); $balance = $Balance->getMonth($date); $Profit = new Profit(); $profit = $Profit->getMonth($date); if (!$profit || !$balance) { Yii::$app->getSession()->setFlash('error', '请先导入该月基础报表数据'); } $Measure = new Measure(); $measure = $Measure->getMonth($date); for ($i = 1; $i < 6; $i++) { $measure[0][$i] = isset($measure[0][$i]) ? $measure[0][$i] : 0; } return $this->render('balance', ['balance' => $balance, 'profit' => $profit, 'date' => $date, 'measure' => $measure]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Balance::find()->select(['GAID', 'FDATE' => 'max(FDATE)', 'BAL'])->groupBy('GAID'); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['FDATE' => SORT_DESC]]]); $this->load($params); if (!$this->validate()) { return $dataProvider; } $query->andFilterWhere(['GAID' => $this->GAID]); return $dataProvider; }
$dateColumn = ['attribute' => 'FDATE', 'value' => 'FDATE', 'filterType' => GridView::FILTER_DATE, 'filterWidgetOptions' => ['type' => DatePicker::TYPE_INPUT, 'pluginOptions' => ['autoclose' => true, 'format' => 'yyyy-mm-dd', 'endDate' => "+0D"]], 'format' => 'html']; $dateColumnDisabled = ['attribute' => 'FDATE', 'value' => 'FDATE', 'format' => 'html', 'filterInputOptions' => ['disabled' => true, 'class' => 'form-control']]; /* @var $this yii\web\View */ /* @var $balanceSearchModel app\models\search\BalanceSearch */ /* @var $balanceDataProvider yii\data\ActiveDataProvider */ /* @var $coordinatesSearchModel app\models\search\CoordinatesSearch */ /* @var $coordinatesDataProvider yii\data\ActiveDataProvider */ /* @var $gadataextSearchModel app\models\search\GadataextSearch */ /* @var $gadataextDataProvider yii\data\ActiveDataProvider */ ?> <div class="device-parameters-index grid-margin"> <?php echo GridView::widget(['dataProvider' => $gadataextDataProvider, 'filterModel' => $gadataextSearchModel, 'columns' => [['attribute' => 'GAID', 'filter' => Gadataext::getGaids(), 'width' => '120px', 'filterInputOptions' => ['disabled' => true, 'class' => 'form-control']], $dateColumn, 'KO2', 'KCO', 'KNO', 'K11', 'KCO2', 'KCH4', 'KSO2'], 'resizableColumns' => false, 'pjax' => true, 'pjaxSettings' => ['options' => ['id' => 'gadataext-pjax-container']], 'panel' => ['type' => GridView::TYPE_PRIMARY, 'heading' => '<h3 class="panel-title"><i class="fa fa-table fa-fw"></i> Коэффициенты</h3>', 'footer' => false], 'beforeHeader' => ['{pager}'], 'panelBeforeTemplate' => '<div>{pager}</div>']); ?> <div class="row"> <div class="col-md-6"> <?php echo GridView::widget(['dataProvider' => $balanceDataProvider, 'filterModel' => $balanceSearchModel, 'columns' => [['attribute' => 'GAID', 'filter' => Balance::getGaids(), 'width' => '120px', 'filterInputOptions' => ['disabled' => true, 'class' => 'form-control']], $dateColumnDisabled, ['attribute' => 'BAL', 'filterInputOptions' => ['disabled' => true, 'class' => 'form-control']]], 'resizableColumns' => false, 'pjax' => true, 'pjaxSettings' => ['options' => ['id' => 'balance-pjax-container']], 'panel' => ['type' => GridView::TYPE_PRIMARY, 'heading' => '<h3 class="panel-title"><i class="fa fa-table fa-fw"></i> Баланс</h3>', 'footer' => false], 'beforeHeader' => ['{pager}'], 'panelBeforeTemplate' => '<div>{pager}</div>']); ?> </div> <div class="col-md-6"> <?php echo GridView::widget(['dataProvider' => $coordinatesDataProvider, 'filterModel' => $coordinatesSearchModel, 'columns' => [['attribute' => 'GAID', 'filter' => Coordinates::getGaids(), 'width' => '120px', 'filterInputOptions' => ['disabled' => true, 'class' => 'form-control']], $dateColumnDisabled, ['attribute' => 'longitude', 'filterInputOptions' => ['disabled' => true, 'class' => 'form-control']], ['attribute' => 'latitude', 'filterInputOptions' => ['disabled' => true, 'class' => 'form-control']]], 'resizableColumns' => false, 'pjax' => true, 'pjaxSettings' => ['options' => ['id' => 'coordinates-pjax-container']], 'panel' => ['type' => GridView::TYPE_PRIMARY, 'heading' => '<h3 class="panel-title"><i class="fa fa-table fa-fw"></i> Координаты</h3>', 'footer' => false], 'beforeHeader' => ['{pager}'], 'panelBeforeTemplate' => '<div>{pager}</div>']); ?> </div> </div> </div>
public static function getGaidTables() { return [Balance::tableName(), Coordinates::tableName(), Gadata::tableName(), Gadataext::tableName()]; }
/** * @return \yii\db\ActiveQuery */ public function getBalances() { return $this->hasMany(Balance::className(), ['member_id' => 'member_id']); }
public function actionDelete() { $date = Yii::$app->request->get('date'); if ($date) { $date = date('Y-m', strtotime($date)); $cnum = YII::$app->user->identity->cnum; Balance::deleteAll('date = :date AND cnum = :cnum', [':date' => $date, ':cnum' => $cnum]); Yii::$app->cache->delete('balance_' . $date); } return $this->redirect('index?date=' . $date); }