示例#1
0
 /**
  * Arsip an exiting DataManagement model.
  * If asrip is successful, the browser will be redirected to the 'index' page.
  * @param integer $id
  * @return mixed
  */
 public function actionArsip($id)
 {
     $model = new \yii\base\DynamicModel(['jenis', 'kewargaan', 'tanggal']);
     $model->addRule(['tanggal'], 'safe');
     $model->addRule(['jenis'], 'integer');
     $model->addRule(['kewargaan'], 'string');
     if ($model->load(Yii::$app->request->post())) {
         switch ($model->jenis) {
             case '1':
                 $kewarganegaraan = new TabelKewarganegaraan();
                 $kewarganegaraan->kewargaan = $model->kewargaan;
                 $kewarganegaraan->nik = $id;
                 $kewarganegaraan->nik_pencatat = Yii::$app->user->id;
                 if ($kewarganegaraan->validate()) {
                     $kewarganegaraan->save(false);
                 }
                 return $this->redirect(['index']);
             case '2':
                 $meninggal = new TabelKematian();
                 $meninggal->nik = $id;
                 $meninggal->tanggal_kematian = Yii::$app->formatter->asDate($model->tanggal, 'yyyy-MM-dd');
                 $meninggal->nik_pencatat = Yii::$app->user->id;
                 if ($meninggal->validate()) {
                     $meninggal->save(false);
                 }
                 return $this->redirect(['index']);
         }
     } else {
         return $this->renderAjax('arsip', ['model' => $model]);
     }
 }
    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;
    }