/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = BaseUpdatable::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(['nik' => $this->nik, 'no_kk' => $this->no_kk, 'status_keluarga' => $this->status_keluarga, 'ayah' => $this->ayah, 'ibu' => $this->ibu, 'agama' => $this->agama, 'status_perkawinan' => $this->status_perkawinan, 'pendidikan_terakhir' => $this->pendidikan_terakhir]); $query->andFilterWhere(['like', 'foto', $this->foto])->andFilterWhere(['like', 'pekerjaan', $this->pekerjaan]); return $dataProvider; }
/* @var $model common\models\Keluarga */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="keluarga-form"> <?php $form = ActiveForm::begin(['layout' => 'horizontal']); ?> <?php echo $form->field($model, 'id')->input('number', ['min' => 0, 'placeholder' => 'Masukkan Empat Digit Terakhir'])->label('Empat Digit Terakhir'); ?> <?php $data = ArrayHelper::map(BaseUpdatable::find()->where(['no_kk' => 0])->asArray()->all(), 'nik', 'nik'); ?> <?php echo $form->field($model, 'kepala_keluarga')->widget(Select2::classname(), ['data' => $data, 'language' => 'id', 'options' => ['placeholder' => 'Masukkan NIK Kepala Keluarga'], 'pluginOptions' => ['allowClear' => true]])->label('NIK Kepala Keluarga'); ?> <div class="form-group"> <div class="col-md-3"></div> <div class="col-md-6"> <strong>Catatan : </strong>NIK Kepala Keluarga harus sudah terdaftar </div> <div class="col-md-3"></div> </div> <div class="form-group text-center"> <?php echo Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']);
public function actionNikIbuList($q = null, $id = null) { \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $out = ['results' => ['id' => '', 'text' => '']]; if (!is_null($q)) { $query = new \yii\db\Query(); $query->select('base.nik AS id, base.nik AS text')->from('base')->innerJoin('base_updatable', 'base.nik = base_updatable.nik')->andWhere(['base_updatable.status_keluarga' => 2, 'base.jenis_kelamin' => 2])->andWhere(['like', 'base.nik', $q])->limit(20); $command = $query->createCommand(); $data = $command->queryAll(); $out['results'] = array_values($data); } elseif ($id > 0) { $out['results'] = ['id' => $id, 'text' => BaseUpdatable::find($id)->nik]; } return $out; }
?> </h1> </div> <div class="box-body"> <p> <?php echo Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); ?> <?php echo Html::a('Delete', ['delete', 'id' => $model->id], ['class' => 'btn btn-danger', 'data' => ['confirm' => 'Are you sure you want to delete this item?', 'method' => 'post']]); ?> </p> <?php $data = BaseUpdatable::find()->select('nik')->where(['no_kk' => $model->id, 'status_keluarga' => 3])->asArray()->all(); $istri = BaseUpdatable::find()->select('nik')->where(['no_kk' => $model->id, 'status_keluarga' => 2])->one()['nik']; $nik = ""; foreach ($data as $val) { if ($nik != "") { $nik .= ","; } $nik .= $val['nik']; } if (!empty($nik)) { $dataNama = DataManagement::find()->select('nama')->where('nik in (' . $nik . ')')->asArray()->all(); } else { $dataNama = []; } $namaIstri = DataManagement::findOne($istri)['nama']; $nama = ""; foreach ($dataNama as $val) {
private function exportKeluarga() { $isi = Keluarga::find()->asArray()->all(); $filename = 'Data_Keluarga-' . date('YmdGis') . '.xls'; header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=\"{$filename}\""); header("Pragma: no-cache"); header("Expires: 0"); echo "<style> .str{ mso-number-format:\\@; } </style>"; echo '<table border="1" width="100%"> <thead> <tr> <th>Nomor KK</th> <th>Nama Kepala Keluarga</th> <th>Alamat</th> <th>RT</th> <th>RW</th> <th>Desa/Kelurahan</th> <th>Kecamatan</th> <th>Kabupaten/Kota</th> <th>Provinsi</th> <th>Dikeluarkan Tanggal</th> <th>Nama Lengkap</th> <th>NIK</th> <th>Jenis Kelamin</th> <th>Tempat Lahir</th> <th>Tanggal Lahir</th> <th>Agama</th> <th>Pendidikan Terakhir</th> <th>Pekerjaan</th> <th>Status Perkawinan</th> <th>Status Hubungan Dalam Keluarga</th> <th>Kewarganegaraan</th> <th>Nama Ayah</th> <th>Nama Ibu</th> </tr> </thead> <tbody>'; $i = 0; foreach ($isi as $data) { $subData = BaseUpdatable::find()->where('status_keluarga = "1" and no_kk = "' . $data['id'] . '"')->one(); $base = DataManagement::findOne($subData['nik']); $domisili = TabelDomisili::find()->where('nik = ' . $subData['nik'])->one(); //echo var_dump($subData->nik); //echo var_dump($subData); $rawNikKeluarga = BaseUpdatable::find()->where('no_kk = ' . $data['id'])->asArray()->all(); $nikKeluarga = ""; foreach ($rawNikKeluarga as $val) { if ($nikKeluarga != null) { $nikKeluarga .= ","; } $nikKeluarga .= $val['nik']; } $dataKeluarga = DataManagement::find()->joinWith('baseUpdatable')->where('base.nik in (' . $nikKeluarga . ')')->asArray()->all(); $count = count($dataKeluarga); echo ' <tr> <td class="str" rowspan="' . $count . '">' . $data['id'] . '</td> <td rowspan="' . $count . '">' . $base['nama'] . '</td> <td rowspan="' . $count . '">' . $domisili['alamat'] . '</td> <td rowspan="' . $count . '">' . $domisili['rt'] . '</td> <td rowspan="' . $count . '">' . $domisili['rw'] . '</td> <td rowspan="' . $count . '">' . Villages::findOne($domisili['kelurahan'])->name . '</td> <td rowspan="' . $count . '">' . Districts::findOne(substr($domisili['kelurahan'], 0, strlen($domisili['kelurahan']) - 3))->name . '</td> <td rowspan="' . $count . '">' . Regencies::findOne(substr($domisili['kelurahan'], 0, strlen($domisili['kelurahan']) - 6))->name . '</td> <td rowspan="' . $count . '">' . Provinces::findOne(substr($domisili['kelurahan'], 0, strlen($domisili['kelurahan']) - 8))->name . '</td> <td rowspan="' . $count . '">' . Keluarga::findOne($data['id'])->tanggal_terbit . '</td>'; foreach ($dataKeluarga as $value) { $jk = $value['jenis_kelamin'] == 1 ? 'Laki-laki' : 'Perempuan'; //echo var_dump($value['baseUpdatable']['agama']); switch ($value['baseUpdatable']['agama']) { case '1': $agama = 'Islam'; break; case '2': $agama = 'Kristen'; break; case '3': $agama = 'Katholik'; break; case '4': $agama = 'Hindu'; break; case '5': $agama = 'Budha'; break; case '6': $agama = 'Konghucu'; break; case '7': $agama = 'Lainnya'; break; } switch ($value['baseUpdatable']['pendidikan_terakhir']) { case '1': $pend = 'SD'; break; case '2': $pend = 'SMP'; break; case '3': $pend = 'SMA'; break; case '4': $pend = 'D 1'; break; case '5': $pend = 'D 2'; break; case '6': $pend = 'D 3'; break; case '7': $pend = 'Sarjana S 1/D 4'; break; case '8': $pend = 'Pasca Sarjana S 2'; break; case '9': $pend = 'Pasca Sarjana S 3'; break; } if ($value['baseUpdatable']['status_perkawinan'] == 0) { $status_perkawinan = 'Belum Menikah'; } elseif ($value['baseUpdatable']['status_perkawinan'] == 1) { $status_perkawinan = 'Menikah'; } elseif ($value['baseUpdatable']['status_perkawinan'] == 2) { $status_perkawinan = 'Cerai'; } elseif ($value['baseUpdatable']['status_perkawinan'] == 3) { $status_perkawinan = 'Cerai Ditinggal Mati'; } $status_keluarga = $value['baseUpdatable']['status_keluarga']; //echo var_dump($status_keluarga); if ($status_keluarga == 1) { $statusKeluarga = 'Kepala Keluarga'; } elseif ($status_keluarga == 2) { $statusKeluarga = 'Istri'; } elseif ($status_keluarga == 3) { $statusKeluarga = 'Anak'; } if (TabelKewarganegaraan::findOne($value['nik']) !== null) { $kewarganegaraan = 'WNA'; } else { $kewarganegaraan = 'WNI'; } echo ' <td>' . $value['nama'] . '</td> <td>' . $value['nik'] . '</td> <td>' . $jk . '</td> <td>' . $value['tempat_lahir'] . '</td> <td>' . $value['tanggal_lahir'] . '</td> <td>' . $agama . '</td> <td>' . $pend . '</td> <td>' . $value['baseUpdatable']['pekerjaan'] . '</td> <td>' . $status_perkawinan . '</td> <td>' . $statusKeluarga . '</td> <td>' . $kewarganegaraan . '</td> <td>' . DataManagement::findOne(BaseUpdatable::findOne($value['nik'])->ayah)['nama'] . '</td> <td>' . DataManagement::findOne(BaseUpdatable::findOne($value['nik'])->ibu)['nama'] . '</td> '; if ($i < $count - 1) { echo '</tr><tr>'; } else { echo '</tr>'; } $i++; } echo '</tbody>'; } echo '</table>'; return true; }