/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Tools::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id]); $query->andFilterWhere(['like', 'tabs_id', $this->tabs_id])->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'code', $this->code])->andFilterWhere(['like', 'icon', $this->icon]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Tools::find(); // add conditions that should always apply here $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } // grid filtering conditions $query->andFilterWhere(['id' => $this->id, 'type_tools_id' => $this->type_tools_id, 'sort' => $this->sort, 'created_at' => $this->created_at, 'created_by' => $this->created_by, 'updated_at' => $this->updated_at, 'updated_by' => $this->updated_by]); $query->andFilterWhere(['like', 'name', $this->name]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Tools::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $dataProvider->query->joinWith('registool'); $dataProvider->query->joinWith('deptool'); $dataProvider->query->joinWith('comtool'); $dataProvider->query->joinWith('tooltypetool'); $query->andFilterWhere([]); $query->orFilterWhere(['like', 'yearbudget', $this->allSearch])->orFilterWhere(['like', 'budget', $this->allSearch])->orFilterWhere(['like', 'serial', $this->allSearch])->orFilterWhere(['like', 'model', $this->allSearch])->orFilterWhere(['like', 'expriecase', $this->allSearch])->orFilterWhere(['like', 'companys.company_name', $this->allSearch])->orFilterWhere(['like', 'registools.name_list', $this->allSearch])->andFilterWhere(['like', 'tooltypes.type_name', $this->tooltype_id])->orFilterWhere(['like', 'departments.name', $this->allSearch]); return $dataProvider; }
public function getToolregis() { // เชื่อมจาก registool ไปหา tool return $this->hasMany(Tools::className(), ['registool_id' => 'id']); }
public function getTooldep() { // เชื่อมจาก departments ไปหา tools return $this->hasMany(Tools::className(), ['department_id' => 'id']); }
/* @var $model app\models\ViewerTabsTools */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="viewer-tabs-tools-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'tabs_id')->hiddenInput()->label(false); ?> <?php $items = ArrayHelper::map(Tools::find()->all(), 'id', 'name'); ?> <?php echo $form->field($model, 'tools_id')->dropDownList($items); ?> <div class="form-group"> <?php echo Html::submitButton($model->isNewRecord ? 'Guardar' : 'Guardar', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> </div> <?php ActiveForm::end(); ?>
use app\models\State; /* @var $this yii\web\View */ /* @var $model app\models\HarvestTools */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="harvest-tools-form"> <?php $form = ActiveForm::begin(); ?> <div class="row"> <div class="col-md-4"> <?php $data = ArrayHelper::map(Tools::find()->select(['id', 'name'])->asArray()->all(), 'id', 'name'); echo $form->field($model, 'tools_id')->widget(Select2::classname(), ['data' => $data, 'options' => ['placeholder' => 'Pilih Tools ...', 'onchange' => ' location.href = "' . Url::to(['create']) . '"+"?tools_id="+$(this).val() ', 'disabled' => !$model->isNewRecord ? true : false], 'pluginOptions' => ['allowClear' => true]]); ?> <?php $data = ArrayHelper::map(State::find()->select(['id', 'name'])->asArray()->all(), 'id', 'name'); echo $form->field($model, 'state_id')->widget(Select2::classname(), ['data' => $data, 'options' => ['placeholder' => 'Pilih State ...', 'disabled' => Yii::$app->user->identity->state_id > 0 ? true : false], 'pluginOptions' => ['allowClear' => true]]); ?> </div> </div> <div class="row"> <div class="col-md-2">
/** * Finds the Tools model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Tools the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Tools::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
public function getTooltooltype() { return $this->hasMany(Tools::className(), ['tooltype_id' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getTools() { return $this->hasOne(Tools::className(), ['id' => 'tools_id']); }
<button type="button" class="remove-item btn btn-danger btn-xs"> <i class="glyphicon glyphicon-minus"></i></button> </div> <div class="clearfix"></div> </div> <div class="panel-body"> <?php if (!$modelCalitems->isNewRecord) { echo Html::activeHiddenInput($modelCalitems, "[{$i}]id"); } ?> <div class="row"> <div class="col-sm-7"> <?php echo $form->field($modelCalitems, "[{$i}]tool_id")->label('รายการเครื่องมือ')->dropDownList(ArrayHelper::map(Tools::find()->where(['tooltype_id' => '4'])->all(), 'id', function ($model, $defaultValue) { return $model->registool->name_list . ':' . $model->fnumber . '-' . $model->lnumber . ':' . $model->deptool->name; }), ['prompt' => 'เลือกเครื่องมือ...']); ?> </div> <div class="col-sm-2"> <?php echo $form->field($modelCalitems, "[{$i}]result")->textInput(['maxlength' => true]); ?> </div> <div class="col-sm-3"> <?php echo $form->field($modelCalitems, "[{$i}]cuase")->textInput(['maxlength' => true]); ?> </div> </div>
public function actionExportExcel() { //$searchModel = new SecuritasSearch(); //$dataProvider = $searchModel->search(Yii::$app->request->queryParams); $session = Yii::$app->session; $renderHarvestToolsReport = $session->get('renderHarvestToolsReport'); $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); $template = Yii::getAlias('@app/views/' . $this->id) . '/_export.xlsx'; $objPHPExcel = $objReader->load($template); $activeSheet = $objPHPExcel->getActiveSheet(); $border_style = ['borders' => ['allborders' => ['style' => \PHPExcel_Style_Border::BORDER_THIN, 'color' => ['argb' => '000000']]]]; $text_center = ['horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER]; $font_bold9 = ['font' => ['bold' => true, 'color' => ['rgb' => '000000'], 'size' => 9, 'name' => 'Calibri']]; $font_bold8 = ['font' => ['bold' => true, 'color' => ['rgb' => '000000'], 'size' => 8, 'name' => 'Calibri']]; $bg_gray = ['fill' => ['type' => \PHPExcel_Style_Fill::FILL_SOLID, 'color' => ['rgb' => 'dddddd']]]; $activeSheet->setCellValue('G2', 'print at ' . date('d-M-Y H:i:s')); $years = 'Semua'; if (!empty($renderHarvestToolsReport['years'])) { $years = implode(', ', $renderHarvestToolsReport['years']); } $activeSheet->setCellValue('C3', $years); $quarters = 'Semua'; if (!empty($renderHarvestToolsReport['quarters'])) { $quarters = implode(', ', $renderHarvestToolsReport['quarters']); } $activeSheet->setCellValue('C4', $quarters); $states = 'Semua'; if (!empty($renderHarvestToolsReport['states'])) { $states = implode(', ', $renderHarvestToolsReport['states']); } $activeSheet->setCellValue('C5', $states); $typeToolses2 = 'Semua'; if (!empty($renderHarvestToolsReport['typeToolses2'])) { $typeToolses2 = implode(', ', $renderHarvestToolsReport['typeToolses2']); } $activeSheet->setCellValue('C7', $typeToolses2); $typeToolses = $renderHarvestToolsReport['typeToolses']; $stateCount = $renderHarvestToolsReport['stateCount']; $startRow = 11; $i = 0; foreach ($typeToolses as $typeTools) { if ($i == 0) { $row = $startRow + $i; } else { $row++; } //$activeSheet->insertNewRowBefore($row,1); $activeSheet->setCellValue('A' . $row, Helpers::columnLetter($i + 1)); $activeSheet->setCellValue('B' . $row, $typeTools->name); $activeSheet->getStyle("A" . $row . ":B" . $row)->applyFromArray($font_bold9); $activeSheet->getStyle("A" . $row . ":A" . $row)->getAlignment()->applyFromArray($text_center); $toolss = Tools::find()->where(['type_tools_id' => $typeTools->id])->all(); $idx_tools = 0; foreach ($toolss as $tools) { //$activeSheet->insertNewRowBefore($row,1); $row++; $activeSheet->setCellValue('B' . $row, $idx_tools + 1); $activeSheet->setCellValue('C' . $row, $tools->name); $activeSheet->getStyle("B" . $row . ":C" . $row)->applyFromArray($font_bold8); $activeSheet->getStyle("B" . $row . ":B" . $row)->getAlignment()->applyFromArray($text_center); $where['tools_id'] = $tools->id; if (!empty($renderHarvestToolsReport['years'])) { $where['year'] = $renderHarvestToolsReport['years']; } if (!empty($renderHarvestToolsReport['quarters'])) { $where['quarter'] = $renderHarvestToolsReport['quarters']; } if (!empty($renderHarvestToolsReport['stateIds'])) { $where['state_id'] = $renderHarvestToolsReport['stateIds']; } $harvestToolses = HarvestTools::find()->select("\n sum(param1) as sparam1,\n sum(param2) as sparam2,\n sum(param3) as sparam3,\n sum(param4) as sparam4,\n sum(param5) as sparam5,\n group_concat(note1) as gcnote1,\n group_concat(note2) as gcnote2,\n group_concat(note3) as gcnote3,\n group_concat(note4) as gcnote4,\n group_concat(note5) as gcnote5,\n count(state_id) as cstate\n ")->where($where)->asArray()->one(); $params = explode('|', $typeTools->params); $units = explode('|', $typeTools->units); if (count($params) > 0 and count($units) > 0 and count($params) == count($units)) { $combines = array_combine($params, $units); $idx = 1; $row++; $starRowTable = $row; $activeSheet->setCellValue('B' . $row, 'NO'); $activeSheet->setCellValue('C' . $row, 'PARAMETER'); $activeSheet->setCellValue('D' . $row, 'NILAI'); $activeSheet->setCellValue('E' . $row, 'SATUAN'); $activeSheet->setCellValue('F' . $row, 'KETERANGAN'); $activeSheet->setCellValue('G' . $row, 'DATA MASUK'); $activeSheet->getStyle('B' . $row . ':G' . $row)->applyFromArray($bg_gray); foreach ($combines as $param => $unit) { $row++; $activeSheet->setCellValue('B' . $row, $idx); $activeSheet->setCellValue('C' . $row, $param); $activeSheet->setCellValue('D' . $row, $harvestToolses['sparam' . $idx]); $activeSheet->setCellValue('E' . $row, $unit); //$activeSheet->getStyle("F".$row)->getAlignment()->setWrapText(true); //$activeSheet->getDefaultRowDimension()->setRowHeight(-1); $activeSheet->getRowDimension($row)->setRowHeight(-1); $activeSheet->setCellValue('F' . $row, $harvestToolses['gcnote' . $idx] . ' lorem ipsum sit dolor amet lorem ipsum sit dolor amet lorem ipsum sit dolor amet lorem ipsum sit dolor amet '); $data = number_format($harvestToolses['cstate'] / $stateCount * 100, 2); $activeSheet->setCellValue('G' . $row, $data . '%'); $idx++; } $activeSheet->getStyle("B" . $starRowTable . ":G" . $row)->applyFromArray($border_style); $activeSheet->getStyle("B" . $starRowTable . ":G" . $row)->getAlignment()->applyFromArray($text_center); $activeSheet->getStyle("F" . ($starRowTable + 1) . ":F" . $row)->getAlignment()->setWrapText(true); } $row++; $idx_tools++; } $i++; } header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $this->id . '_' . date('YmdHis') . '.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007"); $objWriter->save('php://output'); exit; }
/** * Updates an existing HarvestTools model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $typeTools = null; if ($model->tools_id > 0) { $tools = Tools::findOne($model->tools_id); $typeTools = TypeTools::findOne($tools->type_tools_id); } if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('update', ['model' => $model, 'typeTools' => $typeTools]); } }
<?php echo Html::encode($this->title); ?> </h3> </div> <div class="panel-body"> <?php echo $this->render('_search', ['model' => $harvestToolsReportSearch]); ?> <?php //$year = foreach ($typeToolses as $typeTools) { echo '<h3>' . $typeTools->name . '</h3>'; $toolss = \app\models\Tools::find()->where(['type_tools_id' => $typeTools->id])->all(); $idx_tools = 0; foreach ($toolss as $tools) { echo '<h4>' . ++$idx_tools . '. ' . $tools->name . '</h4>'; $where['tools_id'] = $tools->id; if (!empty($years)) { $where['year'] = $years; } if (!empty($quarters)) { $where['quarter'] = $quarters; } if (!empty($harvestToolsReportSearch->stateIds)) { $where['state_id'] = $harvestToolsReportSearch->stateIds; } $harvestToolses = \app\models\HarvestTools::find()->select("\n sum(param1) as sparam1,\n sum(param2) as sparam2,\n sum(param3) as sparam3,\n sum(param4) as sparam4,\n sum(param5) as sparam5,\n group_concat(note1) as gcnote1,\n group_concat(note2) as gcnote2,\n group_concat(note3) as gcnote3,\n group_concat(note4) as gcnote4,\n group_concat(note5) as gcnote5,\n count(state_id) as cstate,\n ")->where($where)->asArray()->one(); $params = explode('|', $typeTools->params);
<?php // echo $this->render('_search', ['model' => $searchModel]); ?> <p> <?php echo Html::a('<span class=\'glyphicon glyphicon-plus-sign\'></span> ' . Yii::t('app', 'Create'), ['create'], ['class' => 'btn btn-success']); ?> </p> <?php $state_id = Yii::$app->user->identity->state_id; $columns[] = ['class' => 'yii\\grid\\SerialColumn']; $columns[] = ['attribute' => 'tools_id', 'format' => 'raw', 'value' => function ($data) { if ($data->tools_id > 0) { return \app\models\Tools::findOne($data->tools_id)->name; } else { return "-"; } }]; if ($state_id > 0) { } else { $columns[] = ['attribute' => 'state_id', 'format' => 'raw', 'value' => function ($data) { if ($data->state_id > 0) { return \app\models\State::findOne($data->state_id)->name; } else { return "-"; } }]; } $columns[] = ['attribute' => 'year', 'headerOptions' => ['style' => 'width:75px;', 'class' => 'text-center'], 'contentOptions' => ['class' => 'text-center']];
&viewer_id=<?php $model->viewer_id; ?> ', success: function (data) { $('#tabs_tools_model').html(data); $('#tabs_tools_model').modal(); } }); } </script> <?php echo GridView::widget(['dataProvider' => $dataProviderTools, 'columns' => [['class' => 'yii\\grid\\SerialColumn'], ['attribute' => 'tools_id', 'label' => 'Ferramenta', 'format' => 'text', 'content' => function ($data) { return Tools::find()->where("id=" . $data->tools_id)->one()->name; }], ['class' => 'yii\\grid\\ActionColumn', 'template' => '{update} {delete}', 'urlCreator' => function ($action, $dataProviderTools, $key, $index) { if ($action === 'update') { $url = array('viewer-tabs-tools/update', 'id' => $dataProviderTools->id, 'viewer_id' => $_GET['viewer_id']); return $url; } if ($action === 'delete') { $url = array('viewer-tabs-tools/delete', 'id' => $dataProviderTools->id, 'tabs_id' => $dataProviderTools->tabs_id, 'viewer_id' => $_GET['viewer_id']); return $url; } }]]]); ?> </div> </div> </div>
<div class="panel-heading"><h3><i class="glyphicon glyphicon-list"></i> <?php echo Html::encode($this->title); ?> </h3></div> <div class="panel-body"> <p> <?php echo Html::a('<i class="glyphicon glyphicon-plus"></i> เพิ่มรายการ', ['create'], ['class' => 'btn btn-success']); ?> </p> <?php echo GridView::widget(['dataProvider' => $dataProvider, 'columns' => [['class' => 'yii\\grid\\SerialColumn'], 'type_name', ['header' => 'จำนวนรายการครุภัณฑ์', 'format' => 'raw', 'value' => function ($data) { $count = \app\models\Tools::find()->where(['tooltype_id' => $data->id])->count(); if (!empty($count)) { return Html::a('รวม ' . $count, ['tools/detail', 'tooltype_id' => $data->type_name], ['data-toggle' => "modal", 'data-target' => "#myModal", 'data-title' => "รายการ"]); } else { return "-"; } }], ['class' => 'yii\\grid\\ActionColumn']]]); ?> </div> </div> </div> <?php Modal::begin(['id' => 'myModal', 'header' => '<h4 class="modal-title">...</h4>', 'size' => 'modal-lg']); Modal::end();